
웹의 본질은 요청(Request)와 반환(Response)이라는 두 가지 주체로 구성된다.
요청(Request)하는 쪽을 클라이언트,
반환(Response)혹은 서비스 제공자는 서버가된다.
웹 서버 개수 Monolithic 단일 vs MSA 다중
- Monolithic 모놀리딕 : 단일 웹 서버로 다수 서비스 제공
- 하나의 서버가 모든 서비스를 관장
- 단점 : 한쪽 서비스가 문제가 생기면 모든 서버에 영향을 주어 기타 서비스들 모두 사용 불가
- SPOF (Single Point of Failure) : 단일 이슈가 전체 이슈로 퍼지는 경우

- MSA (Micro Service Architecture) : 다수 웹 서버로 각각 개별 서비스 제공(하나의 서버는 하나의 서비스만 관장)
- 장점 : 한쪽 서비스 = 하나의 서버, 하나의 서비스 문제가 다른 서버 문제로 전파되지 않음
- 참조 : 편의 상 ‘하나의 서버’ 라고 설명한 것 (로드밸런서 + 다중 서버 구성 가능)
- 서비스마다 서버가 많아지면 수백개도 충분히 가능
- 단점 : 수많은 서버 속 어떤 서버의 어떤 API 를 사용해야할지 정리정돈, 버전관리 안됨
- 그래서 등장한것이 API GW (Gateway) = 모든 서버에 대한 모든 API 호출을 중앙화
- 특징 1 : 각 서버마다 어떤 API 를 제공하는지 Swagger 를 통해 버전 관리
- 특징 2 : 어떤 서버의 API 를 어떤 서버가 사용할지 Consumer(소비자) - Producer(제공자) 관리
- 특징 3 : Consumer와 Producer 간의 트래픽을 조율합니다.

실제 현업에서 API GW 는 어떻게 사용되는가?
다수의 웹 서버를 한데 묶어서 웹 서버간의 소통을 관할하는 API GW 는 다음 2개를 중앙화해놓는다