피드로 돌아가기
Single Responsibility Principle (SRP)
Dev.toDev.to
Backend

Actor 중심 책임 분리로 유지보수성 및 테스트 가능성 극대화

Single Responsibility Principle (SRP)

Anas Hussain2026년 6월 30일8intermediate

Context

단일 클래스가 데이터 관리, DB 연결, 알림 전송 등 다중 책임을 수행함에 따른 강한 결합도 발생. 특정 비즈니스 요구사항 변경이 무관한 기능의 장애로 이어지는 높은 Regression 위험성 상존.

Technical Solution

  • Actor 기반 책임 정의를 통한 클래스 분리 및 Single Responsibility Principle 적용
  • User, UserRepository, EmailService로 역할을 세분화하여 변경 영향도 최소화
  • Action 클래스 도입을 통한 비즈니스 로직의 캡슐화 및 Controller의 HTTP 요청/응답 책임 한정
  • Event-Driven Architecture 기반의 Listener 구현으로 메인 프로세스와 부가 기능의 비동기적 분리
  • 기술 계층(SQL, HTML, Validation)의 혼재를 방지하는 Layered Architecture 지향

- 클래스 설명 시 'AND' 사용 여부를 통해 다중 책임 보유 여부 확인 - 변경 요청을 보내는 Actor(부서/사용자)가 서로 다른지 검토 - 기술 계층(SQL, HTML 등)이 한 클래스 내에 혼재되어 있는지 체크 - 무분별한 분리로 인한 Over-engineering 방지를 위해 'Don't Split Until It Hurts' 원칙 적용

원문 읽기