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

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

  • 시스템 설계 면접시 바로 답을 내지 말자
  • 요구사항을 완전히 이해하지 않고 답을 내놓는 행위는 아주 엄청난 부정적인 신호다.
  • 답부터 들이밀지말고 속도를 늦춰라 깊이 생각하고 질문하여 요구사항과 가정들을 분명히 하라
  • 올바른 질문, 올바른 가정을 하는것 그리고 시스템 구축에 필요한 정보를 모으는것이 중요하다.

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

  • 설계안에 대한 최초 청사진을 제시하고 의견을 구하라
    • 면접관을 마치 팀원인것처럼 대하라

  • 화이트보드나 종이에 핵심 컴포넌트를 포함하는 다이어그램을 그려라
    • 클라이언트, API, 웹 서버, 데이터 저장소, 캐시 CDN, 메시지 큐 같은것들이 포함된다.

  • 이 최초 설계안이 시스템 규모에 관계된 제약사항들을 만족하는지를 개략적으로 계산해보라.
    • 이런 추정이 필요한지는 미리 면접관에게 물어보도록 하자.

3단계 상세 설계

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

  • 시스템의 성능 특성에 대한 질문을 던질것이다.
  • 그 경우 질문 내용은 시스템의 병목 구간이나 자원 요구량 추정치에 초점이 맞춰져 있을 것이다.
  • 대부분의 경우 면접관은 우리가 특정 시스템 컴포넌트들의 세부사항을 깊이 있게 설명하는 것을 보길 원한다.

4단계 마무리

  • 면접관이 더 개선 가능한 지점을 찾아달라고 할 가능성이 있다.
  • 이럴때 완벽하다느니 찾을곳이 없다느니 이런말은 하지 말자

  • 우리가 만든 설계를 다시 요약해주는 것도 도움이 될 수 있다.
  • 우리가 해결책을 제시했을 경우 특히 중요하다.

  • 오류가 발생하면 무슨일이 생기는지 ( 서버오류, 네트워크 장애 등 ) 따져보면 흥미로울 것
  • 운영 이슈도 논의할 가치가 충분하다.
    • 메트릭은 어떻게 수집하고 모니터링 할것인가 ?
    • 로그는 ?
    • 시스템은 어떻게 배포해 나갈것인가 ?
  • 미래에 닥칠 규모 확장 요구에 어떻게 대처할 것인지도 흥미로운 주제다.

+ Recent posts