[SOLID] 단일 책임 원칙

김유상·2022년 11월 3일
0

SOLID원칙

목록 보기
1/1

단일 책임 원칙(Single Responsibility Principle)

소프트웨어 컴포넌트는 단 하나의 책임을 져야한다는 원칙

이 말은 결국 클래스는 하나의 구체적인 기능만을 수행해야 하며 기능을 수정할 때에는 가능하면 해당 클래스만을 수정하도록 해야 한다는 것을 의미한다.

너무 많은 책임을 가진 클래스


위 클래스 다이어그램으로 확인할 수 있듯이 하나의 클래스에 여러 개의 독립적인 동작을 하는 메서드들이 정의되어 있다.

이렇게 되면 가벼운 프로그램일 때는 변경하는 데 큰 문제가 발생하지 않을 지라도 프로그램이 살을 붙이게 되면 반드시 각 메서드들이 공유하는 변수나 메서드로 인한 의존성 문제가 발생하게 되고 이게 바로 결합도를 증가시키는 원인이 된다.

현재 상태는 아직 프로그램이 복잡하지 않아 결합도는 높지 않지만 당연히 적절한 추상화가 이루어지지 않아 응집도 또한 높지 않은 상태라고 볼 수 있겠다.

책임 분산


위 그림은 이전 단계의 클래스를 적절히 추상화한 다이어그램이다. 이제 각 객체들은 특정한 기능을 캡슐화하여 나머지 객체들에 영향을 미치지 않으며 명확하고 구체적인 의미를 갖는다.

Referenced: 파이썬 클린코드/마리아노 아나야/ chapter4

profile
continuous programming

0개의 댓글