gateway

An API Gateway acts as a single entry point for clients accessing multiple backend microservices, handling requests, routing them to appropriate services, and a...

API 게이트웨이는 백엔드 서비스로 향하는 모든 클라이언트 요청의 진입점 역할을 하는 서버입니다. 클라이언트 애플리케이션과 마이크로서비스 또는 모놀리식 백엔드 사이에 위치하여, 기본 아키텍처를 추상화하고 클라이언트 상호 작용을 단순화합니다. API 게이트웨이의 주요 기능에는 요청 라우팅, 요청/응답 변환, 인증 및 권한 부여, 속도 제한, 캐싱, 로깅 및 모니터링이 포함됩니다. 이러한 교차 관심사(cross-cutting concerns)를 중앙 집중화함으로써, 게이트웨이는 여러 백엔드 서비스에 걸쳐 중복되는 것을 방지하여 더 깨끗하고 유지보수하기 쉬운 코드를 생성합니다. 요청 라우팅은 요청 경로, 헤더 또는 기타 기준에 따라 적절한 백엔드 서비스로 들어오는 API 호출을 전달합니다. 변환을 통해 게이트웨이는 요청이나 응답을 수정할 수 있습니다. 예를 들어, 데이터 형식을 변경하거나(예: XML에서 JSON으로) 여러 서비스의 데이터를 집계할 수 있습니다. 보안은 중요한 측면입니다. 게이트웨이는 인증(클라이언트 신원 확인) 및 권한 부여(클라이언트가 요청된 리소스에 액세스할 권한이 있는지 결정)를 처리할 수 있으며, 종종 ID 제공자 또는 토큰 유효성 검사 서비스와 통합됩니다. 속도 제한은 너무 많은 요청으로 백엔드 서비스가 과부하되는 것을 방지하며, 캐싱은 자주 요청되는 데이터를 게이트웨이에서 직접 제공하여 성능을 향상시킬 수 있습니다. 이 아키텍처 패턴은 특히 마이크로서비스 아키텍처에서 널리 사용되며, 수많은 분산 서비스의 복잡성을 관리하는 데 도움이 됩니다.

        graph LR
  Center["gateway"]:::main
  Rel_load_balancer["load-balancer"]:::related -.-> Center
  click Rel_load_balancer "/terms/load-balancer"
  Rel_internet_of_things_iot["internet-of-things-iot"]:::related -.-> Center
  click Rel_internet_of_things_iot "/terms/internet-of-things-iot"
  Rel_grid_computing["grid-computing"]:::related -.-> Center
  click Rel_grid_computing "/terms/grid-computing"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 지식 테스트

1 / 1

🧒 5살도 이해할 수 있게 설명

[API](/ko/terms/api) 게이트웨이는 큰 사무실 건물의 친절한 접수원과 같습니다. 방문객(앱의 요청)을 올바른 부서(백엔드 서비스)로 안내하고, 방문객이 내부 구조를 알 필요 없이 허가된 사람만 출입하도록 합니다.

🤓 Expert Deep Dive

API 게이트웨이 패턴은 클라이언트를 위한 단일 통합 인터페이스를 제공함으로써 분산 시스템, 특히 마이크로서비스의 관리 문제를 해결합니다. 주요 아키텍처 고려 사항에는 중앙 집중식 게이트웨이(단일 진입점)와 분산형(서비스별 또는 도메인별 게이트웨이) 중 하나를 선택하는 것이 포함됩니다. 중앙 집중식 게이트웨이는 클라이언트 상호 작용을 단순화하고 일관된 정책을 적용하지만 병목 현상 및 단일 실패 지점이 될 수 있습니다. 분산형 게이트웨이는 더 나은 확장성과 장애 격리를 제공하지만 정책 중복으로 이어질 수 있습니다. 일반적인 구현 패턴에는 Backend For Frontend (BFF) 패턴이 있으며, 여기서 특화된 게이트웨이는 다양한 클라이언트 유형(예: 모바일, 웹)의 특정 요구 사항을 충족합니다. 프로토콜 변환(예: REST에서 gRPC로) 및 요청 집계에서 게이트웨이의 역할은 클라이언트를 백엔드 서비스 진화에서 분리하는 데 중요합니다. 성능 영향은 추가 네트워크 홉과 처리 오버헤드에서 발생하므로 효율적인 라우팅, 캐싱 및 잠재적으로 비동기 처리가 필요합니다. JWT 유효성 검사 또는 OAuth 2.0 토큰 검사와 같은 게이트웨이 수준에서의 보안 적용은 중요한 보안 모범 사례입니다.

📚 출처