Skip to content

[feature]외부 지원서 링크 추가#606

Merged
Zepelown merged 1 commit intodevelop/befrom
feature/#604-external-application-MOA-125
Jul 28, 2025
Merged

[feature]외부 지원서 링크 추가#606
Zepelown merged 1 commit intodevelop/befrom
feature/#604-external-application-MOA-125

Conversation

@Zepelown
Copy link
Member

@Zepelown Zepelown commented Jul 28, 2025

#️⃣연관된 이슈

#604

📝작업 내용

  • 모집 정보 갱신과 조회에 외부 지원서 링크 필드 추가

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

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

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

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

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

🫡 참고사항

Summary by CodeRabbit

  • 신규 기능
    • 동아리 모집 정보에 외부 지원서 URL을 추가하였습니다.
    • 동아리 상세 정보에서 외부 지원서 URL을 확인할 수 있습니다.
    • 동아리 모집 정보 수정 시 외부 지원서 URL 입력이 가능합니다.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 28, 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.
  • 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

클럽 모집 정보에 외부 지원서 링크(externalApplicationUrl)를 저장하고 불러올 수 있도록, 관련 엔티티(ClubRecruitmentInformation), DTO(ClubDetailedResult), 요청 객체(ClubRecruitmentInfoUpdateRequest)에 해당 필드가 추가되었습니다. 관련 메서드도 이 필드를 반영하도록 수정되었습니다.

Changes

Cohort / File(s) Change Summary
엔티티 및 업데이트 로직
backend/src/main/java/moadong/club/entity/ClubRecruitmentInformation.java
externalApplicationUrl 필드 추가 및 updateDescription 메서드에서 해당 값 업데이트 처리
DTO (상세 결과 반환)
backend/src/main/java/moadong/club/payload/dto/ClubDetailedResult.java
externalApplicationUrl 필드 추가, of(Club club) 팩토리 메서드에서 값 할당 및 null 시 빈 문자열 처리
요청 객체
backend/src/main/java/moadong/club/payload/request/ClubRecruitmentInfoUpdateRequest.java
externalApplicationUrl 필드 추가로 외부 지원서 링크 요청에서 전달 가능하도록 확장

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~7 minutes

Assessment against linked issues

Objective Addressed Explanation
외부 지원서 링크를 저장하고 불러올 수 있다 (MOA-125)

Suggested labels

📬 API

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/#604-external-application-MOA-125

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
🪧 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.
    • Explain this complex logic.
    • 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 explain this code block.
    • @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 explain its main purpose.
    • @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.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

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

CodeRabbit Commands (Invoked using PR comments)

  • @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.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @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.

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.

@vercel
Copy link

vercel bot commented Jul 28, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
moadong ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 28, 2025 0:44am

@github-actions
Copy link

Test Results

75 tests   75 ✅  2s ⏱️
12 suites   0 💤
12 files     0 ❌

Results for commit 656e832.

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

🧹 Nitpick comments (3)
backend/src/main/java/moadong/club/payload/request/ClubRecruitmentInfoUpdateRequest.java (1)

12-12: URL 유효성 검증 추가를 고려해보세요.

externalApplicationUrl 필드에 대해 URL 형식 유효성 검증을 추가하는 것을 고려해보세요. 잘못된 URL 형식의 데이터가 저장되는 것을 방지할 수 있습니다.

+ import jakarta.validation.constraints.Pattern;
+ import moadong.global.RegexConstants;

