Project

General

Profile

Actions

작업로그 — 2026-06-27 (역설계·현행화·코드리뷰·개선)

기준 커밋 21901237081f1a · 17 커밋, 71 파일, +4,727 / −1,441 · 작성: [AI] Claude Code

1. 개요

운영 중인 HitMusicU를 역설계서로 문서화하고 Redmine/git을 현행화한 뒤, 6-페르소나 코드리뷰로 개선점을 도출·등록·처리. 고위험 항목은 Design-First + 별도 리뷰어 패스로 진행.

2. 문서 아키텍처 (역설계)

  • docs/ 신설: Diátaxis + ADR + 설계서 구조 (docs/README.md 문서지도)
  • 역설계서 6편: 49-chart-query, 50-lyrics-pipeline, 51-flashcards, 52-frontend, 502-auth-personalization, 503-backoffice
  • ADR 4건: 0001 LLM 프로바이더, 0002 백오피스 보안, 0003 artist_name_norm, 0004 song 복합키

3. 보안 (P0)

  • #506/#507/#509 하드코딩 시크릿(DB PW·Genius·OCI/OpenRouter 키) → env 이전 + git 이력 filter-repo 스크럽 → 리스크 수용 완료
  • #508 백오피스 앱인증 부재 → 리스크 수용 완료(완화책 적용)
  • 커밋: ae9dd30, db7e5d9 (+ 이력 재작성 db7e5d9)

4. 6-페르소나 코드리뷰 → P1 버그 8건 (#510~#517)

보안/백엔드/프론트/성능/데이터품질/QA 관점 병렬 리뷰(교차검증). 수정·배포 완료:

  • #510 번역/발음 빈문자열→None · #511 Drill per-card 난이도 · #512 복습 실패 노출
  • #513 Redis 읽기 DB폴백 · #514 전역 예외핸들러(400) · #515 Billboard FK 매핑(+14주 재적재)
  • #516 부분가사 저장 차단 · #517 백오피스 batch 가드(부분)
  • 커밋: a279c3e

5. P2 개선 묶음 (#518~#523)

이슈 결과 핵심
#518 보안 진행 80% CORS env·XFF 우측IP·에러마스킹·admin DB role 재확인 (a65d704)
#519 데이터품질 진행 70% Korean감지·장르매처·MB검증·JSON salvage·source·영문명검증 (dbbdb3a)
#520 백엔드 해결 JwtService·clearCache SCAN·@Transactional·SLF4J (edfbfdc)
#521 성능/비용 진행 70% 캐시 TTL계층·미캐싱추가·LLMcap 호출계수·async·N+1·풀 (c46184e)
#522 프론트 진행 80% 카드a11y·lib/api·aria·실패처리·메타데이터·modal·speak (92dac0c)
#523 기술부채 해결 죽은코드 삭제·RateLimiter·visitor:today TTL·parse가드 (7081f1a)

6. 분리 설계→리뷰→구현 (대형, 모두 완료)

  • #524 artist_name_norm 가상컬럼+인덱스 — 검색 sargable화·오매칭 제거(Taylor 59→1, BTS 15→1), 로마자 검색(IU→아이유). 리뷰어가 한글(영문) 매칭 결함 차단. (5d298c3, c7e796f)
  • #525 song (song_name, artist_id) 복합키 — 동명이곡 7,254 분리(신규 11,818행), 7테이블 FK 재매핑. 리뷰어 REJECT→941행 오귀속 방지. 검증게이트+백업 마이그레이션. (3073c7a)
  • #526 ChartController(653줄) 5분할 + CacheService + curl→RestTemplate. (1045098)

7. 후속 이슈

  • #528 분리행 메타 재도출 — english_title 476곡 채움(genre 휴면기능 보류) (1565ca3)
  • #529 Map→DTO — LyricsDto로 CLOB fragility 제거(바이트동일), 광범위 sweep 비권장 (e71f3b4)
  • #530 karaoke — tjmedia 새 endpoint + URL 이중인코딩 버그 수정 → 해결(밤편지→48879 등) (c769cae)

8. DB 마이그레이션 (sqlcl/python, 백업 보존)

  • artist_name_norm 가상컬럼 4 + 인덱스 4 (db/migrations/2026-06-27-artist-name-norm.sql)
  • song 복합키 분리: 신규 11,818행 + FK 재매핑 (scripts/migrate_525_song_composite_key.py, *_bak_525 백업)
  • Billboard 14주 재적재, english_title 476곡 백필

9. 검증

모든 변경 빌드(mvn/npm) + pm2 재기동 + 스모크/회귀 + DB 무결성 게이트로 확인. 마이그레이션은 dry-run 후 검증게이트 통과 시에만 커밋.

10. 의도적 보류 (대형 재설계 / 저ROI / 데이터 재처리)

JWT refresh 재설계(#518) · LLMcap Redis백업·MB배치 재시작성(#521) · 협업파서→/featuring(#522) · 광범위 Map→DTO(#529) · genre 크롤(#528) · 기존 오염데이터 재처리(#519)

Updated by joungmin ko about 2 months ago · 1 revisions