Skip to content

chore : 버전 2.13.0 - #325

Merged
GulSam00 merged 12 commits into
mainfrom
develop
Sep 1, 2026
Merged

chore : 버전 2.13.0#325
GulSam00 merged 12 commits into
mainfrom
develop

Conversation

@GulSam00

@GulSam00 GulSam00 commented Sep 1, 2026

Copy link
Copy Markdown
Owner

📌 PR 제목

[Type] : 작업 내용 요약

📌 변경 사항

💬 추가 참고 사항

GulSam00 and others added 12 commits August 31, 2026 16:09
로그인 안내 오버레이가 bg-background/70 + blur 2px라 뒤의 투표 패널이
거의 안 보였다. 무엇에 참여하는지 보여야 로그인 동기가 생기므로
/10 + blur 1px로 낮춘다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3Qg1DFPBGjtDjhBN5CuAn
"전체 문장보다는 단어 단위로 검색해보세요"를 "단어 단위로 검색해주세요"로
줄인다. 안내 문구가 길면 정작 읽지 않는다.

함께 주석 처리된 채 남아 있던 ChatBot 위젯 관련 코드(import, 토글 상태,
localStorage 핸들러, 렌더 블록)를 삭제한다. 되살릴 계획이 없어 git 이력에만
남기면 된다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3Qg1DFPBGjtDjhBN5CuAn
검색 화면만 title_ko를 큰 줄에 올리고 부를곡·즐겨찾기·재생목록·홍보는
원어를 큰 줄에 두고 있었다. 검색에서 "요네즈 켄시"를 보고 담은 곡이
부를곡 목록에선 "米津玄師"로 떠, 한자를 못 읽는 사용자가 자기가 담은 곡을
눈으로 찾지 못했다. 일본곡 번역을 채워둔 의미가 검색에서만 살고 정작
노래방에서 보는 화면에서는 죽던 셈이다.

화면마다 복붙돼 있던 규칙을 utils/songDisplay.ts의 splitDisplay 하나로 모으고
한국어 우선으로 통일한다. 우선순위를 다시 바꿀 일이 생기면 이 함수만 고치면 된다.
title_ko가 비어 있는 한국곡·영미곡은 예전과 똑같이 한 줄로 그려진다.

이미 한국어 우선이던 SearchResultCard·ReportFieldCard·SongPromotionModal은
각자 갖고 있던 같은 로직을 유틸로 교체만 했다(동작 변화 없음).
내 홍보 화면의 취소 다이얼로그는 `title_ko ?? title`이라 title_ko가 원어와
같은 값일 때를 거르지 못했는데, 이 과정에서 같은 규칙으로 맞춰졌다.

이달의 아티스트 배지 판정은 원어(getPrimaryArtistName(artist))를 그대로 쓴다.
artists 마스터가 TJ 표기라 번역된 이름으로 비교하면 배지가 빠진다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3Qg1DFPBGjtDjhBN5CuAn
최상위 이동·삭제·최하위 이동 세 버튼의 aria-label이 전부 "삭제"라
스크린리더로는 어느 것이 삭제인지 구분할 수 없었다. 복붙 실수다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3Qg1DFPBGjtDjhBN5CuAn
빌드 검증 과정에서 next-sitemap postbuild가 lastmod를 갱신했다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3Qg1DFPBGjtDjhBN5CuAn
로그아웃 상태에서 담은 부를 곡이 로그인하는 순간 화면에서 사라졌다.
useToSingSongQuery가 isAuthenticated로 queryKey와 queryFn을 통째로 갈아타
서버 응답만 반환하는데, localStorage의 게스트 목록을 서버로 옮기는 코드가
없었다(clearGuestToSingSongs는 어디에서도 호출되지 않았다). 곡을 열심히
담고 로그인한 순간 목록이 비어 보이는, 가장 아까운 이탈 지점이었다.

데이터 자체는 지워지지 않았으므로 이 변경은 앞으로의 유입뿐 아니라
과거에 목록을 잃었던 사용자도 같은 기기에서 자동 복구한다.

카카오 로그인은 /api/auth/callback에서 서버 리다이렉트로 끝나 전체 페이지가
다시 뜬다. 클라이언트에 "로그인 성공" 시점이 없어 전환을 감지하는 대신
"로그인 상태에서는 게스트 목록이 비어 있다"는 불변식을 지킨다. 성공했을
때만 로컬을 비우므로 실패해도 곡은 남고 다음 방문에서 다시 시도한다.

기존 /songs/tosing/array를 쓰지 않고 /songs/tosing/merge를 따로 둔 이유는
이 요청만 중복·유령 곡을 만나기 때문이다. 모달에서 담을 때는 isInToSingList가
클라이언트에서 걸러주지만, 병합은 이미 담아둔 곡과 겹치고 브라우저가 오래
들고 있던 삭제된 곡 id도 섞인다. 둘 중 하나만 있어도 배치 insert 전체가
깨지고, 그러면 로컬이 비워지지 않아 방문할 때마다 같은 실패를 반복한다.
서버에서 실재하는 곡만 남기고 이미 담긴 곡은 건너뛴 뒤, 게스트가 잡아둔
순서를 유지한 채 기존 목록 뒤에 붙인다.

로그아웃 시에는 아무것도 하지 않는다 — 서버 목록을 로컬로 복사하면
공용 기기에 남는다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3Qg1DFPBGjtDjhBN5CuAn
카카오 로그인만 예로 들고 있어, 이메일/비밀번호 로그인은 따로 처리해야 하는
것처럼 읽힐 수 있었다. 실제로는 두 경우 모두 checkAuth()가 isAuthenticated를
뒤집는 지점을 지나므로 같은 상태 조건 하나로 덮인다. 방식마다 끝나는 모습이
다르다는 점(상태만 바뀜 vs 전체 리로드)과, 그래서 이벤트가 아니라 불변식을
쓴다는 점을 함께 적는다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V3Qg1DFPBGjtDjhBN5CuAn
[Feat] : 게스트 부를 곡을 로그인 계정으로 병합 (#317)
[Fix] : 곡 표기 한국어 우선 통일 및 UI 수정 (#315)
@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@vercel

vercel Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
singcode Ready Ready Preview Sep 1, 2026 8:16am UTC

@GulSam00
GulSam00 merged commit 7a7e425 into main Sep 1, 2026
1 check 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