Skip to content

Latest commit

 

History

History
61 lines (43 loc) · 2.5 KB

[chap03]이준호.md

File metadata and controls

61 lines (43 loc) · 2.5 KB

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

실세계의 수 천 명의 엔지니어가 만들어낸 그런 복잡한 시스템을 설계하라는 면접은 없다

그럼 왜 시스템 설계 면접이 있을까?

  • 문제를 풀기 위해 협락하여 그 해결책을 찾아내는 과정을 시뮬레이션하기 위함.
  • 설계 과정에서 내린 결정에 대한 방어 능력, 피드백을 건설적으로 처리할 수 있음을 보인다.
  • 면접자는 지원자가 협력에 적합한지, 압박이 심해도 잘 헤쳐 나갈 수 있는지, over-engineering을 하지는 않는지 확인한다.

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

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

  • 깊이 생각하고 요구사항과 가정을 분명히 하자.
  • 중요한건 올바른 질문하기, 적절한 가정하기, 시스템 구축에 필요한 정보 수집
    • 구체적으로 어떤 기능을 만들까?
    • 사용자 수는 얼마나 될까?
    • 회사의 규모는 얼마나 빨리 커질까? (n달 뒤)미래의 규모는?
    • 회사의 주 기술 스택은?

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

면접관을 팀원인 것 처럼 대하자.

  • 설계안에 대한 청사진을 제시하고 의견을 구한다.
  • 핵심 컴포넌트를 포함하는 다이어그램을 그린다.
  • 해당 설계가 시스템 규모와 관련된 제약사항들을 만족하는지 소리를 내어 확인해본다.
  • 여유가 된다면 구체적인 사용 사례도 생각해본다.

3단계 상세 설계

  • 전체 설계 청사진 준비
  • 컴포넌트 사이의 우선순위 정하기

4단계 마무리

해야할 것

  • 질문을 통해 확인
  • 문제 요구사항 이해 // 정답이나 최선의 답은 없으니 요구사항을 정확하게 이해했는지 확인
  • 여러 해법 제시
  • 중요한 컴포넌트 부터 세부사항 설명
  • 면접관의 아이디어 이끌어내기
  • 포기하지 않기

하지 말아야 할 것

  • 전형적인 면접 문제들에 대비하지 않고서 면접장에 가지 말기
  • 요구사항, 가정이 분명하지도 않은데 설계 제시하지 않기
  • 처음부터 컴포넌트에 대해 너무 깊이 설명X
  • 막히는 부분에서 힌트요청을 주저하지 않기
  • 소통 주저하지 않기. 침묵X
  • 의견을 일찍, 자주 구하기

시간배분(일반적으로,,)

1단계 - 문제 이해 및 설계 범위 확정 310분 2단계 - 개략적인 설계안 제시 및 동의 구하기 1015분 3단계 - 상세설계 1025분 4단계 - 마무리 35분