첫 개발자 면접 탈락 경험담. 기술만 공부하면 된다고 믿었던 내가 현실에서 부딪힌 것들
메일 제목은 "채용 전형 결과 안내"였다. 열어보기 전에 이미 알았다. 합격 메일은 보통 "축하합니다"로 시작하니까. 화면을 스크롤하지 않아도 "아쉽게도"라는 세 글자가 보였다.
그게 내 첫 번째 개발자 면접의 결말이었다. 포트폴리오 만드는 데 석 달, 면접 준비에 두 달. 그리고 탈락 메일 한 통. 그날 저녁 치킨을 시켜놓고 한 조각도 못 먹었다.
이 글은 그 탈락이 내게 가르쳐준 것들을 기록한 것이다. 결과적으로 그 면접이 없었다면, 이후 합격도 없었을 거라고 생각한다. 그래도 당시엔 그냥 아팠다.

당시 드림 컴퍼니
기술 면접에서 컷
재정비 기간
같은 회사 재지원
면접 당일 — 머릿속이 하얘졌다
면접장에 들어서면서 처음 든 생각은 "왜 이렇게 덥지"였다. 에어컨이 켜져 있는데도 땀이 났다. 면접관이 세 명이었는데, 한 분이 인사도 채 끝나기 전에 질문을 시작했다.
"클로저(Closure)가 무엇인지 설명해 주시겠어요?"
클로저. 나는 클로저를 알고 있었다. 공부했다. MDN도 읽었고 블로그 글도 봤다. 그런데 막상 입을 열자 말이 안 나왔다. 머릿속에서는 분명히 개념이 있는데, 그게 말로 조합이 안 됐다. 결국 "함수가... 외부 변수에 접근할 수 있는... 그러니까 스코프가..."로 시작해서 어딘가 흐지부지 끝났다.
"알고 있는 것과, 설명할 수 있는 것은 완전히 다른 능력이었다."
— 면접장 나오는 길에 깨달은 것그게 첫 단추였다. 첫 질문에서 흔들리자 이후 질문들이 전부 어렵게 느껴졌다. 이벤트 루프, 프로토타입 체인, 가상 DOM의 동작 원리. 하나하나는 알고 있는 것들이었는데, 면접관 앞에서 말로 풀어내려니 전부 엉켰다.
당시 대답과 나중에 다듬은 대답을 비교해보면, 내가 틀린 말을 한 게 아니었다. 그냥 불완전하게 알고 있었다. 쓸 줄은 알았지만, 왜 그렇게 설계됐는지는 몰랐던 것이다.
내가 틀렸던 것들 — 솔직 정리
탈락 이후 면접 전날 밤까지 공부했던 내용들을 다시 꺼냈다. 그리고 내가 공부한 방식과 실제 면접에서 필요한 것 사이의 간극을 찾아봤다.
가장 크게 깨달은 건 "혼자 공부, 말로 안 해봄" 항목이었다. 나는 면접 준비를 전부 책상 앞에 앉아서 읽고 쓰는 방식으로만 했다. 실제로 입 밖으로 꺼내본 적이 한 번도 없었다. 그러니 막상 면접관 앞에서 말이 안 나오는 게 당연했다.
• "방금 설명하신 내용에서, 그렇게 동작하는 이유가 뭔가요?" (꼬리 질문)
• "프로젝트에서 이 기술을 선택한 이유가 뭐예요? 다른 옵션도 검토해보셨나요?"
• "이 코드를 더 개선할 수 있다면 어떻게 하시겠어요?"
• "가장 어려웠던 기술적 문제가 뭐였고, 어떻게 해결했나요?"
전부 암기로 대비할 수 없는 질문들이었다. 이해가 진짜여야만 답할 수 있었다.
코딩 테스트 — 풀었는데 왜 떨어졌나
코딩 테스트는 3문제 중 2문제를 풀었다. 나름 선방했다고 생각했다. 그런데 면접에서 그 코드를 놓고 질문을 받았을 때 문제가 드러났다.
코딩 테스트를 "일단 통과"만 목표로 준비했기 때문에 생긴 문제였다. 풀고 나서 복잡도를 분석하거나, 더 나은 방법을 고민해본 적이 없었다. 면접관은 풀었냐가 아니라 이해하고 풀었냐를 보고 있었던 것이다.
// 내가 제출한 코드 — 동작은 하지만 O(n²)
function twoSum(nums, target) {
for (let i = 0; i < nums.length; i++) {
for (let j = i + 1; j < nums.length; j++) {
if (nums[i] + nums[j] === target) {
return [i, j];
}
}
}
}
// 면접관이 "개선하면?"이라고 물었을 때 나왔어야 할 답 — O(n)
function twoSum(nums, target) {
const map = new Map();
for (let i = 0; i < nums.length; i++) {
const complement = target - nums[i];
if (map.has(complement)) return [map.get(complement), i];
map.set(nums[i], i); // 값 → 인덱스 저장
}
}
HashMap을 쓰면 O(n)으로 줄일 수 있다는 걸 면접 이후에야 공부했다. 알고리즘 문제를 "맞추는 것"에만 집중했지, "왜 이게 더 나은가"를 생각해본 적이 없었다.
포트폴리오 — 내 코드인데 설명 못 했다
면접에서 가장 부끄러웠던 순간이 따로 있다. 포트폴리오 프로젝트를 설명하는 도중이었다.
나는 "그냥 Next.js 쓰면 기본으로 그렇게 되는 것 아닌가요?"라고 했다. 면접관의 표정이 묘하게 굳었다.
이게 가장 뼈아픈 부분이었다. 내가 직접 만든 프로젝트인데, 왜 그 기술을 썼는지 설명을 못 했다. 튜토리얼 따라 만들면서 Next.js를 쓴 게 전부였다. "쓸 줄 안다"와 "이해하고 썼다"의 차이. 핵심 교훈
기능이 동작하는 것과, 왜 그 기술을 선택했는지 설명할 수 있는 것은 다르다. 면접관은 코드를 보는 게 아니라 사고 과정을 보고 있다. "이거 만들어봤어요"가 아니라 "이 문제를 이렇게 판단해서 이 기술로 해결했어요"가 필요하다.
탈락 이후 5개월 — 뭘 바꿨나
두 번째 면접 — 같은 회사에 재지원했다
5개월 후, 같은 회사의 공채가 다시 열렸다. 지원해야 할지 고민했다. 또 떨어지면 더 힘들 것 같았다. 그런데 그 회사 말고 다른 데를 가면 "떨어진 게 그 회사가 어려워서가 아니라 내가 못 해서였는지" 영영 모를 것 같았다. 그냥 넣었다.
같은 면접관이었다. 표정이 달라지는 게 느껴졌다.
결과는 합격이었다. 당일 저녁에 연락이 왔다. 치킨을 또 시켰는데 이번엔 다 먹었다.
결국 배운 것 — 6가지로 정리한다
① 오늘 공부한 개념을 자기 전에 30초 동안 혼잣말로 설명해보기
② 포트폴리오의 모든 기술 선택에 "왜?"라는 질문을 달아두기
③ 탈락하면 그 자리에서 기억나는 질문을 전부 메모해두기 (그게 가장 정확한 복기 자료)
첫 탈락은 아팠다. 그런데 돌아보면 그게 없었으면 합격도 없었다. 5개월 동안 고친 것들이 실제로 효과가 있었다는 걸, 두 번째 면접에서 확인했다. 지금 탈락 메일을 받고 이 글을 읽는 분이 있다면 — 오늘 치킨 시키세요. 내일 복기하면 됩니다.
💬 여러분의 첫 면접 경험이 궁금합니다
첫 개발자 면접에서 가장 당황했던 순간이 뭐였나요? 혹은 탈락 이후 어떻게 준비 방식을 바꾸셨는지 — 댓글로 들려주세요. 지금 준비 중인 분들에게도 분명 도움이 될 것 같습니다. 탈락 경험일수록 더 솔직하게 써주셔도 됩니다. 여기는 그런 공간이니까요. 🙏
'개발자 > 취업 커리어 입문' 카테고리의 다른 글
| 코딩 부트캠프 수료 후 실제 취업까지의 솔직한 후기 (0) | 2026.06.14 |
|---|---|
| 비전공자가 개발자로 취업하기까지 걸린 시간과 현실 — 솔직하게 다 말해드립니다 (1) | 2026.06.07 |