[시스템 디자인 면접 잘하는 법]
전 구글, 현 레딧 엔지니어가 실제 녹화된 시스템 디자인 모의 면접을 리뷰하면서 팁을 알려주는 영상입니다. 현재 저도 모의 면접관으로 활동하기 때문에 제가 느낀 점도 함께 공유합니다.
1️⃣ Requirement 찾는데 시간 충분히 쏟기
약 15분 동안 면접관과 함께 Requirement 이야기하는 것을 좋게 봤습니다. 저도 공감하는 게 이 단계에서 면접관인 내가 미처 생각하지 못한 질문을 하면 그 지원자가 인상 깊게 남습니다. 아는 지인에게 물어봤는데, 그분도 똑같은 말씀을 하셨습니다. 가끔 내 마음대로 가정하고 requirement를 충분히 알아내지 않은 상태에서 디자인을 시작하는 분들이 있습니다. 나중에 디자인 자체가 틀릴 수 있기 때문에 초반에 요구 조건을 잘 파악하는 것이 좋습니다.
2️⃣ Availability와 Latency에 대해 명확하게 말하기
Availability를 이야기할 때, 3 9s인지 5 9s인지 등등 구체적으로 이야기하는 것이 좋습니다. Latency 또한 구체적으로 어느 정도인지 숫자로 표현하는 것이 좋습니다. 이유는 나중에 디자인할 때 availability와 latency 요구 조건에 따라 필요한 콤포넌트가 달라질 수 있기 때문입니다.
3️⃣ 시스템에 필요한 컴포넌트부터 먼저 파악하기
필요한 컴포넌트 (마이크로 서비스, 데이터 베이스)와 컴포넌트 간의 관계 그리고 아웃풋과 인풋 등등. 이렇게 큰 그림을 먼저 그려놓은 후 컴포넌트 내 필요한 점을 세세하게 이야기하는 것이 좋다고 합니다. 면접관 입장에서는 먼저 큰 그림을 그려주면 대충 어떤 흐름으로 가는지 캐치할 수 있고, 흐름이 본인의 생각과 다르면 빨리 캐치하고 바꿀 수 있습니다.
4️⃣ 데이터 베이스 Schema 커버할 것
가장 중요한 요소 중에 하나인데, 아쉽게도 이 모의 면접에서 지원자가 커버하지 않은 부분입니다. Database Schema, Database Normalization은 꼭 커버하고 DB 기본 개념에 (primary ley, foreign key, indexing 등등) 대해 이야기하는 것은 아주 중요합니다. 그 외 어떤 타입의 데이터베이스나 스토리지를 (document-base, relational or CDNs etc) 사용하는 것이 적합한지 이야기하는 것도 중요합니다.
5️⃣ Distributed System에서 중요한 개념 커버할 것
기본적으로 Load Balancing, Caching, Sharding, Consistency 등등 Distributed System에서 가장 중요한 개념 이야기하기. 이때 중요한 것은 그냥 간단하게 넣은다고 언급하는 것뿐만 아니라, 왜 필요한지, 이 요소의 장점과 단점 등 자세히 이야기하는 것이 좋습니다.
6️⃣ 불필요한 것은 넣지 말자
영상 맨 끝에 “fast path, slow path” 디자인 패턴을 사용하는 면접 모의 지원자를 지적합니다. 예시 문제의 최대 throughput은 400/second인데 굳이 이 디자인 패턴을 사용하는 것은 적합하지 않다고 말합니다. 그리고 테크니컬한 디테일을 말씀해 주시는데, 간단하게 말하자면 불필요한 요소는 빼는 것이 좋다고 합니다. 저도 아주 공감하는 부분입니다. 시스템 디자인 인터뷰할 때, 이것저것 다 언급하며 넣은 분들이 꽤 계십니다. 이 부분은 오히려 득 보다 실이 될 수 있으며, 굳이 필요하지 않은 요소는 빼는 것이 좋습니다.
7️⃣ (추가적인 팁) 해외 취업의 경우 영어로 내 생각 명확하고 간결하게 말하는 것이 아주 중요하다
시스템 디자인할 때 영어 말하기가 아주 중요합니다. 내 생각을 명확하고 간결하게 말할 수 있어야 하며, 영상을 보면 코딩 인터뷰와 달리 대화가 길다는 것을 느낄 수 있습니다. 해외 취업 준비 중이라면 비지니스 회화도 같이 준비하는 것이 좋습니다. 유창하게 내 생각을 다른 사람과 이야기하는데 가장 중요한 것은 연습인 것 같습니다. 영어 모의 면접을 통해 실력 기르기를 하는 것이 좋습니다.
🪴 함께 읽으면 좋은 글:
[15년 동안 꾸준히 개발 공부하는 비결은?]
https://careerly.co.kr/comments/60794
[다이나믹 프로그래밍(DP)이 어려우신 분들 주목 + (알고리즘 유튜브 채널 추천 및 공부법)]
https://careerly.co.kr/comments/60463
[📚 시스템 디자인 해외 취업 인터뷰 책 추천]
https://careerly.co.kr/comments/54566