기술면접·코딩테스트 준비 전략 (CS 지식부터 라이브 코딩까지)
코딩테스트는 어찌어찌 붙었는데, 기술면접에서 "이거 왜 이렇게 하셨어요?"라는 꼬리질문에 머릿속이 하얗게 변한 경험. 많은 지원자가 '문제 풀이'에만 집중하다 **'설명하는 능력'**에서 떨어집니다. 면접관은 정답이 아니라 사고 과정을 봅니다.
1. 코딩테스트는 '유형'으로 준비하라
무작정 100문제 푸는 건 비효율적입니다. 자주 나오는 유형을 묶어서 정복하세요.
- 필수: 해시/스택·큐, 정렬, 이분탐색, BFS/DFS, DP
- 빈출: 그리디, 투포인터, 트리/그래프 순회
- 가끔: 다익스트라, 유니온파인드, 비트마스킹
하루 2~3문제씩 꾸준히, 틀린 문제는 다음 날 다시 푸는 게 핵심입니다.
2. CS 지식은 '깊이 1단계'까지 답할 수 있게
키워드만 외우면 꼬리질문에서 무너집니다. 답변 + 이유 + 예시 세트로 준비하세요.
Q. 프로세스와 스레드 차이?
[나쁜 답] "프로세스는 프로그램이고 스레드는 그 안의 작업 단위입니다." (끝)
[좋은 답] "프로세스는 독립된 메모리 공간을 갖고, 스레드는 같은
프로세스의 메모리를 공유합니다. 그래서 스레드 간 통신은 빠르지만
동시성 이슈가 생겨 락이 필요합니다. 예를 들어 크롬이 탭마다
프로세스를 분리하는 건 한 탭이 죽어도 전체가 안 죽게 하려는 거죠."
3. 라이브 코딩은 '말하면서' 풀어라
침묵은 최악입니다. 면접관은 당신의 머릿속을 볼 수 없으니 생각을 소리 내어 말해야 합니다.
| 단계 | 좋은 행동 | 나쁜 행동 |
|---|---|---|
| 문제 파악 | 입력/출력·제약 되묻기 | 바로 코딩 시작 |
| 접근 | "브루트포스 후 최적화" 선언 | 말없이 키보드만 |
| 구현 | 변수명·의도 설명하며 작성 | 한 글자도 설명 없음 |
| 검증 | 엣지 케이스 직접 점검 | "되겠죠?" 하고 끝 |
틀려도 괜찮습니다. "아 여기서 인덱스가 어긋날 수 있겠네요, 수정하겠습니다"라고 스스로 버그를 잡는 모습이 오히려 가산점입니다.
4. 프로젝트 꼬리질문에 대비하라
이력서에 적은 모든 문장은 질문거리입니다. 각 프로젝트마다 "왜 그 기술을 골랐나", "대안은 없었나", "어떤 트러블슈팅이 있었나"를 미리 답해두세요. 모르면 "확실치 않지만 제 생각엔..."으로 솔직하게 추론하는 게, 아는 척하다 들키는 것보다 낫습니다.
마무리 체크리스트
- 빈출 유형별로 대표 문제를 손코딩할 수 있는가
- CS 개념을 이유 + 예시까지 말할 수 있는가
- 라이브 코딩에서 사고 과정을 말로 풀 수 있는가
- 이력서 프로젝트의 기술 선택 이유를 답할 수 있는가
- 모를 때 솔직하게 대응하는 연습을 했는가
기술면접은 시험이 아니라 함께 일할 동료를 찾는 대화입니다. 정답보다 '같이 일하고 싶은 사람'이 되는 데 집중하세요.
함께 보면 좋은 글
코드리뷰 잘하는 법 (팀이 성장하는 리뷰 vs 감정 상하는 리뷰)
코드리뷰는 코드를 고치는 일이 아니라 사람과 협업하는 일입니다. 리뷰어와 작성자 모두를 위한 실전 매너, 좋은 코멘트와 나쁜 코멘트 비교, 그리고 리뷰 속도를 높이는 팁을 정리했습니다.
개발자 이력서·포트폴리오 잘 쓰는 법 (서류 합격률 높이는 실전 가이드)
기술 스택만 나열한 이력서는 서류에서 걸러집니다. 채용 담당자가 5초 만에 '면접 보자'고 결정하게 만드는 이력서·포트폴리오 작성법을, before/after 예시와 체크리스트로 정리했습니다.
유의적 버전(SemVer): ^와 ~, 그리고 1.2.3의 의미
MAJOR.MINOR.PATCH의 규칙, package.json의 ^·~ 범위 표기, lock 파일의 역할까지. 의존성 업데이트가 무섭지 않으려면 알아야 할 버전 규칙을 정리합니다.