Skip to content

feat: normalize and migrate majors to codes#325

Merged
CSE-Shaco merged 1 commit intoGDGoCINHA:developfrom
CSE-Shaco:develop
Mar 18, 2026
Merged

feat: normalize and migrate majors to codes#325
CSE-Shaco merged 1 commit intoGDGoCINHA:developfrom
CSE-Shaco:develop

Conversation

@CSE-Shaco
Copy link
Copy Markdown
Contributor

@CSE-Shaco CSE-Shaco commented Mar 18, 2026

📌 연관된 이슈

ex) #이슈번호, #이슈번호

✨ 작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요

💬 리뷰 요구사항(선택)

Summary by CodeRabbit

  • Refactor

    • 전공 데이터 정규화 기능 추가로 시스템 전역의 전공 입력값을 표준화된 코드로 통일
    • 사용자 가입, 게임, 모집 등 여러 도메인에서 전공 정규화 적용
  • Chores

    • 기존 데이터베이스의 전공 데이터를 표준화된 코드로 마이그레이션

@CSE-Shaco CSE-Shaco merged commit 82fe597 into GDGoCINHA:develop Mar 18, 2026
1 of 2 checks passed
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 18, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: d2276aae-b6e1-4dd5-b806-332643e3e737

📥 Commits

Reviewing files that changed from the base of the PR and between bcca779 and ffcceba.

📒 Files selected for processing (8)
  • src/main/java/inha/gdgoc/domain/auth/service/AuthService.java
  • src/main/java/inha/gdgoc/domain/game/service/GameUserService.java
  • src/main/java/inha/gdgoc/domain/recruit/core/service/RecruitCoreApplicationService.java
  • src/main/java/inha/gdgoc/domain/recruit/member/dto/request/RecruitMemberRequest.java
  • src/main/java/inha/gdgoc/domain/recruit/member/service/RecruitMemberService.java
  • src/main/java/inha/gdgoc/domain/user/service/UserService.java
  • src/main/java/inha/gdgoc/global/util/MajorNormalizer.java
  • src/main/resources/db/migration/V20260318__normalize_major_names.sql

개요

주요 필드 정규화를 위한 새로운 MajorNormalizer 컴포넌트를 도입하고, 인증, 게임 사용자, 모집 관련 서비스 등 5개 서비스에 주입하여 사용자 데이터 생성 시 주요 필드를 정규화하며, 기존 데이터를 마이그레이션합니다.

변경 사항

집단 / 파일 요약
MajorNormalizer 컴포넌트
src/main/java/inha/gdgoc/global/util/MajorNormalizer.java
새로운 Spring 컴포넌트로 한글 학과 명칭을 표준화된 코드로 변환합니다. 라벨-코드 매핑, 별칭, 알려진 코드 집합을 포함하며 정규화 메서드는 null 처리, 공백 입력, 기존 코드, 라벨 매핑, 별칭 해석을 순차적으로 처리합니다.
서비스 계층 통합
src/main/java/inha/gdgoc/domain/auth/service/AuthService.java, src/main/java/inha/gdgoc/domain/game/service/GameUserService.java, src/main/java/inha/gdgoc/domain/recruit/core/service/RecruitCoreApplicationService.java, src/main/java/inha/gdgoc/domain/user/service/UserService.java, src/main/java/inha/gdgoc/domain/recruit/member/service/RecruitMemberService.java
각 서비스에 MajorNormalizer 의존성을 주입하고, 엔티티 생성 시 주요 필드를 majorNormalizer.normalize()로 정규화합니다.
요청 DTO 업데이트
src/main/java/inha/gdgoc/domain/recruit/member/dto/request/RecruitMemberRequest.java
toEntity() 메서드 시그니처를 toEntity(AdmissionSemester, MajorNormalizer)로 변경하여 주요 필드 정규화 로직을 적용합니다.
데이터 마이그레이션
src/main/resources/db/migration/V20260318__normalize_major_names.sql
한글 학과 명칭을 표준화된 코드로 매핑하는 데이터베이스 마이그레이션을 실행하여 4개 테이블(users, recruit_member, core_recruit_applications, game_user)의 기존 데이터를 정규화합니다.

예상 코드 리뷰 시간

🎯 3 (보통) | ⏱️ ~20분

관련 가능성이 있는 PR

제안 라벨

enhancement, refactor

시 🐰

정규화의 길을 가며
주요 필드들이 모여
표준의 옷을 입고
데이터 정원은 더욱 아름다워
혼란 없는 조화로운 세상 ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
📝 Coding Plan
  • Generate coding plan for human review comments

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.

Tip

CodeRabbit can generate a title for your PR based on the changes with custom instructions.

Set the reviews.auto_title_instructions setting to generate a title for your PR based on the changes in the PR with custom instructions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant