C++/개념정리

C++[응집도, 결합도]

jeongchanhyo 2025. 1. 3. 02:51

응집도

모듈이나 클래스의 구성 요소들이 얼마나 밀접하게 관련되어있는지를 나타내는 개념이다.

응집도가 높을수록 모듈이나 클래스의 구성 요소들이 잘 결합되어있는것이며, 코드의 유지보수성과 이해도를 높인다.

그렇다면 이 중요한 응집도를 높이기 위해 초보자인 사람도 초보자일 때 일수록 지키기 쉽고 간단한 기준들을 공부해볼 생각이다.

 

1.명확한 인터페이스 설계

  • 클래스의 인터페이스를 명확하게 정의. 
  • 클래스의 사용처를 정확히 인지.

2. 의미 있는 이름 사용

  • 클래스, 메서드, 변수의 이름을 의미 있게 설정
  • 기능에 따라 보편적으로 사용되는 이름을 찾아보고 사용해서 익숙해지는것도 좋다.

3. 데이터 은닉

  • 클래스 내부의 데이터를 private으로 설정해 보호하기
  • 저번에 배운 getter와 setter 등을 이용

4. 작은 클래스와 메서드

  • 클래스와 메서드를 작고 간결하게 유지.
  • 한 클래스가 너무 많은 기능을 가지지 않도록 하기.
  • 각 메서드는 하나당 한가지의 작업을 수행하도록 하기.

5. 관련 기능 그룹화

  • 관련있어보이는 기능이나 데이터를 함께 묶는다.
  • 주관적인 분류라 사람마다 다를수는 있지만 안하는것보단 하는게 1억배는 더 좋다.

6. 주석과 문서화

  • 복잡한 코드에는 주석을 추가해 의도를 설명함.

결합도

모듈이나 클래스 간의 의존성과 상호작용의 정도를 나타내는 개념이다.

결합도가 낮을수록 모듈 간의 의존성이 적어지며, 이는 코드의 유지보수성과 재사용성을 높이는데 큰 기여를한다.

그렇다면 초보자도 결합도를 낮추기 위해 어떤 사고와 습관이 필요한지 공부해보겠다

1.인터페이스 사용

  • 클래스 간의 상호작용을 인터페이스를 통해 관리한다.

2. 외부에서 의존성 주입

  • 객체를 생성할 때 필요한 의존성을 외부에서 주입.
  • 생산자나 메서드의 매개변수를 클래스 내부에서 직접 생성하지 않도록 함

3.구성 사용

  • 상속보다는 객체의 조합을 통해 기능을 확장한다.
  • 여러 클래스를 조합하여 새로운 기능을 만드는 대신, 상속은 꼭 필요한 곳에만 사용

4. 모듈화

  • 관련 기능을 가진 클래스를 모듈화하여 의존성을 최소화한다.
  • 특정 기능을 수행하는 클래스를 별도의 파일이나 모듈로 분리.

5. 단일 책임 원칙

  • 각 클래스가 하나의 책임만 가지도록 설계.
  • 예) 사용자 관리와 데이터 베이스같은 접근을 같은 클래스에 두지않고, 각각의 클래스를 만들어 분리하고 나중에 조합하여 사용.

이렇게 응집도와, 결합도는 작은 규모의 프로그래밍을 할 때 신경쓰기 더 좋으니 초보일때가 제일 좋은 습관들이기 좋은 타이밍이다. 이 황금시기를 놓치지말자!

'C++ > 개념정리' 카테고리의 다른 글

C++[디자인 패턴]  (1) 2025.01.06
C++[SOLID 원칙]  (0) 2025.01.03
C++[sort알고리즘]  (0) 2025.01.02
C++[Vector]  (0) 2025.01.01
C++[STL]  (0) 2025.01.01