[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/WEB

Nest.js 기초 - 시작하기

inu 2021. 1. 4. 15:01
반응형

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가 비지니스 로직을 가지도록 역할을 확실히 구분짓는 것이다.
반응형