728x90
๋ฐ์ํ
spring์ ์ฌ์ฉํ๋ค๋ณด๋ฉด DTO, DAO, VO์ ๋ํ ์ฉ์ด์ ๋ํ์ฌ ๋ง์ด ์ ํ๊ฒ ๋ฉ๋๋ค. ํด๋น ๊ฐ๋ ์ ๋ํ์ฌ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
DAO(Data Access Object)
- DAO(Data Access Object) ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ data์ ์ ๊ทผํ๊ธฐ ์ํ ๊ฐ์ฒด์ ๋๋ค.
- DataBase์ ์ ๊ทผ ํ๊ธฐ ์ํ ๋ก์ง & ๋น์ง๋์ค ๋ก์ง์ ๋ถ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํฉ๋๋ค.
- Database ์ ๊ทผ์ ์ํ ๊ฐ์ฒด์ด๋ค.
- Data ์ฝ์ (INSERT), ์์ (UPDATE), ์ญ์ (DELETE), ์กฐํ(SELECT)๋ฅผ ์กฐ์/์ํํ๋ค.
- ๋ณดํต DB์ ์ฐ๊ฒฐํ Connection๊น์ง ์ค์ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
DTO
- DTO(Data Transfer Object) ๋ ๊ณ์ธต ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๊ฐ์ฒด๋ก, DTO๋ ๋ก์ง์ ๊ฐ์ง์ง ์๋ ์์ํ ๋ฐ์ดํฐ ๊ฐ์ฒด(getter & setter ๋ง ๊ฐ์ง ํด๋์ค)์ ๋๋ค.
- ์ ์ ๊ฐ ์
๋ ฅํ ๋ฐ์ดํฐ๋ฅผ DB์ ๋ฃ๋ ๊ณผ์ ์ ๋ณด๊ฒ ์ต๋๋ค.
- ์ ์ ๊ฐ ์์ ์ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ์ฌ form์ ์๋ ๋ฐ์ดํฐ๋ฅผ DTO์ ๋ฃ์ด์ ์ ์กํฉ๋๋ค.
- ํด๋น DTO๋ฅผ ๋ฐ์ ์๋ฒ๊ฐ DAO๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ฐ์ดํฐ๋ฅผ ์ง์ด๋ฃ์ต๋๋ค.
์ผ๋ฐ์ ์ผ๋ก DB(Database)์ ์ ๊ทผํ ๋ค ๊ฐ์ ธ์ค๊ฑฐ๋(SELECT) ์ฝ์ (INSERT)ํ ๊ฐ๋ค์ ๋ด๊ธฐ ์ํด์ ๋ง๋ ๋ค.
- ๋ด๊ธด ๊ฐ๋ค์ ๊ณ์ธต๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํด ์ฐ์ด๋ ์๋ฐ๋น์ฆ(beans)์ด๋ค. (๊ณ์ธต์ ์ : Controller, Service, View ๋ฑ...)
- ๋ณดํต ๋ฉค๋ฒ๋ณ์๋ DB ํ ์ด๋ธ์ ์ปฌ๋ผ๋ค์ด๋ฉฐ, getter์ setter๋ฅผ ๊ฐ๋๋ค.
VO
- VO(Value Object) ๊ฐ ์ค๋ธ์ ํธ๋ก์จ ๊ฐ์ ์ํด ์ฐ์ ๋๋ค. read-Only ํน์ง(์ฌ์ฉํ๋ ๋์ค์ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ๋ฉฐ ์ค์ง ์ฝ๊ธฐ๋ง ๊ฐ๋ฅ)์ ๊ฐ์ง๋๋ค.
- DTO์ ์ ์ฌํ์ง๋ง DTO๋ setter๋ฅผ ๊ฐ์ง๊ณ ์์ด ๊ฐ์ด ๋ณํ ์ ์์ต๋๋ค.
728x90
๋ฐ์ํ
'๐ Study > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
junit4 ์ junit 5 ์ ์ฐจ์ด์ ๊ณผ ์ฅ๋จ์ ๊ทธ๋ฆฌ๊ณ ๋ญ๋ฅผ ๋๋ง์ด ์ฐ์ด๋์ง? (0) | 2023.05.01 |
---|---|
Thymeleaf Fragment (Fragment ๋๋๊ธฐ) (0) | 2022.09.06 |
Spring์ด๋? (0) | 2022.08.06 |
์คํ๋ง(Spring)์์ ์์ฃผ ์ฌ์ฉํ๋ Annotation ๊ฐ๋ ๋ฐ ์์ ์ ๋ฆฌ (0) | 2022.08.06 |
[Spring Boot] ํ๋ก์ ํธ ๊ตฌ์กฐ ์์๋ณด๊ธฐ (0) | 2022.07.15 |