시스템 설계 · 심화
동기식 REST API와 비동기식 이벤트 기반 API를 혼합하여 사용하는 하이브리드 아키텍처를 설계할 때 고려해야 할 핵심 요소들은 무엇이며, 일관성 모델(예: 최종 일관성) 및 오류 처리, 모니터링 측면에서 발생할 수 있는 도전 과제와 해결 전략을 설명하시오.
힌트 · 메시지 브로커 활용, 멱등성, 데드 레터 큐, 분산 트레이싱, 그리고 각 API의 적절한 사용 시점을 고려합니다.
API Gateway메시지 큐멱등성분산 트랜잭션관측성
모범답안
하이브리드 아키텍처 설계 시 동기/비동기 API의 목적을 명확히 구분하는 것이 중요합니다. 사용자에게 즉각적인 응답이 필요한 작업은 동기 REST API로, 시간이 걸리거나 백그라운드 처리가 가능한 작업은 비동기 이벤트 기반 API로 처리하는 것이 좋습니다.
일관성 모델은 최종 일관성을 고려해야 하며, 데이터 정합성을 위해 멱등성을 보장해야 합니다. 메시지 큐를 사용하여 이벤트 전달을 안정적으로 관리하고, 데드 레터 큐를 통해 실패한 메시지를 격리하여 재처리하거나 분석할 수 있습니다.
오류 처리는 API Gateway에서 공통적으로 처리하고, 분산 트랜잭션 관리를 통해 데이터 불일치를 최소화해야 합니다. 모니터링은 분산 트레이싱 도구를 활용하여 API 호출 흐름을 추적하고, 로그 수집 및 분석을 통해 시스템 상태를 지속적으로 관찰해야 합니다. 각 API의 성능 지표를 수집하고 시각화하여 이상 징후를 빠르게 감지하는 것이 중요합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 API 설계 면접 질문
- URI, Header, Query Parameter, Content Negotiation 등 다양한 API 버전 관리 전략의 장단점을 비교하고, 대규모 서비스에서 여러 클라이언트와 빠르게 진화하는 요구사항을 동시에 만족시키면서 API 호환성을 유지하기 위한 최적의 버전 관리 전략과 그 이유를 설명하시오.
- RESTful API 설계에서 HATEOAS(Hypermedia as the Engine of Application State) 원칙을 실질적으로 적용했을 때의 이점과 직면할 수 있는 기술적, 운영적 어려움은 무엇이며, 이러한 어려움을 극복하고 HATEOAS를 효과적으로 활용하기 위한 구체적인 방안을 제시하시오.
- 마이크로서비스 아키텍처에서 API Gateway가 단순한 라우팅 기능을 넘어, 서비스 메시(Service Mesh) 환경과 연계하여 고급 보안 정책 적용, 트래픽 관리(서킷 브레이커, 타임아웃), 데이터 변환 및 집계 등의 역할을 수행하도록 설계하는 방안에 대해 논하시오.
- 분산 환경에서 공정하고 효율적인 API Rate Limiting을 구현하기 위한 다양한 알고리즘(예: 토큰 버킷, 리키 버킷, 고정 윈도우, 슬라이딩 로그 윈도우)을 비교 분석하고, 특정 사용자의 버스트 트래픽을 허용하면서도 시스템 전체의 안정성을 유지하기 위한 고급 전략을 제시하시오.
- 복잡한 데이터 모델과 다양한 클라이언트 요구사항을 가진 대규모 서비스에서 GraphQL을 도입했을 때 REST API 대비 얻을 수 있는 이점과 발생하는 새로운 아키텍처적 도전 과제(예: 캐싱, N+1 문제, 보안, 모니터링)는 무엇이며, 이들을 효과적으로 해결하기 위한 방안을 설명하시오.