[CS] SOLID

장다슬·2024년 4월 11일

CS 스터디

목록 보기
2/23

SOLID 란?

객체 지향 프로그램의 다섯 가지 설계 원칙으로,

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

위와 같이 구성되어 있다.


단일 책임 원칙 (SRP, Single Responsibility Principle)

한 클래스는 단 하나의 책임만 가져야 한다.

여기서 말하는 '책임''기능' 을 의미하는 것으로, 하나의 클래스는 하나의 기능을 담당해야 한다는 원칙이다.

해당 원칙의 목적은 프로그램의 유지보수성을 높이는 데에 있다.


개방 폐쇄 원칙 (OCP, Open-Closed Principle)

확장에는 열려있고, 변경에는 닫혀 있어야 한다.

클래스 확장을 통해 손쉽게 기능을 구현하되, 기존 코드의 변경은 최소화해야 한다는 원칙이다.

즉, 다형성과 추상화를 통해 구현하는 것을 의미한다.


리스코프 치환 원칙 (LSP, Liskov Substitution Principle)

서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다.

다형성 원리를 이용하기 위한 원칙으로, 상위 타입은 항상 하위 타입으로 대체될 수 있어야 한다는 원칙이다.

즉, 부모 클래스가 들어갈 자리에 자식 클래스가 위치해도 프로그램은 의도한대로 동작해야 됨을 의미한다.


인터페이스 분리 원칙 (ISP, Interface Segregation Principle)

하나의 통상적인 인터페이스 보다는 여러 개의 구체적인 인터페이스가 낫다.

인터페이스의 단일 책임을 강조하는 것으로, 클라이언트의 목적과 용도의 맞는 적합한 인터페이스 만을 제공해야 한다는 원칙이다.


의존관계 역전 원칙 (DIP, Dependency Inversion Priciple)

구체화 된 하위 클래스 보다는 추상 클래스 또는 인터페이스와 같은 상위 클래스에 의존해야 한다.

의존 관계를 맺을 때 변화하기 쉬운 구현체 클래스 보다는 변화가 거의 없는 상위 클래스에 의존하라는 원칙이다.


참고:
객체 지향 설계의 5가지 원칙 - S.O.L.I.D - Inpa Dev ‍ - 티스토리
[Java] 객체지향 설계 원칙 SOLID 알아보기 - 슬기로운 개발생활
[OOP] 객체지향 프로그래밍의 5가지 설계 원칙, 실무 코드로 살펴보는 SOLID
SOLID 원칙, 어렵지 않다!

profile
반갑습니다

0개의 댓글