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