You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
현재 구조는 AlbumService와 TrackService가 위와 같이 순환의존하고 있는 상태입니다. (TrackController에서 AlbumService의 getByUuid를 조회하는 식으로 임시 해결해둠)
(위와 같이 Dto를 반환하고 있기 때문에 AlbumService가 TrackService를 의존하게 됩니다.)
순환의존이 없는 방향으로 리팩토링 합니다. 두가지 방법을 생각할 수 있습니다.
방법 1. Service 계층 분리
Service 계층의 비지니스 로직과 CRUD를 분리합니다.
방법 2. 다른 엔티티의 Repository 의존
현재는 객체의 책임 분리를 위해 다른 엔티티의 Service에만 의존하도록 개발하고 있었습니다.
AlbumService에서 TrackRepository를 의존하는 것으로 Track 데이터를 조회하도록 수정합니다.
그러나 위 방식 같은 경우 AlbumService에서 순수한 Track 데이터에 접근하게 되기에 Track과 Album의 비즈니스 로직간 혼재가 생갈수 있습니다.
⚡️ AS-IS
⭐️ TO-BE
⏰ 예상 소요 시간 (선택)
이슈를 완료하기까지 예상되는 소요 시간을 분 or 시간 or 일 단위로 작성해주세요.
📁 참고 자료 (선택)
The text was updated successfully, but these errors were encountered:
💬 리팩터링 내용
현재 구조는 AlbumService와 TrackService가 위와 같이 순환의존하고 있는 상태입니다. (TrackController에서 AlbumService의 getByUuid를 조회하는 식으로 임시 해결해둠)
(위와 같이 Dto를 반환하고 있기 때문에 AlbumService가 TrackService를 의존하게 됩니다.)
순환의존이 없는 방향으로 리팩토링 합니다. 두가지 방법을 생각할 수 있습니다.
방법 1. Service 계층 분리
Service 계층의 비지니스 로직과 CRUD를 분리합니다.
방법 2. 다른 엔티티의 Repository 의존
현재는 객체의 책임 분리를 위해 다른 엔티티의 Service에만 의존하도록 개발하고 있었습니다.
AlbumService에서 TrackRepository를 의존하는 것으로 Track 데이터를 조회하도록 수정합니다.
그러나 위 방식 같은 경우 AlbumService에서 순수한 Track 데이터에 접근하게 되기에 Track과 Album의 비즈니스 로직간 혼재가 생갈수 있습니다.
⚡️ AS-IS
⭐️ TO-BE
⏰ 예상 소요 시간 (선택)
📁 참고 자료 (선택)
The text was updated successfully, but these errors were encountered: