Skip to content

refactor(afternote): 추억 노트 미디어 URL의 빈 값 정규화를 입구로 모은다 #2207

Closed

Description

@OnlyReadOneBook

작업 유형

refactor — 동작 변경 없는 구조·책임·경계 개선

주 담당 모듈

afternote — 애프터노트

개요

추억 노트의 사진·영상·썸네일 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에서 변경으로 판정되지 않고, 생성 요청에 빈 문자열이 실리지 않는다는 회귀 테스트가 통과한다.
  • 기존 생성·부분 PATCH 테스트가 그대로 통과한다.

참고

Activity

  1. added
    refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업
    area:afternote애프터노트 기능 영역
    on Sep 28, 2026
  2. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 28, 2026
  3. github-actions commented on Sep 28, 2026

    @github-actions
    Contributor

    이 이슈를 맡은 PR 은 #2208 다 (base refactor/2166-media-mapping).

    base 가 기본 브랜치(develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에
    아무것도 표시하지 않는다. 본문에 Closes #N 이 있어도 마찬가지다 — 그 링크는 기본 브랜치를
    target 하는 PR 에서만 만들어진다.

    PR 이 닫히거나 머지되면 이 이슈의 pr-open 라벨은 다음 리컨사일에서 떨어진다.

  4. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:afternote애프터노트 기능 영역refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions