💡 API Gateway
API Gateway가 무엇인지 자세하게 설명
Load Balancer와의 공통점과 차이점 설명
API Gateway는 Client → Server로 통신할 때 사용하는 많은 api들의 관문(대문) 역할을 하는 서비스
사용자가 요청한 데이터를 적절한 서버로 보내고, 서버가 응답한 결과를 사용자에게 전달하는 역할
API Gateway 사용 전
API Gateway 사용 후
많은 서비스들이 마이크로 서비스 아키텍처 형태로 구축되고 있음. 하지만 작은 단위의 서비스가 50개, 100개가 되었을 때, 이 많은 서비스들의 엔드포인트를 관리하는데 있어 어려움이 있음. 공통으로 들어가는 기능을 중복으로 개발해야한다는 문제가 발생.
이러한 문제점을 해결하기 위해 등장.
💡 마이크로 서비스
애플리케이션을 여러 작고 독립적인 서비스로 나누는 아키텍쳐. (예를들어, 배달 앱의 경우 주문, 결제, 사용자 관리, 추천 서비스 등으로 나눌 수 있다.)
단일 진입점 제공
부가적 기능 제공, 중복 구현 방지
서비스 변경에 따른 유연성 제공
/order
서비스가 /new-order
로 변경되더라도, API Gateway가 요청을 적절히 라우팅./order
로 요청을 보낼 수 있다.서버에 부하를 분산시키는 역할.
한 서버에 너무 많은 요청이 몰리면 과부하가 걸릴 수 있기 때문에, 여러 서버에 요청을 골고루 나눠주는 도우미입니다.
구분 | API Gateway | Load Balancer |
---|---|---|
목적 | 요청을 적절한 서비스로 전달 | 서버에 요청을 골고루 분배하여 부하를 줄임 |
예시 | "주문 API는 어디로 보내지?"를 결정 | "요청을 처리할 서버는 누구?"를 결정 |
초점 | API관리, 라우팅에 중점을 둔다. | 트래픽 분산, 서버 부하 관리에 중점을 둔다. |