[REFACOR] 회원 도메인 모델 구축 및 패키지 구조 재정립#7
Conversation
…main.member.auth 하위로 구조 이전
…efactor 하위로 구조 이전
…ber.auth 하위로 구조 이전
There was a problem hiding this comment.
Pull Request Overview
This PR initiates a refactoring of the member domain model by updating import paths to use the new refactored packages and reorganizing domain associations. Key changes include:
- Migrating BaseEntity and association imports from the legacy packages to the refactor packages.
- Updating member domain references to the new package structure.
- Removing redundant exception handler classes.
Reviewed Changes
Copilot reviewed 197 out of 197 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/main/java/com/example/spot/legacy/domain/Theme.java | Updated BaseEntity and MemberTheme imports to refactored packages. |
| src/main/java/com/example/spot/legacy/domain/StudyReason.java | Updated BaseEntity import and added new import for Member from refactor. |
| src/main/java/com/example/spot/legacy/domain/Region.java | Updated BaseEntity and PreferredRegion imports to refactored packages. |
| src/main/java/com/example/spot/legacy/domain/Quiz.java | Added import for Member from the refactored package. |
| src/main/java/com/example/spot/legacy/domain/PostScheduleRealTime.java | Updated BaseEntity import to refactored package. |
| src/main/java/com/example/spot/legacy/domain/PostScheduleLikes.java | Updated BaseEntity import to refactored package. |
| src/main/java/com/example/spot/legacy/domain/PostScheduleComments.java | Updated BaseEntity import to refactored package. |
| src/main/java/com/example/spot/legacy/domain/PostReport.java | Updated BaseEntity and Member imports to refactored packages. |
| src/main/java/com/example/spot/legacy/domain/PostImage.java | Updated BaseEntity import to refactored package. |
| src/main/java/com/example/spot/legacy/domain/PostComment.java | Updated BaseEntity and Member imports to refactored packages. |
| src/main/java/com/example/spot/legacy/domain/Post.java | Updated BaseEntity and Member imports to refactored packages. |
| src/main/java/com/example/spot/legacy/domain/Notification.java | Updated BaseEntity and Member imports to refactored packages. |
| src/main/java/com/example/spot/legacy/domain/MemberReport.java | Updated BaseEntity and Member imports to refactored packages. |
| src/main/java/com/example/spot/legacy/domain/LikedPostComment.java | Updated BaseEntity and Member imports to refactored packages. |
| src/main/java/com/example/spot/legacy/domain/LikedPost.java | Updated BaseEntity and Member imports to refactored packages. |
| src/main/java/com/example/spot/legacy/api/exception/handler/StudyHandler.java | Removed redundant exception handler. |
| src/main/java/com/example/spot/legacy/api/exception/handler/S3Handler.java | Removed redundant exception handler. |
| src/main/java/com/example/spot/legacy/api/exception/handler/PostHandler.java | Removed redundant exception handler. |
| src/main/java/com/example/spot/legacy/api/exception/handler/NotificationHandler.java | Removed redundant exception handler. |
| src/main/java/com/example/spot/legacy/api/exception/handler/MemberHandler.java | Removed redundant exception handler. |
|
읽어야 할 코드 양이 많아서 오늘 중으로 천천히 살펴보고 다시 코드리뷰 남기겠습니다...!! |
거의 다 위치만 바꾼거라서 깃허브 말구 IDE에서 보시면 더 편하실것같아요! |
dvlp-sy
left a comment
There was a problem hiding this comment.
다른 급한 일이 있어 처리하다 보니 리뷰가 늦어져 죄송합니다 ㅠㅠ
올려주신 코드 잘 읽어봤습니다...!! 역시 마커스 님은 항상 빠르고 정확하게 코드를 올려주시는군요..👍🏻 도메인 단위로 정리하니까 확실히 레거시 코드에 비해 구조가 깔끔하다는 느낌이 드네요~!
코드를 읽으면서 몇 가지 추가로 제안하고 싶은 사항이 있어서 코멘트 남깁니다.
-
Aggregate & Repository
Aggregate에 접근이 필요한 경우에는 도메인 일관성 유지를 위해 Root Entity를 통해 접근해야 하는 걸로 알고 있어서, 추후에 MemberTheme, PreferredRegion, PreferredStudy는 직접 접근할 수 없게 MemberRepository 하나로 관리하는 방향은 어떨까요?! 요 부분은 아마 마커스님도 알고 계시지만 아직 도메인 분리만 한 상황이라서 Repository까지는 따로 정리하지 않으신 거라는 생각이 드네욥..!! -
Controller -> 도메인 내의 Presentation 패키지로 이동 제안
이 부분은 보내주신 레퍼런스 소스코드 기반으로 생각해본 건데, Web 패키지 안에 Controller를 모아놓기보다 Controller도 도메인별로 분리시키는 게 어떨지 살포시 제안드려 봅니다. -
MemberTheme 도메인 이름
전에 마커스 님께서 말씀하셨던 것처럼 MemberTheme이라는 이름이 썩 직관적이지 않은 것 같아서 다른 하위 Entity들처럼 PreferredTheme으로 수정하는 것이 어떨지 제안드려 봅니닷
저도 얼른 도메인 분리해서 PR 올려놓도록 하겠습니다 !! 고생하셨어요 🔥
에고... 바쁘시면 천천히 해주셔도 괜찮습니다! 부담 안가지셔도 됩니당!
|
넵!! member 하위에 domain, application, presentation을 두는 방식 맞습니다 😃 |
#️⃣ 연관된 이슈
🔎 작업 내용
repository,service,web계층의 코드도 함께 적절하게 재구성했습니다.refactor.common패키지로 이동하여 구조를 명확히 정리했습니다.++ 아직 선호하는 스터디의
service,web계층의 코드(스터디 찜하기)는 건드리지 않았습니다! 한번에 옮기기에는 조금 고려할 부분이 많을 것 같아서 이 부분은 다음 단계에서 반영하려고 합니다.+++ 제가 한 번 해보니까 클래스 명 뒤에 V2는 굳이 안붙여도 될 것 같아요! 이런 느낌으로 리팩토링 해보는게 어떨까요?!
📷 스크린샷 (선택)
💬리뷰 요구사항 (선택)
저는 "애그리거트에 속한다"의 기준을 다음과 같이 생각하고 있습니다.
association의 경우, 어떤 도메인 엔티티의 의지(?)를 통해 생성/삭제되는가?위 기준으로 바라봤을 때, 선호 지역, 관심사 및 선호하는 스터디 이 3개가 Member 애그리거트에 속하는 구성요소라고 생각 했습니다.
이 부분에 대해서 동의 하시는지, 혹시 누락된 부분이 있는지 의견 남겨주시면 감사하겠습니다!