신입 개발자를 위한 면접 질문 대비 전략 - 예상 질문과 꼬리 질문까지

2024-11-13

우리가 면접을 볼 때 가장 우려되는 점은 예상하지 못한 질문이 나오는 것입니다. 즉, 준비하지 못한 상황을 맞이할 때입니다. 그럼에도 최대한 어떤 질문이 나올지 예상해볼 수 있습니다. 다음 세 가지 방법을 통해 준비할 수 있습니다.

질문이 가진 의도를 파악하기

예상 질문을 적절하게 준비했더라도 의도와는 다른 방향으로 답변을 준비한다면 의미가 없습니다. 예상 답변을 준비할 때는 질문이 어떠한 의도를 가지고 있는지 파악하는 것이 우선입니다.

예:

프로세스와 스레드에 대해 설명해주세요.
인터페이스와 추상 클래스에 대해 설명해주세요.

위와 같은 질문의 의도는 다음과 같습니다:

  1. 기본적인 개념을 이해하고 있는가?
  2. 기본적인 개념을 넘어서 차이점과 용도를 설명할 수 있는가?

기본적인 개념을 설명하는 것은 대부분 준비했을 것이므로 점수를 획득할 수 있는 구간은 다음과 같습니다:

  1. 기본적인 개념을 넘어서 차이점과 용도를 설명할 수 있는가?
  2. 추가 질문에 대답할 수 있는가?

따라서 예상 질문에 대한 답변을 준비할 때는 아래 항목들을 위주로 준비하시면 좋습니다:

  1. 기본 개념
  2. 차이점, 단점, 용도
  3. 추가 질문에 대한 답변

구체적인 사례와 구조화된 예시

이제 구체적인 사례와 구조화된 예시를 통해 설명을 보강하겠습니다. 예를 들어 예상 질문과 답변을 아래와 같이 작성했다고 가정해 봅시다:

질문: 80% 개선을 했는데 무엇을 정확히 어떻게 개선했을까요?
답변: GIS 서비스였기에 지도를 직접 서버에서 파일로 가져와 렌더링을 하고 있었습니다. 지도를 렌더링할 때 타일 하나하나가 이미지였는데 이 이미지 파일이 생각보다 너무 고화질이면서 압축이 되지 않았었습니다. 그래서 이미지 압축을 수행하고, 동시에 코드가 뒤죽박죽이었기 때문에 CSS, JS를 불러오는 순서를 조정하고 첫 화면에서 바로 로딩할 필요가 없는 요소에는 Lazy Loading을 적용하였습니다.

이 답변을 요약하면 ‘이미지 압축과 Lazy Loading을 적용했다’입니다. 그렇다면 면접관이 질문할 키워드는 ‘이미지 압축’과 ‘Lazy Loading’입니다. 해당 키워드에 대해 정확히 무엇을 어떻게 했는지 답변을 준비할 수 있습니다.

이미지 압축: pngquant라는 라이브러리를 사용하여 명령어 세트를 만들어 각 폴더마다 실행함으로써 같은 품질을 유지하면서 용량을 감소시켰습니다.
Lazy Loading: 웹 페이지 성능 측정 도구를 사용하여 느린 지점을 파악한 후 개선했습니다. CSS와 JS를 필요한 시점에 로딩하도록 수정했습니다.

예상 질문에서 연관된 항목을 기반으로 키워드 발견하기

답변에서 연관된 항목을 뽑았다면 예상 질문에서도 키워드를 발견할 수 있습니다. 예를 들어:

프로세스와 스레드에 대해 설명해주세요.
80% 개선을 했는데 무엇을 정확히 어떻게 개선했을까요?

위 질문에서 ‘프로그램과 프로세스의 차이점에 대해 설명해주실 수 있나요?’ 혹은 ‘80%보다 더 개선할 수 있는 방법도 있을까요?’ 같은 질문을 추가로 예상할 수 있습니다. 질문에 포함된 키워드는 대부분 이어지는 다른 항목이 존재합니다.

프로세스 -> 프로그램
프로세스 -> 멀티 프로세스
스레드 -> 멀티 스레드

구체적인 예시를 통해 답변을 준비하면 면접관의 추가 질문에도 대비할 수 있습니다. 예를 들어 ‘멀티 프로세스와 멀티 스레드의 차이점은 무엇인가요?’라는 질문을 받을 수 있습니다.

추가 질문 예시 확장

예상 질문과 답변을 준비할 때, 다음과 같은 추가 질문 예시를 고려해보세요:

  • 프로세스와 스레드에 대해 설명해주세요.
    • 프로그램과 프로세스의 차이점은 무엇인가요?
    • 멀티 프로세스와 멀티 스레드의 차이점은 무엇인가요?
    • 프로세스 메모리 구조는 어떻게 되나요?
  • 80% 성능 개선을 달성했다고 하셨는데, 구체적으로 어떤 부분을 어떻게 개선하셨나요?
    • 80%보다 더 개선할 수 있는 방법이 있을까요?
    • 이미지 압축을 더 효율적으로 할 수 있는 다른 방법은 무엇이 있을까요?
    • Lazy Loading 외에 초기 로딩 속도를 개선할 수 있는 다른 방법은 무엇이 있을까요?