12. ์ฐฝ๋ฐ์ฑ
์ฐฝ๋ฐ์ ์ค๊ณ๋ก ๊น๋ํ ์ฝ๋๋ฅผ ๊ตฌํํ์
- ์ผํธ ๋ฒก์ด ์ ์ํ ๋จ์ํ ์ค๊ณ ๊ท์น 4๊ฐ์ง
-
๋ชจ๋ ํ ์คํธ๋ฅผ ์คํํ๋ผ
๋ฌด์๋ณด๋ค๋ ๋จผ์ ์ค๊ณ๋ ์๋ํ ๋๋ก ๋์๊ฐ๋ ์์คํ ์ ๋ด๋์์ผ ํ๋ค.
ํ ์คํธ๊ฐ ๋ถ๊ฐ๋ฅํ ์์คํ ์ ๊ฒ์ฆ๋ ๋ถ๊ฐ๋ฅํ๋ฉฐ, ๊ฒ์ฆ์ด ๋ถ๊ฐ๋ฅํ ์์คํ ์ ์ถ์ํ๋ฉด ์๋๋ค๊ณ ์๊ฐํ๋ค.
ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค๊ณ ๊ณ์ ๋๋ ค๋ผ ๋ผ๋ ๋จ์ํ ๊ท์น์ ๋ฐ๋ฅด๋ฉด ์์คํ ์ ๋ฎ์ ๊ฒฐํจ๋์ ๋์ ์์ง๋ ฅ์ด๋ผ๋,
๊ฐ์ฒด ์งํฅ ๋ฐฉ๋ฒ๋ก ์ด ์งํฅํ๋ ๋ชฉํ๋ฅผ ์ ์ ๋ก ๋ฌ์ฑํ๋ค. -
์ค๋ณต์ ์์ ๋ผ
์ฐ์ํ ์ค๊ณ์์ ์ค๋ณต์ ์ปค๋ค๋ ์ ์ด๋ค.
๋๊ฐ์ ์ฝ๋๋ ๋น์ฐํ ์ค๋ณต์ด๊ณ , ๋น์ทํ ์ฝ๋๋ ๋ ๋น์ทํ๊ฒ ๊ณ ์ณ์ฃผ๋ฉด ๋ฆฌํํ ๋ง์ด ์ฌ์์ง๋ค.
๊ตฌํ ์ค๋ณต๋ ์ค๋ณต์ ํ ํํ์ด๋ค. ์๊ท๋ชจ ์ฌ์ฌ์ฉ์ ์์คํ ๋ณต์ก๋๋ฅผ ๊ทน์ ์ผ๋ก ์ค์ฌ์ฃผ๊ณ , ์ถํ ๋๊ท๋ชจ ์ฌ์ฌ์ฉ์ ๊ฐ๋ฅํ ๋ก ํ๋ค. -
ํ๋ก๊ทธ๋๋จธ ์๋๋ฅผ ํํํ๋ค
์์ ์ด ์ดํดํ๋ ์ฝ๋๋ฅผ ์ง๊ธฐ๋ ์ฝ๋ค. ์ฝ๋๋ฅผ ์ง๋ ๋์์๋ ๋ฌธ์ ์ ํน ๋น ์ ธ ์ฝ๋๋ฅผ ๊ตฌ์๊ตฌ์ ์ดํดํ๋๊น.
ํ์ง๋ง, ๋์ค์ ์ฝ๋๋ฅผ ์ ์ง๋ณด์ํ ์ฌ๋์ด ์ฝ๋๋ฅผ ์ง๋ ์ฌ๋๋งํผ์ด๋ ๋ฌธ์ ๋ฅผ ๊น์ด ์ดํดํ ๊ฐ๋ฅ์ฑ์ ํฌ๋ฐํ๋ค.
์ฐ์ , ์ข์ ์ด๋ฆ์ ์ ํํ๋ค. ์ด๋ฆ๊ณผ ๊ธฐ๋ฅ์ด ๋ดํ์ธ ํด๋์ค๋ ํจ์๋ ์๋๊ฒ ๋ค.
๋์งธ, ํจ์์ ํด๋์ค ํฌ๊ธฐ๋ฅผ ๊ฐ๋ฅํ ์ค์ธ๋ค.
์ ์งธ, ํ์ค ๋ช ์นญ์ ์ฌ์ฉํ๋ค. ์๋ฅผ ๋ค์ด ๋์์ธ ํจํด์ ์์ฌ์ํต๊ณผ ํํ๋ ฅ ๊ฐํ๊ฐ ์ฃผ์ ๋ชฉ์ ์ด๋ค.
ํจํด์ ์ฌ์ฉํ ๊ฒฝ์ฐ ํจํด๋ช ์ ๋ฃ์ด์ฃผ๋ฉด ๋ ํธํ๋ค. ํ์ง๋ง, ํํ๋ ฅ์ ๋์ด๋ ๊ฐ์ฅ ์ค์ํ ๋ฐฉ๋ฒ์ ๋ ธ๋ ฅ์ด๋ค.
ํํ ์ฝ๋๋ง ๋๋ฆฐ ํ ๋ค์ ๋ฌธ์ ๋ก ์งํํ๋ ์ฌ๋ก๊ฐ ๋น์ผ๋น์ฌํ๋ฐ, ๋์ค์ ์ํด ์กฐ๊ธ์ด๋ผ๋ ์ฝ๊ฒ ํํํ๋ ค๋ ๊ณ ๋ฏผ์ด ํ์ํ๋ค.
๋์ค ์ฝ๋ ์ฌ๋์ด ๋ ์์ ์ด ๋ ์๋ ์๋ค. -
ํด๋์ค์ ๋งค์๋ ์๋ฅผ ์ต์๋ก ์ค์ธ๋ค.
SRP ๋ฅผ ๊ทน๋๋ก ์ค์ํ๋ฉด ๋๋ณด๋ค ์ค์ด ๋ ๋ง์์ง๋ค.
์ด ๊ท์น์ ‘๊ฐ๋ฅํ’ ์ค์ด๋ผ๊ณ ์ ์ํ๋ค. ๋ชฉํ๋ ํจ์์ ํด๋์ค ํฌ๊ธฐ๋ฅผ ์๊ฒ ์ ์งํ๋ฉด์ ๋์์ ์์คํ ํฌ๊ธฐ๋ ์๊ฒ ์ ์งํ๋ ๋ฐ์ ์๋ค.
ํ์ง๋ง, ์ด ๊ท์น์ 4๊ฐ์ง ๊ท์น ์ค ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋ฎ๋ค, ์ฆ ํด๋์ค์ ํจ์ ์๋ฅผ ์ค์ด๋ ์์ ์ ์ค์ํ์ง๋ง,
ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ง๋ค๊ณ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ ์๋๋ฅผ ํํํ๋ ์์ ์ด ๋ ์ค์ํ๋ค๋ ์๋ฏธ์ด๋ค.
๊ฒฐ๋ก ์ ๋ง๋ถ์ด๋ฉด…?
์ฐ์ … ์ด๋ ค์ด ์ฐฝ๋ฐ์ด ๋ฌด์จ ๋ป์ธ์ง๋ถํฐ ๋ณด์.
์ฐฝ๋ฐ(ๅต็ผ, Emergence)๋๋ ๋ ์ค๋ฆ ํ์์ ํ์ ๊ณ์ธต(๊ตฌ์ฑ ์์)์๋ ์๋ ํน์ฑ์ด๋ ํ๋์ด ์์ ๊ณ์ธต(์ ์ฒด ๊ตฌ์กฐ)์์ ์๋ฐ์ ์ผ๋ก ๋์ฐํ ์ถํํ๋ ํ์์ด๋ค.
– ์ํค๋ฐฑ๊ณผ
๋ป์ ๋ด๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์์ ์ ์์ด๋ก๋ ๋ํ๋๋ค. ์ด๋ฐ ๋ป์ผ๋ก ์ธ์ ๋ ๊ฑฐ ๊ฐ์๋ฐ..
๋ํ๋๋ค ๋ก ์๊ฐํ๋ฉด ํด๋ฆฐ ์ฝ๋๋ ์์ 4๊ฐ์ง ๊ท์น์ ํตํด ๋ํ๋๋ค (emergence) ์ ๋๊ฐ ๋๋ ค๋??
๋ญํํผ.. ์ด๋ฒ ๋ด์ฉ์ ์งง๋ค. ํ์ง๋ง, ๋ด์ฉ์ ํต์ฌ์ ์ด๋ค.
ํ
์คํธ ์ผ์ด์ค๋ฅผ ์์ฑ -> ๋ฆฌํํ ๋ง
ํ์ฌ ํ์ฌ์ ์์ ์ฒ์์๋ CMS ๋ฅผ ํฌํ
(spring -> spring boot, angularJS -> Angular) ํ ๋๋ ํ
์คํธ ์ผ์ด์ค๋ ๋ง๋ค๊ณ ์ฌ๋ฐ์๋ค.
ํ์ง๋ง, ์์ฆ์ ๊ธฐ๋ฅ ์ถ๊ฐ ํน์ ์์ ๊ฑด๋ ์๊ณ , ๋์ ์๋ ์์
์ง์์, ์ธ์ฃผ๊ฐ ์ ๋ง.. ๊ฐํ์ผ๋ก ์ง๋์ ํ๋ฉด ์์ค๋ฅผ ์ ์ง๋ณด์ ํ๊ณ ์๋ค.
์ด๋ฆฌ๊ด ๋ถ๋ฆฌ๋ ๊ฑฐ ์๋๋? ๋ผ๊ณ ํ ์๋ ์๊ฒ ์ง๋ง ๋๋ฌด ์ฌ๋ฏธ๊ฐ ์๋ค.
๊ทธ๋์ ์ฌ๋ฏธ์ข ์ฐพ์๋ณด๋ ค๊ณ ์ฑ
๋ ๋ณด๊ณ ์ ๋ฆฌ๋ ํ๋ฉด์ ํ๊ณ ์๊ธด ํ์ง๋ง..
์๋๋ค. ์ด๋๋ง ์ฑ
๋ 5์ฅ ์ ๋ ๋ฐ์ ์ ๋จ์๋ค. (๋ถ๋ก์ ๋์ ์๋ ๋ถ๋ถ์ ๋ฐ๋ก ์ ๋ฆฌ๋ฅผ ์ํ๋ ค๊ณ ํ๋ค. ๊ทธ๋ฅ ํธํ๊ฒ ์ฝ๊ณ ๋์ด๊ฐ๊น ํ์ง๋ง, ๋ณ์ฌ์ด ์๊ฒจ ์ฃผ๋ง์ ์ ๋ฆฌํ ์ง๋…?)
์ผ๋จ, ์ด ์ฑ
์ ๋ค ์ ๋ฆฌํ๋ฉด ๋ค์์๋ ์ด๋ค ์ฑ
์ ์ ๋ฆฌํ ๊น ๊ณ ๋ฏผ์ด๊ธด ํ๋ค.