์๋ ํ์์์ boot๋ก Spring์ ๋ฐฐ์์
๋๋ Spring boot + jpa + mariaDB + ํ์๋ฆฌํ or ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ์ด์
mvc ํจํด์ ๋ง๋ค ๋
controller + dto + entity + repository + service ๋ก ๊ตฌ์กฐ๋ฅผ ์ก์๋๋ฐ..
ํ์ฌ์์์ Spring mvc ๊ตฌ์กฐ๋ก ๊ฐ๋ฐ์ ํ๊ฒ๋์๋ฐ.
๋งค์ฐ ๋นํฉ์ค๋ฝ๊ณ ๋ญ๊ฐ ๋ญ์ง ๋ชจ๋ฅด๊ฒ ์์ง๋ง ์ด์ ์ด์ฐ์ ์ฐ ์ชผ๋์ ์์๋ค.
๊ทธ ์ค dao๊ฐ ์๊ณ ์๋ ๊ตฌ์กฐ ์ฐจ์ด๊ฐ ๋์ ๋์ด์ ๋๊ฐ์ ์ฐจ์ด๋ฅผ ์งํผํฐ์จฉ์๊ฒ ๋ฌผ์ด๋ดค๋ค.
1. DTO + DAO + Mapper + Service ๊ตฌ์กฐ
**DAO(Data Access Object)**๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทผ์ ๋ด๋นํ๋ ๊ตฌ์กฐ.
๊ตฌ์กฐ
- DTO (Data Transfer Object) → ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฒด
- DAO (Data Access Object) → DB ์ ๊ทผ ๋ก์ง์ ๋ฐ๋ก ๊ด๋ฆฌ (์ฟผ๋ฆฌ ์คํ)
- Mapper (MyBatis XML) → SQL ์ฟผ๋ฆฌ ์ ์
- Service / ServiceImpl → ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ
์ฅ์
- DAO๊ฐ DB ์ ๊ทผ์ ์ ๋ด → Service๋ ๋น์ฆ๋์ค ๋ก์ง์๋ง ์ง์คํ ์ ์์
- ํ ์คํธ๊ฐ ์ฉ์ด → DAO๋ฅผ Mockingํ๋ฉด DB ์์ด ํ ์คํธ ๊ฐ๋ฅ
- ์ ์ง๋ณด์ ํธ๋ฆฌ → DAO์์๋ง SQL์ ์์ ํ๋ฉด ๋๋ฏ๋ก Service ์ํฅ์ด ์ ์
- ์ถํ JPA ๊ฐ์ ORM์ผ๋ก ๋ณ๊ฒฝ ์ ์ ์ฐํจ → DAO๋ฅผ JPA๋ก ๋ณ๊ฒฝํ ์๋ ์์
๋จ์
- DAO ์ถ๊ฐ๋ก ๊ณ์ธต์ด ํ๋ ๋ ์๊น → ๊ตฌ์กฐ๊ฐ ๋ค์ ๋ณต์กํด์ง
- MyBatis์ Mapper ์ธํฐํ์ด์ค์ ์ญํ ์ด ๊ฒน์น ์ ์์
2. DTO + Mapper + Service ๊ตฌ์กฐ
DAO ์์ด MyBatis์ Mapper ์ธํฐํ์ด์ค๋ฅผ ๋ฐ๋ก ํ์ฉํ๋ ๊ตฌ์กฐ
๊ตฌ์กฐ
- DTO (Data Transfer Object) → ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ฐ์ฒด
- Mapper (MyBatis XML / ์ธํฐํ์ด์ค) → SQL ์ฟผ๋ฆฌ ์ ์ (DAO ์ญํ ์ ํจ)
- Service / ServiceImpl → ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ
์ฅ์
- ๊ตฌ์กฐ๊ฐ ๊ฐ๊ฒฐ → DAO๋ฅผ ์๋ตํ์ฌ ์ฝ๋๊ฐ ์งง์์ง
- MyBatis ์ฌ์ฉ ์ ์ง๊ด์ → Mapper ์์ฒด๊ฐ SQL ์คํ ์ญํ ์ ํจ
- Mapper ์ธํฐํ์ด์ค๋ก ์ธํฐํ์ด์ค ๊ธฐ๋ฐ ๊ฐ๋ฐ ๊ฐ๋ฅ
๋จ์
- Service๊ฐ DB ๋ก์ง์ ์ง์ ํธ์ถํ๊ฒ ๋จ → Service๊ฐ DB ์ ๊ทผ๊ณผ ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ์ด ๋ด๋น
- ORM ๋ณ๊ฒฝ ์ ์ด๋ ค์ → MyBatis์์ JPA๋ก ๋ณ๊ฒฝํ ๋ ์์ ํ ๋ถ๋ถ์ด ๋ง์์ง
- ํ ์คํธ๊ฐ ์ด๋ ต๋ค → DAO์ฒ๋ผ ์ถ์ํ๋ ๊ณ์ธต์ด ์์ด์ Mocking์ด ์ด๋ ต๋ค.
MyBatis๋ฅผ ์ ์งํ๋ฉด์ ๊ฐ๋จํ ๊ตฌ์กฐ๋ฅผ ์ํ๋ค๋ฉด?
โก DTO + Mapper + Service ์ ์งํด๋ ๊ด์ฐฎ์
์ถํ ํ์ฅ์ฑ(ORM ๋ณ๊ฒฝ ๊ฐ๋ฅ์ฑ) & ํ
์คํธ ์ฉ์ด์ฑ์ ๊ณ ๋ คํ๋ค๋ฉด?
โก DTO + DAO + Mapper + Service๋ก ๋ณ๊ฒฝํ๋ ๊ฒ๋ ์ข์
ํ์ฌ MyBatis ๊ธฐ๋ฐ์ด๊ณ , ๊ตฌ์กฐ๋ฅผ ์ต๋ํ ๊ฐ๊ฒฐํ๊ฒ ์ ์งํ๊ณ ์ถ๋ค๋ฉด ๊ตณ์ด DAO๋ฅผ ์ถ๊ฐํ ํ์๋ ์์!
ํ์ง๋ง, JPA ๊ฐ์ ORM์ ๊ณ ๋ คํ๋ค๋ฉด DAO๋ฅผ ์ถ๊ฐํ๋ ๊ฒ ๋์ค์ ์ ๋ฆฌํ ์๋ ์์!
'๐๏ธ ๋ฐฑ์๋ > ๐Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| # JSP - iframe ์ธ๋ถ(๋ถ๋ชจ)์ ๋ณ์ ๋๊ธฐ๊ธฐ (0) | 2025.03.25 |
|---|---|
| # @ConfigurationPropertiesScan, @ConfigurationProperties (0) | 2025.03.06 |
| # ์ฐจํธ๊ฐ ๋ง์๋ ์๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ (0) | 2025.02.26 |
| # FileInputStream - ํ์ผ ๋ค์ด๋ก๋ ์ฒ๋ฆฌ (0) | 2025.02.17 |
| # MultipartFile - ๋ค์ค ํ์ผ์ฒจ๋ถ (0) | 2025.02.13 |