마이크로서비스 면접 질문
작성자 Aaron Cao · 업데이트

마이크로서비스 면접은 프레임워크 잡학보다 서비스 경계, 통신 방식 선택, 데이터 일관성, 장애 처리 능력을 평가합니다. 모놀리스를 분리하고, 동기 호출을 비동기 메시징과 비교해 근거를 제시하고, 서비스 간 데이터를 어떻게 올바르게 유지하는지 설명하고, 하나의 요청을 처음부터 끝까지 추적할 준비를 하세요.
마이크로서비스 면접은 실제로 무엇을 평가할까요?
패턴 이름을 읽어봤고 서킷 브레이커가 하는 일을 술술 말할 수 있어도, 정작 패널이 무엇을 듣고 있는지는 여전히 알 수 없습니다. 이 섹션은 면접관이 평가하는 네 가지 영역을 보통 확인하는 순서대로 짚어봅니다. 각 항목은 어휘 질문의 탈을 쓴 판단력 질문입니다.
- 분해. 어디서 자르고, 왜 그곳에서 자르나요? 면접관은 기술 계층이 아니라 비즈니스 기능이나 데이터 소유권을 따라 그어진 경계를 원합니다.
- 통신. 동기 요청/응답과 비동기 이벤트 중 무엇을 쓰고, 각각에서 무엇이 깨지나요? 원하는 답은 선호가 아니라 트레이드오프입니다.
- 데이터. 서비스당 데이터베이스 하나라는 원칙은 서비스 간 조인도, 분산 트랜잭션도 없다는 뜻입니다. 그럼에도 시스템을 어떻게 올바르게 유지하나요?
- 운영. 배포, 버전 관리, 추적, 그리고 한 서비스가 다운이 아니라 느려졌을 때 새벽 세 시에 벌어지는 일.
이 중 어느 것도 프레임워크에 관한 것이 아님을 눈여겨보세요. 체크아웃과 재고를 왜 분리했는지 설명하는 지원자는 애노테이션 목록을 나열하는 지원자보다 언제나 더 높은 점수를 받습니다.
분해와 통신에 관한 질문 중 가장 자주 나오는 것은?
다음은 대부분의 마이크로서비스 면접을 여는 질문들이며, 각 질문 아래에서 면접관이 실제로 확인하는 것입니다.
- 이 모놀리스를 어떻게 서비스로 나누시겠습니까? 비즈니스 기능과 데이터 소유권을 따라 자르는지, 아니면
controller,service,repository계층을 따라 자르는지를 확인합니다. 후자로 답하면 분산 모놀리스가 만들어집니다. - 두 서비스는 서로 어떻게 통신하나요? 각 선택의 대가를 짚어낼 수 있는지 확인합니다. 동기 호출은 단순한 사고 모델을 주지만 가용성을 결합시키고, 비동기 이벤트는 가용성을 분리하는 대신 프로덕트 오너에게 설명해야 할 최종 일관성을 남깁니다.
- 분산 모놀리스란 무엇이고 어떻게 피하나요? 함께 배포되어야 하는 서비스는 사실상 분리된 것이 아니라는 점을 아는지 확인합니다.
- 서비스는 얼마나 커야 하나요? 특정 수치에 기대지 않는지 확인합니다. 크기는 경계와 그것을 소유한 팀을 따라갑니다.
- API 게이트웨이가 필요한가요, 무슨 역할을 하나요? 라우팅, 인증, 속도 제한을 비즈니스 로직에서 분리할 수 있는지 확인합니다.
- 서비스들은 서로를 어떻게 찾나요? 서비스 디스커버리에 대한 기본 이해와, 하드코딩된 호스트가 확장된 환경에서 왜 실패하는지를 확인합니다.
모든 답변에서 트레이드오프를 소리 내어 말하세요. 패널은 머릿속으로만 조용히 비교한 것에는 점수를 줄 수 없습니다.
데이터와 장애 질문에는 어떻게 답해야 할까요?
면접의 승패는 대부분 여기서 갈립니다. 이 질문들에는 깔끔한 정답이 없는데, 지원자들은 외워둔 답을 꺼내 쓰기 때문입니다.
- 서비스 간 데이터 일관성을 어떻게 유지하나요? 먼저 제약 조건을 짚으세요. 서비스 간 트랜잭션은 존재하지 않습니다. 그다음 이벤트로 조율되거나 코디네이터가 오케스트레이션하는 사가를 설명하고, 시스템이 최종적으로 일관된다는 점과 그 간극 동안 사용자에게 무엇이 보이는지를 분명히 말하세요.
- 다운스트림 서비스가 느려지면 어떻게 되나요? 타임아웃, 백오프를 둔 재시도, 그리고 느린 의존성이 스레드 풀을 고갈시키지 않도록 하는 서킷 브레이커. 느린 것은 다운된 것보다 나쁘며, 이를 언급하는 것이 실전 경험을 드러냅니다.
- 재시도를 안전하게 만들려면 어떻게 하나요? 멱등성입니다. 쓰기 경로에 멱등성 키를 두면 재시도된 결제도 한 번만 청구됩니다.
- 여러 단계로 이루어진 흐름에서 부분 장애는 어떻게 처리하나요? 롤백이 아니라 보상 작업입니다. 환불이나 예약 해제가 어떤 모습인지 설명하세요.
- 여섯 개 서비스를 거친 요청은 어떻게 디버깅하나요? 모든 홉을 거쳐 전파되는 상관관계 ID를 이용한 분산 추적, 그리고 구조화된 로그와 메트릭.
한 퍼블릭 클라우드 업체의 L5 플랫폼 직무 면접에서, 한 백엔드 엔지니어가 사가 질문을 받고 패턴 용어로 단번에 답했지만 고객에게 무엇이 보이는지는 전혀 언급하지 않았습니다. 일관되지 않은 구간 동안 주문 페이지에 무엇이 표시되는지를 묻는 후속 질문이야말로 실제로 합격을 가르는 질문입니다. 첫 번째 답뿐 아니라 두 번째 답까지 준비하세요.
직무와 주제별 더 많은 질문 모음은 직무별 면접 질문에서 확인할 수 있습니다.
이걸 소리 내어 연습하려면 어떻게 해야 할까요?
이 목록을 읽으면 익숙하다는 느낌이 들지만, 낯선 사람이 질문을 던지고 기다리는 순간 그 느낌은 사라집니다. 패턴을 아는 것과 약간의 압박 속에서 그것을 설명하는 것 사이의 간극이야말로 시스템 설계 면접의 모든 난이도이며, 이는 오직 말함으로써만 좁혀집니다.
주문 처리나 회원가입처럼 잘 아는 흐름 하나를 골라, 경계, 통신 방식 선택, 일관성 이야기, 장애 이야기까지 전체 분해 과정을 소리 내어 설명해 보세요. 문장을 다시 시작하지 않게 될 때까지 반복하세요. 후속 질문을 던지고 음성으로 답할 수 있는 AI 면접관을 상대로 이 연습을 모의 면접 모드에서 해볼 수 있으며, 이는 메모를 다시 읽는 것보다 실전에 훨씬 가깝습니다.
SubcueAI의 창립자인 Aaron Cao는 콘텐츠 전달이 아니라 바로 이 간극을 중심으로 연습 모드를 설계했습니다. 질문 목록은 어디에서나 무료로 구할 수 있지만, 지원자에게 정작 부족한 것은 누군가 기다리는 동안 답을 말해보는 반복 경험입니다. 실제 면접 중에는 데스크톱 앱과 브라우저 확장 프로그램의 사이드 패널이 면접관이 말하는 동안 구조화된 프롬프트를 띄워줄 수 있지만, 리허설을 거친 설명은 언제나 처음 읽는 설명을 이깁니다. 어시스턴트가 무엇을 하고 무엇을 하지 않는지는 제품 개요에서 확인할 수 있습니다.