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): 수정 요청이 명시적 null 을 못 싣는다 — BE 삭제 계약이 열렸는데 FE 가 표현할 수단이 없다 #1596
추억 노트 수정(PATCH) 요청에 「이 미디어를 지워라」를 실을 수단이 없다. BE 는 2026-08-30 에 계약을 넓혀 «필드 생략 = 유지» 와 «JSON null = 삭제» 를 갈랐는데(Afternote-BE origin/main72fee63, BE#259), FE 직렬화 설정에서는 JSON null 이 애초에 나가지 않는다.
원인:AfternotePlaylistRequestDto 의 미디어 필드가 전부 기본값 null 을 들고 있고, core/networkNetworkModule.provideJson() 은 encodeDefaults 를 켜지 않는다(기본값 false). 기본값과 같은 값은 키째 빠지므로, 값이 null 이면 필드가 통째로 사라진다.
BE 가 두 상태를 가르는 지점은 PlaylistRequestDeserializer 의 node.has(...) 이므로, 키가 없으면 specified = false 가 되고 AfternotePlaylist.update 는 그 슬롯을 건드리지 않는다. FE 가 무엇을 하든 서버 미디어는 유지된다.
완료 조건:
수정 요청 바디가 영정사진·추모 영상 슬롯에 대해 명시적 null 을 실을 수 있다.
값이 있을 때는 종전과 같은 키·값이 나간다(회귀 없음).
FE 가 모델링하지 않는 슬롯(atmosphere, memorialAudioUrl)은 계속 생략된다 — 말하지 않는 것에 대해 삭제를 지시하지 않는다.
와이어 모양을 실제 앱 Json 설정으로 고정하는 회귀 테스트를 둔다.
자식 이슈
No response
참고
BE 계약: Afternote-BE origin/main72fee63 — PlaylistRequestDeserializer(생략/null 판별), AfternotePlaylist.update(specified 플래그), PlaylistRelationStrategy.applyMediaSlot·applyMemorialVideo(DB 참조 제거 + S3 객체 삭제). 대응 BE 이슈는 Afternote-BE#259(closed).
Activity
github-actions commentedon Aug 30, 2026
bug 이슈는 사이드바 Fields > Priority 로 심각도를 지정해야 합니다. 판정 기준:
값이 비어 있어도 이슈를 닫지는 않습니다. 이 안내는 이슈당 한 번만 답니다.
fix(afternote): 수정 PATCH 가 안 건드린 필드를 싣지 않게 한다 (#1617)
Merge branch 'develop' into feat/1118-memory-note-voice