기술 면접에 대해 잘 이해하기 위해, 면접관이 피하고 싶은 지원자 유형부터 점검하자.
위 유형에 해당하지 않기 위해서는 아래와 같은 노력이 필요하다.
'''
자세하게 설명하기 어려운 이유는 무엇일까? 명시적으로 설명이 어려운 경우는 보통 아래와 같다.
- 해당 개념어에 대해서 코드로 칠 줄은 아는데, 무엇이라고 설명해야 하는지 잘 모른다.
- 어렴풋이 들어만 봤고 실제 그 개념에 대해서 공부해본 적이 없다.
- 인터넷 블로그 몇 개 읽고 나서 나도 모르게 불명확한 개념을 당연히 받아들이고 있다
이런 불상사를 막기 위해서는 어떤 개념에 대해서 정확하게 하나씩 이해하는 과정을 거치고 이것을 잘 기록하고 설명하는 연습을 꾸준히 해야 한다. 이 과정을 반복하면 어느새 충분히 그 개념에 대해서 이해하고 설명할 수 있는 능력을 갖추게 된다.
프론트엔드 개발자에게 기술 면접은 “프론트엔드 개발자로서 기술적 직무 역량을 충분히 갖추었는지 판단하는 모든 면접 형태”을 의미한다.
“프론트엔드 개발자"라는 단어가 취업 시장에 나온지는 얼마 되지 않았기에 프론트엔드 기술 면접에서 요구하는 내용도 가지각색입이다. 다만, 그 중에서도 프론트엔드 기술 면접에서 가장 흔하게 접하는 면접 형태를 아래와 같다.
- 이력서 기반 질문형
- 기본 개념 질문형
- 알고리즘 문제 해결형
- 간단한 실무 문제 해결형
- 미니 프로젝트 제작형
: 이력서 기반 질문형 기술 면접에서는 기본적으로 이력서를 보고 질문하는 기존 면접과 비슷하다. 일반 인성 면접과 다른 점은, 비즈니스적 성과 보다는 해당 직원이 기술적으로 어떤 성취를 이뤘고 정말 자기 손으로 해낸 성취가맞는지를 확인하는 과정이 주를 이룬다. 물론 비즈니스적 성과에 기여한 부분이 있다면 더 좋을 것이다. 하지만 신입 개발자는 아직 회사에서 이룬 기술적 성취가 없기 때문에 개발 프로젝트, 깃허브, 기술 블로그, 이전 경험들을 보게 된다.
ex) 개발 프로젝트A에서 React를 사용한 특별한 이유라도 있나?
: 기본개념 질문형 기술면접에서는 프론트엔드 개발자로서 꼭 알아야 하는 기술 용어에 대해서 설명한다. 정의에 대해서 잘 설명하는 것도 중요하지만, "면접자가 과연 진짜 이 개념을 잘 알고 응용할 수 있는가?"에 대해서 알고싶어하기 때문에 해당 질문을 넘어 추가로 더 알면 좋은 내용까지 준비하면 더욱 좋다.
ex) 클로져에 대해 설명하세요
: 알고리즘 문제 해결형 기술 면접에서는 코딩테스트에 주로 나오는 알고리즘 문제를 제시하고, 면접자는 문제를 풀고 면접관은 푸는 과정을 지켜보면서 면접자를 평가한다. 면접관이 없고, 기술 면접용 플렛폼을 통해 자동 평가 하기도 한다. 알고리즘 문제 해결형 기술 면접은 프론트엔드 개발자가 아니더라도 다른 개발자 면접에서도 쉽게 접할 수 있다.
ex) 이진트리 뒤집기
: 간단한 실무 문제 해결형 기술 면접에서는 실무에서 쉽게 겪을만한 문제를 코딩으로 어떻게 풀 수 있는지 확인한다. 면접자는 문제를 풀고 면접관은 푸는 과정을 지켜보면서 면접자를 평가한다. 면접관이 없고, 기술 면접용 플렛폼을 통해 자동으로 평가하기도 한다.
ex) JSON데이터를 브라우저에 보여주기, debounce 구현하기
미니 프로젝트형 기술 면접은 면접 전에 회사에서 미리 2-3일 정도를 주고, 작은 개발 프로젝트를 요구한다. 해당 프로젝트를 기반으로 질문을 한다.
ex) IMBD영화 Top100 을 조회할 수 있는 프로젝트 제작
: "나와 함께 개발할 수 있을까?"를 확인하고 싶은 것이다.
번지르르한 이력서나 출신 학교나 전공은 일차적 서류 통과에 분명 도움이 되지만, 실제 협업이 원활한 인재를 뽑고자 한다.
즉. 기술 면접의 목표는 모두 면접자가 "정말 잘 아는기?", "정말 잘 하는가?"로 귀결된다.
기술 면접의 목표를 잘 알면 할 일도 명확해진다.
"내가 정말 잘 아는지, 잘 하는지 간단명료하게 설명할 수 있다."