Entity, DTO, DAO, VO
๐ Entity
Entity๋ DataBase์ ํ
์ด๋ธ๊ณผ ๋งคํ๋๋ ํด๋์ค๋ก DB ํ
์ด๋ธ ๋ด์ ์กด์ฌํ๋ ์ปฌ๋ผ๋ค์ด ์์ฑ(ํ๋)๋ก ๊ฐ์ ธ์ผ ํ๋ค.
Entity๋ ์์์ ๋ฐ๊ฑฐ๋ ๊ตฌํ์ฒด์ฌ์๋ ์๋๋ฉฐ ํ
์ด๋ธ ๋ด์ ์กด์ฌํ์ง ์๋ ์ปฌ๋ผ์ ๊ฐ์ ธ์๋ ์๋๋ค.
๐ DTO (Data Transfer Object)
๋ฐ์ดํฐ ์ ์ก ๊ฐ์ฒด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ฃผ๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํ ๋ ์ฌ์ฉํ๋ค.
๊ณ์ธต๊ฐ(Controller, View, Business Layer) ๋ฐ์ดํฐ ๊ตํ์ ์ํ ์๋ฐ ๋น์ฆ(Java Beans)๋ฅผ ์๋ฏธํ๋ค.
DTO๋ ๋ก์ง์ ๊ฐ์ง์ง ์๋ ๋ฐ์ดํฐ ๊ฐ์ฒด์ด๊ณ getter/setter ๋ฉ์๋๋ง ๊ฐ์ง ํด๋์ค๋ฅผ ์๋ฏธํ๋ค.
๐ DAO(Data Access Object)
DB์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํ ๊ฐ์ฒด์ด๋ค. DB์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ , ์ญ์ , ์กฐํ ๋ฑ ์กฐ์ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ํํ๋ค.\
๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ DB์ ๊ด๋ จํ ๋ฉ์ปค๋์ฆ์ ์จ๊ธฐ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
๐ VO(Value Object)
Read-Only
์์ฑ์ ๊ฐ์ง ๊ฐ์ฒด์ด๋ค. ๋จ์ํ ๊ฐ ํ์
์ ํํํ๊ธฐ ์ํด ๋ถ๋ณ ํด๋์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.
Getter์ธ ๋น์ฆ๋์ค ๋ก์ง์ ํฌํจํ ์ ์์ผ๋ฉฐ, Setter๋ ๊ฐ์ง ์ ์๋ค.
VO์ ํต์ฌ ์ญํ ์ ๊ฐ์ฒด์ ๊ฐ์ ํํํ๋๋ฐ ์๊ธฐ์ equals()
์ hashcode()
๋ฅผ ํ์์ ์ผ๋ก ์ค๋ฒ๋ผ์ด๋ฉ ํด์ผํ๋ค.