Node.js는 확장 가능하고 효율적인 서버 사이드 애플리케이션을 구축할 수 있는 인기있는 JavaScript 런타임입니다.
Node.js 백엔드 프레임워크의 종류에 대해 알아 보도록 하겠습니다.
1. Express.js
- Express는 가장 인기있는 Node.js 프레임워크의 하나이다.
- 웹 및 모바일 애플리케이션을 위한 각종 라이브러리와 미들웨어, 일련의 간단하고 강력한 API를 제공하며 최소한의 유연성을 가지고있다.
- 확장성을 지향한다. 불필요한 간섭이 없고 사용자가 필요한 라이브러리를 추가해서 확장 가능하다.
- http request와 response를 컨트롤할 수 있다.
- 크고 활발한 커뮤니티가 있어 다양한 리소스와 플러그인을 활용할 수 있다.
2. Koa.js
- Koa.js는 Express.js의 기존 개발팀이 개발한 차세대 Nodejs 프레임워크이다.
- Express.js보다 가볍고 표현력이 뛰어나며 견고하다.
- async/await 문법을 정식으로 지원하기 때문에 비동기 작업을 더 효율적으로 관리 할 수있다.
- 미들웨어 기능만 갖추고 있으며 나머지 다른 라이브러리를 적용하여 사용한다.
- 모듈식 아키텍처를 가지고 있어 개발자들이 필요한 기능만 선택하여 사용할 수 있다.
3. Hapi.js
- Hapi.js는 강력하고 확장가능한 애플리케이션을 구축하는데 중점을 둔 프레임워크이다.
- 코드가 간결하고 모듈화가 쉽다
- 입력 유효성검사, 인증, 캐싱 및 오류 처리와 같은 다양한 기능을 제공한다.
- 플러그인 시스템을 가지고있어 개발자들이 쉽게 기능을 확장할 수 있다.
4. Nest.js
- Express 또는 Fastify 프레임워크를 래핑하여 동작합니다.
- 데이터베이스, ORM, 설정(Configuration), 유효성 검사 등 수많은 기능을 기본제공한다.
- 모듈/컴포넌트 기반으로 프로그램을 작성함으로써 재사용성을 높여준다.
- TypeScript를 완벽하게 지원한다.
- IoC(제어역전), DI(의존성주입), AOP(관점 지향 프로그래밍)와 같은 객체 지향 개념을 도입했다.
5. LoopBack
- LoopBack은 API 및 마이크로서비스를 구축하는데 중점을 둔 확장가능한 프레임워크이다.
- REST API를 빠르게 생성할 수 있다.
- 데이터 모델링에 중점을 두고 있고 다양한 데이터베이스를 ORM으로 쉽게 관리할 수 있다.
- CLI를 통해서 편리하게 모델 생성, 정의 접근 권한 등등 작업을 진행할 수 있다.
6. Sails.js
- MVC 프레임워크 이다.
- Ruby On Rails 와 유사한 구조를 목표로 만들어져서 Node On Sails 라는 말이 있다.
- Waterline이라는 adapter를 통하여 다양한 데이터베이스의 호환성을 보장한다.
- RESTful JSON API를 자동으로 생성할 수 있다.
- socket.io 모듈을 통합하고 있다.
- 컨트롤에 대한 라우트를 자동으로 생성한다.
- 사용자 인증 및 역할 기반의 접근 제어 시스템을 제공한다.
7. Adonis.js
- MVC 아키텍처 패턴을 따른다.
- 확장 가능한 고성능 웹 애플리케이션을 쉽게 생성할 수 있다.
- PHP 웹 프레임워크인 Laravel에서 크게 영감을 받았다.
- ORM, 캐싱, 쿼리 작성기 및 내장 인증시스템과 같은 많은 내장 기능이 있다.
8. Meteor.js
- 단일 코드베이스로 실시간 웹 및 모바일 애플리케이션을 구축할 수 있는 풀스택 JavaScript 프레임워크이다.
- Publish/Subscribe 구조로 브라우저와 서버 간의 데이터 교환이 실시간으로 이루어진다.
- 반응형 데이터 시스템을 제공하여 데이터의 변경 사하잉 자동으로 UI에 전파되는 기능을 제공한다.
- 핫코드 푸시를 내장하여 전체 페이지 다시로드 없이 애플리케이션을 업데이트할 수 있습니다.
9. Derby.js
- 실시간 웹 애플리케이션을 구축하기 위한 완전한 스택 MVC프레임워크이다.
- 다중 클라이언트가 동시에 동일한 데이터에 대해 실시간으로 협업할 수 있는 강력한 데이터 동기화 엔진을 제공한다.
- 내장된 템플릿 엔진을 가지고 있으며 서버 측 렌더링을 지원하기 때문에 SEO 친화적인 애플리케이션을 구축하는데 좋다.