From fe244b6de73bdcb7441ca9c0ef1fcf96696414e6 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:05:22 +0900 Subject: [PATCH 01/25] =?UTF-8?q?refactor:=20univ-apply-info=EB=A1=9C=20UR?= =?UTF-8?q?I=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UniversityController.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/example/solidconnection/university/controller/UniversityController.java b/src/main/java/com/example/solidconnection/university/controller/UniversityController.java index 6345876a9..8dc989694 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UniversityController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UniversityController.java @@ -25,7 +25,7 @@ import java.util.List; @RequiredArgsConstructor -@RequestMapping("/universities") +@RequestMapping("/univ-apply-infos") @RestController public class UniversityController { @@ -46,43 +46,43 @@ public ResponseEntity getUniversityRecommends( } @GetMapping("/like") - public ResponseEntity> getMyWishUniversity( + public ResponseEntity> getMyWishUniversity( // todo: wish 가 아니라 liked 로 변경 필요 - 코드 용어 통일 @AuthorizedUser SiteUser siteUser ) { List wishUniversities = myPageService.getWishUniversity(siteUser); return ResponseEntity.ok(wishUniversities); } - @GetMapping("/{universityInfoForApplyId}/like") + @GetMapping("/{univ-apply-info-id}/like") public ResponseEntity getIsLiked( @AuthorizedUser SiteUser siteUser, - @PathVariable Long universityInfoForApplyId + @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - IsLikeResponse isLiked = universityLikeService.getIsLiked(siteUser, universityInfoForApplyId); + IsLikeResponse isLiked = universityLikeService.getIsLiked(siteUser, univApplyInfoId); return ResponseEntity.ok(isLiked); } - @PostMapping("/{universityInfoForApplyId}/like") + @PostMapping("/{univ-apply-info-id}/like") public ResponseEntity addWishUniversity( @AuthorizedUser SiteUser siteUser, - @PathVariable Long universityInfoForApplyId + @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - LikeResultResponse likeResultResponse = universityLikeService.likeUniversity(siteUser, universityInfoForApplyId); + LikeResultResponse likeResultResponse = universityLikeService.likeUniversity(siteUser, univApplyInfoId); return ResponseEntity.ok(likeResultResponse); } - @DeleteMapping("/{universityInfoForApplyId}/like") + @DeleteMapping("/{univ-apply-info-id}/like") public ResponseEntity cancelWishUniversity( @AuthorizedUser SiteUser siteUser, - @PathVariable Long universityInfoForApplyId + @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - LikeResultResponse likeResultResponse = universityLikeService.cancelLikeUniversity(siteUser, universityInfoForApplyId); + LikeResultResponse likeResultResponse = universityLikeService.cancelLikeUniversity(siteUser, univApplyInfoId); return ResponseEntity.ok(likeResultResponse); } - @GetMapping("/{universityInfoForApplyId}") + @GetMapping("/{univ-apply-info-id}") public ResponseEntity getUniversityDetails( - @PathVariable Long universityInfoForApplyId + @PathVariable("univ-apply-info-id") Long universityInfoForApplyId ) { UniversityDetailResponse universityDetailResponse = universityQueryService.getUniversityDetail(universityInfoForApplyId); return ResponseEntity.ok(universityDetailResponse); From bd3e1f394f64cda5ac5377c1b3770392339d7119 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:19:32 +0900 Subject: [PATCH 02/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=BB=A8=ED=8A=B8?= =?UTF-8?q?=EB=A1=A4=EB=9F=AC=20=ED=95=A8=EC=88=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oller.java => UnivApplyInfoController.java} | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) rename src/main/java/com/example/solidconnection/university/controller/{UniversityController.java => UnivApplyInfoController.java} (88%) diff --git a/src/main/java/com/example/solidconnection/university/controller/UniversityController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java similarity index 88% rename from src/main/java/com/example/solidconnection/university/controller/UniversityController.java rename to src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index 8dc989694..d00feb692 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UniversityController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -27,7 +27,7 @@ @RequiredArgsConstructor @RequestMapping("/univ-apply-infos") @RestController -public class UniversityController { +public class UnivApplyInfoController { private final UniversityQueryService universityQueryService; private final UniversityLikeService universityLikeService; @@ -35,7 +35,7 @@ public class UniversityController { private final MyPageService myPageService; @GetMapping("/recommend") - public ResponseEntity getUniversityRecommends( + public ResponseEntity getUnivApplyInfoRecommends( @AuthorizedUser(required = false) SiteUser siteUser ) { if (siteUser == null) { @@ -46,7 +46,7 @@ public ResponseEntity getUniversityRecommends( } @GetMapping("/like") - public ResponseEntity> getMyWishUniversity( // todo: wish 가 아니라 liked 로 변경 필요 - 코드 용어 통일 + public ResponseEntity> getMyWishUnivApplyInfo( /* todo: wish 가 아니라 liked 로 변경 필요 - 코드 용어 통일 */ @AuthorizedUser SiteUser siteUser ) { List wishUniversities = myPageService.getWishUniversity(siteUser); @@ -63,7 +63,7 @@ public ResponseEntity getIsLiked( } @PostMapping("/{univ-apply-info-id}/like") - public ResponseEntity addWishUniversity( + public ResponseEntity addWishUnivApplyInfo( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { @@ -72,7 +72,7 @@ public ResponseEntity addWishUniversity( } @DeleteMapping("/{univ-apply-info-id}/like") - public ResponseEntity cancelWishUniversity( + public ResponseEntity cancelWishUnivApplyInfo( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { @@ -81,16 +81,16 @@ public ResponseEntity cancelWishUniversity( } @GetMapping("/{univ-apply-info-id}") - public ResponseEntity getUniversityDetails( - @PathVariable("univ-apply-info-id") Long universityInfoForApplyId + public ResponseEntity getUnivApplyInfoDetails( + @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - UniversityDetailResponse universityDetailResponse = universityQueryService.getUniversityDetail(universityInfoForApplyId); + UniversityDetailResponse universityDetailResponse = universityQueryService.getUniversityDetail(univApplyInfoId); return ResponseEntity.ok(universityDetailResponse); } // todo return타입 UniversityInfoForApplyPreviewResponses로 추후 수정 필요 @GetMapping("/search") - public ResponseEntity> searchUniversity( + public ResponseEntity> searchUnivApplyInfo( @RequestParam(required = false, defaultValue = "") String region, @RequestParam(required = false, defaultValue = "") List keyword, @RequestParam(required = false, defaultValue = "") LanguageTestType testType, From ed9f84987f6b54941477917cd8d3543fd03f30a8 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:27:14 +0900 Subject: [PATCH 03/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20recommendService=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UnivApplyInfoController.java | 16 ++++----- ...GeneralUnivApplyInfoRecommendService.java} | 8 ++--- ...ce.java => UnivApplyInfoQueryService.java} | 12 +++---- ...ava => UnivApplyInfoRecommendService.java} | 22 ++++++------ ...ralUnivApplyInfoRecommendServiceTest.java} | 12 +++---- ...ava => UnivApplyInfoQueryServiceTest.java} | 26 +++++++------- ...=> UnivApplyInfoRecommendServiceTest.java} | 34 +++++++++---------- 7 files changed, 65 insertions(+), 65 deletions(-) rename src/main/java/com/example/solidconnection/university/service/{GeneralUniversityRecommendService.java => GeneralUnivApplyInfoRecommendService.java} (78%) rename src/main/java/com/example/solidconnection/university/service/{UniversityQueryService.java => UnivApplyInfoQueryService.java} (85%) rename src/main/java/com/example/solidconnection/university/service/{UniversityRecommendService.java => UnivApplyInfoRecommendService.java} (80%) rename src/test/java/com/example/solidconnection/university/service/{GeneralUniversityRecommendServiceTest.java => GeneralUnivApplyInfoRecommendServiceTest.java} (84%) rename src/test/java/com/example/solidconnection/university/service/{UniversityQueryServiceTest.java => UnivApplyInfoQueryServiceTest.java} (86%) rename src/test/java/com/example/solidconnection/university/service/{UniversityRecommendServiceTest.java => UnivApplyInfoRecommendServiceTest.java} (83%) diff --git a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index d00feb692..27b5120ab 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -10,8 +10,8 @@ import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import com.example.solidconnection.university.dto.UniversityRecommendsResponse; import com.example.solidconnection.university.service.UniversityLikeService; -import com.example.solidconnection.university.service.UniversityQueryService; -import com.example.solidconnection.university.service.UniversityRecommendService; +import com.example.solidconnection.university.service.UnivApplyInfoQueryService; +import com.example.solidconnection.university.service.UnivApplyInfoRecommendService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; @@ -29,9 +29,9 @@ @RestController public class UnivApplyInfoController { - private final UniversityQueryService universityQueryService; + private final UnivApplyInfoQueryService univApplyInfoQueryService; private final UniversityLikeService universityLikeService; - private final UniversityRecommendService universityRecommendService; + private final UnivApplyInfoRecommendService univApplyInfoRecommendService; private final MyPageService myPageService; @GetMapping("/recommend") @@ -39,9 +39,9 @@ public ResponseEntity getUnivApplyInfoRecommends( @AuthorizedUser(required = false) SiteUser siteUser ) { if (siteUser == null) { - return ResponseEntity.ok(universityRecommendService.getGeneralRecommends()); + return ResponseEntity.ok(univApplyInfoRecommendService.getGeneralRecommends()); } else { - return ResponseEntity.ok(universityRecommendService.getPersonalRecommends(siteUser)); + return ResponseEntity.ok(univApplyInfoRecommendService.getPersonalRecommends(siteUser)); } } @@ -84,7 +84,7 @@ public ResponseEntity cancelWishUnivApplyInfo( public ResponseEntity getUnivApplyInfoDetails( @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - UniversityDetailResponse universityDetailResponse = universityQueryService.getUniversityDetail(univApplyInfoId); + UniversityDetailResponse universityDetailResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(univApplyInfoId); return ResponseEntity.ok(universityDetailResponse); } @@ -97,7 +97,7 @@ public ResponseEntity> searchUnivApp @RequestParam(required = false, defaultValue = "") String testScore ) { List universityInfoForApplyPreviewResponse - = universityQueryService.searchUniversity(region, keyword, testType, testScore).universityInfoForApplyPreviewResponses(); + = univApplyInfoQueryService.searchUnivApplyInfo(region, keyword, testType, testScore).universityInfoForApplyPreviewResponses(); return ResponseEntity.ok(universityInfoForApplyPreviewResponse); } } diff --git a/src/main/java/com/example/solidconnection/university/service/GeneralUniversityRecommendService.java b/src/main/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendService.java similarity index 78% rename from src/main/java/com/example/solidconnection/university/service/GeneralUniversityRecommendService.java rename to src/main/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendService.java index af2921c9a..3d028b90a 100644 --- a/src/main/java/com/example/solidconnection/university/service/GeneralUniversityRecommendService.java +++ b/src/main/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendService.java @@ -11,11 +11,11 @@ import java.util.List; -import static com.example.solidconnection.university.service.UniversityRecommendService.RECOMMEND_UNIVERSITY_NUM; +import static com.example.solidconnection.university.service.UnivApplyInfoRecommendService.RECOMMEND_UNIV_APPLY_INFO_NUM; @Service @RequiredArgsConstructor -public class GeneralUniversityRecommendService { +public class GeneralUnivApplyInfoRecommendService { /* * 해당 시기에 열리는 대학교들 중 랜덤으로 선택해서 목록을 구성한다. @@ -23,13 +23,13 @@ public class GeneralUniversityRecommendService { private final UniversityInfoForApplyRepository universityInfoForApplyRepository; @Getter - private List recommendUniversities; + private List generalRecommends; @Value("${university.term}") public String term; @EventListener(ApplicationReadyEvent.class) public void init() { - recommendUniversities = universityInfoForApplyRepository.findRandomByTerm(term, RECOMMEND_UNIVERSITY_NUM); + generalRecommends = universityInfoForApplyRepository.findRandomByTerm(term, RECOMMEND_UNIV_APPLY_INFO_NUM); } } diff --git a/src/main/java/com/example/solidconnection/university/service/UniversityQueryService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java similarity index 85% rename from src/main/java/com/example/solidconnection/university/service/UniversityQueryService.java rename to src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java index 5c4415396..a24c3cb82 100644 --- a/src/main/java/com/example/solidconnection/university/service/UniversityQueryService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java @@ -18,7 +18,7 @@ @RequiredArgsConstructor @Service -public class UniversityQueryService { +public class UnivApplyInfoQueryService { private final UniversityInfoForApplyRepository universityInfoForApplyRepository; private final UniversityFilterRepositoryImpl universityFilterRepository; @@ -31,10 +31,10 @@ public class UniversityQueryService { * - 대학교(University) 정보와 대학 지원 정보(UniversityInfoForApply) 정보를 조합하여 반환한다. * */ @Transactional(readOnly = true) - @ThunderingHerdCaching(key = "university:{0}", cacheManager = "customCacheManager", ttlSec = 86400) - public UniversityDetailResponse getUniversityDetail(Long universityInfoForApplyId) { + @ThunderingHerdCaching(key = "univApplyInfo:{0}", cacheManager = "customCacheManager", ttlSec = 86400) + public UniversityDetailResponse getUnivApplyInfoDetail(Long univApplyInfoId) { UnivApplyInfo univApplyInfo - = universityInfoForApplyRepository.getUniversityInfoForApplyById(universityInfoForApplyId); + = universityInfoForApplyRepository.getUniversityInfoForApplyById(univApplyInfoId); University university = univApplyInfo.getUniversity(); return UniversityDetailResponse.of(university, univApplyInfo); @@ -48,8 +48,8 @@ public UniversityDetailResponse getUniversityDetail(Long universityInfoForApplyI * - 언어 시험 점수는 합격 최소 점수보다 높은 것이 조건이다. * */ @Transactional(readOnly = true) - @ThunderingHerdCaching(key = "university:{0}:{1}:{2}:{3}", cacheManager = "customCacheManager", ttlSec = 86400) - public UniversityInfoForApplyPreviewResponses searchUniversity( + @ThunderingHerdCaching(key = "univApplyInfo:{0}:{1}:{2}:{3}", cacheManager = "customCacheManager", ttlSec = 86400) + public UniversityInfoForApplyPreviewResponses searchUnivApplyInfo( String regionCode, List keywords, LanguageTestType testType, String testScore) { return new UniversityInfoForApplyPreviewResponses(universityFilterRepository diff --git a/src/main/java/com/example/solidconnection/university/service/UniversityRecommendService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java similarity index 80% rename from src/main/java/com/example/solidconnection/university/service/UniversityRecommendService.java rename to src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java index 94447316d..ffa9f626b 100644 --- a/src/main/java/com/example/solidconnection/university/service/UniversityRecommendService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java @@ -17,12 +17,12 @@ @RequiredArgsConstructor @Service -public class UniversityRecommendService { +public class UnivApplyInfoRecommendService { - public static final int RECOMMEND_UNIVERSITY_NUM = 6; + public static final int RECOMMEND_UNIV_APPLY_INFO_NUM = 6; private final UniversityInfoForApplyRepository universityInfoForApplyRepository; - private final GeneralUniversityRecommendService generalUniversityRecommendService; + private final GeneralUnivApplyInfoRecommendService generalUnivApplyInfoRecommendService; @Value("${university.term}") private String term; @@ -38,25 +38,25 @@ public UniversityRecommendsResponse getPersonalRecommends(SiteUser siteUser) { // 맞춤 추천 대학교를 불러온다. List personalRecommends = universityInfoForApplyRepository .findUniversityInfoForAppliesBySiteUsersInterestedCountryOrRegionAndTerm(siteUser, term); - List trimmedRecommendUniversities - = personalRecommends.subList(0, Math.min(RECOMMEND_UNIVERSITY_NUM, personalRecommends.size())); + List trimmedRecommends + = personalRecommends.subList(0, Math.min(RECOMMEND_UNIV_APPLY_INFO_NUM, personalRecommends.size())); Collections.shuffle(trimmedRecommendUniversities); // 맞춤 추천 대학교의 수가 6개보다 적다면, 일반 추천 대학교를 부족한 수 만큼 불러온다. - if (trimmedRecommendUniversities.size() < RECOMMEND_UNIVERSITY_NUM) { - trimmedRecommendUniversities.addAll(getGeneralRecommendsExcludingSelected(trimmedRecommendUniversities)); + if (trimmedRecommends.size() < RECOMMEND_UNIV_APPLY_INFO_NUM) { + trimmedRecommends.addAll(getGeneralRecommendsExcludingSelected(trimmedRecommends)); } - return new UniversityRecommendsResponse(trimmedRecommendUniversities.stream() + return new UniversityRecommendsResponse(trimmedRecommends.stream() .map(UniversityInfoForApplyPreviewResponse::from) .toList()); } private List getGeneralRecommendsExcludingSelected(List alreadyPicked) { - List generalRecommend = new ArrayList<>(generalUniversityRecommendService.getRecommendUniversities()); + List generalRecommend = new ArrayList<>(generalUnivApplyInfoRecommendService.getGeneralRecommends()); generalRecommend.removeAll(alreadyPicked); Collections.shuffle(generalRecommend); - return generalRecommend.subList(0, RECOMMEND_UNIVERSITY_NUM - alreadyPicked.size()); + return generalRecommend.subList(0, RECOMMEND_UNIV_APPLY_INFO_NUM - alreadyPicked.size()); } /* @@ -65,7 +65,7 @@ private List getGeneralRecommendsExcludingSelected(List generalRecommends = new ArrayList<>(generalUniversityRecommendService.getRecommendUniversities()); + List generalRecommends = new ArrayList<>(generalUnivApplyInfoRecommendService.getGeneralRecommends()); return new UniversityRecommendsResponse(generalRecommends.stream() .map(UniversityInfoForApplyPreviewResponse::from) .toList()); diff --git a/src/test/java/com/example/solidconnection/university/service/GeneralUniversityRecommendServiceTest.java b/src/test/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendServiceTest.java similarity index 84% rename from src/test/java/com/example/solidconnection/university/service/GeneralUniversityRecommendServiceTest.java rename to src/test/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendServiceTest.java index 5152dfbb2..0bc654625 100644 --- a/src/test/java/com/example/solidconnection/university/service/GeneralUniversityRecommendServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendServiceTest.java @@ -11,16 +11,16 @@ import java.util.List; -import static com.example.solidconnection.university.service.UniversityRecommendService.RECOMMEND_UNIVERSITY_NUM; +import static com.example.solidconnection.university.service.UnivApplyInfoRecommendService.RECOMMEND_UNIV_APPLY_INFO_NUM; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertAll; @TestContainerSpringBootTest @DisplayName("공통 추천 대학 서비스 테스트") -class GeneralUniversityRecommendServiceTest { +class GeneralUnivApplyInfoRecommendServiceTest { @Autowired - private GeneralUniversityRecommendService generalUniversityRecommendService; + private GeneralUnivApplyInfoRecommendService generalUnivApplyInfoRecommendService; @Autowired private UnivApplyInfoFixture univApplyInfoFixture; @@ -40,20 +40,20 @@ void setUp() { univApplyInfoFixture.그라츠공과대학_지원_정보(); univApplyInfoFixture.린츠_카톨릭대학_지원_정보(); univApplyInfoFixture.메이지대학_지원_정보(); - generalUniversityRecommendService.init(); + generalUnivApplyInfoRecommendService.init(); } @Test void 모집_시기의_대학들_중에서_랜덤하게_N개를_추천_목록으로_구성한다() { // given - List universities = generalUniversityRecommendService.getRecommendUniversities(); + List universities = generalUnivApplyInfoRecommendService.getGeneralRecommends(); // when & then assertAll( () -> assertThat(universities) .extracting("term") .allMatch(term::equals), - () -> assertThat(universities).hasSize(RECOMMEND_UNIVERSITY_NUM) + () -> assertThat(universities).hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) ); } } diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java similarity index 86% rename from src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java rename to src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java index fbad2d174..1847dbc62 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java @@ -26,10 +26,10 @@ @TestContainerSpringBootTest @DisplayName("대학교 조회 서비스 테스트") -class UniversityQueryServiceTest { +class UnivApplyInfoQueryServiceTest { @Autowired - private UniversityQueryService universityQueryService; + private UnivApplyInfoQueryService univApplyInfoQueryService; @SpyBean private UniversityFilterRepository universityFilterRepository; @@ -49,7 +49,7 @@ class UniversityQueryServiceTest { UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); // when - UniversityDetailResponse response = universityQueryService.getUniversityDetail(괌대학_A_지원_정보.getId()); + UniversityDetailResponse response = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); // then assertThat(response.id()).isEqualTo(괌대학_A_지원_정보.getId()); @@ -61,8 +61,8 @@ class UniversityQueryServiceTest { UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); // when - UniversityDetailResponse firstResponse = universityQueryService.getUniversityDetail(괌대학_A_지원_정보.getId()); - UniversityDetailResponse secondResponse = universityQueryService.getUniversityDetail(괌대학_A_지원_정보.getId()); + UniversityDetailResponse firstResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); + UniversityDetailResponse secondResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); // then assertThat(firstResponse).isEqualTo(secondResponse); @@ -76,7 +76,7 @@ class UniversityQueryServiceTest { // when & then assertThatExceptionOfType(RuntimeException.class) - .isThrownBy(() -> universityQueryService.getUniversityDetail(invalidUniversityInfoForApplyId)) + .isThrownBy(() -> univApplyInfoQueryService.getUnivApplyInfoDetail(invalidUniversityInfoForApplyId)) .havingRootCause() .isInstanceOf(CustomException.class) .withMessage(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND.getMessage()); @@ -93,7 +93,7 @@ class UniversityQueryServiceTest { UnivApplyInfo 메이지대학_지원_정보 = univApplyInfoFixture.메이지대학_지원_정보(); // when - UniversityInfoForApplyPreviewResponses response = universityQueryService.searchUniversity( + UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( null, List.of(), null, null); // then @@ -120,9 +120,9 @@ class UniversityQueryServiceTest { // when UniversityInfoForApplyPreviewResponses firstResponse = - universityQueryService.searchUniversity(regionCode, keywords, testType, testScore); + univApplyInfoQueryService.searchUnivApplyInfo(regionCode, keywords, testType, testScore); UniversityInfoForApplyPreviewResponses secondResponse = - universityQueryService.searchUniversity(regionCode, keywords, testType, testScore); + univApplyInfoQueryService.searchUnivApplyInfo(regionCode, keywords, testType, testScore); // then assertThat(firstResponse).isEqualTo(secondResponse); @@ -140,7 +140,7 @@ class UniversityQueryServiceTest { univApplyInfoFixture.메이지대학_지원_정보(); // when - UniversityInfoForApplyPreviewResponses response = universityQueryService.searchUniversity( + UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( "AMERICAS", List.of(), null, null); // then @@ -156,7 +156,7 @@ class UniversityQueryServiceTest { UnivApplyInfo 메이지대학_지원_정보 = univApplyInfoFixture.메이지대학_지원_정보(); // when - UniversityInfoForApplyPreviewResponses response = universityQueryService.searchUniversity( + UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( null, List.of("라", "일본"), null, null); // then @@ -178,7 +178,7 @@ class UniversityQueryServiceTest { languageRequirementFixture.토익_900(괌대학_B_지원_정보); // when - UniversityInfoForApplyPreviewResponses response = universityQueryService.searchUniversity( + UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( null, List.of(), LanguageTestType.TOEFL_IBT, "70"); // then @@ -196,7 +196,7 @@ class UniversityQueryServiceTest { languageRequirementFixture.토플_70(서던덴마크대학교_지원_정보); // when - UniversityInfoForApplyPreviewResponses response = universityQueryService.searchUniversity( + UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( "EUROPE", List.of(), LanguageTestType.TOEFL_IBT, "70"); // then diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java similarity index 83% rename from src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java rename to src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java index a1bfba10b..828d8162a 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityRecommendServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java @@ -20,15 +20,15 @@ import java.util.List; -import static com.example.solidconnection.university.service.UniversityRecommendService.RECOMMEND_UNIVERSITY_NUM; +import static com.example.solidconnection.university.service.UnivApplyInfoRecommendService.RECOMMEND_UNIV_APPLY_INFO_NUM; import static org.assertj.core.api.Assertions.assertThat; @TestContainerSpringBootTest @DisplayName("대학교 추천 서비스 테스트") -class UniversityRecommendServiceTest { +class UnivApplyInfoRecommendServiceTest { @Autowired - private UniversityRecommendService universityRecommendService; + private UnivApplyInfoRecommendService univApplyInfoRecommendService; @Autowired private InterestedRegionRepository interestedRegionRepository; @@ -37,7 +37,7 @@ class UniversityRecommendServiceTest { private InterestedCountryRepository interestedCountryRepository; @Autowired - private GeneralUniversityRecommendService generalUniversityRecommendService; + private GeneralUnivApplyInfoRecommendService generalUnivApplyInfoRecommendService; @Autowired private SiteUserFixture siteUserFixture; @@ -72,7 +72,7 @@ void setUp() { univApplyInfoFixture.그라츠공과대학_지원_정보(); univApplyInfoFixture.린츠_카톨릭대학_지원_정보(); univApplyInfoFixture.메이지대학_지원_정보(); - generalUniversityRecommendService.init(); + generalUnivApplyInfoRecommendService.init(); } @Test @@ -81,11 +81,11 @@ void setUp() { interestedRegionRepository.save(new InterestedRegion(user, regionFixture.영미권())); // when - UniversityRecommendsResponse response = universityRecommendService.getPersonalRecommends(user); + UniversityRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM) + .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsAll(List.of( UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보), @@ -100,11 +100,11 @@ void setUp() { interestedCountryRepository.save(new InterestedCountry(user, countryFixture.덴마크())); // when - UniversityRecommendsResponse response = universityRecommendService.getPersonalRecommends(user); + UniversityRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM) + .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsAll(List.of( UniversityInfoForApplyPreviewResponse.from(서던덴마크대학교_지원_정보), UniversityInfoForApplyPreviewResponse.from(코펜하겐IT대학_지원_정보) @@ -118,11 +118,11 @@ void setUp() { interestedCountryRepository.save(new InterestedCountry(user, countryFixture.덴마크())); // when - UniversityRecommendsResponse response = universityRecommendService.getPersonalRecommends(user); + UniversityRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM) + .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsExactlyInAnyOrder( UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보), @@ -136,13 +136,13 @@ void setUp() { @Test void 관심사_미설정_사용자는_일반_추천_대학을_조회한다() { // when - UniversityRecommendsResponse response = universityRecommendService.getPersonalRecommends(user); + UniversityRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM) + .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsExactlyInAnyOrderElementsOf( - generalUniversityRecommendService.getRecommendUniversities().stream() + generalUnivApplyInfoRecommendService.getGeneralRecommends().stream() .map(UniversityInfoForApplyPreviewResponse::from) .toList() ); @@ -151,13 +151,13 @@ void setUp() { @Test void 일반_추천_대학을_조회한다() { // when - UniversityRecommendsResponse response = universityRecommendService.getGeneralRecommends(); + UniversityRecommendsResponse response = univApplyInfoRecommendService.getGeneralRecommends(); // then assertThat(response.recommendedUniversities()) - .hasSize(RECOMMEND_UNIVERSITY_NUM) + .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsExactlyInAnyOrderElementsOf( - generalUniversityRecommendService.getRecommendUniversities().stream() + generalUnivApplyInfoRecommendService.getGeneralRecommends().stream() .map(UniversityInfoForApplyPreviewResponse::from) .toList() ); From 348edb46fd55fd78cb0e387e55787c9e03b45474 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:29:37 +0900 Subject: [PATCH 04/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=A0=88=ED=8F=AC?= =?UTF-8?q?=EC=A7=80=ED=86=A0=EB=A6=AC=20=EC=9D=B4=EB=A6=84=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ApplicationQueryService.java | 6 +++--- ...plyRepository.java => UnivApplyInfoRepository.java} | 2 +- .../service/GeneralUnivApplyInfoRecommendService.java | 6 +++--- .../university/service/UnivApplyInfoQueryService.java | 6 +++--- .../service/UnivApplyInfoRecommendService.java | 6 +++--- .../university/service/UniversityLikeService.java | 10 +++++----- .../fixture/UnivApplyInfoFixtureBuilder.java | 8 ++++---- .../service/UnivApplyInfoQueryServiceTest.java | 6 +++--- 8 files changed, 25 insertions(+), 25 deletions(-) rename src/main/java/com/example/solidconnection/university/repository/{UniversityInfoForApplyRepository.java => UnivApplyInfoRepository.java} (97%) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index dbfa28990..82ff77f44 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -8,7 +8,7 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; +import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import com.example.solidconnection.university.repository.custom.UniversityFilterRepositoryImpl; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; @@ -31,7 +31,7 @@ public class ApplicationQueryService { private final ApplicationRepository applicationRepository; - private final UniversityInfoForApplyRepository universityInfoForApplyRepository; + private final UnivApplyInfoRepository univApplyInfoRepository; private final UniversityFilterRepositoryImpl universityFilterRepository; @Value("${university.term}") @@ -71,7 +71,7 @@ public ApplicationsResponse getApplicantsByUserApplications(SiteUser siteUser) { } List applications = applicationRepository.findAllByUnivApplyInfoIds(universityInfoForApplyIds, VerifyStatus.APPROVED, term); - List universityInfosForApply = universityInfoForApplyRepository.findAllByUniversityIds(universityInfoForApplyIds); + List universityInfosForApply = univApplyInfoRepository.findAllByUniversityIds(universityInfoForApplyIds); return classifyApplicationsByChoice(universityInfosForApply, applications, siteUser); } diff --git a/src/main/java/com/example/solidconnection/university/repository/UniversityInfoForApplyRepository.java b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java similarity index 97% rename from src/main/java/com/example/solidconnection/university/repository/UniversityInfoForApplyRepository.java rename to src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java index 1ef541334..e6b10c0df 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UniversityInfoForApplyRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java @@ -15,7 +15,7 @@ import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; @Repository -public interface UniversityInfoForApplyRepository extends JpaRepository { +public interface UnivApplyInfoRepository extends JpaRepository { Optional findByIdAndTerm(Long id, String term); diff --git a/src/main/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendService.java b/src/main/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendService.java index 3d028b90a..1835f4ed0 100644 --- a/src/main/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendService.java +++ b/src/main/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendService.java @@ -1,7 +1,7 @@ package com.example.solidconnection.university.service; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; +import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; @@ -20,7 +20,7 @@ public class GeneralUnivApplyInfoRecommendService { /* * 해당 시기에 열리는 대학교들 중 랜덤으로 선택해서 목록을 구성한다. * */ - private final UniversityInfoForApplyRepository universityInfoForApplyRepository; + private final UnivApplyInfoRepository univApplyInfoRepository; @Getter private List generalRecommends; @@ -30,6 +30,6 @@ public class GeneralUnivApplyInfoRecommendService { @EventListener(ApplicationReadyEvent.class) public void init() { - generalRecommends = universityInfoForApplyRepository.findRandomByTerm(term, RECOMMEND_UNIV_APPLY_INFO_NUM); + generalRecommends = univApplyInfoRepository.findRandomByTerm(term, RECOMMEND_UNIV_APPLY_INFO_NUM); } } diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java index a24c3cb82..437543b9d 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java @@ -7,7 +7,7 @@ import com.example.solidconnection.university.dto.UniversityDetailResponse; import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponses; -import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; +import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import com.example.solidconnection.university.repository.custom.UniversityFilterRepositoryImpl; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; @@ -20,7 +20,7 @@ @Service public class UnivApplyInfoQueryService { - private final UniversityInfoForApplyRepository universityInfoForApplyRepository; + private final UnivApplyInfoRepository univApplyInfoRepository; private final UniversityFilterRepositoryImpl universityFilterRepository; @Value("${university.term}") @@ -34,7 +34,7 @@ public class UnivApplyInfoQueryService { @ThunderingHerdCaching(key = "univApplyInfo:{0}", cacheManager = "customCacheManager", ttlSec = 86400) public UniversityDetailResponse getUnivApplyInfoDetail(Long univApplyInfoId) { UnivApplyInfo univApplyInfo - = universityInfoForApplyRepository.getUniversityInfoForApplyById(univApplyInfoId); + = univApplyInfoRepository.getUniversityInfoForApplyById(univApplyInfoId); University university = univApplyInfo.getUniversity(); return UniversityDetailResponse.of(university, univApplyInfo); diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java index ffa9f626b..685191bbf 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java @@ -5,7 +5,7 @@ import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import com.example.solidconnection.university.dto.UniversityRecommendsResponse; -import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; +import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -21,7 +21,7 @@ public class UnivApplyInfoRecommendService { public static final int RECOMMEND_UNIV_APPLY_INFO_NUM = 6; - private final UniversityInfoForApplyRepository universityInfoForApplyRepository; + private final UnivApplyInfoRepository univApplyInfoRepository; private final GeneralUnivApplyInfoRecommendService generalUnivApplyInfoRecommendService; @Value("${university.term}") @@ -36,7 +36,7 @@ public class UnivApplyInfoRecommendService { @Transactional(readOnly = true) public UniversityRecommendsResponse getPersonalRecommends(SiteUser siteUser) { // 맞춤 추천 대학교를 불러온다. - List personalRecommends = universityInfoForApplyRepository + List personalRecommends = univApplyInfoRepository .findUniversityInfoForAppliesBySiteUsersInterestedCountryOrRegionAndTerm(siteUser, term); List trimmedRecommends = personalRecommends.subList(0, Math.min(RECOMMEND_UNIV_APPLY_INFO_NUM, personalRecommends.size())); diff --git a/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java b/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java index 7544ed7a8..90237cf93 100644 --- a/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java @@ -7,7 +7,7 @@ import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.IsLikeResponse; import com.example.solidconnection.university.dto.LikeResultResponse; -import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; +import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -25,7 +25,7 @@ public class UniversityLikeService { public static final String LIKE_SUCCESS_MESSAGE = "LIKE_SUCCESS"; public static final String LIKE_CANCELED_MESSAGE = "LIKE_CANCELED"; - private final UniversityInfoForApplyRepository universityInfoForApplyRepository; + private final UnivApplyInfoRepository univApplyInfoRepository; private final LikedUniversityRepository likedUniversityRepository; @Value("${university.term}") @@ -36,7 +36,7 @@ public class UniversityLikeService { * */ @Transactional public LikeResultResponse likeUniversity(SiteUser siteUser, Long universityInfoForApplyId) { - UnivApplyInfo univApplyInfo = universityInfoForApplyRepository.getUniversityInfoForApplyById(universityInfoForApplyId); + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUniversityInfoForApplyById(universityInfoForApplyId); Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUniversity.isPresent()) { @@ -56,7 +56,7 @@ public LikeResultResponse likeUniversity(SiteUser siteUser, Long universityInfoF * */ @Transactional public LikeResultResponse cancelLikeUniversity(SiteUser siteUser, long universityInfoForApplyId) throws CustomException { - UnivApplyInfo univApplyInfo = universityInfoForApplyRepository.getUniversityInfoForApplyById(universityInfoForApplyId); + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUniversityInfoForApplyById(universityInfoForApplyId); Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUniversity.isEmpty()) { @@ -72,7 +72,7 @@ public LikeResultResponse cancelLikeUniversity(SiteUser siteUser, long universit * */ @Transactional(readOnly = true) public IsLikeResponse getIsLiked(SiteUser siteUser, Long universityInfoForApplyId) { - UnivApplyInfo univApplyInfo = universityInfoForApplyRepository.getUniversityInfoForApplyById(universityInfoForApplyId); + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUniversityInfoForApplyById(universityInfoForApplyId); boolean isLike = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo).isPresent(); return new IsLikeResponse(isLike); } diff --git a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java index 048389d49..1771b7fa8 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java +++ b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java @@ -2,7 +2,7 @@ import com.example.solidconnection.university.domain.University; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; +import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.boot.test.context.TestComponent; @@ -15,14 +15,14 @@ @RequiredArgsConstructor public class UnivApplyInfoFixtureBuilder { - private final UniversityInfoForApplyRepository universityInfoForApplyRepository; + private final UnivApplyInfoRepository univApplyInfoRepository; private String term; private String koreanName; private University university; public UnivApplyInfoFixtureBuilder universityInfoForApply() { - return new UnivApplyInfoFixtureBuilder(universityInfoForApplyRepository); + return new UnivApplyInfoFixtureBuilder(univApplyInfoRepository); } public UnivApplyInfoFixtureBuilder term(String term) { @@ -48,6 +48,6 @@ public UnivApplyInfo create() { "detailsForAccommodation", "detailsForEnglishCourse", "details", new HashSet<>(), university ); - return universityInfoForApplyRepository.save(univApplyInfo); + return univApplyInfoRepository.save(univApplyInfo); } } diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java index 1847dbc62..817471f83 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java @@ -9,7 +9,7 @@ import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponses; import com.example.solidconnection.university.fixture.LanguageRequirementFixture; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; -import com.example.solidconnection.university.repository.UniversityInfoForApplyRepository; +import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import com.example.solidconnection.university.repository.custom.UniversityFilterRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -35,7 +35,7 @@ class UnivApplyInfoQueryServiceTest { private UniversityFilterRepository universityFilterRepository; @SpyBean - private UniversityInfoForApplyRepository universityInfoForApplyRepository; + private UnivApplyInfoRepository univApplyInfoRepository; @Autowired private UnivApplyInfoFixture univApplyInfoFixture; @@ -66,7 +66,7 @@ class UnivApplyInfoQueryServiceTest { // then assertThat(firstResponse).isEqualTo(secondResponse); - then(universityInfoForApplyRepository).should(times(1)).getUniversityInfoForApplyById(괌대학_A_지원_정보.getId()); + then(univApplyInfoRepository).should(times(1)).getUniversityInfoForApplyById(괌대학_A_지원_정보.getId()); } @Test From 9b5c63e59fad5887e6d262724ce3c57dd001aa50 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:31:12 +0900 Subject: [PATCH 05/25] =?UTF-8?q?refactor:=20JPQL=20alias=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/UnivApplyInfoRepository.java | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java index e6b10c0df..2ccd41a56 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java @@ -22,17 +22,17 @@ public interface UnivApplyInfoRepository extends JpaRepository findFirstByKoreanNameAndTerm(String koreanName, String term); @Query(""" - SELECT uifa - FROM UnivApplyInfo uifa - WHERE uifa.university IN :universities - AND uifa.term = :term + SELECT uai + FROM UnivApplyInfo uai + WHERE uai.university IN :universities + AND uai.term = :term """) List findByUniversitiesAndTerm(@Param("universities") List universities, @Param("term") String term); @Query(""" - SELECT uifa - FROM UnivApplyInfo uifa - JOIN University u ON uifa.university = u + SELECT uai + FROM UnivApplyInfo uai + JOIN University u ON uai.university = u WHERE (u.country.code IN ( SELECT c.code FROM InterestedCountry ic @@ -45,7 +45,7 @@ OR u.region.code IN ( JOIN ir.region r WHERE ir.siteUser = :siteUser )) - AND uifa.term = :term + AND uai.term = :term """) List findUniversityInfoForAppliesBySiteUsersInterestedCountryOrRegionAndTerm(@Param("siteUser") SiteUser siteUser, @Param("term") String term); @@ -64,19 +64,19 @@ default UnivApplyInfo getUniversityInfoForApplyById(Long id) { } @Query(""" - SELECT DISTINCT uifa - FROM UnivApplyInfo uifa - JOIN FETCH uifa.university u + SELECT DISTINCT uai + FROM UnivApplyInfo uai + JOIN FETCH uai.university u JOIN FETCH u.country c JOIN FETCH u.region r - WHERE uifa.id IN :ids + WHERE uai.id IN :ids """) List findAllByUniversityIds(@Param("ids") List ids); @Query(""" - SELECT DISTINCT uifa - FROM UnivApplyInfo uifa - JOIN FETCH uifa.university u + SELECT DISTINCT uai + FROM UnivApplyInfo uai + JOIN FETCH uai.university u JOIN FETCH u.country c JOIN FETCH u.region r WHERE u.id IN :universityIds From 373093d2a1a794aef76d617faf7483f03db28c96 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:31:42 +0900 Subject: [PATCH 06/25] =?UTF-8?q?refactor:=20JPA=20=ED=91=9C=EC=A4=80?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=ED=95=A8=EC=88=98=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../university/repository/UnivApplyInfoRepository.java | 4 ++-- .../university/service/UnivApplyInfoRecommendService.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java index 2ccd41a56..3bad6ac3d 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java @@ -47,13 +47,13 @@ OR u.region.code IN ( )) AND uai.term = :term """) - List findUniversityInfoForAppliesBySiteUsersInterestedCountryOrRegionAndTerm(@Param("siteUser") SiteUser siteUser, @Param("term") String term); + List findAllBySiteUsersInterestedCountryOrRegionAndTerm(@Param("siteUser") SiteUser siteUser, @Param("term") String term); @Query(value = """ SELECT * FROM university_info_for_apply WHERE term = :term - ORDER BY RAND() + ORDER BY RAND() LIMIT :limitNum """, nativeQuery = true) List findRandomByTerm(@Param("term") String term, @Param("limitNum") int limitNum); diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java index 685191bbf..6d4e96568 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java @@ -37,10 +37,10 @@ public class UnivApplyInfoRecommendService { public UniversityRecommendsResponse getPersonalRecommends(SiteUser siteUser) { // 맞춤 추천 대학교를 불러온다. List personalRecommends = univApplyInfoRepository - .findUniversityInfoForAppliesBySiteUsersInterestedCountryOrRegionAndTerm(siteUser, term); + .findAllBySiteUsersInterestedCountryOrRegionAndTerm(siteUser, term); List trimmedRecommends = personalRecommends.subList(0, Math.min(RECOMMEND_UNIV_APPLY_INFO_NUM, personalRecommends.size())); - Collections.shuffle(trimmedRecommendUniversities); + Collections.shuffle(trimmedRecommends); // 맞춤 추천 대학교의 수가 6개보다 적다면, 일반 추천 대학교를 부족한 수 만큼 불러온다. if (trimmedRecommends.size() < RECOMMEND_UNIV_APPLY_INFO_NUM) { From ded3bb40a4adcd5bd5f175983aecd01cc79a819f Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:33:34 +0900 Subject: [PATCH 07/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=A0=88=ED=8F=AC?= =?UTF-8?q?=EC=A7=80=ED=86=A0=EB=A6=AC=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/repository/ApplicationRepository.java | 8 ++++---- .../application/service/ApplicationQueryService.java | 4 ++-- .../university/repository/UnivApplyInfoRepository.java | 2 +- .../university/repository/UniversityRepository.java | 4 ++-- ...Repository.java => UnivApplyInfoFilterRepository.java} | 2 +- ...ryImpl.java => UnivApplyInfoFilterRepositoryImpl.java} | 4 ++-- .../university/service/UnivApplyInfoQueryService.java | 6 +++--- .../university/service/UniversityLikeService.java | 6 +++--- .../university/service/UnivApplyInfoQueryServiceTest.java | 8 ++++---- 9 files changed, 22 insertions(+), 22 deletions(-) rename src/main/java/com/example/solidconnection/university/repository/custom/{UniversityFilterRepository.java => UnivApplyInfoFilterRepository.java} (91%) rename src/main/java/com/example/solidconnection/university/repository/custom/{UniversityFilterRepositoryImpl.java => UnivApplyInfoFilterRepositoryImpl.java} (97%) diff --git a/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java b/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java index 0cbf1cf68..9a7754896 100644 --- a/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java +++ b/src/main/java/com/example/solidconnection/application/repository/ApplicationRepository.java @@ -23,14 +23,14 @@ public interface ApplicationRepository extends JpaRepository SELECT a FROM Application a JOIN FETCH a.siteUser - WHERE (a.firstChoiceUnivApplyInfoId IN :universityIds - OR a.secondChoiceUnivApplyInfoId IN :universityIds - OR a.thirdChoiceUnivApplyInfoId IN :universityIds) + WHERE (a.firstChoiceUnivApplyInfoId IN :univApplyInfoIds + OR a.secondChoiceUnivApplyInfoId IN :univApplyInfoIds + OR a.thirdChoiceUnivApplyInfoId IN :univApplyInfoIds) AND a.verifyStatus = :status AND a.term = :term AND a.isDelete = false """) - List findAllByUnivApplyInfoIds(@Param("universityIds") List universityIds, @Param("status") VerifyStatus status, @Param("term") String term); + List findAllByUnivApplyInfoIds(@Param("univApplyInfoIds") List univApplyInfoIds, @Param("status") VerifyStatus status, @Param("term") String term); @Query(""" SELECT a diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 82ff77f44..d3f4fd01e 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -9,7 +9,7 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; -import com.example.solidconnection.university.repository.custom.UniversityFilterRepositoryImpl; +import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepositoryImpl; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -32,7 +32,7 @@ public class ApplicationQueryService { private final ApplicationRepository applicationRepository; private final UnivApplyInfoRepository univApplyInfoRepository; - private final UniversityFilterRepositoryImpl universityFilterRepository; + private final UnivApplyInfoFilterRepositoryImpl universityFilterRepository; @Value("${university.term}") public String term; diff --git a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java index 3bad6ac3d..99020cd06 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java @@ -58,7 +58,7 @@ ORDER BY RAND() """, nativeQuery = true) List findRandomByTerm(@Param("term") String term, @Param("limitNum") int limitNum); - default UnivApplyInfo getUniversityInfoForApplyById(Long id) { + default UnivApplyInfo getUnivApplyInfoById(Long id) { return findById(id) .orElseThrow(() -> new CustomException(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND)); } diff --git a/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java b/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java index b19285469..0c57813e1 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java @@ -2,7 +2,7 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.university.domain.University; -import com.example.solidconnection.university.repository.custom.UniversityFilterRepository; +import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -13,7 +13,7 @@ import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_NOT_FOUND; @Repository -public interface UniversityRepository extends JpaRepository, UniversityFilterRepository { +public interface UniversityRepository extends JpaRepository, UnivApplyInfoFilterRepository { @Query("SELECT u FROM University u WHERE u.country.code IN :countryCodes OR u.region.code IN :regionCodes") List findByCountryCodeInOrRegionCodeIn(@Param("countryCodes") List countryCodes, @Param("regionCodes") List regionCodes); diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UniversityFilterRepository.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java similarity index 91% rename from src/main/java/com/example/solidconnection/university/repository/custom/UniversityFilterRepository.java rename to src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java index f3c9767b9..98dd8ac17 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UniversityFilterRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java @@ -5,7 +5,7 @@ import java.util.List; -public interface UniversityFilterRepository { +public interface UnivApplyInfoFilterRepository { List findByRegionCodeAndKeywords(String regionCode, List keywords); diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UniversityFilterRepositoryImpl.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java similarity index 97% rename from src/main/java/com/example/solidconnection/university/repository/custom/UniversityFilterRepositoryImpl.java rename to src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java index ee8416b9c..37ccc87f5 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UniversityFilterRepositoryImpl.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java @@ -18,12 +18,12 @@ import java.util.List; @Repository -public class UniversityFilterRepositoryImpl implements UniversityFilterRepository { +public class UnivApplyInfoFilterRepositoryImpl implements UnivApplyInfoFilterRepository { private final JPAQueryFactory queryFactory; @Autowired - public UniversityFilterRepositoryImpl(EntityManager em) { + public UnivApplyInfoFilterRepositoryImpl(EntityManager em) { this.queryFactory = new JPAQueryFactory(em); } diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java index 437543b9d..026129dc4 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java @@ -8,7 +8,7 @@ import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponses; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; -import com.example.solidconnection.university.repository.custom.UniversityFilterRepositoryImpl; +import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepositoryImpl; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -21,7 +21,7 @@ public class UnivApplyInfoQueryService { private final UnivApplyInfoRepository univApplyInfoRepository; - private final UniversityFilterRepositoryImpl universityFilterRepository; + private final UnivApplyInfoFilterRepositoryImpl universityFilterRepository; @Value("${university.term}") public String term; @@ -34,7 +34,7 @@ public class UnivApplyInfoQueryService { @ThunderingHerdCaching(key = "univApplyInfo:{0}", cacheManager = "customCacheManager", ttlSec = 86400) public UniversityDetailResponse getUnivApplyInfoDetail(Long univApplyInfoId) { UnivApplyInfo univApplyInfo - = univApplyInfoRepository.getUniversityInfoForApplyById(univApplyInfoId); + = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); University university = univApplyInfo.getUniversity(); return UniversityDetailResponse.of(university, univApplyInfo); diff --git a/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java b/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java index 90237cf93..86e3b801b 100644 --- a/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java @@ -36,7 +36,7 @@ public class UniversityLikeService { * */ @Transactional public LikeResultResponse likeUniversity(SiteUser siteUser, Long universityInfoForApplyId) { - UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUniversityInfoForApplyById(universityInfoForApplyId); + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(universityInfoForApplyId); Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUniversity.isPresent()) { @@ -56,7 +56,7 @@ public LikeResultResponse likeUniversity(SiteUser siteUser, Long universityInfoF * */ @Transactional public LikeResultResponse cancelLikeUniversity(SiteUser siteUser, long universityInfoForApplyId) throws CustomException { - UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUniversityInfoForApplyById(universityInfoForApplyId); + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(universityInfoForApplyId); Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUniversity.isEmpty()) { @@ -72,7 +72,7 @@ public LikeResultResponse cancelLikeUniversity(SiteUser siteUser, long universit * */ @Transactional(readOnly = true) public IsLikeResponse getIsLiked(SiteUser siteUser, Long universityInfoForApplyId) { - UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUniversityInfoForApplyById(universityInfoForApplyId); + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(universityInfoForApplyId); boolean isLike = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo).isPresent(); return new IsLikeResponse(isLike); } diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java index 817471f83..4efe8e64b 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java @@ -10,7 +10,7 @@ import com.example.solidconnection.university.fixture.LanguageRequirementFixture; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; -import com.example.solidconnection.university.repository.custom.UniversityFilterRepository; +import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -32,7 +32,7 @@ class UnivApplyInfoQueryServiceTest { private UnivApplyInfoQueryService univApplyInfoQueryService; @SpyBean - private UniversityFilterRepository universityFilterRepository; + private UnivApplyInfoFilterRepository univApplyInfoFilterRepository; @SpyBean private UnivApplyInfoRepository univApplyInfoRepository; @@ -66,7 +66,7 @@ class UnivApplyInfoQueryServiceTest { // then assertThat(firstResponse).isEqualTo(secondResponse); - then(univApplyInfoRepository).should(times(1)).getUniversityInfoForApplyById(괌대학_A_지원_정보.getId()); + then(univApplyInfoRepository).should(times(1)).getUnivApplyInfoById(괌대학_A_지원_정보.getId()); } @Test @@ -126,7 +126,7 @@ class UnivApplyInfoQueryServiceTest { // then assertThat(firstResponse).isEqualTo(secondResponse); - then(universityFilterRepository).should(times(1)) + then(univApplyInfoFilterRepository).should(times(1)) .findByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm( regionCode, keywords, testType, testScore, term); } From 27c2079f26de50436f212cfa3d7a4392a80fcc47 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:35:20 +0900 Subject: [PATCH 08/25] =?UTF-8?q?refactor:=20JPA=20=ED=91=9C=EC=A4=80?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=ED=95=A8=EC=88=98=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ApplicationQueryService.java | 2 +- .../repository/custom/UnivApplyInfoFilterRepository.java | 4 ++-- .../repository/custom/UnivApplyInfoFilterRepositoryImpl.java | 4 ++-- .../university/service/UnivApplyInfoQueryService.java | 2 +- .../university/service/UnivApplyInfoQueryServiceTest.java | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index d3f4fd01e..0b2f14455 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -41,7 +41,7 @@ public class ApplicationQueryService { @Transactional(readOnly = true) public ApplicationsResponse getApplicants(SiteUser siteUser, String regionCode, String keyword) { // 1. 대학 지원 정보 필터링 (regionCode, keyword) - List univApplyInfos = universityFilterRepository.findByRegionCodeAndKeywords(regionCode, List.of(keyword)); + List univApplyInfos = universityFilterRepository.findAllByRegionCodeAndKeywords(regionCode, List.of(keyword)); if (univApplyInfos.isEmpty()) { return new ApplicationsResponse(List.of(), List.of(), List.of()); } diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java index 98dd8ac17..588bfbf9f 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepository.java @@ -7,8 +7,8 @@ public interface UnivApplyInfoFilterRepository { - List findByRegionCodeAndKeywords(String regionCode, List keywords); + List findAllByRegionCodeAndKeywords(String regionCode, List keywords); - List findByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm( + List findAllByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm( String regionCode, List keywords, LanguageTestType testType, String testScore, String term); } diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java index 37ccc87f5..a358343b6 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java @@ -28,7 +28,7 @@ public UnivApplyInfoFilterRepositoryImpl(EntityManager em) { } @Override - public List findByRegionCodeAndKeywords(String regionCode, List keywords) { + public List findAllByRegionCodeAndKeywords(String regionCode, List keywords) { QUnivApplyInfo univApplyInfo = QUnivApplyInfo.univApplyInfo; QUniversity university = QUniversity.university; QCountry country = QCountry.country; @@ -74,7 +74,7 @@ private BooleanExpression createKeywordCondition(StringPath namePath, List findByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm( + public List findAllByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm( String regionCode, List keywords, LanguageTestType testType, String testScore, String term) { QUniversity university = QUniversity.university; QCountry country = QCountry.country; diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java index 026129dc4..1300d9f3a 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java @@ -53,7 +53,7 @@ public UniversityInfoForApplyPreviewResponses searchUnivApplyInfo( String regionCode, List keywords, LanguageTestType testType, String testScore) { return new UniversityInfoForApplyPreviewResponses(universityFilterRepository - .findByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm(regionCode, keywords, testType, testScore, term) + .findAllByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm(regionCode, keywords, testType, testScore, term) .stream() .map(UniversityInfoForApplyPreviewResponse::from) .toList()); diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java index 4efe8e64b..80bf3e1d5 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java @@ -127,7 +127,7 @@ class UnivApplyInfoQueryServiceTest { // then assertThat(firstResponse).isEqualTo(secondResponse); then(univApplyInfoFilterRepository).should(times(1)) - .findByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm( + .findAllByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm( regionCode, keywords, testType, testScore, term); } From 3d5c0b40ebf242b54eb08fe681bdbc22c6d94aa8 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:36:17 +0900 Subject: [PATCH 09/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EB=B0=98?= =?UTF-8?q?=EC=98=81=ED=95=98=EB=8F=84=EB=A1=9D=20JPQL=20=EB=B3=84?= =?UTF-8?q?=EC=B9=AD=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/custom/UnivApplyInfoFilterRepositoryImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java index a358343b6..50c9bcf67 100644 --- a/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java +++ b/src/main/java/com/example/solidconnection/university/repository/custom/UnivApplyInfoFilterRepositoryImpl.java @@ -94,7 +94,7 @@ public List findAllByRegionCodeAndKeywordsAndLanguageTestTypeAndT if (testScore == null || testScore.isEmpty()) { if (testType != null) { return filteredUnivApplyInfo.stream() - .filter(uifa -> uifa.getLanguageRequirements().stream() + .filter(uai -> uai.getLanguageRequirements().stream() .anyMatch(lr -> lr.getLanguageTestType().equals(testType))) .toList(); } @@ -102,7 +102,7 @@ public List findAllByRegionCodeAndKeywordsAndLanguageTestTypeAndT } return filteredUnivApplyInfo.stream() - .filter(uifa -> compareMyTestScoreToMinPassScore(uifa, testType, testScore) >= 0) + .filter(uai -> compareMyTestScoreToMinPassScore(uai, testType, testScore) >= 0) .toList(); } From 46cdeda910c1e49d84b39f4278e5d7b061758adf Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:37:29 +0900 Subject: [PATCH 10/25] =?UTF-8?q?refactor:=20=EC=9E=98=EB=AA=BB=EB=90=98?= =?UTF-8?q?=EC=96=B4=EC=9E=88=EB=8D=98=20=EC=83=81=EC=86=8D=20=EA=B4=80?= =?UTF-8?q?=EA=B3=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - University와 UniversityInformationForApply의 혼용으로 발생한 문제가 있었다. - UnivApplyInfo 를 적용하며 발견했고, 바로잡았다. --- .../university/repository/UnivApplyInfoRepository.java | 3 ++- .../university/repository/UniversityRepository.java | 3 +-- .../university/service/UnivApplyInfoQueryService.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java index 99020cd06..3f25a60c9 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java @@ -4,6 +4,7 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.domain.University; +import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -15,7 +16,7 @@ import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; @Repository -public interface UnivApplyInfoRepository extends JpaRepository { +public interface UnivApplyInfoRepository extends JpaRepository, UnivApplyInfoFilterRepository { Optional findByIdAndTerm(Long id, String term); diff --git a/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java b/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java index 0c57813e1..b5a9adb59 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UniversityRepository.java @@ -2,7 +2,6 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.university.domain.University; -import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; @@ -13,7 +12,7 @@ import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_NOT_FOUND; @Repository -public interface UniversityRepository extends JpaRepository, UnivApplyInfoFilterRepository { +public interface UniversityRepository extends JpaRepository { @Query("SELECT u FROM University u WHERE u.country.code IN :countryCodes OR u.region.code IN :regionCodes") List findByCountryCodeInOrRegionCodeIn(@Param("countryCodes") List countryCodes, @Param("regionCodes") List regionCodes); diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java index 1300d9f3a..7ad7a0ae4 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java @@ -21,7 +21,7 @@ public class UnivApplyInfoQueryService { private final UnivApplyInfoRepository univApplyInfoRepository; - private final UnivApplyInfoFilterRepositoryImpl universityFilterRepository; + private final UnivApplyInfoFilterRepositoryImpl universityFilterRepository; // todo: 구현체 숨기고 univApplyInfoRepository만 사용하도록 @Value("${university.term}") public String term; From 2e3719b4a14807c5a62af94d61ed87fbd0251567 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 13:41:18 +0900 Subject: [PATCH 11/25] =?UTF-8?q?refactor:=20=EC=A2=8B=EC=95=84=EC=9A=94?= =?UTF-8?q?=ED=95=9C=20=EB=8C=80=ED=95=99=20=EB=8F=84=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LikedUniversity -> LikedUnivApplyInfo --- .../repository/LikedUniversityRepository.java | 8 ++++---- .../siteuser/service/MyPageService.java | 4 ++-- ...University.java => LikedUnivApplyInfo.java} | 6 ++++-- .../service/UniversityLikeService.java | 10 +++++----- .../migration/V17__rename_like_university.sql | 1 + .../siteuser/service/MyPageServiceTest.java | 14 +++++++------- .../UniversityLikeRepositoryTest.java | 18 +++++++++--------- .../service/UniversityLikeServiceTest.java | 6 +++--- 8 files changed, 35 insertions(+), 32 deletions(-) rename src/main/java/com/example/solidconnection/university/domain/{LikedUniversity.java => LikedUnivApplyInfo.java} (89%) create mode 100644 src/main/resources/db/migration/V17__rename_like_university.sql diff --git a/src/main/java/com/example/solidconnection/siteuser/repository/LikedUniversityRepository.java b/src/main/java/com/example/solidconnection/siteuser/repository/LikedUniversityRepository.java index f0d328c0a..d45f111fe 100644 --- a/src/main/java/com/example/solidconnection/siteuser/repository/LikedUniversityRepository.java +++ b/src/main/java/com/example/solidconnection/siteuser/repository/LikedUniversityRepository.java @@ -1,18 +1,18 @@ package com.example.solidconnection.siteuser.repository; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.university.domain.LikedUniversity; +import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; import java.util.Optional; -public interface LikedUniversityRepository extends JpaRepository { +public interface LikedUniversityRepository extends JpaRepository { - List findAllBySiteUser_Id(long siteUserId); + List findAllBySiteUser_Id(long siteUserId); int countBySiteUser_Id(long siteUserId); - Optional findBySiteUserAndUnivApplyInfo(SiteUser siteUser, UnivApplyInfo univApplyInfo); + Optional findBySiteUserAndUnivApplyInfo(SiteUser siteUser, UnivApplyInfo univApplyInfo); } diff --git a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java index 7e22fd4bf..81bbeb04c 100644 --- a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java +++ b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java @@ -8,7 +8,7 @@ import com.example.solidconnection.siteuser.dto.MyPageResponse; import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; -import com.example.solidconnection.university.domain.LikedUniversity; +import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -95,7 +95,7 @@ private boolean isDefaultProfileImage(String profileImageUrl) { * */ @Transactional(readOnly = true) public List getWishUniversity(SiteUser siteUser) { - List likedUniversities = likedUniversityRepository.findAllBySiteUser_Id(siteUser.getId()); + List likedUniversities = likedUniversityRepository.findAllBySiteUser_Id(siteUser.getId()); return likedUniversities.stream() .map(likedUniversity -> UniversityInfoForApplyPreviewResponse.from(likedUniversity.getUnivApplyInfo())) .toList(); diff --git a/src/main/java/com/example/solidconnection/university/domain/LikedUniversity.java b/src/main/java/com/example/solidconnection/university/domain/LikedUnivApplyInfo.java similarity index 89% rename from src/main/java/com/example/solidconnection/university/domain/LikedUniversity.java rename to src/main/java/com/example/solidconnection/university/domain/LikedUnivApplyInfo.java index 036346d5a..08612fa42 100644 --- a/src/main/java/com/example/solidconnection/university/domain/LikedUniversity.java +++ b/src/main/java/com/example/solidconnection/university/domain/LikedUnivApplyInfo.java @@ -19,13 +19,15 @@ @Builder @AllArgsConstructor @NoArgsConstructor -@Table(uniqueConstraints = { +@Table( + name = "liked_university_info_for_apply", + uniqueConstraints = { @UniqueConstraint( name = "uk_liked_university_site_user_id_university_info_for_apply_id", columnNames = {"site_user_id", "university_info_for_apply_id"} ) }) -public class LikedUniversity { +public class LikedUnivApplyInfo { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java b/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java index 86e3b801b..719092974 100644 --- a/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java @@ -3,7 +3,7 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; -import com.example.solidconnection.university.domain.LikedUniversity; +import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.IsLikeResponse; import com.example.solidconnection.university.dto.LikeResultResponse; @@ -38,16 +38,16 @@ public class UniversityLikeService { public LikeResultResponse likeUniversity(SiteUser siteUser, Long universityInfoForApplyId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(universityInfoForApplyId); - Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); + Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUniversity.isPresent()) { throw new CustomException(ALREADY_LIKED_UNIVERSITY); } - LikedUniversity likedUniversity = LikedUniversity.builder() + LikedUnivApplyInfo likedUnivApplyInfo = LikedUnivApplyInfo.builder() .univApplyInfo(univApplyInfo) .siteUser(siteUser) .build(); - likedUniversityRepository.save(likedUniversity); + likedUniversityRepository.save(likedUnivApplyInfo); return new LikeResultResponse(LIKE_SUCCESS_MESSAGE); } @@ -58,7 +58,7 @@ public LikeResultResponse likeUniversity(SiteUser siteUser, Long universityInfoF public LikeResultResponse cancelLikeUniversity(SiteUser siteUser, long universityInfoForApplyId) throws CustomException { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(universityInfoForApplyId); - Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); + Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUniversity.isEmpty()) { throw new CustomException(NOT_LIKED_UNIVERSITY); } diff --git a/src/main/resources/db/migration/V17__rename_like_university.sql b/src/main/resources/db/migration/V17__rename_like_university.sql new file mode 100644 index 000000000..1d244157a --- /dev/null +++ b/src/main/resources/db/migration/V17__rename_like_university.sql @@ -0,0 +1 @@ +ALTER TABLE liked_university RENAME liked_university_info_for_apply; diff --git a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java index 59e0d6455..ebfa61980 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java @@ -13,7 +13,7 @@ import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; -import com.example.solidconnection.university.domain.LikedUniversity; +import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import org.junit.jupiter.api.Assertions; @@ -193,13 +193,13 @@ void setUp() { } private int createLikedUniversities(SiteUser testUser) { - LikedUniversity likedUniversity1 = new LikedUniversity(null, univApplyInfoFixture.괌대학_A_지원_정보(), testUser); - LikedUniversity likedUniversity2 = new LikedUniversity(null, univApplyInfoFixture.메이지대학_지원_정보(), testUser); - LikedUniversity likedUniversity3 = new LikedUniversity(null, univApplyInfoFixture.코펜하겐IT대학_지원_정보(), testUser); + LikedUnivApplyInfo likedUnivApplyInfo1 = new LikedUnivApplyInfo(null, univApplyInfoFixture.괌대학_A_지원_정보(), testUser); + LikedUnivApplyInfo likedUnivApplyInfo2 = new LikedUnivApplyInfo(null, univApplyInfoFixture.메이지대학_지원_정보(), testUser); + LikedUnivApplyInfo likedUnivApplyInfo3 = new LikedUnivApplyInfo(null, univApplyInfoFixture.코펜하겐IT대학_지원_정보(), testUser); - likedUniversityRepository.save(likedUniversity1); - likedUniversityRepository.save(likedUniversity2); - likedUniversityRepository.save(likedUniversity3); + likedUniversityRepository.save(likedUnivApplyInfo1); + likedUniversityRepository.save(likedUnivApplyInfo2); + likedUniversityRepository.save(likedUnivApplyInfo3); return likedUniversityRepository.countBySiteUser_Id(testUser.getId()); } diff --git a/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java b/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java index 1d34597be..2172e605a 100644 --- a/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java +++ b/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java @@ -4,7 +4,7 @@ import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; -import com.example.solidconnection.university.domain.LikedUniversity; +import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import org.junit.jupiter.api.DisplayName; @@ -37,10 +37,10 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 SiteUser user = siteUserFixture.사용자(); UnivApplyInfo university = univApplyInfoFixture.괌대학_A_지원_정보(); - LikedUniversity firstLike = createLikedUniversity(user, university); + LikedUnivApplyInfo firstLike = createLikedUniversity(user, university); likedUniversityRepository.save(firstLike); - LikedUniversity secondLike = createLikedUniversity(user, university); + LikedUnivApplyInfo secondLike = createLikedUniversity(user, university); // when & then assertThatCode(() -> likedUniversityRepository.save(secondLike)) @@ -54,10 +54,10 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 SiteUser user2 = siteUserFixture.사용자(2, "user2"); UnivApplyInfo university = univApplyInfoFixture.괌대학_A_지원_정보(); - LikedUniversity firstLike = createLikedUniversity(user1, university); + LikedUnivApplyInfo firstLike = createLikedUniversity(user1, university); likedUniversityRepository.save(firstLike); - LikedUniversity secondLike = createLikedUniversity(user2, university); + LikedUnivApplyInfo secondLike = createLikedUniversity(user2, university); // when & then assertThatCode(() -> likedUniversityRepository.save(secondLike)).doesNotThrowAnyException(); @@ -70,18 +70,18 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 UnivApplyInfo university1 = univApplyInfoFixture.괌대학_A_지원_정보(); UnivApplyInfo university2 = univApplyInfoFixture.메이지대학_지원_정보(); - LikedUniversity firstLike = createLikedUniversity(user, university1); + LikedUnivApplyInfo firstLike = createLikedUniversity(user, university1); likedUniversityRepository.save(firstLike); - LikedUniversity secondLike = createLikedUniversity(user, university2); + LikedUnivApplyInfo secondLike = createLikedUniversity(user, university2); // when & then assertThatCode(() -> likedUniversityRepository.save(secondLike)).doesNotThrowAnyException(); } } - private LikedUniversity createLikedUniversity(SiteUser siteUser, UnivApplyInfo univApplyInfo) { - return LikedUniversity.builder() + private LikedUnivApplyInfo createLikedUniversity(SiteUser siteUser, UnivApplyInfo univApplyInfo) { + return LikedUnivApplyInfo.builder() .siteUser(siteUser) .univApplyInfo(univApplyInfo) .build(); diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java index 729c74c3b..55fdf0c22 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java @@ -5,7 +5,7 @@ import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; -import com.example.solidconnection.university.domain.LikedUniversity; +import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.IsLikeResponse; import com.example.solidconnection.university.dto.LikeResultResponse; @@ -152,10 +152,10 @@ class 대학_좋아요를_취소한다 { } private void saveLikedUniversity(SiteUser siteUser, UnivApplyInfo univApplyInfo) { - LikedUniversity likedUniversity = LikedUniversity.builder() + LikedUnivApplyInfo likedUnivApplyInfo = LikedUnivApplyInfo.builder() .siteUser(siteUser) .univApplyInfo(univApplyInfo) .build(); - likedUniversityRepository.save(likedUniversity); + likedUniversityRepository.save(likedUnivApplyInfo); } } From 2ff17bb3478c21c6b6eea98b0d33386d8414cf00 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:44:37 +0900 Subject: [PATCH 12/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20likeService=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/UnivApplyInfoController.java | 10 +++---- ...ice.java => UnivApplyInfoLikeService.java} | 24 ++++++++-------- ...java => UnivApplyInfoLikeServiceTest.java} | 28 +++++++++---------- 3 files changed, 31 insertions(+), 31 deletions(-) rename src/main/java/com/example/solidconnection/university/service/{UniversityLikeService.java => UnivApplyInfoLikeService.java} (74%) rename src/test/java/com/example/solidconnection/university/service/{UniversityLikeServiceTest.java => UnivApplyInfoLikeServiceTest.java} (81%) diff --git a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index 27b5120ab..ba352760e 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -9,7 +9,7 @@ import com.example.solidconnection.university.dto.UniversityDetailResponse; import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; import com.example.solidconnection.university.dto.UniversityRecommendsResponse; -import com.example.solidconnection.university.service.UniversityLikeService; +import com.example.solidconnection.university.service.UnivApplyInfoLikeService; import com.example.solidconnection.university.service.UnivApplyInfoQueryService; import com.example.solidconnection.university.service.UnivApplyInfoRecommendService; import lombok.RequiredArgsConstructor; @@ -30,7 +30,7 @@ public class UnivApplyInfoController { private final UnivApplyInfoQueryService univApplyInfoQueryService; - private final UniversityLikeService universityLikeService; + private final UnivApplyInfoLikeService univApplyInfoLikeService; private final UnivApplyInfoRecommendService univApplyInfoRecommendService; private final MyPageService myPageService; @@ -58,7 +58,7 @@ public ResponseEntity getIsLiked( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - IsLikeResponse isLiked = universityLikeService.getIsLiked(siteUser, univApplyInfoId); + IsLikeResponse isLiked = univApplyInfoLikeService.getIsLiked(siteUser, univApplyInfoId); return ResponseEntity.ok(isLiked); } @@ -67,7 +67,7 @@ public ResponseEntity addWishUnivApplyInfo( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - LikeResultResponse likeResultResponse = universityLikeService.likeUniversity(siteUser, univApplyInfoId); + LikeResultResponse likeResultResponse = univApplyInfoLikeService.likeUnivApplyInfo(siteUser, univApplyInfoId); return ResponseEntity.ok(likeResultResponse); } @@ -76,7 +76,7 @@ public ResponseEntity cancelWishUnivApplyInfo( @AuthorizedUser SiteUser siteUser, @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - LikeResultResponse likeResultResponse = universityLikeService.cancelLikeUniversity(siteUser, univApplyInfoId); + LikeResultResponse likeResultResponse = univApplyInfoLikeService.cancelLikeUnivApplyInfo(siteUser, univApplyInfoId); return ResponseEntity.ok(likeResultResponse); } diff --git a/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java similarity index 74% rename from src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java rename to src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java index 719092974..897296f02 100644 --- a/src/main/java/com/example/solidconnection/university/service/UniversityLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java @@ -20,7 +20,7 @@ @RequiredArgsConstructor @Service -public class UniversityLikeService { +public class UnivApplyInfoLikeService { public static final String LIKE_SUCCESS_MESSAGE = "LIKE_SUCCESS"; public static final String LIKE_CANCELED_MESSAGE = "LIKE_CANCELED"; @@ -35,11 +35,11 @@ public class UniversityLikeService { * 대학교를 '좋아요' 한다. * */ @Transactional - public LikeResultResponse likeUniversity(SiteUser siteUser, Long universityInfoForApplyId) { - UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(universityInfoForApplyId); + public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInfoId) { + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); - Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); - if (optionalLikedUniversity.isPresent()) { + Optional optionalLikedUnivApplyInfo = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); + if (optionalLikedUnivApplyInfo.isPresent()) { throw new CustomException(ALREADY_LIKED_UNIVERSITY); } @@ -55,15 +55,15 @@ public LikeResultResponse likeUniversity(SiteUser siteUser, Long universityInfoF * 대학교 '좋아요'를 취소한다. * */ @Transactional - public LikeResultResponse cancelLikeUniversity(SiteUser siteUser, long universityInfoForApplyId) throws CustomException { - UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(universityInfoForApplyId); + public LikeResultResponse cancelLikeUnivApplyInfo(SiteUser siteUser, long univApplyInfoId) { + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); - Optional optionalLikedUniversity = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); - if (optionalLikedUniversity.isEmpty()) { + Optional optionalLikedUnivApplyInfo = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); + if (optionalLikedUnivApplyInfo.isEmpty()) { throw new CustomException(NOT_LIKED_UNIVERSITY); } - likedUniversityRepository.delete(optionalLikedUniversity.get()); + likedUniversityRepository.delete(optionalLikedUnivApplyInfo.get()); return new LikeResultResponse(LIKE_CANCELED_MESSAGE); } @@ -71,8 +71,8 @@ public LikeResultResponse cancelLikeUniversity(SiteUser siteUser, long universit * '좋아요'한 대학교인지 확인한다. * */ @Transactional(readOnly = true) - public IsLikeResponse getIsLiked(SiteUser siteUser, Long universityInfoForApplyId) { - UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(universityInfoForApplyId); + public IsLikeResponse getIsLiked(SiteUser siteUser, Long univApplyInfoId) { + UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); boolean isLike = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo).isPresent(); return new IsLikeResponse(isLike); } diff --git a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java similarity index 81% rename from src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java rename to src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java index 55fdf0c22..59e81658c 100644 --- a/src/test/java/com/example/solidconnection/university/service/UniversityLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java @@ -19,18 +19,18 @@ import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIVERSITY; import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIVERSITY; import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; -import static com.example.solidconnection.university.service.UniversityLikeService.LIKE_CANCELED_MESSAGE; -import static com.example.solidconnection.university.service.UniversityLikeService.LIKE_SUCCESS_MESSAGE; +import static com.example.solidconnection.university.service.UnivApplyInfoLikeService.LIKE_CANCELED_MESSAGE; +import static com.example.solidconnection.university.service.UnivApplyInfoLikeService.LIKE_SUCCESS_MESSAGE; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode; import static org.junit.jupiter.api.Assertions.assertAll; @TestContainerSpringBootTest @DisplayName("대학교 좋아요 서비스 테스트") -class UniversityLikeServiceTest { +class UnivApplyInfoLikeServiceTest { @Autowired - private UniversityLikeService universityLikeService; + private UnivApplyInfoLikeService univApplyInfoLikeService; @Autowired private LikedUniversityRepository likedUniversityRepository; @@ -56,7 +56,7 @@ class 대학_좋아요를_등록한다 { @Test void 성공적으로_좋아요를_등록한다() { // when - LikeResultResponse response = universityLikeService.likeUniversity(user, 괌대학_A_지원_정보.getId()); + LikeResultResponse response = univApplyInfoLikeService.likeUnivApplyInfo(user, 괌대학_A_지원_정보.getId()); // then assertAll( @@ -73,7 +73,7 @@ class 대학_좋아요를_등록한다 { saveLikedUniversity(user, 괌대학_A_지원_정보); // when & then - assertThatCode(() -> universityLikeService.likeUniversity(user, 괌대학_A_지원_정보.getId())) + assertThatCode(() -> univApplyInfoLikeService.likeUnivApplyInfo(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) .hasMessage(ALREADY_LIKED_UNIVERSITY.getMessage()); } @@ -88,7 +88,7 @@ class 대학_좋아요를_취소한다 { saveLikedUniversity(user, 괌대학_A_지원_정보); // when - LikeResultResponse response = universityLikeService.cancelLikeUniversity(user, 괌대학_A_지원_정보.getId()); + LikeResultResponse response = univApplyInfoLikeService.cancelLikeUnivApplyInfo(user, 괌대학_A_지원_정보.getId()); // then assertAll( @@ -102,7 +102,7 @@ class 대학_좋아요를_취소한다 { @Test void 좋아요하지_않은_대학이면_예외_응답을_반환한다() { // when & then - assertThatCode(() -> universityLikeService.cancelLikeUniversity(user, 괌대학_A_지원_정보.getId())) + assertThatCode(() -> univApplyInfoLikeService.cancelLikeUnivApplyInfo(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) .hasMessage(NOT_LIKED_UNIVERSITY.getMessage()); } @@ -111,10 +111,10 @@ class 대학_좋아요를_취소한다 { @Test void 존재하지_않는_대학_좋아요_시도하면_예외_응답을_반환한다() { // given - Long invalidUniversityId = 9999L; + Long invalidUnivApplyInfoId = 9999L; // when & then - assertThatCode(() -> universityLikeService.likeUniversity(user, invalidUniversityId)) + assertThatCode(() -> univApplyInfoLikeService.likeUnivApplyInfo(user, invalidUnivApplyInfoId)) .isInstanceOf(CustomException.class) .hasMessage(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND.getMessage()); } @@ -125,7 +125,7 @@ class 대학_좋아요를_취소한다 { saveLikedUniversity(user, 괌대학_A_지원_정보); // when - IsLikeResponse response = universityLikeService.getIsLiked(user, 괌대학_A_지원_정보.getId()); + IsLikeResponse response = univApplyInfoLikeService.getIsLiked(user, 괌대학_A_지원_정보.getId()); // then assertThat(response.isLike()).isTrue(); @@ -134,7 +134,7 @@ class 대학_좋아요를_취소한다 { @Test void 좋아요하지_않은_대학인지_확인한다() { // when - IsLikeResponse response = universityLikeService.getIsLiked(user, 괌대학_A_지원_정보.getId()); + IsLikeResponse response = univApplyInfoLikeService.getIsLiked(user, 괌대학_A_지원_정보.getId()); // then assertThat(response.isLike()).isFalse(); @@ -143,10 +143,10 @@ class 대학_좋아요를_취소한다 { @Test void 존재하지_않는_대학의_좋아요_여부를_조회하면_예외_응답을_반환한다() { // given - Long invalidUniversityId = 9999L; + Long invalidUnivApplyInfoId = 9999L; // when & then - assertThatCode(() -> universityLikeService.getIsLiked(user, invalidUniversityId)) + assertThatCode(() -> univApplyInfoLikeService.getIsLiked(user, invalidUnivApplyInfoId)) .isInstanceOf(CustomException.class) .hasMessage(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND.getMessage()); } From 9bbb2b817c80bd957cebe6dc57012e613b56561a Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 14:52:33 +0900 Subject: [PATCH 13/25] =?UTF-8?q?refactor:=20LikedUnivApplyInfoRepository?= =?UTF-8?q?=20=ED=8C=A8=ED=82=A4=EC=A7=80=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - siteuser 하위 -> university 하위 --- .../siteuser/service/MyPageService.java | 8 ++++---- .../repository/LikedUnivApplyInfoRepository.java} | 4 ++-- .../service/UnivApplyInfoLikeService.java | 14 +++++++------- .../siteuser/service/MyPageServiceTest.java | 12 ++++++------ .../repository/UniversityLikeRepositoryTest.java | 15 +++++++-------- .../service/UnivApplyInfoLikeServiceTest.java | 10 +++++----- 6 files changed, 31 insertions(+), 32 deletions(-) rename src/main/java/com/example/solidconnection/{siteuser/repository/LikedUniversityRepository.java => university/repository/LikedUnivApplyInfoRepository.java} (77%) diff --git a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java index 81bbeb04c..1ba3af601 100644 --- a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java +++ b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java @@ -6,7 +6,7 @@ import com.example.solidconnection.s3.service.S3Service; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.dto.MyPageResponse; -import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; +import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; @@ -31,7 +31,7 @@ public class MyPageService { public static final DateTimeFormatter NICKNAME_LAST_CHANGE_DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"); private final SiteUserRepository siteUserRepository; - private final LikedUniversityRepository likedUniversityRepository; + private final LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; private final S3Service s3Service; /* @@ -39,7 +39,7 @@ public class MyPageService { * */ @Transactional(readOnly = true) public MyPageResponse getMyPageInfo(SiteUser siteUser) { - int likedUniversityCount = likedUniversityRepository.countBySiteUser_Id(siteUser.getId()); + int likedUniversityCount = likedUnivApplyInfoRepository.countBySiteUser_Id(siteUser.getId()); return MyPageResponse.of(siteUser, likedUniversityCount); } @@ -95,7 +95,7 @@ private boolean isDefaultProfileImage(String profileImageUrl) { * */ @Transactional(readOnly = true) public List getWishUniversity(SiteUser siteUser) { - List likedUniversities = likedUniversityRepository.findAllBySiteUser_Id(siteUser.getId()); + List likedUniversities = likedUnivApplyInfoRepository.findAllBySiteUser_Id(siteUser.getId()); return likedUniversities.stream() .map(likedUniversity -> UniversityInfoForApplyPreviewResponse.from(likedUniversity.getUnivApplyInfo())) .toList(); diff --git a/src/main/java/com/example/solidconnection/siteuser/repository/LikedUniversityRepository.java b/src/main/java/com/example/solidconnection/university/repository/LikedUnivApplyInfoRepository.java similarity index 77% rename from src/main/java/com/example/solidconnection/siteuser/repository/LikedUniversityRepository.java rename to src/main/java/com/example/solidconnection/university/repository/LikedUnivApplyInfoRepository.java index d45f111fe..bca7a7eef 100644 --- a/src/main/java/com/example/solidconnection/siteuser/repository/LikedUniversityRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/LikedUnivApplyInfoRepository.java @@ -1,4 +1,4 @@ -package com.example.solidconnection.siteuser.repository; +package com.example.solidconnection.university.repository; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; @@ -8,7 +8,7 @@ import java.util.List; import java.util.Optional; -public interface LikedUniversityRepository extends JpaRepository { +public interface LikedUnivApplyInfoRepository extends JpaRepository { List findAllBySiteUser_Id(long siteUserId); diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java index 897296f02..f4114c211 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java @@ -2,7 +2,7 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; +import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; import com.example.solidconnection.university.dto.IsLikeResponse; @@ -26,7 +26,7 @@ public class UnivApplyInfoLikeService { public static final String LIKE_CANCELED_MESSAGE = "LIKE_CANCELED"; private final UnivApplyInfoRepository univApplyInfoRepository; - private final LikedUniversityRepository likedUniversityRepository; + private final LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; @Value("${university.term}") public String term; @@ -38,7 +38,7 @@ public class UnivApplyInfoLikeService { public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); - Optional optionalLikedUnivApplyInfo = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); + Optional optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUnivApplyInfo.isPresent()) { throw new CustomException(ALREADY_LIKED_UNIVERSITY); } @@ -47,7 +47,7 @@ public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInf .univApplyInfo(univApplyInfo) .siteUser(siteUser) .build(); - likedUniversityRepository.save(likedUnivApplyInfo); + likedUnivApplyInfoRepository.save(likedUnivApplyInfo); return new LikeResultResponse(LIKE_SUCCESS_MESSAGE); } @@ -58,12 +58,12 @@ public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInf public LikeResultResponse cancelLikeUnivApplyInfo(SiteUser siteUser, long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); - Optional optionalLikedUnivApplyInfo = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); + Optional optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUnivApplyInfo.isEmpty()) { throw new CustomException(NOT_LIKED_UNIVERSITY); } - likedUniversityRepository.delete(optionalLikedUnivApplyInfo.get()); + likedUnivApplyInfoRepository.delete(optionalLikedUnivApplyInfo.get()); return new LikeResultResponse(LIKE_CANCELED_MESSAGE); } @@ -73,7 +73,7 @@ public LikeResultResponse cancelLikeUnivApplyInfo(SiteUser siteUser, long univAp @Transactional(readOnly = true) public IsLikeResponse getIsLiked(SiteUser siteUser, Long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); - boolean isLike = likedUniversityRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo).isPresent(); + boolean isLike = likedUnivApplyInfoRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo).isPresent(); return new IsLikeResponse(isLike); } } diff --git a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java index ebfa61980..4d87c8c2f 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java @@ -10,7 +10,7 @@ import com.example.solidconnection.siteuser.dto.MyPageResponse; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.siteuser.fixture.SiteUserFixtureBuilder; -import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; +import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; @@ -54,7 +54,7 @@ class MyPageServiceTest { private SiteUserRepository siteUserRepository; @Autowired - private LikedUniversityRepository likedUniversityRepository; + private LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; @Autowired private SiteUserFixture siteUserFixture; @@ -197,10 +197,10 @@ private int createLikedUniversities(SiteUser testUser) { LikedUnivApplyInfo likedUnivApplyInfo2 = new LikedUnivApplyInfo(null, univApplyInfoFixture.메이지대학_지원_정보(), testUser); LikedUnivApplyInfo likedUnivApplyInfo3 = new LikedUnivApplyInfo(null, univApplyInfoFixture.코펜하겐IT대학_지원_정보(), testUser); - likedUniversityRepository.save(likedUnivApplyInfo1); - likedUniversityRepository.save(likedUnivApplyInfo2); - likedUniversityRepository.save(likedUnivApplyInfo3); - return likedUniversityRepository.countBySiteUser_Id(testUser.getId()); + likedUnivApplyInfoRepository.save(likedUnivApplyInfo1); + likedUnivApplyInfoRepository.save(likedUnivApplyInfo2); + likedUnivApplyInfoRepository.save(likedUnivApplyInfo3); + return likedUnivApplyInfoRepository.countBySiteUser_Id(testUser.getId()); } private MockMultipartFile createValidImageFile() { diff --git a/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java b/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java index 2172e605a..1ab769481 100644 --- a/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java +++ b/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java @@ -2,7 +2,6 @@ import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; -import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; @@ -20,7 +19,7 @@ public class UniversityLikeRepositoryTest { @Autowired - private LikedUniversityRepository likedUniversityRepository; + private LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; @Autowired private SiteUserFixture siteUserFixture; @@ -38,12 +37,12 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 UnivApplyInfo university = univApplyInfoFixture.괌대학_A_지원_정보(); LikedUnivApplyInfo firstLike = createLikedUniversity(user, university); - likedUniversityRepository.save(firstLike); + likedUnivApplyInfoRepository.save(firstLike); LikedUnivApplyInfo secondLike = createLikedUniversity(user, university); // when & then - assertThatCode(() -> likedUniversityRepository.save(secondLike)) + assertThatCode(() -> likedUnivApplyInfoRepository.save(secondLike)) .isInstanceOf(DataIntegrityViolationException.class); } @@ -55,12 +54,12 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 UnivApplyInfo university = univApplyInfoFixture.괌대학_A_지원_정보(); LikedUnivApplyInfo firstLike = createLikedUniversity(user1, university); - likedUniversityRepository.save(firstLike); + likedUnivApplyInfoRepository.save(firstLike); LikedUnivApplyInfo secondLike = createLikedUniversity(user2, university); // when & then - assertThatCode(() -> likedUniversityRepository.save(secondLike)).doesNotThrowAnyException(); + assertThatCode(() -> likedUnivApplyInfoRepository.save(secondLike)).doesNotThrowAnyException(); } @Test @@ -71,12 +70,12 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 UnivApplyInfo university2 = univApplyInfoFixture.메이지대학_지원_정보(); LikedUnivApplyInfo firstLike = createLikedUniversity(user, university1); - likedUniversityRepository.save(firstLike); + likedUnivApplyInfoRepository.save(firstLike); LikedUnivApplyInfo secondLike = createLikedUniversity(user, university2); // when & then - assertThatCode(() -> likedUniversityRepository.save(secondLike)).doesNotThrowAnyException(); + assertThatCode(() -> likedUnivApplyInfoRepository.save(secondLike)).doesNotThrowAnyException(); } } diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java index 59e81658c..e48856f47 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java @@ -3,7 +3,7 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.siteuser.fixture.SiteUserFixture; -import com.example.solidconnection.siteuser.repository.LikedUniversityRepository; +import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; import com.example.solidconnection.university.domain.UnivApplyInfo; @@ -33,7 +33,7 @@ class UnivApplyInfoLikeServiceTest { private UnivApplyInfoLikeService univApplyInfoLikeService; @Autowired - private LikedUniversityRepository likedUniversityRepository; + private LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; @Autowired private SiteUserFixture siteUserFixture; @@ -61,7 +61,7 @@ class 대학_좋아요를_등록한다 { // then assertAll( () -> assertThat(response.result()).isEqualTo(LIKE_SUCCESS_MESSAGE), - () -> assertThat(likedUniversityRepository.findBySiteUserAndUnivApplyInfo( + () -> assertThat(likedUnivApplyInfoRepository.findBySiteUserAndUnivApplyInfo( user, 괌대학_A_지원_정보 )).isPresent() ); @@ -93,7 +93,7 @@ class 대학_좋아요를_취소한다 { // then assertAll( () -> assertThat(response.result()).isEqualTo(LIKE_CANCELED_MESSAGE), - () -> assertThat(likedUniversityRepository.findBySiteUserAndUnivApplyInfo( + () -> assertThat(likedUnivApplyInfoRepository.findBySiteUserAndUnivApplyInfo( user, 괌대학_A_지원_정보 )).isEmpty() ); @@ -156,6 +156,6 @@ private void saveLikedUniversity(SiteUser siteUser, UnivApplyInfo univApplyInfo) .siteUser(siteUser) .univApplyInfo(univApplyInfo) .build(); - likedUniversityRepository.save(likedUnivApplyInfo); + likedUnivApplyInfoRepository.save(likedUnivApplyInfo); } } From 2e684c66b16ddac1e9bfcbec74e2b96b65236535 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 15:15:41 +0900 Subject: [PATCH 14/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20Dto=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 프론트와 협의가 되어야 하는 요청/응답의 json에 해당하는 이름들을 백엔드가 임의로 바꾸는 것은 바람직하지 않다. - issue를 만들고, todo로 표시하고 넘어간다. - 프론트와 협의 이후, 별도의 PR에서 수정한다. --- .../application/dto/ApplyRequest.java | 2 +- .../dto/UnivApplyInfoChoiceRequest.java | 11 ++++ .../dto/UniversityChoiceRequest.java | 10 ---- .../service/ApplicationSubmissionService.java | 10 ++-- .../siteuser/service/MyPageService.java | 10 ++-- .../controller/UnivApplyInfoController.java | 28 ++++----- ....java => UnivApplyInfoDetailResponse.java} | 6 +- ...java => UnivApplyInfoPreviewResponse.java} | 6 +- .../dto/UnivApplyInfoPreviewResponses.java | 9 +++ .../dto/UnivApplyInfoRecommendsResponse.java | 8 +++ ...niversityInfoForApplyPreviewResponses.java | 8 --- .../dto/UniversityRecommendsResponse.java | 7 --- ...ice.java => ValidUnivApplyInfoChoice.java} | 4 +- ...=> ValidUnivApplyInfoChoiceValidator.java} | 12 ++-- .../service/UnivApplyInfoQueryService.java | 16 ++--- .../UnivApplyInfoRecommendService.java | 16 ++--- .../ApplicationSubmissionServiceTest.java | 18 +++--- .../siteuser/service/MyPageServiceTest.java | 12 ++-- ...alidUnivApplyInfoChoiceValidatorTest.java} | 24 ++++---- .../UnivApplyInfoQueryServiceTest.java | 58 +++++++++---------- .../UnivApplyInfoRecommendServiceTest.java | 42 +++++++------- 21 files changed, 160 insertions(+), 157 deletions(-) create mode 100644 src/main/java/com/example/solidconnection/application/dto/UnivApplyInfoChoiceRequest.java delete mode 100644 src/main/java/com/example/solidconnection/application/dto/UniversityChoiceRequest.java rename src/main/java/com/example/solidconnection/university/dto/{UniversityDetailResponse.java => UnivApplyInfoDetailResponse.java} (94%) rename src/main/java/com/example/solidconnection/university/dto/{UniversityInfoForApplyPreviewResponse.java => UnivApplyInfoPreviewResponse.java} (86%) create mode 100644 src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoPreviewResponses.java create mode 100644 src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoRecommendsResponse.java delete mode 100644 src/main/java/com/example/solidconnection/university/dto/UniversityInfoForApplyPreviewResponses.java delete mode 100644 src/main/java/com/example/solidconnection/university/dto/UniversityRecommendsResponse.java rename src/main/java/com/example/solidconnection/university/dto/validation/{ValidUniversityChoice.java => ValidUnivApplyInfoChoice.java} (82%) rename src/main/java/com/example/solidconnection/university/dto/validation/{ValidUniversityChoiceValidator.java => ValidUnivApplyInfoChoiceValidator.java} (77%) rename src/test/java/com/example/solidconnection/university/dto/validation/{ValidUniversityChoiceValidatorTest.java => ValidUnivApplyInfoChoiceValidatorTest.java} (67%) diff --git a/src/main/java/com/example/solidconnection/application/dto/ApplyRequest.java b/src/main/java/com/example/solidconnection/application/dto/ApplyRequest.java index 7c4da1c99..7497eaa3f 100644 --- a/src/main/java/com/example/solidconnection/application/dto/ApplyRequest.java +++ b/src/main/java/com/example/solidconnection/application/dto/ApplyRequest.java @@ -12,6 +12,6 @@ public record ApplyRequest( Long languageTestScoreId, @Valid - UniversityChoiceRequest universityChoiceRequest + UnivApplyInfoChoiceRequest universityChoiceRequest // todo: #345 프론트에 univApplyInfoChoiceRequest 로 요청 받는다고 전달 후, 인자명 & bruno 변경 필요 ) { } diff --git a/src/main/java/com/example/solidconnection/application/dto/UnivApplyInfoChoiceRequest.java b/src/main/java/com/example/solidconnection/application/dto/UnivApplyInfoChoiceRequest.java new file mode 100644 index 000000000..1aedb44f3 --- /dev/null +++ b/src/main/java/com/example/solidconnection/application/dto/UnivApplyInfoChoiceRequest.java @@ -0,0 +1,11 @@ +package com.example.solidconnection.application.dto; + +import com.example.solidconnection.university.dto.validation.ValidUnivApplyInfoChoice; + +@ValidUnivApplyInfoChoice +public record UnivApplyInfoChoiceRequest( + Long firstChoiceUniversityId, + Long secondChoiceUniversityId, + Long thirdChoiceUniversityId) { + // todo: #345 프론트에 firstChoiceUnivApplyInfoId, secondChoiceUnivApplyInfoId, thirdChoiceUnivApplyInfoId로 요청 받는고 전달 후, 인자명 & bruno 변경 필요 +} diff --git a/src/main/java/com/example/solidconnection/application/dto/UniversityChoiceRequest.java b/src/main/java/com/example/solidconnection/application/dto/UniversityChoiceRequest.java deleted file mode 100644 index 220b803b3..000000000 --- a/src/main/java/com/example/solidconnection/application/dto/UniversityChoiceRequest.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.example.solidconnection.application.dto; - -import com.example.solidconnection.university.dto.validation.ValidUniversityChoice; - -@ValidUniversityChoice -public record UniversityChoiceRequest( - Long firstChoiceUniversityId, - Long secondChoiceUniversityId, - Long thirdChoiceUniversityId) { -} diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java index ea44840ee..0d659184e 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java @@ -4,7 +4,7 @@ import com.example.solidconnection.application.domain.VerifyStatus; import com.example.solidconnection.application.dto.ApplicationSubmissionResponse; import com.example.solidconnection.application.dto.ApplyRequest; -import com.example.solidconnection.application.dto.UniversityChoiceRequest; +import com.example.solidconnection.application.dto.UnivApplyInfoChoiceRequest; import com.example.solidconnection.application.repository.ApplicationRepository; import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.score.domain.GpaScore; @@ -42,13 +42,13 @@ public class ApplicationSubmissionService { // 기존에 있던 status field 우선 APRROVED로 입력시킨다. @Transactional public ApplicationSubmissionResponse apply(SiteUser siteUser, ApplyRequest applyRequest) { - UniversityChoiceRequest universityChoiceRequest = applyRequest.universityChoiceRequest(); + UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest = applyRequest.universityChoiceRequest(); GpaScore gpaScore = getValidGpaScore(siteUser, applyRequest.gpaScoreId()); LanguageTestScore languageTestScore = getValidLanguageTestScore(siteUser, applyRequest.languageTestScoreId()); - long firstChoiceUniversityId = universityChoiceRequest.firstChoiceUniversityId(); - Long secondChoiceUniversityId = universityChoiceRequest.secondChoiceUniversityId(); - Long thirdChoiceUniversityId = universityChoiceRequest.thirdChoiceUniversityId(); + long firstChoiceUniversityId = univApplyInfoChoiceRequest.firstChoiceUniversityId(); + Long secondChoiceUniversityId = univApplyInfoChoiceRequest.secondChoiceUniversityId(); + Long thirdChoiceUniversityId = univApplyInfoChoiceRequest.thirdChoiceUniversityId(); Optional existingApplication = applicationRepository.findBySiteUserAndTerm(siteUser, term); int updateCount = existingApplication diff --git a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java index 1ba3af601..8f7a2efad 100644 --- a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java +++ b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java @@ -9,7 +9,7 @@ import com.example.solidconnection.university.repository.LikedUnivApplyInfoRepository; import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -94,10 +94,10 @@ private boolean isDefaultProfileImage(String profileImageUrl) { * 관심 대학교 목록을 조회한다. * */ @Transactional(readOnly = true) - public List getWishUniversity(SiteUser siteUser) { - List likedUniversities = likedUnivApplyInfoRepository.findAllBySiteUser_Id(siteUser.getId()); - return likedUniversities.stream() - .map(likedUniversity -> UniversityInfoForApplyPreviewResponse.from(likedUniversity.getUnivApplyInfo())) + public List getWishUnivApplyInfo(SiteUser siteUser) { + List likedUnivApplyInfos = likedUnivApplyInfoRepository.findAllBySiteUser_Id(siteUser.getId()); + return likedUnivApplyInfos.stream() + .map(likedUnivApplyInfo -> UnivApplyInfoPreviewResponse.from(likedUnivApplyInfo.getUnivApplyInfo())) .toList(); } } diff --git a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index ba352760e..30b065138 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -6,9 +6,9 @@ import com.example.solidconnection.university.domain.LanguageTestType; import com.example.solidconnection.university.dto.IsLikeResponse; import com.example.solidconnection.university.dto.LikeResultResponse; -import com.example.solidconnection.university.dto.UniversityDetailResponse; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; -import com.example.solidconnection.university.dto.UniversityRecommendsResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoRecommendsResponse; import com.example.solidconnection.university.service.UnivApplyInfoLikeService; import com.example.solidconnection.university.service.UnivApplyInfoQueryService; import com.example.solidconnection.university.service.UnivApplyInfoRecommendService; @@ -35,7 +35,7 @@ public class UnivApplyInfoController { private final MyPageService myPageService; @GetMapping("/recommend") - public ResponseEntity getUnivApplyInfoRecommends( + public ResponseEntity getUnivApplyInfoRecommends( @AuthorizedUser(required = false) SiteUser siteUser ) { if (siteUser == null) { @@ -46,10 +46,10 @@ public ResponseEntity getUnivApplyInfoRecommends( } @GetMapping("/like") - public ResponseEntity> getMyWishUnivApplyInfo( /* todo: wish 가 아니라 liked 로 변경 필요 - 코드 용어 통일 */ + public ResponseEntity> getMyWishUnivApplyInfo( /* todo: wish 가 아니라 liked 로 변경 필요 - 코드 용어 통일 */ @AuthorizedUser SiteUser siteUser ) { - List wishUniversities = myPageService.getWishUniversity(siteUser); + List wishUniversities = myPageService.getWishUnivApplyInfo(siteUser); return ResponseEntity.ok(wishUniversities); } @@ -81,23 +81,23 @@ public ResponseEntity cancelWishUnivApplyInfo( } @GetMapping("/{univ-apply-info-id}") - public ResponseEntity getUnivApplyInfoDetails( + public ResponseEntity getUnivApplyInfoDetails( @PathVariable("univ-apply-info-id") Long univApplyInfoId ) { - UniversityDetailResponse universityDetailResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(univApplyInfoId); - return ResponseEntity.ok(universityDetailResponse); + UnivApplyInfoDetailResponse univApplyInfoDetailResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(univApplyInfoId); + return ResponseEntity.ok(univApplyInfoDetailResponse); } - // todo return타입 UniversityInfoForApplyPreviewResponses로 추후 수정 필요 + // todo: return타입 UniversityInfoForApplyPreviewResponses로 추후 수정 필요 @GetMapping("/search") - public ResponseEntity> searchUnivApplyInfo( + public ResponseEntity> searchUnivApplyInfo( @RequestParam(required = false, defaultValue = "") String region, @RequestParam(required = false, defaultValue = "") List keyword, @RequestParam(required = false, defaultValue = "") LanguageTestType testType, @RequestParam(required = false, defaultValue = "") String testScore ) { - List universityInfoForApplyPreviewResponse - = univApplyInfoQueryService.searchUnivApplyInfo(region, keyword, testType, testScore).universityInfoForApplyPreviewResponses(); - return ResponseEntity.ok(universityInfoForApplyPreviewResponse); + List univApplyInfoPreviewResponse + = univApplyInfoQueryService.searchUnivApplyInfo(region, keyword, testType, testScore).univApplyInfoPreviews(); + return ResponseEntity.ok(univApplyInfoPreviewResponse); } } diff --git a/src/main/java/com/example/solidconnection/university/dto/UniversityDetailResponse.java b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoDetailResponse.java similarity index 94% rename from src/main/java/com/example/solidconnection/university/dto/UniversityDetailResponse.java rename to src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoDetailResponse.java index 86da18e7e..673254d88 100644 --- a/src/main/java/com/example/solidconnection/university/dto/UniversityDetailResponse.java +++ b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoDetailResponse.java @@ -5,7 +5,7 @@ import java.util.List; -public record UniversityDetailResponse( +public record UnivApplyInfoDetailResponse( long id, String term, String koreanName, @@ -33,10 +33,10 @@ public record UniversityDetailResponse( String accommodationUrl, String englishCourseUrl) { - public static UniversityDetailResponse of( + public static UnivApplyInfoDetailResponse of( University university, UnivApplyInfo univApplyInfo) { - return new UniversityDetailResponse( + return new UnivApplyInfoDetailResponse( univApplyInfo.getId(), univApplyInfo.getTerm(), univApplyInfo.getKoreanName(), diff --git a/src/main/java/com/example/solidconnection/university/dto/UniversityInfoForApplyPreviewResponse.java b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoPreviewResponse.java similarity index 86% rename from src/main/java/com/example/solidconnection/university/dto/UniversityInfoForApplyPreviewResponse.java rename to src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoPreviewResponse.java index bca888d03..4f7f7c3f1 100644 --- a/src/main/java/com/example/solidconnection/university/dto/UniversityInfoForApplyPreviewResponse.java +++ b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoPreviewResponse.java @@ -5,7 +5,7 @@ import java.util.Collections; import java.util.List; -public record UniversityInfoForApplyPreviewResponse( +public record UnivApplyInfoPreviewResponse( long id, String term, String koreanName, @@ -16,14 +16,14 @@ public record UniversityInfoForApplyPreviewResponse( int studentCapacity, List languageRequirements) { - public static UniversityInfoForApplyPreviewResponse from(UnivApplyInfo univApplyInfo) { + public static UnivApplyInfoPreviewResponse from(UnivApplyInfo univApplyInfo) { List languageRequirementResponses = new java.util.ArrayList<>( univApplyInfo.getLanguageRequirements().stream() .map(LanguageRequirementResponse::from) .toList()); Collections.sort(languageRequirementResponses); - return new UniversityInfoForApplyPreviewResponse( + return new UnivApplyInfoPreviewResponse( univApplyInfo.getId(), univApplyInfo.getTerm(), univApplyInfo.getKoreanName(), diff --git a/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoPreviewResponses.java b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoPreviewResponses.java new file mode 100644 index 000000000..2afec8262 --- /dev/null +++ b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoPreviewResponses.java @@ -0,0 +1,9 @@ +package com.example.solidconnection.university.dto; + +import java.util.List; + +public record UnivApplyInfoPreviewResponses( + List univApplyInfoPreviews + // todo: #345 응답 형식으로 바로 배열이 아니라, univApplyInfoPreviews로 감싸 응답한다고 전달 후, 코드 변경 필요 +) { +} diff --git a/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoRecommendsResponse.java b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoRecommendsResponse.java new file mode 100644 index 000000000..759f1d813 --- /dev/null +++ b/src/main/java/com/example/solidconnection/university/dto/UnivApplyInfoRecommendsResponse.java @@ -0,0 +1,8 @@ +package com.example.solidconnection.university.dto; + +import java.util.List; + +public record UnivApplyInfoRecommendsResponse( + List recommendedUniversities) { + // todo: #345 프론트에 recommendedUnivApplyInfos 로 응답한다고 전달 후, 인자명 변경 필요 +} diff --git a/src/main/java/com/example/solidconnection/university/dto/UniversityInfoForApplyPreviewResponses.java b/src/main/java/com/example/solidconnection/university/dto/UniversityInfoForApplyPreviewResponses.java deleted file mode 100644 index 3c8a00df4..000000000 --- a/src/main/java/com/example/solidconnection/university/dto/UniversityInfoForApplyPreviewResponses.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.solidconnection.university.dto; - -import java.util.List; - -public record UniversityInfoForApplyPreviewResponses( - List universityInfoForApplyPreviewResponses -) { -} diff --git a/src/main/java/com/example/solidconnection/university/dto/UniversityRecommendsResponse.java b/src/main/java/com/example/solidconnection/university/dto/UniversityRecommendsResponse.java deleted file mode 100644 index 057061f3e..000000000 --- a/src/main/java/com/example/solidconnection/university/dto/UniversityRecommendsResponse.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.example.solidconnection.university.dto; - -import java.util.List; - -public record UniversityRecommendsResponse( - List recommendedUniversities) { -} diff --git a/src/main/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoice.java b/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoice.java similarity index 82% rename from src/main/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoice.java rename to src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoice.java index 658de067c..7d925287a 100644 --- a/src/main/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoice.java +++ b/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoice.java @@ -10,8 +10,8 @@ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) -@Constraint(validatedBy = ValidUniversityChoiceValidator.class) -public @interface ValidUniversityChoice { +@Constraint(validatedBy = ValidUnivApplyInfoChoiceValidator.class) +public @interface ValidUnivApplyInfoChoice { String message() default "유효하지 않은 지망 대학 선택입니다."; Class[] groups() default {}; diff --git a/src/main/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoiceValidator.java b/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java similarity index 77% rename from src/main/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoiceValidator.java rename to src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java index 63d47b0de..1ec12829c 100644 --- a/src/main/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoiceValidator.java +++ b/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java @@ -1,6 +1,6 @@ package com.example.solidconnection.university.dto.validation; -import com.example.solidconnection.application.dto.UniversityChoiceRequest; +import com.example.solidconnection.application.dto.UnivApplyInfoChoiceRequest; import jakarta.validation.ConstraintValidator; import jakarta.validation.ConstraintValidatorContext; @@ -13,10 +13,10 @@ import static com.example.solidconnection.common.exception.ErrorCode.FIRST_CHOICE_REQUIRED; import static com.example.solidconnection.common.exception.ErrorCode.THIRD_CHOICE_REQUIRES_SECOND; -public class ValidUniversityChoiceValidator implements ConstraintValidator { +public class ValidUnivApplyInfoChoiceValidator implements ConstraintValidator { @Override - public boolean isValid(UniversityChoiceRequest request, ConstraintValidatorContext context) { + public boolean isValid(UnivApplyInfoChoiceRequest request, ConstraintValidatorContext context) { context.disableDefaultConstraintViolation(); if (isFirstChoiceNotSelected(request)) { @@ -40,15 +40,15 @@ public boolean isValid(UniversityChoiceRequest request, ConstraintValidatorConte return true; } - private boolean isFirstChoiceNotSelected(UniversityChoiceRequest request) { + private boolean isFirstChoiceNotSelected(UnivApplyInfoChoiceRequest request) { return request.firstChoiceUniversityId() == null; } - private boolean isThirdChoiceWithoutSecond(UniversityChoiceRequest request) { + private boolean isThirdChoiceWithoutSecond(UnivApplyInfoChoiceRequest request) { return request.thirdChoiceUniversityId() != null && request.secondChoiceUniversityId() == null; } - private boolean isDuplicate(UniversityChoiceRequest request) { + private boolean isDuplicate(UnivApplyInfoChoiceRequest request) { Set uniqueIds = new HashSet<>(); return Stream.of( request.firstChoiceUniversityId(), diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java index 7ad7a0ae4..86717c382 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoQueryService.java @@ -4,9 +4,9 @@ import com.example.solidconnection.university.domain.LanguageTestType; import com.example.solidconnection.university.domain.University; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.dto.UniversityDetailResponse; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponses; +import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponses; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepositoryImpl; import lombok.RequiredArgsConstructor; @@ -32,12 +32,12 @@ public class UnivApplyInfoQueryService { * */ @Transactional(readOnly = true) @ThunderingHerdCaching(key = "univApplyInfo:{0}", cacheManager = "customCacheManager", ttlSec = 86400) - public UniversityDetailResponse getUnivApplyInfoDetail(Long univApplyInfoId) { + public UnivApplyInfoDetailResponse getUnivApplyInfoDetail(Long univApplyInfoId) { UnivApplyInfo univApplyInfo = univApplyInfoRepository.getUnivApplyInfoById(univApplyInfoId); University university = univApplyInfo.getUniversity(); - return UniversityDetailResponse.of(university, univApplyInfo); + return UnivApplyInfoDetailResponse.of(university, univApplyInfo); } /* @@ -49,13 +49,13 @@ public UniversityDetailResponse getUnivApplyInfoDetail(Long univApplyInfoId) { * */ @Transactional(readOnly = true) @ThunderingHerdCaching(key = "univApplyInfo:{0}:{1}:{2}:{3}", cacheManager = "customCacheManager", ttlSec = 86400) - public UniversityInfoForApplyPreviewResponses searchUnivApplyInfo( + public UnivApplyInfoPreviewResponses searchUnivApplyInfo( String regionCode, List keywords, LanguageTestType testType, String testScore) { - return new UniversityInfoForApplyPreviewResponses(universityFilterRepository + return new UnivApplyInfoPreviewResponses(universityFilterRepository .findAllByRegionCodeAndKeywordsAndLanguageTestTypeAndTestScoreAndTerm(regionCode, keywords, testType, testScore, term) .stream() - .map(UniversityInfoForApplyPreviewResponse::from) + .map(UnivApplyInfoPreviewResponse::from) .toList()); } } diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java index 6d4e96568..aa6f34f79 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendService.java @@ -3,8 +3,8 @@ import com.example.solidconnection.cache.annotation.ThunderingHerdCaching; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; -import com.example.solidconnection.university.dto.UniversityRecommendsResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoRecommendsResponse; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; @@ -34,7 +34,7 @@ public class UnivApplyInfoRecommendService { * - 맞춤 추천 대학교의 수가 6개보다 적다면, 공통 추천 대학교 후보에서 이번 term 에 열리는 학교들을 부족한 수 만큼 불러온다. * */ @Transactional(readOnly = true) - public UniversityRecommendsResponse getPersonalRecommends(SiteUser siteUser) { + public UnivApplyInfoRecommendsResponse getPersonalRecommends(SiteUser siteUser) { // 맞춤 추천 대학교를 불러온다. List personalRecommends = univApplyInfoRepository .findAllBySiteUsersInterestedCountryOrRegionAndTerm(siteUser, term); @@ -47,8 +47,8 @@ public UniversityRecommendsResponse getPersonalRecommends(SiteUser siteUser) { trimmedRecommends.addAll(getGeneralRecommendsExcludingSelected(trimmedRecommends)); } - return new UniversityRecommendsResponse(trimmedRecommends.stream() - .map(UniversityInfoForApplyPreviewResponse::from) + return new UnivApplyInfoRecommendsResponse(trimmedRecommends.stream() + .map(UnivApplyInfoPreviewResponse::from) .toList()); } @@ -64,10 +64,10 @@ private List getGeneralRecommendsExcludingSelected(List generalRecommends = new ArrayList<>(generalUnivApplyInfoRecommendService.getGeneralRecommends()); - return new UniversityRecommendsResponse(generalRecommends.stream() - .map(UniversityInfoForApplyPreviewResponse::from) + return new UnivApplyInfoRecommendsResponse(generalRecommends.stream() + .map(UnivApplyInfoPreviewResponse::from) .toList()); } } diff --git a/src/test/java/com/example/solidconnection/application/service/ApplicationSubmissionServiceTest.java b/src/test/java/com/example/solidconnection/application/service/ApplicationSubmissionServiceTest.java index 4d23073f7..b9389739f 100644 --- a/src/test/java/com/example/solidconnection/application/service/ApplicationSubmissionServiceTest.java +++ b/src/test/java/com/example/solidconnection/application/service/ApplicationSubmissionServiceTest.java @@ -4,7 +4,7 @@ import com.example.solidconnection.application.domain.VerifyStatus; import com.example.solidconnection.application.dto.ApplicationSubmissionResponse; import com.example.solidconnection.application.dto.ApplyRequest; -import com.example.solidconnection.application.dto.UniversityChoiceRequest; +import com.example.solidconnection.application.dto.UnivApplyInfoChoiceRequest; import com.example.solidconnection.application.repository.ApplicationRepository; import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.score.domain.GpaScore; @@ -73,12 +73,12 @@ void setUp() { // given GpaScore gpaScore = gpaScoreFixture.GPA_점수(VerifyStatus.APPROVED, user); LanguageTestScore languageTestScore = languageTestScoreFixture.어학_점수(VerifyStatus.APPROVED, user); - UniversityChoiceRequest universityChoiceRequest = new UniversityChoiceRequest( + UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest = new UnivApplyInfoChoiceRequest( 괌대학_A_지원_정보.getId(), 괌대학_B_지원_정보.getId(), 서던덴마크대학교_지원_정보.getId() ); - ApplyRequest request = new ApplyRequest(gpaScore.getId(), languageTestScore.getId(), universityChoiceRequest); + ApplyRequest request = new ApplyRequest(gpaScore.getId(), languageTestScore.getId(), univApplyInfoChoiceRequest); // when ApplicationSubmissionResponse response = applicationSubmissionService.apply(user, request); @@ -106,12 +106,12 @@ void setUp() { // given GpaScore gpaScore = gpaScoreFixture.GPA_점수(VerifyStatus.PENDING, user); LanguageTestScore languageTestScore = languageTestScoreFixture.어학_점수(VerifyStatus.APPROVED, user); - UniversityChoiceRequest universityChoiceRequest = new UniversityChoiceRequest( + UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest = new UnivApplyInfoChoiceRequest( 괌대학_A_지원_정보.getId(), null, null ); - ApplyRequest request = new ApplyRequest(gpaScore.getId(), languageTestScore.getId(), universityChoiceRequest); + ApplyRequest request = new ApplyRequest(gpaScore.getId(), languageTestScore.getId(), univApplyInfoChoiceRequest); // when & then assertThatCode(() -> @@ -126,12 +126,12 @@ void setUp() { // given GpaScore gpaScore = gpaScoreFixture.GPA_점수(VerifyStatus.APPROVED, user); LanguageTestScore languageTestScore = languageTestScoreFixture.어학_점수(VerifyStatus.PENDING, user); - UniversityChoiceRequest universityChoiceRequest = new UniversityChoiceRequest( + UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest = new UnivApplyInfoChoiceRequest( 괌대학_A_지원_정보.getId(), null, null ); - ApplyRequest request = new ApplyRequest(gpaScore.getId(), languageTestScore.getId(), universityChoiceRequest); + ApplyRequest request = new ApplyRequest(gpaScore.getId(), languageTestScore.getId(), univApplyInfoChoiceRequest); // when & then assertThatCode(() -> @@ -146,12 +146,12 @@ void setUp() { // given GpaScore gpaScore = gpaScoreFixture.GPA_점수(VerifyStatus.APPROVED, user); LanguageTestScore languageTestScore = languageTestScoreFixture.어학_점수(VerifyStatus.APPROVED, user); - UniversityChoiceRequest universityChoiceRequest = new UniversityChoiceRequest( + UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest = new UnivApplyInfoChoiceRequest( 괌대학_A_지원_정보.getId(), null, null ); - ApplyRequest request = new ApplyRequest(gpaScore.getId(), languageTestScore.getId(), universityChoiceRequest); + ApplyRequest request = new ApplyRequest(gpaScore.getId(), languageTestScore.getId(), univApplyInfoChoiceRequest); for (int i = 0; i < APPLICATION_UPDATE_COUNT_LIMIT; i++) { applicationSubmissionService.apply(user, request); diff --git a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java index 4d87c8c2f..cfcab9171 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java @@ -14,7 +14,7 @@ import com.example.solidconnection.siteuser.repository.SiteUserRepository; import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.university.domain.LikedUnivApplyInfo; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -75,7 +75,7 @@ void setUp() { @Test void 마이페이지_정보를_조회한다() { // given - int likedUniversityCount = createLikedUniversities(user); + int likedUniversityCount = createLikedUnivApplyInfos(user); // when MyPageResponse response = myPageService.getMyPageInfo(user); @@ -94,13 +94,13 @@ void setUp() { @Test void 관심_대학교_목록을_조회한다() { // given - int likedUniversityCount = createLikedUniversities(user); + int likedUnivApplyInfo = createLikedUnivApplyInfos(user); // when - List response = myPageService.getWishUniversity(user); + List response = myPageService.getWishUnivApplyInfo(user); // then - assertThat(response).hasSize(likedUniversityCount); + assertThat(response).hasSize(likedUnivApplyInfo); } @Nested @@ -192,7 +192,7 @@ void setUp() { } } - private int createLikedUniversities(SiteUser testUser) { + private int createLikedUnivApplyInfos(SiteUser testUser) { LikedUnivApplyInfo likedUnivApplyInfo1 = new LikedUnivApplyInfo(null, univApplyInfoFixture.괌대학_A_지원_정보(), testUser); LikedUnivApplyInfo likedUnivApplyInfo2 = new LikedUnivApplyInfo(null, univApplyInfoFixture.메이지대학_지원_정보(), testUser); LikedUnivApplyInfo likedUnivApplyInfo3 = new LikedUnivApplyInfo(null, univApplyInfoFixture.코펜하겐IT대학_지원_정보(), testUser); diff --git a/src/test/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoiceValidatorTest.java b/src/test/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidatorTest.java similarity index 67% rename from src/test/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoiceValidatorTest.java rename to src/test/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidatorTest.java index e08f49e6a..04278e068 100644 --- a/src/test/java/com/example/solidconnection/university/dto/validation/ValidUniversityChoiceValidatorTest.java +++ b/src/test/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidatorTest.java @@ -1,6 +1,6 @@ package com.example.solidconnection.university.dto.validation; -import com.example.solidconnection.application.dto.UniversityChoiceRequest; +import com.example.solidconnection.application.dto.UnivApplyInfoChoiceRequest; import jakarta.validation.ConstraintViolation; import jakarta.validation.Validation; import jakarta.validation.Validator; @@ -17,7 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat; @DisplayName("대학 선택 유효성 검사 테스트") -class ValidUniversityChoiceValidatorTest { +class ValidUnivApplyInfoChoiceValidatorTest { private static final String MESSAGE = "message"; @@ -32,10 +32,10 @@ void setUp() { @Test void 정상적인_지망_선택은_유효하다() { // given - UniversityChoiceRequest request = new UniversityChoiceRequest(1L, 2L, 3L); + UnivApplyInfoChoiceRequest request = new UnivApplyInfoChoiceRequest(1L, 2L, 3L); // when - Set> violations = validator.validate(request); + Set> violations = validator.validate(request); // then assertThat(violations).isEmpty(); @@ -44,10 +44,10 @@ void setUp() { @Test void 첫_번째_지망만_선택하는_것은_유효하다() { // given - UniversityChoiceRequest request = new UniversityChoiceRequest(1L, null, null); + UnivApplyInfoChoiceRequest request = new UnivApplyInfoChoiceRequest(1L, null, null); // when - Set> violations = validator.validate(request); + Set> violations = validator.validate(request); // then assertThat(violations).isEmpty(); @@ -56,10 +56,10 @@ void setUp() { @Test void 두_번째_지망_없이_세_번째_지망을_선택하면_예외_응답을_반환한다() { // given - UniversityChoiceRequest request = new UniversityChoiceRequest(1L, null, 3L); + UnivApplyInfoChoiceRequest request = new UnivApplyInfoChoiceRequest(1L, null, 3L); // when - Set> violations = validator.validate(request); + Set> violations = validator.validate(request); // then assertThat(violations) @@ -70,10 +70,10 @@ void setUp() { @Test void 첫_번째_지망을_선택하지_않으면_예외_응답을_반환한다() { // given - UniversityChoiceRequest request = new UniversityChoiceRequest(null, 2L, 3L); + UnivApplyInfoChoiceRequest request = new UnivApplyInfoChoiceRequest(null, 2L, 3L); // when - Set> violations = validator.validate(request); + Set> violations = validator.validate(request); // then assertThat(violations) @@ -85,10 +85,10 @@ void setUp() { @Test void 대학을_중복_선택하면_예외_응답을_반환한다() { // given - UniversityChoiceRequest request = new UniversityChoiceRequest(1L, 1L, 2L); + UnivApplyInfoChoiceRequest request = new UnivApplyInfoChoiceRequest(1L, 1L, 2L); // when - Set> violations = validator.validate(request); + Set> violations = validator.validate(request); // then assertThat(violations) diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java index 80bf3e1d5..bc4a68141 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java @@ -4,9 +4,9 @@ import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.university.domain.LanguageTestType; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.dto.UniversityDetailResponse; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponses; +import com.example.solidconnection.university.dto.UnivApplyInfoDetailResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponses; import com.example.solidconnection.university.fixture.LanguageRequirementFixture; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import com.example.solidconnection.university.repository.UnivApplyInfoRepository; @@ -49,7 +49,7 @@ class UnivApplyInfoQueryServiceTest { UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); // when - UniversityDetailResponse response = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); + UnivApplyInfoDetailResponse response = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); // then assertThat(response.id()).isEqualTo(괌대학_A_지원_정보.getId()); @@ -61,8 +61,8 @@ class UnivApplyInfoQueryServiceTest { UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); // when - UniversityDetailResponse firstResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); - UniversityDetailResponse secondResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); + UnivApplyInfoDetailResponse firstResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); + UnivApplyInfoDetailResponse secondResponse = univApplyInfoQueryService.getUnivApplyInfoDetail(괌대학_A_지원_정보.getId()); // then assertThat(firstResponse).isEqualTo(secondResponse); @@ -93,18 +93,18 @@ class UnivApplyInfoQueryServiceTest { UnivApplyInfo 메이지대학_지원_정보 = univApplyInfoFixture.메이지대학_지원_정보(); // when - UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( + UnivApplyInfoPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( null, List.of(), null, null); // then - assertThat(response.universityInfoForApplyPreviewResponses()) + assertThat(response.univApplyInfoPreviews()) .containsExactlyInAnyOrder( - UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), - UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보), - UniversityInfoForApplyPreviewResponse.from(네바다주립대학_라스베이거스_지원_정보), - UniversityInfoForApplyPreviewResponse.from(서던덴마크대학교_지원_정보), - UniversityInfoForApplyPreviewResponse.from(그라츠대학_지원_정보), - UniversityInfoForApplyPreviewResponse.from(메이지대학_지원_정보) + UnivApplyInfoPreviewResponse.from(괌대학_A_지원_정보), + UnivApplyInfoPreviewResponse.from(괌대학_B_지원_정보), + UnivApplyInfoPreviewResponse.from(네바다주립대학_라스베이거스_지원_정보), + UnivApplyInfoPreviewResponse.from(서던덴마크대학교_지원_정보), + UnivApplyInfoPreviewResponse.from(그라츠대학_지원_정보), + UnivApplyInfoPreviewResponse.from(메이지대학_지원_정보) ); } @@ -119,9 +119,9 @@ class UnivApplyInfoQueryServiceTest { String term = "2024-1"; // when - UniversityInfoForApplyPreviewResponses firstResponse = + UnivApplyInfoPreviewResponses firstResponse = univApplyInfoQueryService.searchUnivApplyInfo(regionCode, keywords, testType, testScore); - UniversityInfoForApplyPreviewResponses secondResponse = + UnivApplyInfoPreviewResponses secondResponse = univApplyInfoQueryService.searchUnivApplyInfo(regionCode, keywords, testType, testScore); // then @@ -140,12 +140,12 @@ class UnivApplyInfoQueryServiceTest { univApplyInfoFixture.메이지대학_지원_정보(); // when - UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( + UnivApplyInfoPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( "AMERICAS", List.of(), null, null); // then - assertThat(response.universityInfoForApplyPreviewResponses()) - .containsExactlyInAnyOrder(UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보)); + assertThat(response.univApplyInfoPreviews()) + .containsExactlyInAnyOrder(UnivApplyInfoPreviewResponse.from(괌대학_A_지원_정보)); } @Test @@ -156,14 +156,14 @@ class UnivApplyInfoQueryServiceTest { UnivApplyInfo 메이지대학_지원_정보 = univApplyInfoFixture.메이지대학_지원_정보(); // when - UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( + UnivApplyInfoPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( null, List.of("라", "일본"), null, null); // then - assertThat(response.universityInfoForApplyPreviewResponses()) + assertThat(response.univApplyInfoPreviews()) .containsExactlyInAnyOrder( - UniversityInfoForApplyPreviewResponse.from(그라츠대학_지원_정보), - UniversityInfoForApplyPreviewResponse.from(메이지대학_지원_정보) + UnivApplyInfoPreviewResponse.from(그라츠대학_지원_정보), + UnivApplyInfoPreviewResponse.from(메이지대학_지원_정보) ); } @@ -178,12 +178,12 @@ class UnivApplyInfoQueryServiceTest { languageRequirementFixture.토익_900(괌대학_B_지원_정보); // when - UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( + UnivApplyInfoPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( null, List.of(), LanguageTestType.TOEFL_IBT, "70"); // then - assertThat(response.universityInfoForApplyPreviewResponses()) - .containsExactlyInAnyOrder(UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보)); + assertThat(response.univApplyInfoPreviews()) + .containsExactlyInAnyOrder(UnivApplyInfoPreviewResponse.from(괌대학_B_지원_정보)); } @Test @@ -196,11 +196,11 @@ class UnivApplyInfoQueryServiceTest { languageRequirementFixture.토플_70(서던덴마크대학교_지원_정보); // when - UniversityInfoForApplyPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( + UnivApplyInfoPreviewResponses response = univApplyInfoQueryService.searchUnivApplyInfo( "EUROPE", List.of(), LanguageTestType.TOEFL_IBT, "70"); // then - assertThat(response.universityInfoForApplyPreviewResponses()) - .containsExactly(UniversityInfoForApplyPreviewResponse.from(서던덴마크대학교_지원_정보)); + assertThat(response.univApplyInfoPreviews()) + .containsExactly(UnivApplyInfoPreviewResponse.from(서던덴마크대학교_지원_정보)); } } diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java index 828d8162a..82e40a817 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java @@ -10,8 +10,8 @@ import com.example.solidconnection.siteuser.fixture.SiteUserFixture; import com.example.solidconnection.support.TestContainerSpringBootTest; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.dto.UniversityInfoForApplyPreviewResponse; -import com.example.solidconnection.university.dto.UniversityRecommendsResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoPreviewResponse; +import com.example.solidconnection.university.dto.UnivApplyInfoRecommendsResponse; import com.example.solidconnection.university.fixture.UnivApplyInfoFixture; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -81,16 +81,16 @@ void setUp() { interestedRegionRepository.save(new InterestedRegion(user, regionFixture.영미권())); // when - UniversityRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); + UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); // then assertThat(response.recommendedUniversities()) .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsAll(List.of( - UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), - UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보), - UniversityInfoForApplyPreviewResponse.from(메모리얼대학_세인트존스_A_지원_정보), - UniversityInfoForApplyPreviewResponse.from(네바다주립대학_라스베이거스_지원_정보) + UnivApplyInfoPreviewResponse.from(괌대학_A_지원_정보), + UnivApplyInfoPreviewResponse.from(괌대학_B_지원_정보), + UnivApplyInfoPreviewResponse.from(메모리얼대학_세인트존스_A_지원_정보), + UnivApplyInfoPreviewResponse.from(네바다주립대학_라스베이거스_지원_정보) )); } @@ -100,14 +100,14 @@ void setUp() { interestedCountryRepository.save(new InterestedCountry(user, countryFixture.덴마크())); // when - UniversityRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); + UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); // then assertThat(response.recommendedUniversities()) .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsAll(List.of( - UniversityInfoForApplyPreviewResponse.from(서던덴마크대학교_지원_정보), - UniversityInfoForApplyPreviewResponse.from(코펜하겐IT대학_지원_정보) + UnivApplyInfoPreviewResponse.from(서던덴마크대학교_지원_정보), + UnivApplyInfoPreviewResponse.from(코펜하겐IT대학_지원_정보) )); } @@ -118,32 +118,32 @@ void setUp() { interestedCountryRepository.save(new InterestedCountry(user, countryFixture.덴마크())); // when - UniversityRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); + UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); // then assertThat(response.recommendedUniversities()) .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsExactlyInAnyOrder( - UniversityInfoForApplyPreviewResponse.from(괌대학_A_지원_정보), - UniversityInfoForApplyPreviewResponse.from(괌대학_B_지원_정보), - UniversityInfoForApplyPreviewResponse.from(메모리얼대학_세인트존스_A_지원_정보), - UniversityInfoForApplyPreviewResponse.from(네바다주립대학_라스베이거스_지원_정보), - UniversityInfoForApplyPreviewResponse.from(서던덴마크대학교_지원_정보), - UniversityInfoForApplyPreviewResponse.from(코펜하겐IT대학_지원_정보) + UnivApplyInfoPreviewResponse.from(괌대학_A_지원_정보), + UnivApplyInfoPreviewResponse.from(괌대학_B_지원_정보), + UnivApplyInfoPreviewResponse.from(메모리얼대학_세인트존스_A_지원_정보), + UnivApplyInfoPreviewResponse.from(네바다주립대학_라스베이거스_지원_정보), + UnivApplyInfoPreviewResponse.from(서던덴마크대학교_지원_정보), + UnivApplyInfoPreviewResponse.from(코펜하겐IT대학_지원_정보) ); } @Test void 관심사_미설정_사용자는_일반_추천_대학을_조회한다() { // when - UniversityRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); + UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); // then assertThat(response.recommendedUniversities()) .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsExactlyInAnyOrderElementsOf( generalUnivApplyInfoRecommendService.getGeneralRecommends().stream() - .map(UniversityInfoForApplyPreviewResponse::from) + .map(UnivApplyInfoPreviewResponse::from) .toList() ); } @@ -151,14 +151,14 @@ void setUp() { @Test void 일반_추천_대학을_조회한다() { // when - UniversityRecommendsResponse response = univApplyInfoRecommendService.getGeneralRecommends(); + UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getGeneralRecommends(); // then assertThat(response.recommendedUniversities()) .hasSize(RECOMMEND_UNIV_APPLY_INFO_NUM) .containsExactlyInAnyOrderElementsOf( generalUnivApplyInfoRecommendService.getGeneralRecommends().stream() - .map(UniversityInfoForApplyPreviewResponse::from) + .map(UnivApplyInfoPreviewResponse::from) .toList() ); } From 6cc10234520cd655297bedea0dd9432376c452b2 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 15:17:55 +0900 Subject: [PATCH 15/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fixture/LanguageRequirementFixture.java | 20 ++++++++-------- .../LanguageRequirementFixtureBuilder.java | 2 +- .../fixture/UnivApplyInfoFixture.java | 20 ++++++++-------- .../fixture/UnivApplyInfoFixtureBuilder.java | 2 +- ... => LikedUnivApplyInfoRepositoryTest.java} | 24 +++++++++---------- 5 files changed, 34 insertions(+), 34 deletions(-) rename src/test/java/com/example/solidconnection/university/repository/{UniversityLikeRepositoryTest.java => LikedUnivApplyInfoRepositoryTest.java} (71%) diff --git a/src/test/java/com/example/solidconnection/university/fixture/LanguageRequirementFixture.java b/src/test/java/com/example/solidconnection/university/fixture/LanguageRequirementFixture.java index 0c7bb48bd..b70515b89 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/LanguageRequirementFixture.java +++ b/src/test/java/com/example/solidconnection/university/fixture/LanguageRequirementFixture.java @@ -12,43 +12,43 @@ public class LanguageRequirementFixture { private final LanguageRequirementFixtureBuilder languageRequirementFixtureBuilder; - public LanguageRequirement 토플_80(UnivApplyInfo universityInfo) { + public LanguageRequirement 토플_80(UnivApplyInfo univApplyInfo) { return languageRequirementFixtureBuilder .languageTestType(LanguageTestType.TOEFL_IBT) .minScore("80") - .universityInfoForApply(universityInfo) + .univApplyInfo(univApplyInfo) .create(); } - public LanguageRequirement 토플_70(UnivApplyInfo universityInfo) { + public LanguageRequirement 토플_70(UnivApplyInfo univApplyInfo) { return languageRequirementFixtureBuilder .languageTestType(LanguageTestType.TOEFL_IBT) .minScore("70") - .universityInfoForApply(universityInfo) + .univApplyInfo(univApplyInfo) .create(); } - public LanguageRequirement 토익_800(UnivApplyInfo universityInfo) { + public LanguageRequirement 토익_800(UnivApplyInfo univApplyInfo) { return languageRequirementFixtureBuilder .languageTestType(LanguageTestType.TOEIC) .minScore("800") - .universityInfoForApply(universityInfo) + .univApplyInfo(univApplyInfo) .create(); } - public LanguageRequirement 토익_900(UnivApplyInfo universityInfo) { + public LanguageRequirement 토익_900(UnivApplyInfo univApplyInfo) { return languageRequirementFixtureBuilder .languageTestType(LanguageTestType.TOEIC) .minScore("900") - .universityInfoForApply(universityInfo) + .univApplyInfo(univApplyInfo) .create(); } - public LanguageRequirement JLPT_N2(UnivApplyInfo universityInfo) { + public LanguageRequirement JLPT_N2(UnivApplyInfo univApplyInfo) { return languageRequirementFixtureBuilder .languageTestType(LanguageTestType.JLPT) .minScore("N2") - .universityInfoForApply(universityInfo) + .univApplyInfo(univApplyInfo) .create(); } } diff --git a/src/test/java/com/example/solidconnection/university/fixture/LanguageRequirementFixtureBuilder.java b/src/test/java/com/example/solidconnection/university/fixture/LanguageRequirementFixtureBuilder.java index 81e856f4b..01f03e716 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/LanguageRequirementFixtureBuilder.java +++ b/src/test/java/com/example/solidconnection/university/fixture/LanguageRequirementFixtureBuilder.java @@ -27,7 +27,7 @@ public LanguageRequirementFixtureBuilder minScore(String minScore) { return this; } - public LanguageRequirementFixtureBuilder universityInfoForApply(UnivApplyInfo univApplyInfo) { + public LanguageRequirementFixtureBuilder univApplyInfo(UnivApplyInfo univApplyInfo) { this.univApplyInfo = univApplyInfo; return this; } diff --git a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixture.java b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixture.java index d394b6206..12c5efa07 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixture.java +++ b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixture.java @@ -16,7 +16,7 @@ public class UnivApplyInfoFixture { public String term; public UnivApplyInfo 괌대학_A_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("괌대학(A형)") .university(universityFixture.괌_대학()) @@ -24,7 +24,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 괌대학_B_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("괌대학(B형)") .university(universityFixture.괌_대학()) @@ -32,7 +32,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 네바다주립대학_라스베이거스_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("네바다주립대학 라스베이거스(B형)") .university(universityFixture.네바다주립_대학_라스베이거스()) @@ -40,7 +40,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 메모리얼대학_세인트존스_A_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("메모리얼 대학 세인트존스(A형)") .university(universityFixture.메모리얼_대학_세인트존스()) @@ -48,7 +48,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 서던덴마크대학교_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("서던덴마크대학교") .university(universityFixture.서던덴마크_대학()) @@ -56,7 +56,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 코펜하겐IT대학_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("코펜하겐 IT대학") .university(universityFixture.코펜하겐IT_대학()) @@ -64,7 +64,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 그라츠대학_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("그라츠 대학") .university(universityFixture.그라츠_대학()) @@ -72,7 +72,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 그라츠공과대학_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("그라츠공과대학") .university(universityFixture.그라츠공과_대학()) @@ -80,7 +80,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 린츠_카톨릭대학_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("린츠 카톨릭 대학교") .university(universityFixture.린츠_카톨릭_대학()) @@ -88,7 +88,7 @@ public class UnivApplyInfoFixture { } public UnivApplyInfo 메이지대학_지원_정보() { - return univApplyInfoFixtureBuilder.universityInfoForApply() + return univApplyInfoFixtureBuilder.univApplyInfo() .term(term) .koreanName("메이지대학") .university(universityFixture.메이지_대학()) diff --git a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java index 1771b7fa8..0989beaca 100644 --- a/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java +++ b/src/test/java/com/example/solidconnection/university/fixture/UnivApplyInfoFixtureBuilder.java @@ -21,7 +21,7 @@ public class UnivApplyInfoFixtureBuilder { private String koreanName; private University university; - public UnivApplyInfoFixtureBuilder universityInfoForApply() { + public UnivApplyInfoFixtureBuilder univApplyInfo() { return new UnivApplyInfoFixtureBuilder(univApplyInfoRepository); } diff --git a/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java b/src/test/java/com/example/solidconnection/university/repository/LikedUnivApplyInfoRepositoryTest.java similarity index 71% rename from src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java rename to src/test/java/com/example/solidconnection/university/repository/LikedUnivApplyInfoRepositoryTest.java index 1ab769481..1d3094e31 100644 --- a/src/test/java/com/example/solidconnection/university/repository/UniversityLikeRepositoryTest.java +++ b/src/test/java/com/example/solidconnection/university/repository/LikedUnivApplyInfoRepositoryTest.java @@ -16,7 +16,7 @@ @TestContainerSpringBootTest @DisplayName("대학교 좋아요 레파지토리 테스트") -public class UniversityLikeRepositoryTest { +public class LikedUnivApplyInfoRepositoryTest { @Autowired private LikedUnivApplyInfoRepository likedUnivApplyInfoRepository; @@ -34,12 +34,12 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 void 같은_사용자가_같은_대학에_중복으로_좋아요하면_예외_응답을_반환한다() { // given SiteUser user = siteUserFixture.사용자(); - UnivApplyInfo university = univApplyInfoFixture.괌대학_A_지원_정보(); + UnivApplyInfo univApplyInfo = univApplyInfoFixture.괌대학_A_지원_정보(); - LikedUnivApplyInfo firstLike = createLikedUniversity(user, university); + LikedUnivApplyInfo firstLike = createLikedUnivApplyInfo(user, univApplyInfo); likedUnivApplyInfoRepository.save(firstLike); - LikedUnivApplyInfo secondLike = createLikedUniversity(user, university); + LikedUnivApplyInfo secondLike = createLikedUnivApplyInfo(user, univApplyInfo); // when & then assertThatCode(() -> likedUnivApplyInfoRepository.save(secondLike)) @@ -51,12 +51,12 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 // given SiteUser user1 = siteUserFixture.사용자(1, "user1"); SiteUser user2 = siteUserFixture.사용자(2, "user2"); - UnivApplyInfo university = univApplyInfoFixture.괌대학_A_지원_정보(); + UnivApplyInfo univApplyInfo = univApplyInfoFixture.괌대학_A_지원_정보(); - LikedUnivApplyInfo firstLike = createLikedUniversity(user1, university); + LikedUnivApplyInfo firstLike = createLikedUnivApplyInfo(user1, univApplyInfo); likedUnivApplyInfoRepository.save(firstLike); - LikedUnivApplyInfo secondLike = createLikedUniversity(user2, university); + LikedUnivApplyInfo secondLike = createLikedUnivApplyInfo(user2, univApplyInfo); // when & then assertThatCode(() -> likedUnivApplyInfoRepository.save(secondLike)).doesNotThrowAnyException(); @@ -66,20 +66,20 @@ class 사용자와_좋아요한_대학은_복합_유니크_제약조건을_갖 void 같은_사용자가_다른_대학에_좋아요하면_정상_저장된다() { // given SiteUser user = siteUserFixture.사용자(); - UnivApplyInfo university1 = univApplyInfoFixture.괌대학_A_지원_정보(); - UnivApplyInfo university2 = univApplyInfoFixture.메이지대학_지원_정보(); + UnivApplyInfo univApplyInfo1 = univApplyInfoFixture.괌대학_A_지원_정보(); + UnivApplyInfo univApplyInfo2 = univApplyInfoFixture.메이지대학_지원_정보(); - LikedUnivApplyInfo firstLike = createLikedUniversity(user, university1); + LikedUnivApplyInfo firstLike = createLikedUnivApplyInfo(user, univApplyInfo1); likedUnivApplyInfoRepository.save(firstLike); - LikedUnivApplyInfo secondLike = createLikedUniversity(user, university2); + LikedUnivApplyInfo secondLike = createLikedUnivApplyInfo(user, univApplyInfo2); // when & then assertThatCode(() -> likedUnivApplyInfoRepository.save(secondLike)).doesNotThrowAnyException(); } } - private LikedUnivApplyInfo createLikedUniversity(SiteUser siteUser, UnivApplyInfo univApplyInfo) { + private LikedUnivApplyInfo createLikedUnivApplyInfo(SiteUser siteUser, UnivApplyInfo univApplyInfo) { return LikedUnivApplyInfo.builder() .siteUser(siteUser) .univApplyInfo(univApplyInfo) From cf63e1ddea6ff5ad2b6ae84db7ce7628904d34fd Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Wed, 25 Jun 2025 15:20:04 +0900 Subject: [PATCH 16/25] =?UTF-8?q?refactor:=20UNIV=5FAPPLY=5FINFO=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20ErrorCode=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/exception/ErrorCode.java | 10 +++++----- .../ValidUnivApplyInfoChoiceValidator.java | 4 ++-- .../repository/UnivApplyInfoRepository.java | 4 ++-- .../service/UnivApplyInfoLikeService.java | 8 ++++---- .../ValidUnivApplyInfoChoiceValidatorTest.java | 4 ++-- .../service/UnivApplyInfoLikeServiceTest.java | 14 +++++++------- .../service/UnivApplyInfoQueryServiceTest.java | 4 ++-- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/example/solidconnection/common/exception/ErrorCode.java b/src/main/java/com/example/solidconnection/common/exception/ErrorCode.java index 00e600201..ecacb1700 100644 --- a/src/main/java/com/example/solidconnection/common/exception/ErrorCode.java +++ b/src/main/java/com/example/solidconnection/common/exception/ErrorCode.java @@ -33,8 +33,8 @@ public enum ErrorCode { SIGN_UP_TOKEN_NOT_ISSUED_BY_SERVER(HttpStatus.BAD_REQUEST.value(), "회원가입 토큰이 우리 서버에서 발급되지 않았습니다."), // data not found - UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND(HttpStatus.NOT_FOUND.value(), "존재하지 않는 대학교 지원 정보입니다."), - UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND_FOR_TERM(HttpStatus.NOT_FOUND.value(), "해당하는 대학교가 이번 모집 기간에 열리지 않았습니다."), + UNIV_APPLY_INFO_NOT_FOUND(HttpStatus.NOT_FOUND.value(), "존재하지 않는 대학교 지원 정보입니다."), + UNIV_APPLY_INFO_NOT_FOUND_FOR_TERM(HttpStatus.NOT_FOUND.value(), "해당하는 대학교가 이번 모집 기간에 열리지 않았습니다."), APPLICATION_NOT_FOUND(HttpStatus.NOT_FOUND.value(), "사용자의 대학 지원 정보를 찾을 수 없습니다."), USER_NOT_FOUND(HttpStatus.NOT_FOUND.value(), "회원을 찾을 수 없습니다."), UNIVERSITY_NOT_FOUND(HttpStatus.NOT_FOUND.value(), "대학교를 찾을 수 없습니다."), @@ -71,7 +71,7 @@ public enum ErrorCode { PROFILE_IMAGE_NEEDED(HttpStatus.BAD_REQUEST.value(), "프로필 이미지가 필요합니다."), FIRST_CHOICE_REQUIRED(HttpStatus.BAD_REQUEST.value(), "1지망 대학교를 입력해주세요."), THIRD_CHOICE_REQUIRES_SECOND(HttpStatus.BAD_REQUEST.value(), "2지망 없이 3지망을 선택할 수 없습니다."), - DUPLICATE_UNIVERSITY_CHOICE(HttpStatus.BAD_REQUEST.value(), "지망 선택이 중복되었습니다."), + DUPLICATE_UNIV_APPLY_INFO_CHOICE(HttpStatus.BAD_REQUEST.value(), "지망 선택이 중복되었습니다."), // community INVALID_POST_CATEGORY(HttpStatus.BAD_REQUEST.value(), "잘못된 카테고리명입니다."), @@ -86,8 +86,8 @@ public enum ErrorCode { CAN_NOT_UPDATE_DEPRECATED_COMMENT(HttpStatus.BAD_REQUEST.value(), "이미 삭제된 댓글을 수정할 수 없습니다."), INVALID_POST_LIKE(HttpStatus.BAD_REQUEST.value(), "존재하지 않는 게시글 좋아요입니다."), DUPLICATE_POST_LIKE(HttpStatus.BAD_REQUEST.value(), "이미 좋아요한 게시글입니다."), - ALREADY_LIKED_UNIVERSITY(HttpStatus.BAD_REQUEST.value(), "이미 좋아요한 대학입니다."), - NOT_LIKED_UNIVERSITY(HttpStatus.BAD_REQUEST.value(), "좋아요하지 않은 대학입니다."), + ALREADY_LIKED_UNIV_APPLY_INFO(HttpStatus.BAD_REQUEST.value(), "이미 좋아요한 대학입니다."), + NOT_LIKED_UNIV_APPLY_INFO(HttpStatus.BAD_REQUEST.value(), "좋아요하지 않은 대학입니다."), // score INVALID_GPA_SCORE_STATUS(HttpStatus.BAD_REQUEST.value(), "학점이 승인되지 않았습니다."), diff --git a/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java b/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java index 1ec12829c..92caa1ae3 100644 --- a/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java +++ b/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java @@ -9,7 +9,7 @@ import java.util.Set; import java.util.stream.Stream; -import static com.example.solidconnection.common.exception.ErrorCode.DUPLICATE_UNIVERSITY_CHOICE; +import static com.example.solidconnection.common.exception.ErrorCode.DUPLICATE_UNIV_APPLY_INFO_CHOICE; import static com.example.solidconnection.common.exception.ErrorCode.FIRST_CHOICE_REQUIRED; import static com.example.solidconnection.common.exception.ErrorCode.THIRD_CHOICE_REQUIRES_SECOND; @@ -32,7 +32,7 @@ public boolean isValid(UnivApplyInfoChoiceRequest request, ConstraintValidatorCo } if (isDuplicate(request)) { - context.buildConstraintViolationWithTemplate(DUPLICATE_UNIVERSITY_CHOICE.getMessage()) + context.buildConstraintViolationWithTemplate(DUPLICATE_UNIV_APPLY_INFO_CHOICE.getMessage()) .addConstraintViolation(); return false; } diff --git a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java index 3f25a60c9..3954937b6 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java @@ -13,7 +13,7 @@ import java.util.List; import java.util.Optional; -import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; +import static com.example.solidconnection.common.exception.ErrorCode.UNIV_APPLY_INFO_NOT_FOUND; @Repository public interface UnivApplyInfoRepository extends JpaRepository, UnivApplyInfoFilterRepository { @@ -61,7 +61,7 @@ ORDER BY RAND() default UnivApplyInfo getUnivApplyInfoById(Long id) { return findById(id) - .orElseThrow(() -> new CustomException(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND)); + .orElseThrow(() -> new CustomException(UNIV_APPLY_INFO_NOT_FOUND)); } @Query(""" diff --git a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java index f4114c211..0d3fc4d96 100644 --- a/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java +++ b/src/main/java/com/example/solidconnection/university/service/UnivApplyInfoLikeService.java @@ -15,8 +15,8 @@ import java.util.Optional; -import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIVERSITY; -import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIVERSITY; +import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIV_APPLY_INFO; +import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIV_APPLY_INFO; @RequiredArgsConstructor @Service @@ -40,7 +40,7 @@ public LikeResultResponse likeUnivApplyInfo(SiteUser siteUser, Long univApplyInf Optional optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUnivApplyInfo.isPresent()) { - throw new CustomException(ALREADY_LIKED_UNIVERSITY); + throw new CustomException(ALREADY_LIKED_UNIV_APPLY_INFO); } LikedUnivApplyInfo likedUnivApplyInfo = LikedUnivApplyInfo.builder() @@ -60,7 +60,7 @@ public LikeResultResponse cancelLikeUnivApplyInfo(SiteUser siteUser, long univAp Optional optionalLikedUnivApplyInfo = likedUnivApplyInfoRepository.findBySiteUserAndUnivApplyInfo(siteUser, univApplyInfo); if (optionalLikedUnivApplyInfo.isEmpty()) { - throw new CustomException(NOT_LIKED_UNIVERSITY); + throw new CustomException(NOT_LIKED_UNIV_APPLY_INFO); } likedUnivApplyInfoRepository.delete(optionalLikedUnivApplyInfo.get()); diff --git a/src/test/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidatorTest.java b/src/test/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidatorTest.java index 04278e068..84a41d801 100644 --- a/src/test/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidatorTest.java +++ b/src/test/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidatorTest.java @@ -11,7 +11,7 @@ import java.util.Set; -import static com.example.solidconnection.common.exception.ErrorCode.DUPLICATE_UNIVERSITY_CHOICE; +import static com.example.solidconnection.common.exception.ErrorCode.DUPLICATE_UNIV_APPLY_INFO_CHOICE; import static com.example.solidconnection.common.exception.ErrorCode.FIRST_CHOICE_REQUIRED; import static com.example.solidconnection.common.exception.ErrorCode.THIRD_CHOICE_REQUIRES_SECOND; import static org.assertj.core.api.Assertions.assertThat; @@ -94,6 +94,6 @@ void setUp() { assertThat(violations) .isNotEmpty() .extracting(MESSAGE) - .contains(DUPLICATE_UNIVERSITY_CHOICE.getMessage()); + .contains(DUPLICATE_UNIV_APPLY_INFO_CHOICE.getMessage()); } } diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java index e48856f47..96b4a28e0 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java @@ -16,9 +16,9 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIVERSITY; -import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIVERSITY; -import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; +import static com.example.solidconnection.common.exception.ErrorCode.ALREADY_LIKED_UNIV_APPLY_INFO; +import static com.example.solidconnection.common.exception.ErrorCode.NOT_LIKED_UNIV_APPLY_INFO; +import static com.example.solidconnection.common.exception.ErrorCode.UNIV_APPLY_INFO_NOT_FOUND; import static com.example.solidconnection.university.service.UnivApplyInfoLikeService.LIKE_CANCELED_MESSAGE; import static com.example.solidconnection.university.service.UnivApplyInfoLikeService.LIKE_SUCCESS_MESSAGE; import static org.assertj.core.api.Assertions.assertThat; @@ -75,7 +75,7 @@ class 대학_좋아요를_등록한다 { // when & then assertThatCode(() -> univApplyInfoLikeService.likeUnivApplyInfo(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) - .hasMessage(ALREADY_LIKED_UNIVERSITY.getMessage()); + .hasMessage(ALREADY_LIKED_UNIV_APPLY_INFO.getMessage()); } } @@ -104,7 +104,7 @@ class 대학_좋아요를_취소한다 { // when & then assertThatCode(() -> univApplyInfoLikeService.cancelLikeUnivApplyInfo(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) - .hasMessage(NOT_LIKED_UNIVERSITY.getMessage()); + .hasMessage(NOT_LIKED_UNIV_APPLY_INFO.getMessage()); } } @@ -116,7 +116,7 @@ class 대학_좋아요를_취소한다 { // when & then assertThatCode(() -> univApplyInfoLikeService.likeUnivApplyInfo(user, invalidUnivApplyInfoId)) .isInstanceOf(CustomException.class) - .hasMessage(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND.getMessage()); + .hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); } @Test @@ -148,7 +148,7 @@ class 대학_좋아요를_취소한다 { // when & then assertThatCode(() -> univApplyInfoLikeService.getIsLiked(user, invalidUnivApplyInfoId)) .isInstanceOf(CustomException.class) - .hasMessage(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND.getMessage()); + .hasMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); } private void saveLikedUniversity(SiteUser siteUser, UnivApplyInfo univApplyInfo) { diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java index bc4a68141..edf986b07 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java @@ -18,7 +18,7 @@ import java.util.List; -import static com.example.solidconnection.common.exception.ErrorCode.UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND; +import static com.example.solidconnection.common.exception.ErrorCode.UNIV_APPLY_INFO_NOT_FOUND; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType; import static org.mockito.BDDMockito.then; @@ -79,7 +79,7 @@ class UnivApplyInfoQueryServiceTest { .isThrownBy(() -> univApplyInfoQueryService.getUnivApplyInfoDetail(invalidUniversityInfoForApplyId)) .havingRootCause() .isInstanceOf(CustomException.class) - .withMessage(UNIVERSITY_INFO_FOR_APPLY_NOT_FOUND.getMessage()); + .withMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); } @Test From 0bde9613a686e2577c9541f1695debd47a477a26 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 26 Jun 2025 02:39:13 +0900 Subject: [PATCH 17/25] =?UTF-8?q?refactor:=20=EC=A7=80=EC=9B=90=EC=9E=90?= =?UTF-8?q?=20=EC=9D=91=EB=8B=B5=20Dto=20=EC=9D=B4=EB=A6=84=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Application 도메인의 의미상, '대학에 지원한다'는 내용이 포함되어있다. - 코드 전체적으로 위 내용의 합의되어있기도 하다. (application 앞에 University를 붙이지 않음) - 따라서 University나 UnivApplyInfo이 없는 이름으로 변경한다. --- ...sResponse.java => ApplicantsResponse.java} | 6 +++--- .../application/dto/ApplicationsResponse.java | 6 +++--- .../service/ApplicationQueryService.java | 12 +++++------ .../service/ApplicationQueryServiceTest.java | 20 +++++++++---------- 4 files changed, 22 insertions(+), 22 deletions(-) rename src/main/java/com/example/solidconnection/application/dto/{UniversityApplicantsResponse.java => ApplicantsResponse.java} (82%) diff --git a/src/main/java/com/example/solidconnection/application/dto/UniversityApplicantsResponse.java b/src/main/java/com/example/solidconnection/application/dto/ApplicantsResponse.java similarity index 82% rename from src/main/java/com/example/solidconnection/application/dto/UniversityApplicantsResponse.java rename to src/main/java/com/example/solidconnection/application/dto/ApplicantsResponse.java index 1fe24546f..72fbc9c22 100644 --- a/src/main/java/com/example/solidconnection/application/dto/UniversityApplicantsResponse.java +++ b/src/main/java/com/example/solidconnection/application/dto/ApplicantsResponse.java @@ -6,14 +6,14 @@ import java.util.List; -public record UniversityApplicantsResponse( +public record ApplicantsResponse( String koreanName, int studentCapacity, String region, String country, List applicants) { - public static UniversityApplicantsResponse of(UnivApplyInfo univApplyInfo, List applications, SiteUser siteUser) { - return new UniversityApplicantsResponse( + public static ApplicantsResponse of(UnivApplyInfo univApplyInfo, List applications, SiteUser siteUser) { + return new ApplicantsResponse( univApplyInfo.getKoreanName(), univApplyInfo.getStudentCapacity(), univApplyInfo.getUniversity().getRegion().getKoreanName(), diff --git a/src/main/java/com/example/solidconnection/application/dto/ApplicationsResponse.java b/src/main/java/com/example/solidconnection/application/dto/ApplicationsResponse.java index a3429c1ef..13c641bb0 100644 --- a/src/main/java/com/example/solidconnection/application/dto/ApplicationsResponse.java +++ b/src/main/java/com/example/solidconnection/application/dto/ApplicationsResponse.java @@ -3,7 +3,7 @@ import java.util.List; public record ApplicationsResponse( - List firstChoice, - List secondChoice, - List thirdChoice) { + List firstChoice, + List secondChoice, + List thirdChoice) { } diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 0b2f14455..90cca5fd4 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -3,7 +3,7 @@ import com.example.solidconnection.application.domain.Application; import com.example.solidconnection.application.domain.VerifyStatus; import com.example.solidconnection.application.dto.ApplicationsResponse; -import com.example.solidconnection.application.dto.UniversityApplicantsResponse; +import com.example.solidconnection.application.dto.ApplicantsResponse; import com.example.solidconnection.application.repository.ApplicationRepository; import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.siteuser.domain.SiteUser; @@ -84,11 +84,11 @@ private ApplicationsResponse classifyApplicationsByChoice( Map> secondChoiceMap = createChoiceMap(applications, Application::getSecondChoiceUnivApplyInfoId); Map> thirdChoiceMap = createChoiceMap(applications, Application::getThirdChoiceUnivApplyInfoId); - List firstChoiceApplicants = + List firstChoiceApplicants = createUniversityApplicantsResponses(universityInfosForApply, firstChoiceMap, siteUser); - List secondChoiceApplicants = + List secondChoiceApplicants = createUniversityApplicantsResponses(universityInfosForApply, secondChoiceMap, siteUser); - List thirdChoiceApplicants = + List thirdChoiceApplicants = createUniversityApplicantsResponses(universityInfosForApply, thirdChoiceMap, siteUser); return new ApplicationsResponse(firstChoiceApplicants, secondChoiceApplicants, thirdChoiceApplicants); @@ -109,12 +109,12 @@ private Map> createChoiceMap( return choiceMap; } - private List createUniversityApplicantsResponses( + private List createUniversityApplicantsResponses( List universityInfosForApply, Map> choiceMap, SiteUser siteUser) { return universityInfosForApply.stream() - .map(uia -> UniversityApplicantsResponse.of(uia, choiceMap.getOrDefault(uia.getId(), List.of()), siteUser)) + .map(uia -> ApplicantsResponse.of(uia, choiceMap.getOrDefault(uia.getId(), List.of()), siteUser)) .toList(); } diff --git a/src/test/java/com/example/solidconnection/application/service/ApplicationQueryServiceTest.java b/src/test/java/com/example/solidconnection/application/service/ApplicationQueryServiceTest.java index 2f93b08f0..488e85e63 100644 --- a/src/test/java/com/example/solidconnection/application/service/ApplicationQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/application/service/ApplicationQueryServiceTest.java @@ -4,7 +4,7 @@ import com.example.solidconnection.application.domain.VerifyStatus; import com.example.solidconnection.application.dto.ApplicantResponse; import com.example.solidconnection.application.dto.ApplicationsResponse; -import com.example.solidconnection.application.dto.UniversityApplicantsResponse; +import com.example.solidconnection.application.dto.ApplicantsResponse; import com.example.solidconnection.application.fixture.ApplicationFixture; import com.example.solidconnection.application.repository.ApplicationRepository; import com.example.solidconnection.location.region.fixture.RegionFixture; @@ -140,11 +140,11 @@ class 지원자_목록_조회_테스트 { // then assertThat(response.firstChoice()).containsAll(List.of( - UniversityApplicantsResponse.of(괌대학_A_지원_정보, + ApplicantsResponse.of(괌대학_A_지원_정보, List.of(application1), user1), - UniversityApplicantsResponse.of(괌대학_B_지원_정보, + ApplicantsResponse.of(괌대학_B_지원_정보, List.of(application2), user1), - UniversityApplicantsResponse.of(서던덴마크대학교_지원_정보, + ApplicantsResponse.of(서던덴마크대학교_지원_정보, List.of(application3), user1) )); } @@ -192,9 +192,9 @@ class 지원자_목록_조회_테스트 { // then assertThat(response.firstChoice()).containsExactlyInAnyOrder( - UniversityApplicantsResponse.of(괌대학_A_지원_정보, + ApplicantsResponse.of(괌대학_A_지원_정보, List.of(application1), user1), - UniversityApplicantsResponse.of(괌대학_B_지원_정보, + ApplicantsResponse.of(괌대학_B_지원_정보, List.of(application2), user1) ); } @@ -242,9 +242,9 @@ class 지원자_목록_조회_테스트 { // then assertThat(response.firstChoice()).containsExactlyInAnyOrder( - UniversityApplicantsResponse.of(괌대학_A_지원_정보, + ApplicantsResponse.of(괌대학_A_지원_정보, List.of(application1), user1), - UniversityApplicantsResponse.of(괌대학_B_지원_정보, + ApplicantsResponse.of(괌대학_B_지원_정보, List.of(application2), user1) ); } @@ -272,7 +272,7 @@ class 지원자_목록_조회_테스트 { // then assertThat(response.firstChoice()).doesNotContainAnyElementsOf(List.of( - UniversityApplicantsResponse.of(괌대학_A_지원_정보, + ApplicantsResponse.of(괌대학_A_지원_정보, List.of(application), user1) )); } @@ -358,7 +358,7 @@ class 경쟁자_목록_조회_테스트 { // then assertThat(response.firstChoice()).containsExactlyInAnyOrder( - UniversityApplicantsResponse.of(괌대학_A_지원_정보, + ApplicantsResponse.of(괌대학_A_지원_정보, List.of(application1, application2), user1) ); } From fa91c814cf51117085cb11f7e7e5e3a4d5cc9d1f Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 26 Jun 2025 02:42:19 +0900 Subject: [PATCH 18/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20applicationService=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ApplicationQueryService.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 90cca5fd4..725216a61 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -58,7 +58,7 @@ public ApplicationsResponse getApplicants(SiteUser siteUser, String regionCode, public ApplicationsResponse getApplicantsByUserApplications(SiteUser siteUser) { Application userLatestApplication = applicationRepository.getApplicationBySiteUserAndTerm(siteUser, term); - List universityInfoForApplyIds = Stream.of( + List univApplyInfoIds = Stream.of( userLatestApplication.getFirstChoiceUnivApplyInfoId(), userLatestApplication.getSecondChoiceUnivApplyInfoId(), userLatestApplication.getThirdChoiceUnivApplyInfoId() @@ -66,12 +66,12 @@ public ApplicationsResponse getApplicantsByUserApplications(SiteUser siteUser) { .filter(Objects::nonNull) .collect(Collectors.toList()); - if (universityInfoForApplyIds.isEmpty()) { + if (univApplyInfoIds.isEmpty()) { return new ApplicationsResponse(List.of(), List.of(), List.of()); } - List applications = applicationRepository.findAllByUnivApplyInfoIds(universityInfoForApplyIds, VerifyStatus.APPROVED, term); - List universityInfosForApply = univApplyInfoRepository.findAllByUniversityIds(universityInfoForApplyIds); + List applications = applicationRepository.findAllByUnivApplyInfoIds(univApplyInfoIds, VerifyStatus.APPROVED, term); + List universityInfosForApply = univApplyInfoRepository.findAllByUniversityIds(univApplyInfoIds); return classifyApplicationsByChoice(universityInfosForApply, applications, siteUser); } From 2834221e9efa637ddf53967e11d276de1d40e4e0 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 26 Jun 2025 02:43:12 +0900 Subject: [PATCH 19/25] =?UTF-8?q?refactor:=20JPA=20=ED=91=9C=EC=A4=80?= =?UTF-8?q?=EC=97=90=20=EB=A7=9E=EA=B2=8C=20=ED=95=A8=EC=88=98=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../application/service/ApplicationQueryService.java | 2 +- .../university/repository/UnivApplyInfoRepository.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 725216a61..20610c48f 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -71,7 +71,7 @@ public ApplicationsResponse getApplicantsByUserApplications(SiteUser siteUser) { } List applications = applicationRepository.findAllByUnivApplyInfoIds(univApplyInfoIds, VerifyStatus.APPROVED, term); - List universityInfosForApply = univApplyInfoRepository.findAllByUniversityIds(univApplyInfoIds); + List universityInfosForApply = univApplyInfoRepository.findAllByIds(univApplyInfoIds); return classifyApplicationsByChoice(universityInfosForApply, applications, siteUser); } diff --git a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java index 3954937b6..784c4c540 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java @@ -72,7 +72,7 @@ default UnivApplyInfo getUnivApplyInfoById(Long id) { JOIN FETCH u.region r WHERE uai.id IN :ids """) - List findAllByUniversityIds(@Param("ids") List ids); + List findAllByIds(@Param("ids") List ids); @Query(""" SELECT DISTINCT uai From 0b2bfa10925f6811828ccafce76e2b3951bc0f8d Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Thu, 26 Jun 2025 02:48:27 +0900 Subject: [PATCH 20/25] =?UTF-8?q?chore:=20=EC=B6=94=ED=9B=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=ED=95=B4=EC=95=BC=20=ED=95=A0=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../university/controller/UnivApplyInfoController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java index 30b065138..d39518e5d 100644 --- a/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java +++ b/src/main/java/com/example/solidconnection/university/controller/UnivApplyInfoController.java @@ -45,6 +45,7 @@ public ResponseEntity getUnivApplyInfoRecommend } } + // todo: return 타입 UnivApplyInfoPreviewResponses 같이 객체로 묶어서 반환하는 것으로 변경 필요 @GetMapping("/like") public ResponseEntity> getMyWishUnivApplyInfo( /* todo: wish 가 아니라 liked 로 변경 필요 - 코드 용어 통일 */ @AuthorizedUser SiteUser siteUser From 0443d3bef0518e6bdf14844d067b87be07f685d2 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sat, 28 Jun 2025 17:06:47 +0900 Subject: [PATCH 21/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20Dto=ED=95=84=EB=93=9C?= =?UTF-8?q?=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - JsonProperties로 Json key는 유지하되, 필드와 인자명은 코드 전체에서 통일되게한다. --- .../application/dto/ApplyRequest.java | 4 +++- .../dto/UnivApplyInfoChoiceRequest.java | 14 +++++++---- .../service/ApplicationSubmissionService.java | 14 +++++------ .../ValidUnivApplyInfoChoiceValidator.java | 10 ++++---- .../fixture/ApplicationFixture.java | 13 +++++----- .../fixture/ApplicationFixtureBuilder.java | 24 +++++++++---------- 6 files changed, 43 insertions(+), 36 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/dto/ApplyRequest.java b/src/main/java/com/example/solidconnection/application/dto/ApplyRequest.java index 7497eaa3f..cab079b21 100644 --- a/src/main/java/com/example/solidconnection/application/dto/ApplyRequest.java +++ b/src/main/java/com/example/solidconnection/application/dto/ApplyRequest.java @@ -1,5 +1,6 @@ package com.example.solidconnection.application.dto; +import com.fasterxml.jackson.annotation.JsonProperty; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; @@ -12,6 +13,7 @@ public record ApplyRequest( Long languageTestScoreId, @Valid - UnivApplyInfoChoiceRequest universityChoiceRequest // todo: #345 프론트에 univApplyInfoChoiceRequest 로 요청 받는다고 전달 후, 인자명 & bruno 변경 필요 + @JsonProperty("universityChoiceRequest") + UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest ) { } diff --git a/src/main/java/com/example/solidconnection/application/dto/UnivApplyInfoChoiceRequest.java b/src/main/java/com/example/solidconnection/application/dto/UnivApplyInfoChoiceRequest.java index 1aedb44f3..9598a191b 100644 --- a/src/main/java/com/example/solidconnection/application/dto/UnivApplyInfoChoiceRequest.java +++ b/src/main/java/com/example/solidconnection/application/dto/UnivApplyInfoChoiceRequest.java @@ -1,11 +1,17 @@ package com.example.solidconnection.application.dto; import com.example.solidconnection.university.dto.validation.ValidUnivApplyInfoChoice; +import com.fasterxml.jackson.annotation.JsonProperty; @ValidUnivApplyInfoChoice public record UnivApplyInfoChoiceRequest( - Long firstChoiceUniversityId, - Long secondChoiceUniversityId, - Long thirdChoiceUniversityId) { - // todo: #345 프론트에 firstChoiceUnivApplyInfoId, secondChoiceUnivApplyInfoId, thirdChoiceUnivApplyInfoId로 요청 받는고 전달 후, 인자명 & bruno 변경 필요 + + @JsonProperty("firstChoiceUniversityId") + Long firstChoiceUnivApplyInfoId, + + @JsonProperty("secondChoiceUniversityId") + Long secondChoiceUnivApplyInfoId, + + @JsonProperty("thirdChoiceUniversityId") + Long thirdChoiceUnivApplyInfoId) { } diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java index 0d659184e..2d307992b 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationSubmissionService.java @@ -42,13 +42,13 @@ public class ApplicationSubmissionService { // 기존에 있던 status field 우선 APRROVED로 입력시킨다. @Transactional public ApplicationSubmissionResponse apply(SiteUser siteUser, ApplyRequest applyRequest) { - UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest = applyRequest.universityChoiceRequest(); + UnivApplyInfoChoiceRequest univApplyInfoChoiceRequest = applyRequest.univApplyInfoChoiceRequest(); GpaScore gpaScore = getValidGpaScore(siteUser, applyRequest.gpaScoreId()); LanguageTestScore languageTestScore = getValidLanguageTestScore(siteUser, applyRequest.languageTestScoreId()); - long firstChoiceUniversityId = univApplyInfoChoiceRequest.firstChoiceUniversityId(); - Long secondChoiceUniversityId = univApplyInfoChoiceRequest.secondChoiceUniversityId(); - Long thirdChoiceUniversityId = univApplyInfoChoiceRequest.thirdChoiceUniversityId(); + long firstChoiceUnivApplyInfoId = univApplyInfoChoiceRequest.firstChoiceUnivApplyInfoId(); + Long secondChoiceUnivApplyInfoId = univApplyInfoChoiceRequest.secondChoiceUnivApplyInfoId(); + Long thirdChoiceUnivApplyInfoId = univApplyInfoChoiceRequest.thirdChoiceUnivApplyInfoId(); Optional existingApplication = applicationRepository.findBySiteUserAndTerm(siteUser, term); int updateCount = existingApplication @@ -65,9 +65,9 @@ public ApplicationSubmissionResponse apply(SiteUser siteUser, ApplyRequest apply languageTestScore.getLanguageTest(), term, updateCount, - firstChoiceUniversityId, - secondChoiceUniversityId, - thirdChoiceUniversityId, + firstChoiceUnivApplyInfoId, + secondChoiceUnivApplyInfoId, + thirdChoiceUnivApplyInfoId, getRandomNickname() ); diff --git a/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java b/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java index 92caa1ae3..a49d631d1 100644 --- a/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java +++ b/src/main/java/com/example/solidconnection/university/dto/validation/ValidUnivApplyInfoChoiceValidator.java @@ -41,19 +41,19 @@ public boolean isValid(UnivApplyInfoChoiceRequest request, ConstraintValidatorCo } private boolean isFirstChoiceNotSelected(UnivApplyInfoChoiceRequest request) { - return request.firstChoiceUniversityId() == null; + return request.firstChoiceUnivApplyInfoId() == null; } private boolean isThirdChoiceWithoutSecond(UnivApplyInfoChoiceRequest request) { - return request.thirdChoiceUniversityId() != null && request.secondChoiceUniversityId() == null; + return request.thirdChoiceUnivApplyInfoId() != null && request.secondChoiceUnivApplyInfoId() == null; } private boolean isDuplicate(UnivApplyInfoChoiceRequest request) { Set uniqueIds = new HashSet<>(); return Stream.of( - request.firstChoiceUniversityId(), - request.secondChoiceUniversityId(), - request.thirdChoiceUniversityId() + request.firstChoiceUnivApplyInfoId(), + request.secondChoiceUnivApplyInfoId(), + request.thirdChoiceUnivApplyInfoId() ) .filter(Objects::nonNull) .anyMatch(id -> !uniqueIds.add(id)); diff --git a/src/test/java/com/example/solidconnection/application/fixture/ApplicationFixture.java b/src/test/java/com/example/solidconnection/application/fixture/ApplicationFixture.java index 43854ca80..9cfc7a805 100644 --- a/src/test/java/com/example/solidconnection/application/fixture/ApplicationFixture.java +++ b/src/test/java/com/example/solidconnection/application/fixture/ApplicationFixture.java @@ -4,7 +4,6 @@ import com.example.solidconnection.application.domain.Gpa; import com.example.solidconnection.application.domain.LanguageTest; import com.example.solidconnection.siteuser.domain.SiteUser; -import com.example.solidconnection.university.domain.UnivApplyInfo; import lombok.RequiredArgsConstructor; import org.springframework.boot.test.context.TestComponent; @@ -20,9 +19,9 @@ public class ApplicationFixture { String term, Gpa gpa, LanguageTest languageTest, - Long firstChoiceUniversityApplyInfoId, - Long secondChoiceUniversityApplyInfoId, - Long thirdChoiceUniversityApplyInfoId + Long firstChoiceUnivApplyInfoId, + Long secondChoiceUnivApplyInfoId, + Long thirdChoiceUnivApplyInfoId ) { return applicationFixtureBuilder.application() .siteUser(siteUser) @@ -30,9 +29,9 @@ public class ApplicationFixture { .languageTest(languageTest) .nicknameForApply(nicknameForApply) .term(term) - .firstChoiceUniversityApplyInfoId(firstChoiceUniversityApplyInfoId) - .secondChoiceUniversityApplyInfoId(secondChoiceUniversityApplyInfoId) - .thirdChoiceUniversityApplyInfoId(thirdChoiceUniversityApplyInfoId) + .firstChoiceUnivApplyInfoId(firstChoiceUnivApplyInfoId) + .secondChoiceUnivApplyInfoId(secondChoiceUnivApplyInfoId) + .thirdChoiceUnivApplyInfoId(thirdChoiceUnivApplyInfoId) .create(); } } diff --git a/src/test/java/com/example/solidconnection/application/fixture/ApplicationFixtureBuilder.java b/src/test/java/com/example/solidconnection/application/fixture/ApplicationFixtureBuilder.java index 2f1ae7bbe..d860504e4 100644 --- a/src/test/java/com/example/solidconnection/application/fixture/ApplicationFixtureBuilder.java +++ b/src/test/java/com/example/solidconnection/application/fixture/ApplicationFixtureBuilder.java @@ -17,9 +17,9 @@ public class ApplicationFixtureBuilder { private Gpa gpa; private LanguageTest languageTest; - private Long firstChoiceUniversityApplyInfoId; - private Long secondChoiceUniversityApplyInfoId; - private Long thirdChoiceUniversityApplyInfoId; + private Long firstChoiceUnivApplyInfoId; + private Long secondChoiceUnivApplyInfoId; + private Long thirdChoiceUnivApplyInfoId; private SiteUser siteUser; private String nicknameForApply; private String term; @@ -38,18 +38,18 @@ public ApplicationFixtureBuilder languageTest(LanguageTest languageTest) { return this; } - public ApplicationFixtureBuilder firstChoiceUniversityApplyInfoId(Long firstChoiceUniversityApplyInfoId) { - this.firstChoiceUniversityApplyInfoId = firstChoiceUniversityApplyInfoId; + public ApplicationFixtureBuilder firstChoiceUnivApplyInfoId(Long firstChoiceUnivApplyInfoId) { + this.firstChoiceUnivApplyInfoId = firstChoiceUnivApplyInfoId; return this; } - public ApplicationFixtureBuilder secondChoiceUniversityApplyInfoId(Long secondChoiceUniversityApplyInfoId) { - this.secondChoiceUniversityApplyInfoId = secondChoiceUniversityApplyInfoId; + public ApplicationFixtureBuilder secondChoiceUnivApplyInfoId(Long secondChoiceUnivApplyInfoId) { + this.secondChoiceUnivApplyInfoId = secondChoiceUnivApplyInfoId; return this; } - public ApplicationFixtureBuilder thirdChoiceUniversityApplyInfoId(Long thirdChoiceUniversityApplyInfoId) { - this.thirdChoiceUniversityApplyInfoId = thirdChoiceUniversityApplyInfoId; + public ApplicationFixtureBuilder thirdChoiceUnivApplyInfoId(Long thirdChoiceUnivApplyInfoId) { + this.thirdChoiceUnivApplyInfoId = thirdChoiceUnivApplyInfoId; return this; } @@ -74,9 +74,9 @@ public Application create() { gpa, languageTest, term, - firstChoiceUniversityApplyInfoId, - secondChoiceUniversityApplyInfoId, - thirdChoiceUniversityApplyInfoId, + firstChoiceUnivApplyInfoId, + secondChoiceUnivApplyInfoId, + thirdChoiceUnivApplyInfoId, nicknameForApply ); application.setVerifyStatus(VerifyStatus.APPROVED); From 00f13d6cb655a2d98b02101092a5be8e8ebe4baa Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sat, 28 Jun 2025 21:55:19 +0900 Subject: [PATCH 22/25] =?UTF-8?q?refactor:=20=EC=9D=B4=EB=A6=84=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20=EB=88=84=EB=9D=BD=EB=90=9C=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ApplicationQueryService.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java index 20610c48f..2d7adbc58 100644 --- a/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java +++ b/src/main/java/com/example/solidconnection/application/service/ApplicationQueryService.java @@ -71,13 +71,13 @@ public ApplicationsResponse getApplicantsByUserApplications(SiteUser siteUser) { } List applications = applicationRepository.findAllByUnivApplyInfoIds(univApplyInfoIds, VerifyStatus.APPROVED, term); - List universityInfosForApply = univApplyInfoRepository.findAllByIds(univApplyInfoIds); + List univApplyInfos = univApplyInfoRepository.findAllByIds(univApplyInfoIds); - return classifyApplicationsByChoice(universityInfosForApply, applications, siteUser); + return classifyApplicationsByChoice(univApplyInfos, applications, siteUser); } private ApplicationsResponse classifyApplicationsByChoice( - List universityInfosForApply, + List univApplyInfos, List applications, SiteUser siteUser) { Map> firstChoiceMap = createChoiceMap(applications, Application::getFirstChoiceUnivApplyInfoId); @@ -85,11 +85,11 @@ private ApplicationsResponse classifyApplicationsByChoice( Map> thirdChoiceMap = createChoiceMap(applications, Application::getThirdChoiceUnivApplyInfoId); List firstChoiceApplicants = - createUniversityApplicantsResponses(universityInfosForApply, firstChoiceMap, siteUser); + createUniversityApplicantsResponses(univApplyInfos, firstChoiceMap, siteUser); List secondChoiceApplicants = - createUniversityApplicantsResponses(universityInfosForApply, secondChoiceMap, siteUser); + createUniversityApplicantsResponses(univApplyInfos, secondChoiceMap, siteUser); List thirdChoiceApplicants = - createUniversityApplicantsResponses(universityInfosForApply, thirdChoiceMap, siteUser); + createUniversityApplicantsResponses(univApplyInfos, thirdChoiceMap, siteUser); return new ApplicationsResponse(firstChoiceApplicants, secondChoiceApplicants, thirdChoiceApplicants); } @@ -110,10 +110,10 @@ private Map> createChoiceMap( } private List createUniversityApplicantsResponses( - List universityInfosForApply, + List univApplyInfos, Map> choiceMap, SiteUser siteUser) { - return universityInfosForApply.stream() + return univApplyInfos.stream() .map(uia -> ApplicantsResponse.of(uia, choiceMap.getOrDefault(uia.getId(), List.of()), siteUser)) .toList(); } From 6bf90766d2c0dad828526bca194f47d630c86d8e Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sat, 28 Jun 2025 22:07:01 +0900 Subject: [PATCH 23/25] =?UTF-8?q?refactor:=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=20=EC=BD=94=EB=93=9C=EC=97=90=EC=84=9C=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EB=88=84=EB=9D=BD=EB=90=9C=20=EB=B6=80?= =?UTF-8?q?=EB=B6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...eralUnivApplyInfoRecommendServiceTest.java | 4 ++-- .../service/UnivApplyInfoLikeServiceTest.java | 18 +++++++------- .../UnivApplyInfoQueryServiceTest.java | 24 +++++++++---------- .../UnivApplyInfoRecommendServiceTest.java | 12 +++++----- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/test/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendServiceTest.java b/src/test/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendServiceTest.java index 0bc654625..e2dcdd255 100644 --- a/src/test/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/GeneralUnivApplyInfoRecommendServiceTest.java @@ -16,7 +16,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; @TestContainerSpringBootTest -@DisplayName("공통 추천 대학 서비스 테스트") +@DisplayName("대학 지원 정보 공통 추천 서비스 테스트") class GeneralUnivApplyInfoRecommendServiceTest { @Autowired @@ -44,7 +44,7 @@ void setUp() { } @Test - void 모집_시기의_대학들_중에서_랜덤하게_N개를_추천_목록으로_구성한다() { + void 모집_시기의_대학_지원_정보_중에서_랜덤하게_N개를_추천_목록으로_구성한다() { // given List universities = generalUnivApplyInfoRecommendService.getGeneralRecommends(); diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java index 96b4a28e0..548ddd9f5 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoLikeServiceTest.java @@ -26,7 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertAll; @TestContainerSpringBootTest -@DisplayName("대학교 좋아요 서비스 테스트") +@DisplayName("대학 지원 정보 좋아요 서비스 테스트") class UnivApplyInfoLikeServiceTest { @Autowired @@ -51,7 +51,7 @@ void setUp() { } @Nested - class 대학_좋아요를_등록한다 { + class 대학_지원_정보_좋아요를_등록한다 { @Test void 성공적으로_좋아요를_등록한다() { @@ -68,7 +68,7 @@ class 대학_좋아요를_등록한다 { } @Test - void 이미_좋아요한_대학이면_예외_응답을_반환한다() { + void 이미_좋아요했으면_예외_응답을_반환한다() { // given saveLikedUniversity(user, 괌대학_A_지원_정보); @@ -80,7 +80,7 @@ class 대학_좋아요를_등록한다 { } @Nested - class 대학_좋아요를_취소한다 { + class 대학_지원_정보_좋아요를_취소한다 { @Test void 성공적으로_좋아요를_취소한다() { @@ -100,7 +100,7 @@ class 대학_좋아요를_취소한다 { } @Test - void 좋아요하지_않은_대학이면_예외_응답을_반환한다() { + void 좋아요하지_않았으면_예외_응답을_반환한다() { // when & then assertThatCode(() -> univApplyInfoLikeService.cancelLikeUnivApplyInfo(user, 괌대학_A_지원_정보.getId())) .isInstanceOf(CustomException.class) @@ -109,7 +109,7 @@ class 대학_좋아요를_취소한다 { } @Test - void 존재하지_않는_대학_좋아요_시도하면_예외_응답을_반환한다() { + void 존재하지_않는_지원_정보에_좋아요_시도하면_예외_응답을_반환한다() { // given Long invalidUnivApplyInfoId = 9999L; @@ -120,7 +120,7 @@ class 대학_좋아요를_취소한다 { } @Test - void 좋아요한_대학인지_확인한다() { + void 좋아요한_대학_지원_정보인지_확인한다() { // given saveLikedUniversity(user, 괌대학_A_지원_정보); @@ -132,7 +132,7 @@ class 대학_좋아요를_취소한다 { } @Test - void 좋아요하지_않은_대학인지_확인한다() { + void 좋아요하지_않은_대학_지원_정보인지_확인한다() { // when IsLikeResponse response = univApplyInfoLikeService.getIsLiked(user, 괌대학_A_지원_정보.getId()); @@ -141,7 +141,7 @@ class 대학_좋아요를_취소한다 { } @Test - void 존재하지_않는_대학의_좋아요_여부를_조회하면_예외_응답을_반환한다() { + void 존재하지_않는_대학_지원_정보의_좋아요_여부를_조회하면_예외_응답을_반환한다() { // given Long invalidUnivApplyInfoId = 9999L; diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java index edf986b07..1c58316dc 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoQueryServiceTest.java @@ -25,7 +25,7 @@ import static org.mockito.Mockito.times; @TestContainerSpringBootTest -@DisplayName("대학교 조회 서비스 테스트") +@DisplayName("대학 지원 정보 조회 서비스 테스트") class UnivApplyInfoQueryServiceTest { @Autowired @@ -44,7 +44,7 @@ class UnivApplyInfoQueryServiceTest { private LanguageRequirementFixture languageRequirementFixture; @Test - void 대학_상세정보를_정상_조회한다() { + void 대학_지원_정보를_상세_조회한다() { // given UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); @@ -56,7 +56,7 @@ class UnivApplyInfoQueryServiceTest { } @Test - void 대학_상세정보_조회시_캐시가_적용된다() { + void 대학_지원_정보_상세_조회시_캐시가_적용된다() { // given UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); @@ -70,20 +70,20 @@ class UnivApplyInfoQueryServiceTest { } @Test - void 존재하지_않는_대학_상세정보를_조회하면_예외_응답을_반환한다() { + void 존재하지_않는_대학_지원_정보를_조회하면_예외_응답을_반환한다() { // given - Long invalidUniversityInfoForApplyId = 9999L; + Long invalidUnivApplyInfoId = 9999L; // when & then assertThatExceptionOfType(RuntimeException.class) - .isThrownBy(() -> univApplyInfoQueryService.getUnivApplyInfoDetail(invalidUniversityInfoForApplyId)) + .isThrownBy(() -> univApplyInfoQueryService.getUnivApplyInfoDetail(invalidUnivApplyInfoId)) .havingRootCause() .isInstanceOf(CustomException.class) .withMessage(UNIV_APPLY_INFO_NOT_FOUND.getMessage()); } @Test - void 전체_대학을_조회한다() { + void 전체_대학_지원_정보를_조회한다() { // given UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); UnivApplyInfo 괌대학_B_지원_정보 = univApplyInfoFixture.괌대학_B_지원_정보(); @@ -109,7 +109,7 @@ class UnivApplyInfoQueryServiceTest { } @Test - void 대학_조회시_캐시가_적용된다() { + void 대학_지원_정보_조회시_캐시가_적용된다() { // given univApplyInfoFixture.괌대학_A_지원_정보(); String regionCode = "AMERICAS"; @@ -132,7 +132,7 @@ class UnivApplyInfoQueryServiceTest { } @Test - void 지역으로_대학을_필터링한다() { + void 지역으로_대학_지원_정보를_필터링한다() { // given UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); univApplyInfoFixture.코펜하겐IT대학_지원_정보(); @@ -149,7 +149,7 @@ class UnivApplyInfoQueryServiceTest { } @Test - void 키워드로_대학을_필터링한다() { + void 키워드로_대학_지원_정보를_필터링한다() { // given univApplyInfoFixture.괌대학_A_지원_정보(); UnivApplyInfo 그라츠대학_지원_정보 = univApplyInfoFixture.그라츠대학_지원_정보(); @@ -168,7 +168,7 @@ class UnivApplyInfoQueryServiceTest { } @Test - void 어학시험_조건으로_대학을_필터링한다() { + void 어학시험_조건으로_대학_지원_정보를_필터링한다() { // given UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); languageRequirementFixture.토플_80(괌대학_A_지원_정보); @@ -187,7 +187,7 @@ class UnivApplyInfoQueryServiceTest { } @Test - void 모든_조건으로_대학을_필터링한다() { + void 모든_조건으로_대학_지원_정보를_필터링한다() { // given UnivApplyInfo 괌대학_A_지원_정보 = univApplyInfoFixture.괌대학_A_지원_정보(); languageRequirementFixture.토플_80(괌대학_A_지원_정보); diff --git a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java index 82e40a817..c6bf60b9b 100644 --- a/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java +++ b/src/test/java/com/example/solidconnection/university/service/UnivApplyInfoRecommendServiceTest.java @@ -24,7 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat; @TestContainerSpringBootTest -@DisplayName("대학교 추천 서비스 테스트") +@DisplayName("대학 지원 정보 추천 서비스 테스트") class UnivApplyInfoRecommendServiceTest { @Autowired @@ -76,7 +76,7 @@ void setUp() { } @Test - void 관심_지역_설정한_사용자의_맞춤_추천_대학을_조회한다() { + void 관심_지역_설정한_사용자의_맞춤_추천_대학_지원_정보를_조회한다() { // given interestedRegionRepository.save(new InterestedRegion(user, regionFixture.영미권())); @@ -95,7 +95,7 @@ void setUp() { } @Test - void 관심_국가_설정한_사용자의_맞춤_추천_대학을_조회한다() { + void 관심_국가_설정한_사용자의_맞춤_추천_대학_지원_정보를_조회한다() { // given interestedCountryRepository.save(new InterestedCountry(user, countryFixture.덴마크())); @@ -112,7 +112,7 @@ void setUp() { } @Test - void 관심_지역과_국가_모두_설정한_사용자의_맞춤_추천_대학을_조회한다() { + void 관심_지역과_국가_모두_설정한_사용자의_맞춤_추천_대학_지원_정보를_조회한다() { // given interestedRegionRepository.save(new InterestedRegion(user, regionFixture.영미권())); interestedCountryRepository.save(new InterestedCountry(user, countryFixture.덴마크())); @@ -134,7 +134,7 @@ void setUp() { } @Test - void 관심사_미설정_사용자는_일반_추천_대학을_조회한다() { + void 관심사_미설정_사용자는_일반_추천_대학_지원_정보를_조회한다() { // when UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getPersonalRecommends(user); @@ -149,7 +149,7 @@ void setUp() { } @Test - void 일반_추천_대학을_조회한다() { + void 일반_추천_대학_지원_정보를_조회한다() { // when UnivApplyInfoRecommendsResponse response = univApplyInfoRecommendService.getGeneralRecommends(); From f7817512ca0ff27822e0a70ed852b3a351a83b3f Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 29 Jun 2025 23:36:53 +0900 Subject: [PATCH 24/25] =?UTF-8?q?refactor:=20UnivApplyInfo=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20MyPageService=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../solidconnection/siteuser/dto/MyPageResponse.java | 9 ++++++--- .../solidconnection/siteuser/service/MyPageService.java | 4 ++-- .../siteuser/service/MyPageServiceTest.java | 6 +++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java b/src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java index 9185362cf..d84ed61ec 100644 --- a/src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java +++ b/src/main/java/com/example/solidconnection/siteuser/dto/MyPageResponse.java @@ -3,6 +3,7 @@ import com.example.solidconnection.siteuser.domain.AuthType; import com.example.solidconnection.siteuser.domain.Role; import com.example.solidconnection.siteuser.domain.SiteUser; +import com.fasterxml.jackson.annotation.JsonProperty; public record MyPageResponse( String nickname, @@ -12,9 +13,11 @@ public record MyPageResponse( String email, int likedPostCount, int likedMentorCount, - int likedUniversityCount) { - public static MyPageResponse of(SiteUser siteUser, int likedUniversityCount) { + @JsonProperty("likedUniversityCount") + int likedUnivApplyInfoCount) { + + public static MyPageResponse of(SiteUser siteUser, int likedUnivApplyInfoCount) { return new MyPageResponse( siteUser.getNickname(), siteUser.getProfileImageUrl(), @@ -23,7 +26,7 @@ public static MyPageResponse of(SiteUser siteUser, int likedUniversityCount) { siteUser.getEmail(), 0, // TODO: 커뮤니티 기능 생기면 업데이트 필요 0, // TODO: 멘토 기능 생기면 업데이트 필요 - likedUniversityCount + likedUnivApplyInfoCount ); } } diff --git a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java index 8f7a2efad..c524487e8 100644 --- a/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java +++ b/src/main/java/com/example/solidconnection/siteuser/service/MyPageService.java @@ -39,8 +39,8 @@ public class MyPageService { * */ @Transactional(readOnly = true) public MyPageResponse getMyPageInfo(SiteUser siteUser) { - int likedUniversityCount = likedUnivApplyInfoRepository.countBySiteUser_Id(siteUser.getId()); - return MyPageResponse.of(siteUser, likedUniversityCount); + int likedUnivApplyInfoCount = likedUnivApplyInfoRepository.countBySiteUser_Id(siteUser.getId()); + return MyPageResponse.of(siteUser, likedUnivApplyInfoCount); } /* diff --git a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java index cfcab9171..62732f1c1 100644 --- a/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java +++ b/src/test/java/com/example/solidconnection/siteuser/service/MyPageServiceTest.java @@ -75,7 +75,7 @@ void setUp() { @Test void 마이페이지_정보를_조회한다() { // given - int likedUniversityCount = createLikedUnivApplyInfos(user); + int likedUnivApplyInfoCount = createLikedUnivApplyInfos(user); // when MyPageResponse response = myPageService.getMyPageInfo(user); @@ -87,12 +87,12 @@ void setUp() { () -> assertThat(response.role()).isEqualTo(user.getRole()), () -> assertThat(response.email()).isEqualTo(user.getEmail()), () -> assertThat(response.likedPostCount()).isEqualTo(user.getPostLikeList().size()), - () -> assertThat(response.likedUniversityCount()).isEqualTo(likedUniversityCount) + () -> assertThat(response.likedUnivApplyInfoCount()).isEqualTo(likedUnivApplyInfoCount) ); } @Test - void 관심_대학교_목록을_조회한다() { + void 관심_대학_지원_정보_목록을_조회한다() { // given int likedUnivApplyInfo = createLikedUnivApplyInfos(user); From 2271c6edbdb98849a4c044128836a264d573a849 Mon Sep 17 00:00:00 2001 From: nayonsoso Date: Sun, 29 Jun 2025 23:49:26 +0900 Subject: [PATCH 25/25] =?UTF-8?q?refactor:=20=EC=82=AC=EC=9A=A9=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EB=8A=94=20=ED=95=A8=EC=88=98=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/UnivApplyInfoRepository.java | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java index 784c4c540..389f66531 100644 --- a/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java +++ b/src/main/java/com/example/solidconnection/university/repository/UnivApplyInfoRepository.java @@ -3,7 +3,6 @@ import com.example.solidconnection.common.exception.CustomException; import com.example.solidconnection.siteuser.domain.SiteUser; import com.example.solidconnection.university.domain.UnivApplyInfo; -import com.example.solidconnection.university.domain.University; import com.example.solidconnection.university.repository.custom.UnivApplyInfoFilterRepository; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; @@ -11,25 +10,12 @@ import org.springframework.stereotype.Repository; import java.util.List; -import java.util.Optional; import static com.example.solidconnection.common.exception.ErrorCode.UNIV_APPLY_INFO_NOT_FOUND; @Repository public interface UnivApplyInfoRepository extends JpaRepository, UnivApplyInfoFilterRepository { - Optional findByIdAndTerm(Long id, String term); - - Optional findFirstByKoreanNameAndTerm(String koreanName, String term); - - @Query(""" - SELECT uai - FROM UnivApplyInfo uai - WHERE uai.university IN :universities - AND uai.term = :term - """) - List findByUniversitiesAndTerm(@Param("universities") List universities, @Param("term") String term); - @Query(""" SELECT uai FROM UnivApplyInfo uai @@ -73,14 +59,4 @@ default UnivApplyInfo getUnivApplyInfoById(Long id) { WHERE uai.id IN :ids """) List findAllByIds(@Param("ids") List ids); - - @Query(""" - SELECT DISTINCT uai - FROM UnivApplyInfo uai - JOIN FETCH uai.university u - JOIN FETCH u.country c - JOIN FETCH u.region r - WHERE u.id IN :universityIds - """) - List findByUniversityIdsWithUniversityAndLocation(@Param("universityIds") List universityIds); }