• [1] API Gateway와 백엔드 서비스 간의 통신 방식은 어떻게 이루어지나요? <<<<

API Gateway와 백엔드 서비스의 통신 방식

1. 기본 개념 이해하기텍스트

  • API Gateway는 클라이언트(예: 웹 앱, 모바일 앱)와 백엔드 서비스(각 마이크로서비스) 사이의 중간 관리자 역할을 합니다.
  • 클라이언트가 요청을 보내면, API Gateway가 이를 받아서 적절한 백엔드 서비스로 전달하고, 그 결과를 다시 클라이언트에게 반환합니다.

2. 통신의 흐름

  1. 클라이언트 → API Gateway

    • 사용자가 앱에서 버튼을 클릭하면 요청(예: 주문 내역 보기 요청)이 API Gateway로 전송됩니다.
    • 요청은 주로 HTTP(S) 프로토콜을 사용하며, REST API나 GraphQL 형식으로 이루어집니다.
  2. API Gateway → 백엔드 서비스

    • API Gateway는 요청을 분석하고, 적합한 백엔드 서비스로 전달합니다.
    • 이 과정에서 라우팅(Routing)이라는 작업이 이루어집니다. (어떤 요청이 어느 서비스로 가야 하는지 결정)
  3. 백엔드 서비스 → API Gateway

    • 백엔드 서비스는 요청을 처리한 뒤 결과를 API Gateway로 다시 보냅니다.
  4. API Gateway → 클라이언트

    • API Gateway는 백엔드 서비스로부터 받은 응답을 클라이언트에 반환합니다.

실제 통신 방식

1. HTTP/HTTPS 프로토콜

  • API Gateway와 백엔드 서비스 간의 통신은 주로 HTTP(S) 프로토콜을 사용합니다.
  • 클라이언트가 요청한 URL, 데이터, 인증 정보 등이 포함됩니다.

2. REST API와 JSON

  • 요청과 응답은 보통 JSON 형식으로 이루어집니다.
    • 예: { "userId": 123, "orderId": 456 }
  • REST API는 요청을 보내는 방식입니다:
    • GET: 데이터를 조회
    • POST: 데이터를 생성
    • PUT: 데이터를 수정
    • DELETE: 데이터를 삭제

3. 라우팅과 로드밸런싱

  • API Gateway는 라우팅 테이블을 사용해 요청을 어디로 보낼지 결정합니다.
    • 예: /orders 요청은 주문 서비스로, /users 요청은 사용자 서비스로.
  • 로드밸런싱 기능으로 여러 서비스 인스턴스 중 하나를 선택해 트래픽을 분산시킵니다.

4. 추가 기능: 인증과 변환

  • 요청이 백엔드로 전달되기 전에, API Gateway가 인증/인가(Authorization)를 확인합니다.
  • 요청/응답 데이터를 변환하거나 추가 데이터를 덧붙이기도 합니다.

예시로 쉽게 이해하기

🍕 피자 가게 예시

  1. 고객이 피자 주문을 요청(클라이언트 → API Gateway).
  2. API Gateway는 "이건 주문 관련 요청이네"라고 판단하고, 주문 처리 팀에 전달(백엔드 서비스).
  3. 주문 처리 팀에서 "주문이 완료되었습니다"라고 응답(API Gateway로).
  4. API Gateway는 이 메시지를 고객에게 전달(클라이언트).

API Gateway와 백엔드 간의 핵심 기술 요소

1. **라우팅**: 요청을 적절한 서비스로 전달.
2. **인증 및 보안**: 올바른 요청인지 확인 후 전달.
3. **데이터 변환**: 클라이언트 요청을 백엔드가 이해할 수 있게 변환하거나, 
                  백엔드 응답을 클라이언트가 이해하기 쉽게 변환.
4. **로드밸런싱**: 트래픽을 균등하게 분배해 과부하 방지.

핵심 요약

  • API Gateway는 요청을 백엔드 서비스로 라우팅하고, 응답을 클라이언트로 반환합니다.
  • 통신은 주로 HTTP/HTTPS와 JSON 형식으로 이루어집니다.
  • 추가로 인증, 로드밸런싱, 데이터 변환 같은 기능을 통해 효율적이고 안전한 통신을 지원합니다.


  • [1] API Gateway에서 사용하는 로드밸런싱은 어떻게 작동하나요? >>>>>
  • [2] REST API와 GraphQL의 차이는 무엇인가요?
  • [3] API Gateway와 프록시 서버(NGINX, HAProxy)는 어떻게 다른가요?
profile
@mgkick

0개의 댓글