Projection

Projection

Projection

์—”ํ‹ฐํ‹ฐ์˜ ์†์„ฑ๋“ค์ด ๋„ˆ๋ฌด ๋งŽ์„ ๋•Œ, ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด comment ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž

์ธํ„ฐํŽ˜์ด์Šค ๊ธฐ๋ฐ˜

closed projection

์œ„์˜ ์ •๋ณด๋“ค ์ค‘ comment, up, down๋งŒ ๊ด€์‹ฌ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์—ฌ, ์ž„์˜๋กœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

์–ด๋–ค Post์•ˆ์— ์žˆ๋Š” comment๋ฅผ ์กฐํšŒํ•œ๋‹ค.(findByPost_Id)

๋งŒ๋“ค์–ด์ค€ ์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์œผ๋กœ ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๊ณ  ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด comment, up, down ๊ฐ’๋งŒ select ํ•ด์˜ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

open projection

open projection์€ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋‹ค ๊ฐ€์ ธ์™€์„œ ๋‘ ๊ฐœ์˜ ์š”์†Œ๋ฅผ ํ•ฉ์ณ์„œ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์„ฑ๋Šฅ์ตœ์ ํ™”๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ˜ผํ•ฉ

ํ•„์š”ํ•œ ์š”์†Œ๋งŒ ๊ฐ€์ ธ์™€์„œ ์ปค์Šคํ…€ํ•˜๊ฒŒ ์š”์†Œ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜๋„ ์žˆ๋‹ค.

ํด๋ž˜์Šค ๊ธฐ๋ฐ˜

ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์œผ๋กœ๋„ ํ”„๋กœ์ ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. DTO๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

์œ„์˜ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์•„๋ž˜์˜ ํด๋ž˜์Šค๋Š” ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

Tip

ํ”„๋กœ์ ์…˜์„ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค. ํ˜„์žฌ post_id ๊ฐ’์œผ๋กœ CommentSummary ํƒ€์ž…์„ ๊ฐ€์ ธ์˜ค๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, post_id ๊ฐ’์œผ๋กœ ๋‹ค๋ฅธ ๊ฐ’๋„ ๊ฐ™์ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์ด comment๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋„ ์žˆ๋‹ค๊ณ  ํ•˜์ž.

post_id๊ฐ’์œผ๋กœ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์ง€๋งŒ, ๋ฉ”์„œ๋“œ ๋ช…์ด ๊ฐ™์•„์„œ ์„ ์–ธํ•ด์ค„ ์ˆ˜๊ฐ€ ์—†๋‹ค.

์ด๋Ÿฐ ๊ฒฝ์šฐ Generic ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

Last updated