release: 시술기록 사진 수정·교체 흐름 수정 - #140
Merged
Merged
Conversation
발급 60초 뒤 URL 이 만료돼 목록을 열어둔 채 스크롤하면 이미지가 403 으로 깨졌다. 만료 자체는 비공개 버킷의 접근 통제 수단이라 없앨 수 없으므로, 화면 체류 시간을 감당할 만큼만 늘리고 배포에서 조정할 수 있게 뺀다.
Spring Boot 가 FAIL_ON_UNKNOWN_PROPERTIES 를 꺼 두어 photos 같은 미지원 필드가 조용히 버려지고 200 이 나갔다. 클라이언트는 사진이 교체된 줄 알고 옛 사진이 남은 화면을 보게 된다. 어느 경로를 써야 하는지 알려 주고 막는다.
기본값 0 이 이미 0 인 사진과 동점이 되고, 조회 정렬이 동점을 created_at 오름차순으로 풀어 새로 올린 사진이 뒤로 밀렸다. 목록 썸네일은 첫 사진을 쓰므로 사진을 바꿔도 화면에는 옛 사진이 계속 보였다. 기존 행의 순서를 건드리면 이미 저장된 기록의 표시 순서가 흔들리므로 정렬 규칙이 아니라 추가 시점의 기본값을 고친다.
photo_id 를 유지한 채 file_id 만 바꿀 수 있어야 한다. 삭제 후 재등록으로 교체하면 식별자가 바뀌어 표시 순서와 이 사진을 참조하는 분석 결과가 끊긴다.
교체 파일은 요청자 소유의 READY 파일이어야 하고, 다른 사진이 이미 쓰는 파일은 붙이지 않는다 — 한 파일을 둘이 공유하면 한쪽을 지울 때 파일이 정리 대상이 되어 남은 사진이 깨진다. AFTER 사진의 내용이 바뀌면 그 사진으로 낸 분석 결과를 stale 로 표시한다.
chore: 사진 조회 URL 만료를 300초로 상향
fix: 시술기록 수정에서 모르는 필드 거절
fix: 순서를 생략한 사진 추가를 기존 사진 뒤에 붙이기
feat: 시술기록 사진 파일 교체 지원
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
관련 이슈
변경 내용
photos같은 미지원 필드를 조용히 무시하지 않고 거절 ([Bug] 시술기록 수정이 photos 필드를 조용히 무시하고 200 을 반환 #132)sort_order를 생략한 사진 추가가 기존 사진 뒤에 붙도록 수정 ([Bug] 사진 추가 시 sort_order 기본값 0 으로 대표 사진이 옛 사진에 고정 #133)photo_id유지한 채 교체하는 경로 추가 ([Feature] 시술기록 사진 파일 교체 지원 #134)작업 목적
사진을 새로 올려도 다시 조회하면 옛 사진이 보인다는 제보를 배포 서버에서 재현했다. S3 업로드는 정상이었고, 원인은 사진을 교체할 경로가 없고 추가된 사진이 기존 사진 뒤로 밀리는 것이었다.
테스트 방법
체크리스트
기타 사항
treatment_record_photos.file_id는 JPAupdatable제약만 풀었고 컬럼 정의는 그대로다DOWNLOAD_URL_TTL_SECONDS가 추가됐다. 미설정 시 300 이 기본값이라 별도 조치는 필요 없다POST .../photos를 쓰면 사진이 쌓인다. 앱 쪽에서PATCH .../photos/{photoId}의file_id로 옮겨야 완결된다