시스템 설계 면접은 대규모 시스템을 설계하는 능력을 평가합니다 — 중급/시니어 역할에서 흔합니다. 성공하려면 체계적인 접근법이 필요합니다: 요구사항 명확화, 상위 수준 설계, 세부 사항 파고들기, 트레이드오프와 확장성 논의.
체계적인 접근법
1. 요구사항 명확화(CLARIFY) → 기능적(무엇을 하는지) + 비기능적(규모, 지연,
가용성); 범위, 사용자, 제약 질문(가정하지 말 것 — 문제를 좁히기)
2. 규모 추정(ESTIMATE) → 사용자, 초당 요청, 데이터 양(설계에 정보 제공)
3. 상위 수준 설계 → 주요 컴포넌트와 데이터 흐름(API, 서비스, 데이터베이스,
캐시 등); 아키텍처 그리기
4. 심층 분석(DEEP DIVE) → 핵심 컴포넌트 상세화; 데이터 모델; 구체적 도전
5. 확장 & 트레이드오프 → 병목 식별; 확장 논의(캐싱, 로드 밸런싱,
샤딩, 복제); 선택의 트레이드오프
무엇을 평가하는가
✓ 현실적이고 확장 가능한 시스템을 설계할 수 있는가?(아키텍처 사고)
✓ 트레이드오프를 고려하는가?(완벽한 설계는 없음 — 장단점 논의, 선택 정당화)
✓ 규모, 신뢰성, 실세계 고려사항을 다루는가?
✓ 커뮤니케이션 → 설계를 설명하고 논리적으로 풀어내기(토론임)
→ 암기된 "정답"이 아니라 사고와 판단력을 평가합니다.
