์ด๋ฒ ํฌ์คํ ์ ์ํํธ์จ์ด ๋ชจ๋ ๊ฐ์ ์์ง๋์ ๊ฒฐํฉ๋์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์์ง๋์ ๊ฒฐํฉ๋์ ๋ํ ๊ฐ๋ฒผ์ด ์ค๋ช
์์ง๋๋ ๋ชจ๋ ๋ด์ ๊ธฐ๋ฅ ๊ฐ์ ์ฐ๊ด์ฑ,
๊ฒฐํฉ๋๋ ๋ชจ๋ ๊ฐ์ ์ฐ๊ด์ฑ์ ๋ํ๋ธ๋ค๊ณ ๋ณด์๋ฉด ๋๋๋ฐ์.
๋ชจ๋์ ํ๋์ '๋๋ค' ๋ผ๊ณ ์๊ฐํ๊ณ , ๋ชจ๋ ๋ด์ ๊ธฐ๋ฅ๋ค์ ๊ฐ๊ฐ ๋ณ์, ํ๊ต ๋ฑ์ '์์ค'๋ก ์๊ฐํ๋ผ๊ณ ํ์ จ๋ ๊ต์๋์ ๋ง์์ด ๋ ์ค๋ฆ ๋๋ค.
์ฌ๋ฌ ์์ค๋ค์ ๋ญ์ณ์์ ์๋ก ํธ๋ฆฌํ๊ณ ๊ฐํธํด์ง๊ณ ํ๋์ ๋๋ค๋ฅผ ์ด๋ฃจ๊ธฐ ์ข์ผ๋ฏ๋ก ์์ง๋๊ฐ ๋์์ผ ํ๊ณ ,
๊ฐ ๋๋ค๋ ๊ตฌ๋ณ๋์ด์๊ณ ์๋ก๊ฐ ํ์ํ์ง ์์์ผ ํธ๋ฆฌํ๋ฏ๋ก ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ผ๊ฒ ์ต๋๋ค.
๋ง์ฝ A๋๋ค(๋ชจ๋)์์ ๋ณ์(๊ธฐ๋ฅ)์ ๋ค๋ ๋๋ฐ, ๊ผญ B๋๋ค(๋ชจ๋)์ ์ฝ๊ตญ(๊ธฐ๋ฅ)์ผ๋ก ์ฒ๋ฐฉ์ ๋ฐ์ผ๋ฌ ๊ฐ์ผ ํ๋ค๋ฉด?
๋๋ฌด ๋นํจ์จ ์ ์ด๊ฒ ์ฃ . ์์ ์ํฉ์ด ํ ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋๊ณผ ๊ฒฐํฉ๋์ด์๋ ๊ฒฐํฉ๋๊ฐ ๋์ ์ํฉ์ด๋ผ๊ณ ์ดํดํ์๋ฉด ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ์์ง๋๊ฐ ๋์์๋ก ๋์ ํ์ง,
๊ฒฐํฉ๋๊ฐ ๋ฎ์์๋ก ๋์ ํ์ง ์ ๋๋ค.
์ํํธ์จ์ด ๋ชจ๋ ์์ง๋๋?
์์ง๋๋ ๋ชจ๋ ๋ด๋ถ์์ ๊ตฌ์ฑ ์์ ๊ฐ์ ๋ฐ์ ํ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ์ ๋๋ก ํ๊ฐ๋๋ฉฐ, ์ ์ง๋๊ฐ ๋์์๋ก ํ์ํ ์์๋ค๋ก ๊ตฌ์ฑ๋์ด ์๊ณ ๋ฎ์์๋ก ๊ด๋ จ์ด ์ ์ ์์๋ค๋ก ๊ตฌ์ฑ ๋์ด์๋ค.
-> ์์ง๋๋ ํ ๋ชจ๋ ์์ ๊ธฐ๋ฅ๋ค์ ์ฐ๊ด์ฑ ์ ๋๋ฅผ ๋ํ๋ธ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค.
์์ง๋์ ์ ํ๊ณผ ์ค๋ช
์ ํ | ์ค๋ช |
๊ธฐ๋ฅ์ ์์ง๋ (Functional Cohesion) | ๋ชจ๋ ๋ด๋ถ์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋จ์ผํ ๋ชฉ์ ์ ์ํด ์ํ๋๋ ๊ฒฝ์ฐ์ด๋ค. ๊ตฌ์กฐ๋ ์ตํ์ ๋ชจ๋์์ ๋ง์ด ๋ฐ๊ฒฌ๋๋ค. |
์์ฐจ์ ์์ง๋ (Sequential Cohesion) | ๋ชจ๋ ๋ด์์ ํ ํ๋์ผ๋ก๋ถํฐ ๋์จ ์ถ๋ ฅ๊ฐ์ ๋ค๋ฅธ ํ๋์ ์
๋ ฅ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ด๋ค. ์) ํ๋ ฌ ์ ๋ ฅ ํ ๊ทธ ํ๋ ฌ์ ์ญํ๋ ฌ์ ๊ตฌํด์ ์ด๋ฅผ ์ถ๋ ฅ |
ํต์ ์ ์์ง๋ (Communication Cohesion) | ๋์ผํ ์
๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ํํ๋ ํ๋๋ค์ด ๋ชจ์ฌ ์์ ๊ฒฝ์ฐ์ด๋ค. ์) ๊ฐ์ ์ ๋ ฅ ์๋ฃ๋ฅผ ์ฌ์ฉํ์ฌ A๋ฅผ ๊ณ์ฐํ ํ B๋ฅผ ๊ณ์ฐ |
์ ์ฐจ์ ์์ง๋ (Procedural Cohesion) | ๋ชจ๋์ด ๋ค์์ ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ ๋ชจ๋ ์์ ๊ตฌ์ฑ ์์๋ค์ด ๊ทธ ๊ธฐ๋ฅ์ ์์ฐจ์ ์ผ๋ก ์ํํ ๊ฒฝ์ฐ์ด๋ค. ์) Restart๋ฃจํด: ์ด๊ณ ์ถ๋ ฅํ๊ณ ํ๋ฉด์ ์ง์ฐ๊ณ ๋ฉ๋ด๋ฅผ ํ์ |
์๊ฐ์ ์์ง๋ (Temporal Cohesion) | ์ฐ๊ด๋ ๊ธฐ๋ฅ์ด๋ผ๊ธฐ๋ณด๋ค๋ ํน์ ์๊ฐ์ ์ฒ๋ฆฌ๋์ด์ผ ํ๋ ํ๋๋ค์ ํ ๋ชจ๋์์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์ด๋ค. ์) ์ด๊ธฐ์น ์ค์ , ์ข ๋ฃ ์ฒ๋ฆฌ ๋ฑ |
๋ ผ๋ฆฌ์ ์์ง๋ (Logical Cohesion) | ์ ์ฌํ ์ฑ๊ฒฉ์ ๊ฐ๊ฑฐ๋ ํน์ ํํ๋ก ๋ถ๋ฅ๋๋ ์ฒ๋ฆฌ ์์๋ค์ด ํ ๋ชจ๋์ ์ ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ์ด๋ค. ์) ์ค๋ฅ ์ฒ๋ฆฌ: ์ํ๊ธฐ์ ์์ก ๋ถ์กฑ, ์๋ฃ์ ๋ถ์กฑ ์ถ๋ ฅ ์ฒ๋ฆฌ: ์ง์ ์ธ์ฌ ์ ๋ณด ์ถ๋ ฅ, ํ๊ณ ์ ๋ณด ์ถ๋ ฅ |
์ฐ์ฐ์ ์์ง๋ (Coincidental Cohesion) | ๋ชจ๋ ๋ด๋ถ์ ๊ฐ ๊ตฌ์ฑ ์์๋ค์ด ์ฐ๊ด์ด ์์ ๊ฒฝ์ฐ์ด๋ค. ๋ชจ๋ํ ์ฅ์ ์ด ์๋ค. ์ ์ง ๋ณด์ ์์ ์ด ์ด๋ ต๋ค. |
-> ๋ชจ๋ ๋ด๋ถ์ ๊ธฐ๋ฅ๋ค์ด ์ด๋ ํ ์ด์ ๋ก, ์ด๋ ํ ์ ํ์ผ๋ก ์์ง๋์ด ์๋์ง 7๊ฐ์ง๋ก ๋ถ๋ฅํ ๊ฒ์ ๋๋ค.
-> ์์์๋ถํฐ ์ฐจ๋ก๋ก ์ํํธ์จ์ด ํ์ง์ด ๋ฎ์ ์์ง๋์ ๋๋ค. ๊ธฐ๋ฅ์ ์์ง๋๊ฐ ๊ฐ์ฅ ๋์ ํ์ง์ ๋ณด์ ๋๋ค.
์์ง๋์ ํ์ง
-> ์์์ ๋ง์๋๋ ธ๋ฏ์ด ๊ธฐ๋ฅ์ ์ผ๋ก ์์ง๋์ด ์๋ ๋ชจ๋์ด ๋์ ํ์ง์ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๊ฒ ๋ฉ๋๋ค.
์ํํธ์จ์ด ๋ชจ๋ ๊ฒฐํฉ๋๋?
๊ฒฐํฉ๋๋ ๋ชจ๋๊ณผ ๋ชจ๋ ๊ฐ์ ๊ด๋ จ์ฑ ์ ๋๋ฅผ ๋ํ๋ด๋ฉฐ, ๊ด๋ จ์ด ์ ์์๋ก ๋ชจ๋์ ๋ ๋ฆฝ์ฑ์ด ๋์์ ธ ๋ชจ๋ ๊ฐ ์ํฅ์ด ์ ์ด์ง๊ฒ ๋๋ค.
-> ๊ฒฐํฉ๋๋ ๊ธฐ๋ฅ์ด ๋ชจ์ธ ๋ชจ๋๊ณผ ๋ชจ๋ ์ฌ์ด์ ์ฐ๊ด์ฑ์ ๋งํฉ๋๋ค.
๊ฒฐํฉ๋์ ์ ํ
๊ฒฐํฉ๋ ์ ํ | ์ค๋ช |
์๋ฃ ๊ฒฐํฉ๋ (Data Coupling) | ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค๋ก ์ ๋ฌ๋๋ ํ๋ผ๋ฏธํฐ๋ฅผ ํตํด์๋ง ๋ชจ๋ ๊ฐ์ ์ํธ ์์ฉ์ด ์ผ์ด๋๋ ๊ฒฝ์ฐ์ด๋ค. ์) ์ ๊ณฑ๊ทผ์ ๊ณ์ฐํ๋ ํจ์๋ก ํ๋์ ์ ์๋ฅผ ์ ๋ฌ |
์คํฌํ ๊ฒฐํฉ๋ (Stamp Coupling) | ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค๋ก ๋ฐฐ์ด์ด๋ ์ค๋ธ์ ํธ(Object), ์คํธ๋ญ์ฒ(Structur e) ๋ฑ์ด ์ ๋ฌ๋๋ ๊ฒฝ์ฐ์ด๋ค. |
์ ์ด ๊ฒฐํฉ๋ (Control Coupling) | ๋จ์ ์ฒ๋ฆฌํ ๋์์ธ ๊ฐ๋ง ์ ๋ฌ๋๋ ๊ฒ ์๋๋ผ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํ๋ค ๋ ์ ์ด ์์๊ฐ ์ ๋ฌ๋๋ ๊ฒฝ์ฐ์ด๋ค. |
์ธ๋ถ ๊ฒฐํฉ๋ (External Coupling) | ๋ค์์ ๋ชจ๋์ด ๋ชจ๋ ๋ฐ์์ ๋์ ๋ ๋ฐ์ดํฐ, ํ๋กํ ์ฝ, ์ธํฐํ์ด์ค ๋ฑ์ ๊ณต์ ํ ๋ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ด๋ค. |
๊ณตํต ๊ฒฐํฉ๋ (Common Coupling) | ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ๋ชจ๋ ๋ฐ์ ์ ์ธ๋์ด ์๋ ์ ์ญ ๋ณ์๋ฅผ ์ฐธ์กฐํ๊ณ ์ ์ญ ๋ณ์๋ฅผ ๊ฐฑ์ ํ๋ ์์ผ๋ก ์ํธ ์์ฉํ๋ ๊ฒฝ์ฐ์ด๋ค. ์) ์ ์ญ ๋ณ์ |
๋ด์ฉ ๊ฒฐํฉ๋ (Content Coupling) | ๋ค๋ฅธ ๋ชจ๋ ๋ด๋ถ์ ์๋ ๋ณ์๋ ๊ธฐ๋ฅ์ ๋ค๋ฅธ ๋ชจ๋์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ด๋ค. |
-> ๋ชจ๋๋ค์ด ๋ด์ฉ์ ์ผ๋ก ๊ฒฐํฉ๋์ด ์์์๋ก ๋ฎ์ ํ์ง์ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๊ฒ ๋ฉ๋๋ค.
-> ๋ชจ๋๋ค์ด ํ๋ผ๋ฉํฐ(๋ณ์)๋ก๋ง ์ฐ๊ฒฐ๋์ด ์์ ๋ ๋์ ํ์ง์ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์ฑํ๊ฒ ๋ฉ๋๋ค.
๊ฒฐํฉ๋์ ํ์ง
๋ชฉํ ์์คํ ์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ชจ๋ ๊ตฌ์ฑ์ ๊ฒฐํฉ ์ ๋๋ฅผ ๊ฒฐ์ ํ ์ ์์ผ๋, ํ์ง ์ธก๋ฉด์์ ๊ฒฐํฉ๋์ ์ ํ ์ค ์๋ฃ ๊ฒฐํฉ๋์ ํ์ง์ด ๊ฐ์ฅ ๋๊ณ , ๋ด์ฉ ๊ฒฐํฉ๋์ ํ์ง์ด ๊ฐ์ฅ ๋ฎ๋ค.
์ค๋์ ์ด์๊ฐ์ด ์์ง๋์ ๊ฒฐํฉ๋์ ๋ํด ์์๋ณด์์ต๋๋ค.
์ปดํจํ ์ ์ฌ๊ณ ์ ํ์์ ์ธ ์์ง๋์ ๊ฒฐํฉ๋!
์์ง๋๋ ๋์ด๊ณ , ๊ฒฐํฉ๋๋ ๋ฎ์ถ๋ฉฐ ํ๋ก๊ทธ๋จ์ ์งค ์ ์๋ ๊ฐ๋ฐ์๊ฐ ๋๋๋ก ํญ์ ๊ณ ๋ฏผํด์ผ ํฉ๋๋ค.
์์ง๋, ๊ฒฐํฉ๋, ์ํํธ์จ์ด ํ์ง, ์์ง๋๋, ๊ฒฐํฉ๋๋, ์์ง๋์ ์ ์, ์์ง๋์ ์ ํ, ์์ง๋ ์ค๋ช , ๊ฒฐํฉ๋์ ์ ์, ๊ฒฐํฉ๋์ ์ ํ
๋๊ธ