본문 바로가기
책/클린 아키텍처

7장 SRP: 단일 책임 원칙

by 오오오니 2025. 3. 18.

7장 SRP: 단일 책임 원칙

비어 있음
2024년 4월 27일

SRP

개념: 하나의 모듈은 오직 하나의 액터에 대해서만 책임져야한다는 원칙
액터(actor): 해당 변경을 요청하는 한 명 이상의 사람을 지칭
모듈: 함수와 데이터 구조로 구성되어 응집된(cohesion) 집합
⇒ 하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다
잘못된 SRP의 의미 주의
잘못된 개념1: 모든 모듈이 단 하나의 일만 해야한다는 잘못된 개념> 모든 모듈이 단 하나의 일만 해야한다는 개념은 '함수'의 정의

SRP를 위반하는 징후 

우발적 중복
Employee 클래스는 CFO, COO, CTO 서로 다른 세 그룹의 액터를 가진다
calculatePay() : 회계팀에서 기능 정의. CFO 보고를 위해 사용
reportHours() : 인사팀에서 기능 정의. COO 보고를 위해 사용
save() : DBA가 기능 정의. CTO 보고를 위해 사용
💡
calculatePay 함수와 reportHours 함수 regularHour를 사용할 때
CFO에 의해 regularHour를 수정한다면 COO가 사용하는 메서드에도 영향을 미친다.

해결

서로 다른 액터를 뒷받침하는 코드를 서로 분리
클래스는 필요한 기능만을 소스 코드에 포함하고, 서로의 존재를 몰라야 한다
Facade Pattern을 이용해 Facade 클래스에 객체 생성에 대한 책임을 부여하고, 실제 기능 수행은 각 클래스에 위임하는 방식을 사용할 수 있다.

' > 클린 아키텍처' 카테고리의 다른 글

11장 DIP: 의존성 역전 원칙  (0) 2025.03.18
9장 LSP: 리스코프 치환 원칙  (0) 2025.03.18
5장 객체 지향 프로그래밍  (0) 2025.03.17
3장 패러다임 개요  (0) 2025.03.17
1장 설계와 아키텍처란?  (0) 2025.03.17