NestJS란, MIT 라이센스 하에서 공개된 Node.js 기반의 프레임워크이다. NestJS는 Javascript계의 django이자, spring 이라고 볼 수 있다.
아래는 공식 홈페이지에 소개된 Nest의 문제 의식 및 철학
In recent years, thanks to Node.js, JavaScript has become the “lingua franca” of the web for both front and backend applications. This has given rise to awesome projects like Angular, React and Vue, which improve developer productivity and enable the creation of fast, testable, and extensible frontend applications. However, while plenty of superb libraries, helpers, and tools exist for Node (and server-side JavaScript), none of them effectively solve the main problem of - Architecture.
Nest provides an out-of-the-box application architecture which allows developers and teams to create highly testable, scalable, loosely coupled, and easily maintainable applications. The architecture is heavily inspired by Angular.
위 철학에 소개되어 있듯, Nest는 흘러넘쳐나는 FE 프레임워크에 비해, 빈약하기 그지 없는 BE 프레임워크에 문제의식을 갖고 출발한 프로젝트이다.
앵귤러에게서 많은 영감을 받았다는데... 앵귤러는 잘 몰라서 실제로 얼마나 앵귤러의 철학이 반영되었는지는 모르겠지만, 일단 Nest를 쓴 이후, express를 쓰는 것이 불가능에 가까워졌다.
그만큼 너무나도 편리하고 너무나도 매력적인 프레임워크이다. 바닐라JS만 쓰다가 React를 처음 배웠을 때의 그 사기스러움을 맛볼 수 있다. JSX를 보며 미친 개사기네 라고 중얼거렸던 수준이다..(엄밀히 말하면 JSX가 리액트는 아니지만..)
해서 적어도 나에게만큼은 BE계의 React라 할만큼 매력적인 프레임워크이다.
만약 당신이 express의 자유분방함이 부담스럽거나, 협업을 해야 하는 상황이라면 NestJS를 배워볼 것을 추천한다.
높은 자유도는 express의 큰 장점이지만 동시에 큰 단점이다. 그런 점에서 어떻게 짜야할 지를 하나하나 다 규정해 둔 말 그대로 '프레임워크'의 역할을 톡톡히 해주는 NestJS가 큰 힘이 될 것이다.
물론 NestJS를 다루기 위해서는 Typescript를 알면 좋다. NestJS가 TS 위에서 빌드된 프레임워크이기 때문이다.
하지만, TS를 잘 몰라도 NestJS를 쓰는데 큰 무리는 없다고 본다. 어차피 Type 설정을 우리가 해준다기보다는, 이미 되어 있는 설정을 잘 쓰기만 하면 되기 때문에.. 그래서인지 공식 문서에서도 다음과 같이 소개한다.
Nest (NestJS) is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with and fully supports TypeScript (yet still enables developers to code in pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).
더 나아가, 공식 문서의 모든 내용(코드 스니펫)은 TS 뿐만 아니라 JS로도 소개되어 있다. 그러니 TS를 모른다고 해서 Nest를 두려워할 필요도 없다!
We're in love with TypeScript, but above all - we love Node.js. That's why Nest is compatible with both TypeScript and pure JavaScript. Nest takes advantage of the latest language features, so to use it with vanilla JavaScript we need a Babel compiler.
We'll mostly use TypeScript in the examples we provide, but you can always switch the code snippets to vanilla JavaScript syntax (simply click to toggle the language button in the upper right hand corner of each snippet).
어쨌거나 결론은 Nest 추천한다는 내용이다.
Nest 사랑해요.
'Learning-Log > Computer Science' 카테고리의 다른 글
[NestJS] NestJS, 한 번 빠지면 벗어날 수 없는 마성의 늪(2) : NestJS 시작하기 & Express 프로젝트를 Nest로 마이그레이션 하는 경우 (0) | 2022.07.11 |
---|---|
[WSL] Ubuntu에서 현재 디렉토리를 윈도우 탐색기로 열기 (0) | 2022.07.11 |
Tistory의 코드블럭을 이쁘게 만들어보자 : 코드블럭 테마 (highlight.js) 적용방법 (0) | 2022.07.06 |
[TS] 타입스크립트의 기초(2) - Class와 상속, 그리고 interface와 type의 차이점 (0) | 2022.07.05 |
[TS] 타입스크립트의 기초(1) - type 키워드 및 Type에 대한 이해 (0) | 2022.07.05 |