카테고리 없음
16일차 - 다른 도메인 비즈니스 로직 사용
khj4374
2022. 11. 7. 17:19
특정 영화의 리뷰 목록을 조회하는 api를 구현하다가 하나의 의문이 생겼다.
리뷰를 조회하는 비즈니스 로직은 ReviewService에서 구현하는게 맞는데,
영화 별 리뷰를 조회하는 로직은 MovieService에서 구현하는게 맞지 않을까?
싶은 생각이었다.
그 결과 다음처럼 코드를 구현했다.
//ReviewService.java
public List<ReviewSimpleResponse> getSimpleReviewsByMovieId(Long movieId) {
return ReviewConverter.toReviewSimpleResponse(
reviewRepository.findReviewsByMovieId(movieId));
}
//MovieService.java
public List<ReviewSimpleResponse> getMovieReviewsByMovieId(Long movieId) {
return reviewService.getSimpleReviewsByMovieId(movieId);
}
결과적으로 MovieService는 ReviewService에 의존해 있지만,
막상 로직은 단순히 ReviewService에서 구현한 것을 호출하는 것 밖에 되지 않았고,
컨트롤러단에서 ReviewService를 의존하는게 좀 더 자연스럽다는 결론이 났다.
이번 경우에는 단순한 호출이었지만 복잡한 로직일 경우에는 어떻게 해야될 지 의문이 들었다.
"같은 트랜잭션 내에서 수행되는지"로 잡고, 같을경우는 service단에서 호출하는 방향으로 구현할 예정이다.