배경
현재 packages/crawling/src/cron/translationJpn.ts 의 dbArtistKoMap 은 이번 실행 배치(getJpopSongsForTranslationDB 결과) 내에서만 artist→artist_ko 를 집계(frequency count)해 만들어진다. DB 가 이미 아티스트당 단일 artist_ko 로 정규화되어 있으므로 집계 로직은 불필요하고, 배치에 포함되지 않은 기존 번역본을 참조하지 못하는 한계가 있다.
변경 사항
getArtistKoMapDB() 를 @/supabase/getDB 에 신규 추가
tag_id=101 + artist_ko IS NOT NULL 로 distinct artist→artist_ko 를 DB 에서 직접 로드
- first-seen 원칙(Map 중복 시 덮어쓰지 않음)
translationJpn.ts:
artistKoCountMap 빈도 집계 로직 전부 제거
dbArtistKoMap 초기화를 getArtistKoMapDB() 호출로 대체
- 번역 성공 경로에서
if (!has) set(finalArtistKo) 로 런타임 동기화 (alias/DB/AI 모든 경로 공통)
기대 효과
- DB 전체 번역 이력을 참조하므로 아티스트 번역 일관성이 배치 경계에 묶이지 않음
- 집계 단계 제거로 코드 단순화 (~20줄 축소)
배경
현재
packages/crawling/src/cron/translationJpn.ts의dbArtistKoMap은 이번 실행 배치(getJpopSongsForTranslationDB결과) 내에서만 artist→artist_ko 를 집계(frequency count)해 만들어진다. DB 가 이미 아티스트당 단일artist_ko로 정규화되어 있으므로 집계 로직은 불필요하고, 배치에 포함되지 않은 기존 번역본을 참조하지 못하는 한계가 있다.변경 사항
getArtistKoMapDB()를@/supabase/getDB에 신규 추가tag_id=101+artist_ko IS NOT NULL로 distinct artist→artist_ko 를 DB 에서 직접 로드translationJpn.ts:artistKoCountMap빈도 집계 로직 전부 제거dbArtistKoMap초기화를getArtistKoMapDB()호출로 대체if (!has) set(finalArtistKo)로 런타임 동기화 (alias/DB/AI 모든 경로 공통)기대 효과