본문 바로가기
디자인패턴

디자인 패턴 - SOLID 패턴 SRP

by 개발자 포비 2024. 11. 26.

단일 책임 원칙 (SRP)

단일 책임 원칙(Single Responsibility Principle, SRP)은 객체지향 설계의 기본 원칙 중 하나로, 객체는 하나의 책임만 가져야 한다는 개념입니다. 여기서 '책임'이란 "해야 하는 것을 잘 할 수 있는 것"으로 이해할 수 있습니다. 

1. SRP의 중요성

  • 유지 보수 용이성: 하나의 객체가 여러 책임을 지게 되면, 그 객체의 어떤 기능이 수정될 때마다 객체 전체를 변경해야 할 가능성이 높아집니다. 이는 유지 보수를 어렵게 만듭니다.
  • 변경의 영향 최소화: 객체가 하나의 책임만 가지면, 변경 사항이 발생했을 때 영향을 받는 부분이 줄어들어 설계의 안정성이 높아집니다.
  • 테스트 용이성: 책임이 명확한 객체는 테스트하기가 더 쉽습니다. 여러 기능을 가진 객체는 각 기능 사이의 의존성으로 인해 테스트가 복잡해지고 테스트할 양이 많아질 수 있습니다.

2. 책임의 분리

  • 다양한 기능의 분리: 하나의 객체가 여러 기능을 수행해야 할 경우, 각 기능을 별도의 객체로 분리하여 설계하는 것이 좋습니다. 이렇게 하면 각 객체는 자신의 책임에만 집중할 수 있습니다.
  • 횡단 관심의 처리: 로깅, 보안, 트랜잭션 관리와 같은 횡단 관심(cross-cutting concerns)은 여러 클래스에서 공통적으로 필요할 수 있습니다. 이러한 기능을 각 클래스에 구현하면, 기능을 수정할 때마다 모든 관련 클래스를 수정해야 합니다. 이를 피하기 위해 이러한 기능을 전담하는 클래스를 만들어 응집력 있게 관리하는 것이 바람직합니다.

3. AOP와 SRP

  • 관점 지향 프로그래밍(AOP): AOP는 횡단 관심을 처리하기 위한 방법론으로, SRP를 적용하는 데 유용합니다. 공통 기능을 별도의 관심사로 분리하여, 특정 기능을 수정할 때 모든 관련 객체를 일일이 수정할 필요 없이, 해당 기능을 담당하는 클래스만 수정하면 됩니다.

결론

단일 책임 원칙은 객체지향 설계의 중요한 원칙으로, 객체의 책임을 명확히 하고 변경의 영향을 최소화하는 데 기여합니다. 이를 통해 유지 보수성과 테스트 용이성을 높일 수 있으며, AOP와 같은 기법을 활용하여 공통 기능을 효과적으로 관리할 수 있습니다. SRP를 준수하는 설계는 더 나은 소프트웨어 품질을 보장합니다.

'디자인패턴' 카테고리의 다른 글

디자인 패턴 - 옵저버 패턴  (1) 2024.12.02
디자인 패턴 - 커맨드 패턴  (0) 2024.11.29
디자인 패턴 - 상태 패턴  (0) 2024.11.28
디자인 패턴 - 전략 패턴  (0) 2024.11.27

댓글