public record ClubRecruitmentInfoUpdateRequest(
    LocalDateTime recruitmentStart,
    LocalDateTime recruitmentEnd,
    String recruitmentTarget,
    String description,
+   @Pattern(regexp = RegexConstants.URL, message = "URL 형식이 올바르지 않습니다.")
    String externalApplicationUrl,
    List<Faq> faqs
) {
backend/src/main/java/moadong/club/entity/ClubRecruitmentInformation.java (1)

57-57: JPA Column 어노테이션 추가를 고려해보세요.

externalApplicationUrl 필드에 @Column 어노테이션을 추가하여 데이터베이스 컬럼 길이를 명시적으로 제한하는 것을 고려해보세요. URL이 매우 길 수 있으므로 적절한 길이 제한이 필요합니다.

+ @Column(length = 2048)
  String externalApplicationUrl;
backend/src/main/java/moadong/club/payload/dto/ClubDetailedResult.java (1)

71-72: 코드 포맷팅을 수정해주세요.

== 연산자 주변에 공백이 누락되어 있습니다. 일관된 코드 스타일을 위해 수정이 필요합니다.

- .externalApplicationUrl(club.getClubRecruitmentInformation().getExternalApplicationUrl()== null ? "" :
+ .externalApplicationUrl(club.getClubRecruitmentInformation().getExternalApplicationUrl() == null ? "" :
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between b42eb1e and 656e832.

📒 Files selected for processing (3)
  • backend/src/main/java/moadong/club/entity/ClubRecruitmentInformation.java (2 hunks)
  • backend/src/main/java/moadong/club/payload/dto/ClubDetailedResult.java (2 hunks)
  • backend/src/main/java/moadong/club/payload/request/ClubRecruitmentInfoUpdateRequest.java (1 hunks)
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: Zepelown
PR: Moadong/moadong#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`와 같은 별도의 클래스를 정의하고 사용해야 합니다. 이렇게 하면 요청 객체 변경이 데이터베이스 스키마나 엔티티 계층에 영향을 미치지 않습니다.
Learnt from: lepitaaar
PR: Moadong/moadong#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.
Learnt from: seongwon030
PR: Moadong/moadong#195
File: frontend/src/pages/AdminPage/AdminPage.tsx:7-7
Timestamp: 2025-03-19T05:18:07.818Z
Learning: AdminPage.tsx에서 현재 하드코딩된 클럽 ID('67d2e3b9b15c136c6acbf20b')는 로그인 기능 구현 후 동적으로 가져오는 방식으로 수정될 예정입니다.
Learnt from: seongwon030
PR: Moadong/moadong#548
File: frontend/src/pages/ClubDetailPage/ClubDetailPage.tsx:17-57
Timestamp: 2025-07-19T05:05:10.196Z
Learning: ClubDetailPage.tsx에서 notJoinedClubNames 배열의 하드코딩은 의도적인 설계 결정입니다. 개발자가 명시적으로 하드코딩을 선택했으므로 이에 대한 리팩토링 제안을 하지 않아야 합니다.
backend/src/main/java/moadong/club/payload/request/ClubRecruitmentInfoUpdateRequest.java (1)

Learnt from: lepitaaar
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.

backend/src/main/java/moadong/club/entity/ClubRecruitmentInformation.java (1)

Learnt from: lepitaaar
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.

backend/src/main/java/moadong/club/payload/dto/ClubDetailedResult.java (1)

Learnt from: lepitaaar
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.

🔇 Additional comments (1)
backend/src/main/java/moadong/club/entity/ClubRecruitmentInformation.java (1)

82-82: LGTM!

updateDescription 메서드에서 새로운 필드를 올바르게 업데이트하고 있습니다.

Copy link
Member

@seongwon030 seongwon030 left a comment

Choose a reason for hiding this comment

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

지원링크 필드 추가 좋아요~

Copy link
Member

@oesnuj oesnuj left a comment

Choose a reason for hiding this comment

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

⚡ 엄청난 속도의 PR... 수고 많으셨습니다!
외부 지원 폼 링크 추가 좋아요~~

@Zepelown Zepelown merged commit 2ff5a8d into develop/be Jul 28, 2025
5 checks passed
@Zepelown Zepelown deleted the feature/#604-external-application-MOA-125 branch October 12, 2025 12:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💾 BE Backend ✨ Feature 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments