미가공 필기(JS)

Nest JS 공식문서 핥기(1)

JoJobum 2022. 5. 19.

 

$ npm i -g @nestjs/cli 
$ nest new project-name

첫줄은 i(install) -g(전역으로) nestjs 설치

2번째 줄은 nest로 project-name 을 가진 새 프로젝트 생성

 

하면 이렇게 기본 세팅을 해준다 (저기서 내가 작성한 것은 README.md 뿐, 자동생성 된 것을 2로 돌려놨다)

src 폴더를 보면 

  • app.controller.ts : 하나의 라우터가 있는 기본 컨트롤러
  • app.controller.spec.ts : 컨트롤러를 위한 유닛 테스트
  • app.module.ts : 애플리케이션의 루트 모듈
  • app.service.ts : 단일 메서드를 사용하는 기본 서비스
  • main.ts : 핵심 기능 NestFactory를 사용하여 Nest 애플리케이션 인스턴스를 생성하는 애플리케이션의 엔트리 파일

으로 구성되어 있다.

 

// 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();

 

main.ts 를 뜯어보면

NestFactory class 를 사용해서 Nest application의 인스턴스를 생성하고,

3000번 포트를 할당하여 HTTP listener 를 시작 

$ nest start

등의 명령어로 서버를 킨 후 => localhost:3000 로 들어가보면

이런 아무것도 없는 페이지에 Hello World! 가 출력되어 있는 화면을 볼 수 있다.

 

이 과정을 좀 더 디테일하게 파고들자면

1. main 함수가 서버 인스턴스 생성

2. client가 localhost:3000/ 으로 접속함으로서 request 날림 

3. controller가 request 처리하여(controller의 getHello() 실행) 알맞는 service 호출 

4. service의 getHello() 실행되어 결과 ("Hello World!") 리턴 

5. 이를 Response 로 리턴 

=> Client는 Hello World! 를 화면으로 볼 수 있음

 

 

이외로 프로젝트의 "root" 디렉터리 안의 파일들은

  • eslintrc.js : 개발자들을 위해 특정 규칙을 가지고 코드를 깔끔하게 짤 수 있게 도와주는 라이브러리로 타입 스크립트를 쓰는 가이드라인을 제시하며, 문법에 오류가 나면 알려주는 역할을 한다.
  • prettierrc : 코드의 형식을 맞추는 데 사용한다. 작은따옴표, 큰 따옴표 Indent 값을 2 또는 4로 설정, 즉 에러를 찾는 역할이 아닌 code formatter이다.
  • nest-cli.json : nest 프로젝트를 위해 특정한 설정을 할 수 있는 json 파일
  • tsconfig.json : 어떻게 타입 스크립트를 컴파일할지를 설정하는 파일
  • package.json : build, format, start.. 사용하는 모듈들에 관련된 정보가 있는 파일

으로 구성되어 있다.

 

참고한 글

[ Nest JS 소개 ] Nest JS 프로젝트 시작하기 — 수구리의 데브로그 (tistory.com)

반응형

'미가공 필기(JS)' 카테고리의 다른 글

[JS] Lexical Scope, Dynamic Scope  (0) 2022.08.08
JS 비동기 처리  (0) 2022.05.19

댓글