Skip to content

release: 시술기록 사진 수정·교체 흐름 수정 - #140

Merged
redjungi09 merged 12 commits into
mainfrom
develop
Sep 3, 2026
Merged

release: 시술기록 사진 수정·교체 흐름 수정#140
redjungi09 merged 12 commits into
mainfrom
develop

Conversation

@redjungi09

Copy link
Copy Markdown
Collaborator

관련 이슈

변경 내용

작업 목적

사진을 새로 올려도 다시 조회하면 옛 사진이 보인다는 제보를 배포 서버에서 재현했다. S3 업로드는 정상이었고, 원인은 사진을 교체할 경로가 없고 추가된 사진이 기존 사진 뒤로 밀리는 것이었다.

테스트 방법

  • 단위 테스트 추가/수정
    • 통합 테스트 완료
    • 수동 테스트 완료

체크리스트

  • 코드가 프로젝트의 코딩 스타일을 따릅니다
    • 자체 코드 리뷰를 완료했습니다
    • 변경 사항에 대한 테스트를 추가했습니다
    • Breaking Changes가 없습니다

기타 사항

  • 마이그레이션 없음. treatment_record_photos.file_id 는 JPA updatable 제약만 풀었고 컬럼 정의는 그대로다
  • 배포에 DOWNLOAD_URL_TTL_SECONDS 가 추가됐다. 미설정 시 300 이 기본값이라 별도 조치는 필요 없다
  • 클라이언트가 사진 교체 시 계속 POST .../photos 를 쓰면 사진이 쌓인다. 앱 쪽에서 PATCH .../photos/{photoId}file_id 로 옮겨야 완결된다

redjungi09 and others added 12 commits September 3, 2026 10:06
발급 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: 시술기록 사진 파일 교체 지원
@redjungi09
redjungi09 merged commit 46e9304 into main Sep 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant