๋ชฉ๋ก์ ์ฒด ๊ธ (1005)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
๋ฌธ์์ด str๊ณผ ์ ์ n์ด ์ฃผ์ด์ง๋๋ค. str์ด n๋ฒ ๋ฐ๋ณต๋ ๋ฌธ์์ด์ ๋ง๋ค์ด ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์ธ์ #include #include using namespace std; int main(void) { string str; int n; cin >> str >> n; for(int i =0 ; i < n ; i++){ cout
์ ์ a์ b๊ฐ ์ฃผ์ด์ง๋๋ค. ๊ฐ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ ์ถ๋ ฅ ์์ ๊ฐ์ ํ์์ผ๋ก ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์ธ์. #include using namespace std; int main(void) { int a; int b; cin >> a >> b; cout
๋ฌธ์์ด str์ด ์ฃผ์ด์ง ๋, str์ ์ถ๋ ฅํ๋ ์ฝ๋๋ฅผ ์์ฑํด ๋ณด์ธ์ #include #include using namespace std; int main(void) { string str; getline(cin, str); // ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ cout
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ NestJS PIPE : ํ์ดํ๋ @Injectable () ๋ฐ์ฝ๋ ์ดํฐ๋ก ์ฃผ์์ด ๋ฌ๋ฆฐ ํด๋์ค : data transformation ๊ณผ data validation ์ ์ํด์ ์ฌ์ฉ๋จ : ์ปจํธ๋กค๋ฌ ๊ฒฝ๋ก ์ฒ๋ฆฌ๊ธฐ์ ์ํด ์ฒ๋ฆฌ๋๋ ์ธ์์ ๋ํด ์๋ํจ : Nest ๋ ๋ฉ์๋๊ฐ ํธ์ถ๋๊ธฐ ์ง์ ์ ํ์ดํ๋ฅผ ์ฝ์ ํ๊ณ ํ์ดํ๋ ๋ฉ์๋๋ก ํฅํ๋ ์ธ์๋ฅผ ์์ ํ๊ณ ์ด์ ๋ํด ์๋ํจ ๐ data transformation : ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ ํ์์ผ๋ก ๋ณํ ๐ data validation : ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ํ๊ฐํ๊ณ ์ ์ํ ๊ฒฝ์ฐ ๋ณ๊ฒฝ๋์ง ์์ ์ํ๋ก ์ ๋ฌ (๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฌ ์ฒ๋ฆฌ) ๋ผ์ฐํฐ ํธ๋ค๋ฌ (Router Handler) ๊ฐ ์ฒ๋ฆฌํ๋ ์ธ์์ ๋ํด ์๋ํจ ํ์ดํ๋ ๋ฉ์๋๋ฅผ ๋ฐ๋ก ์ง์ ์..
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ ํน์ ๊ฒ์๋ฌผ์ ์ํ ์ ๋ฐ์ดํธ : ํน์ ๊ฒ์๋ฌผ์ ์ํ (public, private) ๋ฅผ ์ ๋ฐ์ดํธ ํด์ฃผ๋ ๊ธฐ๋ฅ์ ๊ตฌํ ๐ src/boards/boards.service.ts // ํน์ ๊ฒ์๋ฌผ์ ์ํ ์ ๋ฐ์ดํธ updateBoardUpdate(id: string, status: BoardStatus): Board { // ํน์ ๊ฒ์๋ฌผ ์ฐพ๊ธฐ const board = this.getBoardById(id); board.status = status; return board; } ๐ src/boards/boards.controller.ts // ํน์ ๊ฒ์๋ฌผ์ ์ํ ์ ๋ฐ์ดํธ @Patch("/:id/status") updateBoardSatus( @Param("id") id: st..
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ ID ๋ก ํน์ ๊ฒ์๋ฌผ ๊ฐ์ ธ์ค๊ธฐ find ์ฌ์ฉํ์ฌ id ์ด์ฉํ๊ธฐ // ID๋ก ํน์ ๊ฒ์๋ฌผ ๊ฐ์ ธ์ค๊ธฐ getBoardById(id: string): Board { return this.boards.find((board) => board.id === id); } ๐งธ ID ๋ก ํน์ ๊ฒ์๋ฌผ ์ญ์ ํ๊ธฐ filter ์ฌ์ฉํ์ฌ id ์ด์ฉํ๊ธฐ return ์ ์ฐ๊ธฐ ๋๋ฌธ์ void ์ฌ์ฉํจ // ID๋ก ํน์ ๊ฒ์๋ฌผ ์ญ์ ํ๊ธฐ deleteBoard(id: string): void { this.boards = this.boards.filter((board) => board.id !== id); }
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ DTO (Data Transfer Object) ๋ : ๊ณ์ธต๊ณผ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ๊ฐ์ฒด : DB ์์ ๋ฐ์ดํฐ๋ฅผ ์ป์ด Service ๋ Controller ๋ฑ์ผ๋ก ๋ณด๋ผ ๋ ์ฌ์ฉํ๋ ๊ฐ์ฒด : DTO ๋ ๋ฐ์ดํฐ๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์ก๋๋ ๋ฐฉ๋ฒ์ ์ ์ํจ : Interface ๋ class ๋ฅผ ์ด์ฉํ์ฌ ์ ์ ๋จ : ๋ฐ์ดํฐ ์ ํจ์ฑ์ ์ฒดํฌํ๋ ๋ฐ ํจ์จ์ + ๋ ์์ ์ ์ธ ์ฝ๋๋ก ๋ง๋ค์ด์ค : class ๋ ๋ฐํ์์์ ์๋ํ๊ธฐ ๋๋ฌธ์ ํ์ดํ ๊ธฐ๋ฅ ์ด์ฉ ์ ์ ์ฉํจ ๐ src/boards/dto/create-board.dto.js export class CreateBoardDto { title: string; description: string; } ๐ src/boards/boards...
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ ๊ฒ์๋ฌผ ์์ฑํ๊ธฐ (CRUD ์ C) : Controller : request, response ๋ Controller ์์ ์ฒ๋ฆฌํจ : Express ์์๋ bodyParser ๋ชจ๋์ ์ด์ฉํด์ req.body ์์ผ๋ก ํด๋ผ์ด์ธํธ์์ ๋ณด๋ด์จ ๊ฐ์ ๋ฐ์์ด : @Body body๋ฅผ ์ด์ฉํ์ฌ request ์์ ๋ณด๋ด์จ ๊ฐ์ ๊ฐ์ ธ์ด ๐ src/boards/boards.controller.ts // ๋ค์ด์ค๋ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ํด๋ผ์ด์ธํธ์ ์๋ต์ ๋ฐํํจ // @Controller ๋ฐ์ฝ๋ ์ดํฐ๋ก ํด๋์ค๋ฅผ ๋ฐ์ฝ๋ ์ด์ ํ์ฌ ์ ์ํจ // Handler : @Get, @Post, @Delete ๋ฑ๊ณผ ๊ฐ์ ๋ฐ์ฝ๋ ์ดํฐ๋ก ์ฅ์ ๋ ์ปจํธ๋กค๋ฌ ํด๋์ค ๋ด์ ๋จ์ํ ๋ฉ์๋ import { Body, Cont..