Spring์ ์ฒ์ ๊ณต๋ถํ ๋ ์๋ง์ ๊ฐ์ข์ ๋ธ๋ก๊ทธ๋ฅผ ๋ณด์๋ค.
์ฌ์ค ์ฒซ ๋ฐฑ์๋ ํ๋ก์ ํธ๋ก Spring์ ์๋ํ์ผ๋ ์๋ฐ๋ ์๊ณ ๊ฐ์ฒด์งํฅ์ ๋ชจ๋ฅด๋ ๊ทธ ์์ ๊ฒฐ๊ตญ ํฌ๊ธฐํ๊ณ , node.js๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค.
๊ทธ ๋ ๋น์ ๋ด๊ฐ ๋๋ ๊ธฐ๋ณธ์ ์ด์ง๋ง ํผ๋์ด ์ฌ ์ ์๋ ๊ธฐ์ด(VO, DTO, DAO, Service, Controller)์ ๋ํด ํฌ์คํ
ํด๋ณด๋ ค ํ๋ค.
์์ํ๊ธฐ์ ,,,
์ง์ง ๊ฐ๋
๋ง ์ ๋ฆฌํ ๋ธ๋ก๊ทธ์
๋๋ค. ์ดํ Spring์ ๊ณต๋ถํ๊ณ ๊ตฌ๊ธ๋ง์ ํ๋ฉฐ ์ฝ๋ฉ์ ํ๋ค๋ณด๋ฉด ๋น์ทํ๋ฉด์ ๋ค๋ฅธ ์ฌ๋ฌ ๊ฐ๋
๋ค์ด ๋์ค๊ณ ํผ๋์ด ์ ์ ์ฌ ์๋ ์์ต๋๋ค. ์ด ๋ถ๋ถ์ ๋ํด์ ๋ฐ๋ก ํฌ์คํ
ํ๊ฒ ์ต๋๋ค.
VO
- Value Object
- ๊ฐ ๊ณ์ธต๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ์๋ฐ ๊ฐ์ฒด๋ฅผ ์๋ฏธ
- ํน์ ํ ๋ก์ง์ ๊ฐ์ง๊ณ ์์ง ์๋ค.
- read only ์์ฑ์ ๊ฐ์ง๊ณ ์์
- ๊ฐ์ฒด์ ์์ฑ๊ณผ getter/setter ๋ฉ์๋๋ง ๋ณด์ ํ ํด๋์ค
- getter์ setter๋ data์ ์ ๊ทผ์ ์ํด ์ฌ์ฉํ๋ ๋ฉ์๋
- ๊ณ์ธต ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํ ์๋ฐ๋น์ฆ
DTO
- Data Transfer Object
- VO์ ๋์ผํ ๊ฐ๋
์ด์ง๋ง read only ์์ฑ์ ์ง๋์ง ์์๋ค.
- Data๋ฅผ ์ป์ด Service๋ Controller์ ๊ฐ์ ๋ณด๋ผ ๋ ์ฌ์ฉ
DAO
- Data Access Object
- DataBase์ ์ ๊ทผํ๋ ๊ฐ์ฒด
- DataBase์ ์ ๊ทผํ์ฌ ๋ฐ์ดํฐ ์กฐํ, ์กฐ์ํ๋ ๊ธฐ๋ฅ์ ์ ๋ด
Service
- ์ค์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํ๋ ๊ณณ
- ์ฆ, ๋ชจ๋ ๊ธฐ๋ฅ์ ๋ง๋๋ ๊ณณ
- Contoller๊ฐ Request๋ฅผ ๋ฐ์ผ๋ฉด ์ ์ ํ Service์ ์ ๋ฌ
Controller
- ํด๋ผ์ด์ธํธ ์์ฒญ์ด ๋ค์ด์ฌ ๋, ํด๋น ์์ฒญ์ ์ํํ ๋น์ฆ๋์ค ๋ก์ง์ ์ ์ดํ๋ ๊ฐ์ฒด
- ๋น์ฆ๋์ค ๋ก์ง : ์ปดํจํฐ ์ํํธ์จ์ด ์์ ๋น์ฆ๋์ค ๋ก์ง ๋๋ ๋๋ฉ์ธ ๋ก์ง ์ ๋ฐ์ดํฐ ์์ฑ, ์ ์ฅ ๋ฐ ๋ณ๊ฒฝ ๋ฐฉ๋ฒ์ ๊ฒฐ์ ํ๋ ์ค์ ๋น์ฆ๋์ค ๊ท์น ์ ์ธ์ฝ๋ฉํ๋ ํ๋ก๊ทธ๋จ์ ์ผ๋ถ