TIL

Service의 의존성 관계 : Service간 의존이 좋은가? Repository 의존이 좋은가?

oceanflow 2025. 2. 24. 23:36

1. 서비스 간 의존성과 레포지토리 직접 의존의 판단 기준


(1) 비즈니스 로직의 복잡성

 

  • 레포지토리 직접 의존

    적합한 경우: 단순 CRUD 작업 (예: findById()로 엔티티 조회만 필요할 때)

    장점: 불필요한 계층을 거치지 않아 성능 최적화 가능, 코드 간결성 유지

 

  • 서비스 간 의존

    적합한 경우: 복잡한 비즈니스 로직 포함 (예: 조회 + 유효성 검증 + 이벤트 발행)

    장점: 코드 재사용성 향상, 트랜잭션 관리 용이

 

2. 서비스간 의존성을 가질 때의 장단점

 

장점: 재사용성, 트랜잭션 관리, 관심사 분리, 테스트 용이성

단점: 순환 참조, 결합도 증가, 테스트 복잡도 증가

 

추가로


의존성 방향성 관리가 필요하다.

서비스 A → 서비스 B → 서비스 C와 같이 단방향 의존성을 유지해야 순환 참조를 피할 수 있다.

순환 참조 발생 시 인터페이스 분리 또는 이벤트 기반 아키텍처로 해결 가능하다.



따라서,

 

단순 조회일때는 레포지토리를 직접 사용하고
조건: 단순 데이터 접근만 필요할 때

복잡한 로직일때는 서비스 간 의존성 + 인터페이스를 사용하는 것이 좋다.
조건: 유효성 검증, 이벤트 발행 등 추가 로직이 필요할 때

'TIL' 카테고리의 다른 글

아웃 소싱 프로젝트를 진행하며 고민했던 것들  (0) 2025.03.04
오늘 한 일  (0) 2025.02.26
HttpMessageConverter  (0) 2025.02.21
뉴스피드 프로젝트 후기  (0) 2025.02.20
일정 관리 앱을 만들며 어려웠던 부분  (0) 2025.02.13