-
Notifications
You must be signed in to change notification settings - Fork 8
refactor: entity 패키지를 도메인 기준으로 변경 #315
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: entity 패키지를 도메인 기준으로 변경 #315
Conversation
|
""" Walkthrough
Suggested reviewers
Tip ⚡️ Faster reviews with caching
Enjoy the performance boost—your workflow just got faster. 📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms (1)
✨ Finishing Touches
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (2)
src/test/java/com/example/solidconnection/university/fixture/UniversityFixtureBuilder.java (1)
3-4: 1. 피처 빌더 임포트 경로 업데이트
-Country및Region임포트 경로를 새로운 도메인 패키지로 적절히 수정했습니다.2. BaseEntity 패키지 위치 고려
-BaseEntity가 현재entity-common패키지에 남아있는 것이 적절한지 검토해주세요.src/main/java/com/example/solidconnection/country/domain/Country.java (1)
1-3: 1. 패키지 선언 및 도메인 구조 반영
-package선언을country.domain으로 변경해 도메인 계층을 명확히 분리했습니다.
-Region임포트를 추가해 연관 관계 설정을 최신 구조에 맞게 업데이트했습니다.2. 상위 패키지 설계 제안
-region.domain과country.domain을 하나의 상위 패키지(예:community) 아래에 묶어 응집도를 높이는 방안도 고려해보세요.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (21)
src/main/java/com/example/solidconnection/auth/service/EmailSignUpService.java(2 hunks)src/main/java/com/example/solidconnection/auth/service/SignUpService.java(3 hunks)src/main/java/com/example/solidconnection/auth/service/oauth/OAuthSignUpService.java(2 hunks)src/main/java/com/example/solidconnection/country/domain/Country.java(1 hunks)src/main/java/com/example/solidconnection/country/domain/InterestedCountry.java(1 hunks)src/main/java/com/example/solidconnection/country/repository/CountryRepository.java(1 hunks)src/main/java/com/example/solidconnection/country/repository/InterestedCountryRepository.java(1 hunks)src/main/java/com/example/solidconnection/region/domain/InterestedRegion.java(1 hunks)src/main/java/com/example/solidconnection/region/domain/Region.java(1 hunks)src/main/java/com/example/solidconnection/region/repository/InterestedRegionRepository.java(1 hunks)src/main/java/com/example/solidconnection/region/repository/RegionRepository.java(1 hunks)src/main/java/com/example/solidconnection/university/domain/University.java(1 hunks)src/test/java/com/example/solidconnection/country/fixture/CountryFixture.java(1 hunks)src/test/java/com/example/solidconnection/country/fixture/CountryFixtureBuilder.java(1 hunks)src/test/java/com/example/solidconnection/country/repository/CountryRepositoryForTest.java(1 hunks)src/test/java/com/example/solidconnection/region/fixture/RegionFixture.java(1 hunks)src/test/java/com/example/solidconnection/region/fixture/RegionFixtureBuilder.java(1 hunks)src/test/java/com/example/solidconnection/region/repository/RegionRepositoryForTest.java(1 hunks)src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java(1 hunks)src/test/java/com/example/solidconnection/university/fixture/UniversityFixtureBuilder.java(1 hunks)src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java(4 hunks)
🔇 Additional comments (29)
src/main/java/com/example/solidconnection/region/domain/InterestedRegion.java (1)
1-1: 1. 패키지 경로 리팩토링 완료
리팩토링을 통해com.example.solidconnection.entity에서region.domain으로 이동해 도메인별 응집도를 높였습니다.
2. 내부 로직 검증
클래스 내부의 JPA 어노테이션(@Entity,@Id,@ManyToOne)과 생성자는 변경 없이 올바르게 유지되었습니다.
3. 향후 고려사항
BaseEntity를entity-common패키지에 유지하는 것은 공통 속성 관리를 위해 적절하나, 도메인별 공통 기능이 확장되면 별도 공통 도메인 패키지로 분리하는 것도 검토해 보세요.src/main/java/com/example/solidconnection/country/domain/InterestedCountry.java (1)
1-1: 1. 패키지 이사 대성공!
-InterestedCountry가com.example.solidconnection.entity에서com.example.solidconnection.country.domain으로 무사히 이동했습니다.src/test/java/com/example/solidconnection/region/fixture/RegionFixture.java (1)
3-3: 1. 테스트 픽스처 임포트 이주!
-Region클래스의 경로가entity에서region.domain으로 깔끔하게 반영되었습니다.src/test/java/com/example/solidconnection/country/fixture/CountryFixture.java (1)
3-3: 1. Country 픽스처 임포트 정비!
-Country의 패키지 경로가entity에서country.domain으로 일관성 있게 업데이트되었습니다.src/test/java/com/example/solidconnection/region/fixture/RegionFixtureBuilder.java (1)
3-3: 1. 빌더 임포트 이주 완료!
-Region클래스의 레퍼런스가entity에서region.domain으로 올바르게 이동되었습니다.src/main/java/com/example/solidconnection/region/domain/Region.java (1)
1-1: 1. 메인 도메인 패키지 이동!
-Region클래스가com.example.solidconnection.entity에서com.example.solidconnection.region.domain으로 성공적으로 자리 잡았습니다.src/test/java/com/example/solidconnection/region/repository/RegionRepositoryForTest.java (1)
3-3: 1. 도메인 패키지 임포트 일관화
-Region클래스 임포트 경로를com.example.solidconnection.region.domain으로 업데이트해 구조 일관성을 유지했습니다.src/test/java/com/example/solidconnection/country/fixture/CountryFixtureBuilder.java (1)
3-4: 1. 피처 빌더 임포트 일관성
-Country와Region임포트 경로를 새로운 도메인 패키지로 동기화했습니다.src/main/java/com/example/solidconnection/country/repository/CountryRepository.java (2)
1-1: 패키지 구조 개선 👍도메인 기준으로 패키지 구조를 변경한 것은 좋은 리팩토링입니다. 이전의 일반적인
repositories패키지에서 더 구체적인country.repository로 변경함으로써 코드의 응집도가 향상되었습니다.
- 변경 사항:
com.example.solidconnection.repositories→com.example.solidconnection.country.repository로 패키지 변경
3-3: 임포트 경로 정상 업데이트 확인도메인 패키지 구조 변경에 맞게 엔티티 임포트 경로도 정확히 업데이트되었습니다.
- 변경 사항:
com.example.solidconnection.entity.Country→com.example.solidconnection.country.domain.Country로 임포트 경로 변경src/main/java/com/example/solidconnection/university/domain/University.java (1)
3-4: 임포트 경로 정상 업데이트 확인University 클래스에서 참조하는 Country와 Region 클래스의 패키지 경로가 새 도메인 구조에 맞게 잘 업데이트되었습니다.
- 변경 사항:
com.example.solidconnection.entity.Country→com.example.solidconnection.country.domain.Countrycom.example.solidconnection.entity.Region→com.example.solidconnection.region.domain.Regionsrc/main/java/com/example/solidconnection/region/repository/InterestedRegionRepository.java (2)
1-1: 패키지 구조 개선 👍Region 관련 리포지토리를 도메인 기준 패키지로 이동한 것은 좋은 리팩토링입니다. 이를 통해 코드의 구조적 명확성과 응집도가 향상되었습니다.
- 변경 사항:
com.example.solidconnection.repositories→com.example.solidconnection.region.repository로 패키지 변경
3-3: 임포트 경로 정상 업데이트 확인패키지 구조 변경에 맞게 엔티티 임포트 경로도 정확히 업데이트되었습니다.
- 변경 사항:
com.example.solidconnection.entity.InterestedRegion→com.example.solidconnection.region.domain.InterestedRegion로 임포트 경로 변경src/main/java/com/example/solidconnection/region/repository/RegionRepository.java (2)
1-1: 패키지 구조 개선 👍Region 관련 리포지토리를 도메인 기준 패키지로 이동한 것은 좋은 리팩토링입니다. 이를 통해 코드의 구조적 명확성과 응집도가 향상되었습니다.
- 변경 사항:
com.example.solidconnection.repositories→com.example.solidconnection.region.repository로 패키지 변경
3-3: 임포트 경로 정상 업데이트 확인패키지 구조 변경에 맞게 엔티티 임포트 경로도 정확히 업데이트되었습니다.
- 변경 사항:
com.example.solidconnection.entity.Region→com.example.solidconnection.region.domain.Region로 임포트 경로 변경src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java (4)
3-6: 임포트 경로 정상 업데이트 및 오타 수정 👍도메인 기준 패키지 구조 변경에 맞게 임포트 경로가 잘 업데이트되었으며,
InterestedCounty에서InterestedCountry로 오타도 수정되었습니다.
- 변경 사항:
- 임포트 경로 업데이트:
InterestedCountry,InterestedRegion,InterestedCountryRepository,InterestedRegionRepository모두 새 패키지 경로로 변경- 이름 오타 수정:
InterestedCounty→InterestedCountry로 수정
37-37: 변수명 오타 수정 확인리포지토리 변수명이 패키지 및 클래스명 변경에 맞게 정확히 수정되었습니다.
- 변경 사항:
interestedCountyRepository→interestedCountryRepository로 변수명 수정
71-71: 클래스명 오타 수정 확인Country/County 오타가 수정된 클래스명으로 올바르게 사용되고 있습니다.
- 변경 사항:
new InterestedCounty→new InterestedCountry로 생성자 호출 수정
90-90: 클래스명 오타 수정 확인Country/County 오타가 수정된 클래스명으로 올바르게 사용되고 있습니다.
- 변경 사항:
new InterestedCounty→new InterestedCountry로 생성자 호출 수정src/main/java/com/example/solidconnection/auth/service/oauth/OAuthSignUpService.java (2)
7-10: 1. 패키지 리팩토링에 따른 임포트 경로 업데이트
임포트 경로가country.repository와region.repository로 올바르게 변경되어 새로운 도메인 기준 패키지 구조를 충실히 반영하고 있습니다.
25-28: 2. 생성자 시그니처 및 슈퍼 호출 인자 일치
생성자 파라미터와super(...)호출 인자가countryRepository와interestedCountryRepository를 정확히 포함하여 일관성을 유지하고 있습니다.src/test/java/com/example/solidconnection/support/integration/BaseIntegrationTest.java (1)
9-16: 1. 통합 테스트 인프라의 패키지 임포트 업데이트
Country및Region도메인 클래스와 해당 리포지토리 임포트가country.domain,region.domain,country.repository,region.repository로 올바르게 변경되었습니다. 테스트 설정과 일관성을 유지합니다.src/main/java/com/example/solidconnection/auth/service/EmailSignUpService.java (2)
5-8: 1. 패키지 리팩토링에 따른 임포트 경로 업데이트
임포트 경로가country.repository와region.repository로 정확히 반영되어 있으며, 기존InterestedCountyRepository오타가InterestedCountryRepository로 일관되게 수정되었습니다.
23-25: 2. 생성자 및 슈퍼 호출 인자 조정
생성자 파라미터 리스트와super(...)호출이 새롭게 정리된 리포지토리 인스턴스를 정확히 전달하여 상위 클래스와 일관된 동작을 보장합니다.src/main/java/com/example/solidconnection/country/repository/InterestedCountryRepository.java (2)
1-4: 1. 패키지 위치 및 엔티티 임포트 경로 수정
인터페이스 패키지가country.repository로 이동되었으며,InterestedCountry엔티티 임포트가country.domain으로 변경되어 도메인 기준 구조를 충실히 반영하고 있습니다.
11-11: 2. 인터페이스 명칭 및 상속 구조 검증
인터페이스명이InterestedCountyRepository에서InterestedCountryRepository로 변경되어 오타가 제거되었고,JpaRepository<InterestedCountry, Long>를 올바르게 상속하고 있습니다.src/main/java/com/example/solidconnection/auth/service/SignUpService.java (3)
6-11: 1. 패키지 리팩토링에 따른 임포트 경로 업데이트
InterestedCountry,InterestedRegion도메인과 관련 레포지토리 임포트 경로가 새 도메인 기준 패키지(country.domain,region.domain,country.repository,region.repository)로 일관되게 변경되었습니다.
34-45: 2. 필드 선언 및 생성자 파라미터 정렬
interestedCountryRepository필드 선언과 생성자 파라미터, 필드 할당(this.interestedCountryRepository = interestedCountryRepository)이 일치하며, 오타가 완전히 제거되어 가독성과 일관성이 개선되었습니다.
84-84: 3. 관심 국가 저장 로직 연동 확인
saveInterestedCountry메서드에서 변경된interestedCountryRepository.saveAll(...)호출이 새로운 리포지토리를 정확히 사용하도록 반영되어 있습니다.
| package com.example.solidconnection.country.repository; | ||
|
|
||
| import com.example.solidconnection.entity.Country; | ||
| import com.example.solidconnection.country.domain.Country; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Verification agent
🧩 Analysis chain
1. 도메인 패키지 임포트 일관화
- Country 클래스 임포트 경로를 com.example.solidconnection.country.domain으로 수정해 도메인 기준 구조와 일치시켰습니다.
2. 잔여 레거시 인포트 확인 요청
- 프로젝트 전반에 com.example.solidconnection.entity 패키지 참조가 남아있는지 검색해주세요.
🏁 Script executed:
#!/bin/bash
# 레거시 엔티티 패키지 참조 검색
rg "import com\.example\.solidconnection\.entity"Length of output: 1038
🚨 잔여 레거시 엔티티 패키지 임포트 수정 요청
- 도메인 패키지 임포트 일관화가
com.example.solidconnection.country.domain으로 정상 적용된 것을 확인했습니다. - 아직 아래 파일들에서
com.example.solidconnection.entity패키지를 참조하고 있습니다. 도메인 기준 구조에 맞춰 임포트를 수정해 주세요:- src/main/java/com/example/solidconnection/news/domain/News.java
- src/main/java/com/example/solidconnection/university/repository/custom/UniversityFilterRepositoryImpl.java
- src/main/java/com/example/solidconnection/score/domain/GpaScore.java
- src/main/java/com/example/solidconnection/community/comment/domain/Comment.java
- src/main/java/com/example/solidconnection/score/domain/LanguageTestScore.java
- src/main/java/com/example/solidconnection/community/post/domain/Post.java
예시)
-import com.example.solidconnection.entity.common.BaseEntity;
+import com.example.solidconnection.common.BaseEntity;Committable suggestion skipped: line range outside the PR's diff.
관련 이슈
작업 내용
대학 관련 통합 테스트 데이터 정의 구조 개선에서 이야기 나온
를 반영했습니다.
특이 사항
리뷰 요구사항 (선택)
위백님께서 이런 의견을 주셨는데 어떻게 생각하시나요?
BaseEntity는 지금 entity - common에 있는데 그대로 납둬도 괜찮을까요?