주니어 개발자 성장기

(22.11.15) 2. SRP, DIP, OCP 본문

Spring/핵심

(22.11.15) 2. SRP, DIP, OCP

Junpyo Lee 2022. 11. 15. 20:33

SRP란

한 클래스는 하나의 책임만 가져야 한다.
Single responsibility principle
  • 하나의 클래스는 하나의 역할만을 해야한다.
    • 예를 들어, 할인 정책, 회원 관리, 주문 관리 등의 역할부터
    • 구현 객체를 생성, 연결, 실행 하는 등의 관심사도 분리가 필요하다.

 

OCP란

확장에는 열려있지만, 변경에는 닫혀있어야 한다.
Open/Closed principle
  • 소프트웨어 요소를 확장하더라도 코드를 변경할 필요가 없다는 의미이다.
  • 다형성(인터페이스)과 DI를 이용해 이 원칙을 지킬 수 있다.

 

DIP란

구체화에 의존하는 것이 아니라, 추상화에 의존해야 한다.
의존관계 주입(Dependency Injection)은 이 원칙을 따르는 방법 중 하나다.
Dependency inversion principle
  • 클래스는 구체화된 구현체에 의존하지 않아야 한다는 의미이다.
  • 즉, 인터페이스(추상화)에 의존하면 된다.
  • OCP와 마찬가지로 다형성과 외부에서의 DI를 통해서 지켜질 수 있다.

 

 

 

참고: 스프링 핵심 원리 - 기본편 (김영한)