[심화] 3. SOLID

백하림's avatar
Jul 22, 2025
[심화] 3. SOLID
notion image
 

S

💡
SRP (Single Responsibility Principle) 단일 책임 원칙
  • 설명: 모든 클래스는 단 하나의 책임만 가져야 함. 즉, 클래스를 변경하는 이유는 단 하나여야 함.
  • 목표: 응집도를 높이고 결합도를 낮춰 변경이 용이하게 만듦

O

💡
OCP (Open-Closed Principle) 개방 - 폐쇄 원칙
  • 설명: 소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해서는 개방되어야 하지만, 수정에 대해서는 폐쇄되어야 함.
  • 목표: 기존 코드를 변경하지 않고 새로운 기능을 추가할 수 있도록 하여 시스템의 안정성을 유지

L

💡
LSP (Liskov Substitution Principle) 리스코프 치환 원칙
  • 설명: 부모 클래스가 들어갈 자리에 자식 클래스를 넣어도 프로그램이 올바르게 동작해야 함. (하위 타입은 상위 타입을 대체할 수 있어야 함.)
  • 목표: 다형성을 올바르게 활용하고, 상속 계층 구조의 일관성을 유지

I

💡
ISP (Interface Segregation Principle) 인터페이스 분리 원칙
  • 설명: 클라이언트는 자신이 사용하지 않는 인터페이스에 의존해서는 안 됨. 즉, 하나의 거대한 인터페이스보다는 여러 개의 구체적인 인터페이스가 나음.
  • 목표: 불필요한 의존성을 줄이고, 응집도 높은 작은 인터페이스를 만듦.

D

💡
DIP (Dependency Inversion Principle) 의존관계 역전 원칙
  • 설명: 고수준 모듈은 저수준 모듈에 의존해서는 안 됩니다. 이들 모두 추상화에 의존해야 함. 추상화는 구체화에 의존해서는 안 됨. 구체화는 추상화에 의존해야 함
  • 목표: 변경에 유연한 시스템을 구축하고, 모듈 간의 결합도를 낮춤
 
🔥
이 5가지 원칙을 따르면 보다 유연하고 견고하며 유지보수가 쉬운 소프트웨어를 만들 수 있음
주로 SRP OCP DIP가 사용된다.
 
Share article

harimmon