1. 응집도 ( Cohesion )란?
응집도란 모듈 ( 클래스, 함수, 컴포넌트 등 ) 내부의 요소들이 서로 관련되어 있는 정도를 의미합니다.
- 높은 응집도: 모듈이 하나의 명확한 목적을 가짐 → 유지보수성과 재사용성이 높아짐
- 낮은 응집도: 여러 목적이 섞여 있어 유지보수와 재사용이 어려움
2. 응집도의 유형
응집도는 낮은 수준 → 높은 수준으로 여러 가지 유형이 있습니다.
유형 | 설명 |
우연적 응집 ( Coincidental Cohesion ) | 관련 없는 기능들이 한 모듈에 우연히 포함됨 |
논리적 응집 ( Logical Cohesion ) | 비슷한 작업(예: 여러 포맷으로 출력)이 한 모듈에 포함됨 |
시간적 응집 ( Temporal Cohesion ) | 특정 시점(예: 초기화 과정)에서 실행되는 기능들이 포함됨 |
절차적 응집 ( Procedural Cohesion ) | 특정 순서로 실행되는 작업들이 포함됨 |
통신적 응집 ( Communicational Cohesion ) | 동일한 데이터 집합을 사용하는 작업들이 포함됨 |
순차적 응집 ( Sequential Cohesion ) | 하나의 출력이 다음 기능의 입력으로 사용됨 |
기능적 응집 ( Functional Cohesion ) | 모듈이 단 하나의 기능만 수행 (가장 높은 응집도) |
3. 응집도를 높이는 방법
응집도를 높이면 코드의 유지보수성과 재사용성이 향상된다.
- 하나의 모듈이 하나의 책임을 가지도록 설계하기 ( SRP: Single Responsibility Principle )
- 관련 없는 기능을 분리하고 관련된 기능을 묶기
- 캡슐화를 통해 모듈 내부의 결합도를 낮추기
- 함수나 클래스를 작고 명확하게 유지하기
4. 결론
- 응집도는 좋은 소프트웨어 설계를 위한 핵심 요소 중 하나다.
- 높은 응집도를 유지하면 유지보수성과 가독성이 향상되며, 코드의 재사용성이 증가한다.
'CS 공부' 카테고리의 다른 글
CS) CASE, 럼바우 기법, 요구사항 모델링 (0) | 2025.02.21 |
---|---|
CS) 객체지향 설계 원칙과 OOAD (0) | 2025.02.20 |
CS) 데이터베이스 관계대수, 관계 함수, 정규화 (0) | 2025.02.16 |
CS) 정처기 대비 요약 정리 (0) | 2025.02.15 |
CS) 소프트웨어 프로젝트 관리에서 3P와 애자일에서의 적용 (0) | 2025.02.14 |