๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐฑ์—”๋“œ/ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

DB์—์„œ select ํ•ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ DTO์— ๋‹ด๊ธฐ์ง€ ์•Š์•˜๋˜ ์ด์œ  (์ƒ์„ฑ์ž ์ƒ์„ฑ)

by sh119 2024. 3. 21.

๊ฒฐ๋ก ๋ถ€ํ„ฐ ์ ์ž๋ฉด DTO class์— ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๊ทธ ์ „์— ํ”„๋กœ์ ํ„ฐ์—์„œ๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•˜์ง€๋งŒ

Lombok ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ–ˆ๊ฑฐ๋‚˜ (@Data ์–ด๋…ธํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ž˜์Šค์— ํ•„ํŠธ, getter, setter equals, hashCode, toString ๋“ฑ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์คŒ)

Spring์˜ ๊ธฐ๋ณธ ์„ค์ •์œผ๋กœ ์ธํ•ด @ComponentScan์„ ํ†ตํ•ด ํŒจํ‚ค์ง€๋ฅผ ์Šค์บ”ํ•˜์—ฌ ๋นˆ์œผ๋กœ ๋“ฑ๋กํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜ ์—†์ด ์ฝ”๋“œ๊ฐ€ ์ž˜ ์‹คํ–‰๋˜์—ˆ์ง€๋งŒ

 

ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๊ธฐ๋ณธ ์„ค์ •์ด ๋‹ค๋ฅด๊ณ  ์ด๋ฒˆ์— @ComponentScan ์„ ๋งŒ์ง€๋ฉด์„œ ๋นˆ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋“ฑ๋ก๋˜์ง€ ์•Š์•„ DTO class๋ฅผ ํ†ตํ•ด selectํ•ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ด๋‹น ๊ฐ์ฒด์— ์ž˜ ๋‹ด๊ธฐ์ง€ ์•Š์•„ ๋ถ€๋ถ„์ ์œผ๋กœ null๊ฐ’์„ ๋™๋ฐ˜ํ•œ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ ๊ฐ™๋‹ค.

 

๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฌธ์ œ๋Š” ํ•ด๋‹น ํด๋ž˜์Šค์— ์ƒ์„ฑ์ž๋ฅผ ์ ์Œ์œผ๋กœ์จ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜์ž๋งˆ์ž setter๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ๋ณ€์ˆ˜์— ๊ฐ’์„ ์ €์žฅํ•จ์œผ๋กœ์จ null์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ƒํ™ฉ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

Lombok๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ํŽธํ–ˆ๊ฒ ์ง€๋งŒ ์ƒ์„ฑ์ž๋ฅผ ์ ์œผ๋ฉด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ณ  ์˜๋„๋ฅผ ๋ช…ํ™•ํžˆ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.