오늘은 '클린 코드' 책에서 나온 SOLID 원칙인 객체 지향 설계의 5가지 원칙에 대해서 김영한님 강의에서 학습하였다.
S - Single Responsibility Principle (단일 책임 원칙):
클래스나 메서드는 하나의 책임만을 가져야 한다. 스프링에서는 각 빈(Bean)은 하나의 주된 역할만 수행하고, 이를 통해 클래스의 응집도를 높이고 유지보수성을 향상시킬 수 있다.
O - Open/Closed Principle (개방-폐쇄 원칙):
확장에는 열려있고 변경에는 닫혀 있어야 한다. 스프링에서는 인터페이스와 추상 클래스를 통해 기능을 확장할 수 있도록 설계하고, 빈의 설정 변경 없이도 새로운 기능을 추가할 수 있도록 구조를 구성한다.
L - Liskov Substitution Principle (리스코프 치환 원칙):
자식 클래스는 언제나 부모 클래스를 대체할 수 있어야 한다. 스프링에서는 상속보다는 인터페이스를 활용하여 자유롭게 구현 클래스를 변경하고 확장할 수 있도록 한다.
I - Interface Segregation Principle (인터페이스 분리 원칙):
클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안 된다. 스프링에서는 작은 단위의 인터페이스를 설계하여 클라이언트가 필요한 메서드만 구현하도록 유도한다.
D - Dependency Inversion Principle (의존 역전 원칙):
고수준 모듈은 저수준 모듈에 의존해서는 안 된다. 양쪽 모듈 모두 추상화된 인터페이스나 추상 클래스에 의존해야 한다. 스프링에서는 의존성 주입(Dependency Injection)을 통해 이 원칙을 준수하여 모듈 간의 결합도를 낮추고 유연한 구조를 유지한다.
스프링 프레임워크는 SOLID 원칙을 따르는 구조와 기능을 제공하여 코드의 가독성, 유지보수성, 확장성을 향상시킬 수 있도록 도와준다. 객체 지향 설계의 5가지 원칙인 SOLID를 적절히 활용하면 스프링 개발에서 객체 지향적인 코드작성 즉, 더욱 효율적이고 품질 높은 코드를 작성할 수 있을 것이다.
출저 = 김영한 스프링 핵심 원리 기본편
'CS' 카테고리의 다른 글
| ERD와 API에 학습하면서 내용 정리 (0) | 2023.06.11 |
|---|