-- 기타 --/일반 개념

[프로그래밍] 응집도와 결합도

JunKang 2024. 1. 10. 09:58

응집도 (Cohesion)

응집도는 모듈 내부의 요소들이 서로 얼마나 관련되어 있는지를 측정하는 것입니다

높은 응집도는 모듈 내의 요소들이 서로 긴밀하게 관련되어 있음을 나타내며, 모듈이 한 가지 기능이나 목적을 가지고 있음을 의미합니다

 

높은 응집도는 모듈을 이해하고 유지보수하기 쉽게 만들어줍니다

또한 모듈이 특정 기능에 집중하므로 재사용성이 증가하고 버그를 찾아내기 쉬워집니다

 

결합도 (Coupling)

결합도는 모듈 간의 상호 의존성을 나타냅니다

낮은 결합도는 모듈 간의 의존성이 낮음을 의미하며, 각 모듈이 독립적으로 존재할 수 있다는 것을 나타냅니다

 

서로 다른 모듈 간에 직접적인 데이터 교환 없이 인터페이스를 통해 통신하는 경우, 결합도는 낮다고 볼 수 있습니다

 

낮은 결합도는 모듈 간의 독립성을 증가시켜 변경이나 업그레이드가 쉬워지며, 모듈 간의 오류 전파를 방지합니다

또한, 모듈을 독립적으로 테스트할 수 있게 만듭니다

 

결론

응집도는 모듈 내부의 강도를 특정하고, 결합도는 모듈 간의 상호 의존성을 측정합니다

높은 응집도와 낮은 결합도는 이상적인 상태입니다

모듈은 자체적으로 강하게 구성되어 있으면서 다른 모듈과의 의존성이 최소화되어야 합니다

높은 응집도와 낮은 결합도를 모두 달성하는 것이 이상적입니다

하지만 어떤 경우에는 응집도를 높이기 위해서는 결합도를 어느 정도 희생해야 할 수도 있습니다