기술 면접에서 떨어지는 진짜 이유
면접관을 3년간 해보니, 코딩 실력이 아닌 곳에서 갈렸다
면접관 쪽에서 보면 좀 다르다
3년째 기술 면접관을 하고 있다. 지금까지 213명 정도 봤는데, 떨어지는 사람들한테 공통점이 있다. 그리고 그 공통점이 "코딩을 못해서"가 아닌 경우가 의외로 많다.
코딩 실력 비슷한 두 사람 중 한 명만 합격하는 상황에서, 갈림길은 대부분 코드 밖에 있다. 면접관도 사람이라 완벽한 답을 기대하진 않는다. 다만 "이 사람이랑 같이 일하고 싶은가?"를 본다.
모르면 모른다고 하는 게 낫다
가장 많이 보는 실수가 이거다. 모르는 질문 받았을 때 아는 척하는 것. "음... 그건 아마... 메모리 관련인데..." 하면서 30초 끌면, 면접관은 이미 안다. 모른다는 걸.
차라리 "정확히는 모르지만, 이런 맥락에서 이렇게 추측해볼 수 있을 것 같습니다"라고 솔직하게 말하는 사람이 훨씬 좋은 점수를 받는다. "아직 공부 못한 부분입니다"라고 하는 것도 나쁘지 않다.
한번은 "Redis 내부 자료구조 설명해주세요"라는 질문에 "정확히는 모르지만, 해시 테이블 기반이라는 건 알고 있고, 실무에서는 이렇게 활용했습니다"라고 답한 사람이 있었다. 합격이었다. 실무에서도 모든 걸 아는 개발자는 없다. 중요한 건 모를 때 어떻게 하느냐다.
(나도 면접관이면서 모르는 거 꽤 많다. 이건 비밀이다.)
면접관이 진짜 듣고 싶은 건 "왜"다
"왜 Redux 대신 Zustand를 썼나요?"에 "요즘 다들 쓰길래요"라고 답하는 사람이 정말 많다. 이건 빨간 불이다. 트렌드를 따라간 것과 기술적 판단을 한 것은 완전히 다르다.
"프로젝트 규모가 작아서 보일러플레이트 적은 쪽이 맞았고, 미들웨어 없이도 devtools를 지원해서 디버깅이 편했고, 번들 사이즈도 1KB 수준이라 성능 영향이 적었습니다" — 이 정도면 충분하다.
기술 선택에는 항상 근거가 있어야 한다. "좋다고 하니까"는 근거가 아니다. 내가 겪어보니까 이 부분에서 갈리는 경우가 제일 많다. 근데 이건 연습하면 되는 거라서, 평소에 기술 선택할 때 "왜?"를 한 번 더 생각하는 습관을 들이면 된다.
숫자 뒤에 과정이 있어야 한다
"성능을 50% 개선했습니다"라고 하면 반드시 물어본다. "어떻게요?" 여기서 막히는 사람이 절반이다.
어떤 지표를 봤고(Lighthouse? Core Web Vitals? 자체 APM?), 병목이 어디였고(네트워크? 렌더링? DB?), 뭘 시도했고, 왜 그걸 택했는지까지 설명할 수 있어야 한다.
"처음에 이미지 압축을 시도했는데 효과가 미미해서, 코드 스플리팅으로 방향을 바꿨더니 32% 개선됐습니다" — 이렇게 말하면 면접관은 이 사람의 문제 해결 과정을 볼 수 있다. 숫자를 부풀리는 것보다 실패한 시도를 포함해서 과정을 솔직하게 말하는 게 훨씬 낫다. 실패를 말할 수 있다는 것 자체가 실력의 증거다.
질문 안 하는 사람이 30%다
면접 끝에 "질문 있으세요?"라고 물으면 "없습니다" 하는 사람이 체감 30%는 된다. 이건 관심이 없다는 신호로 읽힌다. 팀의 코드 리뷰 문화, 배포 프로세스, 온보딩 과정, 기술 스택 선택 기준 같은 거 2~3개만 물어봐도 인상이 확 달라진다.
좋은 질문은 좋은 답변만큼이나 강한 인상을 남긴다. 근데 사람마다 다를 수 있다. 내가 면접관으로서 느끼는 거니까, 다른 회사에서는 아닐 수도 있다.
대화가 안 되면 아무리 잘해도 힘들다
기술 면접은 발표가 아니라 대화다. 화이트보드 코딩할 때 조용히 10분 풀고 "됐습니다" 하는 사람보다, "이런 접근을 해보려는데 괜찮을까요?" 하고 중간에 확인하는 사람이 합격률이 높다.
실무에서도 혼자 3시간 삽질하는 것보다 중간에 한 번 물어보는 게 효율적이다. 면접관은 "이 사람이 팀에서 어떻게 일할까?"를 상상하면서 보거든. 대화가 안 되는 사람과는 실력이 좋아도 함께 일하기 어렵다.
기본기에서 막히는 시니어도 있다
알고리즘 얘기가 아니다. "HTTP GET과 POST 차이가 뭔가요?"에서 막히는 시니어 지원자도 봤다. "JavaScript에서 ==와 ===의 차이가 뭔가요?"에 제대로 답 못하는 프론트엔드 지원자도 있었다.
프레임워크는 잘 쓰는데 그 아래 원리를 모르면 깊이 있는 대화가 안 된다. React를 잘 쓰려면 JavaScript를 알아야 하고, 이벤트 루프와 프로토타입을 이해해야 한다.
(이건 나한테도 해당되는 말이라 좀 찔린다. 가끔 기본기 점검 안 하고 넘어갈 때가 있다.)
면접에서 떨어지면 자기가 부족하다고 느끼기 쉬운데, 내가 3년간 면접 보면서 느낀 건 실력 부족이라기보다 아는 걸 제대로 전달 못해서인 경우가 더 많다는 거다. 동료한테 오늘 배운 기술 설명해보는 것부터 시작하면 된다.