Skip to content

refactor(afternote): 미디어 URL 빈 값 정규화를 입구로 모은다 (#2207) - #2208

Merged
OnlyReadOneBook merged 2 commits into
developfrom
refactor/2207-media-blank-entry
Oct 5, 2026
Merged

OnlyReadOneBook merged 2 commits into
developfrom
refactor/2207-media-blank-entry

Conversation

@OnlyReadOneBook

@OnlyReadOneBook OnlyReadOneBook commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #2207
Refs #2163

추억 노트의 사진·영상·썸네일 URL은 쓰는 자리마다 ifBlank { null }로 빈 문자열을 걸러 왔습니다. 이 PR은 값이 들어오는 입구에서 한 번만 빈 값을 null로 맞추고, 폼 매퍼에서는 미디어 URL 정규화를 걷어냅니다.

입구

  • 서버: 상세 data 매퍼에서 발행·임시저장이 함께 쓰는 AfternoteMemorialDto.toMemorialMedia()에서 빈 값을 null로 맞춥니다. BE main은 빈 미디어를 null로 저장하므로(PlaylistRelationStrategy.createMediaSlot·applyMediaSlot) 옛 데이터 방어입니다.
  • 폼 사진: photoMediaInput이 이미 빈 기존 URL을 MediaInput.None으로 보내 null이 됩니다. 변경 없음.
  • 폼 영상: MemorialVideoAttachment.ofOrNull이 빈 영상 URL을 첨부 없음으로 만듭니다. 변경 없음.
  • 폼 썸네일: 늦게 도착하는 썸네일 결과를 넣는 withSelectionThumbnail에서 빈 값을 null로 맞춥니다. 이 경로만 ofOrNull을 거치지 않았습니다.

계정 id·비밀번호의 ifBlank는 사용자가 입력하는 텍스트 칸이라 빈 문자열이 정상 입력이므로 그대로 둡니다.

리뷰어에게

검증

HEAD fff76a315(부모 브랜치의 develop 병합을 받은 뒤)에서 다음을 통과했습니다.

  • :feature:afternote:data:testDebugUnitTest, :feature:afternote:presentation:testDebugUnitTest, 두 모듈 ktlintCheck
  • :app:compileDebugUnitTestKotlin, :konsist:test --rerun-tasks
  • 새 회귀 테스트: AfternoteDetailMapperTest의 빈 미디어 URL 정규화, EditableMemorialVideoTest의 빈 썸네일 결과. data 매퍼의 사진 정규화를 빼면 앞의 테스트가 실패하는 것을 확인했습니다.

🧪 CI Test Plan

{
  "androidTest": {
    "mode": "none",
    "reason": "data 매퍼와 폼 상태의 문자열 정규화 위치만 옮기며 UI·Android API 변경이 없어 기존 생성·부분 PATCH 단위 테스트와 새 회귀 테스트로 검증합니다.",
    "tests": []
  }
}

상세 data 매퍼와 썸네일 결과 반영에서 빈 문자열을 null 로 맞추고, 폼 매퍼의 미디어 URL ifBlank 를 걷어낸다.
@github-actions github-actions Bot added the conflict base 와 충돌 — CI 가 트리거되지 않는다. base 를 병합하면 자동으로 떨어진다 label Sep 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

이 PR 은 refactor/2166-media-mapping 와 충돌 상태이고, 그래서 CI 가 돌지 않는다.

pull_request 워크플로는 base 와 head 를 합친 가상 머지 커밋(refs/pull/<N>/merge)에서
실행되는데, 충돌이면 GitHub 이 그 ref 를 만들지 못해 워크플로가 트리거조차 되지 않는다.
체크가 실패하는 것이 아니라 아예 생성되지 않으므로, 새 커밋을 올려도 no checks reported
인 채 최신 커밋이 한 번도 검증되지 않은 상태로 남는다 (#1028).

refactor/2166-media-mapping 를 병합해 충돌을 풀면 검증이 다시 돈다. 해소되면 이 라벨은 자동으로 떨어진다.

…o refactor/2207-media-blank-entry

# Conflicts:
#	feature/afternote/data/src/main/kotlin/com/afternote/feature/afternote/data/mapper/AfternoteDetailMapper.kt
@github-actions github-actions Bot removed the conflict base 와 충돌 — CI 가 트리거되지 않는다. base 를 병합하면 자동으로 떨어진다 label Sep 28, 2026

@Sadturtleman Sadturtleman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

서버 상세 매퍼와 썸네일 결과 입구에서 빈 값이 null 로 맞춰지고, 사진·영상의 다른 입력 경로도 MediaInput 판정과 ofOrNull 로 이미 걸러지는 것을 확인했습니다. 승인합니다.

Base automatically changed from refactor/2166-media-mapping to develop October 4, 2026 02:58
@github-actions
github-actions Bot added this pull request to the merge queue Oct 5, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Oct 5, 2026
@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

merge queue 방출 — 재투입했다

사유 CI_TIMEOUT · head fff76a3 · merge group 실패 job 없음 → 조용한 방출로 보고 한 번 재투입했다.
같은 head 에서 또 방출되면 재투입하지 않고 여기에 남긴다.

@github-actions
github-actions Bot added this pull request to the merge queue Oct 5, 2026
@OnlyReadOneBook
OnlyReadOneBook added this pull request to the merge queue Oct 5, 2026
Merged via the queue into develop with commit 7c010e6 Oct 5, 2026
47 of 52 checks passed
@OnlyReadOneBook
OnlyReadOneBook deleted the refactor/2207-media-blank-entry branch October 5, 2026 06:03
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.

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

2 participants