ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ฏ NestJS Controller ์์ ์ ๋ณต – ์์ฒญ๊ณผ ์๋ต์ ๋ชจ๋ ํ๋ฆ ์ดํดํ๊ธฐ
octo54 2025. 4. 12. 20:15๐ฏ NestJS Controller ์์ ์ ๋ณต – ์์ฒญ๊ณผ ์๋ต์ ๋ชจ๋ ํ๋ฆ ์ดํดํ๊ธฐ
NestJS์์ Controller๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ(Request)์ ๋ฐ์ ์๋ฒ์ ์๋ต(Response)์ ๋ฐํํ๋ ์ญํ ์ ํฉ๋๋ค.
์ด ๊ธ์์๋ NestJS ๊ณต์ ๋ฌธ์์ Controllers๋ฅผ ํ๊ธ๋ก ๋ฒ์ญํ๊ณ , ์ค๋ฌด ์ค์ฌ์ ํด์์ ๋ง๋ถ์ฌ ์ค๋ช
ํฉ๋๋ค.
NestJS ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ๋ค๋ฉด Controller๋ ๋ฐ๋์ ์ ํํ ์ดํดํ๊ณ ๋์ด๊ฐ์ผ ํ ํต์ฌ ์์์ ๋๋ค.
โจ Controller๋?
NestJS์์ Controller๋ ๋ผ์ฐํ
(๊ฒฝ๋ก ์ฒ๋ฆฌ)๊ณผ ์์ฒญ ๋งคํ์ ๋ด๋นํ๋ ๊ณ์ธต์
๋๋ค.
์ค์ ๋ก๋ @Controller() ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ๋ถ์ฌ ๋ง๋ ํด๋์ค์ด๋ฉฐ, ์ฌ๊ธฐ์ HTTP ๋ฉ์๋(@Get, @Post, ๋ฑ) ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ๋ถ์ธ ๋ฉ์๋๋ค์ด ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
1๏ธโฃ Controller ์์ฑ ๋ฐฉ๋ฒ
nest g controller cats
Nest CLI๋ฅผ ์ด์ฉํ๋ฉด ์๋์ผ๋ก cats.controller.ts ํ์ผ์ด ์์ฑ๋๊ณ , ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๊ฐ ํฌํจ๋ฉ๋๋ค:
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return '๋ชจ๋ ๊ณ ์์ด๋ฅผ ๋ฐํํฉ๋๋ค';
}
}
ํด์
- @Controller('cats'): /cats ๊ฒฝ๋ก์ ๋ํ ์์ฒญ์ ์ฒ๋ฆฌ
- @Get(): HTTP GET ์์ฒญ์ ๋งคํ
2๏ธโฃ ๋ค์ํ HTTP ๋ฉ์๋ ๋งคํ
import { Controller, Get, Post, Body, Param } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return '๋ชจ๋ ๊ณ ์์ด๋ฅผ ๋ฐํํฉ๋๋ค';
}
@Get(':id')
findOne(@Param('id') id: string): string {
return `${id}๋ฒ ๊ณ ์์ด๋ฅผ ๋ฐํํฉ๋๋ค`;
}
@Post()
create(@Body() body: any): string {
return `์๋ก์ด ๊ณ ์์ด๋ฅผ ์ถ๊ฐํ์ต๋๋ค: ${JSON.stringify(body)}`;
}
}
์ค๋ฌด ํ
- @Param(): URL ๊ฒฝ๋ก์ ํฌํจ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ์ถ
- @Body(): POST ์์ฒญ์ ๋ณธ๋ฌธ(body)์ ํ์ฑ
- @Query(): ์ฟผ๋ฆฌ ์คํธ๋ง ํ๋ผ๋ฏธํฐ๋ฅผ ๋ค๋ฃฐ ์ ์์
3๏ธโฃ ์ปจํธ๋กค๋ฌ์์ ์๋น์ค ํธ์ถํ๊ธฐ
NestJS๋ ์๋น์ค(Service) ๊ณ์ธต์ ๋ถ๋ฆฌํ์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ๊ด๋ฆฌํฉ๋๋ค.
@Controller('cats')
export class CatsController {
constructor(private readonly catsService: CatsService) {}
@Get()
findAll(): string {
return this.catsService.findAll();
}
}
์๋น์ค๋ @Injectable()๋ก ์ ์ธ๋๋ฉฐ, ์ปจํธ๋กค๋ฌ์ ์์ฑ์์์ ์์กด์ฑ ์ฃผ์ (DI)์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
4๏ธโฃ ๋ผ์ฐํ ๊ฒฝ๋ก ์ปค์คํฐ๋ง์ด์ง
@Controller({
path: 'cats',
})
export class CatsController {
@Get('my')
getMyCats() {
return '๋ด ๊ณ ์์ด ๋ชฉ๋ก์
๋๋ค';
}
}
๊ฒฝ๋ก๋ ๋ฌธ์์ด๋ก ์ง์ ์ง์ ํ๊ฑฐ๋, ์ค๋ธ์ ํธ ํํ๋ก๋ ์ปค์คํฐ๋ง์ด์ง ํ ์ ์์ต๋๋ค.
๐บ ๊ด๊ณ
์ด ๋ถ๋ถ์ AdSense ๊ด๊ณ ์ฝ๋ ์ฝ์ : ์ค๋จ ๊ด๊ณ ์์น (ํด๋ฆญ๋ฅ ์ด ๋์ ๊ตฌ๊ฐ์ ๋๋ค)
์: <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-xxxx" data-ad-slot="yyyy"></ins>
5๏ธโฃ RESTful API๋ฅผ ์ค๊ณํ ๋์ Controller ์ ๋ต
๋ฉ์๋ ๊ฒฝ๋ก ์์ ์ค๋ช
@Get() | /cats | ์ ์ฒด ๋ชฉ๋ก ์กฐํ |
@Get(':id') | /cats/1 | ํน์ ID ์กฐํ |
@Post() | /cats | ์ ๋ฐ์ดํฐ ์์ฑ |
@Patch(':id') | /cats/1 | ํน์ ๋ฐ์ดํฐ ์ผ๋ถ ์์ |
@Delete(':id') | /cats/1 | ํน์ ๋ฐ์ดํฐ ์ญ์ |
REST API ์ค๊ณ ์์น์ ๋ฐ๋ผ HTTP ๋ฉ์๋์ URL์ ๋ถ๋ฆฌํ์ฌ ํํํ๋ ๊ฒ์ด ์ ์ง๋ณด์์ ํ ์คํธ ๋ชจ๋์ ์ ๋ฆฌํฉ๋๋ค.
๐ง ์ค์ ์๋น์ค ๊ตฌ์กฐ์์ Controller ์ญํ
- ์์ฒญ์ ๋ฐ๊ณ
- ์๋น์ค ๊ณ์ธต์ผ๋ก ์์ํ๋ฉฐ
- ํ์ํ ๊ฒฝ์ฐ DTO๋ก ์ ํจ์ฑ ๊ฒ์ฆ์ ํ๊ณ
- ์ ์ ํ ์๋ต ๋๋ ์์ธ๋ฅผ ๋ฐํํ๋ ๊ตฌ์กฐ
์ปจํธ๋กค๋ฌ๋ ์ ๋ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์ ๋ค๋ฃจ์ง ์๊ณ , ๋ผ์ฐํ ๊ณผ ์๋น์ค ์ฐ๊ฒฐ์๋ง ์ง์คํฉ๋๋ค.
๐ ๋ง๋ฌด๋ฆฌ
NestJS์์ Controller๋ ๊ฐ์ฅ ์๋จ์์ ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์๋ตํ๋ ํต์ฌ ๊ตฌ์กฐ์
๋๋ค.
๋ผ์ฐํ
, ๋งคํ, ์์ฒญ ๋ฐ์ดํฐ ์ถ์ถ, ์๋น์ค ์ฐ๊ฒฐ ๋ฑ์ ํจํด์ ์ ์ตํ๋๋ฉด, ์ ์ง๋ณด์ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ฅผ ์์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
NestJS Controller,NestJS ๋ผ์ฐํ ,NestJS ์์ฒญ ์ฒ๋ฆฌ,NestJS ์๋น์ค ์ฐ๋,NestJS Get Post,NestJS Param Body,TypeScript ๋ฐฑ์๋,REST API ์ค๊ณ,Node.js ๋ฐฑ์๋,NestJS ์ค๋ฌด ์์
'framework > NestJS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday
- gatsbyjs
- Next.js
- nextJS
- llm
- CI/CD
- NestJS
- github
- ๊ด๋ฆฌ์
- nodejs
- rag
- seo ์ต์ ํ 10๊ฐ
- App Router
- AI์ฑ๋ด
- REACT
- Python
- Ktor
- SEO์ต์ ํ
- PostgreSQL
- Docker
- ํ๋ก ํธ์๋
- Webpack
- ๋ฐฑ์๋๊ฐ๋ฐ
- fastapi
- kotlin
- ํ๋ก ํธ์๋๋ฉด์
- Prisma
- LangChain
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- SEO ์ต์ ํ
- ์น๊ฐ๋ฐ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |