의존성과 단일 책임 원칙(SRP) 의 고찰

KangWook·2025년 2월 11일
0

요즘 공부하면서 의존성과 단일 책임 원칙에 대한 고찰을 해보고자 한다

  1. 별도 메서드로 처리하는 경우
    장점:
    기존 클래스 내에서 해결 가능 → 새로운 의존성을 추가하지 않아도 됨
    코드 변경이 적고, 빠르게 적용 가능
    단점:
    해당 클래스의 책임이 커질 수 있음
    다른 기능과 결합도가 높아질 가능성이 있음 (특히 기존 클래스가 이미 많은 역할을 하고 있다면)
  2. 별도 클래스로 분리하는 경우
    장점:
    단일 책임 원칙(SRP)을 지킬 수 있음 → 유지보수성과 테스트 용이성이 증가
    관심사가 분리되므로 다른 클래스와의 결합도가 낮아짐
    단점:
    새로운 의존성이 생김 → 기존 클래스에서 새로운 클래스를 호출해야 함
    코드의 복잡성이 약간 증가할 수 있음
    언제 별도 클래스로 분리해야 할까?
    ✅ 기존 클래스가 이미 여러 역할을 하고 있다면? → 분리하는 것이 좋음
    ✅ 새로운 기능이 기존 기능과 명확히 구분되는 역할을 한다면? → 분리하는 것이 좋음
    ✅ 재사용 가능성이 높은 기능이라면? → 분리하는 것이 좋음
    ✅ 반복적으로 호출되는 코드라면? → 분리해서 관리하는 것이 좋음

반대로,
❌ 작은 기능이고 재사용 가능성이 낮다면? → 기존 클래스의 메서드로 처리해도 무방함
❌ 불필요한 분리로 코드가 오히려 복잡해진다면? → 메서드로 유지하는 것이 좋음

결국, 코드의 응집도(cohesion)와 결합도(coupling) 를 고려해서 결정하는 게 핵심

profile
꾸준히 성장하는 개발자

0개의 댓글