-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: Formatter 로직 수정 및 Deprecated 기능 제거 #493
Conversation
Walkthrough이번 변경 사항은 사용되지 않는 기능을 제거하고, 전화번호 및 학기 정보를 포맷하는 로직을 간소화하여 가독성과 유지보수성을 높였습니다. 주요 기능에 대한 구조적 변화도 도입되어 코드의 전반적인 품질이 향상되었습니다. Changes
Assessment against linked issues
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
Job Summary for GradleCheck Style and Test to Develop :: build-test
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Outside diff range, codebase verification and nitpick comments (1)
src/main/java/com/gdschongik/gdsc/domain/member/application/OnboardingMemberService.java (1)
메서드 제거 확인
updateMember
메서드가 여러 파일에서 참조되고 있습니다. 이 참조들을 제거하거나 업데이트해야 합니다.
src/test/java/com/gdschongik/gdsc/domain/member/domain/MemberTest.java
src/test/java/com/gdschongik/gdsc/domain/member/application/AdminMemberServiceTest.java
src/main/java/com/gdschongik/gdsc/domain/member/application/AdminMemberService.java
src/main/java/com/gdschongik/gdsc/domain/member/domain/Member.java
src/main/java/com/gdschongik/gdsc/domain/member/api/AdminMemberController.java
이 변경 사항이 다른 부분에 영향을 미치지 않도록 수정해 주세요.
Analysis chain
Line range hint
3-3
:
메서드 제거 확인
updateMember
메서드가 제거되었습니다. 이 변경 사항이 다른 부분에 영향을 미치지 않는지 확인해 주세요.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the removal of updateMember does not affect other parts of the codebase. # Test: Search for the usage of updateMember. Expect: No occurrences. rg --type java -A 5 $'updateMember'Length of output: 4986
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (14)
- src/main/java/com/gdschongik/gdsc/domain/common/model/SemesterType.java (1 hunks)
- src/main/java/com/gdschongik/gdsc/domain/discord/application/OnboardingDiscordService.java (2 hunks)
- src/main/java/com/gdschongik/gdsc/domain/member/api/OnboardingMemberController.java (3 hunks)
- src/main/java/com/gdschongik/gdsc/domain/member/application/OnboardingMemberService.java (2 hunks)
- src/main/java/com/gdschongik/gdsc/domain/member/dto/response/AdminMemberResponse.java (2 hunks)
- src/main/java/com/gdschongik/gdsc/domain/member/dto/response/MemberBasicInfoResponse.java (2 hunks)
- src/main/java/com/gdschongik/gdsc/domain/recruitment/dto/response/AdminRecruitmentResponse.java (1 hunks)
- src/main/java/com/gdschongik/gdsc/domain/recruitment/dto/response/AdminRecruitmentRoundResponse.java (1 hunks)
- src/main/java/com/gdschongik/gdsc/global/common/constant/DiscordConstant.java (1 hunks)
- src/main/java/com/gdschongik/gdsc/global/config/DiscordConfig.java (1 hunks)
- src/main/java/com/gdschongik/gdsc/global/exception/ErrorCode.java (1 hunks)
- src/main/java/com/gdschongik/gdsc/global/util/formatter/MoneyFormatter.java (1 hunks)
- src/main/java/com/gdschongik/gdsc/global/util/formatter/PhoneFormatter.java (1 hunks)
- src/main/java/com/gdschongik/gdsc/global/util/formatter/SemesterFormatter.java (1 hunks)
Files skipped from review due to trivial changes (1)
- src/main/java/com/gdschongik/gdsc/domain/member/api/OnboardingMemberController.java
Additional comments not posted (22)
src/main/java/com/gdschongik/gdsc/domain/common/model/SemesterType.java (2)
10-11
: 좋아요!
SemesterType
열거형의value
필드를String
에서Integer
로 변경하여 명확성을 높였습니다.
13-13
: 좋아요!
value
필드를Integer
로 변경하여 학기를 숫자로 식별할 수 있게 했습니다.src/main/java/com/gdschongik/gdsc/global/util/formatter/PhoneFormatter.java (2)
9-9
: 좋아요!
@Nullable
애노테이션을 추가하여 메서드가 null을 반환할 수 있음을 명확히 했습니다.
10-11
: 좋아요!
StringBuilder
대신 문자열 연결을 사용하여 코드 가독성을 높였습니다.src/main/java/com/gdschongik/gdsc/global/util/formatter/MoneyFormatter.java (3)
1-1
: 새 파일 추가 확인새로운
MoneyFormatter
클래스 파일이 추가되었습니다.
10-10
: 좋아요!
@NoArgsConstructor
애노테이션을 사용하여 기본 생성자를 private으로 설정했습니다.
12-16
: 좋아요!
Money
객체를 형식화하는 메서드를 추가하여 일관된 형식 출력을 보장합니다.src/main/java/com/gdschongik/gdsc/global/util/formatter/SemesterFormatter.java (2)
9-12
: 변경된format
메서드 확인메서드가
BaseSemesterEntity
객체를 사용하여 학년도와 학기 유형을 가져오도록 변경되었습니다. 이는 매개변수 수를 줄이고 학기 데이터 처리를 중앙화하여 코드의 가독성과 유지보수성을 향상시킵니다.
14-15
: 새로운formatType
메서드 확인이 메서드는
BaseSemesterEntity
에서 학기 유형을 가져와 "학기"를 추가하여 특정 표현을 제공합니다.src/main/java/com/gdschongik/gdsc/domain/member/dto/response/MemberBasicInfoResponse.java (1)
22-22
: 전화번호 포맷팅 로직 변경 확인전화번호 포맷팅 로직이
PhoneFormatter
호출로 대체되었습니다. 이는 코드의 가독성과 유지보수성을 향상시킵니다.src/main/java/com/gdschongik/gdsc/global/common/constant/DiscordConstant.java (1)
Line range hint
3-3
:
"join" 명령어 관련 상수 제거 확인
COMMAND_NAME_JOIN
,COMMAND_DESCRIPTION_JOIN
,DEFER_MESSAGE_JOIN
,REPLY_MESSAGE_JOIN
상수가 제거되었습니다. 이는 해당 기능이 더 이상 사용되지 않거나 리팩토링되었음을 나타냅니다.src/main/java/com/gdschongik/gdsc/domain/recruitment/dto/response/AdminRecruitmentRoundResponse.java (1)
20-20
: 변경 사항 승인: 메서드 호출 단순화
SemesterFormatter.format
메서드 호출이 단순화되어 가독성이 향상되었습니다.하지만
SemesterFormatter.format
메서드가recruitmentRound
객체를 올바르게 처리하는지 확인해야 합니다.Verification successful
변경 사항 승인: 메서드 호출 단순화
SemesterFormatter.format
메서드 호출이 단순화되어 가독성이 향상되었습니다.RecruitmentRound
클래스가BaseSemesterEntity
를 확장하므로,SemesterFormatter.format
메서드는recruitmentRound
객체를 올바르게 처리할 수 있습니다.
AdminRecruitmentRoundResponse.java
에서의 변경 사항은 유효합니다.SemesterFormatter.java
에서format
메서드는BaseSemesterEntity
를 인자로 받습니다.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that SemesterFormatter.format can handle RecruitmentRound object correctly. # Test: Search for the SemesterFormatter.format method definition. rg --type java 'public static String format\(RecruitmentRound recruitmentRound\)'Length of output: 83
Script:
#!/bin/bash # Description: Search for the SemesterFormatter class and list its methods. # Find the file containing the SemesterFormatter class semester_formatter_file=$(rg --files-with-matches 'class SemesterFormatter' --type java) # List all methods in the SemesterFormatter class if [[ -n "$semester_formatter_file" ]]; then rg --type java --no-filename 'public static String' "$semester_formatter_file" else echo "SemesterFormatter class not found." fiLength of output: 534
Script:
#!/bin/bash # Description: Search for calls to SemesterFormatter.format in the codebase to understand its usage. # Find all calls to SemesterFormatter.format rg --type java 'SemesterFormatter\.format'Length of output: 356
Script:
#!/bin/bash # Description: Verify if RecruitmentRound extends or implements BaseSemesterEntity. # Search for the RecruitmentRound class definition and its inheritance rg --type java 'class RecruitmentRound' -A 3 # Search for any interface implementations by RecruitmentRound rg --type java 'implements BaseSemesterEntity' -A 3Length of output: 1567
src/main/java/com/gdschongik/gdsc/domain/recruitment/dto/response/AdminRecruitmentResponse.java (1)
22-22
: 변경 사항 승인: 메서드 호출 단순화
SemesterFormatter.format
메서드 호출이 단순화되어 가독성이 향상되었습니다.하지만
SemesterFormatter.format
메서드가recruitment
객체를 올바르게 처리하는지 확인해야 합니다.Verification successful
변경 사항 승인: 메서드 호출 단순화
SemesterFormatter.format
메서드 호출이 단순화되어 가독성이 향상되었습니다.Recruitment
클래스가BaseSemesterEntity
를 상속하므로,SemesterFormatter.format
메서드가recruitment
객체를 올바르게 처리할 수 있습니다.
AdminRecruitmentResponse.java
파일의 변경 사항은 올바르게 처리되었습니다.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that SemesterFormatter.format can handle Recruitment object correctly. # Test: Search for the SemesterFormatter.format method definition. rg --type java 'public static String format\(Recruitment recruitment\)'Length of output: 73
Script:
#!/bin/bash # Description: Search for all format methods within the SemesterFormatter class to verify their parameters. # Find the file containing the SemesterFormatter class semester_formatter_file=$(rg --files-with-matches 'class SemesterFormatter') # Search for all format methods within the found file(s) if [ -n "$semester_formatter_file" ]; then rg 'public static String format' $semester_formatter_file -A 5 else echo "SemesterFormatter class not found." fiLength of output: 709
Script:
#!/bin/bash # Description: Check if Recruitment extends or implements BaseSemesterEntity. # Find the file containing the Recruitment class recruitment_file=$(rg --files-with-matches 'class Recruitment') # Search for inheritance or implementation of BaseSemesterEntity in the Recruitment class if [ -n "$recruitment_file" ]; then rg 'class Recruitment' $recruitment_file -A 5 else echo "Recruitment class not found." fiLength of output: 7943
src/main/java/com/gdschongik/gdsc/domain/member/dto/response/AdminMemberResponse.java (1)
25-25
: 변경 사항 승인: 전화번호 포맷팅 로직 중앙화
PhoneFormatter.format
메서드를 사용하여 전화번호 포맷팅 로직이 중앙화되어 유지보수성이 향상되었습니다.하지만
PhoneFormatter.format
메서드가 전화번호를 올바르게 처리하는지 확인해야 합니다.Verification successful
변경 사항 승인: 전화번호 포맷팅 로직 중앙화
PhoneFormatter.format
메서드는 전화번호를 올바르게 처리합니다. null 값을 처리하고, 전화번호를 적절히 포맷팅합니다.
PhoneFormatter.format
메서드는 null 값을 반환할 수 있으며, 10자리 전화번호 문자열을 포맷팅합니다.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify that PhoneFormatter.format can handle phone number correctly. # Test: Search for the PhoneFormatter.format method definition. rg --type java 'public static String format\(String phoneNumber\)'Length of output: 68
Script:
#!/bin/bash # Description: Locate the PhoneFormatter class and its methods. # Step 1: Search for the PhoneFormatter class definition. rg --type java 'class PhoneFormatter' # Step 2: Once the class is located, search for all methods within the PhoneFormatter class. # This will help in identifying the format method if it exists. fd -e java -x sh -c 'rg "class PhoneFormatter" {} && rg "public static String format" {}'Length of output: 335
Script:
#!/bin/bash # Description: Extract the implementation of the format method in PhoneFormatter.java for review. # Extract lines containing the format method and its body. rg --multiline --multiline-dotall --type java 'public static String format\(.*\) \{.*\}' -A 20 src/main/java/com/gdschongik/gdsc/global/util/formatter/PhoneFormatter.javaLength of output: 387
src/main/java/com/gdschongik/gdsc/global/config/DiscordConfig.java (2)
Line range hint
18-21
:
코드 변경 승인명령어 등록 로직 변경이 승인되었습니다.
Line range hint
18-21
:
명령어 제거 확인
COMMAND_NAME_JOIN
명령어 등록이 제거되었습니다. 이 변경 사항이 다른 부분에 영향을 미치지 않는지 확인해 주세요.Verification successful
명령어 제거 확인
COMMAND_NAME_JOIN
명령어 등록이 제거되었습니다. 코드베이스에서 더 이상 이 명령어를 사용하는 부분이 없음을 확인했습니다. 이 변경 사항이 다른 부분에 영향을 미치지 않습니다.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the removal of COMMAND_NAME_JOIN does not affect other parts of the codebase. # Test: Search for the usage of COMMAND_NAME_JOIN. Expect: No occurrences. rg --type java -A 5 $'COMMAND_NAME_JOIN'Length of output: 39
Script:
#!/bin/bash # Description: Verify the removal of COMMAND_NAME_JOIN does not affect other parts of the codebase. # Test: Search for the usage of COMMAND_NAME_JOIN in all file types. Expect: No occurrences. rg -A 5 $'COMMAND_NAME_JOIN'Length of output: 27
src/main/java/com/gdschongik/gdsc/domain/member/application/OnboardingMemberService.java (3)
Line range hint
3-3
:
코드 변경 승인
updateMember
메서드 제거가 승인되었습니다.
Line range hint
3-3
:
코드 변경 승인
validateDiscordUsernameDuplicate
메서드 제거가 승인되었습니다.
Line range hint
3-3
:
메서드 제거 확인
validateDiscordUsernameDuplicate
메서드가 제거되었습니다. 이 변경 사항이 다른 부분에 영향을 미치지 않는지 확인해 주세요.Verification successful
메서드 제거 확인
validateDiscordUsernameDuplicate
메서드가 제거되었습니다. 이 변경 사항이 다른 부분에 영향을 미치지 않는 것으로 보입니다.
validateDiscordUsernameDuplicate
메서드에 대한 참조가 코드베이스에 남아 있지 않습니다.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the removal of validateDiscordUsernameDuplicate does not affect other parts of the codebase. # Test: Search for the usage of validateDiscordUsernameDuplicate. Expect: No occurrences. rg --type java -A 5 $'validateDiscordUsernameDuplicate'Length of output: 54
src/main/java/com/gdschongik/gdsc/domain/discord/application/OnboardingDiscordService.java (2)
Line range hint
3-3
:
코드 변경 승인
checkDiscordRoleAssignable
메서드 제거가 승인되었습니다.
Line range hint
3-3
:
메서드 제거 확인
checkDiscordRoleAssignable
메서드가 제거되었습니다. 이 변경 사항이 다른 부분에 영향을 미치지 않는지 확인해 주세요.Verification successful
메서드 제거 확인
checkDiscordRoleAssignable
메서드가 제거되었습니다. 이 변경 사항이 다른 부분에 영향을 미치지 않는 것으로 확인되었습니다.
checkDiscordRoleAssignable
메서드는 코드베이스나 문서에서 참조되지 않습니다.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify the removal of checkDiscordRoleAssignable does not affect other parts of the codebase. # Test: Search for the usage of checkDiscordRoleAssignable. Expect: No occurrences. rg --type java -A 5 $'checkDiscordRoleAssignable'Length of output: 48
Script:
#!/bin/bash # Description: Verify the removal of checkDiscordRoleAssignable does not affect other parts of the codebase by searching for comments or documentation. # Test: Search for comments or documentation referring to checkDiscordRoleAssignable. Expect: No occurrences. rg --type java -A 5 $'checkDiscordRoleAssignable' rg --type md -A 5 $'checkDiscordRoleAssignable'Length of output: 244
Script:
#!/bin/bash # Description: Verify the removal of checkDiscordRoleAssignable does not affect other parts of the codebase by searching for comments or documentation. # Test: Search for checkDiscordRoleAssignable in all files and use --debug to identify any issues. Expect: No occurrences. rg -A 5 'checkDiscordRoleAssignable' --debugLength of output: 6124
src/main/java/com/gdschongik/gdsc/global/exception/ErrorCode.java (1)
Line range hint
1-88
:
DISCORD_ROLE_UNASSIGNABLE
제거 확인 필요
DISCORD_ROLE_UNASSIGNABLE
항목이 제거되었습니다. 이 변경 사항이 코드베이스의 다른 부분에 미치는 영향을 확인해야 합니다. 특히, 이 에러 코드를 사용하는 부분이 있는지 검토가 필요합니다.
Job Summary for GradleCheck Style and Test to Develop :: build-test
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (1)
- src/main/java/com/gdschongik/gdsc/global/util/formatter/MoneyFormatter.java (1 hunks)
Files skipped from review due to trivial changes (1)
- src/main/java/com/gdschongik/gdsc/global/util/formatter/MoneyFormatter.java
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
🌱 관련 이슈
📌 작업 내용 및 특이사항
10,000원
과 같이 천원 단위 절사 + 원 문자열 추가)BaseSemesterEntity
로 받도록 수정 (이를 상속하는 리쿠르팅, 모집회차 모두 인자로 받을 수 있음)SemeterType.value
의1학기
를 정수 1로 바꾸고,학기
접미사는PhoneFormatter.formatType
에서 구현+
사용한 concat 연산의 경우 컴파일러가 자체적으로 StringBuilder로 최적화해주기 때문에 별도로 만들 필요 없음 (레퍼런스)/가입하기
커맨드 (자동 역할 부여로 변경)📝 참고사항
📚 기타
Summary by CodeRabbit
MoneyFormatter
가 추가되었습니다.