개발_프로그래밍

클린 아키텍처 - 7장. SRP: 단일 책임 원칙 Single Responsibility Principle

_랄프_ 2022. 8. 30. 22:47
728x90

◆ Part 3 설계 원칙 Design Principles

좋은 시스템은 깔끔한 코드로부터 시작되며 이를 가능하게 하는 아키텍처 원칙이 SOLID이다. 이 원칙의 목적은 중간 수준의 소프트웨어 구조를 잘 만드는 데에 있다. 중간 수준이라 함은 코드 수준보다는 조금 상위에서 적용할 수 있다는 말이며, 모듈과 컴포넌트 내부에서 사용되는 소프트웨어 구조를 정의하는 데 도움을 준다.

SOLID는 다음의 다섯 가지 원칙이다.

- SRP : Single Responsibility Principle / 단일 책임 원칙

- OCP: The Open-Closed Principle / 개방-폐쇄 원칙

- LSP: The Liskov Substitution Principle / 리스코프 치환 원칙

- ISP: The Interface Segregation Principle / 인터페이스 분리 원칙

- DIP: The Dependency Inversion Principle / 의존성 역전 원칙

7장 SRP: 단일 책임 원칙

하나의 모듈은 하나의 액터(사용자, 이해관계자)에 대해서만 책임져야 한다는 원칙이다. 단일 액터를 책임지는 코드를 함께 묶어주는 것은 응집성 cohesion 이다.

위 클래스는 SRP를 위반하는데, 세 개의 메서드가 서로 다른 세 명의 액터를 책임지기 때문이다. 이는 아래와 같이 클래스를 분리하고 공통의 데이터 구조를 공유함으로써 해결할 수 있다.

또는 아래와 같이 Facade 패턴을 사용하여, 위의 세 가지 클래스를 인스턴스화하고 추적해야 하는 단점을 해소할 수도 있다.

가장 중요한 업무규칙을 데이터와 가깝게 배치하는 방식을 선호한다면 아래와 같이 구성할 수도 있다.

단일 책임 원칙은 메서드와 클래스 수준의 원칙이며, 컴포넌트 수준에서는 공통 폐쇄 원칙 CCP 으로 등장한다.

<8장에서 계속>

 

 

728x90
반응형