header-img
Info :
728x90

1. DAO(Data Access Object)

์‹ค์ œ๋กœ DB์˜ data์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด. DB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์กฐํšŒ ๋ฐ ์กฐ์ž‘ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ „๋‹ดํ•˜๋Š” object.

   - ์‹ค์ œ๋กœ DB์— ์ ‘๊ทผํ•˜์—ฌ data๋ฅผ ์‚ฝ์ž…, ์‚ญ์ œ, ์กฐํšŒ, ์ˆ˜์ • ๋“ฑ CRUD ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

   - Service ๋‹จ๊ณผ DB ๋‹จ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณ ๋ฆฌ ์—ญํ• 

   

2. DTO(Data Transfer Object)

๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด, ๋กœ์ง์„ ๊ฐ€์ง€์ง€ ์•Š๋Š” ์ˆœ์ˆ˜ํ•œ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด(Java Beans). 

VO์™€ ํ˜ผ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ˆœ์ˆ˜ํ•œ ๋ฐ์ดํ„ฐ ๊ฐ์ฒด.

   - DTO๋Š” ์ฆ‰, getter/setter ๋ฉ”์„œ๋“œ๋งŒ ๊ฐ€์ง„ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•จ

   - DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์„œ Service๋‹จ์ด๋‚˜ Controller ๋‹จ ๋“ฑ์œผ๋กœ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉ

 

3. VO(Value Object)

๊ฐ’์„ ์œ„ํ•ด ์“ฐ์ด๋ฉฐ, Read-Only์˜ ํŠน์ง•์„ ๊ฐ€์ง.

   - DTO์™€์˜ ์ฐจ์ด : DTO๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์ธต ๊ฐ„ ๊ตํ™˜(Transfer) ํ•˜๋Š”๋ฐ์— ์˜๋ฏธ๊ฐ€ ์žˆ๊ณ , VO๋Š” ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•œ read-only ์†์„ฑ์„ ๊ฐ€์ง„ ๊ฐ์ฒด๋กœ์„œ ๋ฐ์ดํ„ฐ ๊ทธ ์ž์ฒด์— ์˜๋ฏธ๋ฅผ ๋‘๊ณ  ์žˆ์Œ. (VO๋Š” Setter๊ฐ€ ์—†์Œ)

   - domain =/= VO ์ด๋ฉฐ, ์—ฐ๊ด€์„ฑ์„ ๋”ฐ์ง€์ž๋ฉด domain = entity + VO์˜ ๋ชจ์Œ

 

์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ DB์— ๋„ฃ๋Š” ๊ณผ์ •?

1) ์œ ์ €๊ฐ€ ์ž์‹ ์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ form์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ DTO์— ๋„ฃ์–ด์„œ ์ „์†ก

2) ํ•ด๋‹น DTO๋ฅผ ๋ฐ›์€ ์„œ๋ฒ„๊ฐ€ DAO๋ฅผ ์ด์šฉํ•ด DB๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘์–ด๋„ฃ์Œ

 

์–ธ์ œ ๋ญ˜ ์จ์•ผ ํ•˜๋Š”๊ฐ€

DTO : ๊ณ„์ธต ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์šฉ

VO : ๊ฐ’์„ ๊ฐ–๋Š” ๋„๋ฉ”์ธ

Entity : DB์™€ mapping๋˜๋Š” ์šฉ

Repository : DAO, DB ์ ‘๊ทผ์šฉ(CRUD)

728x90
๋”๋ณด๊ธฐ
BACKEND/SpringBoot