#6 ์๊ฒฉ์ฆ ๐๏ธ/5-1 ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 8. ์๋ฒ ํ๋ก๊ทธ๋จ ๊ตฌํ
FillByCoding
2022. 11. 3. 17:25
์๋ฒ ํ๋ก๊ทธ๋จ ๊ตฌํ
๊ฒฐํฉ๋(Coupling)๋ฅผ ์ฝํ๊ฒ, ์์ง๋(Cohesion)๋ฅผ ๊ฐํ๊ฒ, ๋ชจ๋์ ํฌ๊ธฐ๊ฐ ์์ ๋ ๋ชจ๋์ ๋ ๋ฆฝ์ฑ์ด ๋์์ง
๋ชจ๋ : ์์คํ ์ ๊ธฐ๋ฅ ๋จ์
๊ฒฐํฉ๋ (๋ด>๊ณต>์ธ>์ >์ค>์ - ๋ฎ์)
๋ค๋ฅธ ๋ชจ๋๊ณผ์ ์์กด์ฑ ์ ๋
- ๋ด์ฉ ๊ฒฐํฉ๋ Content Coupling
- ๋ค๋ฅธ ๋ชจ๋ ๋ด๋ถ์ ์๋ ๋ณ์๋ ๊ธฐ๋ฅ์ ๋ค๋ฅธ ๋ชจ๋์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ๊ฒฐํฉ๋
- ๊ณต์ ๊ฒฐํฉ๋ Common Coupling
- ๊ณต์ ๋๋ ๊ณตํต๋ฐ์ดํฐ ์์ญ(์ ์ญ ๋ณ์)์ ์ฌ๋ฌ ๋ชจ๋์ด ์ฌ์ฉํ ๋์ ๊ฒฐํฉ๋
- ์ธ๋ถ ๊ฒฐํฉ๋ External Coupling
- ์ด๋ค ๋ชจ๋์์ ์ ์ธํ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ์ ๋ค๋ฅธ ๋ชจ๋์์ ์ฐธ์กฐํ ๋์ ๊ฒฐํฉ๋
- ์ ์ด ๊ฒฐํฉ๋
- ๋จ์ ์ฒ๋ฆฌํ ๋์์ธ ๊ฐ๋ง ์ ๋ฌ๋๋ ๊ฒ ์๋๋ผ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํ๋ค๋ ์ ์ด ์์๊ฐ ์ ๋ฌ๋๋ ๊ฒฝ์ฐ์ ๊ฒฐํฉ๋
- ์คํฌํ ๊ฒฐํฉ๋
- ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค๋ก ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด, ๊ตฌ์กฐ ๋ฑ์ด ์ ๋ฌ๋๋ ๊ฒฝ์ฐ์ ๊ฒฐํฉ๋
- ์๋ฃ ๊ฒฐํฉ๋
- ๋ชจ๋ ๊ฐ์ ์ธํฐํ์ด์ค๊ฐ ์๋ฃ ์์๋ก๋ง ๊ตฌ์ฑ๋ ๋์ ๊ฒฐํฉ๋
์์ง๋ (์ฐ<๋ ผ<์<์ <๊ต<์<๊ธฐ - ๊ฐํจ)
๋ชจ๋์ ํฌํจ๋ ๋ด๋ถ ์์๋ค์ด ํ๋์ ์ฑ ์, ๋ชฉ์ ์ ์ํด ์ฐ๊ฒฐ๋์ด ์๋ ์ฐ๊ด ์ ๋
- ์ฐ์ฐ์ ์์ง๋ Coincidental Cohesion
- ๋ชจ๋ ๋ด๋ถ์ ๊ฐ ๊ตฌ์ฑ ์์๊ฐ ์๋ก ์ฐ๊ด์ด ์์ ๊ฒฝ์ฐ ์์ง๋
- ๋ ผ๋ฆฌ์ ์์ง๋ Logical Cohesion
- ์ ์ฌํ ์ฑ๊ฒฉ์ ๊ฐ๊ฑฐ๋ ํน์ ํํ๋ก ๋ถ๋ฅ๋๋ ์ฒ๋ฆฌ ์์๋ค์ด ํ ๋ชจ๋์์ ์ฒ๋ฆฌ๋๋ ๊ฒฝ์ฐ์ ์์ง๋
- ์๊ฐ์ ์์ง๋ Temporal Cohesion
- ์ฐ๊ด๋ ๊ธฐ๋ฅ๋ณด๋ค๋ ํน์ ์๊ฐ์ ์ฒ๋ฆฌ๋์ด์ผ ํ๋ ํ๋๋ค์ ํ ๋ชจ๋์์ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ์ ์์ง๋
- ์ ์ฐจ์ ์์ง๋ Procedural Cohesion
- ๋ชจ๋ ๋ค์์ ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ ๋ชจ๋ ์์ ๊ตฌ์ฑ ์์๋ค์ด ๊ทธ ๊ธฐ๋ฅ์ ์์ฐจ์ ์ผ๋ก ์ํํ ๊ฒฝ์ฐ์ ์์ง๋
- ๊ตํ์ ์์ง๋ Communication Cohesion
- ๋์ผํ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๊ธฐ๋ฅ์ ์ํํ๋ ํ๋๋ค์ด ๋ชจ์ฌ ์์ ๊ฒฝ์ฐ์ ์์ง๋
- ์์ฐจ์ ์์ง๋ Sequential Cohesion
- ๋ชจ๋ ๋ด์์ ํ ํ๋์ผ๋ก๋ถํฐ ๋์จ ์ถ๋ ฅ ๊ฐ์ ๋ค๋ฅธ ํ๋์ด ์ฌ์ฉํ ๊ฒฝ์ฐ์ ์์ง๋
- ๊ธฐ๋ฅ์ ์์ง๋ Functional Cohesion
- ๋ชจ๋ ๋ด๋ถ์ ๋ชจ๋ ๊ธฐ๋ฅ์ด ๋จ์ผํ ๋ชฉ์ ์ ์ํด ์ํ๋๋ ๊ฒฝ์ฐ์ ์์ง๋
๋์์ธ ํจํด Design Pattern
SW์ค๊ณ ์ ํน์ ๋งฅ๋ฝ์์ ์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค์ด ๋ ๋ฐ์ํ์ ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํด๊ฒฐ๋ฐฉ์
- ๋ชฉ์
- ๋ฒ์
- ์์ฑ ํจํด
๊ฐ์ฒด ์์ฑ์ ๊ด๋ จ๋ ํจํด
- ๊ตฌ์กฐ ํจํด
ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์กฐํฉํด ๋ ํฐ ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ํจํด
- ํ์ ํจํด
๊ฐ์ฒด๋ ํด๋์ค ์ฌ์ด์ ์๊ณ ๋ฆฌ์ฆ์ด๋ ์ฑ ์ ๋ถ๋ฐฐ์ ๊ด๋ จ๋ ํจํด
LIST