๐ŸŒนย ์ •๋ฆฌ by ์žฅ๋ฏธ(https://velog.io/@newbiekim/)

Data Transfer Object

๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜(์ „๋‹ฌ)์„ ์œ„ํ•œ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์ด๋ฏธ์ง€ ์ถœ์ฒ˜: ์–ด๋ผ์šด๋“œํ—ˆ๋ธŒ ์ŠคํŠœ๋””์˜ค

์ด๋ฏธ์ง€ ์ถœ์ฒ˜: ์–ด๋ผ์šด๋“œํ—ˆ๋ธŒ ์ŠคํŠœ๋””์˜ค

DTO๋Š” ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์ˆ˜๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•˜์—ฌ ์„œ๋ฒ„๋กœ์˜ ์™•๋ณต ์ด๋™์„ ์ค„์ด๋ฉด, ์›๊ฒฉ ์ž‘์—…์—์„œ ๋„คํŠธ์›Œํฌ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ค„์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

DTO๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ POJO๋กœ ์ƒ์„ฑ๋œ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์—†๋Š” ํ”Œ๋žซ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋‹ค.

DTO๋Š” ์˜ค์ง getter, setter ๋ฉ”์„œ๋“œ๋งŒ ๊ฐ€์ง„๋‹ค.

์ˆœ์ˆ˜ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ๋งŒ ํ•˜๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋ณด๋‚ด๋Š” ์ชฝ์—์„œ setter๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ DTO์— ๋‹ด์•„ ๋ณด๋‚ด๊ณ , ๋ฐ›๋Š” ์ชฝ์—์„œ getter๋ฅผ ์‚ฌ์šฉํ•ด ์ „๋‹ฌ ๋ฐ›์€ DTO๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ๋ฐฉ์‹์ด๋‹ค.

setter ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์งˆ ๊ฒฝ์šฐ, ์ด๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น DTO์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ€๋ณ€์ ์ด๋‹ค.

๋งŒ์•ฝ setter ๋ฉ”์„œ๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์†์„ฑ ๊ฐ’๋“ค์„ ๋ถˆ๋ณ€๊ฐ์ฒด๋กœ ๋งŒ๋“ ๋‹ค๋ฉด, DTO๊ฐ€ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ „๋‹ฌ ๊ณผ์ • ์ค‘ ๋ณ€์กฐ๋˜์ง€ ์•Š์Œ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.