Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

refactor: 엔티티 필드 및 생성자 메서드 시그니처 변경 #850

Merged
merged 17 commits into from
Feb 2, 2025

Conversation

kckc0608
Copy link
Member

@kckc0608 kckc0608 commented Jan 22, 2025

🌱 관련 이슈

📌 작업 내용 및 특이사항

  • 엔티티 필드 순서를 Id -> 일반 필드 -> enum -> vo -> 연관관계 순으로 정렬했습니다.

📝 참고사항

  • BaseSemesterEntity 관련 필드는 뒷쪽으로 옮겼습니다.

📚 기타

Summary by CodeRabbit

릴리즈 노트

  • 도메인 변경

    • 쿠폰, 회원, 멤버십, 주문, 모집, 스터디 관련 도메인 클래스의 필드 및 생성자 구조 재정비
    • 일부 클래스에 새로운 필드 추가 (예: 쿠폰의 사용 여부, 리포지토리 링크, 스터디 이력 상태 등)
    • 생성자 및 메서드 파라미터 순서 조정
  • 기능 변경

    • 도메인 클래스의 내부 로직 유지
    • 객체 생성 및 상태 관리 방식 개선

이번 업데이트는 시스템의 내부 구조를 최적화하고 코드의 일관성을 높이는 데 중점을 두었습니다.

@kckc0608 kckc0608 added the ♻️ refactor 기능 개선 label Jan 22, 2025
@kckc0608 kckc0608 self-assigned this Jan 22, 2025
@kckc0608 kckc0608 requested a review from a team as a code owner January 22, 2025 13:13
Copy link

coderabbitai bot commented Jan 22, 2025

워크스루

이 풀 리퀘스트는 여러 도메인 엔티티의 필드 순서와 메서드 시그니처를 재구성하는 리팩토링 작업입니다. 주요 변경 사항은 엔티티 클래스들의 필드 선언 순서, 생성자 파라미터 순서, 그리고 일부 필드 추가 및 제거를 포함합니다. 변경의 목적은 코드의 일관성을 높이고 엔티티 구조를 표준화하는 것입니다.

변경 사항

파일 변경 요약
IssuedCoupon.java hasRevoked, usedAt 필드 추가, 생성자 파라미터 순서 변경
Member.java 멤버 변수 재정렬, univEmail 추가
Membership.java regularRequirement 필드 추가 및 생성자 파라미터 순서 변경
Order.java moneyInfo 필드 재추가, 생성자 파라미터 순서 변경
Recruitment.java feeName 필드 추가, 생성자 파라미터 순서 변경
RecruitmentRound.java roundType 필드 추가 및 생성자 파라미터 순서 변경
StudyAchievement.java achievementType 필드 추가 및 생성자 파라미터 순서 변경
StudyAnnouncement.java 생성자 파라미터 순서 변경
StudyDetail.java study 필드 재추가 및 생성자 파라미터 순서 변경
StudyHistory.java repositoryLink, studyHistoryStatus 필드 추가

이슈 평가

목표 달성 여부 설명
엔티티 필드 순서 통일
필드 선언 순서 정규화
생성자 파라미터 순서 수정

관련 가능성 있는 PR

추천 리뷰어

  • Sangwook02
  • AlmondBreez3
  • uwoobeat

🐰 코드의 숲을 거닐며
필드들은 춤을 추고
순서를 바꾸어 노래해
리팩토링의 멜로디로 🎵


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1d991d5 and cd43264.

📒 Files selected for processing (11)
  • src/main/java/com/gdschongik/gdsc/domain/member/domain/Member.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/order/domain/Order.java (3 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRound.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/AssignmentHistory.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/Study.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyHistory.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/factory/StudyDomainFactory.java (2 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/coupon/util/CouponNameUtilTest.java (1 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/study/domain/StudyTest.java (5 hunks)
  • src/test/java/com/gdschongik/gdsc/helper/FixtureHelper.java (3 hunks)
  • src/test/java/com/gdschongik/gdsc/helper/IntegrationTest.java (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (8)
  • src/test/java/com/gdschongik/gdsc/domain/coupon/util/CouponNameUtilTest.java
  • src/test/java/com/gdschongik/gdsc/domain/study/domain/StudyTest.java
  • src/main/java/com/gdschongik/gdsc/domain/member/domain/Member.java
  • src/main/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRound.java
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyHistory.java
  • src/main/java/com/gdschongik/gdsc/domain/order/domain/Order.java
  • src/test/java/com/gdschongik/gdsc/helper/FixtureHelper.java
  • src/test/java/com/gdschongik/gdsc/helper/IntegrationTest.java
🔇 Additional comments (9)
src/main/java/com/gdschongik/gdsc/domain/study/factory/StudyDomainFactory.java (2)

20-33: 엔티티 필드 순서가 잘 정리되었습니다!

필드 순서가 PR에서 논의된 기준을 잘 따르고 있습니다:

  1. 타입 enum (studyType)
  2. 일반 필드 (title, totalWeek 등)
  3. VO (Period)
  4. 관계 엔티티 (mentor)
  5. BaseSemesterEntity 관련 필드 (academicYear, semesterType)

43-43: StudyDetail 생성 메서드의 매개변수 순서가 개선되었습니다.

StudyDetail.create() 메서드의 매개변수 순서가 엔티티 필드 순서 규칙을 일관되게 따르고 있습니다:

  1. 기본 필드 (week, attendanceNumber)
  2. VO (Period)
  3. 관계 엔티티 (study)
src/main/java/com/gdschongik/gdsc/domain/study/domain/AssignmentHistory.java (3)

34-61: 필드 순서가 PR 목적에 맞게 잘 정리되었습니다!

필드 순서가 다음과 같이 논의된 가이드라인을 잘 따르고 있습니다:

  1. ID 필드
  2. 상태/타입 enum
  3. 일반 필드
  4. 관계 엔티티

또한 @Enumerated(EnumType.STRING) 어노테이션이 적절하게 추가되었습니다.


62-72: 생성자 매개변수 순서가 필드 순서와 일관성있게 변경되었습니다.

생성자의 매개변수 순서가 필드 순서와 동일하게 변경되어 코드의 일관성이 향상되었습니다:

  • 상태 enum (submissionStatus, submissionFailureType)
  • 관계 엔티티 (studyDetail, member)

74-81: 팩토리 메서드의 빌더 호출 순서가 적절하게 조정되었습니다.

create() 메서드의 빌더 호출 순서가 새로운 필드 순서와 일치하도록 변경되었으며, 기존 메서드 시그니처를 유지하여 하위 호환성을 보장하고 있습니다.

src/main/java/com/gdschongik/gdsc/domain/study/domain/Study.java (4)

38-79: 필드 순서가 잘 정리되었습니다!

필드 순서가 다음과 같이 잘 정리되어 있습니다:

  1. ID 필드
  2. 타입 enum (studyType)
  3. 일반 필드들 (title, introduction 등)
  4. VO (period, applicationPeriod)
  5. 관계 필드 (mentor)

이는 PR에서 논의된 기준을 잘 따르고 있습니다.


80-103: 생성자 매개변수 순서가 필드 순서와 일치합니다.

private 생성자의 매개변수 순서가 필드 선언 순서와 동일하게 변경되어 일관성이 향상되었습니다.


105-133: 정적 팩토리 메서드의 매개변수 순서가 일관성 있게 변경되었습니다.

create 메서드의 매개변수 순서가 생성자와 동일하게 변경되어 코드의 일관성이 유지되었습니다. Builder 패턴 사용에서도 동일한 순서가 적용되었습니다.


137-171: 유효성 검증 로직에 대한 테스트 케이스 보강이 필요합니다.

현재 구현된 유효성 검증 로직들이 중요한 비즈니스 규칙을 포함하고 있습니다. 다음 시나리오들에 대한 테스트 케이스 추가를 고려해주세요:

  • 스터디 시작 시간이 종료 시간보다 늦은 경우
  • ASSIGNMENT 타입 스터디에 시간이 입력된 경우
  • 게스트 멤버가 멘토로 지정된 경우

테스트 케이스 작성을 도와드릴까요?

✨ Finishing Touches
  • 📝 Generate Docstrings (Beta)

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?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

Job Summary for Gradle

Check Style and Test to Develop :: build-test
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
gdsc check 8.5 Build Scan published

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (7)
src/main/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRound.java (1)

49-60: 생성자 매개변수 순서가 개선되었습니다.

필드 선언 순서와 동일하게 매개변수가 정렬되어 일관성이 향상되었습니다. 다만, 가독성을 위해 매개변수 그룹 사이에 빈 줄을 추가하는 것을 고려해보세요.

 private RecruitmentRound(
         String name,
         RoundType roundType,
         final Period period,
         Recruitment recruitment,
+
         Integer academicYear,
         SemesterType semesterType) {
src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyAchievement.java (1)

51-53: 팩토리 메서드가 적절히 수정되었습니다!

생성자와 동일한 순서로 파라미터가 변경되어 일관성이 유지되었습니다.

메서드의 의도를 더 명확히 하기 위해 다음과 같이 JavaDoc을 추가하는 것을 고려해보세요:

+    /**
+     * StudyAchievement 엔티티를 생성합니다.
+     *
+     * @param achievementType 학습 성취 유형
+     * @param student 학생 멤버
+     * @param study 스터디
+     * @return 생성된 StudyAchievement 엔티티
+     */
     public static StudyAchievement create(AchievementType achievementType, Member student, Study study) {
src/main/java/com/gdschongik/gdsc/domain/recruitment/domain/Recruitment.java (2)

23-24: 필드 유효성 검사 추가 필요

feeName 필드에 JPA 유효성 검사를 추가하는 것이 좋겠습니다. 데이터 무결성을 보장하기 위해 다음과 같은 제약 조건을 고려해 보세요:

-    private String feeName;
+    @Column(name = "fee_name", length = 100, nullable = false)
+    private String feeName;

41-48: 팩토리 메서드가 잘 구현되었습니다.

매개변수 순서가 생성자와 일관성 있게 변경되었습니다. 다만, 메서드의 용도를 명확히 하기 위해 JavaDoc 추가를 제안드립니다.

+    /**
+     * Recruitment 엔티티를 생성합니다.
+     * @param feeName 납부금 이름
+     * @param fee 납부금액
+     * @param semesterPeriod 학기 기간
+     * @param academicYear 학년도
+     * @param semesterType 학기 구분
+     * @return 생성된 Recruitment 엔티티
+     */
     public static Recruitment create(
src/main/java/com/gdschongik/gdsc/domain/order/domain/Order.java (1)

67-83: 생성자 매개변수 순서도 필드 순서와 일치시켜야 합니다.

필드 순서를 재정렬할 때 생성자의 매개변수 순서도 동일하게 맞춰주시면 코드의 일관성이 향상될 것 같습니다.

    private Order(
            String nanoId,
+           String paymentKey,
+           ZonedDateTime approvedAt,
+           ZonedDateTime canceledAt,
+           OrderStatus status,
+           MoneyInfo moneyInfo,
            Long memberId,
            Long membershipId,
            Long recruitmentRoundId,
-           Long issuedCouponId,
-           OrderStatus status,
-           MoneyInfo moneyInfo) {
+           Long issuedCouponId) {
src/main/java/com/gdschongik/gdsc/domain/study/domain/AssignmentHistory.java (1)

64-71: 생성자 매개변수 순서를 필드 순서와 일치시키는 것이 좋겠습니다.

현재 필드는 다음 순서로 잘 정리되어 있습니다:

  1. ID
  2. 일반 필드 (submissionLink, commitHash, contentLength, committedAt)
  3. Enum 필드 (submissionStatus, submissionFailureType)
  4. 관계 필드 (studyDetail, member)

하지만 생성자의 매개변수 순서는 이와 다릅니다. 일관성을 위해 다음과 같이 변경하는 것을 제안합니다:

    private AssignmentHistory(
-           AssignmentSubmissionStatus submissionStatus,
-           SubmissionFailureType submissionFailureType,
-           StudyDetail studyDetail,
-           Member member) {
+           StudyDetail studyDetail,
+           Member member,
+           AssignmentSubmissionStatus submissionStatus,
+           SubmissionFailureType submissionFailureType) {
        this.submissionStatus = submissionStatus;
        this.submissionFailureType = submissionFailureType;
        this.studyDetail = studyDetail;
        this.member = member;
    }
src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyDetail.java (1)

54-56: 엔티티 필드 순서 개선 필요

PR 목적에 따라 관계 필드는 마지막에 위치해야 하지만, 현재는 다른 필드들 사이에 위치해 있습니다. 필드 순서를 다음과 같이 정리하는 것이 좋습니다:

  1. Id 필드
  2. 일반 필드
  3. enum 필드
  4. VO 필드
  5. 관계 필드
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0160cd8 and f3948c0.

📒 Files selected for processing (12)
  • src/main/java/com/gdschongik/gdsc/domain/coupon/domain/IssuedCoupon.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/member/domain/Member.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/membership/domain/Membership.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/order/domain/Order.java (3 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/recruitment/domain/Recruitment.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRound.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/AssignmentHistory.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/Study.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyAchievement.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyAnnouncement.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyDetail.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyHistory.java (2 hunks)
🔇 Additional comments (16)
src/main/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRound.java (2)

37-39: 필드 선언이 잘 구성되어 있습니다!

엔티티 필드 순서 규칙에 맞게 enum 필드가 적절히 배치되었습니다.


62-70: 정적 팩토리 메서드가 적절히 수정되었습니다.

매개변수 순서가 생성자와 일치하도록 개선되었으며, recruitment에서 기본 엔티티 필드를 가져오는 방식이 명확합니다.

src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyAchievement.java (2)

33-34: 필드 선언이 적절히 개선되었습니다!

@Enumerated(EnumType.STRING) 어노테이션 추가와 필드 순서 변경이 잘 이루어졌습니다. 특히 EnumType을 STRING으로 지정한 것이 데이터 안정성 측면에서 좋은 선택입니다.


45-46: 생성자 시그니처가 일관성 있게 변경되었습니다!

필드 순서와 동일하게 파라미터 순서를 변경하여 코드의 일관성이 향상되었습니다.

src/main/java/com/gdschongik/gdsc/domain/recruitment/domain/Recruitment.java (1)

33-37: 생성자 매개변수 순서 변경이 적절합니다.

PR 목적에 맞게 필드 순서가 잘 정리되었으며, 부모 클래스 생성자 호출도 올바르게 구현되었습니다.

src/main/java/com/gdschongik/gdsc/domain/order/domain/Order.java (1)

Line range hint 91-114: 정적 팩토리 메서드 구현이 잘 되어있습니다.

createPendingcreateFree 메서드가 각각의 상태에 맞게 적절히 구현되어 있으며, 무료 주문에 대한 유효성 검사도 잘 구현되어 있습니다.

src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyAnnouncement.java (2)

32-34: 필드 순서 변경이 잘 되었습니다!

관계 필드(relationship field)를 엔티티 끝부분으로 이동한 것이 좋은 구조적 개선입니다. FetchType.LAZY를 사용한 것도 적절합니다.


37-40: 생성자 매개변수 순서 변경에 따른 영향도 확인이 필요합니다.

생성자의 매개변수 순서가 변경되었습니다. 이 변경이 다른 코드에 미치는 영향을 확인해야 합니다.

✅ Verification successful

생성자 매개변수 순서 변경은 안전합니다.

빌더 패턴을 통해서만 객체가 생성되고 있어, 생성자의 매개변수 순서 변경이 다른 코드에 영향을 주지 않습니다. 직접적인 생성자 호출이 발견되지 않았으며, 모든 객체 생성이 빌더를 통해 이루어지고 있습니다.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: 생성자 사용 패턴 검색

# StudyAnnouncement 생성자 호출 패턴 검색
rg "new StudyAnnouncement\(" --type java

Length of output: 42


Script:

#!/bin/bash
# Description: 다양한 패턴으로 StudyAnnouncement 사용 검색

# 클래스 이름으로 전체 검색
echo "=== StudyAnnouncement 관련 파일 검색 ==="
rg "StudyAnnouncement" --type java -l

# Builder 패턴 사용 검색
echo -e "\n=== Builder 패턴 사용 검색 ==="
rg "StudyAnnouncement\.builder\(\)" --type java -A 5

# 테스트 파일에서 사용 패턴 검색
echo -e "\n=== 테스트 파일에서 사용 검색 ==="
fd -e java -g "*Test.java" --exec rg "StudyAnnouncement" {}

Length of output: 1764

src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyHistory.java (1)

38-42: 필드 순서가 잘 정리되었습니다!

엔티티 필드가 다음과 같은 순서로 잘 정리되어 있습니다:

  1. ID 필드
  2. 일반 필드 (repositoryLink)
  3. Enum 필드 (studyHistoryStatus)
  4. 관계 필드 (student, study)
src/main/java/com/gdschongik/gdsc/domain/coupon/domain/IssuedCoupon.java (1)

35-39: 필드 순서와 생성자 시그니처가 일관성있게 변경되었습니다!

  1. 필드가 ID, 일반 필드(hasRevoked, usedAt), 관계 필드(coupon, member) 순으로 정리되었습니다.
  2. 생성자 매개변수 순서도 필드 순서와 일치하도록 변경되었습니다.

Also applies to: 49-50

src/main/java/com/gdschongik/gdsc/domain/membership/domain/Membership.java (1)

37-39: 필드 순서와 생성자 시그니처가 잘 정리되었습니다!

  1. 필드가 ID, 값 객체(regularRequirement), 관계 필드(member, recruitmentRound) 순으로 정리되었습니다.
  2. 생성자 매개변수도 필드 순서와 동일하게 변경되었습니다.

Also applies to: 49-50

src/main/java/com/gdschongik/gdsc/domain/study/domain/StudyDetail.java (1)

64-65: 생성자 매개변수 순서가 적절합니다.

필드 순서와 일관성 있게 생성자 매개변수가 정리되었습니다.

src/main/java/com/gdschongik/gdsc/domain/study/domain/Study.java (2)

55-60: 시간 관련 필드가 적절하게 추가되었습니다.

시작 시간과 종료 시간 필드가 명확한 주석과 함께 추가되었습니다.


83-92: 생성자와 create 메서드의 매개변수 순서가 일관성 있게 변경되었습니다.

필드 순서와 동일한 패턴으로 매개변수가 정리되었으며, 모든 유효성 검사 로직이 잘 유지되고 있습니다.

Also applies to: 107-116

src/main/java/com/gdschongik/gdsc/domain/member/domain/Member.java (2)

42-43: 필드 순서가 체계적으로 정리되었습니다.

Id, 일반 필드, enum 필드 순으로 잘 정리되었습니다.

Also applies to: 46-47, 57-70


79-105: 생성자 매개변수 순서가 필드 순서와 일치하도록 잘 변경되었습니다.

필드 순서와 동일한 패턴으로 생성자 매개변수가 정리되었습니다.

Comment on lines +43 to +44
public static StudyAnnouncement create(String title, String link, Study study) {
return StudyAnnouncement.builder().title(title).link(link).study(study).build();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codebase verification

팩토리 메서드 호출 순서가 잘못되었습니다.

StudyAnnouncement.create() 메서드는 (title, link, study) 순서로 매개변수를 기대하지만, 다음 위치에서 잘못된 순서로 호출되고 있습니다:

  • src/main/java/com/gdschongik/gdsc/domain/study/application/MentorStudyService.java에서 (study, title, link) 순서로 전달하고 있습니다.

매개변수 순서를 StudyAnnouncement.create(request.title(), request.link(), study)로 수정해야 합니다.

🔗 Analysis chain

팩토리 메서드 시그니처 변경에 따른 영향도 확인이 필요합니다.

create 메서드의 매개변수 순서가 변경되었습니다. 이 메서드를 사용하는 모든 곳에서 올바른 순서로 인자를 전달하는지 확인이 필요합니다.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: create 메서드 호출 패턴 검색

# StudyAnnouncement.create 메서드 호출 패턴 검색
rg "StudyAnnouncement\.create\(" --type java

Length of output: 241

Comment on lines +74 to +82
public static StudyDetail create(Long week, String attendanceNumber, Period period, Study study) {
return StudyDetail.builder()
.study(study)
.week(week)
.period(period)
.attendanceNumber(attendanceNumber)
.period(period)
.curriculum(Curriculum.empty())
.assignment(Assignment.empty())
.study(study)
Copy link

@coderabbitai coderabbitai bot Jan 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

중복된 period 설정 수정 필요

builder 호출에서 period가 두 번 설정되고 있습니다:

 return StudyDetail.builder()
         .week(week)
-        .period(period)
         .attendanceNumber(attendanceNumber)
         .period(period)
         .curriculum(Curriculum.empty())
         .assignment(Assignment.empty())
         .study(study)
         .build();
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
public static StudyDetail create(Long week, String attendanceNumber, Period period, Study study) {
return StudyDetail.builder()
.study(study)
.week(week)
.period(period)
.attendanceNumber(attendanceNumber)
.period(period)
.curriculum(Curriculum.empty())
.assignment(Assignment.empty())
.study(study)
public static StudyDetail create(Long week, String attendanceNumber, Period period, Study study) {
return StudyDetail.builder()
.week(week)
.attendanceNumber(attendanceNumber)
.period(period)
.curriculum(Curriculum.empty())
.assignment(Assignment.empty())
.study(study)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이거 체크 부탁드려요

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@uwoobeat 네, 확인해보니 period 필드가 builder에서 두 번 설정되고 있습니다. 첫 번째 .period(period)를 제거하면 됩니다:

public static StudyDetail create(Long week, String attendanceNumber, Period period, Study study) {
    return StudyDetail.builder()
            .week(week)
            .attendanceNumber(attendanceNumber)
            .period(period)
            .curriculum(Curriculum.empty())
            .assignment(Assignment.empty())
            .study(study)
            .build();
}

이렇게 수정하면 중복 설정이 제거되어 코드가 더 깔끔해질 것 같습니다.

Copy link

Job Summary for Gradle

Check Style and Test to Develop :: build-test
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
gdsc check 8.5 Build Scan published

Copy link

Job Summary for Gradle

Check Style and Test to Develop :: build-test
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
gdsc check 8.5 Build Scan published

Copy link

Job Summary for Gradle

Check Style and Test to Develop :: build-test
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
gdsc check 8.5 Build Scan published

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

🔭 Outside diff range comments (1)
src/test/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRoundValidatorTest.java (1)

Line range hint 1-233: 코드 포맷팅 위반 사항을 수정해 주세요.

GitHub Actions에서 스타일 체크 실패가 보고되었습니다. 다음 사항들을 확인해 주세요:

  1. 메서드 체이닝 시 일관된 들여쓰기 적용
  2. 파라미터 나열 시 일관된 들여쓰기 적용
  3. 테스트 메서드 간 일관된 줄 간격 유지
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

🧹 Nitpick comments (3)
src/test/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRoundValidatorTest.java (1)

28-32: 매개변수 순서가 일관성 있게 변경되었습니다.

매개변수 순서가 PR의 목적에 맞게 잘 변경되었으나, 코드 포맷팅 위반이 있습니다. 들여쓰기를 일관되게 적용해 주세요.

-                    FEE_NAME, FEE,
-                    Period.of(LocalDateTime.of(2025, 3, 2, 0, 0), LocalDateTime.of(2025, 8, 31, 0, 0)),
-                    2025,
-                    SEMESTER_TYPE
+                FEE_NAME, FEE,
+                Period.of(LocalDateTime.of(2025, 3, 2, 0, 0), LocalDateTime.of(2025, 8, 31, 0, 0)),
+                2025,
+                SEMESTER_TYPE
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/helper/FixtureHelper.java (1)

91-94: 매개변수 순서는 좋으나 코드 포맷팅 개선이 필요합니다.

매개변수 순서가 엔티티 필드 순서(일반 필드 → 열거형 필드 → 관계 필드)와 일치하도록 잘 변경되었습니다. 다만, 파이프라인 오류를 해결하기 위해 포맷팅 수정이 필요합니다.

다음과 같이 들여쓰기를 수정해주세요:

 return Study.create(
-                STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
-                DAY_OF_WEEK, period, applicationPeriod, mentor, ACADEMIC_YEAR,
-                SEMESTER_TYPE
-        );
+        STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
+        DAY_OF_WEEK, period, applicationPeriod, mentor, ACADEMIC_YEAR,
+        SEMESTER_TYPE);
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/domain/coupon/util/CouponNameUtilTest.java (1)

24-28: 매개변수 순서가 엔티티 필드 순서와 일치하도록 변경되었습니다.

Study.create() 메서드의 매개변수 순서가 엔티티 필드 순서 표준화 작업과 일치하도록 잘 변경되었습니다. 일반 필드, enum 필드, VO 필드, 관계 필드 순으로 정렬되어 있습니다.

하지만 가독성을 위해 매개변수를 좀 더 논리적인 그룹으로 나누어 정렬하는 것이 좋을 것 같습니다.

다음과 같이 매개변수를 그룹화하여 정렬하는 것을 제안드립니다:

-                "기초 백엔드 스터디", TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
-                DAY_OF_WEEK, STUDY_ONGOING_PERIOD,
-                Period.of(START_DATE.minusDays(10), START_DATE.minusDays(5)), mentor, 2025,
-                SemesterType.FIRST
+                // 기본 정보
+                "기초 백엔드 스터디",
+                2025,
+                SemesterType.FIRST,
+                // 스터디 일정
+                TOTAL_WEEK,
+                STUDY_START_TIME,
+                STUDY_END_TIME,
+                DAY_OF_WEEK,
+                // 스터디 설정
+                ONLINE_STUDY,
+                STUDY_ONGOING_PERIOD,
+                Period.of(START_DATE.minusDays(10), START_DATE.minusDays(5)),
+                // 관계
+                mentor
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d43ce5f and d90347f.

📒 Files selected for processing (18)
  • src/main/java/com/gdschongik/gdsc/domain/order/application/OrderService.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/order/domain/Order.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/recruitment/application/AdminRecruitmentService.java (2 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/application/MentorStudyAchievementService.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/application/MentorStudyService.java (1 hunks)
  • src/main/java/com/gdschongik/gdsc/domain/study/factory/StudyDomainFactory.java (2 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/coupon/util/CouponNameUtilTest.java (1 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/member/domain/MemberValidatorTest.java (1 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/membership/domain/MembershipTest.java (1 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/membership/domain/MembershipValidatorTest.java (1 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/order/domain/OrderTest.java (6 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/order/domain/OrderValidatorTest.java (6 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/recruitment/application/AdminRecruitmentServiceTest.java (1 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRoundValidatorTest.java (11 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentTest.java (1 hunks)
  • src/test/java/com/gdschongik/gdsc/domain/study/domain/StudyTest.java (5 hunks)
  • src/test/java/com/gdschongik/gdsc/helper/FixtureHelper.java (3 hunks)
  • src/test/java/com/gdschongik/gdsc/helper/IntegrationTest.java (4 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/main/java/com/gdschongik/gdsc/domain/order/domain/Order.java
🧰 Additional context used
🪛 GitHub Actions: Check Style and Test to Develop
src/test/java/com/gdschongik/gdsc/domain/coupon/util/CouponNameUtilTest.java

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/domain/order/domain/OrderValidatorTest.java

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/domain/order/domain/OrderTest.java

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRoundValidatorTest.java

[error] Code formatting violations present

src/main/java/com/gdschongik/gdsc/domain/study/application/MentorStudyService.java

[error] 123-124: Code formatting violation: Incorrect line breaks in StudyAnnouncement.create() call

src/test/java/com/gdschongik/gdsc/domain/study/domain/StudyTest.java

[error] Code formatting violations present

src/main/java/com/gdschongik/gdsc/domain/order/application/OrderService.java

[error] 63-64: Code formatting violation: Incorrect line breaks in Order.createPending() call

src/main/java/com/gdschongik/gdsc/domain/recruitment/application/AdminRecruitmentService.java

[error] 42-52: Code formatting violation: Incorrect line breaks and indentation in Recruitment.create() call

src/test/java/com/gdschongik/gdsc/domain/membership/domain/MembershipValidatorTest.java

[error] Code formatting violations present

src/main/java/com/gdschongik/gdsc/domain/study/factory/StudyDomainFactory.java

[error] 18-33: Code formatting violation: Incorrect line breaks and indentation in Study.create() call

src/test/java/com/gdschongik/gdsc/domain/recruitment/application/AdminRecruitmentServiceTest.java

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/helper/FixtureHelper.java

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/helper/IntegrationTest.java

[error] Code formatting violations present

🔇 Additional comments (26)
src/test/java/com/gdschongik/gdsc/domain/member/domain/MemberValidatorTest.java (2)

28-28: 매개변수 순서가 일관성 있게 변경되었습니다!

Recruitment.create() 메서드의 매개변수 순서가 PR의 목적에 맞게 잘 정리되었습니다. 일반 필드(FEE_NAME, FEE)가 먼저 오고, VO(START_TO_END_PERIOD)와 열거형 필드(ACADEMIC_YEAR, SEMESTER_TYPE)가 뒤따르는 구조로 변경되었습니다.


31-31: 매개변수 순서가 체계적으로 개선되었습니다!

RecruitmentRound.create() 메서드의 매개변수 순서도 일관된 규칙에 따라 잘 정리되었습니다. 일반 필드(RECRUITMENT_ROUND_NAME), 열거형(ROUND_TYPE), VO(Period), 그리고 관계 필드(recruitment)순으로 배치되어 있습니다.

src/main/java/com/gdschongik/gdsc/domain/study/application/MentorStudyService.java (1)

126-127: 매개변수 순서 변경이 적절합니다

엔티티 필드 순서 표준화에 맞춰 매개변수 순서가 적절하게 변경되었습니다. 이는 PR의 목적에 부합하며, 코드의 일관성을 향상시킵니다.

src/test/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentRoundValidatorTest.java (1)

78-79: RecruitmentRound 생성 메서드의 매개변수 순서가 일관되게 변경되었습니다.

모든 테스트 케이스에서 RecruitmentRound.create() 메서드의 매개변수 순서가 동일한 패턴으로 잘 변경되었습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/helper/FixtureHelper.java (3)

74-74: 매개변수 순서가 엔티티 필드 순서와 일치하도록 잘 수정되었습니다!

일반 필드(FEE_NAME, fee)를 먼저 배치하고, 기간(Period) 및 열거형 필드(academicYear, semesterType)를 뒤로 이동한 것이 PR의 목적과 잘 부합합니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present


77-77: RecruitmentRound.create 메서드의 매개변수 순서도 적절하게 변경되었습니다!

일반 필드(name, roundType)를 먼저 배치하고, 기간(Period) 및 관계 필드(recruitment)를 뒤로 이동한 구조가 일관성 있습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present


103-103: StudyDetail 생성 메서드들의 매개변수 순서가 일관되게 변경되었습니다!

두 메서드 모두 일반 필드를 먼저 배치하고 관계 필드(study)를 마지막에 배치하여, PR의 목적인 엔티티 필드 순서 표준화가 잘 적용되었습니다.

Also applies to: 108-109

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/main/java/com/gdschongik/gdsc/domain/study/factory/StudyDomainFactory.java (1)

37-37: 매개변수 순서 변경이 일관성 있게 적용됨

StudyDetail.create() 메서드의 매개변수 순서가 PR의 목적에 맞게 일관성 있게 변경되었습니다. 엔티티 필드 순서 변경 규칙이 잘 반영되었습니다.

src/main/java/com/gdschongik/gdsc/domain/study/application/MentorStudyAchievementService.java (1)

55-55: 매개변수 순서 변경이 적절하게 이루어짐

StudyAchievement.create() 메서드의 매개변수 순서가 엔티티 필드 순서 변경 규칙에 맞게 변경되었습니다. achievementType(enum), member(일반 필드), study(관계 필드) 순으로 정렬되어 일관성이 유지되었습니다.

src/test/java/com/gdschongik/gdsc/domain/membership/domain/MembershipValidatorTest.java (1)

44-46: 매개변수 순서 변경이 일관성 있게 적용되었습니다.

매개변수 순서가 엔티티 필드 순서와 일치하도록 잘 변경되었습니다. 이는 코드의 가독성과 유지보수성을 향상시킵니다.

다만, 코드 스타일 검사에서 오류가 발생했습니다. 다음 사항을 확인해 주세요:

  • 들여쓰기가 올바른지 확인
  • 줄 바꿈이 일관되게 적용되었는지 확인
✅ Verification successful

매개변수 순서 변경이 올바르게 적용되었으며, 코드 스타일도 정확합니다.

코드를 검토한 결과, 다음 사항들이 모두 적절하게 구현되었습니다:

  • 매개변수 순서가 엔티티 필드 순서와 일치하도록 잘 정렬되어 있습니다
  • 들여쓰기와 줄 바꿈이 일관되게 적용되어 있습니다
  • 전반적인 코드 포맷팅이 프로젝트 스타일 가이드를 잘 따르고 있습니다
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check code style violations
# Note: Using grep to find indentation issues in the changed lines

rg -U "Recruitment\.create\([\s\S]*?\)" | grep -P "^[ ]{16}"
rg -U "RecruitmentRound\.create\([\s\S]*?\)" | grep -P "^[ ]{16}"

Length of output: 130


Script:

#!/bin/bash
# Get the exact content of the file
cat src/test/java/com/gdschongik/gdsc/domain/membership/domain/MembershipValidatorTest.java

# Check indentation patterns specifically around the changed lines
rg -A 2 -B 2 "FEE_NAME, fee," src/test/java/com/gdschongik/gdsc/domain/membership/domain/MembershipValidatorTest.java

Length of output: 4545

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/domain/order/domain/OrderTest.java (2)

61-61: 메서드 호출의 매개변수 순서가 일관되게 변경되었습니다.

Order.createFree 메서드의 매개변수 순서가 PR의 목적에 맞게 적절하게 변경되었습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present


81-83: 예외 테스트의 매개변수 순서도 일관되게 변경되었습니다.

예외를 검증하는 테스트 케이스에서도 매개변수 순서가 올바르게 조정되었습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/main/java/com/gdschongik/gdsc/domain/order/application/OrderService.java (2)

66-67: 메서드 매개변수 순서 변경이 서비스 계층에도 일관되게 적용되었습니다.

createPendingOrder 메서드에서 Order.createPending 호출 시 매개변수 순서가 적절하게 변경되었습니다.

하지만 들여쓰기 포맷팅을 수정해야 합니다:

-        Order order = Order.createPending(request.orderNanoId(), moneyInfo,
-                membership, issuedCoupon);
+        Order order = Order.createPending(request.orderNanoId(),
+                moneyInfo,
+                membership,
+                issuedCoupon);

172-172: 무료 주문 생성 메서드도 일관된 매개변수 순서를 따르고 있습니다.

createFreeOrder 메서드에서 Order.createFree 호출의 매개변수 순서가 올바르게 변경되었습니다.

src/test/java/com/gdschongik/gdsc/domain/order/domain/OrderValidatorTest.java (1)

297-297: 검증 테스트의 메서드 호출도 일관된 매개변수 순서로 변경되었습니다.

OrderValidatorTest의 모든 테스트 케이스에서 Order.createPendingOrder.createFree 메서드 호출의 매개변수 순서가 일관되게 변경되었습니다.

다만, 다른 파일들과 마찬가지로 포맷팅 이슈가 있습니다:

-            Order order = Order.createPending(
-                    "nanoId", MoneyInfo.of(MONEY_20000_WON, Money.ZERO, MONEY_20000_WON), membership, null);
+            Order order = Order.createPending("nanoId",
+                    MoneyInfo.of(MONEY_20000_WON, Money.ZERO, MONEY_20000_WON),
+                    membership,
+                    null);

Also applies to: 325-326, 353-354, 379-379, 403-403, 428-429

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/domain/coupon/util/CouponNameUtilTest.java (1)

Line range hint 1-35: 코드 포맷팅 위반 사항을 수정해주세요.

GitHub Actions에서 스타일 체크 실패가 보고되었습니다. 전체 파일의 포맷팅을 검토하고 수정해주시기 바랍니다.

다음 스크립트를 실행하여 구체적인 포맷팅 위반 사항을 확인할 수 있습니다:

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/test/java/com/gdschongik/gdsc/domain/recruitment/domain/RecruitmentTest.java (1)

22-22: 매개변수 순서 변경이 적절합니다!

기본 필드(FEE_NAME, FEE)를 먼저 배치하고, 복잡한 객체(Period)와 열거형 필드(ACADEMIC_YEAR, SEMESTER_TYPE)를 뒤에 배치한 것이 더 논리적입니다.

src/test/java/com/gdschongik/gdsc/domain/membership/domain/MembershipTest.java (1)

32-34: 매개변수 순서 변경이 일관성 있게 적용되었습니다!

Recruitment.create()RecruitmentRound.create() 모두 동일한 패턴으로 매개변수 순서가 변경되어 일관성이 잘 유지되었습니다.

src/test/java/com/gdschongik/gdsc/domain/recruitment/application/AdminRecruitmentServiceTest.java (1)

74-75: 매개변수 순서 변경이 테스트 코드에도 잘 반영되었습니다!

서비스 계층의 변경사항이 테스트 코드에도 일관성 있게 적용되어 있습니다.

Also applies to: 79-79

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

src/main/java/com/gdschongik/gdsc/domain/recruitment/application/AdminRecruitmentService.java (1)

84-84: 매개변수 순서 변경이 서비스 계층에도 잘 반영되었습니다!

RecruitmentRound.create() 메서드의 매개변수 순서가 일관성 있게 변경되었습니다.

src/test/java/com/gdschongik/gdsc/helper/IntegrationTest.java (6)

191-191: 매개변수 순서 변경이 적절합니다

엔티티 필드 순서에 맞춰 매개변수가 잘 정렬되었습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present


207-207: 오버로드된 메서드의 매개변수 순서가 일관성 있게 변경되었습니다

기본 메서드와 동일한 패턴으로 매개변수가 정렬되어 있습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present


213-213: 엔티티 필드 구조에 맞게 잘 정렬되었습니다

Recruitment 생성 메서드의 매개변수 순서가 엔티티 필드 구조를 잘 반영하고 있습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present


250-251: 매개변수 순서가 적절히 변경되었습니다

StudyDetail 생성 메서드의 매개변수 순서가 엔티티 필드 구조를 잘 반영하고 있습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present


256-257: 오버로드된 메서드의 매개변수 순서가 일관성 있게 변경되었습니다

기본 메서드와 동일한 패턴으로 매개변수가 정렬되어 있습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present


267-267: 매개변수 순서 변경이 적절합니다

StudyAchievement 생성 메서드의 매개변수 순서가 엔티티 필드 구조를 잘 반영하고 있습니다.

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

Comment on lines 126 to 127
StudyAnnouncement studyAnnouncement = StudyAnnouncement.create(request.title(),
request.link(), study);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

코드 포맷팅 수정 필요

코드 스타일 검사에서 지적된 StudyAnnouncement.create() 호출의 줄바꿈을 수정해야 합니다.

다음과 같이 수정하세요:

-        StudyAnnouncement studyAnnouncement = StudyAnnouncement.create(request.title(),
-                request.link(), study);
+        StudyAnnouncement studyAnnouncement = StudyAnnouncement.create(
+                request.title(), request.link(), study);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
StudyAnnouncement studyAnnouncement = StudyAnnouncement.create(request.title(),
request.link(), study);
StudyAnnouncement studyAnnouncement = StudyAnnouncement.create(
request.title(), request.link(), study);

Comment on lines 21 to 27
request.title(), request.totalWeek(), request.studyStartTime(),
request.studyEndTime(), request.studyType(), request.dayOfWeek(),
Period.of(request.startDate().atStartOfDay(), endDate.atTime(LocalTime.MAX)), Period.of(
request.applicationStartDate().atStartOfDay(),
request.applicationEndDate().atTime(LocalTime.MAX)),
request.totalWeek(),
request.studyType(),
request.dayOfWeek(),
request.studyStartTime(),
request.studyEndTime());
request.applicationEndDate().atTime(LocalTime.MAX)), mentor, request.academicYear(),
request.semesterType()
);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

코드 스타일 위반 수정 필요

GitHub Actions에서 보고된 코드 스타일 위반을 수정해야 합니다. Study.create() 메서드 호출의 줄 바꿈과 들여쓰기가 올바르지 않습니다.

다음과 같이 수정하는 것을 제안합니다:

        return Study.create(
-                request.title(), request.totalWeek(), request.studyStartTime(),
-                request.studyEndTime(), request.studyType(), request.dayOfWeek(),
-                Period.of(request.startDate().atStartOfDay(), endDate.atTime(LocalTime.MAX)), Period.of(
-                        request.applicationStartDate().atStartOfDay(),
-                        request.applicationEndDate().atTime(LocalTime.MAX)), mentor, request.academicYear(),
-                request.semesterType()
+                request.title(),
+                request.totalWeek(),
+                request.studyStartTime(),
+                request.studyEndTime(),
+                request.studyType(),
+                request.dayOfWeek(),
+                Period.of(request.startDate().atStartOfDay(), endDate.atTime(LocalTime.MAX)),
+                Period.of(
+                    request.applicationStartDate().atStartOfDay(),
+                    request.applicationEndDate().atTime(LocalTime.MAX)
+                ),
+                mentor,
+                request.academicYear(),
+                request.semesterType()
        );
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
request.title(), request.totalWeek(), request.studyStartTime(),
request.studyEndTime(), request.studyType(), request.dayOfWeek(),
Period.of(request.startDate().atStartOfDay(), endDate.atTime(LocalTime.MAX)), Period.of(
request.applicationStartDate().atStartOfDay(),
request.applicationEndDate().atTime(LocalTime.MAX)),
request.totalWeek(),
request.studyType(),
request.dayOfWeek(),
request.studyStartTime(),
request.studyEndTime());
request.applicationEndDate().atTime(LocalTime.MAX)), mentor, request.academicYear(),
request.semesterType()
);
return Study.create(
request.title(),
request.totalWeek(),
request.studyStartTime(),
request.studyEndTime(),
request.studyType(),
request.dayOfWeek(),
Period.of(request.startDate().atStartOfDay(), endDate.atTime(LocalTime.MAX)),
Period.of(
request.applicationStartDate().atStartOfDay(),
request.applicationEndDate().atTime(LocalTime.MAX)
),
mentor,
request.academicYear(),
request.semesterType()
);

Comment on lines 127 to 128
"testNanoId", MoneyInfo.of(MONEY_20000_WON, MONEY_5000_WON, MONEY_15000_WON),
membership, null);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

동일한 포맷팅 이슈가 여러 곳에서 발견되었습니다.

위에서 제안한 것과 같은 포맷팅 이슈가 다음 라인들에서도 발견되었습니다. 일관성 있게 수정이 필요합니다.

모든 Order.createPendingOrder.createFree 메서드 호출에 동일한 포맷팅 규칙을 적용해 주세요.

Also applies to: 153-153, 176-177, 297-297, 325-326, 353-354, 379-379, 403-403, 428-429

🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

Comment on lines 103 to 104
"testNanoId", MoneyInfo.of(MONEY_20000_WON, MONEY_5000_WON, MONEY_15000_WON),
membership, null);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

들여쓰기 포맷팅 이슈가 있습니다.

파이프라인 실패 로그에 따르면 코드 포맷팅 위반이 있습니다. 메서드 호출의 들여쓰기를 수정해 주세요.

다음과 같이 수정하는 것을 제안합니다:

-            Order order = Order.createPending(
-                    "testNanoId", MoneyInfo.of(MONEY_20000_WON, MONEY_5000_WON, MONEY_15000_WON),
-                    membership, null);
+            Order order = Order.createPending("testNanoId",
+                    MoneyInfo.of(MONEY_20000_WON, MONEY_5000_WON, MONEY_15000_WON),
+                    membership,
+                    null);
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"testNanoId", MoneyInfo.of(MONEY_20000_WON, MONEY_5000_WON, MONEY_15000_WON),
membership, null);
Order order = Order.createPending("testNanoId",
MoneyInfo.of(MONEY_20000_WON, MONEY_5000_WON, MONEY_15000_WON),
membership,
null);
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

Comment on lines 45 to 48
request.feeName(), Money.from(request.fee()),
Period.of(request.semesterStartDate(), request.semesterEndDate()), request.academicYear(),
request.semesterType()
);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

코드 포맷팅을 개선해 주세요.

Recruitment.create() 호출의 들여쓰기와 줄바꿈이 일관성이 없습니다. 다음과 같이 수정하는 것을 제안합니다:

-        Recruitment recruitment = Recruitment.create(
-                request.feeName(), Money.from(request.fee()),
-                Period.of(request.semesterStartDate(), request.semesterEndDate()), request.academicYear(),
-                request.semesterType()
-        );
+        Recruitment recruitment = Recruitment.create(
+                request.feeName(),
+                Money.from(request.fee()),
+                Period.of(request.semesterStartDate(), request.semesterEndDate()),
+                request.academicYear(),
+                request.semesterType());
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
request.feeName(), Money.from(request.fee()),
Period.of(request.semesterStartDate(), request.semesterEndDate()), request.academicYear(),
request.semesterType()
);
request.feeName(),
Money.from(request.fee()),
Period.of(request.semesterStartDate(), request.semesterEndDate()),
request.academicYear(),
request.semesterType());

Comment on lines 43 to 46
STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
DAY_OF_WEEK, START_TO_END_PERIOD, applicationPeriod, guestMember, ACADEMIC_YEAR,
SEMESTER_TYPE
))
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

들여쓰기 스타일 수정 필요

코드 포맷팅 검사 실패의 원인이 되는 들여쓰기 불일치가 있습니다. 파라미터 정렬을 다음과 같이 수정해주세요:

-                    STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
-                    DAY_OF_WEEK, START_TO_END_PERIOD, applicationPeriod, guestMember, ACADEMIC_YEAR,
-                            SEMESTER_TYPE
+                STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
+                DAY_OF_WEEK, START_TO_END_PERIOD, applicationPeriod, guestMember, ACADEMIC_YEAR,
+                SEMESTER_TYPE
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
DAY_OF_WEEK, START_TO_END_PERIOD, applicationPeriod, guestMember, ACADEMIC_YEAR,
SEMESTER_TYPE
))
STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
DAY_OF_WEEK, START_TO_END_PERIOD, applicationPeriod, guestMember, ACADEMIC_YEAR,
SEMESTER_TYPE
))
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

Comment on lines 77 to 80
STUDY_TITLE, TOTAL_WEEK, null, null, ONLINE_STUDY, DAY_OF_WEEK, period,
applicationPeriod, member, ACADEMIC_YEAR,
SEMESTER_TYPE
))
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

들여쓰기 패턴 통일 필요

테스트 케이스 전반에 걸쳐 일관된 들여쓰기를 적용해주세요:

-                    STUDY_TITLE, TOTAL_WEEK, null, null, ONLINE_STUDY, DAY_OF_WEEK, period,
-                    applicationPeriod, member, ACADEMIC_YEAR,
-                            SEMESTER_TYPE
+                STUDY_TITLE, TOTAL_WEEK, null, null, ONLINE_STUDY, DAY_OF_WEEK, period,
+                applicationPeriod, member, ACADEMIC_YEAR,
+                SEMESTER_TYPE
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
STUDY_TITLE, TOTAL_WEEK, null, null, ONLINE_STUDY, DAY_OF_WEEK, period,
applicationPeriod, member, ACADEMIC_YEAR,
SEMESTER_TYPE
))
STUDY_TITLE, TOTAL_WEEK, null, null, ONLINE_STUDY, DAY_OF_WEEK, period,
applicationPeriod, member, ACADEMIC_YEAR,
SEMESTER_TYPE
))
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

Comment on lines 115 to 118
STUDY_TITLE, TOTAL_WEEK, studyStartTime, studyEndTime, ASSIGNMENT_STUDY,
DAY_OF_WEEK, period, applicationPeriod, member, ACADEMIC_YEAR,
SEMESTER_TYPE
))
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

마지막 테스트 케이스 들여쓰기 수정 필요

파일의 마지막 테스트 케이스에서도 동일한 들여쓰기 문제가 발견되었습니다:

-                    STUDY_TITLE, TOTAL_WEEK, studyStartTime, studyEndTime, ASSIGNMENT_STUDY,
-                    DAY_OF_WEEK, period, applicationPeriod, member, ACADEMIC_YEAR,
-                            SEMESTER_TYPE
+                STUDY_TITLE, TOTAL_WEEK, studyStartTime, studyEndTime, ASSIGNMENT_STUDY,
+                DAY_OF_WEEK, period, applicationPeriod, member, ACADEMIC_YEAR,
+                SEMESTER_TYPE
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
STUDY_TITLE, TOTAL_WEEK, studyStartTime, studyEndTime, ASSIGNMENT_STUDY,
DAY_OF_WEEK, period, applicationPeriod, member, ACADEMIC_YEAR,
SEMESTER_TYPE
))
STUDY_TITLE, TOTAL_WEEK, studyStartTime, studyEndTime, ASSIGNMENT_STUDY,
DAY_OF_WEEK, period, applicationPeriod, member, ACADEMIC_YEAR,
SEMESTER_TYPE
))
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

