Repository์ DAO
๋ ๊ฐ ๋ชจ๋ Persistence(์์์ฑ) ๋ก์ง์ ๋ํด ๊ฐ์ฒด ์งํฅ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๊ณ ๋๋ฉ์ธ ๋ก์ง๊ณผ ์์์ฑ ๋ก์ง์ ๋ถ๋ฆฌํ์ฌ ๊ด์ฌ์ ๋ถ๋ฆฌ(separation of concerns)์๋ฆฌ๋ฅผ ๋ง์กฑ์ํค๋ ๋ฐ์ ๋ชฉ์ ์ด ์๋ค๋ ๊ฒ์ ๊ฐ๋ค.
Repository
๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋ ๊ฐ์ฒด ์ปฌ๋ ์ ์ ๋ํ ์งํฉ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ค.
DAO๋ณด๋ค๋ ๋ ์ธ๋ฐํ ์คํผ๋ ์ด์ ์ผ๋ก Repository๋ด๋ถ์์๋ ๋ค์์ DAO๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.
๊ฐ์ฒด ์ปฌ๋ ์ ์ฒ๋ฆฌ์ ๊ดํ ์ฑ ์๋ง์ ๊ฐ๋๋ค.
์์ํ ๋๋ฉ์ธ ๋ชจ๋ธ ๊ฐ์ฒด๋ก ๋๋ฉ์ธ์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์ค๊ณ๋๋ค.
DOMAIN MODELํจํด๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ค.
DAO
Data Access Object๋ก ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ ๊ฐ์ฒด๋ฅผ ๋ปํ๋ค.
์ค์ ๊ฐ๋ฐ ์์๋ ํ๋ถ์ Persistence ๋ฉ์ปค๋์ฆ์ด DB๋ผ๋ ์ฌ์ค์ ์จ๊ธฐ๋ ค๊ณ ํ์ง ์๊ณ , DB์์ CRUD ์ฟผ๋ฆฌ์ 1:1 ๋งค์นญ๋๋ ์์ธํ ์คํผ๋ ์ด์ ์ ์ ๊ณตํ๋ค.
๋์ฒด์ ์ผ๋ก ํ
์ด๋ธ ํ๋๋น ํ๋์ DAO๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ ํจํด์ด๋ฉฐ, TRANSACTION SCRIPTํจํด๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ค.
Persistence ๋ก์ง์ ์๊ตฌ์ฌํญ์ ๋ฐ๋ผ ์ค๊ณ ๋๋ค.
Persistence Layer์ ์ํ๋ FACADE
Transaction Script์ Domain Model ์ฐจ์ด์
Persistence๋ ์์์ฑ์ผ๋ก ๋ฐ์ดํฐ์ ์ง์์ฑ์ ๋ปํ๋ค. (์ฑ์ ์ข
๋ฃํ๊ณ ๋ค์ ์คํํด๋ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์์ด ์ง์๋๋ ๊ฒ.)
์ฆ Persistence Layer๋ ๋ฐ์ดํฐ์์ค์ ์ปค๋ฅ์
ํ์ ๋ด๋นํ๋ฉฐ SQL ๋งตํ๊ณผ ์บ์ฑ๋ฑ์ ์ํํ๋ค.
Reference
http://egloos.zum.com/aeternum/v/1160846
Last updated