효과적인 면접을 위한 4단계 접근법
1단계 문제 이해 및 설계 범위 확정 (3-10분)
- 구체적으로 어떤 기능들 만들어야 하나
- 제품 사용자 수
- 회사 규모 얼마나 빨리 커질지/ 석 달, 여섯 달, 일년 뒤 규모는
- 회사가 주로 사용하는 기술 스택/ 설계를 단순화하기 위해 활용할 수 있는 기존 서비스는
예제: 뉴스 피드 설계
- Q. 모바일 앱 vs 웹 앱 vs 둘다? → A. 둘다
- Q. 가장 중요한 기능? → A. 새로운 포스트 올리고 다른 친구의 뉴스 피드 볼 수 있도록 하는 기능
- Q. 뉴스 피드 시간 역순 정렬? or 다른 특별한 정렬 기준?
⇒ 피드에 올라갈 포스트마다 다른 가중치 부여? → A. 시간 역순 정렬
- Q. 한 사용자 최대 몇 명 친구? → A. 5000명
- Q. 사이트로 오는 트래픽 규모? → A. 일간 능동 사용자(DAU; Daily Active User) 천만 명
- Q. 피드에 이미지 or 비디오도 올라올 수 있는지 vs 텍스트만? → A. 미디어 파일(ex. 이미지, 비디오) 가능
2단계 개략적인 설계안 제시 및 동의 구하기 (10-15분)
- 설계안에 대한 최초 청사진 제시하고 의견 구하기/ 면접관 팀원인 것처럼 대하기
- 화이트보드 or 종이에 핵심 컴포넌트 포함하는 다이어그램 그리기
- 클라이언트(모바일/웹), API, 웹 서버, 데이터 저장소, 캐시, CDN, 메시지 큐 등