Comment on lines 241 to 244
STUDY_TITLE, totalWeek, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY, DAY_OF_WEEK,
period, applicationPeriod, mentor, ACADEMIC_YEAR,
SEMESTER_TYPE
);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

들여쓰기 수준 조정 필요

현재 들여쓰기를 다음과 같이 수정해주세요:

-                STUDY_TITLE, totalWeek, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY, DAY_OF_WEEK,
-                period, applicationPeriod, mentor, ACADEMIC_YEAR,
-                SEMESTER_TYPE
+        STUDY_TITLE, totalWeek, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY, DAY_OF_WEEK,
+        period, applicationPeriod, mentor, ACADEMIC_YEAR,
+        SEMESTER_TYPE
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
STUDY_TITLE, totalWeek, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY, DAY_OF_WEEK,
period, applicationPeriod, mentor, ACADEMIC_YEAR,
SEMESTER_TYPE
);
STUDY_TITLE, totalWeek, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY, DAY_OF_WEEK,
period, applicationPeriod, mentor, ACADEMIC_YEAR,
SEMESTER_TYPE
);
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

Comment on lines 231 to 234
STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
DAY_OF_WEEK, period, applicationPeriod, mentor, ACADEMIC_YEAR,
SEMESTER_TYPE
);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

