본문 바로가기

Book

[대규모 시스템 설계 기초] 3장 시스템 설계 면접 공략법

시스템 설계 면접이란 두명의 동료가 모호한 문제를 풀기 위해 협력 하여 그 해결책을 찾아내는 과정에 대한 시뮬레이션이다.

 

엔지니어가 가져야할 가장 중요한 기술 중 하나는 올바른 질문을 하는 것, 적절한 가정을 하는 것, 그리고 시스템 구축에 필요한 정보를 모으는 것이다.

 

1단계

문제 이해 및 설계 범위 확정

예를 들어 

뉴스 포스팅 하는 것을 만들라는 프로젝ㅌ에 대한 시스템 설계를 해라

웹, 모바일 둘다 지원하는 것인지?

 

이런식으로 문제에 대한 이해도와 범위를 설계하는 것이 중요하다.

요구사항을 이해하고 모호함을 없애는 것이 이 단계에서 가장 중요하다는 것을 명심

 

2단계 

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

면접관을 마치 팀원인 것 처럼 대하여라

 

핵심 컴포넌트를 포함하는 다이어그램을 그려라, 클라이언트, API, 웹 서버, 데이터 저장소, 캐시 등등 포함항여 표현해라

 

이 최초 설계안이 시스템 규모에 관계된 제약사항들을 만족하는지 개략적으로 계산 추정이 필요한지는 면접관에게 물어보면 된다.

 

해당 내용들에 대해서는 1장에 배웠던 내용들을 설계하면 된다.

 

3단계

상세 설계

시스템에서 전반적으로 달성해야할 목표와 기능 가동 범위를 확인

전체 설계의 개략적인 청사진을 마련하고, 해당 청사진에 대한 면접관의 의견을 물어보거나, 상세 설계에서 집중해야 할 영역들을 확인해라

 

4단계 

마무리

결과물에 대해서 후속 질문을 던질수도 있고 한다.

뭐 더 추가적으로 개선하고 싶은 내용 없냐라는 질문에 없다라고 대답하지 말고, 개선할점은 언제나 있게 마련 이런 질문은 여러분의 비판적 사고 능력을 보이고, 마지막으로 좋은 인상을 남기 기회이다.

 

다시 한번 요약해주는 것도 괜찮다.

 

해당 챕터를 읽어보고 느낀점은 기회란 언제 올지 모른는 것이다. 특히 면접 혹은 다른 어떤 곳에서도 기회가 올 수 있기 때문에 매번 연습하고, 준비하는게 좋을거 같다. 매번 실패하더라도 포기하지않고 계속 도전하는 것이 결국에는 기회를 잡을 수 있는 유일한 기회라고 생각한다.