๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

03/05(ํ™”) ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ Java 49์ผ์ฐจ TIL - DAO, DTO, VO

by ๊ฐ์ž๊ฐœ๋ฐœ๊พผ 2024. 3. 5.

 

๐Ÿ“–  ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

  • DAO, DTO, VO

 

๐Ÿฅ”  DAO, DTO, VO

- DAO : Database์— ์ ‘๊ทผํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ์ฒด

- DTO : ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด

- VO : ๊ฐ’ ์ž์ฒด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ์ฒด

 

 

๐Ÿฅ”  DAO (Data Access Object)

DB์˜ data์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด์ด๋‹ค. DB์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

์ง์ ‘ DB์— ์ ‘๊ทผํ•˜์—ฌ data๋ฅผ ์‚ฝ์ž…, ์‚ญ์ œ, ์กฐํšŒ ๋“ฑ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

MVC ํŒจํ„ด์˜ Model์—์„œ ์ด์™€ ๊ฐ™์€ ์ผ์„ ์ˆ˜ํ–‰ํ•จ.

 

 

๐Ÿฅ”  DTO (Data Transfer Object)

DTO๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด์ด๋‹ค. DTO๋Š” ๋กœ์ง์„ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ˆœ์ˆ˜ํ•œ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด๋กœ Getter์™€ Setter๋งŒ ๊ฐ€์ง„ ํด๋ž˜์Šค์ด๋‹ค.

์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ฃผ๋กœ View์™€ Controller ์‚ฌ์ด์—์„œ ํ™œ์šฉํ•œ๋‹ค.

DTO๋Š” ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋งŒ์„ ์œ„ํ•œ ๊ฐ์ฒด๋ผ๋Š” ๊ฒŒ ํ•ต์‹ฌ ์ •์˜์ด๋ฉฐ, ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๋ชฉ์ ์ด๋ฉด.

Getter/Setter๋งŒ ํ•„์š”ํ•˜๊ณ  ๋‹ค๋ฅธ ๋กœ์ง์€ ํ•„์š” ์—†๋‹ค.

 

 

๐Ÿฅ”  VO (Value Object)

VO๋Š” ๊ฐ’ ์ž์ฒด๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค. DTO์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, DTO๋Š” Setter๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๊ฐ’์ด ๋ณ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

VO๋Š” Getter๋ฅผ ํฌํ•จํ•ด์„œ, ์ด์™ธ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Setter๋ฅผ ๊ฐ€์ง€์ง€ ์•Š์•„์„œ ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. (Read-Only)

 

 

 

 

๐Ÿ“š  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

๊ฐœ๋…์ ์ธ ๋ถ€๋ถ„๋„ ๊ผผ๊ผผํ•˜๊ฒŒ ๋ณด๋ฉฐ ์„ฑ์žฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.