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!';
}
}