You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(afternote): 곡을 전부 빼도 서버 곡이 남는다 — 빈 songs 가 키째 생략돼 「유지」로 흡수된다 #1599
추억 노트에서 곡을 전부 빼고 저장하면 서버 곡이 그대로 남는다. 폼은 빈 목록인데 재진입하면 지웠던 곡이 되살아난다 — 미디어 슬롯에서 났던 거짓 삭제(#1596)와 같은 결함이 곡 목록에서 남아 있는 것이다.
원인:AfternotePlaylistRequestDto.songs 가 기본값 emptyList() 를 들고 있고, 앱 Json 은 encodeDefaults = false 다. 그래서 빈 목록은 키째 빠진다. BE PlaylistRelationStrategy.update 는 songs != null 일 때만 항목을 갈아 끼우므로, 키가 없으면 기존 곡을 그대로 둔다.
// Afternote-BE PlaylistRelationStrategy.updateif (playlistRequest.getSongs() != null) {
playlist.getItems().clear(); // ← 빈 배열이 오면 여기서 전부 삭제된다
...
}
즉 BE 는 이미 「빈 배열 = 전부 삭제」를 받을 준비가 돼 있고, FE 가 그 배열을 못 보내고 있다.
도달 경로: 수정 모드 진입 → 곡을 전부 제거(clearMemorialPlaylistSongs · removeMemorialPlaylistSongs) → 저장 → 재진입하면 곡이 남아 있다.
Activity
github-actions commentedon Aug 30, 2026
bug 이슈는 사이드바 Fields > Priority 로 심각도를 지정해야 합니다. 판정 기준:
값이 비어 있어도 이슈를 닫지는 않습니다. 이 안내는 이슈당 한 번만 답니다.
github-actions commentedon Aug 30, 2026
이 이슈를 맡은 PR 은 #1602 다 (base
fix/1596-explicit-null-media-patch).base 가 기본 브랜치(
develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에아무것도 표시하지 않는다. 본문에
Closes #N이 있어도 마찬가지다 — 그 링크는 기본 브랜치를target 하는 PR 에서만 만들어진다.
PR 이 닫히거나 머지되면 이 이슈의
pr-open라벨은 다음 리컨사일에서 떨어진다.fix(afternote): 빈 곡 목록을 명시적으로 실어 곡 전부 삭제를 말할 수 있게 한다 (#1599)
fix(afternote): 수정 PATCH 가 안 건드린 필드를 싣지 않게 한다 (#1617)