Repository navigation
fix(core): 업로드 파일 크기 초과(1803)를 도메인 실패 타입으로 번역한다 (#1868 분리) #2089
Copy link
Copy link
Closed
Labels
Description
작업 유형
bug — 버그·오동작
주 담당 모듈
core — 코어
개요
#1868 의 core 번역 몫이다. 서버는 10 MiB 를 넘는 업로드를 POST /api/v1/files/presigned-url 에서 400 code 1803 으로 거절하는데 FE 에는 그 코드를 받을 자리가 없다. 저장소 전체에서 1803 검색 결과가 0건이라 소비처가 사유를 확인하지 못한 실패와 똑같이 받고, 파일 크기가 그대로인 한 통하지 않는 재시도를 권한다.
이 몫만 떼는 이유는 둘이다. #1868 의 완료 조건에 애프터노트 에디터 표시 연결이 남아 있고 그 표시는 시안 정본 대조가 선행이다. 그리고 #1868 이 문구 결정 이슈 #446 을 blocked_by 로 달고 있어 merge-order-guard 가 Closes #1868 을 건 PR 을 잠근다.
타입 계약은 문구를 정하지 않으므로 #446 의 결정을 기다리지 않는다. #446 이 PM 에게 묻는 것은 "무슨 문구를 어떤 액션과 함께 어느 표시 채널로 띄울지" 이고, 이 이슈는 실패에 이름을 붙일 뿐 화면에 아무것도 쓰지 않는다. #446 본문도 "확정된 오류 계약을 유지하는 내부 매핑·결함 수정은 별도 판단한다" 로 그 경계를 적어 두었다.
기준 리비전은 origin/develop 7d87aa3f4 다.
완료 조건
-
core:domain에 업로드 실패 루트 타입과 크기 초과 하위 타입을 둔다. 사진과 영상이 같은 presigned 엔드포인트에 원본 크기를 그대로 실어 보내 같은 코드를 맞으므로 매체별로 가르지 않는다. -
core:data가ApiException.code1803 만 그 타입으로 치환한다. 사유를 확인하지 못한 실패는 원본 그대로 흘린다. 전송 실패와 S3 PUT 실패는 재시도가 실제로 통하는 경로라 건드리지 않는다. -
PhotoUploadRepositoryImpl과VideoUploadRepositoryImpl이 그 번역을 체인한다. - 소비처가
core:network의ApiException이나 1803 이라는 숫자를 직접 보지 않고 타입만으로 가를 수 있다. - 번역 분기를 양쪽에서 잠그는 단위 테스트가 붙는다. 1803 번역, 그 외
code원본 유지, 비ApiException원본 유지, 취소 재던짐, 성공 통과 다섯이다. -
core:data와core:domain의 유닛 테스트와 ktlint 를 통과한다.
표시 문구는 이 범위가 아니다. 서버 message 도 화면으로 옮기지 않는다. 각 화면이 자기 리소스로 갖는다.
참고
- 분리 출처는 fix(core): 10MiB 넘는 사진은 업로드가 원천 차단되는데 「다시 시도해 주세요」로 안내한다 — 서버 1803 미처리·압축 부재 #1868 이다. 이 이슈 하나로는 fix(core): 10MiB 넘는 사진은 업로드가 원천 차단되는데 「다시 시도해 주세요」로 안내한다 — 서버 1803 미처리·압축 부재 #1868 이 닫히지 않아서
blocked_by로 잇는다. fix(core): 10MiB 넘는 사진은 업로드가 원천 차단되는데 「다시 시도해 주세요」로 안내한다 — 서버 1803 미처리·압축 부재 #1868 에는 애프터노트 에디터 표시 연결과 공통 오류 안내의 상황별 문구·액션·적용 범위를 PM에게 확인한다 #446 문구 결정 대기가 남는다. - 표시 몫 fix(mindrecord): 크기 초과(1803)로 원천 차단된 이미지 첨부에 재시도를 권한다 (#1868 표시 몫 분리) #2080(마음의 기록)과 fix(timeletter): 크기 초과(1803) 첨부 실패가 일반 저장 실패로 뭉개져 재시도를 권한다 (#1868 표시 몫 분리) #2081(타임레터)이 기다리는 선행이 이 이슈다. 두 이슈 본문이 "그 타입이 서야 여기서 가를 수 있다" 로 적은 선행분이 여기이고, 종전에 걸려 있던 fix(core): 10MiB 넘는 사진은 업로드가 원천 차단되는데 「다시 시도해 주세요」로 안내한다 — 서버 1803 미처리·압축 부재 #1868 에서 이 번호로 옮겼다.
MemorialThumbnailUploadRepositoryImpl은ImageApiService를 직접 불러 자기 presigned 요청을 만들므로 이 번역을 타지 않는다. 그쪽은 JPEG 로 압축한 바이트를 보내 실측 구간이 상한에서 멀고, 체인하려면 core 저장소가 아니라afternote:data를 고쳐야 한다. 이 범위에 넣지 않는다.- 자동 축소와 재압축은 PM 결정 사항이다. fix(core): 10MiB 넘는 사진은 업로드가 원천 차단되는데 「다시 시도해 주세요」로 안내한다 — 서버 1803 미처리·압축 부재 #1868 이 그대로 들고 있다.
- 번역 함수를 impl 이 아니라 별도 파일에 두는 관례는
PushSettingFailureMapper가 세웠다. 열린 refactor(core): 로그인·계정 실패 번역 파일 분리 (#2017) #2020 이mapLoginFailure와mapAccountFailure를 impl 밖으로 빼는 방향과도 같다.
Reactions are currently unavailable
Activity
github-actions commentedon Sep 13, 2026
bug 이슈는 사이드바 Fields > Priority 로 심각도를 지정해야 합니다. 판정 기준:
값이 비어 있어도 이슈를 닫지는 않습니다. 이 안내는 이슈당 한 번만 답니다.