티스토리 뷰
응집도와 결합도
좋은 소프트웨어 설계를 위해서는 결합도는 낮추고 응집도는 높여야 한다.
결합도(coupling)
모듈(클래스)간의 상호 의존 정도를 나타내는 지표로써
결합도가 낮으면 모듈간의 상호 의존성이 줄어들어서 객체의 재사용 및 유지보수가 유리하다.
응집도(cohesion)
하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로
응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져, 재사용 및 유시보수가 용이하다.
SOLID
1. SRP (Single Responsibility Principle) : 단일 책임 원칙
어떠한 클래스를 변경해야 하는 이유는 한가지 뿐 이여야 한다.
2. OCP (Open Closed Principle) : 개방 폐쇄 원칙
자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀 있어야 한다.
상위 클래스 또는 인터페이스를 중간에 둠으로써, 자신은 변화에 대해서는 폐쇄적이지만,
인터페이스는 외부의 변화에 대해서 확장을 개방해 줄 수 있다.
이러한 부분은 JDBC와 Mybatis, Hibernate 등 JAVA에서는 Stream(Input, Output)에서 찾아볼 수 있다.
3. LSP (Liskov Substitution Principle) : 리스코프 치환 원칙
서브 타입은 언제나 자신의 기반(상위) 타입으로 교체할 수 있어야 한다.
4. ISP (Interface Segregation Principle) : 인터페이스 분리 원칙
클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다.
프로젝트 요구 사항과 설계에 따라서 SRP(단일책임원칙) / ISP(인터페이스분리원칙) 를 선택한다.
5. DIP (Dependency Inversion Principle) : 의존 역전 원칙
자신보다 변하기 쉬운 것에 의존하지 말아야 한다.
'Web 개발 > Spring' 카테고리의 다른 글
REST API란? (0) | 2022.06.04 |
---|---|
POJO JAVA란? (0) | 2022.06.03 |
객체지향의 4대 특성 - 캡슐화, 상속, 다형성, 추상화 (0) | 2022.06.03 |
[Spring] Spring Boot 개념 (0) | 2022.04.27 |
[Spring] Rest API 개념 정리 (0) | 2022.04.26 |
- Total
- Today
- Yesterday