$ 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.. 사용하는 모듈들에 관련된 정보가 있는 파일
으로 구성되어 있다.
참고한 글
반응형
'미가공 필기(JS)' 카테고리의 다른 글
[JS] Lexical Scope, Dynamic Scope (0) | 2022.08.08 |
---|---|
JS 비동기 처리 (0) | 2022.05.19 |
댓글