adonisjs 시작하기 (nodejs framework)
· 약 8분
개요
nodejs로 정말 간단한 oauth2, jwt 등의 인증을 사용하지 않는 API를 만들기에는 express
가 정말 딱이다.
하지만 조금 더 깔끔한 코드를 원하거나 새롭지만 반복적인 기능을 넣기 위해선 더 큰 프레임워크가 필요했다.
조건
언제나 개발시간은 부족하기에 내가 필요한 기능들을 정리해 보았다.
await, async
를 아무 세팅 없이 사용해Promise chaining
에서 벗어나고 싶다. (Babel
과Webpack
을 직접 세팅하는 시간 걸리는 짓을 안하고 싶다.)- 기본적인 웹 보안기능 (validate, csrf, xss, injection) 및 API Throttle Request 기능이 있어야한다.
소셜 로그인
을passport
를 사용하지 않고 한 줄로 끝내고 싶었다.JWT
인증,Log
기능,Bcrypt
암호화를 직접 붙히고 싶지 않다.ORM
에 맞게 E-commerce DB를 구조화했기 때문에ORM
이 꼭 필요하다.- 직관적이여야 한다. (Model과 Controller가 완벽히 나뉘는 구조를 원했다.)
- 문서화가 완벽해야한다.
- 커뮤니티나 Github Issue가 활성화 되어있어야한다.
- 관리자 기능을 SSR로 해야할 가능성이 있어 템플릿 기능이 있어야하며,
ejs
는 절대 쓰고 싶지 않고 다른 템플릿을 직접 세팅해야하는 일은 더더욱 없어야한다.
이 조건을 거르니 adonisjs
라는 처음 보는 프레임워크가 눈앞에 있었다.
성능
나쁘지 않다. 어차피 nginx
에서 reverse proxy
처리에, auto scaling
걸꺼고 그래도 더 빠른 속도를 원하면 golang
으로 가야지 왜 이 포스트를 보고있나!
- 여기서 자세한 내용을 확인할 수 있다.
평판
이 프레임워크를 쓰는 다른 사람은 어떻게 생각할까도 궁금했다.
Node.js broken ecosystem and rise of AdonisJs란 포스팅이 마음을 사로잡았다. 원문 읽을 시간이 없다면 이 글의 요약은 이 것이다.
Why not use Express + Sequelize + Config manager + Passport + dotEnv + NodeMailer + Node Validator +30 other modules. How assembling 100+ modules manually can be better than a beautifully pre-configured framework?
한글로 번역하면 왜 안 쓰시죠? 정도가 되시겠다.