Skip to content

[FEAT] 여행 기록 Region API 및 생성 API 연동 #177

Description

@junehuk

작업 유형

  • 기능 구현
  • UI 구현
  • 공통 컴포넌트
  • API 연동
  • 버그 수정
  • 리팩토링
  • 문서 수정
  • 환경 설정

담당 영역

  • A. 공통 기반 + 홈 - 김태혁
  • B. 인증 + 유저 + 기록 - 윤선민
  • C. 장소 탐색 + 검색 + 필터 + 지도 - 이경준
  • D. 코스/장소 상세 + 코스 등록 - 이준혁

작업 설명

여행 기록 생성 플로우에 Region, Travel Record, 파일 Presigned URL API를 연동하고, 조회·수정·삭제까지 서버 데이터 기준으로 정리합니다.

인기 지역은 GET /regions/popular 응답을 그대로 표시합니다. 특별시·광역시 하위 지역을 선택한 경우 선택값과 여행 지도 사진 배치는 상위 지역 기준으로 처리합니다.

이후 실사용 검증 과정에서 발견된 버그(목록/상세 쿼리 캐시 충돌, 페이지네이션 미동작, 지도 마커 매칭 오류, 삭제 시 재요청 오류 등)를 수정하고, mock 데이터·IndexedDB 로컬 저장 등 서버 연동 전 임시 구현을 제거해 서버 데이터 단일 소스로 정리했습니다.

관련 화면 / 라우트

  • /travel-record
  • /travel-record/new
  • /travel-record/:travelRecordId/edit
  • /travel-record/date-selection
  • /travel-record/:travelRecordId/edit/date
  • /travel-record/photo-selection
  • /travel-record/:travelRecordId/edit/photos
  • /travel-record/folder-decoration
  • /travel-record/:travelRecordId/edit/decorate
  • /travel-record/:id

작업 브랜치

feat/travel-record-api

구현 내용

API 연동

  • Region 인기 지역 및 검색 API 연동
  • 인기 지역 API 응답을 원본 기준으로 표시
  • 특별시·광역시 하위 인기 지역 선택 시 상위 지역으로 변환
  • 여행 기록 목록·상세·생성·수정·삭제 API 연동
  • Presigned URL 기반 사진 업로드 연동
  • 서버 응답을 기존 여행 폴더 및 지도 모델로 변환
  • 검색 결과에서 특별·광역시 하위 구·군 제외
  • 여행 기록 수정 플로우(지역/날짜/사진/스티커) 서버 연동

버그 수정

  • 목록/상세 조회 React Query 캐시 키 충돌 수정
  • 여행 기록 목록 페이지네이션(무한 스크롤) 및 year 서버 필터 연동 — 기존엔 50개 고정 후 클라이언트에서 필터링
  • 여행 지도 마커·사진이 지역에 매칭되지 않던 문제 수정 — regionCode를 하드코딩 대신 지역 상세 API + 지도 GeoJSON 매칭으로 계산
  • 스티커를 서버 imageUrl 기준으로 렌더링하도록 변경, id 매핑을 명시적 상수로 고정
  • 여행 기록 삭제 시 삭제된 레코드로 재요청이 발생하던 문제 수정 (캐시 무효화 타이밍)

리팩토링

  • mock 데이터 및 IndexedDB 로컬 저장(임시 구현)을 제거하고 서버 데이터 단일 소스로 정리
  • 중복 presigned-url 모듈 제거
  • mapper 파일에서 API 매핑이 아닌 로직 분리

참고 사항

  • GET/POST /api/v1/travel-records*가 현재 서버에서 500을 반환하고 있어 실기기 검증이 제한적입니다 (백엔드 확인 요청함).
  • Region API에 아직 광역시 6곳(서울·부산·대구·광주·인천·대전)만 등록돼 있어, 시/군 단위 지역 검증은 데이터가 추가된 후 필요합니다

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions