종류
- Express
- Fastify
- Nest
- Koa
- LoopBack
Express
- 프레임워크 중 점유율 1위
- 대규모 커뮤니티, 많은 문서
- MVC 패턴 지원
- 소규모 개발에 적합
- 내부적으로 발생하는 비동기 관련 오류를 잡아내지 못해 try/catch문 사용 필요
- 내장되어있는 모듈, 미들웨어가 많고 외부 모듈 붙이기 힘듦
- express-validator로 간편하게 유효성 검사
- unit test는 jest, mock… 필요
- 주간 다운로드 수 - 13,895,038
- 샘플: GitHub - hjkang1217/express: express framework
Nest
- Spring Framework와 유사
- cli를 사용하면 초기 프로젝트 구성 쉬움
- typescript 지원, javascript도 가능
- OOP(Object Oriented Programming), FP(Functional Programming), FRP(Functional Reactive Programming) 지원
- Express나 Fastify를 추상화해서 사용하기 때문에 Express나 Fastify의 API 직접 사용 가능
- 내장된 validation, testing(기본 jest) 도구 사용
- ORM의 경우 @nestjs/typeorm, @nestjs/sequelize … 지원
- API 문서화(Swagger) 간단
- 공식 문서 친절한 편 /
한글 번역본 존재(https://docs.nestjs.kr/) - 주간 다운로드 수 - 621,100
- 샘플: GitHub - hjkang1217/nest: nest framework
Koa
- Express의 다음 버전으로 Express를 만든 팀원 몇 명이 2016년에 만듦
- Express보다 모듈화되어 있어 원하는대로 미들웨어 붙이기 좋음
- 번들로 제공되는 미들웨어가 없어서 작고 가벼움
- 기본적인 구조만 가지고 있고, 기능은 모듈화 되어있어서 필요한 부분만 가져다 사용 가능
- es6 기반이라 async/await 지원해서 try-catch 에러 처리가 필요 없음
- 타입스크립트/라우터/validate는 플러그인 필요
- 주간 다운로드 수 - 709,749
- 샘플: GitHub - hjkang1217/koa: koa framework
Fastify
- 가볍고 빠름
- 점유율 낮고 정보 적음
- async/await 대응
- Json Schema로 validation
- typescript 및 javascript 지원
- test는 공식문서에서 tap 사용
- 주간 다운로드 수 - 205,862
- 샘플: GitHub - hjkang1217/fastify: fastify framework
Loopback
- REST API의 대표 프레임워크(GraphQL도 지원)
- MSA에 적합
- 확장성이 뛰어남
- API를 쉽고 빠르게 작성 가능
- 사용자 인증 및 권한 작성에 적합
- 내부 ORM, typeORM 제공
- test는 mocha를 기본으로 사용
- cli로 쉽게 파일(controller, datasource, repository 등) 생성 가능
- 문서 적어서 공식 문서 위주로 봐야 함
- 주간 다운로드 수 - 40,727
- 샘플: GitHub - hjkang1217/loopback: loopback framework
참고
'JavaScript&TypeScript' 카테고리의 다른 글
JavaScript 배열 자르기 (0) | 2023.03.29 |
---|---|
JavaScript 배열 중간에 요소 추가 및 삭제 (0) | 2023.03.29 |
JavaScript로 GCS에 파일 업로드 및 다운로드 (0) | 2023.03.17 |
Puppeteer 감시 방지 (0) | 2023.02.14 |
Nest.js 사용법 (0) | 2022.09.27 |