SRP는 모든 모듈이 단 하나의 일만 해야 한다는 의미로 받아들이기 쉽다.
함수는 반드시 하나의, 단 하나의 일만 해야 한다는 원칙이다.
이 원칙은 커다란 함수를 작은 함수들로 리팩터링하는 더 저수준에서 사용된다.
이 원칙은 SOLID도, SRP도 아니다.
SRP는 역사적으로 아래와 같이 기술되어 왔다.
단일 모듈은 변경의 이유가 하나, 오직 하나뿐이어야 한다.
하나의 모듈은 하나의, 오직 하나의 사용자 또는 이해관계자에 대해서만 책임져야 한다.
→ 하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다.
모듈은 또 무슨 뜻인가?
‘응집된’ 이라는 단어는 SRP를 암시한다.
위 원칙을 이해하는 데에는 위반하는 징후들을 살펴보는 게 좋다.
단일 책임 원칙은 메서드와 클래스 수준의 우너칙이다.
컴포넌트 수준에서는 공통 폐쇄 원칙(Common Closure Principle)이 된다. 아키텍처 수준에서는 아키텍처 경계의 생성을 책임지는 변경의 축이 된다.