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