You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
학적, 회원정보, 학과 목록, 팀원 모집 관련 테스트 235개가 모두 통과했으며 건너뛴 테스트는 없습니다.
bootJar 빌드가 통과했고 결과물에 V20 파일이 포함된 것도 확인했습니다. git diff --check도 통과했습니다.
학적 저장 테스트
잘못된 학부를 그대로 보내거나 전공을 보내지 않아 잘못된 기존 전공이 유지되는 요청을 확인했습니다. 기존 회원정보 수정 API에서도 검사하는지 확인했습니다.
2027년 학과 정보가 전혀 없으면 허용하고 하나라도 등록되어 있으면 검사하는지 확인했습니다. 존재하지 않는 학부와 전공, 잘못된 학번 형식도 확인했습니다.
학번과 학부 누락, 저장된 학번의 형식 오류, 다른 학부 소속인 기존 전공을 유지하는 요청을 거절하고 기존 회원정보가 그대로 남는지 확인했습니다. 관리자 수정과 이메일 인증 완료에서도 검사하며, 정상적인 2027학번은 연도 데이터가 없으면 저장할 수 있습니다.
Flyway 실행 테스트
V19와 V20을 함께 넣은 상태에서도 마이그레이션 테스트 14개와 bootJar 빌드가 통과했습니다.
MySQL에서 Flyway를 실행해 잘못된 연결은 수정하고 이미 수동으로 수정한 데이터는 그대로 두는지 확인했습니다.
데이터가 없는 상태에서도 필요한 학부와 전공, 연도 연결이 추가되며 다시 실행해도 중복되지 않는지 확인했습니다. 다른 연도와 이번 수정에 포함되지 않은 연결도 그대로 남습니다.
이름이 중복되어 어느 데이터를 연결해야 할지 구분할 수 없으면 실행을 중단하고, 연결을 추가하다 오류가 나면 변경한 내용을 되돌리는지 확인했습니다.
✅ Checklist (완료 조건)
코드 스타일 가이드 준수
테스트 코드 포함됨
Reviewers / Assignees / Labels 지정 완료
보안 및 민감 정보 검증 (API 키, 환경 변수, 개인정보 등)
#2507의 V19가 develop에 먼저 반영됨. 배포 시 V19 → V20 순서 적용.
Summary by CodeRabbit
Bug Fixes
Academic information updates now check departments and majors against the student’s admission-year program catalog, including when resaving unchanged information. Clearing a department is rejected without changing saved academic information.
Recruitment applications now verify that an applicant’s department is valid for their admission year.
Registration, profile updates, and administrator updates now reject missing or invalid academic details and student numbers.
Corrected the 2025–2026 academic program catalog so year-specific department and major listings reflect the applicable programs.
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
📝 Walkthrough
The change corrects the 2025–2026 academic-program catalog and centralizes academic-program validation. Student updates, registration, authentication, administrator updates, and team recruitment application snapshots now use validation based on the student-number year.
Changes: Academic program catalog and validation
Layer / File(s)
Summary
Correct the 2025–2026 catalog src/main/resources/db/migration/V20__correct_academic_program_catalog_2025_2026.sql, src/test/java/in/koreatech/koin/acceptance/migration/AcademicProgramCatalogCorrectionMigrationTest.java
The migration adds specified department and major mappings, checks that catalog entries resolve unambiguously, and deletes only specified incorrect mappings. Acceptance tests cover expected mappings, preserved records, reruns, and migration failures.
StudentValidationService checks student-number format, department presence, and major ownership against year-specific program records. Student and administrator updates, registration, and authentication use the validation. Request constraints and acceptance tests cover invalid selections and preservation of stored information.
Profile snapshot creation validates the applicant’s student number and department. Unit tests cover mapped and unmapped years, malformed numbers, and application-related persistence.
sequenceDiagram
participant TeamRecruitmentApplicationService
participant StudentValidationService
participant AcademicProgramYearRepository
TeamRecruitmentApplicationService->>StudentValidationService: Validate student number and department
StudentValidationService->>AcademicProgramYearRepository: Retrieve programs for student-number year
AcademicProgramYearRepository-->>StudentValidationService: Return mapped programs
StudentValidationService-->>TeamRecruitmentApplicationService: Return validation result
Loading
Merge Risk:⚪ Minimal · up to 2cad3
No actionable current-head defect was established. Confirm the required V19-before-V20 deployment sequence before release.
Pre-merge checks: 4 · 1
Failed checks: 1 warning
Check name
Status
Explanation
Resolution
Docstring Coverage
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 100 functions across 13 files.
Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed checks: 4 passed
Check name
Status
Explanation
Linked Issues check
Issue #2508 requirements are implemented. V20 adds the reviewed 2025/2026 mappings, includes the work-study departments and 글로벌인재학부, and deletes only listed incorrect mappings. The migration preserves…
Out of Scope Changes check
The production changes support issue #2508. The DTO constraints prevent missing or malformed required academic data, the shared validator removes duplicated validation, the migration corrects the cata…
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title clearly summarizes the main changes: correcting 2025/2026 academic department data and fixing missing validation during saves.
Fix all pre-merge checks with AI
✨ Finishing Touches: 💡 1
📝 Generate docstrings: 💡
Commit to this branch
Create a new PR
🧪 Generate unit tests (beta)
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔍 개요
#2507의 V19를 먼저 develop에 병합한 뒤 이 PR을 병합해야 합니다. 배포할 때도 V19 → V20 순서로 적용해야 합니다.
2025학번이 미래융합학부로 저장되는 등 연도별 학과 정보에 잘못된 내용이 있었습니다. 같은 학부와 전공으로 다시 저장할 때는 검증도 생략되어, 잘못된 정보로 팀원 모집 지원서를 계속 작성할 수 있었습니다.
2025/2026학년도 대학요람에 맞게 학과 정보를 수정하고, 학부나 전공을 바꾸지 않았더라도 해당 학번에 맞는지 확인하도록 합니다.
🚀 주요 변경 내용
대학요람에 맞게 학부와 전공의 연도 연결 수정
학부나 전공을 바꾸지 않아도 학번에 맞는지 확인
학번이나 학부를 빼서 저장하는 요청 거절
지원서를 제출할 때도 학번과 학부 확인
💬 참고 사항
기존 회원정보 처리
병합 및 배포 순서
develop에 반영됐고 개발 서버 적용도 끝났습니다. V20은 V19 다음에 적용해야 합니다.V19__split_cafeteria_weekend_hours.sql이며, 이번 학과 정보 수정은V20__correct_academic_program_catalog_2025_2026.sql에 들어 있습니다.기준 자료
🧪 검증
테스트와 빌드
bootJar빌드가 통과했고 결과물에 V20 파일이 포함된 것도 확인했습니다.git diff --check도 통과했습니다.학적 저장 테스트
잘못된 학부를 그대로 보내거나 전공을 보내지 않아 잘못된 기존 전공이 유지되는 요청을 확인했습니다. 기존 회원정보 수정 API에서도 검사하는지 확인했습니다.
2027년 학과 정보가 전혀 없으면 허용하고 하나라도 등록되어 있으면 검사하는지 확인했습니다. 존재하지 않는 학부와 전공, 잘못된 학번 형식도 확인했습니다.
학번과 학부 누락, 저장된 학번의 형식 오류, 다른 학부 소속인 기존 전공을 유지하는 요청을 거절하고 기존 회원정보가 그대로 남는지 확인했습니다. 관리자 수정과 이메일 인증 완료에서도 검사하며, 정상적인 2027학번은 연도 데이터가 없으면 저장할 수 있습니다.
Flyway 실행 테스트
bootJar빌드가 통과했습니다.✅ Checklist (완료 조건)
Summary by CodeRabbit