응집도(Cohesion) vs 결합도(Coupling)
* 관련 기술 스택이 없습니다

• 응집도는 하나의 모듈이 하나의 기능을 수행하는 요소들간의 연관성을 나타내며, 높은 응집도를 가진 클래스는 단일 책임을 가지고 다른 클래스와 잘 협력한다. 응집도는 우연적, 논리적, 시간적, 절차적, 교환적, 순차적, 기능적 응집도로 나뉜다.
• 결합도는 어떤 모듈이 다른 모듈에 의존하는 정보를 측정하는 것으로, 두 모듈간의 상호 의존하는 정도 또는 두 모듈 사이의 연관관계를 나타낸다. 독립적인 모듈이 되기 위해서는 결합도가 낮아야 한다.
* 결합도는 클래스 간의 의존성을 나타내는 지표로, 결합도가 높은 클래스는 다른 클래스와의 관계가 복잡하여 수정이 어렵고 재사용이 힘들다. 반면 결합도가 낮은 클래스는 확장에는 열려있고 변경에는 닫혀있는 OCP 원칙을 잘 지키며, 다형성을 잘 지킨다.
* 결합도의 종류로는 자료 결합도, 스탬프 결합도, 제어 결합도 등이 있으며, 각각은 모듈 간 데이터를 주고 받는 방식, 자료 구조를 전달하는 방식, 다른 모듈의 논리적 흐름을 제어하는 방식에 따라 결정된다. 이들 결합도의 종류에 따라 클래스의 수정이나 재사용이 어려울 수 있다.

북마크
공유하기
신고하기