[Study] 3장) 시스템 설계 면접 공략법

Tarte·2025년 11월 21일

시스템 설계 면접: 두 명의 동료가 모호한 문제를 풀기 위해 협력하여 그 해결책을 찾아내는 과정에 대한 시뮬레이션

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

1단계 문제 이해 및 설계 범위 확정

  • 답부터 찾으려고 하지 마라
  • 깊이 생각하고 질문하여 요구사항가정들을 분명하게 하라

    요구사항을 이해할 때 필요한 질문은 어떤 것일까?
  1. 구체적으로 어떤 기능들을 만들어야 하는가?
  2. 제품의 사용자 수는 얼마나 되는가?
  3. 회사의 규모는 얼마나 빨리 커질 것이라 예상하는가?
  4. 회사가 주로 사용하는 기술 스택은 무엇인가? 설계를 단순화하기 위해 활용할 수 있는 기본 서비스로는 무엇이 있는가?

2단계 개략적인 설계안 제시 및 동의 구하기

  • 설계안에 대한 최초 청사진을 제시하고 의견을 구하라
  • 화이트보드나 종이에 핵심 컴포넌트를 포함하는 다이어그램을 그려라
  • 이 최초 설계안이 시스템 규모에 관계된 제약사항들을 만족하는지 개략적으로 계산해 보라 / 계산 과정은 소리 내어 설명 하라 / 이런 개략적 추정이 필요한지 면접관에게 미리 물어보도록 하자
  • 가능하다면 시스템의 구체적 사용 사례도 몇 가지 살펴보라 => API 엔드포인트나 데이터베이스 스키마 같은 경우엔 상황에 따라 다르다

3단계 상세 설계

만족된 목표

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

해야 할 일

  • 설계 대상 컴포넌트 사이의 우선순위 정하기
  • 대부분의 경우 특정 시스템 컴포넌트들의 세부사항을 깊이 있게 설명하는 것을 원함

4단계 마무리

  • 면접관이 시스템 병목구간이나 개선 가능한 지점을 찾아내라고 함 => 비판적 사고 능력을 보이고 개선할 점을 최대한 설명해라
  • 만든 설계를 다시 요약하고 해결책을 제시한 경우에는 더욱 중요하다
  • 오류가 발생했을 때 무슨 일이 생기는지 따져 봐라
  • 운영 이슈도 논의할 수 있다
  • 미래에 닥칠 규모 확장 요구에 어떻게 대처할 것인지
  • 시간이 있다면 못 다룬 세부적 개선사항들을 제안할 수 있다

면접 때 해야 할 것

  • 질문을 통한 확인
  • 요구사항 이해
  • 정답이나 최선의 답안은 없다
  • 사고의 흐름을 이해할 수 있게 소통하라
  • 가능하다면 여러 해법을 제시하라
  • 개략적 설계에 면접관이 동의하면, 각 컴포넌트 세부사항을 설명하기 시장하라 => 가장 중요한 것부터
  • 면접관의 아이디어를 이끌어 내라
  • 포기하지 말자

면접 때 하지 말 것

  • 면접 문제 대비하고 가라
  • 요구사항이나 가정들을 분명히 하지 않은 상태에서 설계를 제시하지 말라
  • 처음부터 특정 컴포넌트의 세부사항을 너무 깊이 설명하지 말라
  • 진행 중 막히면 힌트 달라는 것을 주저하지 마라
  • 소통을 주저하지 마라
  • 설계안을 내놓는 순간 면접이 끝난다고 생각하지 말라

시간 배분
1단계 - 문제 이해 및 설계 범위 확정 (3분에서 10분)
2단계 - 개략전 설계안 제시 및 동의 구하기 (10분에서 15분)
3단계 - 상세 설계 (10분에서 25분)
4단계 - 마무리 (3분에서 5분)

profile
기술 블로그

0개의 댓글