SOLID란?

Jaeyoo (유재형)·2022년 1월 20일
0
post-thumbnail

SOLID 소개

SOLID원칙의 목표

: 소프트웨어 설계를 이해하기 쉽고 유연하고 유지보수가 쉽게 만들기 위해 나온 원칙


다섯가지 원칙

  1. SRP : 단일 책임 원칙
  2. OCP : 개방-폐쇄 원칙
  3. LSP : 리스코프 치환 원칙
  4. ISP : 인터페이스 분리 원칙
  5. DIP : 의존관계 역전 원칙

이 다섯가지가 있는데 다섯가지를 간략하게 설명해보면

1. SRP : 단일 책임 원칙

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

그런데 하나의 책임이 약간 모호하다.
쉽게 생각하면 책임의 기준을 변경에 맞춰생각하면 된다.
만약 한 클래스의 변경이 있을때 다른 클래스에대한 파급효과가 작다면 SRP를 잘따른것이라고 생각한다.

2. OCP : 개방 폐쇄 원칙

: 확장에는 열려있고 수정에는 닫혀있어야한다.
클래스 내부 수정없이 동작을 확장할수있어야한다라는 의미이다.
객체지향에서는 이러한 것을 상속과 다형성으로 이 원칙을 지킬수있다.

3. LSP : 리스코프 치환 원칙

: 프로그램의 객체는 프로그램의 정확성을 깨트리지 않으면서 하위타입의 인스턴스로 바꿀수 있어야한다.
그러기 위해서는

  • 인터페이스 규약에 맞게 구현해야한다.
  • 인터페이스에대한 구현체가 정확성을 깨면안된다.

4. ISP : 인터페이스 분리 원칙

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

한마디로 인터페이스의 기능이 너무 넓으면 안된다는 얘기다.
인터페이스가 명확하면 다른 클래스에대한 파급효과가 적을것이다.

5. DIP : 의존관계 역전 원칙

: 추상화에 의존해야하고 구체화에 의존하면 안된다.

구현클래스에 의존하지말고 인터페이스에 의존하라라는 말이다.
이러한 원칙을 지키기 위해 스프링에서 의존성 주입을 사용한다.

인터페이스에 의존해야 코드 변경시 유연하게 변경가능하고 구현체에 의존하면 변경이 어려워진다.


profile
기록과 반복

0개의 댓글