들여쓰기 개선 필요

매개변수 순서는 적절하나, 들여쓰기를 다음과 같이 수정해주세요:

-                STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
-                DAY_OF_WEEK, period, applicationPeriod, mentor, ACADEMIC_YEAR,
-                SEMESTER_TYPE
+        STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
+        DAY_OF_WEEK, period, applicationPeriod, mentor, ACADEMIC_YEAR,
+        SEMESTER_TYPE
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
DAY_OF_WEEK, period, applicationPeriod, mentor, ACADEMIC_YEAR,
SEMESTER_TYPE
);
STUDY_TITLE, TOTAL_WEEK, STUDY_START_TIME, STUDY_END_TIME, ONLINE_STUDY,
DAY_OF_WEEK, period, applicationPeriod, mentor, ACADEMIC_YEAR,
SEMESTER_TYPE
);
🧰 Tools
🪛 GitHub Actions: Check Style and Test to Develop

[error] Code formatting violations present

Copy link
Member

@Sangwook02 Sangwook02 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Member

@uwoobeat uwoobeat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

status / type 계열 enum들은 일반 필드보다 앞으로 와야할 것 같아요
이슈 설명에 적어뒀던 것 같은데 확인 부탁드립니다

@kckc0608
Copy link
Member Author

kckc0608 commented Jan 29, 2025

이슈에 일반 필드에 대한 기준은 따로 명시되어 있지 않은 것 같은데, 혹시 어떤 부분인지 알려주실 수 있나요?

'id -> status / type enum -> 일반 필드 -> vo -> 연관 엔티티' 인지
'id -> status / type enum -> 일반 필드 -> 기타 enum -> vo -> 연관 엔티티' 인지도 알려주시면 감사하겠습니다

@uwoobeat
Copy link
Member

uwoobeat commented Jan 29, 2025

이슈에 일반 필드에 대한 기준은 따로 명시되어 있지 않은 것 같은데, 혹시 어떤 부분인지 알려주실 수 있나요?

'id -> status / type enum -> 일반 필드 -> vo -> 연관 엔티티' 인지 'id -> status / type enum -> 일반 필드 -> 기타 enum -> vo -> 연관 엔티티' 인지도 알려주시면 감사하겠습니다

사실 모든 케이스 대응하도록 규칙 만드는 건 어려워서, 이정도로만 보고 나머지는 리뷰로 조율해가면서 맞춰봐야 할 것 같네요
일단 생각나는대로 적어봤습니다... 저도 항상 느낌적으로 배치하다가 명시적으로 적는건 처음이라, 참고 목적 + 해당 규칙의 의도만 체크해주세요

1 .id -> status / type enum -> 그 외 일반 필드 / vo / enum -> 연관 엔티티 순서로 한다
2. vo / 일반 필드의 경우 구분하지 않고 필드 간 연관성을 우선적으로 고려한다.
3. common vo는 대개 2번에 해당한다 (ex: Period. Money) -> 타입으로서의 성격이 강함
4. 3에 해당하지 않는, 특정 도메인에 종속적인 vo는 대개 마지막 (연관 엔티티 앞) 에 배치한다. (ex: MoneyInfo) -> 메타성 정보의 성격이 강함
5. enum의 경우 type 성 성격을 가지는 경우 type enum과 붙여서 구성하고(ex: MemberRole/MemberManageRole/... ), 나머지 케이스(ex: 스터디 요일)는 연관성을 우선으로 고려한다.

Copy link

github-actions bot commented Feb 2, 2025

Job Summary for Gradle

Check Style and Test to Develop :: build-test
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
gdsc check 8.5 Build Scan published

Copy link

github-actions bot commented Feb 2, 2025

Job Summary for Gradle

Check Style and Test to Develop :: build-test
Gradle Root Project Requested Tasks Gradle Version Build Outcome Build Scan®
gdsc check 8.5 Build Scan published

Copy link
Member

@uwoobeat uwoobeat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Comment on lines +74 to +82
public static StudyDetail create(Long week, String attendanceNumber, Period period, Study study) {
return StudyDetail.builder()
.study(study)
.week(week)
.period(period)
.attendanceNumber(attendanceNumber)
.period(period)
.curriculum(Curriculum.empty())
.assignment(Assignment.empty())
.study(study)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이거 체크 부탁드려요

@kckc0608 kckc0608 merged commit 258fa76 into develop Feb 2, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
♻️ refactor 기능 개선
Projects
None yet
Development

Successfully merging this pull request may close these issues.

♻️ 엔티티 필드 순서 및 메서드 시그니쳐 변경
3 participants