728x90
효과적 면접을 위한 4단계 접근법
- 문제 이해 및 설계 범위 확정
- 개략적인 설계안 제시 및 동의 구하기
- 상세 설계
- 마무리
문제 이해 및 설계 범위 확정
- 시스템 설계 면접을 볼 때는 생각 없이 바로 답을 내서는 좋은 점수를 받기 힘들다. 요구사항을 완전히 이해하고 답을 내놓자
- 깊이 생각하고 질문하여 요구사항 가정들을 분명하게 하라
- 엔지니어가 가져야 할 가장 중요한 기술은 올바른 질문을 하는 것, 적절한 가정을 하는 것, 시스템 구축에 필요한 정보를 모으는 것이다.
- 예시 질문
- 구체적으로 어떤 기능들을 만들어야 할까요?
- 제품 사용자 수는 얼마나 될까요?
- 회사의 규모는 얼마나 빨리 성장할 것이냐? 규모가 얼마로 예상되느냐?
- 회사가 주로 사용하는 기술 스택은 무엇이며, 설계를 단순화하기 위해 활용할 수 있는 기존 서비스로는 어떤 것들이 있느냐?
개략적인 설계안 제시 및 동의 구하기
- 설계안에 대한 최초 청사진을 제시하고 의견을 구하라(면접관은 훌륭한 팀원이다.)
- 화이트보드나 종이에 핵심 컴포넌트를 포함하는 다이어그램을 그려라
- 클라이언트, API, 웹 서버, 데이터베이스, 캐시, CDN, 메시지 큐 등..
- 최초 설계안이 시스템 규모에 관계된 제약사항들을 만족하는지를 개략적으로 계산해 봐라
- 계산 과정은 소리 내어 설명하라.
- 개략적 추정이 필요한지는 면접관에게 미리 물어보자
- 시스템의 구체적 사용 사례도 몇 가지 살펴보자
- 미처 고려하지 못한 에지 케이스를 발견할 수 있고, 개략적 설계안을 잡아 나가는데 도움이 될 것이다.
상세 설계
- 해당 과정까지 왔을 경우 아래 내용들 확인이 되어야 한다.
- 시스템에서 달성해야 하는 목표와 기능 범위 확인
- 전체 설계의 개략적 청사진
- 해당 청사진에 대한 면접관의 의견 청취
- 상세 설계에서 집중해야 할 영역들 확인
- 설계 대상 컴포넌트 사이의 우선순위를 정해야 한다.
- 면접마다 다르며, 시스템 성능에 대한 질문/ 특정 시스템 컴포넌트들의 세부사항에 대한 질문 을 할 수 있다.
- 면접 시에는 시관 관리에도 주의를 기울여야 한다.
- 면접관에게 긍정적 신호를 전달하는데 집중하자! 불필요한 세부사항에 시간을 쓰지 말자
마무리
- 마무리 단계에서는 설계 결과물에 관련된 후속 질문이 들어올 수 있고, 추가 논의를 진행하도록 할 수도 있다.
- 면접 지침
- 면접관이 시스템 병목 구간 또는, 좀 더 개선 가능한 지점을 찾아내라 할 수 있다.
- 여기에 개선할 부분이 없다는 답은 하지 말자
- 개선점은 언제나 있으며, 면접자의 비판적 사고 능력을 보이고 좋은 인상을 남길 기회이다.
- 만든 설계를 다시 한번 요약해 주는 것도 도움이 된다.
- 여러 해결책을 제시한 경우에는 특히 중요하며, 면접관의 기억을 환기시켜 주는 효과도 있다.
- 오류가 발생하면 논의할 가치가 충분하다.
- 메트릭 수집은 어떻게 하고 어떻게 모니터링할 것인가 등..
- 미래에 닥칠 규모 확장 요구에 어떻게 대처할 것인지도 흥미로운 주제다.
- 시간이 남았다면 필요하지만 다루지 못했던 세부적 개선사항들을 제안해 보자
- 면접관이 시스템 병목 구간 또는, 좀 더 개선 가능한 지점을 찾아내라 할 수 있다.
시간 배분
45분의 시간이 주어진다면 어떻게 배분하는 것이 좋을까?? 참고만 하자
- 문제 이해 및 설계 범위 확정(3~10분)
- 개략적 설계안 제시 및 동의 구하기(10 ~ 15분)
- 상세 설계(10 ~ 25분)
- 마무리(3~5분)
728x90
'대규모 시스템 설계 기초' 카테고리의 다른 글
| Ch05. 안정 해시 설계 (0) | 2025.10.25 |
|---|---|
| Ch04. 처리율 제한 장치의 설계 - 상세 설계 (0) | 2025.10.18 |