- 구체적으로 어떤 기능들을 만들어야 하나?
- 제품 사용자 수는 얼마나 되나?
- 회사의 규모는 얼마나 빨리 커지리라 예상하나? 석달, 여섯달, 일년 뒤의 규모는 얼마가 되리라 예상하는가?
- 회사가 주로 사용하는 기술 수택은 무엇인가? 설계를 단순화하기 위해 활용할 수 있는 기존 서비스로는 어떤 것들이 있는가?
- 설계안에 대한 최초 청사진을 제시하고, 의견을 구하라.
- 화이트보드나 종이에 핵심 컴포넌트를 포함하는 다이어그램을 그려라.
- 이 최초 설계안이 시스템 규모에 관계된 제약사항들을 만족하는지를 개략적으로 계산해라.
- 시스템에서 전반적으로 달성해야 할 목표와 기능 범위 확인
- 전체 설계의 개략적 청사진 마련
- 해당 청사진에 대한 면접관의 의견 청취
- 상세 설계에서 집중해야 할 영역들 확인
이 단계에선 면접관은 설계 결과물에 관련한 몇가지 후속 질문을 던질 수 도 있고, 스스로 추가 논의를 진행하도록 할 수도 있다.
시스템 병목구간, 개선 가능한 지점 등
- 질문을 통해 확인하라.
- 문제의 요구사항을 이해해라.
- 정답이나 최선의 답안 같은 것은 없다는 점을 명심하라.
- 면접관이 여러분의 사고흐름을 이해할 수 있도록 하라 - 면접관과 소통해라.
- 가능하다면 여러 해법을 함께 제시해라.
- 개략적 설계에 면접관이 동의하면, 각 컴포넌트의 세부사항을 설명하기 시작하라.
- 면접관의 아이디어를 이끌어내라
- 포기하지 마라.
- 전형적인 면접 문제들에도 대비하지 않은 상태에서 면접장에 가지마라.
- 요구사항이나 가정들을 분명히 하지 않은 상태에서 설계하지마라.
- 처음부터 특정 컴포넌트의 세부사항을 너무 깊게 설명하지 마라.
- 진행 중에 막혔다면, 힌트를 청하기를 주저하지 마라.
- 다시 말하지만, 소통을 주저하지 마라.
- 설계안을 내놓는 순간 면접이 끝났다고 생각하지 마라.
45분 또는 1시간의 면접 시간이 충분하지 않을 수 있어 각 단계에 어느 정도 시간을 할애할 수 있는지 생각하면서 면접에 임하자.