[시스템 디자인 면접 잘하는 법] 전 구글, 현 레딧 엔지니어가 실제 녹화된 시스템 디자인 모의 면접을 리뷰하면서 팁을 알려주는 영상입니다. 현재 저도 모의 면접관으로 활동하기 때문에 제가 느낀 점도 함께 공유합니다. 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

Senior Engineer Breaks Down Systems Design Interview

YouTube

Senior Engineer Breaks Down Systems Design Interview

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 7월 2일 오후 3:17

 • 

저장 53조회 4,832

댓글 0

    함께 읽은 게시물

    차세대 파이썬 패키지 매니저 uv 소개 영상

    h

    ... 더 보기

    Gemini 2.5 모델의 프롬프트 캐싱도 이제 자동 캐싱을 지원하는군요. 가장 기다렸던 기능!


    요약하면 Flash 는 1024 토큰 이상일 때, Pro 는 2048 토큰 이상일 때 발동!되며, 캐싱된 토큰의 비용은 75% 할인.


    자세한 토큰 갯수 단계나 캐시 만료 시간이 기재되어 있진 않은데, 써 보면서 파악을 해 봐야겠습니다. 챗봇류에서는 선택적으로 사용하면 될 것 같고, 배치성 잡에는 여전히 명시적 캐싱이 낫긴하겠네요.


    Oblivious HTTP(Swift 프라이버시 보호 HTTP 프로토콜)

    ... 더 보기

    Oblivious HTTP support in Swift (feat. privacy)

    iOYES

    Oblivious HTTP support in Swift (feat. privacy)

    무너지고 있는 프론트엔드, 백엔드 직군의 경계에 대한 고찰

    AI 기술이 우리 일상과 산업 전반에 스며들면서 소프트웨어 개발 환경 역시 큰 변화의 물결을 맞이하고 있다. 특히 코딩을 돕는 AI 에이전트의 등장은 개발 생산성에 대한 큰 변화를 만들고 있다. 나 역시 이러한 변화를 체감하며, 나에게 익숙한 소프트웨어 개발의 대표적인 두 축인 프론트엔드와 백엔드 영역에서 AI 기술이 미치는 영향과 그로 인해 변화하는 소프트웨어 엔지니어의 역할에 대해 개인적인 생각을 정리해 본다.

    ... 더 보기

     • 

    저장 32 • 조회 3,814


    타입 안전한 API 모킹으로 프론트엔드 생산성 높이기

    이번에 우아한형제들 기술 블로그에 "타입 안전한 API 모킹으로 프론트엔드 생산성 높이기"라는 새 글을 발행하게 되었습니다.

    ... 더 보기

    Introducing swiftly 1.0

    S

    ... 더 보기

    swiftly 1.0

    iOYES

    swiftly 1.0