SOLID - SRP
응집도(cohesion)에 대한 기준
"각 소프트웨어 모듈은 변경의 이유가 단 하나여야만 한다" =="하나의 모듈은 오직 하나의 액터에 대해서만 책임져야 한다"


해결책 : 3개의 클래스로 분리 (액터의 세분화 : Facade패턴 적용 고려)

플러터로 풀어본 SRP 위반 예시 (여러 액터가 한 클래스에 섞인 경우)
예를 들어, 직원(Employee) 정보를 관리하는 클래스가 아래처럼 구성되어 있다고 가정합니다.
이 클래스는 회계팀, 인사팀, 전산팀이라는 서로 다른 액터의 요구를 모두 처리하고 있어 SRP를 위반합니다.
SRP 준수 및 퍼사드 패턴 적용 예시
각 액터의 책임을 별도 클래스로 분리하고, 퍼사드(Facade) 클래스를 통해 통합 인터페이스를 제공합니다.
이렇게 하면 각 클래스는 하나의 액터만을 책임지고, 클라이언트는 EmployeeFacade만 사용하면 되므로 구조가 단순해집니다. 퍼사드는 내부의 복잡성을 숨기고, 필요한 인터페이스만 외부에 노출합니다.
정리
여러 액터의 요구가 한 클래스에 섞이면 SRP 위반입니다.
각 액터별 클래스로 분리 후, 퍼사드 패턴으로 통합 인터페이스를 제공합니다.
퍼사드 패턴은 클라이언트가 복잡한 내부 구조를 몰라도 되게 해주며, SRP 준수에 도움을 줍니다
Last updated