Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 응집도(Cohesion) 완벽 이해: 좋은 프로그램 설계를 위한 핵심 원칙

C# 응집도(Cohesion)란 무엇인가?

C#에서 응집도(Cohesion)는 하나의 모듈 내부 요소들이 얼마나 밀접하게 관련되어 있는지를 나타내는 개념입니다. 즉, 모듈이 수행하는 기능의 강도를 의미하며, 응집도가 높을수록 프로그램 설계는 더욱 우수해집니다.

응집도는 메서드나 내부 모듈과 같은 모듈 내부 요소들 간의 의존 관계를 말합니다. 높은 응집도를 가진 코드는 클래스와 메서드를 손쉽게 재사용할 수 있다는 큰 장점이 있습니다.

높은 응집도의 대표적인 예시: System.Math 클래스

높은 응집도의 좋은 예로 .NET의 System.Math 클래스를 들 수 있습니다. 이 클래스는 오직 수학과 관련된 상수와 정적 메서드만을 담고 있습니다.

Math.Abs
Math.PI
Math.Pow

위 예시처럼 Math 클래스는 절댓값 계산(Abs), 원주율 상수(PI), 거듭제곱 계산(Pow) 등 수학 기능에만 집중하고 있어 응집도가 매우 높습니다. 덕분에 누구나 이 클래스의 역할을 직관적으로 이해할 수 있고, 필요할 때마다 자유롭게 재사용할 수 있습니다.

낮은 응집도가 초래하는 문제점

반면, 하나의 클래스가 여러 가지 서로 다른 일을 동시에 처리한다면 코드를 이해하고 유지보수하기가 매우 어려워집니다. 이것이 바로 낮은 응집도(Low Cohesion)이며, 반드시 피해야 할 안티 패턴입니다.

예를 들어 어떤 클래스가 이메일 발송, 문서 인쇄, 파일 복사처럼 전혀 관련 없는 기능들을 한꺼번에 제공한다면 어떻게 될까요? 코드가 불필요하게 복잡해져 유지보수가 힘들어지고, 특정 기능만 골라서 재사용하는 것도 사실상 불가능해집니다.

결론: 항상 높은 응집도를 추구하자

훌륭한 C# 개발자가 되기 위해서는 코드 작성 시 항상 높은 응집도를 달성하도록 노력해야 합니다. 단일 책임 원칙(SRP, Single Responsibility Principle)을 함께 적용하면 각 클래스와 모듈이 하나의 명확한 목적에만 집중하게 되어, 더 깔끔하고 재사용 가능하며 유지보수하기 쉬운 소프트웨어를 만들 수 있습니다.