๋ชฉ๋ก์ ์ฒด ๊ธ (1005)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ ID๋ฅผ ์ด์ฉํด์ ํน์ ๊ฒ์๋ฌผ ๊ฐ์ ธ์ค๊ธฐ ๐ Service ์ Repository ๋ฃ์ด์ฃผ๊ธฐ : Board ์๋น์ค ์ Board ๋ ํ์งํ ๋ฆฌ๋ฅผ ๋ฃ๊ธฐ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์๊ฑฐ ๊ฐ์ ธ์ฌ ๋ TypeORM ์ธ ๋์๋ Repository ํจํด ์ฌ์ฉํจ : @injdectRepository ๋ ์๋น์ค์์ BoardRepository ๋ฅผ ์ด์ฉํ๊ธฐ์ํด boardRepository ๋ณ์์ ๋ฃ๋๋ค @Injectable() export class BoardsService { constructor( @InjectRepository(BoardRepository) private boardRepository: BoardRepository, ){} } ๐ Service ์ getBoardById ๋ฉ์๋ ์์ฑ..
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ Repository ์์ฑํ๊ธฐ : ์ํฐํฐ ๊ฐ์ฒด์ ํจ๊ป ์๋ํ๋ฉฐ ์ํฐํฐ ์ฐพ๊ธฐ, ์ฝ์ , ์ ๋ฐ์ดํธ, ์ญ์ ๋ฑ์ ์ฒ๋ฆฌํจ : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ จ๋ ์ผ์ ์๋น์ค๊ฐ ์๋ Repository ์์ ํ๊ธฐ => Repository Pattern import { EntityRepository, Repository } from "typeorm"; import { Board } from "./board.entity"; @EntityRepository(Board) export class BoardRepository extends Repository {}
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ ๊ฒ์๋ฌผ์ ์ํ ์ํฐํฐ (Entity) ์์ฑํ๊ธฐ ๐ Entity ์์ฑ ์ด์ : TypeORM ์ ์ฌ์ฉํ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ๋ก ๋ณํ๋๋ class ์ด๊ธฐ ๋๋ฌธ์ ํด๋์ค๋ฅผ ์์ฑํ ํ ๊ทธ ์์ ์ปฌ๋ผ๋ค์ ์ ์ํจ ๐ @Entity() : Board ํด๋์ค๊ฐ ์ํฐํฐ์์ ๋ํ๋ด๋๋ฐ ์ฌ์ฉ ๐ @Entity() : id ์ด์ด Board ์ํฐํฐ์ ๊ธฐ๋ณธ ํค ์ด์์ ๋ํ๋๋๋ฐ ์ฌ์ฉ ๐ @Entity() : Board ์ํฐํฐ์ title ๋ฐ description ๊ฐ์ ๋ค๋ฅธ ์ด ๋ํ๋๋ฐ ์ฌ์ฉ import { BaseEntity, Column, PrimaryGeneratedColumn } from "typeorm"; import { BoardStatus } from "./board.mode..
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ PostgresSQL ์ค์นํ๊ธฐ : ๋ฐ์ดํฐ๋ฒ ์ด์ค https://www.postgresql.org/download/windows/ ๐ pgAdmin : ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณด๋ ํด https://www.pgadmin.org/download/ ๐งธ TypeORM : node.js ์์ ์คํ๋๊ณ TypeScript ๋ก ์์ฑ๋ ๊ฐ์ฒด ๊ด๊ณํ ๋งคํผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ : ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ์ฒด๊ณ๋ฅผ ์๋์ผ๋ก ์์ฑ : ํ ์ด๋ธ ๊ฐ์ ๋งคํ (์ผ๋์ผ, ์ผ๋ ๋ค ๋ฐ ๋ค ๋๋ค) ๋ง๋ฆ : ๊ฐ๋จํ CLI ๋ช ๋ น์ ์ ๊ณต npm install pg typeorm @nestjs/typeorm --save ๐ ORM (Object Relational Mapping) : ๊ฐ์ฒด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ด..
๋ช ํจ ์ง๊ฐ์ ๋ง๋๋ ํ์ฌ์์ ์ง๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ค์ํ ๋ชจ์๊ณผ ํฌ๊ธฐ์ ๋ช ํจ๋ค์ ๋ชจ๋ ์๋ฉํ ์ ์์ผ๋ฉด์, ์์์ ๋ค๊ณ ๋ค๋๊ธฐ ํธํ ์ง๊ฐ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์๊ฑด์ ๋ง์กฑํ๋ ์ง๊ฐ์ ๋ง๋ค๊ธฐ ์ํด ๋์์ธํ์ ๋ชจ๋ ๋ช ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ์กฐ์ฌํ์ต๋๋ค. ๊ฐ์ฅ ๊ธด ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๊ฐ ๊ฐ๊ฐ 80, 70์ด๊ธฐ ๋๋ฌธ์ 80(๊ฐ๋ก) x 70(์ธ๋ก) ํฌ๊ธฐ์ ์ง๊ฐ์ ๋ง๋ค๋ฉด ๋ชจ๋ ๋ช ํจ๋ค์ ์๋ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง 2๋ฒ ๋ช ํจ์ ๊ฐ๋ก๋ก ๋ํ ์๋ฉํ๋ค๋ฉด 80(๊ฐ๋ก) x 50(์ธ๋ก) ํฌ๊ธฐ์ ์ง๊ฐ์ผ๋ก ๋ชจ๋ ๋ช ํจ๋ค์ ์๋ฉํ ์ ์์ต๋๋ค. ์ด๋์ ์ง๊ฐ ํฌ๊ธฐ๋ 4000(=80 x 50)์ ๋๋ค. ๋ชจ๋ ๋ช ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ 2์ฐจ์ ๋ฐฐ์ด sizes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ชจ๋ ๋ช ํจ์ ์๋ฉํ ..
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ ์ปค์คํ ํ์ดํ๋ฅผ ์ด์ฉํ ์ ํจ์ฑ ์ฒดํฌ : Pipe Transform ์ด๋ ์ธํฐํ์ด์ค๋ฅผ ์๋กญ๊ฒ ๋ง๋ค ์ปค์คํ ํ์ดํ์ ๊ตฌํํด์ค์ผ ํจ : Pipe Transform ์ธํฐํ์ด์ค๋ ๋ชจ๋ ํ์ดํ์์ ๊ตฌํํด์ค์ผ ํ๋ ์ธํฐํ์ด์ค : ๋ชจ๋ ํ์ดํ๋ transform() ๋ฉ์๋ ํ์ : NestJS ๊ฐ ์ธ์๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋จ ๐ transform() ๋ฉ์๋ : ๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ์ง : ์ฒซ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ ์ฒ๋ฆฌ๊ฐ ๋ ์ธ์์ ๊ฐ (value) : ๋ ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ ์ธ์์ ๋ํ ๋ฉํ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ ๊ฐ์ฒด -> transform() ๋ฉ์๋์์ return ๋ ๊ฐ์ Route ํธ๋ค๋ฌ๋ก ์ ํด์ง (์์ธ๊ฐ ์๊ธฐ๋ฉด ํด๋ผ์ด์ธํธ๋ก ์ ํด์ง) ๐งธ ์ปค์คํ ํ์ดํ๋ก ์ํ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ : ์ํ๋ PU..
=> ๋ฐ๋ผํ๋ฉด์ ๋ฐฐ์ฐ๋ NestJS ๐งธ ํน์ ๊ฒ์๋ฌผ์ ์ฐพ์ ๋ ์๋ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ฒ๋ฆฌํ๊ธฐ : ์์ธ ์ธ์คํด์ค ์์ฑํ์ฌ ์๋ฌ ํ์ถํ๊ธฐ // ID๋ก ํน์ ๊ฒ์๋ฌผ ๊ฐ์ ธ์ค๊ธฐ getBoardById(id: string): Board { const found = this.boards.find((board) => board.id === id); // ํน์ ๊ฒ์๋ฌผ์ ์ฐพ์ ๋ ์๋ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ฒ๋ฆฌํ๊ธฐ // ์์ธ ์ธ์คํด์ค ์์ฑํ์ฌ ์๋ฌ ํ์ถ if (!found) { throw new NotFoundException(`Can't find Board with id ${id}`);; } return found; } ๐งธ ์๋ ๊ฒ์๋ฌผ์ ์ง์ธ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ฒ๋ฆฌํ๊ธฐ : ์์ธ ์ธ์คํด์ค ์์ฑํ์ฌ ์๋ฌ ํ์ถํ๊ธฐ // ID๋ก ํน์ ๊ฒ์๋ฌผ ์ญ..
๋ฐฐ์ด arr๊ฐ ์ฃผ์ด์ง๋๋ค. ๋ฐฐ์ด arr์ ๊ฐ ์์๋ ์ซ์ 0๋ถํฐ 9๊น์ง๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์ด๋, ๋ฐฐ์ด arr์์ ์ฐ์์ ์ผ๋ก ๋ํ๋๋ ์ซ์๋ ํ๋๋ง ๋จ๊ธฐ๊ณ ์ ๋ถ ์ ๊ฑฐํ๋ ค๊ณ ํฉ๋๋ค. ๋จ, ์ ๊ฑฐ๋ ํ ๋จ์ ์๋ค์ ๋ฐํํ ๋๋ ๋ฐฐ์ด arr์ ์์๋ค์ ์์๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด, arr = [1, 1, 3, 3, 0, 1, 1] ์ด๋ฉด [1, 3, 0, 1] ์ return ํฉ๋๋ค.arr = [4, 4, 4, 3, 3] ์ด๋ฉด [4, 3] ์ return ํฉ๋๋ค. ๋ฐฐ์ด arr์์ ์ฐ์์ ์ผ๋ก ๋ํ๋๋ ์ซ์๋ ์ ๊ฑฐํ๊ณ ๋จ์ ์๋ค์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. #include #include using namespace std; vector solution(vector arr) {..