반응형
Nest.js
- Node.js의 express를 기반으로 처리되는 백엔드 구성 프레임워크
- typescript를 기본적으로 지원한다. (javascript로도 작성은 가능)
- node.js 특유의 구조와 순서, 룰을 잘 이용하면 엔터프라이즈 규모의 백엔드를 쉽게 제작할 수 있다.
npm i -g @nestjs/cli
- 위 커맨드로 설치한다. (node.js는 기본적으로 설치되어있어야 한다.)
nest new project
-
위 커맨드로 nest 프로젝트를 시작할 수 있다.
-
기본적으로 필요한 각종 패키지들이 설치되어 있다. (타입스크립트 등)
Nest.js 파일구조 살펴보기
- 프로젝트를 생성하고 나면 위와같은 구조의 파일들이 생성된다.
- 핵심이 되는 파일들만 간단하게 살펴보자.
- src폴더의 main.ts에서 기본적인 핵심기능들을 수행하게된다. (이는 Nest application 인스턴스를 만드는 core 함수인 NestFactory를 사용하는 파일이기 때문이다.)
- app.module.ts : 모든 것의 루트 모듈파일. 이 안에 존재하는 @Module, 그 안의 imports, controllers, providers가 이들을 관리하게 된다.
- app.controller.ts : url을 가져오고 함수를 실행한다. express의 라우터같은 존재.
- app.service.ts : 실질적으로 사용되는 메소드 내용(비지니스 로직)이 들어간다.
@Get()
getHello(): string {
return this.appService.getHello();
}
- app.controoler.ts 내부를 보면 위와 같이 데코레이터(@)와 함께 메소드가 작성되어 있다.
- cf. 데코레이터(@) : 함수 혹은 클래스 등에 붙여서 작성한다. 클래스 혹은 함수에 특정 기능을 추가할 수 있도록 해준다. 여기선 Get 요청에 대한 응답을 설정할 수 있도록 한다.
- 메소드를 살펴보면 appService에서 메소드를 불러와 사용함을 알 수 있다. 하나의 파일(app.controller.ts)에 작성해도 될텐데, 왜 굳이 app.service.ts에 나눠서 작성할까?
- Nest.js는 controller를 비지니스 로직과 구분짓고 싶어하기 때문이다. app.controller.ts는 그냥 url을 가져오는 역할을 하고 app.service.ts가 비지니스 로직을 가지도록 역할을 확실히 구분짓는 것이다.
반응형
'🛠 기타 > WEB' 카테고리의 다른 글
Nest.js 기초 - Service 생성 (0) | 2021.01.06 |
---|---|
GraphQL - 서버 시작하기 (by. GraphQL-yoga) (0) | 2021.01.06 |
React 기초 - Hooks API 사용하기 (useState, useEffect) (0) | 2021.01.04 |
React 기초 - Class Component (feat. State) (0) | 2020.12.28 |
React 기초 - prop의 형태 체크하기 (by. Proptypes) (0) | 2020.12.28 |