Skip to content

[DP-462] 태그 대소문자 정규화 및 한국어→영어 rename#162

Merged
nYeonG4001 merged 1 commit into
developV2from
feature/DP-462-tag-normalization
May 7, 2026
Merged

[DP-462] 태그 대소문자 정규화 및 한국어→영어 rename#162
nYeonG4001 merged 1 commit into
developV2from
feature/DP-462-tag-normalization

Conversation

@nYeonG4001
Copy link
Copy Markdown
Collaborator

Summary

  • UserService.findOrCreateTags()findByName(대소문자 구분)을 사용해 css 입력 시 CSS row를 찾지 못하고 중복 생성하는 버그 수정 → findByNameIgnoreCase로 교체
  • DB의 한국어 태그(알고리즘, 네트워크 등 10개)를 AI 프롬프트 기준 영어 이름으로 rename, content_tags 매칭 누락 해소
  • data.sql 서버 시작 시 자동으로 실행되는 멱등 마이그레이션 SQL 추가 (중복 태그 병합 + 한국어→영어 UPDATE)

변경 파일

파일 내용
TagRepository.java findByNameIgnoreCase(String) 메서드 추가
UserService.java findOrCreateTagsfindByNamefindByNameIgnoreCase 교체
data.sql 중복 병합 DO $$ 블록(css→CSS, Github→GitHub) + 한국어→영어 UPDATE 10건 + INSERT 섹션 영어명 반영
UserServiceTest.java 대소문자 무관 태그 재사용 / 신규 생성 케이스 2개 추가, 기존 mock findByNameIgnoreCase로 교체

인수 조건 체크

  • 중복 tag row 제거 후 content_tags, user_tags 데이터 손실 없음 (DO $$ 블록에서 기존 FK 먼저 이전 후 삭제)
  • AI가 Algorithm, Network 등 영어로 보낸 태그가 DB와 정상 매칭됨
  • 동일 태그를 다른 표기(css/CSS)로 입력해도 신규 row 생성 안 됨

Test plan

  • ./gradlew build --no-daemon 빌드 + 전체 테스트 통과
  • UserService 커버리지 90% instruction / 100% branch (SonarCloud 80% 기준 초과)
  • updateProfile_tags_caseInsensitive_reusesExistingTag — 소문자 입력 시 대문자 DB 태그 반환, save() 미호출 확인
  • updateProfile_tags_unknown_createsNewRow — 미존재 태그 신규 생성 확인

- TagRepository: findByNameIgnoreCase(String) 메서드 추가
- UserService.findOrCreateTags(): findByName → findByNameIgnoreCase 교체 (css 입력 시 CSS 재사용, 신규 row 미생성)
- data.sql: 중복 태그 병합 마이그레이션 (css→CSS, Github→GitHub) 및 한국어 태그 영어 rename (알고리즘→Algorithm 등 10개)
- UserServiceTest: 대소문자 무관 태그 재사용 / 신규 생성 케이스 테스트 추가
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 7, 2026

@nYeonG4001 nYeonG4001 merged commit 28bf697 into developV2 May 7, 2026
4 checks passed
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