Skip to content

[refactor] 동아리 지원서 양식을 부분적으로 수정가능하게만든다#834

Merged
lepitaaar merged 6 commits intodevelop/befrom
refactor/#833-change-method-update-application-form-controller-MOA-317
Nov 14, 2025
Merged

[refactor] 동아리 지원서 양식을 부분적으로 수정가능하게만든다#834
lepitaaar merged 6 commits intodevelop/befrom
refactor/#833-change-method-update-application-form-controller-MOA-317

Conversation

@lepitaaar
Copy link
Contributor

@lepitaaar lepitaaar commented Nov 10, 2025

#️⃣연관된 이슈

#833

📝작업 내용

지원서 양식 관련 요구사항이 확장됨에 따라 더 유연한 업데이트를 지원하기위해
지원서 양식 수정 API를 PUT에서 PATCH로변경 그에따라 부분 수정 코드로 변경하였습니다

중점적으로 리뷰받고 싶은 부분(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

ex) 메서드 XXX의 이름을 더 잘 짓고 싶은데 혹시 좋은 명칭이 있을까요?

논의하고 싶은 부분(선택)

논의하고 싶은 부분이 있다면 작성해주세요.

🫡 참고사항

Summary by CodeRabbit

릴리스 노트

  • New Features

    • 동아리 신청 폼 편집 요청에 학년도(Year) 및 학기(Term) 필드 추가(유효성 2000–2999 적용)
  • Refactor

    • 편집 API HTTP 메서드 PUT → PATCH로 변경해 부분 업데이트 지원
    • title/description/active/questions 등 기존 필드를 선택적 편집으로 전환해 유연성 향상
    • 내부 폼 생성·수정 흐름과 질문 빌드 로직 정리
  • Tests

    • 테스트 픽스처에 새 학기 필드 반영하여 갱신됨

@lepitaaar lepitaaar self-assigned this Nov 10, 2025
@lepitaaar lepitaaar added 🔨 Refactor 코드 리팩토링 💾 BE Backend labels Nov 10, 2025
@vercel
Copy link

vercel bot commented Nov 10, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
moadong Ready Ready Preview Comment Nov 11, 2025 6:51am

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 10, 2025

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: Invalid regex pattern for base branch. Received: "**" at "reviews.auto_review.base_branches[0]"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • 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

Walkthrough

동아리 지원서 편집 엔드포인트를 PUT에서 PATCH로 변경하고, 요청 DTO에서 일부 필수 제약을 제거해 부분 업데이트를 허용하며 semesterYearsemesterTerm 필드를 추가했습니다. 서비스 레이어는 폼 생성/업데이트 헬퍼로 리팩토링되어 선택적 필드 기반 업데이트를 처리합니다.

Changes

Cohort / File(s) 변경 요약
컨트롤러 HTTP 메서드 및 API 문서
backend/src/main/java/moadong/club/controller/ClubApplyAdminController.java
편집 엔드포인트 HTTP 메서드 PUTPATCH로 변경; Operation 설명을 확장(부분 업데이트 및 편집 가능 필드 나열)
요청 페이로드 확장
backend/src/main/java/moadong/club/payload/request/ClubApplicationFormEditRequest.java
semesterYear(Integer, @Min(2000), @Max(2999)) 및 semesterTerm(SemesterTerm) 필드 추가; title, description, active, questions에 있던 @NotBlank/@NotNull 제약 제거하여 부분 업데이트 허용
서비스 로직 리팩토링
backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
createQuestions/updateQuestionscreateApplicationForm/updateApplicationForm으로 교체; buildClubFormQuestions 헬퍼 추가; 부분 업데이트(질문, 제목, 설명, 활성화, 학기) 조건부 처리 로직 및 관련 흐름 정리
테스트 픽스처 업데이트
backend/src/test/java/moadong/fixture/ClubApplicationEditFixture.java
ClubApplicationFormEditRequest 생성자 호출에 semesterYear(2025) 및 semesterTerm(SECOND) 인자 추가, SemesterTerm import 추가

Sequence Diagram

sequenceDiagram
    participant Client as 클라이언트
    participant Controller as Controller
    participant Service as Service
    participant Repo as Repository

    Client->>Controller: PATCH /admin/application-form/:id (부분 필드 포함)
    Controller->>Service: editClubApplication(formId, editRequest)
    Service->>Repo: findById(formId)
    Repo-->>Service: ClubApplicationForm

    rect rgb(220,240,220)
        Note over Service: 선택적 필드 기반 업데이트
        alt questions 제공됨
            Service->>Service: buildClubFormQuestions(questions)
            Service->>Service: questions 교체/갱신
        end
        alt title/description/active 제공됨
            Service->>Service: 해당 필드만 갱신
        end
        alt semesterYear/semesterTerm 제공됨
            Service->>Service: 학기 관련 필드 갱신 및 검증
        end
    end

    Service->>Repo: save(updatedForm)
    Repo-->>Service: savedForm
    Service-->>Controller: 응답 생성
    Controller-->>Client: 200 OK
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • 추가로 주의할 파일/영역:
    • ClubApplyAdminService.updateApplicationForm의 null/빈값 검사 및 학기 검증 로직
    • buildClubFormQuestions가 기존 질문 빌드/유지 로직을 정확히 대체하는지
    • DTO의 제약 완화로 인한 null 처리(컨트롤러/서비스/테스트) 영향
    • 테스트 픽스처가 모든 관련 테스트를 올바르게 반영했는지

Possibly related issues

Possibly related PRs

Suggested labels

📬 API

Suggested reviewers

  • Zepelown
  • PororoAndFriends
  • alsdddk
  • yw6938

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 16.67% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 지원서 양식을 부분적으로 수정 가능하도록 만드는 것이 주요 변경 사항이며, 변경 세트의 핵심을 명확하게 요약하고 있습니다.
Linked Issues check ✅ Passed PUT에서 PATCH로 HTTP 메서드 변경이 완료되었으며, 부분 수정을 지원하는 코드 리팩토링이 모두 구현되어 있습니다.
Out of Scope Changes check ✅ Passed 모든 변경 사항은 PATCH 메서드 구현 및 부분 수정 지원이라는 명확한 범위 내에 있으며, 불필요한 변경은 없습니다.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch refactor/#833-change-method-update-application-form-controller-MOA-317

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Nov 10, 2025

Test Results

78 tests   75 ✅  17s ⏱️
13 suites   3 💤
13 files     0 ❌

Results for commit 10bfd34.

♻️ This comment has been updated with latest results.

Copy link
Contributor

@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: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ae6ac89 and dc2aad0.

📒 Files selected for processing (4)
  • backend/src/main/java/moadong/club/controller/ClubApplyAdminController.java (1 hunks)
  • backend/src/main/java/moadong/club/payload/request/ClubApplicationFormEditRequest.java (1 hunks)
  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java (11 hunks)
  • backend/src/test/java/moadong/fixture/ClubApplicationEditFixture.java (2 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-09-30T05:26:41.788Z
Learnt from: alsdddk
Repo: Moadong/moadong PR: 765
File: backend/src/main/java/moadong/club/service/ClubApplyService.java:431-435
Timestamp: 2025-09-30T05:26:41.788Z
Learning: In the Moadong codebase's club application feature (backend/src/main/java/moadong/club/), multiple ClubApplicationForm entities can have ACTIVE status for the same clubId, semesterYear, and semesterTerm simultaneously. There is no uniqueness constraint requiring only one ACTIVE form per semester.

Applied to files:

  • backend/src/test/java/moadong/fixture/ClubApplicationEditFixture.java
  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
  • backend/src/main/java/moadong/club/payload/request/ClubApplicationFormEditRequest.java
  • backend/src/main/java/moadong/club/controller/ClubApplyAdminController.java
📚 Learning: 2025-05-19T05:45:52.957Z
Learnt from: lepitaaar
Repo: Moadong/moadong PR: 406
File: backend/src/main/java/moadong/club/service/ClubApplyService.java:34-38
Timestamp: 2025-05-19T05:45:52.957Z
Learning: The code duplication between createClubApplication and editClubApplication methods in ClubApplyService.java is acknowledged but will be addressed in a future refactoring, as per the developer's plan.

Applied to files:

  • backend/src/test/java/moadong/fixture/ClubApplicationEditFixture.java
  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
  • backend/src/main/java/moadong/club/payload/request/ClubApplicationFormEditRequest.java
  • backend/src/main/java/moadong/club/controller/ClubApplyAdminController.java
📚 Learning: 2025-08-25T14:43:52.320Z
Learnt from: lepitaaar
Repo: Moadong/moadong PR: 703
File: backend/src/main/java/moadong/club/controller/ClubApplyController.java:84-84
Timestamp: 2025-08-25T14:43:52.320Z
Learning: In the Moadong codebase, questionId and clubId are equivalent identifiers that represent the same entity. The ClubApplicationRepository.findAllByIdInAndQuestionId method correctly uses clubId as the questionId parameter for filtering club applications.

Applied to files:

  • backend/src/test/java/moadong/fixture/ClubApplicationEditFixture.java
  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
📚 Learning: 2025-05-15T12:03:57.356Z
Learnt from: Zepelown
Repo: Moadong/moadong PR: 406
File: backend/src/main/java/moadong/club/entity/ClubApplicationQuestion.java:32-33
Timestamp: 2025-05-15T12:03:57.356Z
Learning: 엔티티 클래스는 요청/응답 객체(DTO)에 의존해서는 안 됩니다. 계층 간 의존성 문제를 방지하기 위해 엔티티와 DTO는 분리되어야 합니다. 예를 들어, `ClubApplicationQuestion` 엔티티가 `ClubApplicationRequest.Options`와 같은 요청 객체를 직접 참조하는 대신, 엔티티 패키지 내에 `QuestionOptions`와 같은 별도의 클래스를 정의하고 사용해야 합니다. 이렇게 하면 요청 객체 변경이 데이터베이스 스키마나 엔티티 계층에 영향을 미치지 않습니다.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test
🔇 Additional comments (3)
backend/src/main/java/moadong/club/controller/ClubApplyAdminController.java (1)

44-54: PATCH 전환 반영 잘 확인했습니다

PUT에서 PATCH로의 전환과 설명 보강이 부분 수정 요구사항과 맞물려 자연스럽습니다. 컨트롤러 단에서의 의도 전달이 명확해졌어요.

backend/src/test/java/moadong/fixture/ClubApplicationEditFixture.java (1)

3-25: 픽스처 확장 확인했습니다

새 필드(연도·학기)를 포함하도록 픽스처가 갱신되어 테스트 준비가 잘 되어 있습니다.

backend/src/main/java/moadong/club/payload/request/ClubApplicationFormEditRequest.java (1)

4-26: 부분 업데이트를 위한 DTO 조정 👍

필수 제약을 완화하면서 추가된 학년도·학기 필드가 PATCH 시나리오를 자연스럽게 지원할 수 있게 되었습니다.

Copy link
Contributor

@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: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between dc2aad0 and 0ee6088.

📒 Files selected for processing (1)
  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java (11 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-05-19T05:45:52.957Z
Learnt from: lepitaaar
Repo: Moadong/moadong PR: 406
File: backend/src/main/java/moadong/club/service/ClubApplyService.java:34-38
Timestamp: 2025-05-19T05:45:52.957Z
Learning: The code duplication between createClubApplication and editClubApplication methods in ClubApplyService.java is acknowledged but will be addressed in a future refactoring, as per the developer's plan.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
📚 Learning: 2025-09-30T05:26:41.788Z
Learnt from: alsdddk
Repo: Moadong/moadong PR: 765
File: backend/src/main/java/moadong/club/service/ClubApplyService.java:431-435
Timestamp: 2025-09-30T05:26:41.788Z
Learning: In the Moadong codebase's club application feature (backend/src/main/java/moadong/club/), multiple ClubApplicationForm entities can have ACTIVE status for the same clubId, semesterYear, and semesterTerm simultaneously. There is no uniqueness constraint requiring only one ACTIVE form per semester.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
📚 Learning: 2025-08-25T14:43:52.320Z
Learnt from: lepitaaar
Repo: Moadong/moadong PR: 703
File: backend/src/main/java/moadong/club/controller/ClubApplyController.java:84-84
Timestamp: 2025-08-25T14:43:52.320Z
Learning: In the Moadong codebase, questionId and clubId are equivalent identifiers that represent the same entity. The ClubApplicationRepository.findAllByIdInAndQuestionId method correctly uses clubId as the questionId parameter for filtering club applications.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
📚 Learning: 2025-05-15T12:03:57.356Z
Learnt from: Zepelown
Repo: Moadong/moadong PR: 406
File: backend/src/main/java/moadong/club/entity/ClubApplicationQuestion.java:32-33
Timestamp: 2025-05-15T12:03:57.356Z
Learning: 엔티티 클래스는 요청/응답 객체(DTO)에 의존해서는 안 됩니다. 계층 간 의존성 문제를 방지하기 위해 엔티티와 DTO는 분리되어야 합니다. 예를 들어, `ClubApplicationQuestion` 엔티티가 `ClubApplicationRequest.Options`와 같은 요청 객체를 직접 참조하는 대신, 엔티티 패키지 내에 `QuestionOptions`와 같은 별도의 클래스를 정의하고 사용해야 합니다. 이렇게 하면 요청 객체 변경이 데이터베이스 스키마나 엔티티 계층에 영향을 미치지 않습니다.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
🔇 Additional comments (4)
backend/src/main/java/moadong/club/service/ClubApplyAdminService.java (4)

88-97: 리팩토링이 잘 되었습니다

폼 생성 로직을 createApplicationForm 헬퍼로 통합하여 코드 중복을 제거했습니다. 학기 검증도 적절히 수행되고 있습니다.


100-118: PATCH 업데이트 로직이 적절합니다

updateApplicationForm 헬퍼를 통해 부분 업데이트를 지원하도록 잘 리팩토링되었습니다.


283-291: 폼 생성 헬퍼가 명확합니다

모든 필수 필드를 적절히 설정하고 있습니다.


315-344: 질문 변환 로직이 정확합니다

DTO에서 엔티티로의 변환이 명확하게 구현되어 있습니다.

Copy link
Contributor

@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: 0

♻️ Duplicate comments (1)
backend/src/main/java/moadong/club/service/ClubApplyAdminService.java (1)

308-309: 학기 필드를 조건부로 업데이트해야 합니다.

현재 코드는 semesterYearsemesterTerm 중 하나라도 요청에 포함되면 두 필드를 모두 무조건 업데이트합니다. 이는 PATCH 메서드의 부분 수정 의미와 맞지 않습니다. 예를 들어, semesterYear만 수정하려는 경우에도 semesterTerm이 같은 값으로 재설정되어 불필요한 업데이트가 발생합니다.

검증은 두 필드의 조합으로 수행하되, 실제 업데이트는 요청에 포함된 필드만 해야 합니다.

다음과 같이 수정하세요:

         if (request.semesterYear() != null || request.semesterTerm() != null) {
             Integer semesterYear = Optional.ofNullable(request.semesterYear()).orElse(clubApplicationForm.getSemesterYear());
             SemesterTerm semesterTerm = Optional.ofNullable(request.semesterTerm()).orElse(clubApplicationForm.getSemesterTerm());
             validateSemester(semesterYear, semesterTerm);
 
-            clubApplicationForm.updateSemesterYear(semesterYear);
-            clubApplicationForm.updateSemesterTerm(semesterTerm);
+            if (request.semesterYear() != null) {
+                clubApplicationForm.updateSemesterYear(semesterYear);
+            }
+            if (request.semesterTerm() != null) {
+                clubApplicationForm.updateSemesterTerm(semesterTerm);
+            }
         }
🧹 Nitpick comments (2)
backend/src/main/java/moadong/club/service/ClubApplyAdminService.java (2)

9-9: 와일드카드 임포트 대신 명시적 임포트를 고려하세요.

와일드카드 임포트(import moadong.club.payload.request.*)는 의존성을 불명확하게 만들고 네이밍 충돌 가능성을 높일 수 있습니다. 명시적으로 사용하는 클래스만 임포트하는 것이 코드 가독성과 유지보수성 측면에서 더 좋습니다.


362-363: 예외를 무시하는 빈 catch 블록을 개선하는 것을 고려하세요.

SSE 연결 정리 과정에서 발생하는 예외를 완전히 무시하고 있습니다. 정리 작업 중 예외가 발생해도 큰 문제는 없지만, 최소한 로깅을 추가하면 디버깅 시 도움이 될 수 있습니다.

예를 들어:

 } catch (Exception ignored) {
+    log.debug("SSE emitter 정리 중 예외 발생 (무시됨): {}", ignored.getMessage());
 }

Also applies to: 407-408

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 0ee6088 and 10bfd34.

📒 Files selected for processing (1)
  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java (11 hunks)
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-05-19T05:45:52.957Z
Learnt from: lepitaaar
Repo: Moadong/moadong PR: 406
File: backend/src/main/java/moadong/club/service/ClubApplyService.java:34-38
Timestamp: 2025-05-19T05:45:52.957Z
Learning: The code duplication between createClubApplication and editClubApplication methods in ClubApplyService.java is acknowledged but will be addressed in a future refactoring, as per the developer's plan.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
📚 Learning: 2025-09-30T05:26:41.788Z
Learnt from: alsdddk
Repo: Moadong/moadong PR: 765
File: backend/src/main/java/moadong/club/service/ClubApplyService.java:431-435
Timestamp: 2025-09-30T05:26:41.788Z
Learning: In the Moadong codebase's club application feature (backend/src/main/java/moadong/club/), multiple ClubApplicationForm entities can have ACTIVE status for the same clubId, semesterYear, and semesterTerm simultaneously. There is no uniqueness constraint requiring only one ACTIVE form per semester.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
📚 Learning: 2025-08-25T14:43:52.320Z
Learnt from: lepitaaar
Repo: Moadong/moadong PR: 703
File: backend/src/main/java/moadong/club/controller/ClubApplyController.java:84-84
Timestamp: 2025-08-25T14:43:52.320Z
Learning: In the Moadong codebase, questionId and clubId are equivalent identifiers that represent the same entity. The ClubApplicationRepository.findAllByIdInAndQuestionId method correctly uses clubId as the questionId parameter for filtering club applications.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
📚 Learning: 2025-05-15T12:03:57.356Z
Learnt from: Zepelown
Repo: Moadong/moadong PR: 406
File: backend/src/main/java/moadong/club/entity/ClubApplicationQuestion.java:32-33
Timestamp: 2025-05-15T12:03:57.356Z
Learning: 엔티티 클래스는 요청/응답 객체(DTO)에 의존해서는 안 됩니다. 계층 간 의존성 문제를 방지하기 위해 엔티티와 DTO는 분리되어야 합니다. 예를 들어, `ClubApplicationQuestion` 엔티티가 `ClubApplicationRequest.Options`와 같은 요청 객체를 직접 참조하는 대신, 엔티티 패키지 내에 `QuestionOptions`와 같은 별도의 클래스를 정의하고 사용해야 합니다. 이렇게 하면 요청 객체 변경이 데이터베이스 스키마나 엔티티 계층에 영향을 미치지 않습니다.

Applied to files:

  • backend/src/main/java/moadong/club/service/ClubApplyAdminService.java
🔇 Additional comments (5)
backend/src/main/java/moadong/club/service/ClubApplyAdminService.java (5)

91-96: LGTM!

createApplicationForm 헬퍼 메서드를 사용하여 폼을 생성하는 로직이 명확하고 올바릅니다. 학기 검증도 사전에 수행되어 안전합니다.


106-106: LGTM!

updateApplicationForm 메서드 호출로 변경되어 부분 업데이트 로직과 일관성 있게 동작합니다.

Also applies to: 114-114


283-291: LGTM!

createApplicationForm 메서드가 명확하게 리팩토링되었고, 생성 로직이 올바르게 구현되어 있습니다. buildClubFormQuestions 헬퍼 사용으로 코드 중복도 제거되었습니다.


293-313: 부분 업데이트 로직이 잘 구현되었습니다.

전반적으로 PATCH 의미론에 맞게 각 필드를 조건부로 업데이트하는 구조가 잘 구현되었습니다. null 체크를 통해 요청에 포함된 필드만 업데이트하여 PR 목표를 달성했습니다.

(학기 필드 업데이트 로직의 개선사항은 별도 코멘트를 참고하세요.)


315-344: LGTM!

공통 로직을 buildClubFormQuestions 헬퍼 메서드로 추출하여 코드 중복을 효과적으로 제거했습니다. 생성과 업데이트 경로 모두에서 재사용 가능하여 유지보수성이 향상되었습니다.

Based on learnings

Copy link
Member

@Zepelown Zepelown left a comment

Choose a reason for hiding this comment

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

고생하셨습니다.

@yw6938
Copy link
Collaborator

yw6938 commented Nov 13, 2025

수고하셨습니당~

Copy link
Collaborator

@alsdddk alsdddk left a comment

Choose a reason for hiding this comment

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

수고하셨어요!~

@PutMapping("/application/{applicationFormId}")
@Operation(summary = "클럽 지원서 양식 수정", description = "클럽 지원서 양식을 수정합니다")
@PatchMapping("/application/{applicationFormId}")
@Operation(summary = "클럽 지원서 양식 수정",
Copy link
Collaborator

Choose a reason for hiding this comment

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

부분 업데이트 꽤나 좋군여,,

@lepitaaar lepitaaar merged commit e1ff8bf into develop/be Nov 14, 2025
5 checks passed
@lepitaaar lepitaaar deleted the refactor/#833-change-method-update-application-form-controller-MOA-317 branch November 20, 2025 09:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💾 BE Backend 🔨 Refactor 코드 리팩토링

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants