JAVA/ETC
[객체 지향 설계 5원칙 - SOLID] 0.개요
자이구
2023. 12. 7. 12:09
도구를 올바르게 사용하는 법이 있는 것처럼 객체 지향의 특성을 올바르게 사용하는 방법,
즉 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계해 나가는 방법이나 원칙이 존재할까?
객체 지향 설계(OOD)의 정수라고 할 수 잇는 5원칙이 집대성됐는데 바로 SOLID이다.
- SRP(Single Responsibility Principle): 단일 책임 원칙
- OCP(Open Closed Priciple): 개방 폐쇄 원칙
- LSP(Listov Substitution Priciple): 리스코프 치환 원칙
- ISP(Interface Segregation Principle): 인터페이스 분리 원칙
- DIP(Dependency Inversion Principle): 의존 역전 원칙
응집도는 높이고, 결합도는 낮추는 고전 원칙을 객체 지향의 관점에서 재정립한 것이다.
SOLID는 객체 지향 4대 특성을 발판으로 하고 있으며, 디자인 패턴의 뼈대이며 스프링 프레임워크의 근간이다.
SOLID 객체 지향 원칙을 적용하면 코드를 확장하고 유지 보수 관리하기가 더 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 프로젝트 개발의 생산성을 높일 수 있다.
좋은 소프트웨어 설계를위해서는 결합도는 낮추고 응집도는 높이는 것이 바람직하다.
결합도는 모듈 간의 상호 의존 정도로서 낮으면 모듈 간의 상호 의존성이 줄어들어 객체의 재사용이나 수정, 유지보수에 용이하다.
응집도는 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로, 응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져 재사용이나 기능의 수정, 유지보수가 용이하다.
📖Reference
- 도서 '스프링 입문을 위한 자바 객체 지향의 원리와 이해'