1과제에 대한 내용은 10개 정도면 충분한 것 같고.. 일단 2과제에 대한 내용들을 공부하다가 1과제 부족한 내용들 다시 정리하고 그런식으로 진행할 것 같다.
규모에 상관없이 API 생성, 유지 관리, 모니터링과 보호를 할 수 있게 해주는 서비스. 말 그대로 Client에서 Server로 통신할 때 사용하는 많은 api들의 대문(게이트웨이)과 같은 역할을 한다고 보면됨.
즉, API가 지나가는 통로임.
API Gateway를 이용하면 통합적으로 엔드포인트와 RestAPI를 관리할 수 있음.
API 게이트웨이를 등록해주면, 모든 클아이언트는 각 서비스의 엔드포인트 대신 API Gateway로 요청을 전달하여 관리가 용이해짐. 사용자가 설정한 라우팅 설정에 따라 각 엔드포인트로 클라이언트를 대리하여 요청하고 응답을 받으면 다시 클라이언트에게 전달하는 프록시 역할을 하기 때문.
API gateway 서비스는 단순히 api 경유지 역할 뿐만 아니라, 엔드포인트 서버에서 공통으로 필요한 인증/인가, 사용량 제어, 요청/응답 변조 등의 다양한 기능을 플러그인 형태로 제공하고 있따.
이러한 플러그인을 API 게이트웨이에서 사용하면, 각 엔드포인트의 서버마다 위의 기능들을 구현하지 않아도되기 때문에 개발자 입장에서는 개발 비용을 줄일 수 있음.
특히 API Gateway를 통해 Lambda와 연동하여 Serverless 서비스를 구축하는데 많이 사용됨.
뭐 예를 들면 fetch('example.io/a') -> example.org 이런식으로 유기적으로 목적지를 지정할 수 있다.'
대표적으로 3가지가 있다.
HTTP API : API 프록시 기능 정도만 필요할때 적합, 단순 / 저렴하고 빠름.
REST API : API 관리 기능, 요청/응답에 대한 제어가 필요할 경우 적합, 복잡/비싸고 느림.
WebSocket API : 웹 소켓 용도. 실시간 애플리케이션에서 주로 사용한다.
간략하게 개념을 살펴봤고, 다음편에선 실습을 진행하도록 하겠다.