Skip to content

fix: 팀원 모집 프로필 활동 설명 글자수 제한을 500자에서 1000자로 확장 - #2429

Merged
insik03 merged 1 commit into
developfrom
fix/2428-activity-description-length-limit
Sep 12, 2026
Merged

insik03 merged 1 commit into
developfrom
fix/2428-activity-description-length-limit

Conversation

@insik03

@insik03 insik03 commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

🔍 개요

  • 팀원 모집 프로필의 활동(activity) 설명(description) 입력 시, 디자인 UI는 1000자까지 허용하지만 백엔드 검증(@Size)과 DB 컬럼은 500자로 고정되어 있어 1000자에 가깝게 입력하면 400 에러가 발생하던 문제를 수정했습니다.

🚀 주요 변경 내용

  • ProfileActivityInput, TeamRecruitmentProfileActivitydescription 검증(@Size)을 500 → 1000으로 확장
  • team_recruitment_profile_activity.description 컬럼을 VARCHAR(500)VARCHAR(1000)으로 확장하는 V10 Flyway 마이그레이션 추가
  • 활동 설명 1000자 성공 / 1001자 400 응답을 검증하는 API 회귀 테스트 추가
  • 외부(Campus API) Swagger 문서의 ProfileActivityInput.description maxLength가 1000으로 노출되는지 검증하는 계약 테스트 추가

💬 참고 사항

  • 프론트엔드는 이미 1000자 제한으로 디자인되어 있어 별도 프론트 작업 없이 백엔드만 맞췄습니다.
  • Docker(Testcontainers) 기반 ./gradlew clean test 전체 실행 결과: 1163개 테스트 전부 통과 (실패 0 / 에러 0).

✅ Checklist (완료 조건)

  • 코드 스타일 가이드 준수
  • 테스트 코드 포함됨
  • Reviewers / Assignees / Labels 지정 완료
  • 보안 및 민감 정보 검증 (API 키, 환경 변수, 개인정보 등)

Summary by CodeRabbit

  • Enhancements
    • Team recruitment profile activity descriptions can now contain up to 1,000 characters, increased from 500.
    • Descriptions at the 1,000-character limit are accepted, while longer descriptions are rejected with a validation error.

디자인 UI는 1000자 입력을 허용하지만 백엔드 검증/DB 컬럼은 500자로 고정되어
1000자에 가깝게 입력 시 400 에러가 발생하던 문제를 수정한다.

- ProfileActivityInput, TeamRecruitmentProfileActivity 의 @SiZe 를 1000으로 확장
- team_recruitment_profile_activity.description 컬럼을 VARCHAR(1000)으로 확장하는
  V10 마이그레이션 추가
- 1000자 성공 / 1001자 400 회귀 테스트 및 Swagger maxLength 계약 테스트 추가

close #2428

Co-Authored-By: Claude Sonnet 5 <[email protected]>
@github-actions github-actions Bot added DB DB 마이그레이션을 위한 라벨입니다. 공통 백엔드 공통으로 작업할 이슈입니다. 버그 정상적으로 동작하지 않는 문제상황입니다. labels Sep 12, 2026
@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 5d4c2ec0-e109-45aa-850d-937df55d0321

📥 Commits

Reviewing files that changed from the base of the PR and between c6cd7cf and 989f1de.

📒 Files selected for processing (5)
  • src/main/java/in/koreatech/koin/domain/team/recruitment/dto/ProfileActivityInput.java
  • src/main/java/in/koreatech/koin/domain/team/recruitment/model/TeamRecruitmentProfileActivity.java
  • src/main/resources/db/migration/V10__widen_team_recruitment_profile_activity_description.sql
  • src/test/java/in/koreatech/koin/acceptance/domain/TeamRecruitmentOpenApiContractTest.java
  • src/test/java/in/koreatech/koin/acceptance/domain/TeamRecruitmentProfileApiTest.java

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The profile activity description limit increases from 500 to 1000 characters. Validation, persistence, database migration, OpenAPI documentation, and API acceptance tests now use the 1000-character limit.

Changes

Team recruitment description limit

Layer / File(s) Summary
Description limit contract and persistence
src/main/java/in/koreatech/koin/domain/team/recruitment/dto/ProfileActivityInput.java, src/main/java/in/koreatech/koin/domain/team/recruitment/model/TeamRecruitmentProfileActivity.java, src/main/resources/db/migration/V10__widen_team_recruitment_profile_activity_description.sql
The input validation and entity constraints increase to 1000 characters. The database migration widens the column to VARCHAR(1000) NOT NULL.
API contract and boundary validation
src/test/java/in/koreatech/koin/acceptance/domain/TeamRecruitmentOpenApiContractTest.java, src/test/java/in/koreatech/koin/acceptance/domain/TeamRecruitmentProfileApiTest.java
The OpenAPI contract reports maxLength 1000. API tests verify that 1000 characters are accepted and 1001 characters return a validation error.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: taejinn

Merge Risk: ⚪ Minimal · up to 989f1

The validation, persistence mapping, migration, API contract, and boundary tests consistently implement the 1000-character limit.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 4 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely states the main change: increasing the team recruitment profile activity description limit from 500 to 1000 characters.
Linked Issues check ✅ Passed 직접 연결된 이슈 #2428의 코딩 요구사항을 충족합니다. ProfileActivityInput.descriptionTeamRecruitmentProfileActivity.description의 최대 길이를 1000자로 변경했습니다. Flyway V10 마이그레이션으로 `team_recruitment_profile_activity.descript…
Out of Scope Changes check ✅ Passed 변경 사항은 이슈 #2428의 활동 설명 글자 수 제한을 백엔드 검증, 데이터베이스 스키마, API 계약, 회귀 테스트에 반영하는 범위에 있습니다. 관련 없는 기능 변경은 확인되지 않습니다.
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 4 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/2428-activity-description-length-limit

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.

@insik03
insik03 requested review from dnjswldnd-3513 and removed request for Soundbar91 September 12, 2026 15:03
@github-actions

Copy link
Copy Markdown

Unit Test Results

   260 files     260 suites   2m 55s ⏱️
1 155 tests 1 152 ✔️ 3 💤 0
1 163 runs  1 160 ✔️ 3 💤 0

Results for commit 989f1de.

@insik03
insik03 merged commit c03ea01 into develop Sep 12, 2026
8 checks passed
@insik03
insik03 deleted the fix/2428-activity-description-length-limit branch September 12, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DB DB 마이그레이션을 위한 라벨입니다. 공통 백엔드 공통으로 작업할 이슈입니다. 버그 정상적으로 동작하지 않는 문제상황입니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[버그] 팀원 모집 프로필 활동 설명(description) 글자수 제한 500자로 고정, 1000자 노출 UI와 불일치

2 participants