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