Layered Architecture
Layered Architecture๋ ์๋ฐํ ๋งํ์๋ฉด Layered Architecture Style์ด๋ผ๊ณ ๋งํ ์ ์๋ค. ์ํคํ ์ณ์ ์ํคํ ์ณ ์คํ์ผ์ ์ฐจ์ด๋ ์ฌ๊ธฐ์ ์ ๋ฆฌํด ๋๋ค.
๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ(Separation of concerns)
์ฐ์ '๊ด์ฌ์ฌ'๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ ์ฝ๋์ ์ํฅ์ ๋ฏธ์น๋ ์ ๋ณด์ ์งํฉ ํน์ ๋ฒ์๋ผ๊ณ ๋งํ ์ ์๊ฒ ๋ค.
๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ๋ ์์คํ ์ ๋ถ๋ถ์ ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ๋ถ๋ฆฌํจ์ผ๋ก(๋ชจ๋ํ) ์ธํด์ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ํ ๋ถ๋ถ์์ ์์ ์ด ๋ฐ์ํ ์์ ๋ค๋ฅธ ๋ถ๋ถ์ ์ํฅ์ด ์ ๋๋ก ์ ์ง๋ณด์์ฑ๋ ๋์ผ ์ ์๋ค.
์ด๊ฒ์ ๋จ์ผ ์ฑ ์ ์์น(Single Responsibility Principle)์๋ ๋งฅ๋ฝ์ด ๊ฐ๋ค.
์บก์ํ, ๋ชจ๋ํ
์ปค๋ค๋ ํ๋ก๊ทธ๋จ์ ์ ์ง๋ณด์์ฑ์ด ์ด๋ ต๋ค. ์ธ๊ฐ์ ํ๊ณ + ๊ณต๊ฐ์ ํ๊ณ๋ก ์ธํด์ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋๋ก ์ ์ ํ๊ฒ ๋๋๊ณ ๊ทธ๋ฃนํํ๋ค. Java์ ํจํค์ง์ ์์คํ ์ ํด๋ ๋ฑ์ด ์ด๋ฅผ ์ํ ๋ฐฉ๋ฒ์ด๋ค.
์์ง๋(cohesion)
๋ชจ๋ ๋ด๋ถ์ ์์๋ค์ด ์๋ก ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด ์๋ ์ ๋๋ฅผ ๋ํ๋ด๋ ๊ฐ๋ ์ด๋ค.
์์ง๋๊ฐ ๋์ผ๋ฉด ์ข์ ์ฝ๋๋ผ๊ณ ํ๋ ์ด์ ๋ ๋ฐ๋์ ์๋ฅผ ํตํด์ ์ ๋๋ฌ๋๋๋ฐ, ์์ง๋๊ฐ ๋ฎ์ ๋ชจ๋์ ๊ฒฝ์ฐ์๋ ์๋ก ๋์จํ๊ฒ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ ๋ชฉ์ ์ด ์ฌ๋ฌ๊ฐ์ง์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๊ฐ์ ๊ด๊ณ๊ฐ ๋ณต์กํด์ง๊ฒ ๋๋ค. ์ด๋ก ์ธํด์ ์ ์ง๋ณด์ ๋์ด๋๊ฐ ๋์์ง๋ฉฐ ์ฌ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๊ฒ ๋๋ค.
์ ์ง๋ณด์ํ๊ธฐ๊ฐ ์ด๋ ค์ด ์ด์ ๋ ํ ๋ชจ๋๊ณผ ์ฐ๊ด๋๋ ๋ชจ๋๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ ์์ ์ ๋ฐ๋ฅธ ์ํฅ๋๋ฅผ ์์ํ๊ธฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ด๋ค.
์ฌ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๋ ์ด์ ๋ ์ฐ๊ด๋ ๋ชจ๋ ๋ชจ๋์ ์กฐ๊ฑด๊ณผ ํ๊ฒฝ์ ์ถฉ์กฑํด์ผ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋์ผ ๊ฐ๋ฅ์ฑ์ด ์ปค์ง๊ธฐ ๋๋ฌธ์ ์ด์์ฑ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฒฐํฉ๋(coupling)
๊ฒฐํฉ๋๋ ๋ ๋ชจ๋ ๊ฐ์ ์ํธ์์กด์ฑ์ ๋ํ๋ด๋ ๊ฐ๋ ์ด๋ค.
์์์ ๋งํ ์์ง๋์๋ ์์ฐ์ค๋ ์ฐ๊ด์ด ๋๋๋ฐ, ์์ง๋๊ฐ ๋ฎ์์ ๋ค๋ฅธ ๋ชจ๋๊ณผ ์ฐ๊ด์ฑ์ด ๋์์ง๋ ๊ฒฝ์ฐ ๊ฒฐํฉ๋๊ฐ ๋์์ง๋ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๊ฒ ๋ค.
๋์ ๊ฒฐํฉ๋๋ผ๋ ๊ฒ์ ๊ฒฐ๊ตญ ๋ค๋ฅธ ๋ชจ๋๊ณผ ๋ง์ ์ฐ๊ด์ฑ์ ๊ฐ๊ฒ ๋์ด์ ์ํธ ์์กด๋๊ฐ ๋์์ง๊ณ ํ๋์ ๊ธฐ๋ฅ์ ์ํํ๋ ค๋ฉด ๋ค๋ฅธ ๋ชจ๋์ ์ํฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ์์ ํ๊ธฐ๊ฐ ์ด๋ ค์์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค.
๋น์ฐํ ๋ฐ๋์ ๊ฒฝ์ฐ๋ก ๋ฎ์ ๊ฒฐํฉ๋๋ฅผ ๊ฐ์ง ๋ชจ๋์ด๋ผ๋ฉด, ๋ค๋ฅธ ๋ชจ๋๊ณผ์ ์ฐ๊ด์ฑ์ด ๋ฎ๊ธฐ ๋๋ฌธ์ ์ํธ์์กด์ฑ์ด ๋ฎ์์ง๊ณ ํ ๋ชจ๋์ ์์ ํ๋๋ผ๋ ๋ค๋ฅธ ๋ชจ๋์ ๋ฏธ์น๋ ์ํฅ๋๊ฐ ์ ๊ธฐ ๋๋ฌธ์ ์์ ์ ์ฉ์ดํ๋ค๊ณ ํ ์ ์๋ค.
๋ฎ์ ๊ฒฐํฉ๋์ ๋์ ์์ง๋๋ ์ํธ ์์กด๋๋ฅผ ๋ฎ์ถ๊ณ ์ ์ง๋ณด์์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๋ ๋ฐ์ ๋์์ด ๋๋ค.
Layered Architecture
Layered Architecture๋ ์์คํ ์ ๊ณ์ธต๋ณ๋ก ๊ตฌ๋ถํ์ฌ ์ค๊ณํ๋ ๊ฒ์ด๋ค.
๊ณ์ธต์ ๊ตฌ์กฐ์ ์ด์ ์ ๊ณ์ธต๋ณ๋ก ์ฑ ์๊ณผ ์ญํ ์ ๊ตฌ๋ถํจ์ผ๋ก ์ฝ๋์ ์ดํด๋์ ์ ์ง๋ณด์์ฑ์ ๋์์ง๊ณ , ๊ฐ ๊ณ์ธต๋ณ๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์์ ๋ ์ ์๊ฒ ํ์ฌ์ ์ ์ง๋ณด์ ๋ฐ ํ์ฅ์ด ์ฉ์ดํด์ง๋ค๋ ์ ์ด ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ์์๊ณ์ธต์ ํ์๊ณ์ธต์ด ๊ตฌํํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉฐ, ํ์๊ณ์ธต์ ์์๊ณ์ธต๊ณผ๋ ๊ด๊ณ์์ด ๋ ๋ฆฝ์ ์ผ๋ก ์๋ํ ์ ์์ด์ผ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก 3๊ณ์ธต์ผ๋ก ๋๋๋ค.
Presentation Layer(ํํ ๊ณ์ธต) : ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ด๋ จ ๊ณ์ธต
Business Layer(๋น์ฆ๋์ค ๊ณ์ธต) : ๋น์ฆ๋์ค ๋ก์ง
Data Layer(๋ฐ์ดํฐ ๊ณ์ธต) : ๋ฐ์ดํฐ ๊ด๋ จ ๊ณ์ธต
UUID(Universally Unique Identifier)
128๋นํธ๋ก ์ด๋ค์ง ์๋ณ์์ด๋ค.
์ธํฐ๋ท ๊ณตํ์์ ํ์ค์ผ๋ก ์ง์ ๋ผ ์๋ค.
์ ์ผ๊ฐ์ผ๋ก ์์ฑ๋๊ณ , ๋ฌด์์๋ก ์์ฑ๋๋ค.
Last updated