SW ๊ฐ๋ฐ/Java
DAO, DTO, VO ๊ฐ๋ ์ ๋ฆฌ
DATA101
2021. 12. 29. 20:23
728x90
๋ฐ์ํ
๐ฅ ๋ชฉํ
DAO, DTO, VO์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๊ณผ ํน์ง์ ์ดํดํ๋ค.
1. Data Access Object(DAO)
- Database์ Access ํ๋ Transaction Object
- Domain Logic์์ Persistence Mechanism ๋ ธ์ถ ์์ด ๋ฐ์ดํฐ ์กฐํ, ์ฝ์ , ์ญ์ , ์ ๋ฐ์ดํธ(i.e., CRUD) ๊ธฐ๋ฅ ์ํ
- Domain Logic๊ณผ ๋น์ฆ๋์ค ๋ก์ง ๋ถ๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ
2. Data Transfer Object(DTO)
2.1. ๊ฐ๋ ๋ฐ ํน์ง
- ๊ณ์ธต ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ด ์ฃผ๋ ๋ชฉ์ ์ธ ๊ฐ์ฒด๋ก, ํน๋ณํ Logic์ ๋ฐ๋ก ๊ฐ์ง ์์
- ํด๋ผ์ด์ธํธ ์ธก๊ณผ ์ง์ ๋ง์ฃผํ๋ ๊ณ์ธต(e.g., Controller, View, Business Layer, Persistence Layer)์ Entity๋ฅผ ์ง์ ์ ๋ฌํ์ง ์๊ณ DTO๋ฅผ ํ์ฉํด ๋ฐ์ดํฐ ๊ตํ ์ง์
- DTO๊ฐ DB ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์กฐ์ํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ DTO ๋ด Setter๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ผ๋ฉฐ ์์ฑ์์์ ๊ฐ์ ํ ๋นํจ
2.2. Entity์ DTO ๊ฐ ๋ถ๋ฆฌ ์ด์
- Entity๋ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ฉด ๋ค๋ฅธ ๋ก์ง์๋ ์ํฅ์ ๋ฏธ์นจ
- DTO ํด๋์ค๋ View Layer์ ๋ฐ์ดํฐ ๊ตํ์ด ๋น๋ฒํ๊ธฐ ๋๋ฌธ์ DTO์ Entity๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ View Layer์ DB Layer ๋ถ๋ฆฌ ๊ฐ๋ฅ
- View์์ ์์ฒญํ๋ ์ ๋ณด์ Table์ Mapping ๋๋ ์ ๋ณด๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ, ํ์ํ ์ ๋ณด์ ๋ง๊ฒ ๋ก์ง์ด ์ถ๊ฐ๋ก ํ์ํ๊ฒ ๋์ด ๋ฒ๊ฑฐ๋ก์
- DB๋ก๋ถํฐ ์กฐํํ Entity๋ฅผ View๋ก ์ ๋ฌํ ๊ฒฝ์ฐ ๋ถํ์ํ๊ฑฐ๋ ๊ธฐ๋ฐ ์ ๋ณด๊น์ง ๋ ธ์ถ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋ก์ง์ ๋ฐ๋ก ๊ตฌํํ๋ ๊ฒ์ด ์ข์
3. Value Object(VO)
- Value Object(VO)๋ DTO์ ๊ฐ์ ๊ฐ๋
์ด์ง๋ง, DTO๋ ๊ณ์ธต ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ด ์ค์ , VO๋ ์ฝ๊ธฐ ์ ์ฉ(Read Only)์ผ๋ก ๋ฐ์ดํฐ ์์ฒด๊ฐ ์ค์ ์ด๋ผ๋ ์ฐจ์ด ์กด์ฌ
ํฌ์คํ
๋ด์ฉ์ ์ค๋ฅ๊ฐ ์๋ค๋ฉด ์๋์ ๋๊ธ ๋จ๊ฒจ์ฃผ์ธ์!
๊ณ ๋ง์ต๋๋ค :)
728x90
๋ฐ์ํ