Juuunew 살아남기

[Spring] 객체지향 설계원칙 (SOLID) - 단일 책임 원칙 SRP 본문

Framework/Spring

[Spring] 객체지향 설계원칙 (SOLID) - 단일 책임 원칙 SRP

Juuunew 2022. 12. 7. 13:05

SOLID 원칙은 클린 코드의 저자 로버트 마틴이 정리한 객체지향 설계의 다섯 가지 원칙으로 

 

모듈화, 캡슐화, 확장 용이성, 구성 용이한 컴포넌트 등을 고려한 소프트웨어의 구축을 위한 설계이다.

 

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

의 앞글자들을 따와 SOLID 원칙이라 부른다.


단일 책임 원칙 - SRP

 

  • 소프트웨어 설계 시 하나의 클래스는 하나의 책임만 가져야 한다.
  • 변경이 있을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것
  • 응집도는 높고 결합도는 낮은 프로그램
  • 책임이 많아지면 클래스 내부의 함수끼리 결합이 강해질 가능성이 높아진다. -> 유지보수 비용 증가

SRP 적용 전

public class ServiceCenter {
    public void laptopRepair();
    public void smartPhoneRepair();
}

현재는 하나의 서비스센터에서 노트북 A/S와 스마트폰 A/S를 책임지고 있다.

 

하지만 전문성을 위해 서비스센터를 세분화하려 한다.

 

SRP 적용 후

public class LaptopServiceCenter {
    public void laptopRepair();
}

public class SmartPhoneServiceCenter {
    public void smartPhoneRepair();
}

 

서비스센터에서 책임지던 노트북 A/S와 스마트폰 A/S를 각각의 노트북 서비스센터와 스마트폰 서비스센터로 분리하였다.

 

서비스센터 자체를 분리하여도 되고, 하나의 서비스센터 내에 한 창구에서 노트북, 스마트폰 A/S를 진행하던 것을 노트북 수리 창구와 스마트폰 수리 창구로 나누어주어도 된다.

 

💡 공부 중 정리하는 내용이므로 부족한 부분이 있을 수 있습니다.

 

💡 참고자료

 

스프링 핵심 원리 - 기본편 (인프런 김영한)

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com