7장 SRP 단일 책임 원칙 - ChoDragon9/posts GitHub Wiki
SRP: 단일 책임 원칙 (Single Responsibility Principle)
역사적으로 SRP는 아래와 같이 기술되어 있다.
단일 모듈은 변경의 이유가 하나. 오직 하나 뿐이어야 한다.
변경의 이유는 무엇을 의미하는 할까? 소프트웨어 시스템은 사용자와 이해관계자를 만족시키기 위해 변경된다. SRP가 말하는 변경의 이유는 바로 이들 사용자와 이해관계자를 가리킨다.
단일 모듈은 무엇을 의미하는 할까? 가장 단순한 정의는 소스파일이다. 대부분의 경우 이 정의는 잘들어 맞는다. 하지만 일부언어와 개발환경에서는 코드를 소스파일에 저장하지 않는다. 이러한 경우 모듈은 단순히 함수와 데이터 구조로 구성된 응집된 집합이다.
응집된이라는 단어가 SRP를 암시한다. 단일 액터를 책임지는 코드를 함께 묶어주는 힘이 바로 응집성(cohesion)이다. 여기서 액터는 시스템 변경을 요청하는 한명 이상의 사람들을 가리킨다.
SRP를 위반하는 징후
- 우발적인 중복으로 사이드 이펙트 발생
- 코드 병합시 발생하는 빈번한 충동