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