โป ์ด ๊ธ์ ์ฃผ๊ด์ ์ผ๋ก ์์ฑ๋ ๊ธ์ ๋๋ค. ํ๋ฆฌ๊ฑฐ๋ ์ถ๊ฐ์ ์ผ๋ก ๋ณด์ํ ๋ด์ฉ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์.
+) ์ฝ๋๋ธ๋ญ์ ํ ์คํธ ์์ด ์ ์ฉ ์ ๋์ด์ ๋ด์ฉ ์ดํด๊ฐ ์ ๋๊ณ ๋ณด๊ธฐ ๋ถํธํ์ ๋ถ๋ค์ ์๋์์ ๊ธ ๋ด์ฃผ์ธ์ฅ
๐ฉย ๋ค์ด๊ฐ๋ฉฐ
ํ๋ก์ ํธ ์ด๊ธฐ์ ์ฐ๋ฆฌ ํ์ ๊ณ์ธต ๊ธฐ๋ฐ ํจํค๊ธฐ ๊ตฌ์กฐ๋ฅผ ์ ํํ์๋ค. ์๋ ์ ํ์ด๋ผ๊ธฐ๋ณด๋ค๋, ์ฒ์ ๊ฐ๋ฐ ์์๋ ์ํคํ ์ฒ๋ผ๋ ๊ฑธ ๊ณ ๋ คํ์ง ์์์๋ค. ๊ทธ๋ฅ ์ฒ์ ์คํ๋ง ํ๋ ์์ํฌ๋ฅผ ํ์ตํ ๋ ๋ฐฐ์ ๋ controller, service, dao, domain ์ด ๊ตฌ์กฐ๋ฅผ ๋ณ ๊ณ ๋ฏผ์์ด ๊ณ์ธตํ ํจํค์ง ๊ตฌ์กฐ(๋น์์๋ ์ด๋ฐ ์ฉ์ด๊ฐ ์๋ ์ค๋ ๋ชฐ๋๋ค.) ๊ทธ๋๋ก ์ผํ๋ชฐ ํ๋ก์ ํธ๋ฅผ ์งํํ์๋ค.
์ด ๊ตฌ์กฐ๋๋ก ์งํํ๋ค ์ฐ๋ฆฌ ํ์ด ๊ฒช๊ฒ๋ ๋ฌธ์ ๊ฐ.. ๊ด๋ฆฌ์
์ ์ฌ์ฉ์
ํ๋ฉด ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ ๊ฒ์ธ๊ฐ ๋ง ๊ฒ์ธ๊ฐ์ ๋ํ ๋
ผ์๋ฅผ ํ๋ฉด์ ์ฒ์์ผ๋ก ํจํค์ง ๊ตฌ์กฐ์ ๋ํด์ ๊ณ ๋ฏผ์ ํด๋ณด์๋ค
1) ์ผ๋จ ์ฒซ๋ฒ์งธ๋ก ๊ด๋ฆฌ์์ ์ฌ์ฉ์ ํ๋ฉด ๊ธฐ๋ฅ์ ๋ถ๋ฆฌํ ๊ฒ์ธ๊ฐ ๋ง ๊ฒ์ธ๊ฐ โ ๊ฐ ๊ธฐ๋ฅ์ ์ฑ๊ฒฉ์ด ๋๋ฌด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ถ๋ฆฌํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค.
BOS = Back Office = ๊ด๋ฆฌ์
FOS = Front Office = ์ฌ์ฉ์
์
controller
ใด member
ใด product
ใด order
ใด cs
ํ
controller
ใด bos
ใด member
ใด product
ใด order
ใด cs
ใด fos
ใด member
ใด product
ใด order
ใด cs
2) ๋ ๋ฒ์งธ๋ก ์ด๊ฑธ ๊ณ๊ธฐ๋ก ํจํค์ง ๊ตฌ์กฐ์ ๋ํด ์ฌ๋ฌ ์๋ฃ๋ค์ ์ฐพ์๋ณด๊ณ ๊ณ ๋ฏผ์ ํด๋ณด์๋๋ฐ, ์ด ๊ณผ์ ์์ ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง์ ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง๋ผ๋ ๋ ๊ฐ์ ์ฃผ์ ๋ฐฉ๋ฒ์ ๋ฐ๊ฒฌํ๋ค.
๋ ๊ตฌ์กฐ๋ฅผ ์์ฑํด ๋น๊ต๋ฅผ ํด๋ณด์์ ๋, ๋น์์๋ ์ค๋ฅธ์ชฝ ๋ฐฉ๋ฒ์ธ ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ๋ฐฉ๋ฒ์ ์ ์ฉํ์ ๋ ์ธ๋ฐ์์ด controller, service, dao ํจํค์ง๊ฐ ๋๋ฌด ๋ง์ด ๋ฐ๋ณต๋๋ ๊ฒ ๊ฐ์ ๋นํจ์จ์ ์ด์ด๋ณด์๋ค.
๊ทธ๋์ ์ผ์ชฝ ๋ฐฉ์์ธ ๊ณ์ธตํ ๋ฐฉ์์ ์ ํํด ํ๋ก์ ํธ๋ฅผ ์งํํ์์๋ค.
๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง
controller
ใด bos
ใด member
ใด product
ใด order
ใด cs
ใด fos
ใด member
ใด product
ใด order
ใด cs
service
ใด bos
ใด member
ใด product
ใด order
ใด cs
ใด fos
ใด member
ใด product
ใด order
ใด cs
dao
ใด member
ใด product
ใด order
ใด cs
๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง
bos
ใด member
ใด controller
ใด service
ใด dao
ใด product
ใด controller
ใด service
ใด dao
ใด order
ใด controller
ใด service
ใด dao
ใด cs
ใด controller
ใด service
ใด dao
fos
ใด member
ใด controller
ใด service
ใด dao
ใด product
ใด controller
ใด service
ใด dao
ใด order
ใด controller
ใด service
ใด dao
ใด cs
ใด controller
ใด service
ใด dao
๊ทธ๋ฐ๋ฐ ํ๋ก์ ํธ๊ฐ ๋ง๋ฌด๋ฆฌ๋๊ณ ํฌํธํด๋ฆฌ์ค๋ฅผ ์ค๋นํ๋ฉด์ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ค์ ์ดํด๋ณด๋, ์ด๋์ ์ ํ์ด ์ต์ ์ด์๋ํ๋ ์๋ฌธ์ด ๋ค์๋ค. ๋น์์ ์ ํ ๊ธฐ์ค์ด ํฉ๋ฆฌ์ ์ด์ง ์์๋ณด์๋ค. ์์ ๊ด์ ์ด๋ผ๋ฉด ์ผ์ชฝ์ธ ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ๋ ์ธ๋ฐ์์ด ๋ชจ๋(๊ธฐ๋ฅ)์ด ๋ฐ๋ณต๋๊ณ ์๋ ๊ฒ์ด ๋ง์ฐฌ๊ฐ์ง์์ผ๋๊น.. ์ฌ์ค ๋น์์๋ ํ๋ก์ ํธ ์ผ์ ์ ์ซ๊ฒจ ์ถฉ๋ถํ ์๊ฐ์ ๋ค์ฌ์ ์ฅ๋จ์ ์ ๋น๊ตํ๊ณ , ๋ช ํํ ๊ธฐ์ค์ผ๋ก ์ ํํ์ง ๋ชปํ์๋ค. ์ด๋ฒ ๊ธฐํ์ ๊ด๋ จ ๊ณต๋ถ๋ ํ๊ณ ๋ค์ํ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ฉด์ ์ฅ๋จ์ ์ ์ ํํ ๋น๊ตํด ๋๋ง์ ๊ธฐ์ค์ ๊ฐ์ง๊ณ ๋ฐฉ๋ฒ์ ์ ํํด๋ณด๋ ค๊ณ ํ๋ค.
๐๏ธย ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง vs. ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ์ฅ๋จ์ ๋น๊ต
๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง
์ ํต์ ์ธ ์ํ ๊ณ์ธตํ ์ํคํ ์ฒ์ด๋ค. ๊ธฐ์ ์ ์ธ ๊ด์ ์์ ํด๋น ์ฝ๋๊ฐ ํ๋ ์ผ์ ๊ธฐ๋ฐํด ๊ทธ ์ฝ๋๋ฅผ ๋ถํ ํ๋ค.
controller, service, dao, domain์ ๊ธฐ์ค์ผ๋ก ๊ฐ๊ฐ ๋ณ๋์ ํจํค์ง์ ์ํ๋ค.
controller
ใด OrderController.java
ใด ProductController.java
service
ใด OrderService.java
ใด ProductService.java
dao
ใด OrderDao.java
ใด ProductDao.java
domain
ใด OrderDTO.java
ใด ProductDTO.java
๐ย ์ฅ์
- ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋๋ค.
๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง๋ฅผ ์ ์ฉํ๋ค๋ฉด dao๋ฅผ ์ฌ์ฌ์ฉํ ์ ์๋ค.
ํ์ฌ ๋ด ํ๋ก์ ํธ๋ ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง ์๋์ ๊ด๋ฆฌ์(bos)/์ฌ์ฉ์(fos)๋ก ๋๋์ด์ ธ ์๋๋ฐ, ๊ธฐ๋ฅ ์ค์ฌ์ผ๋ก ๋ณ๊ฒฝํ๊ฒ ๋ ๊ฒฝ์ฐ์ bos/fos๋ณ dao๋ฅผ ๋ ๋ฐ๋ก ๋ง๋ค์ด์ค์ผ ํ๋ฉฐ, ๊ณตํต๋ ๊ธฐ๋ฅ(ex. ํ์ ์ ๋ณด ์กฐํ, ์ฌ๊ณ ์๋ ์กฐํ ๋ฑ) ์ด ๋ง์์๋ ๋ถ๊ตฌํ๊ณ ์ฝ๋๋ฅผ ์ค๋ณต์ผ๋ก ์์ฑํด์ผ ํ๋ค.
๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง
controller ใด bos ใด order ใด fos ใด order service ใด bos ใด order ใด fos ใด order dao ใด order # bos, fos ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง
bos ใด order ใด controller ใด service ใด dao # ์ฌ์ฌ์ฉ ๋ถ๊ฐ ์ค๋ณต ์ ์ธ fos ใด order ใด controller ใด service ใด dao # ์ฌ์ฌ์ฉ ๋ถ๊ฐ ์ค๋ณต ์ ์ธ
ํ๋ก์ ํธ์ ์ดํด๊ฐ ๋ฎ์๋ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋น ๋ฅด๊ฒ ํ์ ํ ์ ์๋ค๋ง์ ๋ธ๋ก๊ทธ๋ค์์ ๊ณ์ธตํ์ ์ฅ์ ์ผ๋ก ์ค๋ช ํ๋๋ฐ, ํฌ๊ฒ ๊ณต๊ฐ๋์ง ์์๋ค.
์น๊ฐ๋ฐ ๋ถ์ผ์์๋ MVC ํจํด์ด ๊ฑฐ์ ํ์ค์ฒ๋ผ ์ฐ์ด๊ณ ์๊ณ , ๋ชจ๋ฅด๋ ์ฌ๋์ด ๊ฑฐ์ ์์ ์ ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ด๊ฒ ์ฅ์ ์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
Java + Spring์ด ์๋ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ก ๊ฐ๋ฐํ์ ๋๋ MVC ํจํด ๋ง๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์๋ฌดํผ ๊ทธ๋ ๋ค.
๐ย ๋จ์
- ๋ฎ์ ์์ง๋์ ๋์ ํจํค์ง๊ฐ์ ๊ฒฐํฉ๋
๊ธฐ๋ฅ ์ฐพ๊ธฐ/์์ ์ ์ฌ๋ฌ ํจํค์ง๋ฅผ ์๋ค๊ฐ๋คํด์ผ ํด์ผ ํ๋ ๋จ์ .
์ด ๋ถ๋ถ๋ ์๋ฒฝํ๊ฒ ๊ณต๊ฐ๋์ง ์์๋ค. ์์งํ ๊ฐ๋ฐํ๋ฉด์ IDE์ ์ด๋๊ณผ ํ์ ๊ธฐ๋ฅ์ ์ด์ฉํด ํ์ํ ๊ธฐ๋ฅ์ ์ฐพ์๋ด๋๋ฐ์ ํฌ๊ฒ ์ด๋ ต์ง ์์๋ค. ํ์ง๋ง ๋ด๊ฐ ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ์ ์ต์ํด์ ธ ์์ด์ ๊ฐ์ง๋ ํธ๊ฒฌ์ผ ์๋ ์๊ฒ ๋ค๋ ์๊ฐ๋ ๋ค์๋ค.
ํ์คํ ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง๋ก ๋ณ๊ฒฝ์ ํ๊ฒ ๋๋ค๋ฉด ์๊ฐ์ ์ผ๋ก ํ๋์ ํ์ ์ด ๊ฐ๋ฅํ๊ธฐ๋ ํ๊ณ ๋จ์ถํค๋ก ํ๊ณ ํ๊ณ ๊ฐ๋ ๊ฒ ์๋ ํจํค์ง์์ ํ์ผ๋ค์ ํ๋ฒ์ ๋น ๋ฅด๊ณ ํธํ๊ฒ ์ด ์ ์์ ๊ฒ ๊ฐ๊ธดํ๋ค.
- ์์ ๊ฐ์ ์ด์ ๋ก, ๊ธฐ๋ฅ ์ญ์ ์ ์ฌ๋ฌ ๊ณ์ธต์ ๊ฑธ์ณ์๋ ๊ด๋ จ ํ์ผ์ ๋ชจ๋ ์ฐพ์์ ์ญ์ ํด์ผ ํ๋ค.
๋ชจ์ฌ์์ง ์๋ค๋ฉด ์ญ์ ์ ๋๋ฝ๋ ์๋ ์๋ ๋ถ๋ถ์ด๊ธฐ๋ ํ๊ณ ํ ๊ณณ์ ๋ชจ์ฌ์์ผ๋ฉด ๋ช ํํ๋ ๋๋ฝ๋ ํ๋ฅ ์ด ํ์คํ ์ค์ด๋ค ๊ฒ ๊ฐ๊ธดํ๋ค.
- ์ถํ ์๋น์ค๊ฐ ์ปค์ง๊ฒ ๋์ด ๋ชจ๋๋ณ๋ก ๋ถ๋ฆฌ๋์ด ์
๋ฌด๊ฐ ๋ถ๋ด๋ ๊ฒฝ์ฐ, ํ ๊ตฌ์กฐ์์๋ ์ด์๊ฐ ์๊ธธ ์ ์๋ค.
ํ๋ก์ ํธ์ ํ์ฌ ๊ตฌ์กฐ๊ฐ ์ ์ง๋๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๊ฒ ์ง๋ง, ์ฅ๊ธฐ์ ์ธ ์์ผ๋ก ๋ณด์์ ๋ ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค.
- ์์ ํจํค์ง๋ฅผ ๋ณด์์ ๋, ์ด๋ค ๊ธฐ๋ฅ๋ค์ด ์กด์ฌํ๋์ง ์๋์ง ํ๋์ ํ์
๋์ง ์๋๋ค.
๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง
์๋ก ์ฐ๊ด๋ ๊ธฐ๋ฅ, ๋๋ฉ์ธ ๊ฐ๋ , Aggregate Root(๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ ์ฉ์ด๋ผ๊ณ ํจ)์ ๊ธฐ๋ฐํ์ฌ ์์ง์ ์์ ์กฐ๊ฐ์ผ๋ก ์ฝ๋๋ฅผ ๋๋๋ ๋ฐฉ์์ด๋ค.
์์ ๊ตฌ์กฐ๊ฐ controller, service, dao๊ฐ ์๋๋ผ ์ ๋ฌด ๋๋ฉ์ธ์ ๋ํ ์ดํด๋ฅผ ์ ๊ณตํ๋ค.
์๋ ์ฌ์ง์ ๋ณด๋ฉด ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง์ ๋ฌ๋ฆฌ orders๋ผ๋ ํ๋์ ํจํค์ง์ ๋ฌถ์ฌ์ ธ์๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
order
ใด OrderController.java
ใด OrderService.java
ใด OrderDao.java
ใด OrderDTO.java
product
ใด ProductController.java
ใด ProductService.java
ใด ProductDao.java
ใด ProductDTO.java
๐ย ์ฅ์
- ๋์ ์์ง๋์ ๋ฎ์ ํจํค์ง๊ฐ์ ๊ฒฐํฉ๋
๊ธฐ๋ฅ์ด ํจํค์ง ๋จ์๋ก ๋ชจ์ฌ์๊ธฐ ๋๋ฌธ์ ๊ฒ์/์์ /์ญ์ ๊ฐ ์ฝ๊ณ ๊ฐ๋จํ๋ค.
- ์ถํ ์๋น์ค๊ฐ ์ปค์ง๊ฒ ๋์ด ๋ชจ๋๋ณ๋ก ๋ถ๋ฆฌํ๊ฒ ๋ ๊ฒฝ์ฐ ๋ถ๋ฆฌ๊ฐ ์ฝ๋ค.
- ์์ ํจํค์ง๋ฅผ ๋ณด์์ ๋, ์ด๋ค ๊ธฐ๋ฅ๋ค์ด ์กด์ฌํ๋์ง ์๋์ง ํ๋์ ํ์ ์ด ๊ฐ๋ฅํ๋ค.
- ํจ์จ์ ์ธ ํ์
๊ธฐ๋ฅ ๋จ์๋ก ๋๋์ด ์์ ํ ๋ ์ ๋ฆฌํ๋ค. ๊ฐ์ ํจํค์ง ๋ด ํ์ผ์ ์์ ํ ํ๋ฅ ์ด ๋ฎ์์ ธ git ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ ๋ค.
- ๋ฒ์ ์ต์ํ
๋ชจ๋ ๊ธฐ๋ฅ์ด ํ ํจํค์ง ๋ด์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ ๊ทผ ์ ์ด์๋ฅผ public์์ default๋ protected๋ก ์ขํ ์บก์ํ์ ์ด์ ์ ๋์ฑ ํ์ฉํ ์ ์๋ค.
๐ย ๋จ์
- ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๋ค. ๊ฐ ๋ชจ๋์ ์ค๋ณต๋ ์ฝ๋๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค.
์์ธํ ์ด์ ๋ โ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์งโ์ ์ฅ์ ๋ถ๋ถ์ ์์ผ๋ ์ฐธ๊ณ
๐ก์์ง๋:ย ๋ชจ๋์ ํฌํจ๋ ๋ด๋ถ ์์๋ค์ด ์ฐ๊ด๋ผ ์๋ ์ ๋
๐ก๊ฒฐํฉ๋:ย ์์กด์ฑ์ ์ ๋๋ฅผ ๋ํ๋ด๋ฉฐ ๋ค๋ฅธ ๋ชจ๋์ ๋ํด ์ผ๋ง๋ ๋ง์ด ์๊ณ ์๋์ง
โ๏ธย ์ ํ ๊ธฐ์ค
ํ๋ก์ ํธ๊ฐ ํ์ฌ ๊ตฌ์กฐ๋ก ๊ณ์ ์ ์ง๋๊ณ ๋ฐ์ ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง๋ก ๊ณ์ ๊ฐ๋ ๋ฌธ์ ๊ฐ ์๋ค. ํ์ง๋ง ์ด ํ๋ก์ ํธ๊ฐ ์ค์ ๋ก ์ด์๋๋ ์๋น์ค๋ผ๊ณ ๊ฐ์ ํ๋ค๋ฉด ์๋น์ค๊ฐ ์ฑ์ฅํ๊ฒ๋๋ฉด์ ์ ๋ฌด๊ฐ ๋ชจ๋ ๋จ์๋ก ๋๋๊ฒ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค.
์ด๋ฐ ์ด์ ๋ก ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ๋ก ๋ณ๊ฒฝ์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค. ๋น๋ก ํ์ฌ ์ฌ์ดํธ ํ๋ก์ ํธ ์์ค์์๋ ๊ณ์ธตํ ๊ตฌ์กฐ๊ฐ ๋ฌธ์ ๋ ์์ง๋ง, ์ค์ ์๋น์ค๋ผ๊ณ ๊ฐ์ ์ ํด๋ณด๊ณ ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํด๋ณด๊ณ ์ค์ ๋ก ์ ์ฉํด๋ณด๋ ๊ฒ์ ์ข์ ๊ฒฝํ์ด ๋ ๊ฒ ๊ฐ์๋ค.
๐ฅย ๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง โ ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ๋ณ๊ฒฝ ๊ณผ์
1) โ๊ธฐ๋ฅ ๋จ์โ์ ๋ฒ์๊ฐ ์ด๋๊น์ง์ผ๊น?
๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง๋ก ๋ณ๊ฒฝํ๊ธฐ๋ก ๊ฒฐ์ ํ ํ, ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ค๋ณด๋ ๊ณผ์ ์์ ์ ์ผ ๋จผ์ ์๋ฌธ์ง ๋ค์๋ ์ง์ ์ด โ๊ธฐ๋ฅ ๋จ์โ์ ๋ฒ์์๋ค.
ํ์ฌ ๋ด ํ๋ก์ ํธ๋ ๊ณ์ธตํ์ด์ง๋ง, 1๋จ๊ณ๋ฅผ ๊ณ์ธต์ผ๋ก 2๋จ๊ณ๋ฅผ ๊ธฐ๋ฅ(๋ชจ๋) ๋จ์๋ก ๋๋์์๋ค. ์ด๋ ์ด ๊ธฐ๋ฅ(๋ชจ๋)์ DB ๋ชจ๋ธ๋ง ์ ๋์ถํ๋ โ์ฃผ์ ์์ญโ์ ๊ธฐ์ค์ผ๋ก ํ์๋๋ฐ, ์ฃผ์ ์์ญ์ member, product, order, cs ์ด๋ ๊ฒ 4๊ฐ์์๋ค.
๊ธฐ์กด์ ๊ณ์ธตํ(1๋จ๊ณ) ๋ชจ๋ํ(2๋จ๊ณ) ๋ฐฉ์
controller
ใด fos
ใด member
ใด DlvAddrController.java
ใด LoginController.java
ใด RegisterController.java
ใด product
ใด order
ใด CartController.java
ใด OrderController.java
ใด cs
๊ธฐ๋ฅ์ ๋ฒ์์ ์ ์๊ฐ ๋ชจํธํ๋ ์ด๋ค ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๊ธฐ๊ฐ ์ด๋ ค์ ๋ค.
์ฅ๋ฐ๊ตฌ๋์ ์ฃผ๋ฌธ ๊ธฐ๋ฅ์ผ๋ก ์๋ฅผ ๋ค์ด๋ณด์๋ฉด, ์ด์ ๊ตฌ์กฐ์์๋ 2๋จ๊ณ์์ ๊ธฐ๋ฅํ์ผ๋ก ๋๋์์ ๋ ์ฃผ์ ์์ญ์ ๊ธฐ์ค์ผ๋ก ํ์๊ธฐ ๋๋ฌธ์ order ํจ์งํค์ ์ฅ๋ฐ๊ตฌ๋์ ์ฃผ๋ฌธ์ด ๊ฐ์ด ์กด์ฌํ์๋ค.(์ผ์ชฝ ์ฐธ๊ณ ) ํ์ง๋ง ์ ๋ง ๋ง ๊ทธ๋๋ก โ๊ธฐ๋ฅโ๋จ์๋ก ๋ถ๋ฆฌ๋ฅผ ํ๊ฒ๋๋ฉด ์ค๋ฅธ์ชฝ์ฒ๋ผ๋ ํ ๋ฐ, ์ฅ๋ฐ๊ตฌ๋์ ์ฃผ๋ฌธ ๊ธฐ๋ฅ์ ์์ฐํ ๋ค๋ฅธ ๊ธฐ๋ฅ์ด๊ธด ํ์ง๋ง ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด์๋ค. ํ์ง๋ง ์ด๊ฑธ ๋๋ฌด ์ธ๋ถํํด์ ์ค๋ฅธ์ชฝ์ฒ๋ผ ๋ถ๋ฆฌํด๋ฒ๋ฆฌ๋ฉด ๊ด๋ฆฌ์ ๊ฐ๋ฐ ์ธก๋ฉด์์ ์คํ๋ ค ๋ ์ด ๋ ๊ฒ ๊ฐ์๋ค.
โ๊ธฐ๋ฅโ์ ๊ธฐ์ค์ โ์ฃผ์ ์์ญโ์ผ๋ก ๊ฐ๊ธฐ๋ก ํ๊ณ order ํจํค์ง ์์ ์ฃผ๋ฌธ ๊ธฐ๋ฅ๊ณผ ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ์ ํฌํจ์ํค๊ธฐ๋ก ํด์ ์ผ์ชฝ์ผ๋ก ๊ฐ๊ธฐ๋ก ํ๋ค.
์ฃผ์ ์์ญ๋จ์
order
ใด controller
ใด OrderController.java
ใด CartController.java
ใด service
ใด OrderService.java
ใด CartService.java
ใด dao
ใด OrderDao.java
ใด CartDao.java
domain
ใด OrderDTO.java
ใด CartDTO.ja
๊ธฐ๋ฅ๋จ์
order
ใด OrderController.java
ใด OrderService.java
ใด OrderDao.java
ใด OrderDTO.java
cart
ใด CartController.java
ใด CartService.java
ใด CartDao.java
ใด CartDTO.java
๊ทธ๋์ ์ด๋ฒ ํ๋ก์ ํธ์ ๊ธฐ๋ฅ ๋จ์๋ ์ฃผ์ ์์ญ ๋จ์๋ผ๊ณ ํ ์ ์์ ๊ฒ ๊ฐ๋ค.. ๋ฌผ๋ก ์๋น์ค๊ฐ ๋ ์ปค์ง๋ฉด ์ฃผ์ ์์ญ์ด ์๋ ํต์ฌ ์ํฐํฐ ๋จ์๋ก ์ชผ๊ฐ ๊ตฌ์ฑ์ ํ๊ฒ ๋ ๊ฒ ๊ฐ๋ค.
ํ์ง๋ง ์ผ์ชฝ์ผ๋ก ๊ฐ๊ฒ๋๋ฉด ๊ธฐ๋ฅ ๊ธฐ์ค ํจํค์ง ์ ์ฉ ์ ์ป์ ์ ์๋ public์์ default๋ protected๋ก ๋ณ๊ฒฝํ์ ๋์ ์บก์ํ์ ์ด์ ์ ์ป์ง ๋ชปํ์ง๋ง ๊ฐ๋ฐ ํธ์์ฑ์ด ์ฐ์ ์ด๋ผ๊ณ ์๊ฐํ๋ค.
2) ๊ด๋ฆฌ์์ ์ฌ์ฉ์ ์ฝ๋์ ๋ถ๋ฆฌ
<๊ธฐ์กด ๊ตฌ์กฐ>
1๋จ๊ณ: ๊ณ์ธต
2๋จ๊ณ: bos(๊ด๋ฆฌ์)/fos(์ฌ์ฉ์)
3๋จ๊ณ: ๊ธฐ๋ฅ
๋ง์ฝ ์ฌ์ฉ์์ ๊ด๋ฆฌ์ ๋ฐฑ์คํผ์ค๊ฐ ์์ ๋ถ๋ฆฌ๋ ์๋ ์๋ ์ผ์ด์ค๋ฅผ ๊ณ ๋ คํ์ ๋ ํ์ฌ ๊ตฌ์กฐ๋ ๊ด๋ฆฌ์์ ์ฌ์ฉ์์ ์ฝ๋๊ฐ ๊ณ์ธต์ ๊ธฐ์ค์ผ๋ก ๋ฌถ์ฌ์๊ธฐ ๋๋ฌธ์ ์ด ๊ตฌ์กฐ๋ ์ข์ง ์์๋ณด์๋ค.
๊ณ์ธตํ ๋ฐฉ์
controller
ใด bos
ใด member
ใด product
ใด order
ใด cs
ใด fos
ใด member
ใด product
ใด order
ใด cs
service
ใด bos
ใด member
ใด product
ใด order
ใด cs
ใด fos
ใด member
ใด product
ใด order
ใด cs
๊ทธ๋์ ๊ด๋ฆฌ์์ ์ฌ์ฉ์์ ์ฝ๋๋ฅผ ์ ์ผ ์ต์์ ์์ค์์ ์์ ๋ถ๋ฆฌํ๊ธฐ๋ก ํ๋ค
<๋ณ๊ฒฝ ๊ตฌ์กฐ>
1๋จ๊ณ: bos(๊ด๋ฆฌ์)/fos(์ฌ์ฉ์)
2๋จ๊ณ: ๊ธฐ๋ฅ
3๋จ๊ณ: ๊ณ์ธต
์ ๊ธฐ์ค์ ํตํด ๋ณ๊ฒฝ๋ ํจํค์ง ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค.
๋ณ๊ฒฝ ์
syusyu
โโโ controller
โย ย โโโ bos
โย ย โย ย โโโ cs
โย ย โย ย โย ย โโโ mypage
โย ย โย ย โโโ dashboard
โย ย โย ย โโโ member
โย ย โย ย โโโ order
โย ย โย ย โโโ product
โย ย โย ย โโโ statistics
โย ย โโโ fos
โย ย โโโ cs
โย ย โย ย โโโ mypage
โย ย โโโ member
โย ย โโโ order
โย ย โโโ product
โโโ service
โโโ base
โย ย โโโ order
โย ย โโโ product
โโโ bos
โย ย โโโ cs
โย ย โย ย โโโ impl
โย ย โโโ member
โย ย โย ย โโโ impl
โย ย โโโ order
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โย ย โโโ impl
โย ย โโโ statistics
โย ย โโโ impl
โโโ fos
โโโ cs
โย ย โโโ impl
โโโ member
โย ย โโโ impl
โโโ order
โย ย โโโ impl
โโโ product
โโโ impl
๋ณ๊ฒฝ ํ
syusyu
โโโ bos(๊ด๋ฆฌ์)
โย ย โโโ cs
โย ย โย ย โโโ mypage
โย ย โย ย โโโ controller
โ โย ย โย ย โโโ service
โ โย ย โย ย โโโ impl
โย ย โโโ member
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ order
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โโโ controller
โย ย โโโ service
โย ย โโโ impl
โโโ fos(์ฌ์ฉ์)
โย ย โโโ cs
โย ย โย ย โโโ mypage
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โ โย ย โย ย โโโ impl
โย ย โโโ member
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ order
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โโโ controller
โย ย โโโ service
โย ย โโโ impl
3) DAO์ ๊ฑฐ์ทจ๋โฆ?
์์ฒ๋ผ ๋ถ๋ฆฌํ๊ณ ๋ค ๋๋ ์ค ์๊ณ ์ข์ํ์ผ๋..^^ DAO๋ผ๋ ๋ฌธ์ ๊ฐ ๋จ์์์๋ค.
๊ธฐ์กด์ controller์ service๋ ์๋๋ถํฐ ์ฌ์ฉ์์ ๊ด๋ฆฌ์์์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด ์๋ ๋ฌ๋ผ ์ ์ด์ ํ์ผ์ ๋ค๋ฅด๊ฒ ์ฌ์ฉํ๊ณ ์์๋๋ฐ, dao๋ ์ฌ์ฉ์์ ๊ด๋ฆฌ์ ๊ธฐ๋ฅ์ด ๊ณตํต์ผ๋ก ์ฌ์ฉํ๊ณ ์์ด ์ด๋ถ๋ถ์์ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ๊ณ ๋ฏผ์ด ๋์๋ค..
DTO๋ ๋น์ฐํ ๊ณตํต์ผ๋ก ์จ์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ถ๋ถ์ ๊ณ ๋ฏผ๊ฑฐ๋ฆฌ๊ฐ ์๋์์ง๋ง.. dao๊ฐ ๋ฌธ์ โฆ๐ข
๊ธฐ๋ฅํ์ ๋จ์ ์ค์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๋ค๋ ๊ฒ ์์๋๋ฐ ์ด๊ฒ ๊ทธ๊ฑฐ๊ตฌ๋ ํ๊ณ ํ ์๋ฟ์๋ค.
syusyu
โโโ bos
โย ย โโโ cs
โย ย โย ย โโโ mypage
โย ย โย ย โโโ controller
โย ย โโโ member
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โโโ order
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โโโ controller
โย ย โโโ service
โย ย โโโ impl
โโโ fos
โย ย โโโ cs
โย ย โย ย โโโ mypage
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โโโ member
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ order
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โโโ controller
โย ย โโโ service
โย ย โโโ impl
โโโ dao
โย ย โโโ cs
โย ย โย ย โโโ impl
โย ย โโโ member
โย ย โย ย โโโ impl
โย ย โโโ order
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โโโ impl
โโโ domain
โย ย โโโ cs
โย ย โโโ member
โย ย โโโ order
โย ย โย ย โโโ request
โย ย โโโ product
โโโ common
โย ย โโโ config
โย ย โโโ core
โย ย โโโ util
โย ย โโโ web
โย ย โโโ filter
โย ย โโโ interceptor
โย ย โโโ listener
์ค๋ฅธ์ชฝ์ฒ๋ผ ๊ฐ๊ฒ๋๋ฉด ์๋ฒฝํ๊ฒ ์ด์์ ์ธ(?) ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ์ด์ง๋ง, DAO์๋ ๋น์ฆ๋์ค ๋ก์ง์ด ์๋ CRUD ์ฝ๋๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ์์ ์ฌ์ฉ์์์ ์ฌ์ฉ๋๋ ๊ณตํต ๋ถ๋ถ์ด ๋ง์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ์๋ค.
๊ทธ๋ฐ๋ฐ ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง ๊ตฌ์กฐ๋ฅผ ์ ์ฉํ๋ ค๊ณ DAO๋ฅผ ๋ ๊ฐ๊ฐ ์ค๋ณต์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ.. ๊ท์ฐฎ์ ๊ฒ๋ ์์์ง๋ง ๋ฌด์๋ณด๋ค๋ ์ ์ง๋ณด์์ฑ์ด ์ต์
์ด์๋ค.
๊ณ์ธต ๊ธฐ๋ฐ ํจํค์ง
controller
ใด bos
ใด order
ใด fos
ใด order
service
ใด bos
ใด order
ใด fos
ใด order
dao
ใด order # bos, fos ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง
bos
ใด order
ใด controller
ใด service
ใด dao # ์ฌ์ฌ์ฉ ๋ถ๊ฐ ์ค๋ณต ์ ์ธ
fos
ใด order
ใด controller
ใด service
ใด dao # ์ฌ์ฌ์ฉ ๋ถ๊ฐ ์ค๋ณต ์ ์ธ
๊ทธ๋์ DTO์ ๋ง์ฐฌ๊ฐ์ง๋ก DAO๋ common ํจํค์ง์ ๋ฃ์ด ๊ณตํต์ผ๋ก ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค. ์๋์ฒ๋ผ ์ ์ผ ํฐ ๊ตฌ๋ถ ๋จ์์ธ bos, fos์ ๊ฐ์ ๋์ค์ common ํด๋๋ฅผ ์์ฑํ๊ณ core ํจํค์ง ์์ DAO์ domain(DTO)๋ฅผ ๋ฃ์ด์ฃผ์๋ค.
์ด๋ ๊ฒ!
.
โโโ bos
โโโ common
โย ย โโโ core
โย ย โย ย โโโ dao
โย ย โย ย โย ย โโโ cs
โย ย โย ย โย ย โย ย โโโ impl
โย ย โย ย โย ย โโโ member
โย ย โย ย โย ย โย ย โโโ impl
โย ย โย ย โย ย โโโ order
โย ย โย ย โย ย โย ย โโโ impl
โย ย โย ย โย ย โโโ product
โย ย โย ย โย ย โโโ impl
โย ย โย ย โโโ domain
โย ย โย ย โโโ cs
โย ย โย ย โโโ member
โย ย โย ย โโโ order
โย ย โย ย โย ย โโโ request
โย ย โย ย โโโ product
โโโ fos
4) bos์ fos๊ฐ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ service ์ฝ๋
ํ์ง๋ง ์์ง ๋จ์ ๋ฌธ์ ๊ฐ ๋ ์์๋๋ฐ..
๊ธฐ์กด์ base๋ผ๊ณ ๊ด๋ฆฌ์์ ์ฌ์ฉ์ ํ๋ฉด์์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ service ์ฝ๋๋ฅผ ๊ณตํตํ๋ฅผ ํด๋์๋ ๋ถ๋ถ์ด ๋ฌธ์ ๊ฐ ๋์๋ค. service์ base ๋ถ๋ถ์ด ๊ฐ ๊ธธ์ ์ฝ๊ณ ์์๋ ๊ฒโฆ
.
โโโ bos
โโโ fos
โโโ service
โโโ base
โโโ order
โโโ product
์ด๋ฐ ์ฝ๋๋ค์ด ์์์
/**
* ๊ฐ ์ฃผ๋ฌธ์ ์ฃผ๋ฌธ์ํ๋ฅผ ์
๋ฐ์ดํธํ๊ณ ์ฃผ๋ฌธ์ํ์ด๋ ฅ์ ์ถ๊ฐํ๋ค.
* ๊ฐ ์ฃผ๋ฌธ์ ๋ํด์ ์์ฐจ์ ์ผ๋ก ์ฃผ๋ฌธ์ํ๋ฅผ ์
๋ฐ์ดํธํ๊ณ ์ฃผ๋ฌธ์ํ์ด๋ ฅ์ ์ถ๊ฐํ๋ค.
*
* @param ordDtlNoList ์ฃผ๋ฌธ์ํ๋ฅผ ์
๋ฐ์ดํธํ ์ฃผ๋ฌธ์์ธ๋ฒํธ๋ฅผ ๋ด์ ๋ฆฌ์คํธ
* @param mbrId ์ฌ์ฉ์ ID
* @param ordStus ๋ณ๊ฒฝ๋ ์ฃผ๋ฌธ์ํ
* @throws Exception ์ฃผ๋ฌธ์ํ ์
๋ฐ์ดํธ ๋๋ ์ฃผ๋ฌธ์ํ์ด๋ ฅ ์ถ๊ฐ ๋์ค ๋ฐ์ํ ์ ์๋ ์์ธ
* @author min
* @since 2023/07/31
*/
@Transactional(rollbackFor = Exception.class)
public void processUpdateOrderStatus(List<Integer> ordDtlNoList, int mbrId, String ordStus) throws Exception {
for (Integer ordDtlNo : ordDtlNoList) {
boolean isSuccess = updateOrderStatusAndAddHistory(ordDtlNo, mbrId, ordStus);
if (!isSuccess)
throw new Exception("์ฃผ๋ฌธ ๋ฒํธ " + ordDtlNo + "์ ์ฃผ๋ฌธ ์ํ ๋ณ๊ฒฝ ์ฒ๋ฆฌ์ ์คํจํ์์ต๋๋ค. ์ฃผ๋ฌธ ์ํ๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ถ๊ฐ๋ ์ฃผ๋ฌธ ์ด๋ ฅ์ ์๊ฐ 1์ด ์๋๋๋ค.");
}
}
์๋ DAO์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ผ๋จ ๊ณตํต์ชฝ์ ๋ฃ์ด๋๊ธฐ๋ก ํ๋ค. ์ถํ ํ์ฅ์ฑ์ ์ํด ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ณ ์๋๋ฐ ๊ณ์ ๊ณตํต ๋ถ๋ถ์ ๋ํ ์ด์๊ฐ ๊ณ์ ์๊ธฐ๋ ๊ฒ ๊ฐ๋ค.
.
โโโ bos
โย ย โโโ cs
โย ย โโโ dashboard
โย ย โโโ member
โย ย โโโ order
โย ย โโโ product
โย ย โโโ statistics
โโโ common
โย ย โโโ config
โย ย โโโ core
โย ย โย ย โโโ base
โย ย โย ย โโโ order
โย ย โย ย โโโ product
โย ย โโโ dao
โย ย โย ย โโโ cs
โย ย โย ย โย ย โโโ impl
โย ย โย ย โโโ member
โย ย โย ย โย ย โโโ impl
โย ย โย ย โโโ order
โย ย โย ย โย ย โโโ impl
โย ย โย ย โโโ product
โย ย โย ย โโโ impl
โย ย โโโ domain
โย ย โย ย โโโ cs
โย ย โย ย โโโ member
โย ย โย ย โโโ order
โย ย โย ย โย ย โโโ request
โย ย โย ย โโโ product
โย ย โโโ util
โย ย โโโ web
โย ย โโโ filter
โย ย โโโ interceptor
โย ย โโโ listener
โโโ fos
โโโ cs
โโโ member
โโโ order
โโโ product
5) common ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ ๋ณ๊ฒฝ
๊ธฐ์กด common ํจํค์ง์ ์ด๋ฏธ ๋ง์ ์์๋ค์ด ์กด์ฌํ๋๋ฐ, DTO, DAO, base๋ฅผ common ํจํค์ง๋ก ์ฎ๊ฒจ์ค๋ฉด์ ์ ๊ทธ๋๋ ๋ญ๊ฐ ๋ง์ common ํจํค์ง๊ฐ ๋ ๋ณต์กํด์ง๊ฒ ๋์๋ค. ๊ทธ๋์ ์๋ก์ด ๋ถ๋ฅ ๊ธฐ์ค์ ํตํด ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ๋ก ํ๋ค.
HTTP ์์ฒญ์ ์ ์ฒ๋ฆฌ ๋ฐ ํ์ฒ๋ฆฌ์ ๊ด๋ จ๋ filter, interceptor, listener๋ 'web'์ด๋ผ๋ ์๋ก์ด ํจํค์ง๋ก ๋ถ๋ฅํ๊ณ โcoreโ๋ผ๋ ํจํค์ง๋ฅผ ์์ฑํด dao์ domain์ ์์น์์ผฐ๋ค.
๋ณ๊ฒฝ ์
syusyu
โโโ bos
โย ย โโโ cs
โย ย โโโ dashboard
โย ย โโโ member
โย ย โโโ order
โย ย โโโ product
โย ย โโโ statistics
โโโ common
โย ย โโโ dao
โย ย โโโ domain
โย ย โโโ base
โย ย โโโ config
โย ย โโโ filter
โย ย โโโ interceptor
โย ย โโโ listener
โย ย โโโ util
โโโ fos
โโโ cs
โโโ member
โโโ order
โโโ product
๋ณ๊ฒฝ ํ
syusyu
โโโ bos
โย ย โโโ cs
โย ย โโโ dashboard
โย ย โโโ member
โย ย โโโ order
โย ย โโโ product
โย ย โโโ statistics
โโโ common
โย ย โโโ config
โย ย โโโ core
โย ย โย ย โโโ base
โย ย โย ย โโโ dao
โย ย โย ย โโโ domain
โย ย โโโ util
โย ย โโโ web
โย ย โโโ filter
โย ย โโโ interceptor
โย ย โโโ listener
โโโ fos
โโโ cs
โโโ member
โโโ order
โโโ product
๐ย ์ต์ข ๋ณ๊ฒฝ ๊ตฌ์กฐ
์ฌ๋ฌ๊ฐ์ง ์ํฉ์ ๊ณ ๋ คํ๋ค๋ณด๋ ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ฒฝํ ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง๋ ์๋๊ฒ ์์ฑ๋์๋ค.
๋ณ๊ฒฝ๋ ๊ฒ ์ค์ ํต์ฌ์ ๊ด๋ฆฌ์์ ์ฌ์ฉ์์ ์ฝ๋๋ฅผ ์์ ํ ๋ถ๋ฆฌํ์๊ณ , ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง๋ฅผ ๋์ ํด ๊ตฌ์กฐ๋ง ๋ณด์๋ ์ด๋ค ๊ธฐ๋ฅ์ด ์กด์ฌํ๋์ง ํ๋์ ํ์ ํ ์ ์๊ฒ ๋์๋ค.
<๋ณ๊ฒฝ ์ >
syusyu
โโโ controller
โย ย โโโ bos
โย ย โย ย โโโ cs
โย ย โย ย โย ย โโโ mypage
โย ย โย ย โโโ dashboard
โย ย โย ย โโโ member
โย ย โย ย โโโ order
โย ย โย ย โโโ product
โย ย โย ย โโโ statistics
โย ย โโโ fos
โย ย โโโ cs
โย ย โย ย โโโ mypage
โย ย โโโ member
โย ย โโโ order
โย ย โโโ product
โโโ service
โโโ base
โย ย โโโ order
โย ย โโโ product
โโโ bos
โย ย โโโ cs
โย ย โย ย โโโ impl
โย ย โโโ member
โย ย โย ย โโโ impl
โย ย โโโ order
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โย ย โโโ impl
โย ย โโโ statistics
โย ย โโโ impl
โโโ fos
โโโ cs
โย ย โโโ impl
โโโ member
โย ย โโโ impl
โโโ order
โย ย โโโ impl
โโโ product
โโโ impl
โโโ dao
โย ย โโโ cs
โย ย โย ย โโโ impl
โย ย โโโ member
โย ย โย ย โโโ impl
โย ย โโโ order
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โโโ impl
โโโ domain
โย ย โโโ cs
โย ย โโโ member
โย ย โโโ order
โย ย โย ย โโโ request
โย ย โโโ product
โโโ common
โย ย โโโ config
โย ย โโโ filter
โย ย โโโ interceptor
โย ย โโโ listener
โย ย โโโ util
<๋ณ๊ฒฝ ํ>
syusyu
โโโ bos
โย ย โโโ cs
โย ย โย ย โโโ mypage
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ dashboard
โย ย โย ย โโโ controller
โย ย โโโ member
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โโโ order
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ product
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โย ย โโโ impl
โย ย โโโ statistics
โย ย โโโ controller
โย ย โโโ service
โย ย โโโ impl
โโโ fos
โโโ cs
โย ย โโโ controller
โย ย โโโ mypage
โย ย โย ย โโโ controller
โย ย โย ย โโโ service
โย ย โโโ service
โย ย โโโ impl
โโโ member
โย ย โโโ controller
โย ย โโโ service
โย ย โโโ impl
โโโ order
โย ย โโโ controller
โย ย โโโ service
โย ย โโโ impl
โโโ product
โโโ controller
โโโ service
โโโ impl
โโโ common
โย ย โโโ config
โย ย โโโ core
โย ย โย ย โโโ base
โย ย โย ย โย ย โโโ order
โย ย โย ย โย ย โโโ product
โย ย โย ย โโโ dao
โย ย โย ย โย ย โโโ cs
โย ย โย ย โย ย โย ย โโโ impl
โย ย โย ย โย ย โโโ member
โย ย โย ย โย ย โย ย โโโ impl
โย ย โย ย โย ย โโโ order
โย ย โย ย โย ย โย ย โโโ impl
โย ย โย ย โย ย โโโ product
โย ย โย ย โย ย โโโ impl
โย ย โย ย โโโ domain
โย ย โย ย โโโ cs
โย ย โย ย โโโ member
โย ย โย ย โโโ order
โย ย โย ย โย ย โโโ request
โย ย โย ย โโโ product
โย ย โโโ util
โย ย โโโ web
โย ย โโโ filter
โย ย โโโ interceptor
โย ย โโโ listener
๐ย ๋๊ฐ๋ฉฐ
ํ๋ก์ ํธ ํจํค์ง ๊ตฌ์กฐ๋ ์ด๋ค ๊ณต์์ฒ๋ผ ์ ๋์ ์ธ ์ ๋ต์ ์๋ค. ์ด๊ฒ ๋ฟ๋ง ์๋๋ผ ์ด๋ค ๊ฒ์ด๋ .. ํ์ฌ ํ์ฌ์ ์ํฉ, ๋น์ฉ ๋ฑ์ ๊ณ ๋ คํด ๋ฌด์กฐ๊ฑด Best Practice๊ฐ ์๋ ๊ฐ์ฅ ํจ์จ์ ์ด๋ฉฐ ๋ฆฌ์์ค ํฌ์ ์ด ๋ฎ์ ํด๊ฒฐ์ฑ ์ ์ ์ ํด์ผ ํ๋ค.
ํ์ฌ ํ๋ก์ ํธ ์ํฉ์ ๊ณ ๋ คํด ์ ๋ง ์๋ฒฝํ ๊ธฐ๋ฅ ๊ธฐ๋ฐ ํจํค์ง๋ฅผ ๋์ ํ๋ ๊ฒ์ด ์๋ ์ ์ง๋ณด์์ฑ์ ๊ณ ๋ คํด ๊ณตํตํ ํ ๊ฒ์ ํ๊ณ ์ ๋นํ ํํํ๋ ๊ฒ๋ ์ค์ํ๋ค๋๊ฒ ๋ด ์๊ฒฌ์ด๋ค.
์ด๋ฒ ํ๋ก์ ํธ์์๋ ๊ณ์ธตํ ๊ตฌ์กฐ์ ๊ธฐ๋ฅํ ํจํค์ง ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ ์ ์ฉํด๋ณด์๋ค. ํ์ฌ ์ํฉ์์๋ ์ฌ์ค ๋ณ๊ฒฝ์ด ํ์ํ์ง ์์์ง๋ง, ์ค์ ์๋น์ค๋๋ค๊ณ ๊ฐ์ ํ๊ณ ํ์ฅ์ฑ์ ๊ณ ๋ คํด ๊ธฐ๋ฅํ ํจํค์ง ๊ตฌ์กฐ๋ก ๋ณ๊ฒฝ์ ์๋ํด๋ณด์๋ค. ๋๋ถ์ ํจํค์ง ๊ตฌ์กฐ์ ๋ํด ๊น๊ฒ ๊ณ ๋ฏผํ ์ ์๋ ํ์ต ์์ค๊ฐ ๋์๋ค.
๊ทธ๋ฆฌ๊ณ bos, fos๋ฅผ ์ ์ผ ํฐ ์นดํ ๊ณ ๋ฆฌ๋ก ๋ถ๋ฆฌํ ๊ฑด ์ ๋ง ์ํ ์ ํ์ด์๋ค๊ณ ์๊ฐํ๋ค. ๋น๋ก ํ์ฌ ๋น์ฅ์ ๋ชจ๋ ๋จ์๋ก ๋ถ๋ฆฌ๋ฅผ ๊ณ ๋ คํ ์ผ์ ์์ง๋ง, ์๋น์ค๊ฐ ์ปค์ง๊ฒ ๋๋ค๋ฉด ์ด๋ฐ ๊ตฌ์กฐ๊ฐ ์ค์ํด์ง ๊ฒ ๊ฐ๋ค.
ํด๋ฆฐ ์ํคํ ์ฒ์์๋ ํจํค์ง ๊ตฌ์กฐ์ ๋ํด์ ์ธ๊ธํ๊ณ ์๋ ๋ถ๋ถ์ด ์์ด ๊ทธ ๋ถ๋ถ๋ ์ฝ์ด๋ณด๋ฉฐ ๊ณ์ธตํ, ๊ธฐ๋ฅํ ๋ง๊ณ ๋ 'ํฌํธ์ ์ด๋ํฐ', '์ปดํฌ๋ํธ ๊ธฐ๋ฐ ํจํค์ง' ๊ฐ์ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์๊ฒ ๋์์ง๋ง.. ์์งํ ์ฝ์ผ๋ฉด์ ๋ญ์๋ฆฐ์ง ์ดํด๊ฐ ์ ์ ๋๋ค. ์ด ๋ถ๋ถ์ ์ถ๊ฐ๋ก ์ข ๋ ์ฐพ์๋ณด๊ณ ๊ณต๋ถ๋ฅผ ํด์ผ ๋ ๊ฒ ๊ฐ๋ค.
์ด๊ธฐ ๋จ๊ณ, ํนํ ์ค๊ณ์ ํด๋นํ๋ ๊ฒ๋ค์ ์ ๋ง ์ ์คํ ๋ ผ์๊ฐ ํ์ํ๊ตฌ๋๋ผ๋ ์๊ฐ์ ๋ง์ด ํ๊ฒ ๋๋ค. ๋ค๋ฆ๊ฒ ๋ค์ง์ด ์์ผ๋ ค๋ ์ ๋ง ๋ใ ใ ํ๋ค์๋ค. ์ฌ์ด๋ํ๋ก์ ํธ๋ผ ์์ฒญ๋ ํฐ ๋ถ๋ด์ด ์์์ง๋ง.. ์ค๋ฌด์๋ค๋ฉด ๋ณ๊ฒฝ์ ๋์ ํ๋ ๊ณผ์ ์์ ๊ธฐ์กด ๊ธฐ๋ฅ์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ๊ณ ๊ฐ์ ์ ๋ขฐ๋ฅผ ์๊ฒ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ์จ์ผ ํ ๊ฒ๋ ์ ๋ง ๋ง๊ฒ ์งโฆ ์ฌ๊ธฐ์๋ ํ ์คํธ ์ฝ๋์ ์ค์์ฑ์ ๊นจ๋ซ๊ฒ ๋๋๊ตฐ..
์ฃผ์ ๋ฆฌ์ฃผ์ ๋ฆฌ
ํจํค์ง ๊ตฌ์กฐ์ ๋ํด์ ๊น๊ฒ(?) ๊ณ ๋ฏผํ๋ฉด์ ๋๋ ์ ์.. ์ด๋ฐ ๊ฒฝํ๋ค์ด ํ๋๋ ์์ฌ์ ๋๋ฅผ ์ฑ์ฅ์ํค๋ ๊ฒ ๊ฐ๋ค. ๊ณผ์ ์์ ์ฌ๋ฐ๊ธฐ๋ ํ๊ณ ใ ใ ์ด๋ ์๋๋ฉด ์ธ์ ์ด๋ฐ ๊ณ ๋ฏผ์ ์๊ฐ๋ค์ฌ์ ๊น๊ฒ ํด๋ณด๊ฒ ์ด?๋ผ๋ ์๊ฐ์ ๋ง์ด ํ๋ค.
์ฌ์ค ๋นจ๋ฆฌ ํฌํธํด๋ฆฌ์ค ๋ง๋ค์ด์ผ ํ๋๋ฐ ํฌํด๋ง๋ค๋ค ํจํค์ง ๊ตฌ์กฐ์ ๋ฌผ์ํ๊ฐ ์๊ฒจ์ 3์ผ์งธ ํํ์์ผ๋ก ๊ตฌ์กฐ ๋ณ๊ฒฝํ๊ณ ๊ธ์ฐ๋๋ฐ ์๊ฐ์ ๋ค ๋ณด๋ด์ ์ด๊ฑฐ ๋ง๋์ถ๊ธดํ๋๋ฐ.. ์ทจ์ค ๊ธฐ๊ฐ์ ๋๋ฌด ์กฐ๊ธํ๊ฒ ์ฌ๊ธฐ์ง ๋ง๊ณ ๋ด๊ฐ ํ๊ณ ์ถ์ ๊ฑฐ ๋ค ํด๋ณด์!! ์์ ์ ๊ต์๋์ด ์กฐ์ธํด์ฃผ์ ์ด์ ๋์ด๊ฐ ๊นกํจ๋ผ๋ ๋ง์ ํ๊ธฐ์ ์๊ธฐ๊ฐ ๋ง์ด ์ง๋ฌ์ง๋ง ใ ใ ใ ๊ทธ๋๋ ์์ง๋ ์ด๋ฆฌ๋๊น ๊ด์ฐฎ๋ค๊ณ ๋๋ฌด ์กฐ๊ธํ๊ฒ ์๊ฐํ์ง ๋ง๋ผ๋ H๋์ ์กฐ์ธ์ ๋์ ์๊ธฐ์โฆ
์ ์ฌํ๊ฒ๋๋ฉด ๋ด ์ถ์ ๋ฉ์ธ์ ์ด์ ์ทจ์ค๊ณผ ๊ณต๋ถ๊ฐ ์๋ ์ ๋ฌด๋ก ๋ฐ๋๊ฒ ๋ ํ ๋ฐ ์ ํ๋ ์๊ฐ ๋๋ฌธ์ ๊น๊ฒ ํ๊ณ ๋ค์ด ๊ณต๋ถํ๊ณ ์ถ์ ๋ถ๋ถ์ ๊ทธ๋ฅ ๋์ด๊ฐ์ผ ํ ๋๋ ์์ ๊ฒ์ด๋ค. ์ ํ์ฌ์์ ํ๋ ๊ณ ๋ฏผ์ ๋ ํ๊ฒ๋๊ฒ ์ง.. ์ทจ์คํ๋ฉด์ ๋๋ฌด ์๊ดด๊ฐ์ ๋น ์ ธ์์ง๋ง๊ณ ๋์๋ํด ์์๊ฐ๋ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํ๊ณ ํ๊ณ ์ถ์ ๊ฑฐ ๋ค ํด๋ณด์!
์ทจ์ค ์์ํ์ง ํ๋ฌ๋ฐ์ ์ ๋๋๋ฐ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ผ๋ ๊ฒ ์ด๋ฆฌ์์ ๊ฑฐ ์ข ๋ฆ์ด๋ ๊ด์ฐฎ์~!!
๋ฐ๋ณต์ ์ง์น์ง ์๋ ์๊ฐ ์น๋ฆฌํ๋ค! ๊พธ์คํ ํ๋ค๋ณด๋ฉด ์ข์ ๊ฒฐ๊ณผ๊ฐ ์ฐพ์์ฌ ๊ฒ
ใ ใ โฆ ๊ทธ๋ฆฌ๊ณ N2T ์ฝ๋๋ธ๋ญ์์ ์๋ ํ ์คํธ ์์ ๋ณ๊ฒฝ์ด ์ ๋๋ค.. ๊ทธ๋ฆฌ๊ณ ์บก์ ๋ ใ ใ ๊ฐ์กฐํ ๋ถ๋ถ ๋ค ํ์ํด๋จ์๋๋ฐ ์์ฝ๋ค
๐ย Reference
๊ด๋ จ์ ์์ง๋ง ํฅ๋ฏธ๋ก์ด ๊ธ! ์ธํ ๋ฆฌ์ ์ด์์ ํ๋ก์ ํธ import ํ ๋ eclipes/maven ๊ธฐ๋ฐ ์ ํํ๋ ๊ฑฐ ๋ญ์ง ๊ถ๊ธํ์๋๋ฐ ๊ถ๊ธ์ฆ์ ํด์ํ ์ ์์์

๊ตฌ์กฐ ๋์ํ ์ฐธ๊ณ

Uploaded by N2T