API Gateway란?
[ Client (Web/App) ]
│
▼
┌─────────────────┐
│ API Gateway │ ← 인증/보안, 요청 라우팅, 로깅, 응답 집계
└─────────────────┘
│ │ │
▼ ▼ ▼
[Auth] [Order] [Chat] ← 마이크로서비스
API Gateway는 클라이언트와 여러 백엔드 서비스 사이의 진입 문 역할을 하는 서버입니다. Gateway 에만 요청하면 내부적으로 직접 각 서버의 포트를 몰라도 적절한 서비스로 라우팅이 가능합니다.
API Gateway를 거치면 로깅, 인증/인가, 보안 문제 같은 공통적으로 거쳐야되는 문제를 한 번에 해결할 수 있다는 장점이 있습니다.
API Gateway에서는 cache가 존재하여, 같은 요청에 대해서는 캐시에서 같은 응답을 보낼 수도 있습니다. 근데 여기서 만약 DB가 변경이 되었을 때, 캐시에는 반영이 되지 않는 동기화 문제가 생깁니다. 그래서 여러가지 방법으로 이 동기화 문제를 해결합니다.
- 짧은 TTL 설정
- 캐시 유효 시간을 짧게 두면 최신성은 올라가지만, 캐시 효과는 줄어듭니다.
- 캐시 무효화 API
- 데이터가 변경될 때, Gateway 캐시를 직접 지우거나 갱신하도록 트리거를 작동시킵니다.
- Write-through / Write-behind 패턴
- DB 업데이트 시 캐시도 동시에 갱신(write-through)
- 또는 DB 업데이트 후 캐시에 반영(write-behind).
- 이 경우 Gateway 자체보다는 Redis 같은 외부 캐시 계층을 더 많이 씀.
ALB(Application Load Balancer)란?
[ Client (Web/App) ]
│
▼
┌─────────────────┐
│ ALB (LB) │ ← 단순 부하분산, 라우팅
└─────────────────┘
│ │ │
▼ ▼ ▼
[Auth] [Order] [Chat] ← 마이크로서비스
ALB는 단순히 트래픽을 여러 인스턴스에 분배하는 역할을 한다. API Gateway와는 다르게 보안/인증/응답 같은 기능은 하지 않고 단순 부하 분산만 담당한다.
함께 쓰는 구조
[ Client ]
│
▼
┌─────────────────┐
│ API Gateway │ ← 인증, 로깅
└─────────────────┘
│
▼
┌─────────────────┐
│ ALB (LB) │ ← 서비스 인스턴스 부하 분산
└─────────────────┘
│ │ │
▼ ▼ ▼
[Auth] [Order] [Chat]
'Interview Question' 카테고리의 다른 글
[Interview Question] 프로젝트를 진행하면서 어려웠던 점? (0) | 2025.09.16 |
---|---|
[Interview Question] Kafka의 구조와 역할은 무엇인가요? (0) | 2025.09.16 |
[Interview Question] Docker를 써본 경험이 있나요? 컨테이너 vs VM 차이는 무엇인가요? (0) | 2025.09.04 |
[Interview Question] 서버 로그를 확인하고 장애를 추적하는 방법을 설명해보세요. (0) | 2025.09.04 |
[Interview Question] 캐시(Cache)는 왜 사용하나요? (0) | 2025.09.04 |