배경
- SSR(Server-side Rendering), BFF(Back-end for Front-end)와 같은 사례들이 많아지면서 프론트엔드 개발자의 영역이 Node.js를 활용한 웹 서버 영역으로 확장되고 있어요.
- 이러한 배경에서 Node.js 서버 프레임워크 중 가장 접근성이 좋은 “Fastify”에 대해서 배워봐요.
- 또한, 저는 모든 프로젝트의 Day 1에 CI/CD를 반드시 설정해야한다고 믿는데요. 이러한 CI/CD를 가장 가볍게 구축할 수 있는 Render.com을 이용해 서비스를 1분만에 배포해봐요.
Why Fastify? (Not Express?)
- 아마 이번 세션에서 왜 많은 곳에서 활용되는 Express가 아닌 Fastify를 소개하는건지 궁금해하시는 분들도 계실거라고 생각해요. 실제로 Next.js나 React Router와 같은 SSR 프레임워크는 Custom Server Adaptor 중 Express를 가장 먼저 또는 유일하게 지원하곤 하거든요.
- Express를 Production에서 사용하는 것 저는 좋다고 생각해요. 하지만 Express는 극도로 Minimal한 웹 서버 라이브러리에요. 따라서, 생각하는 방법과 어떠한 메커니즘, 멘탈 모델을 “학습”하기에는 적절하지 않은 프레임워크라고 생각해요.
- 그렇다면 Nest.js는 어떨까요? Nest.js 역시 좋은 프레임워크이지만 학습 자료가 꽤 거대하고, React 개발자 입장에서 class 문법과 decorator를 활용한 DI는 진입장벽이 꽤 있다고 생각해요.
- 따라서, 그 중간점인 Fastify는 서버 프로그래밍을 배우는데 적절한 선택이라고 생각했고, 실제 프로덕트에 적용하기에도 훌륭한 부 분들이 많다고 판단했어요.
Fastify는 어떤 프레임워크인가요?
- Fastify는 Express와 같이 가볍게 사용할 수 있으면서도, 동시에 다양한 기능을 가진 강력한 프레임워크에요.