Skip to content

✨Feat: 반경 내 지도 마커 목록 api#30

Merged
angoroa merged 1 commit intodevelopfrom
feat/facility
Jan 27, 2026
Merged

✨Feat: 반경 내 지도 마커 목록 api#30
angoroa merged 1 commit intodevelopfrom
feat/facility

Conversation

@angoroa
Copy link
Copy Markdown
Member

@angoroa angoroa commented Jan 27, 2026

#️⃣ Issue Number

  • closed #

📝 요약(Summary)

  • 내 위치 주변 체육시설(지도 내 마커 표시 전용 api)
  • Projection으로 분리
  • swagger 어노테이션 추가

🛠️ PR 유형

어떤 변경 사항이 있나요?

  • 새로운 기능 추가
  • 버그 수정
  • CSS 등 사용자 UI 디자인 변경
  • 코드에 영향을 주지 않는 변경사항(오타 수정, 탭 사이즈 변경, 변수명 변경)
  • 코드 리팩토링
  • 주석 추가 및 수정
  • 문서 수정
  • 테스트 추가, 테스트 리팩토링
  • 빌드 부분 혹은 패키지 매니저 수정
  • 파일 혹은 폴더명 수정
  • 파일 혹은 폴더 삭제

📸스크린샷 (선택)

💬 공유사항 to 리뷰어

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • 커밋 메시지 컨벤션에 맞게 작성했습니다.
  • 변경 사항에 대한 테스트를 했습니다.(버그 수정/기능에 대한 테스트).

Summary by CodeRabbit

릴리스 노트

  • Refactor
    • 스포츠 시설 조회 API의 메서드 시그니처를 개선했습니다. 다중 쿼리 파라미터 대신 통합된 요청 객체를 사용하도록 변경되어 요청 유효성 검사와 API 문서화가 강화되었습니다.

✏️ Tip: You can customize this high-level summary in your review settings.

@angoroa angoroa merged commit 9ae6d18 into develop Jan 27, 2026
1 check was pending
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Jan 27, 2026

Caution

Review failed

The pull request is closed.

개요

이 PR은 스포츠 시설 위치 기반 API를 리팩토링하여 여러 기본 쿼리 파라미터를 요청 DTO(FacilityNearRequest, FacilityMarkerRequest)로 통합하고, 스웨거 문서화가 추가된 응답 DTO를 도입하며, 새로운 마커 조회 기능을 데이터베이스 프로젝션과 함께 추가했습니다.

변경 사항

집합 / 파일(s) 변경 요약
컨트롤러 API 구조
src/main/java/com/be/sportizebe/domain/facility/controller/SportsFacilityController.java
메서드 시그니처 업데이트: nearmarkers 메서드가 기본 파라미터 목록에서 요청 DTO(FacilityNearRequest, FacilityMarkerRequest)로 변경; @ParameterObject @Valid @ModelAttribute`` 추가; 클래스 레벨에 @Tag, `@Validated` 및 메서드 레벨에 `@Operation` 주석 추가
요청 DTO
src/main/java/com/be/sportizebe/domain/facility/dto/request/FacilityNearRequest.java, src/main/java/com/be/sportizebe/domain/facility/dto/request/FacilityMarkerRequest.java
새로운 요청 DTO 클래스 추가: 위도, 경도, 반경, 제한, 타입 필드 포함; 검증 제약조건(@NotNull, @DecimalMin/@Max, @Min/@Max) 및 스웨거 @Schema 주석 포함; 기본값 설정됨
응답 DTO
src/main/java/com/be/sportizebe/domain/facility/dto/response/FacilityNearResponse.java, src/main/java/com/be/sportizebe/domain/facility/dto/response/FacilityMarkerResponse.java
기존 응답 DTO를 /response 디렉토리로 이동 및 스웨거 주석 강화; FacilityNearResponse는 ID, 이름, 소개, 썸네일, 타입, 거리 포함; FacilityMarkerResponse는 ID, 이름, 타입, 좌표, 거리 포함
리포지토리 프로젝션
src/main/java/com/be/sportizebe/domain/facility/repository/projection/FacilityNearProjection.java, src/main/java/com/be/sportizebe/domain/facility/repository/projection/FacilityMarkerProjection.java
새로운 프로젝션 인터페이스 추가: FacilityNearProjectionFacilityMarkerProjection 각각 정의; 쿼리 결과의 타입화된 부분 집합 접근 제공
리포지토리 메서드
src/main/java/com/be/sportizebe/domain/facility/repository/SportsFacilityRepository.java
JpaRepository에서 Repository로 인터페이스 변경; 새로운 findMarkersNear 메서드 추가; findNear 메서드의 radiusM 파라미터 타입을 long에서 int로 변경
매퍼 유틸리티
src/main/java/com/be/sportizebe/domain/facility/mapper/FacilityMapper.java
toMarkerResponse(FacilityMarkerProjection) 메서드 추가; toNearResponse 메서드 시그니처 업데이트 (가시성 제거); 새로운 응답 DTO 임포트 추가
서비스 레이어
src/main/java/com/be/sportizebe/domain/facility/service/SportsFacilityService.java
getNear 메서드 시그니처 변경: 기본 파라미터에서 FacilityNearRequest로; 새로운 getMarkers(FacilityMarkerRequest) 메서드 추가; 요청 객체에서 타입 도출 및 매퍼를 통한 응답 매핑 수행

예상 코드 리뷰 노력

🎯 3 (중간) | ⏱️ ~25분

관련 가능성 있는 PR

🐰 Parameters now packed in request DTO glory,
Markers mapped with projection's story,
Validation blooms where chaos once flew,
The API dances in refactored hue! ✨
Clean contracts from handler to persistence true! 🎯

✨ Finishing touches
  • 📝 Generate docstrings

Comment @coderabbitai help to get the list of available commands and usage tips.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant