본문 바로가기
TIL

[TIL] 객체 지향 설계 5원칙 (SOLID)

by 쾌횽 2024. 2. 19.
반응형

🧐 SOLID

객체 지향 프로그래밍 밑 설계의 다섯 가지 핵심 원칙의 맨 앞단어를 하나씩 가져와 만든 것이다.

SOLID의 종류

  • 단일 책임의 원칙 (Single Responsibility Principle, SRP)
  • 개방-폐쇄 원칙 (Open-Closed Principle, OCP)
  • 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)
  • 인터페이스 분리 원칙 (Interface Segregation Principle, ISP)
  • 의존성 역전 원칙 (Dependency Inversion Principle, DIP)

1️⃣ 단일 책임의 원칙

하나의 객체는 단 하나의 책임을 가져야한다.즉, 클래스나 모듈을 변경할 이유가 단 하나 뿐이어야 한다는 원칙이다.

 

2️⃣ 개방-폐쇄 원칙

개체(클래스, 모듈, 함수 등)는 확장에는 열려있으나 변경에는 닫혀 있어야 한다.

즉, 기존 코드에 영향을 주지않고 소프트웨어에 새로운 기능이나 구성 요소를 추가할 수 있어야 한다.

 

3️⃣ 리스코프 치환 원칙

어플리케이션에서 객체는 프로그램의 동작에 영행을 주지 않으면서, 하위 타입의 객체로 바꿀 수 있어야 한다.

부모 클래스(Parents)와 자식 클래스(Child)를 가지고 있다면, 이 두 가지의 클래스의 객체를 서로 바꾸더라도 해당 프로그램에서 잘못된 결과를 도출하지 않아야한다는 원칙이다.

 

4️⃣ 인터페이스 분리 원칙

특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.

즉, 사용자가 필요하지 않은 것들에 의존하지 않도록, 인터페이스는 작고 구체적으로 유지해야 한다느 것이다.

 

5️⃣ 의존성 역전 원칙

프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다.

즉, 높은 계층의 모듈(도메인)이 저수준의 모듈(하부구조)에 직접 의존해서는 안된다.

 

반응형

댓글