티스토리 뷰
Nest.js란?
Node.js에는 많은 프레임워크가 존재한다. 그 중에 가장 널리 쓰이고 대표적인 프레임워크는 Express라고 볼 수 있다. Express는 Nodejs를 통해 개발을 할 때 많은 편리함을 가져다 준다.
Nest는 쉽게 설명하면 Express의 확장된 형태라고 볼 수 있다. 기본적으로 Typescript를 지원하며 자바의 Springboot와 유사한 구조를 가지고 있어 대규모 프로젝트에 유용한 프레임워크이다.
만약 여러명의 개발자와 함께 협업을 한다면 개발자마다 코딩 스타일이 다를것이다. 그러나 NEST를 사용하면 어느정도 정해져있는 구조를 통해 대규모 프로젝트에서도 팀원간의 코딩스타일이 달라 생기는 문제들을 해결할 수 있다.
Nest 시작하기
먼저 Nest를 이용하기 위해 Nest를 다운로드하자.
npm install -g @nestjs/cli
를 입력하여 global환경에 nest를 설치한다.
그 다음 프로젝트를 생성하자.
nest new nest-tutorial
명령을 입력하면 nest-tutorial
이라는 프로젝트가 생성된다.
설치를 진행하다 보면 패키지 매니저를 선택하는 창이 나온다.
나는 패키지 매니저로 yarn
을 선택했다.
설치가 다 끝나면 프로젝트 폴더가 생성되었을 것이다.
위와 같이 nest에서 기본적으로 여러가지 세팅을 잡아준다.
src폴더에 들어가면 다음과 같은 구조로 파일이 생성된 것을 볼 수 있다.
spec이 붙은 파일은 테스트에 사용되는 파일이다.
controller
와 service
와 module
로 구성되는 것을 알 수 있다.
그리고 main.ts
는 이 프로젝트의 엔트리 포인트가 된다.
//main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
}
bootstrap();
Controller와 Service와 Module의 역할을 간단하게 정리해보자.
컨트롤러
는 라우터라고 생각하면 쉽다.
클라이언트로 부터 요청이 들어오면 해당 요청을 받아 Service를 이용해 비즈니스 로직을 실행한다.
물론 Service를 이용하지 않고 컨트롤러 내에서 비즈니스 로직을 수행하고 결과를 리턴해도 된다.
그러나 이는 프로그램의 규모가 커질수록 유지보수에 어려움이 생긴다. 컨트롤러와 서비스의 역할은 분리하는 것이 좋다.
서비스
는 위 설명처럼, 컨틀롤러부터 요청을 받아 비즈니스 로직을 수행한다.
예를들면, 데이터 생성/삭제/조회/업데이트 등이 있을 것이다.
모듈
은 이러한 컨트롤러와 서비스들을 하나의 모듈로서 관리하는 파일이다.
하나의 프로젝트에는 다양한 모듈들이 있을 수 있다.
예를들면 유저모듈, 인증모듈 등이다.
이러한 모듈들에는 각각 컨트롤러가 존재하고 서비스가 존재한다.
그리고 이 모듈들을 하나로 통합하여 관리하는 곳이 바로 AppModule이다.
'Node.js' 카테고리의 다른 글
Nest.js + typeORM 으로 REST API 서버 만들기 (3) (0) | 2021.07.29 |
---|---|
Nest.js + typeORM 으로 REST API 서버 만들기 (2) (0) | 2021.07.29 |
Express 스태틱파일 서빙 (0) | 2021.07.17 |
Node.js 스트림(stream) (0) | 2021.07.15 |
package.json과 패키지 매니저(npm, yarn) (0) | 2021.07.15 |
- Total
- Today
- Yesterday
- 컴퓨터 구조
- 투포인터
- 자바스크립트
- 재귀
- Computer Architecture
- 백준
- 그래프
- 그리디
- 컴퓨터 통신
- 중앙대학교
- nestjs
- nodeJS
- 동적계획법
- BFS
- 구현
- 백트래킹
- ReactNative
- java
- 시뮬레이션
- boj
- 예외처리
- nest.js
- 세그먼트 트리
- dfs
- 알고리즘
- 벨만포드
- 자바
- typeORM
- node.js
- 스레드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |