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
refactor(afternote): 추억 노트 미디어 URL의 빈 값 정규화를 입구로 모은다 #2207
추억 노트의 사진·영상·썸네일 URL은 없을 때 null과 빈 문자열을 둘 다 받을 수 있다는 가정으로, 값을 쓰는 자리마다 ifBlank { null }을 붙이고 있다. 에디터 폼 매퍼의 생성 요청, 서버 원본 스냅샷, 현재값 스냅샷, 영상 변환이 각자 같은 정규화를 반복한다. 새 소비처가 한 번 빠뜨리면 빈 문자열이 서버로 가고, 서버는 memorialPhotoUrl에 빈 값이 명시되면 MEMORIAL_PHOTO_URL_CANNOT_BE_EMPTY로 저장을 거절한다(Afternote-BE PlaylistValidationStrategy).
값이 들어오는 입구에서 한 번만 빈 값을 null로 바꾸고, 그 뒤 소비처는 null만 없음으로 다룬다.
서버 입구: 상세 DTO를 도메인 MemorialMedia로 옮기는 data 매퍼. BE main은 빈 미디어를 null로 저장하므로(PlaylistRelationStrategy.createMediaSlot·applyMediaSlot) 여기서의 정규화는 옛 데이터 방어다.
폼 입구: 저장 직전 사진·영상 URL을 확정하는 경로.
폼 매퍼의 미디어 URL ifBlank를 걷어낸다. 계정 id·비밀번호처럼 사용자가 입력하는 텍스트 칸은 빈 문자열이 정상 입력이므로 범위 밖이다.
완료 조건
미디어 URL의 빈 값 정규화가 서버 입구와 폼 입구에만 있다.
빈 문자열 원본과 빈 폼 값이 부분 PATCH에서 변경으로 판정되지 않고, 생성 요청에 빈 문자열이 실리지 않는다는 회귀 테스트가 통과한다.
Activity
github-actions commentedon Sep 28, 2026
이 이슈를 맡은 PR 은 #2208 다 (base
refactor/2166-media-mapping).base 가 기본 브랜치(
develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에아무것도 표시하지 않는다. 본문에
Closes #N이 있어도 마찬가지다 — 그 링크는 기본 브랜치를target 하는 PR 에서만 만들어진다.
PR 이 닫히거나 머지되면 이 이슈의
pr-open라벨은 다음 리컨사일에서 떨어진다.