시스템 아키텍트DevOps / 아키텍트

현대 아키텍처에서 API Gateway의 목적과 작동 원리를 설명해주세요.

Hintsage AI 어시스턴트로 면접 통과

답변.

API Gateway는 클라이언트와 내부 마이크로서비스 간의 중개 서비스입니다. 호출을 집계하고, 라우팅과 인증을 관리하며, 보안 및 제한 정책을 적용하고, 요청을 변환 및 프록시합니다.

API Gateway는 서비스의 내부 구조를 외부 세계에서 숨기고 상호 작용을 통일하기 위해 필요합니다. 이는 결합성을 줄이고 프론트엔드의 발전을 가속화하며 접근 및 로깅에 대한 중앙 집중적인 제어를 보장합니다.

nginx를 간단한 API Gateway로 설정하는 예:

server { listen 80; location /user/ { proxy_pass http://localhost:8081/; } location /order/ { proxy_pass http://localhost:8082/; } }

주요 특징:

  • 중앙 집중식 인증, 모니터링 및 로깅
  • 클라이언트에서 변경 없이 새로운 서비스를 추가할 수 있음
  • API의 라우팅 및 버전 관리를 유연하게 관리

함정 질문.

하나의 서비스가 API Gateway를 우회하여 다른 서비스에 접근할 수 있나요?

내부 서비스는 개인 시나리오를 위해 직접 호출을 사용할 수 있지만, 외부 클라이언트에게는 API Gateway가 주요 접근 방법입니다.

API Gateway는 단일 실패 지점(Single Point of Failure)인가요?

예, 클러스터링과 로드 밸런싱을 설정하지 않으면 그렇습니다. 여러 인스턴스를 실행하고 로드 밸런서를 사용하는 것이 중요합니다.

API Gateway가 응답을 캐시할 수 있나요?

예, 고급 게이트웨이는 GET 요청을 캐시할 수 있어 서비스에 대한 부하를 줄이고 데이터 반환 속도를 높입니다. Kong에서 캐시 설정 예:

plugins: - name: proxy-cache config: strategy: memory content_type: [application/json] cache_ttl: 300