본문 바로가기

카테고리 없음

16일차 - 다른 도메인 비즈니스 로직 사용

특정 영화의 리뷰 목록을 조회하는 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단에서 호출하는 방향으로 구현할 예정이다.