3. Strategies for System Design Interviews

3장 시스템 설계 면접 공략법

1단계: 문제 이해 및 설계 범위 설정(3~10분)

첫 번째 단계는 주어진 문제를 철저히 이해하고, 설계 범위를 명확히 하는 것입니다. 이는 면접관과의 소통을 통해 정확한 요구사항을 파악하고, 설계의 범위를 한정하는 것을 포함합니다.

예시:

  • 어떤 기능들이 포함되어야하나?

  • 유저는 몇명인가?

  • 회사의 규모는 얼마나 빨리 커지나?

  • 주로 사용하는 기술 스택은 뭔가?

2단계: 개략적인 설계안 제시 및 동의 구하기(10~15분)

두 번째 단계에서는 개략적인 설계안을 제시하고, 면접관의 동의를 구합니다. 이 단계에서는 전체적인 시스템 아키텍처와 주요 구성 요소를 설명합니다.

  • 설계에 대한 최초 청사진을 제시

  • 다이어그램을 활용.

  • 제약사항들을 만족하는지 면접관이 알 수 있도록 소리내어서 설명

  • 구체적인 사용 사례도 포함하라

  • 세부 적인 내용은 생략해라. (API등)

3단계: 상세 설계(10~25분)

세 번째 단계에서는 개략적인 설계를 기반으로 세부 설계를 진행합니다. 이 단계에서는 각 구성 요소의 내부 구조와 동작을 상세히 설명합니다.

  • 시스템에서 전반적으로 달성해야할 목표와 기능 범위 확인

  • 전체 설계의 개략적 청사진 마련 (데이터 베이스 스키마, API 설계, 알고리즘 등)

  • 해당 청사진에 대한 면접관의 의견 청취

  • 상세 설계에서 집중해야 할 영역들 확인

4단계: 마무리(3~5분)

마지막 단계에서는 몇가지 꼬리 질문에 대한 답 또는 스스로 추가 논의를 진행할 수 있습니다.

  • 설계 요약

  • 발생할 수 있는 오류들, 개선할 수 있는 부분들

  • 운영 이슈. 모니터링, 로그, 배포 전략(카나리, 블루 그린, 롤링)

  • 규모가 확장되어야할때 변경

  • 나머지 세부적 개선사항

면접시 해야할것

  • 질문을 통해 확인하라.

  • 문제의 요구사항을 이해하라

  • 정답은 없다. 요구사항을 다시 한번 확인해라.

  • 면접관이 충분히 이해하면서 따라올 수 있도록 확인하라.

  • 가능하면 다양한 해법들을 제시해라.

  • 설계에 대해 면접관이 동의하면 세부사항들을 설명하라

  • 면접관을 팀원이라 생각하고 아이디어를 이끌어내라.

면접시 하면 안되는것

  • 특정 컴포넌트의 세부사항을 깊이 설명하지 마라.

  • 힌트 요청을 주저하지 마라.

  • 소통을 주저하지 마라.

  • 설계안이 나온 후에 면접이 끝났다고 생각하지 마라.

Last updated