Skip to content

feat: record 상세 응답에 place 썸네일(thumbnailUrl)을 추가한다 (시연용 목업) #182

Description

@minyongP

배경

record 상세(API 명세 11.1)에서 place 썸네일 이미지를 함께 내려준다. 카카오 로컬 API는 장소 사진을 제공하지 않으므로, 이번 단계는 시연용 목업이다: 백엔드 정적 리소스 이미지 몇 장을 두고 시연 대상 place에 SQL로 수동 연결한다. 실사진 수집(카카오 이미지 검색 API GET /v2/search/image)은 다음 단계이며, 이번에 만드는 컬럼·응답 계약을 그대로 재사용한다.

작업 내용

  • Flyway V7__place_thumbnail_url.sql: ALTER TABLE core.place ADD COLUMN thumbnail_url varchar(300); (nullable, 길이는 place_url 규약과 동일)
  • Place 엔티티에 thumbnailUrl 필드 + getter. create() 시그니처는 불변 — 생성 시점엔 항상 null이고 값은 시연 준비 SQL로만 채운다
  • PlaceSummaryResponsethumbnailUrl 필드 추가 (record 상세 11.1, by-place 5.3 등 이 DTO를 쓰는 응답에 자동 반영. null이어도 필드 생략하지 않음)
  • src/main/resources/static/images/places/에 무료 스톡(상업적 사용 가능) 이미지 4~6장 커밋 — WebP, 가로 1200px, 4:3 고정 비율, 장당 ≤100KB
  • 저장값 형식: context-path 포함 절대 경로 /api/core/images/places/<파일>.webp (프론트가 <img src>에 그대로 사용, 같은 origin이라 CORS 없음)

완료 조건

  • record 상세 응답의 placethumbnailUrl이 포함된다 (값 있음 / null 두 케이스 테스트)
  • 정적 이미지가 /api/core/images/places/*.webp로 서빙된다
  • 시연 준비 SQL(UPDATE core.place SET thumbnail_url = ... WHERE id = ...) 절차가 PR 본문에 기록된다

참고

  • 착수 시 Jira 티켓 발행 후 진행 (개인 워크플로우 규칙)
  • 문서: docs 레포 §2.3 place·§11.1 PlaceSummary 반영 PR 별도
  • front: 반응형 표시(aspect-ratio 4/3 + object-fit: cover)와 null/onError 폴백은 front 레포 이슈로 전달

Metadata

Metadata

Assignees

Labels

enhancement새 기능·개선 (feat)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions