Conversation
포인트로 아티스트에 투표하는 artist_votes, 월별 1~10위를 확정하는 monthly_artist_rankings, 그리고 두 테이블이 FK로 참조하는 artists 마스터 테이블 스키마를 추가한다. 투표 증감/삭제(PUT), 랭킹/투표자 조회, 매일 00:10 KST에 전월을 확정하는 finalize 배치(GitHub Actions + service role 전용 라우트)까지 백엔드 전체를 구성한다.
songs 테이블을 순회하며 artistAlias로 표기를 정규화하고, song_tags 언어 태그로 country_code를, artist_ko/artistAlias로 name_ko를 추정해 artists 테이블을 채우는 backfillArtists.ts를 추가한다. ARTIST_BACKFILL_SINCE_DAYS로 최초(전체) 백필과 매달 증분 백필을 구분하며, 매달 1일 자동 실행되는 GitHub Actions 워크플로우를 함께 둔다.
artists 테이블을 name/name_ko로 검색하는 GET /api/artists/search와 클라이언트 훅을 추가한다. 이달의 아티스트 투표 모달의 아티스트 자동완성이 이 API를 쓴다.
하단 내비게이션 '인기곡'을 '인기 차트'로 바꾸고 /popular를 노래방 인기곡/이달의 아티스트 탭으로 재구성한다. 이달의 아티스트 탭은 월 선택, 1~3위 포디움과 4~10위 리스트, 투표자 상세, 투표 모달(검색 + 내 투표 증감/삭제)로 구성된다. 월 선택 UI는 기존 인기차트와 공유하도록 MonthSelector로 분리했다. 곡 카드 공통 컴포넌트 SongSummary에는 이번 달 1위 아티스트 배지(★ 누적 선정 횟수 포함)를 추가한다.
SQL 실행, artists 최초 백필, 환경변수/시크릿 등록 등 코드 완성 후 남은 수동 작업을 진행 중인 작업 섹션에 정리한다.
artists.country_code(임의 문자열)를 기존 tags 테이블을 참조하는
language_tag_id FK로 교체하고, 스키마를 정책 없이 테이블·RLS enable만
남기도록 정리한다.
백필 정규화는 애매하게 잘라 쓰는 대신 명확한 기준으로 무효 처리하는
쪽으로 단순화한다 — 쉼표, &/&, ×/・, feat, with, 앞뒤 단어가 있는
x-콜라보(예: "지코 X 아이유")가 하나라도 있으면 그 곡의 artist는
백필 대상에서 제외한다. 살아남은 값은 첫 괄호 앞부분만 남기되(내용
무관), 잘랐을 때 빈 문자열이 되면("(여자)아이들"처럼 이름 자체가
괄호로 시작하는 경우) 원문을 유지한다. songs.updated_at도 증분
스캔 조건에 포함해 기존 곡의 artist 오타 수정 같은 걸 놓치지
않게 한다.
백필 실행 로그를 파일로 남기고(packages/crawling/src/assets/
artistBackfillLog.txt) GitHub Actions에서도 아티팩트로 업로드한다.
오작동하던 언어 태그 필터(LanguageTagFilter)를 검색 화면과 api/search에서 걷어낸다. UI 컴포넌트, 관련 훅(useSearchSong, useSaveSongModal)과 쿼리(searchSongQuery)의 languageTag 파라미터, api/search의 song_tags 조인 필터링 로직, 가이드 투어 스텝을 모두 제거한다.
언어 태그 필터 오작동을 계기로 태그 기능 자체를 끈다. artists 백필에서 language_tag_id 산출 로직과 스키마 컬럼 정의를 제거하고, tags/song_tags를 등록하거나 참조하던 taggingSongs.ts와 translationJpn.ts는 삭제 대신 전체 주석처리한다. 연결된 GitHub Actions 스케줄(tagging_song.yml, translation_jpn.yml)도 schedule 트리거만 주석처리해 자동 실행을 멈추고, workflow_dispatch로 필요하면 수동 실행은 가능하게 남긴다. tags/song_tags 테이블 자체는 DB에서 지우지 않는다.
태그 기능 제거 배경을 참고용으로 남기고, 이달의 아티스트 잔여 작업 목록에 아티스트 투표/검색 기능 동작 검증 항목을 추가한다.
chore : twa 버전 13
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CPpnfzdUzPYFQZrjzNL65k
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011BpPKpkMzHxHvgWgfye3DJ
지난 달 확정 순위 대신 투표 화면이 바로 뜨도록 기본 조회 월을 바꿨다. 지난 결과는 월 선택기 이전 버튼으로 간다. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8fYzTjtYk4gbrNcFWFkRU
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V8fYzTjtYk4gbrNcFWFkRU
[Feat] : 포인트 투표 기반 이달의 아티스트 선정 기능 (#307)
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
📌 PR 제목
Chore : 버전 2.12.0
📌 변경 사항
💬 추가 참고 사항