[가상 면접 사례로 배우는 대규모 시스템 설계기초] 3장 시스템 설계 면접 공략법

매번 개발이 새롭다·2022년 12월 4일
0

글의 시작

  • 이력서 검토 이후에 시스템 설계 면접 과정을 위한 여러 팁이 사실 필요하고 이 내용에 대해서 전반적인 팁을 이야기 하고 있다. 면접관마다 성향이 달라서 사실 반응은 다르게 맞춰서 해야하는 것은 사실이지만 해당 면접의 의도와 대처할 방향에 대해서 이야기를한다. 시스템 설계 멵버은 지원자의 설계 능력의 기술적 측면을 평가하는 자리일뿐만 아니라 협력에 적합한 사람인지, 압박이 심한 상황도 잘 헤쳐 나갈수 있는지, 모호한 문제를 건설적으로 해결할 능력이 있는지도 본다고 한다. (좋은 질문을 통해서 부정적인 신호를 파악하려는 것) 당연히 설계 점수의 비중이 높을수 있지만 설계 과정에서 내린 결정들에 대한 방어능력, 피드백에 대한 건설적인 방식으로 처리도 중요하다는 뜻이다.

관련 내용

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

  • 문제 이해 및 설계 범위 확정
    - 바로 답부터 들이 미는 것이 아닌 깊이 생각하고 질문하여 요구사항과 가정을 확실히 하여 제대로 설계 하는 것이 중요하다. 올바른 질문을 하고 가정을 하고 시스템 구축에 대한 필요한 정보를 잘 모아야한다.
    • 구체적으로 어떤 기능이 필요한지, 제품 사용자수나 이용율들이 어떻게 되는지 서비스의 규모가 어느 상황으로 커지는지, 기술 스택이 무엇이 주어지는지 정확한 파악을 위한 인터뷰가 필요하다.
  • 개략적인 설계안 제시 및 동의 구하기
    - 간략한 프로토타입을 제시하고 피드백을 구하며 동료와 일하는 것 처럼 협력해서 진행하면 좋다고 하며, 다이어그램과 같이 시각화를 통해서 이해를 시키는 것이 좋다고 한다. 그리고 규모와 기능이 제약사항들을 만족하는지 개략적으로 추산하며 면접관에게 설득 및 설명을 하며 진행하는 것이 좋다고 한다. 구제적 사용 사례도 물어보면서 하는 것도 좋고, API엔드포인트나 데이터 베이스 스키마도 보여여 하는지의 대한 의견을 물어봐서 현재 문제의 상황에 따라 정확한 요구에 대한 파악이 중요하다. (일반적으로 큰 규모의 추상적인 설계는 필요 없을수 있다.)
  • 상세 설계
    • 면접관이 현 면접의 의도에 맞춰서 우선순위에 맞춰 설계를 해야한다. 같은 면접이란 존재할 가능성이 적고 어떤 경우에는 장애나 성능에 주요 포인트를 어떤 경우에는 컴포넌트의 세부사항에 관심 포인트가 있을수 있다.
  • 마무리
    • 추가로 개선해야할 지점에 대해서 물어볼 가능성이 있고 없다고 이야기 하는 것 대신 여러가지 아이디어를 최대한 제안해보는 것이 좋다.
    • 설계를 다시 한번 요약해주자
    • 오류,운영이슈,운영에 대한 노하우, 확장, 세부 컴포넌트 설계에 대한 부분이 추가로 들어올수 있다.

요약

  • 질문을 통해 문제를 파악하고 요구사항을 정확히 이해
  • 정답이나 최선의 답안은 없다.
  • 면접관이 나를 잘 이해할수 있도록 설명해라
  • 여러 해법들을 같이 제시해라
  • 면접관이 설계에 대해 동의한다면 우선순위에 맞춰서 세부 컴포넌트를 설계해라
  • 면접관의 아이디어를 유도해라
  • 포기하자 말자
  • 전형적인 면접 문제들에도 대비하지 않은 상태에서 면접장에 가지 말라.
    - 사실 이 부분에 공감이 간것이 준비를 너무 안한 상태에서 자신의 능력을 과신하고 예상치 못한 input이 올 경우 큰 당황을 했던 경험이 존재
  • 요구사항이나 가정이 분명치 않은 경우에 설계를 바로 제시하지 말라.
  • 특정 컴포넌트부터 세부적으로 들어가지 말고 개략적 설계를 마친 뒤에 들어가라.
  • 진행중에 막혔다면 힌트를 청해라
  • 침묵속이 아닌 소통을 자주 하며 진행해라.
  • 설계안을 내놓은 순간이 끝이 아닌 끝날때까지 끝난게 아니라고 생각해라. 그리고 면접관의 의견을 일찍 자주 구해라.
  • 시간 관리를 잘해라
profile
기억력이 좋지 않은 개발자, 직장인 그리고 꿈이 있다.

0개의 댓글