Skip to content

chore(S15P11A705-320): place 썸네일 더미를 WebP로 교체하고 실제 이미지 경로를 확정한다 - #194

Merged
minyongP merged 1 commit into
devfrom
chore/S15P11A705-320-place-thumbnail-webp
Aug 5, 2026
Merged

chore(S15P11A705-320): place 썸네일 더미를 WebP로 교체하고 실제 이미지 경로를 확정한다#194
minyongP merged 1 commit into
devfrom
chore/S15P11A705-320-place-thumbnail-webp

Conversation

@minyongP

@minyongP minyongP commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

요약

썸네일 더미 이미지를 계획대로 WebP로 되돌리고, 실제 표지 이미지를 둘 경로를 static/images/places/test/로 확정해 기록한다. 이후 이미지를 넣고 배포 DB를 연결하는 것만 남긴다(S15P11A705-321).

Jira (필수)

관련 GitHub Issue (선택)

닫는 이슈 없음. back#188은 시연용 이미지 수급과 place 연결을 함께 요구하므로 이 PR로 해소되지 않는다 — 그쪽은 S15P11A705-321이 받는다. 여기서 Closes #188을 쓰면 일이 남은 이슈가 닫힌다.

변경 사항

  • 테스트 리소스의 더미 4장을 .jpg.webp로 교체하고 JPEG를 제거했다. 1200×900(4:3) 유지, 2632KB → 711KB. 변환은 Pillow로 했다(cwebp·ImageMagick 없음, convert는 Windows FAT 변환기이므로 쓰지 않는다).
  • PlaceThumbnailAssetTests/images/places/cafe-1.webp에 대해 200과 image/webp Content-Type을 단정한다.
  • RecordApiTeststhumbnailUrl 기대값을 /api/core/images/places/test/cafe-1.webp로 갱신했다.
  • 새 워크로그 항목에 WebP 전환 사유와 경로 규약을 기록했다.

MIME 매핑은 추가하지 않았다. image/webp로 서빙되지 않으면 매핑을 넣을 생각이었는데 그대로 통과했다. 단정만 테스트에 남겼다 — 매핑이 빠지면 application/octet-stream으로 나가고, 잡는 자리가 없으면 조용히 넘어간다.

더미를 main 리소스로 옮기지 않았다. 배포 산출물에 실리면 시연 준비 UPDATE가 더미를 가리켜 가짜 사진이 뜰 수 있다.

테스트 / 검증

  • ./gradlew clean check --no-daemon

RED — 새 테스트를 옛 리소스(.jpg)에 얹어 별도 워크트리에서 돌렸다.

./gradlew test --tests "...PlaceThumbnailAssetTests" --tests "...RecordApiTests"
PlaceThumbnailAssetTests > demoThumbnailIsServedUnderImagesPlaces() FAILED
    java.lang.AssertionError: Status expected:<200> but was:<404>
23 tests completed, 1 failed
BUILD FAILED in 56s (exit=1)

RecordApiTests는 RED에서도 통과했다. 그 테스트는 SQL로 넣은 문자열이 응답에 그대로 실리는지만 보므로 실제 파일에 의존하지 않는다 — 이번 변경은 값의 일관성을 맞춘 것이고, 서빙을 실증하는 것은 asset 테스트다.

GREEN

./gradlew test --tests "...PlaceThumbnailAssetTests" --tests "...RecordApiTests"
BUILD SUCCESSFUL in 1m 10s
PlaceThumbnailAssetTests  tests=1  fail=0 err=0 skip=0
RecordApiTests            tests=22 fail=0 err=0 skip=0

Regressionorigin/dev(7d9b87a) 리베이스 후 재실행했다.

./gradlew clean check --no-daemon
> Task :checkstyleMain
> Task :checkstyleTest
> Task :check
BUILD SUCCESSFUL in 3m 7s (exit=0)

리뷰 포인트

  1. 워크로그 정정 방식: 8월 4일 항목의 경로 표기가 낡았지만 docs/backend/worklog/README.md가 "바로잡을 일이 생기면 그 사실을 적은 새 항목을 추가합니다"라고 기존 항목 수정을 금지한다. 그래서 8월 4일 항목은 그대로 두고 새 항목에 정정을 적었다.
  2. test/ 하위를 고른 이유: 목업이라는 것이 경로에서 드러나고, SecurityConfigPUBLIC_STATIC_ASSETS(/images/places/**)가 하위 경로까지 덮으므로 시큐리티 설정과 정적 서빙 테스트를 고칠 필요가 없다.

미결 / 후속

  • 실제 표지 이미지 수급과 배포 DB 연결은 S15P11A705-321(back#188). 이미지 출처 미정, 배포 DB 쓰기 권한은 infra#189 대기.
  • 그때까지 배포 환경의 thumbnail_url은 전부 null이라 프론트(record 상세에 place 썸네일을 반응형으로 표시한다 front#94)는 폴백 경로만 검증할 수 있다.
  • back PR feat(S15P11A705-305): record 상세 응답에 place 썸네일을 추가한다 #184 본문의 시연 준비 SQL은 경로에 test/가 없으므로 그대로 쓰면 안 된다.
  • API 계약 문서는 고칠 것이 없었다. docs 레포의 08_API_명세.md·06_데이터모델_및_무결성.md는 포맷을 애초에 적지 않았고 경로도 /api/core/images/places/…로 열려 있다. 어긋난 것은 프론트 전달 이슈뿐이어서 그쪽을 고쳤다.

@minyongP minyongP added the chore 빌드·설정·잡무 label Aug 5, 2026
@minyongP minyongP self-assigned this Aug 5, 2026
썸네일은 처음부터 WebP로 계획했으나 로컬에 인코더가 없어 JPEG로 생성했다
(S15P11A705-305). Pillow로 인코딩이 되는 것을 확인해 계획대로 되돌렸다.
더미 4장을 1200×900(4:3) 그대로 변환했고 26~32KB에서 7~11KB로 줄었다.

MIME 매핑은 손댈 필요가 없었다. image/webp로 서빙되지 않으면 매핑을 추가할
생각이었는데 정적 서빙 테스트가 그대로 통과했다. 대신 Content-Type 단정을
남겨 뒀다 — 매핑이 빠지면 application/octet-stream으로 나가고, 그 회귀를
잡는 자리가 없으면 조용히 넘어간다.

실제 표지 이미지를 둘 곳은 static/images/places/test/로 정했다. 목업이라는
것이 경로에서 드러나고, SecurityConfig의 PUBLIC_STATIC_ASSETS
(/images/places/**)가 하위 경로까지 덮으므로 시큐리티 설정과 정적 서빙
테스트를 고칠 필요가 없다. 시연 준비 UPDATE의 값도 그 경로를 따른다.

8월 4일 워크로그의 낡은 경로 표기는 고치지 않고 새 항목에 정정을 적었다
(worklog/README.md의 기록 보존 규약).

더미를 main 리소스로 옮기지 않았다. 배포 산출물에 실리면 UPDATE가 더미를
가리켜 시연에 가짜 사진이 뜰 수 있다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@minyongP
minyongP force-pushed the chore/S15P11A705-320-place-thumbnail-webp branch from 794a6d8 to 03f9759 Compare August 5, 2026 01:16
@minyongP
minyongP merged commit 52bd195 into dev Aug 5, 2026
2 checks passed
@minyongP
minyongP deleted the chore/S15P11A705-320-place-thumbnail-webp branch August 5, 2026 01:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore 빌드·설정·잡무

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant