Show GN: Cloudflare Workers에서 사용 가능한 API Gateway를 소개합니다.
(github.com/day1swhan)Cloudflare Workers 같이 npm을 사용하지 못하는 환경에서 "딸깍"으로 사용 가능한 API Gateway를 소개합니다.
Workers를 이용한 API 서버를 운영하던 중 Switch 문으로 요청 처리하다 열받아서 Express.js 스타일의 API Gateway를 만들게 되었습니다.
Express.js를 사용해 보신 분들은 익숙한 미들웨어, 에러 핸들러를 지원하고, 운영 환경에서 자주 필요한 URL Params, QueryString, Cookie를 따로 미들웨어 사용할 필요 없도록 기본적으로 파싱해서 제공합니다.
추가적으로 지원하는 API는 다음과 같습니다.
-
Context API: waitUntil 함수를 이용하면 DB PutItem 같은 작업들을 비동기로 처리해서 사용자에게 Blocking 없는 응답을 제공할 수 있습니다.
-
Binding API: R2, KV Store 같이 Cloudflare 서비스들을 사용 가능합니다.
추가 팁)
- Workers 무료 플랜은 CPU time을 10ms로 제한함.
- 하지만 Fetch 같은 외부 서비스 I/O 작업에 소요되는 시간은 카운팅 하지 않음.
- CPU intensive 한 작업이 아닌 대부분의 요청들은 1~2ms 면 충분함.