1. Nest ์ค์น
npm i -g @nestjs/cli
2. ํ๋ก์ ํธ ์์ฑ
// nest new ๋ช
๋ น์ด๋ก ํ๋ก์ ํธ ์์ฑ
nest new project-name
3. ํ๋ก์ ํธ ๊ธฐ๋ณธ ๊ตฌ์กฐ

.eslintrc
- ํน์ ํ ๊ท์น์ ๊ฐ์ง๊ณ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์งค ์ ์๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ด๋๋ผ์ธ ์ ์, ๋ฌธ๋ฒ์ ์ค๋ฅ๊ฐ ๋๋ฉด ์๋ ค์ฃผ๋ ์ญํ ๋ฑ
.prettierrc
- ์ฃผ๋ก ์ฝ๋ ํ์์ ๋ง์ถ๋๋ฐ ์ฌ์ฉ
single quote(')๋ฅผ ์ฌ์ฉํ ์ง double quotes(")๋ฅผ ์ฌ์ฉํ ์ง
indent๊ฐ์ 2๋ก ํ ์ง 4๋ก ํ ์ง ๋ฑ
- ์๋ฌ ์ฐพ๋ ๊ฒ์ด ์๋ ์ฝ๋ ํฌ๋งทํฐ ์ญํ
nest-cli.json
- nest ํ๋ก์ ํธ๋ฅผ ์ํด ํน์ ํ ์ค์ ์ ํ ์ ์๋
json ํ์ผ
tsconfig.json
- ์ด๋ป๊ฒ ํ์
์คํฌ๋ฆฝํธ๋ฅผ ์ปดํ์ผ ํ ์ง ์ค์
tsconfig.build
tsconfig.json์ ์ฐ์ฅ์ ์ ํ์ผ์ด๋ฉฐ,
- buildํ ๋ ํ์ํ ์ค์ ๋ค
excludes์์๋ ํ๋ํ ๋ ํ์์๋ ํ์ผ๋ค ๋ช
์
package.json
build: ์ด์ํ๊ฒฝ์ ์ํ ๋น๋
fotmat: lint ์๋ญ๊ฐ ๋ฐ์ํ ๋ ์์
start: ์ฑ ์์
src ํด๋
main.ts: ์ฑ์ ์์ฑํ๊ณ ์คํ. ์ฑ ์์์
app.module.ts: ์ฑ ๋ชจ๋ ์ ์
4. Nest ํ๋ฆ

(1) main.ts
(2) app.module.ts
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
@Module({
imports: [],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
(3) app.controller.ts
app.module.ts์์ ํธ์ถํ controller๊ฐ ์คํ๋๋ค.
Controller: ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )๊ฐ Request์ ๋ณด๋ผ ๋ ๊ฐ์ฅ ๋จผ์ ํธ์ถ
import { Controller, Get } from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get()
getHello(): string {
return this.appService.getHello();
}
}
(4) app.service.ts
Controller์์ ํธ์ถํ getHello()๊ฐ ์คํํ๋ฉฐ Controller์๊ฒ Hello World!๋ฅผ ๋ฆฌํดํจ
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
getHello(): string {
return 'Hello World!';
}
}