๐Ÿญ Projects_

Project#3 _ OTT ํ”„๋กœ๊ทธ๋žจ No.1 - ์„ค๊ณ„ ๋‹จ๊ณ„

CodeLoge 2025. 1. 23. 22:25

#1 ์„ค๊ณ„ ๊ณผ์ •

: ํ”„๋กœ๊ทธ๋žจ ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜ → ํŒ€์› ๋ชจ๋‘๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€ ๋‹ค ์•Œ ์ˆ˜ ์žˆ๋„๋ก!

: CRUD (๋น„์ฆˆ๋‹ˆ์Šค ๋ฉ”์„œ๋“œ, ํ•ต์‹ฌ ๊ด€์‹ฌ, ์ฃผ์š” ๊ธฐ๋Šฅ) ์ƒ๊ฐํ•˜๋ฉฐ ๊ตฌ์„ฑ

: ์‚ฌ์šฉ์ž์˜ ์‹œ๊ฐ์—์„œ ๊ธฐ๋Šฅ ์ด์šฉํ•ด๋ณด๊ธฐ → User Flow

 

#2 ์œ ์˜ ์‚ฌํ•ญ

[๋‚ฎ์€ ๊ฒฐ์ง‘๋„, ๋†’์€ ์‘์ง‘๋„] → ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด : ๋ฌด์กฐ๊ฑด ์•Œ์•„์•ผ ํ•  ์ •๋ณด!

1) Model ์—์„œ CRUD ์˜ค๋ฒ„๋กœ๋”ฉ์ด ์•ˆ๋จ

→ ๋‚ฎ์€ ์‘์ง‘๋„

→ ํ•˜๋‚˜์˜ ๋ฉ”์„œ๋“œ์—์„œ ๋ชจ๋“  ๋กœ์ง์„ ๊ด€๋ฆฌ : ๋†’์€ ์‘์ง‘๋„

2) Model์—์„œ CRUD ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ณ์˜ ๋ณ€ํ™” → Controller ์ฝ”๋“œ๋„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ!

→ ๋†’์€ ๊ฒฐํ•ฉ๋„

โ˜…โญ๏ธŽโ˜…โญ๏ธŽโ˜…โญ๏ธŽ Model์˜ CRUD ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ณ ์ค‘ ์ธ์ž๋ฅผ ใ…‡ใ…‡ใ…‡ dto๋กœ ๊ณ ์ •! โ˜…โญ๏ธŽโ˜…โญ๏ธŽโ˜…โญ๏ธŽ

→ ์†์„ฑ(์ •๋ณด)์„ DTO ๋‚ด๋ถ€์— ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ณ์— ๋ณ€ํ™”๋ฅผ ์ฃผ์ง€ ์•Š์Œ

๋”ฐ๋ผ์„œ, Controller ์ฝ”๋“œ์—๋„ ๋ณ€ํ™”๊ฐ€ ์—†์Œ! == ๊ฒฐํ•ฉ๋„๊ฐ€ ๋‚ฎ์€ ์ฝ”๋“œ!

→ ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ณ๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํฌ์ธํŠธ

#2-1 DTO๋ฅผ ์ธ์ž์— ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•

DAO์— ๋“ค์–ด๊ฐ€๋Š” ๋ชจ๋“  ์ธ์ž๋ฅผ DTO๋กœ ์„ค์ •

// ์˜ˆ์‹œ

ProductDTO dto = new ProductDTO();

dto.setName(name);
dto.setScore(score);
dto.setNum(this.NUM++);

CRUD์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ณ๋ฅผ DTO๋กœ ํ†ต์ผํ•˜์—ฌ ์ธ์ž๋ฅผ ๋„ฃ์–ด์ค€ ๋’ค, dto.getNum ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ!

 

#2-2 Condition

: ์กฐ๊ฑด ์ธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ

: ์ž๋ฐ”์—์„œ ๊ฐœ๋ฐœ์„ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด ๋†“์€ ์ธ์ž (๊ฐœ๋ฐœ์šฉ์œผ๋กœ ์ƒ์„ฑํ•œ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜)

: ๋Œ€๋ถ€๋ถ„ String ํƒ€์ž…์˜ ์˜์–ด๋กœ ์ž‘์„ฑํ•˜๋ฉฐ, ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑ

 

์„ค๊ณ„๋‹จ๊ณ„์—์„œ ๋‚ด์šฉ ์ง€์†์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ!