๋ชฉ๋ก์ „์ฒด ๊ธ€ (1005)

๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[Nest JS ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ] (35) ์„ค์ • (Configuration)

=> ๋”ฐ๋ผํ•˜๋ฉด์„œ ๋ฐฐ์šฐ๋Š” NestJS ๐Ÿงธ ์„ค์ • (Configuration) runtime ๋„์ค‘์— ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹œ์ž‘ํ•  ๋•Œ ๋กœ๋“œ๊ฐ€ ๋˜์–ด ๊ทธ ๊ฐ’๋“ค์„ ์ •์˜ ์„ค์ • ํŒŒ์ผ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํŒŒ์ผ ํ˜•์‹์„ ์‚ฌ์šฉ (XML, JSON, YAML, Environmant, Varaiables) ๐Ÿงธ Codebase VS Environment Variables (ํ™˜๊ฒฝ๋ณ€์ˆ˜) XML, JSON, YAML : Codebase ์— ํ•ด๋‹น & ํ™˜๊ฒฝ ๋ณ€์ˆ˜ => ๋‚˜๋ˆ„๋Š” ์ด์œ  : ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ API KEY ๊ฐ™์€ ๋‚จ๋“ค์—๊ฒŒ ๋…ธ์ถœ๋˜๋ฉด ์•ˆ๋˜๋Š” ์ •๋ณด๋ฅผ ์ฃผ๋กœ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ์ฒ˜๋ฆฌ ๐ŸŽ€ Codebase : ์ผ๋ฐ˜์ ์œผ๋กœ Port ์ฒ˜๋Ÿผ ๋…ธ์ถœ๋˜๋„ ์ƒ๊ด€ ์—†๋Š” ์ •๋ณด๋“ค ๐ŸŽ€ Environment Variables (ํ™˜๊ฒฝ๋ณ€์ˆ˜) : ๋น„๋ฐ€๋ฒˆํ˜ธ, API ์ฒ˜๋Ÿผ ๋…ธ์ธจ๋˜๋ฉด ์•ˆ๋˜๋Š”..

[Nest JS ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ] (34) ๋กœ๊ทธ๋ž€

=> ๋”ฐ๋ผํ•˜๋ฉด์„œ ๋ฐฐ์šฐ๋Š” NestJS ๐Ÿงธ ๋กœ๊ทธ ์–ด๋””์—์„œ ๋ฌธ์ œ๊ฐ€ ๋‚˜๋Š”์ง€, ๋น ๋ฅด๊ฒŒ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ๋กœ๊ทธ๊ฐ€ ์ค‘์š”ํ•จ ๐ŸŽ€ ๋กœ๊ทธ์˜ ์ข…๋ฅ˜ - Log : ์ค‘์š”ํ•œ ์ •๋ณด์˜ ๋ฒ”์šฉ ๋กœ๊น… - Warning : ์น˜๋ช…์ ์ด๊ฑฐ๋‚˜ ํŒŒ๊ดด์ ์ด์ง€ ์•Š์€ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ - Error : ์น˜๋ช…์ ์ด๊ฑฐ๋‚˜ ํŒŒ๊ดด์ ์ธ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ - Debug : ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ๋กœ์ง์„ ๋””๋ฒ„๊ทธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์œ ์šฉํ•œ ์ •๋ณด (๊ฐœ๋ฐœ์ž ์šฉ) - Berbose : ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘์— ๋Œ€ํ•œ ํ†ต์ฐฐ๋ ฅ ์ œ๊ณตํ•˜๋Š” ์ •๋ณด (์šด์˜์ž ์šฉ) ๐ŸŽ€ ๋กœ๊ทธ ๋ ˆ๋ฒจ ๐Ÿงธ ๋กœ๊ทธ ์ ์šฉํ•˜๊ธฐ expressjs ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” Wiston ์ด๋ž€ ๋ชจ๋“ˆ ์“ด๋‹ค nestjs ์—๋Š” ์ด๋ฏธ build-in ๋œ logger ํด๋ž˜์Šค ์žˆ์Œ ๐ŸŽ€ main.ts import { NestFactory } from '@n..

[Nest JS ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ] (33) ์ž์‹ ์ด ์ƒ์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ์„ ์‚ญ์ œํ•˜๊ธฐ

=> ๋”ฐ๋ผํ•˜๋ฉด์„œ ๋ฐฐ์šฐ๋Š” NestJS ๐Ÿงธ ์ž์‹ ์ด ์ƒ์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ์„ ์‚ญ์ œํ•˜๊ธฐ ํ˜„์žฌ๋Š”, ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์–ด๋– ํ•œ ์œ ์ €์ธ์ง€์— ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ€์ ธ์˜ด ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ํ•ด๋‹น ์œ ์ €๊ฐ€ ์ƒ์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ๋งŒ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•œ๋‹ค ๐ŸŽ€ boards.controller.ts // ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•จ // @Controller ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ํด๋ž˜์Šค๋ฅผ ๋ฐ์ฝ”๋ ˆ์ด์…˜ํ•˜์—ฌ ์ •์˜ํ•จ // Handler : @Get, @Post, @Delete ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ์žฅ์‹ ๋œ ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค ๋‚ด์˜ ๋‹จ์ˆœํ•œ ๋ฉ”์„œ๋“œ import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post, UseGuards, UsePipes, ValidationPipe } f..

[Nest JS ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ] (32) ํ•ด๋‹น ์œ ์ €์˜ ๊ฒŒ์‹œ๋ฌผ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ (getAllBoards)

=> ๋”ฐ๋ผํ•˜๋ฉด์„œ ๋ฐฐ์šฐ๋Š” NestJS ๐Ÿงธ ํ•ด๋‹น ์œ ์ €์˜ ๊ฒŒ์‹œ๋ฌผ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ (getAllBoards) ํ˜„์žฌ๋Š”, ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์–ด๋– ํ•œ ์œ ์ €์ธ์ง€์— ์ƒ๊ด€์—†์ด ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ€์ ธ์˜ด ๊ฒŒ์‹œ๋ฌผ์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ํ•ด๋‹น ์œ ์ €๊ฐ€ ์ƒ์„ฑํ•œ ๊ฒŒ์‹œ๋ฌผ๋งŒ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•œ๋‹ค ๐ŸŽ€ boards.controller.ts // ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•จ // @Controller ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ํด๋ž˜์Šค๋ฅผ ๋ฐ์ฝ”๋ ˆ์ด์…˜ํ•˜์—ฌ ์ •์˜ํ•จ // Handler : @Get, @Post, @Delete ๋“ฑ๊ณผ ๊ฐ™์€ ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ์žฅ์‹ ๋œ ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค ๋‚ด์˜ ๋‹จ์ˆœํ•œ ๋ฉ”์„œ๋“œ import { Body, Controller, Delete, Get, Param, ParseIntPipe, Patch, Post, UseGuards, UsePipes, Vali..