프론트엔드 개발자에게 기술 면접이란?
“프론트엔드 개발자로서 기술적 직무 역량을 충분히 갖추었는지 판단하는 모든 면접 형태”
이력서를 보고 질문하는 기존 면접과 비슷
비즈니스적 성과 보다는 해당 인원이 기술적으로 어떤 성취를 이뤘고 정말 자기 손으로 해낸 성취가 맞는지 확인하는 과정
ex) 개발 프로젝트 A에서 React를 사용한 특별한 이유가 있나요?
프론트엔드 개발자로서 꼭 알아야 하는 기술 용어에 대해서 설명
정의 + “면접자가 과연 진짜 이 개념을 잘 알고 응용할 수 있는가?”의 추가적인 내용
ex) 클로져에 대해서 설명하세요.
코딩테스트에 주로 나오는 알고리즘 문제를 제시하고, 면접자는 문제를 풀고 면접관은 푸는 과정을 지켜보면서 면접자를 평가
or 면접관이 없고, 기술 면접용 플렛폼을 통해 자동으로 평가
ex) 이진 트리 뒤집기
실무에서 쉽게 겪을 만한 문제를 코딩으로 어떻게 풀 수 있는지 확인
면접자는 문제를 풀고 면접관은 푸는 과정을 지켜보면서 면접자를 평가
or 면접관이 없고, 기술 면접용 플렛폼을 통해 자동으로 평가
ex) JSON 데이터를 브라우저에 보여주기, debounce 구현하기
면접 전에 회사에서 미리 2-3일 정도를 주고, 작은 개발 프로젝트를 요구
해당 프로젝트를 기반으로 질문
ex) IMDB 영화 Top 100을 조회할 수 있는 프로젝트 제작
“내가 정말 잘 아는지, 잘 하는지 간단명료하게 설명할 수 있다.”
Q : 스코프에 대해서 설명해보세요.
A : 스코프는 변수가 접근할 수 있는 범위입니다. 한 스코프 범위 내에서 외부 스코프의 변수에는 접근 가능하지만, 내부 스코프의 변수에는 접근이 불가능합니다.
자바스크립트에서 function scope, block scope의 차이는?
자바스크립트에서 lexical scope와 dynamic scope의 차이는?
var로 선언된 변수는 function scope, block scope중 어떤 scope를 가지는가?
var로 선언된 변수는 function scope를 가집니다.
특히 for문을 사용할 때 이 차이가 두드러지는데, for문의 중괄호는 block scope지 function scope가 아니기 때문에 for문의 초기화식에 var를 사용하는 경우, function scope내에서 var로 선언된 변수가 변경될 수 있습니다.
이런 가능성을 최대한 배제해야 예측 가능한 코드를 작성할 수 있기 때문에 var 사용은 다소 위험합니다.
면접 질문 답변을 위한 기술 블로깅은 가능하면 자신있는 주제에 대해서 깊고 자세하게 적는 것을 권장합니다. 내 글 하나만 읽더라도 코드를 처음 배우는 사람이 쉽게 이해할 수 있을 정도로 명쾌하고 논리적으로 작성을 하려고 노력해야 합니다. 그렇게 작성된 블로그는 면접관도 읽으면서 감탄하게 됩니다.
“내가 정말 잘 아는지, 잘 하는지 간단명료하게 설명할 수 있다.”
개발 지식에 대해서 코드로 어렴풋이 알고 있는 것이 아니라, 결론은 간명하게, 설명은 구체적으로 자신의 언어로 설명할 수 있어야 면접에서 승리할 수 있습니다.
간명한 정리와 풍부한 설명을 위해서는 지속적인 모의 면접을 통해 기술 설명을 연습하고, 어려운 개념에 대해서 깊게 고민하고 블로그에 기록하는 연습이 필요합니다.