Skip to content

feat(S15P11A705-308): 지도 마커 응답에 가장 최근에 담긴 컬렉션 id를 더한다 - #191

Open
minyongP wants to merge 1 commit into
devfrom
feat/S15P11A705-308-map-marker-latest-collection
Open

feat(S15P11A705-308): 지도 마커 응답에 가장 최근에 담긴 컬렉션 id를 더한다#191
minyongP wants to merge 1 commit into
devfrom
feat/S15P11A705-308-map-marker-latest-collection

Conversation

@minyongP

@minyongP minyongP commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

무엇

GET /v1/records/map 응답 items의 각 마커에 latestCollectionId를 더한다.

  • 값은 그 Record가 담긴 활성 연결(collection_record) 중 담은 시각 최신(created_at DESC, 동시각이면 id DESC) 기준 Collection id — 컬렉션 내부 정렬(데이터모델 2.7)과 같은 기준이다.
  • 어느 컬렉션에도 담기지 않은 Record는 null, 컬렉션에서 뺀(소프트 삭제) 연결은 판단에서 제외.
  • bbox·keyword 경로 모두 질의 이후 한 지점에서 채우므로 경로별 분기가 없다.

프론트가 지도 마커 색상을 레코드가 담긴 컬렉션 기준으로 구분한다. 명세 개정: Team-PinLog/docs#48 (08 §4.2).

cc @tpals0409 @TrossYou — 마커 색상 구분용 필드가 응답에 추가됩니다. 응답 예시:

{ "recordId": 8801, "placeId": 5501, "name": "앤트러사이트 성수", "lat": 37.5447, "lng": 127.0557, "latestCollectionId": 7001 }

어떻게

  • RecordLatestCollectionRepository 신설 — DISTINCT ON으로 record별 최신 1건을 한 번에 모은다(마커별 반복 조회는 N+1). native라 @SQLRestriction 밖이므로 deleted_at IS NULL을 직접 적었고, 제거 링크 제외를 테스트로 고정했다.
  • MapMarkerResponse에 6번째 컴포넌트 latestCollectionId 추가. 마커 JPQL은 5-인자 보조 생성자를 그대로 쓴다.

검증

  • RecordMapApiTests 20/20 통과 (신규 4: 최신 컬렉션 id·미소속 null·제거 링크 제외·bbox 경로).
  • checkstyle 통과.
  • 전체 스위트에서 FeedChannelPlanTests 2건이 실패하나, origin/dev 기준선에서도 동일하게 재현된다(단독 실행은 통과 — 전체 실행 시 플래너 계획이 Incremental Sort를 버리는 순서/통계 의존). 이 브랜치와 무관한 기존 문제로, 별도 추적 예정. CI에서는 통과.

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement 새 기능·개선 (feat)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant