✏️ NestJS로 배우는 백엔드 프로그래밍 를 공부하며 정리하는 글입니다 ✏️
⚙️ 관련 코드는 Github 에서 보다 자세히 보실 수 있습니다 ⚙️
NestJS 는 Node.js 에 기반을 둔 웹 API 프레임워크이다. 기본으로 설치하면 Express 를 래핑하여 동작한다.
Node.js 에서 발전된 특징들은 다음과 같다.
NestJS는 백엔드 서버가 갖추어야 하는 많은 필수 기능을 프레임워크 내에 내장하고 있고 추가로 필요한 기능을 설치하고 적용하는 방법을 문서로 제공한다. 또한 DI, IoC 를 채용하여 객체지향 프로그래밍과 모듈화를 쉽게 할 수 있다. 즉, Express 를 사용할 때 이 모든 것들을 npm 에서 찾아서 검토하고 선택하는 과정을 생략할 수 있다는 장점이 있다.
더 나아가, 위의 사진인 GitHub 에서 제시되는 Express, Fastify와의 성능 벤치마크를 보면 Express/Fastify 에 필수로 요구하는 라이브러리들을 추가한다고 생각했을 때, NestJS에서 제공하는 기능들을 모두 구현하는 것과 성능이 크게 차이가 나지 않는다는 것도 알 수 있다.
먼저 Node.js 공식 페이지를 통해 자신에게 맞는 버전을 설치한다. 나는 가장 안정적인 버전인 LTS를 homebrew 를 이용해서 설치했다. 자세한 방법은 홈페이지 또는 블로그를 찾아보면 쉽게 할 수 있다.
Node.js 를 설치하면 npm 이 함께 설치되어 있다. npm 은 Node.js 에서 사용하는 패키지 관리자이다. 앞으로 이것을 이용해 패키치를 설치, 관리, 그리고 삭제한다.
NestJS 서버를 구성하기 위해 먼저 @nestjs/cli 를 설치해야 한다. 아래 명령어를 콘솔에 입력하자.
$ npm i -g @nestjs/cli
$ nest new <project-name>
프로젝트 파일들이 생성되면 패키지 매니저를 어느 것으로 할 지 묻는데 선호하는 것으로 선택한다. 본인은 yarn 을 선택했다.
설치를 마치면 보일러 플레이트 코드들이 생성된다. 파일 구조는 아래와 같다.
아래와 같은 출력이 뜨면 프로젝트가 정상적으로 생성된 것이다.
서버를 실행하기 위해 프로젝트가 설치된 경로로 이동한 후, 다음의 명령어를 입력해서 필요한 패키지들을 설치한다.
$ git clone https://github.com/dextto/book-nestjs-backend.git
$ cd book-nestjs-backend/examples/ch1-intro/
$ npm install
아래와 같은 출력이 뜨면 패키지들이 정상적으로 설치된 것이다.
서버가 localhost 에서 구동이 되는지 확인하기 위해 아래 명령어를 콘솔에 입력한다.
$ yarn start //(npm 사용 시) npm run start
아래의 사진에서 터미널 부분과 같은 출력이 나온다면 서버가 실행된 것이다.
package.json
파일에서 Line 11 의 "start": "nest start",
때문에 위 명령어를 실행하면 nest 가 start 됨main.ts
파일에 의해 localhost 가 3000 포트로 접속 가능하게 됨서버에 접속해서 잘 동작하는지 확인해보자. 브라우저를 켜고 localhost:3000
으로 접속했을 때 'Hello World!' 가 뜨면 된다.
app.service.ts
를 참고유저 서비스와 부가적인 기능은 아래와 같으며 NestJS에서 제공하는 패키지를 이용하여 구현된다.
유저 서비스는 다음과 같은 기능을 제공한다.
위 서비스를 개발하기 위해 부가적으로 해야할 일을 다음과 같다.
위키독스에 있는 책 내용을 그대로 가져오셨네요.
원저작물에는 저작자 표시가 되어 있어 이렇게 마음대로 퍼오시면 안됩니다.