Skip to content

Latest commit

 

History

History
63 lines (48 loc) · 2.93 KB

[chap03]홍예림.md

File metadata and controls

63 lines (48 loc) · 2.93 KB

Chap 3. 시스템 설계 면접 공략법

효과적인 면접을 위한 4단계 접근법

  1. 문제 이해 및 설계 범위 설정

    요구사항 완전히 이해x ⇒ red flag

    요구사항 정확이 이해 필수

    • 구체적으로 어떤 기능들을 만들어야 하나?
    • 제품 사용자 수는 얼마나 되나?
    • 회사의 규모는 얼마나 빨리 커지리라 생각하나?
    • 회사가 주로 사용하는 기술 스택은 무엇인가? 설계를 단순화하기 위해 활용할 수 있는 기존 서비스로는 어떤 것들이 있는가?
  2. 개략적인 설계안 제시 및 동의 구하기

    • 설계안에 대한 최초 청사진을 제시하고 의견 구하기
    • 핵심 컴포넌트를 포함하는 다이어그램 그리기
    • 최초 설계안이 시스템 규모에 관계된 제약사항들을 만족하는지 개략적으로 계산
  3. 상세설계

    이미 달성한 부분

    • 시스템에서 전반적으로 달성해야 할 목표와 기능 범위 확인
    • 전체 설계의 개략적 청사진 마련
    • 해당 청사진에 대한 면접관의 의견 청취
    • 상세 설계에서 집중해야 할 영역들 확인
  4. 마무리

    설계 결과물에 관한 후속 질문 or 스스로 추가 논의 진행

    • 시스템 병목구간/개선 가능한 지점 찾기 질문 : 설계가 완벽하다, 개선할 부분이 없다는 식의 답 X
    • 해결책 제시 후 설계 한 번 더 요약
    • 오류 발생 시 발생 할 일 언급
    • 운영 이슈 언급(메트릭 수집, 모니터링, 로그, 배포 등)
    • 미래의 규모 확장 요구에 대한 대처
    • 세부적 개선사항들 제안

해야할 것

  • 질문을 통해 확인하라(clarification). 스스로 내린 가정이 옮다 믿고 진행하지 않는다
  • 문제의 요구사항을 이해하라
  • 정답/최선의 답안 같은 건 없다
  • 면접관이 사고 흐름을 이해할 수 있도록 하라
  • 가능하다면 여러 해법을 제시하라
  • 개략적 설계에 면접관이 동의하면, 각 컴포넌트의 세부사항을 설명하기 시작하라 (가장 중요한 컴포넌트부터)
  • 면접관의 아이디어 이끌어 내라
  • 포기하지 말라

하지 말아야 할 것

  • 전형적인 면접 문제에도 대비하지 않은 상태로 면접장에 가지 마라
  • 요구사항이나 가정들을 분명히 하지 않은 상테에서 설계를 제시하지 말라
  • 처음부터 특정 컴포넌트의 세부사항을 너무 깊게 설명하지 말라
  • 진행 중 막혔다면, 힌트 청하기를 주저하지 말라
  • 소통을 주저하지 말라, 침묵 속에 설계를 진행하지 말라
  • 설계안을 내놓는 순간 면접이 끝난다고 생각하지 말라

시간배분

  1. 문제 이해 및 설계 범위 확정 : 3-10분
  2. 개략적 설계안 제시 및 동의 구하기 : 10-15분
  3. 상세 설계 : 10-25분
  4. 마무리 : 3-5분