코딩 인터뷰 팁
작성자 Aaron Cao · 업데이트
코딩을 시작하기 전에 문제와 제약 조건을 명확히 하고, 접근 방식을 소리 내어 설명하고, 최적화하기 전에 먼저 동작하는 해법을 만들고, 엣지 케이스로 테스트하고, 시간 및 공간 복잡도를 말하세요. 면접관은 최종 코드가 실행되는지 여부뿐 아니라 당신이 어떻게 사고하고 소통하는지를 평가합니다.
코드를 작성하기 전에: 먼저 명확히 하고, 그다음 계획하라
압박감 속에서 곧바로 타이핑을 시작하려는 본능이 있다면, 이 섹션이 바로 그 본능을 고치는 곳입니다. 가장 뛰어난 지원자들은 처음 몇 분 동안 아예 코딩을 하지 않으며, 면접관은 이를 알아차립니다.
먼저 자신의 언어로 문제를 다시 설명하고 면접관에게 확인받으세요. 입력 크기, 값의 범위, 입력이 정렬되어 있는지, 비어 있거나 잘못된 입력을 어떻게 처리할지 등 제약 조건을 질문하세요. 그런 다음 무언가를 작성하기 전에 의도한 접근 방식과 그 복잡도를 말하세요. 이 짧은 계획 단계는 오해를 일찍 잡아내고 구조적 사고를 보여주며, 이는 평가의 큰 부분을 차지합니다.
코딩하는 동안: 소리 내어 생각하고 단계적으로 구축하라
침묵은 실력이 뛰어난 문제 해결사가 약해 보이게 만드는 가장 흔한 방식입니다. 지금 무엇을 왜 작성하고 있는지 계속 설명해서 면접관이 당신의 논리를 따라오고, 벗어났을 때 방향을 잡아줄 수 있게 하세요.
세련된 답보다 먼저 정확한 답에 도달하세요. 동작하는 브루트포스 해법은 한 번도 컴파일되지 않는 우아한 아이디어보다 가치가 있으며, 일단 동작하는 것이 생기면 그때 최적화하면 됩니다. 작고 테스트 가능한 단위로 작성하고, 명확한 변수 이름을 사용하고, 막히면 침묵하지 말고 지금 고려하고 있는 것을 말하세요. 면접관은 종종 힌트를 주지만, 그것은 당신의 생각을 들을 수 있을 때뿐입니다.
실행된 후: 테스트, 엣지 케이스, 복잡도
컴파일된다고 해서 끝난 것이 아닙니다. 그것을 깨뜨리려고 시도해봐야 비로소 끝난 것입니다. 일반적인 입력으로 코드를 살펴본 다음, 일부러 까다로운 입력을 시도하세요: 빈 입력, 요소가 하나뿐인 경우, 중복값, 음수, 제약 조건이 허용하는 가장 큰 경우.
미드레벨 직무에 지원한 프런트엔드 엔지니어가 동작하는 투 포인터 해법을 작성한 뒤, 요청받지 않았음에도 빈 배열과 요소 하나짜리 배열로 코드를 추적하고 실행 시간을 O(n)이라고 말하는 상황을 생각해보세요. 이 마지막 1분간의 자체 테스트와 복잡도 분석이 채용과 보류를 가르는 경우가 많은데, 이는 그 엔지니어가 실제 업무에서도 자신의 버그를 스스로 발견할 것임을 보여주기 때문입니다. 요청받지 않아도 시간 및 공간 복잡도를 소리 내어 말하세요.
실전 전에 팁을 습관으로 만들기
팁을 읽는 것은 쉽지만, 긴장한 상태에서 그것을 실행하는 것은 쉽지 않습니다. 해결책은 실전과 가까운 조건에서의 리허설입니다: 타이머를 켜두고, 해법을 소리 내어 말하고, 중간에 찾아보지 않는 것입니다. 연습 문제를 풀 때마다 문제를 풀었는지뿐만 아니라 명확히 했는지, 소리 내어 설명했는지, 테스트했는지도 점검하세요. 이것이 바로 평가받는 습관이기 때문입니다.
AI 면접관을 상대로 시간을 재며 소리 내어 진행하는 연습은 이러한 반사 신경을 기르는 한 가지 방법입니다. 모의 면접 도구에서 연습할 수 있습니다. 한 가지 반복해서 강조할 점: 실제 코딩 면접은 종종 감시되는 공유 편집기에서 진행되거나 녹화되므로, 그 동안에는 어떤 실시간 어시스턴트도 안전하지 않으며, 연습의 목표는 그것이 필요 없게 만드는 것입니다. 코딩 면접에 관한 더 많은 답변은 면접 유형 주제 허브에서, 연습 가이드는 모의 면접 주제 허브에서 확인할 수 있습니다.