๐นย ์ ๋ฆฌ by ์ฅ๋ฏธ(https://velog.io/@newbiekim/)
Data Transfer Object
๊ณ์ธต ๊ฐ ๋ฐ์ดํฐ ๊ตํ(์ ๋ฌ)์ ์ํ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค.
์ด๋ฏธ์ง ์ถ์ฒ: ์ด๋ผ์ด๋ํ๋ธ ์คํ๋์ค
DTO๋ ๋ฉ์๋ ํธ์ถ ์๋ฅผ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
ํ ๋ฒ์ ํธ์ถ๋ก ์ฌ๋ฌ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ผ๊ด ์ฒ๋ฆฌํ์ฌ ์๋ฒ๋ก์ ์๋ณต ์ด๋์ ์ค์ด๋ฉด, ์๊ฒฉ ์์ ์์ ๋คํธ์ํฌ์ ์ค๋ฒํค๋๊ฐ ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ด๋ค.
DTO๋ ์ผ๋ฐ์ ์ผ๋ก POJO๋ก ์์ฑ๋๋ค.
๋น์ฆ๋์ค ๋ก์ง์ด ์๋ ํ๋ซ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ค.
DTO๋ ์ค์ง getter
, setter
๋ฉ์๋๋ง ๊ฐ์ง๋ค.
์์ํ๊ฒ ๋ฐ์ดํฐ ์ ๋ฌ๋ง ํ๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ณด๋ด๋ ์ชฝ์์ setter
๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ DTO์ ๋ด์ ๋ณด๋ด๊ณ , ๋ฐ๋ ์ชฝ์์ getter
๋ฅผ ์ฌ์ฉํด ์ ๋ฌ ๋ฐ์ DTO๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด๋ ๋ฐฉ์์ด๋ค.
setter ๋ฉ์๋๋ฅผ ๊ฐ์ง ๊ฒฝ์ฐ, ์ด๋ฅผ ํตํด ์๋ก์ด ๊ฐ์ ์ค์ ํ ์ ์์ผ๋ฏ๋ก ํด๋น DTO์ ๋ฐ์ดํฐ๋ ๊ฐ๋ณ์ ์ด๋ค.
๋ง์ฝ setter ๋ฉ์๋๋ฅผ ์ญ์ ํ๊ณ ์์ฑ ๊ฐ๋ค์ ๋ถ๋ณ๊ฐ์ฒด๋ก ๋ง๋ ๋ค๋ฉด, DTO๊ฐ ์ ๋ฌํ๋ ๋ฐ์ดํฐ๋ ์ ๋ฌ ๊ณผ์ ์ค ๋ณ์กฐ๋์ง ์์์ ๋ณด์ฅํ ์ ์๋ค.