단일 책임 원칙
단일 책임 원칙에 대한 사실과 오해
- 오해: 하나의 컴포넌트는 오직 한 가지 일만 해야 하고, 그것을 올바르게 수행해야 한다.
- 사실: 컴포넌트를 변경하는 이유는 오직 하나뿐이어야 한다.
책임은 “오로지 한가지 일만 하는 것" 보다는 “변경할 이유"로 해석해야 한다. 변경할 이유가 오로지 하나라면 컴포넌트는 한 가지 일만 하게 된다. 그리고 하나의 일만 하면 어떠한 변경 요구일지라도 하나의 컴포넌트만 신경쓰면 된다.
의존성에 의해 전파되는 변경
- 변경은 컴포넌트 간의 의존성을 통해 쉽게 전파됨
- 다른 컴포넌트에 의존하는 경우(컴포넌트 A)
- 다른 컴포넌트에 의존하므로 다른 어떤 컴포넌트가 바뀌든지 같이 바뀌어야 함
- 다른 컴포넌트에 의존하지 않는 경우(컴포넌트 E)
- E를 변경할 유일한 이유는 E에 대한 새로운 요구사항이 생겼을 때
대부분의 코드는 단일 책임 원칙을 위반하므로 시간이 지날수록 변경이 어려워지고 비용이 증가하며 변경의 이유는 늘어난다. 결국 한 컴포넌트를 바꾸는 것이 다른 컴포넌트가 실패하는 원인으로 작용할 수 있다.
부수효과에 관한 이야기