응집도
모듈이나 클래스의 구성 요소들이 얼마나 밀접하게 관련되어있는지를 나타내는 개념이다.
응집도가 높을수록 모듈이나 클래스의 구성 요소들이 잘 결합되어있는것이며, 코드의 유지보수성과 이해도를 높인다.
그렇다면 이 중요한 응집도를 높이기 위해 초보자인 사람도 초보자일 때 일수록 지키기 쉽고 간단한 기준들을 공부해볼 생각이다.
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 |