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 |