๐จ๊ณ์ธตํ ์ํคํ ์ณ
1. ๊ณ์ธตํ ์ํคํ ์ฒ์ด๋?
- ๊ณ์ธตํ ์ํคํ ์ฒ๋ ์์ค์ฝ๋์ ์ญํ ๊ณผ ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ์ด๋ฅผ โ๊ณ์ธตโ์ผ๋ก ๋ถ๋ฆฌํ ์ํคํ ์ฒ์ด๋ค.
- ๊ณ์ธตํ ์ํคํ ์ฒ์์๋ ์ผ๋ฐ์ ์ผ๋ก ์์ค์ฝ๋์ ์ญํ ๊ณผ ๊ด์ฌ์ฌ๋ฅผ ๋ค์๊ณผ ๊ฐ์ ๊ณ์ธต๋ค๋ก ๋ถ๋ฅํ๋ค.
1) API Layer (ํํ ๊ณ์ธต(Presentation Layer))
- ์ฌ์ฉ์์์ ์์ฒญ/์๋ต ๋ฑ ์ํธ์์ฉ ์ฒ๋ฆฌ์ ๊ด์ฌ์ฌ๋ฅผ ๋ ๊ณ์ธต
- View, Controller ๋ฑ์ด ์ด ๊ณ์ธต์ ์ํ ์ ์๋ค.
2) Service Layer
- ์๋น์ค ๊ณ์ธต์ API ๊ณ์ธต์์ ์ ๋ฌ๋ฐ์ ์์ฒญ์ ์ ๋ฌด ๋๋ฉ์ธ์ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ๋น์ฆ๋์ค์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ณ์ธต
3) Data Access Layer
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ง์ ์ ์ผ๋ก ์์ฒญ์ ์ ๋ฌํ๋ ๋ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๋๋ฐ ๊ด์ฌ์ฌ๋ฅผ ๋ ๊ณ์ธต
- ORM, repository์ด ๊ณ์ธต์ ์ํ ์ ์๋ค.
- ๋น์ฆ๋์ค ๊ณ์ธต์์ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ ๋ฐ์ดํฐ ์ ์ฅ์์ ์ ์ฅํ๊ธฐ ์ํ ๊ณ์ธต
3. ๊ณ์ธตํ ์ํคํ ์ฒ์ ํน์ง
- ๊ณ์ธตํ ์ํคํ ์ฒ์์ ๊ฐ ๊ณ์ธต์ ๋ค๋ฅธ ๊ณ์ธต๋ค๊ณผ์ ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ๊ฐ์ง๊ณ ๋ด๋ถ์ ์ผ๋ก๋ ๋์ ์์ง๋๋ฅผ ๊ฐ์ง ๊ฒ์ ์งํฅํ๋ค.
์ด๋ฅผ ํตํด, ๊ณ์ธต์ ๋ถ๋ฆฌํ ๊ฐ์ฅ ํฐ ์ด์ ๋ผ๊ณ ๋ณผ ์ ์๋ ์ฝ๋ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ ์ฉ์ด์ฑ์ ๋ณด์กด ํน์ ๊ทน๋ํํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด ๋๋ฌธ์, ๊ณ์ธตํ ์ํคํ ์ฒ์์ ๊ณ์ธต๋ค์ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ์ง๋๋ค.
- ์์ ๊ณ์ธต์ ํ์ ๊ณ์ธต์ ํ์ ํ ์ ์์ง๋ง, ํ์ ๊ณ์ธต์ ์์ ๊ณ์ธต์ ํ์ ํ ์ ์๋ค.
- ๊ณ์ธต์ด ๋ฐ๋์ ์ฐธ์กฐํด์ผ ํ๋ ๊ณ์ธต ์ด์ธ์๋ ์์กดํ์ง ์๋๋ก ํ๋ ๊ฒ์ด๋ค.
- ์์ปจ๋, Presentation์ Business๋ฅผ ์๊ณ ์์ง๋ง, Business๋ Presentation์ ์ ์ ์๋ ๊ฒ์ด๋ค.
4. ๊ณ์ธตํ ์ํคํ ์ฒ์ ์ฅ์
- ๊ณ์ธตํ ์ํคํ ์ฒ๋ ๋ค์ ๋ ๊ฐ์ง ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
- ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ์์ค์ฝ๋๋ฅผ ๊ณ์ธต์ผ๋ก์ ๋ถ๋ฆฌํ๋ค.
- ๊ฐ ๊ณ์ธต์ ๋ค๋ฅธ ๊ณ์ธต๊ณผ์ ๊ฒฐํฉ๋๋ฅผ ์ต์ํํ๋๋ก ๊ตฌํ๋๋ค.
- ์ด์ ๋ฐ๋ผ, ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ๋ค์ ๊ฐ์ง๊ณ ์๋ค.
- ๊ณ์ธต ๋ถ๋ฆฌ์ ๋ฐ๋ฅธ ์ฝ๋ ๊ฐ๋ ์ฑ, ์ ์ง๋ณด์์ ์ฉ์ด์ฑ ๊ฐ์
- ๋ชจ๋ ๊ต์ฒด์ ์ฉ์ด์ฑ
- ๊ฐ ๊ณ์ธต์ ๊ฒฐํฉ๋๊ฐ ๋ฎ๊ธฐ ๋๋ฌธ์, ํน์ ๊ณ์ธต์์ ์ฌ์ฉํ๋ ๋ชจ๋์ ๋ณ๊ฒฝํ๋ค๊ณ ํ ๋, ๋ค๋ฅธ ๊ณ์ธต์์ ๊ทธ๊ฒ์ ๋ฐ๋ฅธ ์ํฅ์ด ์ต์ํ๋๋ค.
- ์์ํ ํ
์คํธ ์ฝ๋ ํ๊ฒฝ ์กฐ์ฑ
- ๊ฐ ๊ณ์ธต์ ์์ ์ ๊ด์ฌ์ฌ์๋ง ์ด์ ์ ๋๊ธฐ ๋๋ฌธ์, ํ ๊ณ์ธต์ ํ ์คํธํ ๋ ๊ทธ ํ๊ฒฝ์ ์กฐ์ฑํ๋ ๊ฒ์ด ์์ํ๋ค.
5. ๊ณ์ธตํ ์ํคํ ์ฒ์ ๋จ์
1. ๊ณ์ธตํ ์ํคํ ์ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฃผ๋ ์ค๊ณ๋ฅผ ์ ๋ํ๋ค.
This post is licensed under CC BY 4.0 by the author.