■ 13장 컴포넌트 응집도 Component Cohesion
컴포넌트 응집도 관련 3가지 원칙이 있다.
1. 재사용/릴리스 등가 원칙 REP: The Reuse/Release Equivalence Principle
2. 공통 폐쇄 원칙 CCP: The Common Closure Principle
3. 공통 재사용 원칙 CRP: The Common Reuse Principle
1. 재사용/릴리스 등가 원칙 REP
재사용 단위는 릴리스 단위와 같아야 한다.
어떤 라이브리를 사용하고 신규 버전으로 업데이트하는 경우 우리는 릴리스 번호를 참조한다. 어찌 보면 매우 당연하고 직관적인 원칙이다. 설계 관점에서 보면 컴포넌트 안에는 응집성 높은 클래스와 모듈만 있어야 한다. 이들은 버전 번호가 같아야 하고 동일한 릴리스로 추적관리 되어야 한다.
2. 공통 폐쇄 원칙 CCP
동일한 이유로 동일한 시점에 변경되는 클래스를 같은 컴포넌트로 묶어야 한다. SRP(단일책임원칙)의 컴포넌트 버전이다. 변경은 여러 컴포넌트에 분산되어 발생하기보다는 단일 컴포넌트 안에서 발생하는 것이 낫다. 그러면 배포도 해당 컴포넌트만 하면 된다. 릴리스, 재검증, 배포의 작업량을 최소화할 수 있다.
4. 공통 재사용 원칙 CRP
컴포넌트 사용자들을 필요하지 않은 것에 의존하게 하면 안 된다.
컴포넌트 안에는 누군가 자기를 사용하는 클래스도 있고 아닌 것도 있을 수 있다. 이 경우는 결국 모든 클래스에 대해 의존성이 있다고 인지해야 한다. CRP는 강하게 결합되지 않은 클래스들을 동일한 컴포넌트에 둬서는 안 된다는 의미이다.
<14장에서 계속>
'개발_프로그래밍' 카테고리의 다른 글
클린 아키텍처 - 15장. 아키텍처란? What Is Architecture? (0) | 2022.09.30 |
---|---|
클린 아키텍처 - 14장. 컴포넌트 결합 Component Coupling (0) | 2022.09.29 |
클린 아키텍처 - 12장. 컴포넌트 Components (0) | 2022.09.21 |
클린 아키텍처 - 11장. DIP: 의존성 역전 원칙 Dependency Inversion Principle (0) | 2022.09.17 |
클린 아키텍처 - 10장. ISP: 인터페이스 분리 원칙 Interface Segregation Principle (1) | 2022.09.02 |