본문 바로가기
우테코 프리코스/프리코스 오픈미션

SRP은 왜 지켜야할까?

by sloth365 2025. 11. 10.

SRP(Single Responsibility Principle)은 단일 책임 원칙으로 하나의 책임을 가져야 한다는 원칙이다.

여기서 말하는 책임은 일반적인 객체지향 개념에서의 책임보다 더 큰 개념이다.

SRP에서 말하는 책임은 변경할 이유가 단 한 가지여야 한다는 말이다.

 

그렇다면 이 원칙을 왜 지켜야 할까?

우선 낮은 결합도와 높은 응집도를 가지고 있으면 좋은 설계다.

복잡한 관계 속에서 클래스가 하나의 변경할 이유만 가지고 있다면 사용하는 목적이 명확하기 때문에

재사용성이 늘어난다.

 

만약 두 가지 기능을 가지고 있다면 그중 하나의 기능만 필요할 때 또다시 그 기능을 만들어줘야 한다.

그렇게 되면 중복이 발생하니 좋은 코드가 되지 못한다.

중복은 코드의 양이 늘어나 복잡도를 증가시킨다.

 

사이드 이펙트가 생길 위험도 증가한다.

만약 값을 저장하는 책임을 가진 메서드가 내부 값을 변경하고 저장한다면

원본값을 저장하려고 할 때 내부 값이 변경되는 위험이 발생한다.

 

이 코드를 작성하지 않은 개발자가 의도대로 사용하려 했지만 문제가 생기는 것이다.

이러한 점에서 SRP는 지켜줘야 한다.

 

SRP를 공부하면서 추가적으로 알게 된 것은 나는 메서드별로 하나씩 책임을 가지고 있는 줄 알았다.

그러나 SRP는 클래스를 바라보는 관점이다.

클래스가 하나의 책임을 가지고 있고 그 책임을 수행하기 위한 메서드들을 가지고 있는 것이다.