Nest.JS는 뭘까..?

김동욱·2022년 11월 4일
0

Nest.JS

목록 보기
1/2
post-thumbnail

Nest.JS는 무엇일까?

Nest.js는 node.js를 통해서 서버 어플리케이션을 개발할 수 있는 프레임워크입니다. 그러니 당연하게도 typescript, javascript를 통해서 개발해야 합니다. Express라는 프레임워크와는 아예 다른 친구냐고 생각하실 수도 있는데 아닙니다.

Nest.JS는 Http 요청을 내부적으로 Express를 통해 처리합니다. 즉 Express를 Nest.JS라는 프레임워크가 감쌓고 있는 형태라고 보시면 되겠습니다.

왜 Nest.JS를 사용할까?

제가 생각하기에는 세 가지 이유가 있습니다.

  1. 어플리케이션은 확장 가능성을 크게 고려하여 개발됩니다. 그래서 모듈간 낮은 결합도, 모듈 안에서의 응집도가 중요하게 여겨집니다. Nest.JS는 객체지향형 개발 (OOP)를 적극적으로 지원함으로 확장성 있는 어플리케이션을 개발하기 용이합니다.

  2. Node.JS를 통해 서버를 구축해왔던 개발자들이 배우기가 쉽습니다. 흔히들 Express를 통해 서버 개발을 하는데 앞서 설명했다시피 Nest.JS는 Express 위에서 동작하기에 기존 Express에서 지원하는 기능을 그대로 사용할 수 있습니다. 그외에도 서버개발을 할 때 흔히 사용되는 Jwt, cron-job 등등 다양한 라이블러리들이 모듈화되어 내장되어있습니다.

  3. 신입 개발자들이 적응하기가 쉽습니다. Express로만 진행하는 개발은 자유도가 매우 높아 회사마다 다양한 방식으로 개조하여 사용합니다. 그래서 신입 개발자들을 현재 방식에 적응시켜 교육하는 것에 많은 비용과 시간이 들어가게 됩니다. 하지만 Nest.JS는 자신의 구조를 강제화하기 때문에 Nest.JS를 배운 개발자라면 빠르게 적응할 수 있습니다.

시작하기

$ npm i -g @nestjs/cli
$ nest new project-name
  1. Global하게 NestJs를 install 해줍니다.
  2. 프로젝트를 만들고 싶은 폴더에서 nest new {원하는 project-name}를 통해 Nest.JS 프로젝트를 만들어야 줍니다.

프로젝트를 만들면 src 안에 다음과 같은 구조로 파일이 형성됩니다.

src
  app.controller.spec.ts
  app.controller.ts
  app.module.ts
  app.service.ts
  main.ts

src 폴더에는 앱의 코드들이 모여있다고 생각하시면 됩니다.
각 역할을 보자면

  • app.controller.spec.ts : spec 이 붙은 파일들은 테스트 파일입니다. 지금은 무시하셔도 됩니다.
  • app.controller.ts : 앱의 request 와 response 를 담당하는 라우팅 관련 파일입니다.
  • app.module.ts : 앱을 구성하는 구조의 메타데이터를 담당하는 파일입니다.
  • app.service.ts : 앱의 비지니스 로직을 담당하는 파일입니다.

앞으로 모든 모듈들의 구성요소들은 위와 같은 형태로 만들어집니다.

profile
nestjs 백엔드 개발합니다.

0개의 댓글