기술 면접에서 자신의 프로젝트를 단순 소개가 아닌 기술적 의사결정, 트레이드오프, 문제 해결 과정 중심으로 설명하는 방법을 익히고, 면접관이 예상치 못한 방향으로 파고들 때 흔들리지 않는 답변 전략을 완성한다.
이번 강에서 배울 것
- 프로젝트 설명 구조 — 기능 나열이 아닌 의사결정 스토리
- 기술 선택 이유를 논리적으로 설명하는 방법
- 면접관 심화 질문 유형과 대응 전략
- "모른다"고 할 때와 아는 척할 때의 결과
- 프로젝트 설명 연습 체크리스트
프로젝트 설명 3단계 구조
잘못된 방식 (기능 나열):
"이 프로젝트는 로그인, 게시글 CRUD, 댓글 기능,
알림 기능을 구현했습니다. 백엔드는 Node.js,
DB는 MySQL을 사용했습니다."
올바른 방식 (의사결정 스토리):
1단계: 배경 (30초)
"3인 팀으로 중고 거래 앱을 만들었습니다.
실제 서비스처럼 동시 입찰 처리가 필요했고,
이 부분에서 기술적 도전이 있었습니다."
2단계: 핵심 문제와 해결 (2분)
"문제: 같은 상품에 여러 사람이 동시에 낙찰 시도 시 중복 처리 발생
접근: SELECT FOR UPDATE(비관적 락) vs 낙관적 락 비교 검토
선택: 낙찰은 드문 이벤트지만 충돌 시 비용이 큰 상황
→ 비관적 락이 안전하다고 판단, 적용
결과: 동시 100건 요청 시 중복 낙찰 0건 달성"
3단계: 배운 점 (30초)
"이 경험으로 트랜잭션 격리 수준과 락 전략을
실무적으로 이해하게 되었습니다."
기술 선택 이유 설명 프레임
면접관이 가장 좋아하는 답변 구조:
[A vs B 비교] → [선택 기준] → [트레이드오프 인정]
예시: "왜 MySQL이 아닌 PostgreSQL을 선택했나요?"
나쁜 답변: "많이 쓰길래요" / "익숙해서요"
좋은 답변:
"JSON 컬럼과 배열 타입을 자주 사용할 예정이었고,
PostgreSQL이 MySQL보다 이 부분을 더 풍부하게 지원합니다.
또한 팀원이 이미 경험이 있어 학습 비용도 낮았습니다.
다만 MySQL에 비해 호스팅 선택지가 적다는 단점을 인지했고,
프로젝트 규모상 허용 가능하다고 판단했습니다."
면접관 심화 질문 유형과 대응
| 질문 유형 | 예시 | 대응 방법 |
|---|---|---|
| 구현 세부사항 | "락 구현 코드를 보여주세요" | 핵심 로직 의사코드로 설명, 코드 암기 불필요 |
| 확장성 질문 | "사용자가 100만이면 어떻게 바꾸겠나요?" | 현재 구조의 병목 + 개선 방향 제시 |
| 실패 경험 | "처음 선택이 잘못된 것을 깨달은 적 있나요?" | 솔직히 인정 + 어떻게 수정했는지 |
| 대안 검토 | "다른 방법도 있었을 텐데 왜 이 방법을?" | 비교한 대안 언급 + 선택 기준 |
| 모르는 질문 | "Redis Sentinel과 Redis Cluster 차이는?" | 아는 부분에서 추론, 모른다고 솔직히 |
"모른다"고 할 때의 올바른 방법
잘못된 방법:
침묵 → 10초 이상 아무 말 없이 멈추기
아는 척 → 틀린 내용을 자신 있게 말하기
올바른 방법:
1단계: 아는 부분 먼저 말하기
"Redis Sentinel은 들어본 적 있는데,
Sentinel이 마스터 장애 시 자동 Failover를 처리하는 것으로 알고 있습니다.
Cluster는 데이터를 분산 저장하는 방식으로 알고 있는데,
두 가지의 정확한 차이는 조금 불확실합니다."
2단계: 추론하기
"Sentinel은 고가용성, Cluster는 수평 확장에 초점을 맞추는 것 같습니다.
맞게 이해한 것인가요?"
3단계: 배우려는 태도 보이기
"이 부분을 좀 더 공부해봐야겠습니다.
정확한 차이를 설명해 주실 수 있으신가요?"
왜 이 방법이 좋은가:
면접관은 지원자가 모든 것을 알기를 기대하지 않음
아는 척보다 정직함 + 추론 능력 + 학습 의지가 더 좋은 인상
프로젝트별 예상 심화 질문 준비
프로젝트 준비 체크리스트:
기술 선택 이유:
[ ] 사용한 언어/프레임워크를 선택한 이유
[ ] DB 선택 이유 (RDB vs NoSQL, 왜 그 제품)
[ ] 클라우드/배포 환경 선택 이유
성능 관련:
[ ] 가장 느린 API 응답 시간은?
[ ] 어떻게 최적화했나? (인덱스, 캐싱, 쿼리 개선)
[ ] 동시 사용자 몇 명까지 처리 가능한가?
보안 관련:
[ ] 인증은 어떻게 구현했나? (JWT, 세션)
[ ] SQL 인젝션, XSS 방어는?
[ ] 비밀번호 저장 방법 (bcrypt, Argon2)
확장성:
[ ] 현재 구조의 병목 지점은?
[ ] 사용자 10배 증가 시 어디서 문제 발생?
[ ] 어떻게 개선할 계획인가?
실패/한계:
[ ] 개발 중 가장 힘들었던 점은?
[ ] 지금 다시 만든다면 다르게 할 것은?
강의 핵심 요약
- 프로젝트 설명 = 기능 나열이 아닌 의사결정 스토리 (배경 → 문제 → 선택 → 결과)
- 기술 선택은 항상 "[A vs B 비교] → [선택 기준] → [트레이드오프 인정]" 구조로
- 모를 때: 아는 부분 말하기 → 추론 → 배우려는 태도 — 아는 척보다 훨씬 좋음
- 다음 강: 행동 면접(인성 면접) — STAR 기법으로 구조화된 답변 만들기
관련 검색어 · 기술 면접 프로젝트 설명, 기술 선택 이유 면접, 면접 모르는 질문 대처, 포트폴리오 프로젝트 면접, 기술 면접 트레이드오프, 개발자 면접 답변