PayPal의 Kraken.js 프레임워크 리뷰 및 평가

Source

  • Evernote/IFTTT Feedly/Paypal의 KrakenJS.md

Summary

본문은 PayPal이 Node.js 전환과 함께 공개한 웹 프레임워크인 Kraken.js에 대한 사용 후기 및 기술적 분석이다. Kraken.js는 Express.js를 기반으로 프로젝트 구조화, 설정 관리(nconf), 라우팅 자동화(express-enrouten), 그리고 보안(Lusca) 및 국제화(Makara) 모듈을 통합한 오피니오네이티드 프레임워크이다. 저자는 깔끔한 폴더 구조와 JSON 기반 설정의 장점을 인정하지만, 문서화의 부족, 커스터마이징의 어려움, 그리고 제공되는 훅(hooks)의 실용성 부족을 주요 단점으로 지적한다. 결국 저자는 Kraken.js 전체를 제거하고, 그중 유용한 설정 관리 및 라우팅 모듈만 추출하여 순수 Express.js 환경으로 마이그레이션한 경험을 공유한다.

Key Points

  • Kraken.js는 Express.js를 확장하여 프로젝트 구조화, 보안, i18n 등을 통합한 PayPal의 Node.js 프레임워크이다.
  • 주요 구성 요소: nconf(설정 관리), express-enrouten(라우팅 자동화), Lusca(보안), Makara(i18n), Adaro(Dust.js 템플릿 렌더러).
  • 장점: 표준화된 폴더 구조, JSON 기반의 환경별 설정 관리, 라우팅 및 컨트롤러 파일의 자동 로딩으로 인한 코드 간결함.
  • 단점: 문서화가 부족하여 커스터마이징이 어려움, 제공되는 4가지 훅(hooks)의 실용성 의문, 기본 템플릿 엔진(Dust.js) 변경 등 유연성 부족.
  • 결론: 저자는 Kraken.js의 전체적인 사용은 포기하고, 설정 관리(nconf)와 라우팅 자동화(express-enrouten) 모듈만 추출하여 순수 Express.js로 전환했다.