Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- java
- java #문법
- sql #내일배움캠프 #스파르타코딩클럽
- sql #부트캠프 #내일배움캠프 #웹관리자 #도전 #학습
- html #css #부트스트랩 #웹사이트 #개발 #초보 #til #내일배움캠프 #스파르타코딩클럽
Archives
- Today
- Total
Hyeok의 웹 개발 블로그
<2025.03.28> 객체 지향 설계 (SOLID 원칙) 본문
🔎객체 지향 설계
SOLID 원칙
- 단일 책임 원칙 SRP(Single Responsibility Principle)
- 개방 폐쇄 원칙 OCP(Open Closed Principle)
- 리스코프 치환 원칙 LSP(Liskov Substitution Principle)
- 인터페이스 분리 원칙 ISP(Interface Segregation Principle)
- 의존관계 역전 원칙 DIP(Dependency Inversion Principle)
1️⃣ 단일 책임 원칙 SRP(Single Responsibility Principle)
- 하나의 클래스가 하나의 역할을 가진다.

2️⃣ 개방 폐쇄 원칙 OCP(Open Closed Principle)
- 소프트웨어 요소는 확장에는 열려있어야하고, 수정에는 닫혀있어야한다.
- 새로운 기능을 추가 할 때, 기존 코드를 수정하지 않고, 확장할 수 있도록 설계해야한다.


3️⃣ 리스코프 치환 원칙 LSP(Liskov Substitution Principle)
- 자식 클래스는 언제나 부모 클래스를 대체 할 수 있어야한다.
- 부모 클래스를 사용하는 곳에서 자식 클래스를 사용해도 프로그램의 동작에 문제가 없어야한다.


4️⃣ 인터페이스 분리 원칙 ISP(Interface Segregation Principle)
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
- 클라이언트는 자신이 사용하지 않는 메서드에 의존 X
- 하나의 큰 인터페이스 보다는 여러 개의 작은 인터페이스로 분리

5️⃣ 의존관계 역전 법칙 DIP(Dependency Inversion Principle)
- 구체적인 클래스에 의존하지 말고, 인터페이스나 추상 클래스에 의존하도록 설계


- 추상화된 Notifier 인터페이스에만 의존한다.
- 새로운 알림 방식이 추가되어도 NotificationService 는 변경되지 않아도 된다.
- 필요한 Notifier 객체를 외부에서 주입받는다.
- NotificationService는 어떤 알림 방식을 사용할지에 대한 세부 사항을 몰라도 되므로, 의존성이 약해진다.
- 모듈간의 결합도를 낮추고 유연성과 확장성을 높일 수 있다.
- 서로의 변경 사항에 독립적이어서 변경에 유연하다.
'TIL > Spring' 카테고리의 다른 글
| <2025.04.15> HttpMessageConverter (2) | 2025.04.15 |
|---|---|
| <2025.03.31> IOC / DI (0) | 2025.03.31 |
| <2025.03.21> MVC 패턴 (0) | 2025.03.21 |
| <2025.03.20> Spring 입문 2주차 (0) | 2025.03.20 |
| <2025.03.19> Spring 입문 - Web Application (0) | 2025.03.20 |