๊ฐ์ฒด์งํฅ์ ์ฌ์ค๊ณผ ์คํด - 2-3. ํ๋์ด ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค. ์์ ์ ๊ฐ์ฒด
by rlaehddnd0422ํ๋์ด ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค.
๊ฐ์ฒด์งํฅ์ ๊ฐ ์ ๋ฌธํ ์ฌ๋๋ค์ด ๊ฐ์ฅ ์ฝ๊ฒ ๋น ์ง๋ ํจ์ ์ ๋ฐ๋ก ์ํ๋ฅผ ์ค์ฌ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ค๊ณํ๋ ๊ฒ์ ๋๋ค.
์ด๋ณด์๋ค์ ๊ฐ์ฒด์ ํ์ํ ์ํ๊ฐ ๋ฌด์์ธ์ง๋ฅผ ๋จผ์ ๊ฒฐ์ ํ๊ณ ๊ทธ ์ํ์ ๋ํ ํ๋์ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ธ๋ฐ, ์ํ๊น๊ฒ๋ ์ด๋ฌํ ์์ (์ํ ๊ฒฐ์ โก๏ธ ํ๋ ๊ฒฐ์ )๋ ์ค๊ณ์ ๋์ ์ํฅ์ ๋ผ์น๋ค๊ณ ํฉ๋๋ค.
๊ทธ ์ด์ ๋ ์ธ ๊ฐ์ง๋ก ์ค๋ช ํฉ๋๋ค.
์ฒซ์งธ, ์บก์ํ๊ฐ ์ ํด๋๋ค.
- ์ํ์ ์ด์ ์ ๋ง์ถ ๊ฒฝ์ฐ ์ํ๊ฐ ๊ฐ์ฒด ๋ด๋ถ๋ก ๊น๋ํ๊ฒ ์บก์ํ ๋์ง ๋ชปํ๊ณ ์ธํฐํ์ด์ค์ ๊ทธ๋๋ก ๋ ธ์ถ๋์ด๋ฒ๋ฆด ํ๋ฅ ์ด ๋์์ง๋๋ค.
๋์งธ, ๊ฐ์ฒด๋ฅผ ํ๋ ฅ์๊ฐ ์๋ ๊ณ ๋ฆฝ๋ ์ฌ์ผ๋ก ๋ง๋ค ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋ค.
- ์ํ๋ฅผ ๋จผ์ ๊ณ ๋ คํ๋ ๋ฐฉ์์ ํ๋ ฅ์ด๋ผ๋ ๋ฌธ๋งฅ์์ ๋ฉ๋ฆฌ ๋ฒ์ด๋ ์ฑ ๊ฐ์ฒด๋ฅผ ์ค๊ณํ๊ฒ ํจ์ผ๋ก์จ ์์ฐ์ค๋ฝ๊ฒ ํ๋ ฅ์ ์ ํฉํ์ง ๋ชปํ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ฒ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.
์ ์งธ, ์ฌ์ฌ์ฉ์ฑ์ด ์ ํ๋๋ค.
- ๊ฐ์ฒด์ ์ฌ์ฌ์ฉ์ฑ์ ๋ค์ํ ํ๋ ฅ์ ์ฐธ์ฌํ ์ ์๋ ๋ฅ๋ ฅ์์ ๋์ค๋๋ฐ, ์ํ์ ์ด์ ์ ๋ง์ถ ๊ฐ์ฒด๋ ๋ค์ํ ํ๋ ฅ์ ์ฐธ์ฌํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์, ์ฌ์ฌ์ฉ์ฑ์ ๊ณ ๋ คํ ํ๋์ ๋จผ์ ์ค๊ณํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ฆ, ํ๋ ฅ์ ์ฐธ์ฌํ๋ ํ๋ฅญํ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํด์ ๊ฐ์ฅ ์ค์ํ ๋๋ชฉ์ ๋ฐ๋ก ์ํ๊ฐ ์๋ ํ๋์ ์ด์ ์ ๋ง์ถ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๋ค.
์ฝ๊ฒ ๋งํด ๊ฐ์ฒด๋ ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋ ฅํ๊ธฐ ์ํด ์กด์ฌํ๊ณ , ํ๋ ฅํ๊ธฐ ์ํด์๋ ์ํ๋ณด๋ค๋ ๋จผ์ ํ๋์ ์ด์ ์ ๋ง์ถฐ์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
ํ๋์ด ์ํ๋ฅผ ๊ฒฐ์ ํ๋ค.
์ด์ด์ ์ฑ ์์๋ ํ๋ ฅ์ ์ํด ๊ฐ ๊ฐ์ฒด๊ฐ ์ด๋ค ์ฑ ์์ด ํ์ํ๊ณ ๊ทธ์ ๋ฐ๋ผ ์ด๋ค ํ๋์ด ํ์ํ์ง ๋จผ์ ์ค๊ณํ๋ ์ฑ ์-์ฃผ๋ ์ค๊ณ(Responsibility-Driven Design)๋ฅผ ํตํด ๋ฌธ๋งฅ ์์์ ๊ฐ์ฒด์ ํ๋์ ์๊ฐํ๋๋ก ๋์ "์์ง๋ ๋๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฒด"๋ฅผ ๋ง๋ค ์ ์๊ฒ ํด์ผ ํจ์ ๊ฐ์กฐํ๊ณ , ์ฑํฐ๊ฐ ๋์ด๊ฐ์๋ก ์ด ์งง์ ๋ฌธ์ฅ์ ๋ด๊ธด ์๋ฏธ๋ฅผ ์ดํดํ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์ค๋ช ํ๊ณ ์์ต๋๋ค.
์์ ์ ๊ฐ์ฒด
'๊ณผ์ฐ ๊ฐ์ฒด์งํฅ์ด๋ ํ์ค ์ธ๊ณ๋ฅผ ๋ชจ๋ฐฉํ๋ ๊ฒ์ธ๊ฐ?'
- ๊ฐ์ฒด์งํฅ์ ํ์ค ์ธ๊ณ์ ๋ชจ๋ฐฉ์ด๋ผ๊ณ ๋ณด๋ ๊ด์ ์ ๋ถ์๊ณผ ์ค๊ณ ์ธก๋ฉด์์ ๋ณด์์ ๋ ํ์ค ์ธ๊ณ์ ๋ค์ํ ๊ฐ์ฒด๋ฅผ ๋ชจ๋ฐฉํ ํ ํ์ํ ๋ถ๋ถ๋ง ์ทจํด ์ํํธ์จ์ด ๊ฐ์ฒด๋ก ๊ตฌํํ๋ ๊ณผ์ ์ด๋ผ๊ณ ์ค๋ช ํฉ๋๋ค. ์ด ๊ณผ์ ์ ํ์ค ์ธ๊ณ์ ์ถ์ํ๋ผ๊ณ ๋ ํ๋๋ฐ, ๊ทธ ์์๋ ํ์ค ์ธ๊ณ๋ฅผ ๋ชจ๋ฐฉํด์ ๋จ์ํํ๋ค๋ ์๋ฏธ๊ฐ ๋ด์ฌ๋์ด ์์ต๋๋ค.
ํ์ง๋ง ์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ ๊ฐ์ฒด ์งํฅ ์ธ๊ณ์ ์๋ฃ ๊ฐ์ฒด๋ ํ์ค ์ธ๊ณ์ ์๋ฃ ๊ฐ์ฒด์ ๋ฌ๋ฆฌ ์์ ์ ์ํ๋ฅผ ์ค์ค๋ก ๊ฒ์ฌํ ์ ์๋ค๋ ์ธก๋ฉด์์ ๋ณด์์ ๋, ๊ฐ์ฒด ์งํฅ ์ธ๊ณ๋ ํ์ค ์ธ๊ณ์ ๋จ์ํ ๋ชจ๋ฐฉ์ด ์๋๋๋ค.
๊ฐ์ฒด์งํฅ์ธ๊ณ์ ๊ฐ์ฒด๋ ์์ ์ ์ํ๋ฅผ ์ค์ค๋ก ๊ฒ์ฌํ๊ณ , ์ํ์ ๋ฐ๋ฅธ ํ๋์ ํ ์ ์๋ค๋ ์ ์์ ํ์ค์ ๊ฐ์ฒด๋ณด๋ค ๋ ๋ง์ ์ผ์ ํ ์ ์์ต๋๋ค.
์ด๋ฅผ ์กฐ๊ธ ์ด๋ ค์ฐ๋ฉด์ ๊ฐ๋จํ๊ฒ ์์ฝํ์๋ฉด, ๊ฐ์ฒด ์งํฅ ์ธ๊ณ์ ๊ฐ์ฒด๋ ํ์ค ์ธ๊ณ์ ๊ฐ์ฒด์ ๋ฌ๋ฆฌ ์์ธํ ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์์ธํ?
์ํํธ์จ์ด๋ฅผ ์๋ฌผ๋ก ์๊ฐํ์. ๋ชจ๋ ์๋ฌผ์ฒ๋ผ ์ํํธ์จ์ด๋ ํ์ด๋๊ณ , ์ถ์ ์์ํ๊ณ , ๊ทธ๋ฆฌ๊ณ ์ฃฝ๋๋ค.
๊ฐ์ฒด ์งํฅ ์ธ๊ณ์ ๊ฐ์ฒด๋ ํ์ค์ธ๊ณ์ ๊ฐ์ฒด์ ๋ฌ๋ฆฌ ์์ธํ ํ ์ ์๋ค๋ ๊ฒ์ ๋ฐ๋ก '๋ฅ๋์ ์ด์ ์์จ์ ์ธ ์กด์ฌ'๋ก์ ์ค๊ณํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์ํํธ์จ์ด ์ ๊ฐ์ฒด๋ ํ์ค์ ๋จ์ํ ๋ชจ๋ฐฉํ ๊ฒ์ด ์๋๋ผ, ๋ ๋์๊ฐ ๊ฐ์ฒด๊ฐ ํ ์ ์๋ ํ์๋ค์ ์ํํ๋๋ก ๋ฅ๋์ ์ด๊ณ ์์จ์ ์ธ ์กด์ฌ๋ก ์ค๊ณํจ์ผ๋ก์, ์๋ก์ด ์ธ๊ณ๋ฅผ ์ฐฝ์กฐํ๋ค๋ ๊ฒ์ ๋๋ค.
์์ฝ
- ํ์ค์ธ๊ณ์ ๊ฐ์ฒด์งํฅ์ธ๊ณ๋ ์๋ฐํ ๋งํ๋ฉด ๋ค๋ฅธ ์ ๋ค์ด ์กด์ฌํ๋ค.
- ๊ฐ์ฒด์งํฅ ์ค๊ณ์๋ก์ ์ฐ๋ฆฌ์ ๋ชฉ์ ์ ํ์ค์ ๋ชจ๋ฐฉํ๋ ๊ฒ์ด ์๋๋ค. ํ์ค ์์ ๊ฐ์ฒด์ ์ด๋ฆ์ ์ธ์ฉํ๋ ๊ฒ๊น์ง๋ง ๋ชจ๋ฐฉํ๊ณ , ํ์ค์ ๋ฎ์์ผ ํ๋ค๋ ๊ตฌ์๊ณผ ์ ์ฝ์ ๋ฒ๋ฆฌ์.
<์ฐธ๊ณ ์๋ฃ>
'๐ Backend > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ธ๋ก๊ทธ์ ์ ๋ณด
Study Repository
rlaehddnd0422