Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REFACTOR] 순환 의존을 해결한다. #46

Open
lcqff opened this issue Nov 27, 2024 · 0 comments
Open

[REFACTOR] 순환 의존을 해결한다. #46

lcqff opened this issue Nov 27, 2024 · 0 comments
Labels
🛠️ Refactor 리팩토링

Comments

@lcqff
Copy link
Member

lcqff commented Nov 27, 2024

💬 리팩터링 내용

image
현재 구조는 AlbumService와 TrackService가 위와 같이 순환의존하고 있는 상태입니다. (TrackController에서 AlbumService의 getByUuid를 조회하는 식으로 임시 해결해둠)

image
(위와 같이 Dto를 반환하고 있기 때문에 AlbumService가 TrackService를 의존하게 됩니다.)

순환의존이 없는 방향으로 리팩토링 합니다. 두가지 방법을 생각할 수 있습니다.

  • 방법 1. Service 계층 분리
    image
    Service 계층의 비지니스 로직과 CRUD를 분리합니다.

  • 방법 2. 다른 엔티티의 Repository 의존
    현재는 객체의 책임 분리를 위해 다른 엔티티의 Service에만 의존하도록 개발하고 있었습니다.
    AlbumService에서 TrackRepository를 의존하는 것으로 Track 데이터를 조회하도록 수정합니다.
    그러나 위 방식 같은 경우 AlbumService에서 순수한 Track 데이터에 접근하게 되기에 Track과 Album의 비즈니스 로직간 혼재가 생갈수 있습니다.

⚡️ AS-IS

⭐️ TO-BE

⏰ 예상 소요 시간 (선택)

이슈를 완료하기까지 예상되는 소요 시간을 분 or 시간 or 일 단위로 작성해주세요.

📁 참고 자료 (선택)

@lcqff lcqff added the 🛠️ Refactor 리팩토링 label Nov 27, 2024
@lcqff lcqff assigned lcqff and unassigned lcqff Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🛠️ Refactor 리팩토링
Projects
None yet
Development

No branches or pull requests

1 participant