Skip to content

[Location] 카카오 모빌리티 api 연동 완료#159

Merged
Creamcheesepie merged 7 commits into
mainfrom
feat/#133
Dec 23, 2025
Merged

[Location] 카카오 모빌리티 api 연동 완료#159
Creamcheesepie merged 7 commits into
mainfrom
feat/#133

Conversation

@tobbot16

@tobbot16 tobbot16 commented Dec 21, 2025

Copy link
Copy Markdown
Collaborator

🔗 관련 이슈

관련된 이슈 번호를 연결해주세요.
Close #이슈번호 를 쓰면 PR merge 시 자동으로 close 됩니다.

🚀 PR 개요

이 PR이 어떤 변경을 포함하고 있는지 간단히 설명해주세요.

  • 카카오 모빌리티 api (자동차 경로) 연동 완료
  • 기존의 WebClient에서 RestClient로 변경

📌 변경 사항

주요 변경 내용을 체크리스트 형태로 정리해주세요.

  • 기능 추가
  • 버그 수정
  • 리팩터링
  • 문서 업데이트
  • 테스트 추가/수정

🧪 테스트 방법

변경된 내용을 어떻게 테스트했는지 구체적으로 적어주세요.

  1. 출발 좌표, 도착 좌표를 입력하면 자동차 경로가 나옵니다

📸 스크린샷 (선택)

UI 변경 또는 시각적으로 확인할 수 있는 변경이 있다면 첨부해주세요.

⚠️ 참고 사항

리뷰어가 알아야 할 사항이 있다면 자유롭게 작성해주세요.

  • swagger, 테스트코드 는 추후 작성하겠습니다
  • tmap 추천경로와 카카오 추천경로 응답값을 통일하려고 합니다.

@github-actions

github-actions Bot commented Dec 21, 2025

Copy link
Copy Markdown

Test Results

6 tests  ±0   6 ✅ ±0   0s ⏱️ -1s
3 suites ±0   0 💤 ±0 
3 files   ±0   0 ❌ ±0 

Results for commit d2e73fe. ± Comparison against base commit 28839d8.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Dec 21, 2025

Copy link
Copy Markdown

⭐ JaCoCo Coverage

Line Coverage: 6.74%

📄 Coverage Details

Overall Line Coverage: 6.70% (190 covered / 2835 lines)

Package Summary (lowest first)
Package Line % Covered Missed
com/back/web7_9_codecrete_be/domain/chats/controller 0.00% 0 2
com/back/web7_9_codecrete_be/domain/chats/service 0.00% 0 38
com/back/web7_9_codecrete_be/domain/plans/controller 0.00% 0 43
com/back/web7_9_codecrete_be/domain/location/controller 0.00% 0 40
com/back/web7_9_codecrete_be/global/rsData 0.00% 0 11
com/back/web7_9_codecrete_be/domain/chats/entity 0.00% 0 4
com/back/web7_9_codecrete_be/domain/location/entity 0.00% 0 15
com/back/web7_9_codecrete_be/global/scheduler 0.00% 0 3
com/back/web7_9_codecrete_be/domain/auth/entity 0.00% 0 0
com/back/web7_9_codecrete_be/domain/auth/service 0.00% 0 136
com/back/web7_9_codecrete_be/domain/plans/service 0.00% 0 311
com/back/web7_9_codecrete_be/global/initData 0.00% 0 51
com/back/web7_9_codecrete_be/domain/users/controller 0.00% 0 26
com/back/web7_9_codecrete_be/domain/email/entity 0.00% 0 6
com/back/web7_9_codecrete_be/domain/auth/controller 0.00% 0 24
com/back/web7_9_codecrete_be/domain/artists/controller 0.00% 0 27
com/back/web7_9_codecrete_be/global/aspect 0.00% 0 4
com/back/web7_9_codecrete_be/global/wikidata 0.36% 1 279
com/back/web7_9_codecrete_be/domain/artists/service 0.76% 3 390
com/back/web7_9_codecrete_be/domain/users/service 0.97% 1 102
com/back/web7_9_codecrete_be/global/musicbrainz 0.99% 1 100
com/back/web7_9_codecrete_be/domain/email/service 1.61% 1 61
com/back/web7_9_codecrete_be/domain/concerts/entity 3.33% 3 87
com/back/web7_9_codecrete_be/domain/concerts/controller 3.45% 1 28
com/back/web7_9_codecrete_be/global/storage 3.57% 2 54
com/back/web7_9_codecrete_be/domain/concerts/service 5.12% 24 445
com/back/web7_9_codecrete_be/domain/artists/entity 8.33% 4 44
com/back/web7_9_codecrete_be/global/rq 10.87% 5 41
com/back/web7_9_codecrete_be/domain/users/util 14.29% 1 6
com/back/web7_9_codecrete_be/domain/users/entity 23.08% 12 40
com/back/web7_9_codecrete_be/domain/plans/entity 24.14% 21 66
com/back/web7_9_codecrete_be/global/security 27.62% 29 76
com/back/web7_9_codecrete_be/global/spotify 35.71% 5 9
com/back/web7_9_codecrete_be/domain/location/service 43.70% 59 76
com/back/web7_9_codecrete_be/global/doc 100.00% 17 0
Lowest Covered Classes (Top 20)
Class Line % Covered Missed
com.back.web7_9_codecrete_be.domain.plans.service.PlanService 0.00% 0 311
com.back.web7_9_codecrete_be.domain.artists.service.ArtistService 0.00% 0 78
com.back.web7_9_codecrete_be.domain.auth.service.AuthService 0.00% 0 73
com.back.web7_9_codecrete_be.domain.concerts.service.ConcertService 0.00% 0 63
com.back.web7_9_codecrete_be.global.initData.BaseInitData 0.00% 0 51
com.back.web7_9_codecrete_be.domain.plans.controller.PlanController 0.00% 0 43
com.back.web7_9_codecrete_be.domain.concerts.entity.Concert 0.00% 0 40
com.back.web7_9_codecrete_be.domain.plans.entity.Schedule 0.00% 0 37
com.back.web7_9_codecrete_be.global.security.JwtTokenProvider 0.00% 0 37
com.back.web7_9_codecrete_be.domain.users.entity.User 0.00% 0 31
com.back.web7_9_codecrete_be.domain.artists.entity.Artist 0.00% 0 31
com.back.web7_9_codecrete_be.domain.location.service.LocationService 0.00% 0 30
com.back.web7_9_codecrete_be.domain.concerts.entity.ConcertPlace 0.00% 0 29
com.back.web7_9_codecrete_be.domain.location.controller.KakaoApiController 0.00% 0 29
com.back.web7_9_codecrete_be.domain.chats.service.ChatPolicyService 0.00% 0 27
com.back.web7_9_codecrete_be.domain.auth.service.TokenService 0.00% 0 27
com.back.web7_9_codecrete_be.domain.artists.controller.ArtistsController 0.00% 0 27
com.back.web7_9_codecrete_be.domain.users.controller.UserController 0.00% 0 26
com.back.web7_9_codecrete_be.domain.auth.controller.AuthController 0.00% 0 24
com.back.web7_9_codecrete_be.global.storage.S3FileStorageService 0.00% 0 23
Changed Classes (from this PR)
Source (PR) Class Prefix Line % Covered Missed
src/main/java/com/back/web7_9_codecrete_be/domain/auth/service/AuthService.java com.back.web7_9_codecrete_be.domain.auth.service.AuthService 0.00% 0 73
src/main/java/com/back/web7_9_codecrete_be/domain/location/service/LocationService.java com.back.web7_9_codecrete_be.domain.location.service.LocationService 0.00% 0 30
src/main/java/com/back/web7_9_codecrete_be/domain/location/controller/KakaoApiController.java com.back.web7_9_codecrete_be.domain.location.controller.KakaoApiController 0.00% 0 29
src/main/java/com/back/web7_9_codecrete_be/domain/users/controller/UserController.java com.back.web7_9_codecrete_be.domain.users.controller.UserController 0.00% 0 26
src/main/java/com/back/web7_9_codecrete_be/global/storage/ImageMimeType.java com.back.web7_9_codecrete_be.global.storage.ImageMimeType 0.00% 0 14
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/controller/ConcertAdminController.java com.back.web7_9_codecrete_be.domain.concerts.controller.ConcertAdminController 0.00% 0 13
src/main/java/com/back/web7_9_codecrete_be/domain/users/entity/UserSetting.java com.back.web7_9_codecrete_be.domain.users.entity.UserSetting 0.00% 0 9
src/main/java/com/back/web7_9_codecrete_be/domain/location/controller/TmapApiController.java com.back.web7_9_codecrete_be.domain.location.controller.TmapApiController 0.00% 0 2
src/main/java/com/back/web7_9_codecrete_be/domain/auth/dto/response/LoginResponse.java com.back.web7_9_codecrete_be.domain.auth.dto.response.LoginResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/dto/concert/ConcertTicketTimeSetRequest.java com.back.web7_9_codecrete_be.domain.concerts.dto.concert.ConcertTicketTimeSetRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/dto/concert/ConcertUpdateRequest.java com.back.web7_9_codecrete_be.domain.concerts.dto.concert.ConcertUpdateRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/location/dto/request/TmapRequest.java com.back.web7_9_codecrete_be.domain.location.dto.request.TmapRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/location/dto/request/TmapSummaryRequest.java com.back.web7_9_codecrete_be.domain.location.dto.request.TmapSummaryRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/location/dto/response/KakaoLocalResponse.java com.back.web7_9_codecrete_be.domain.location.dto.response.KakaoLocalResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/location/dto/response/KakaoMobilityResponse.java com.back.web7_9_codecrete_be.domain.location.dto.response.KakaoMobilityResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/location/dto/response/KakaoRouteTransitResponse.java com.back.web7_9_codecrete_be.domain.location.dto.response.KakaoRouteTransitResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/location/dto/response/TmapSummaryAllResponse.java com.back.web7_9_codecrete_be.domain.location.dto.response.TmapSummaryAllResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/location/dto/response/TmapSummaryResponse.java com.back.web7_9_codecrete_be.domain.location.dto.response.TmapSummaryResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/users/dto/request/UserSettingUpdateRequest.java com.back.web7_9_codecrete_be.domain.users.dto.request.UserSettingUpdateRequest 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/users/dto/response/UserResponse.java com.back.web7_9_codecrete_be.domain.users.dto.response.UserResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/users/dto/response/UserSettingResponse.java com.back.web7_9_codecrete_be.domain.users.dto.response.UserSettingResponse 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/users/repository/UserSettingRepository.java com.back.web7_9_codecrete_be.domain.users.repository.UserSettingRepository 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/global/config/WebClientConfig.java com.back.web7_9_codecrete_be.global.config.WebClientConfig 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/global/error/code/FileErrorCode.java com.back.web7_9_codecrete_be.global.error.code.FileErrorCode 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/global/error/code/LocationErrorCode.java com.back.web7_9_codecrete_be.global.error.code.LocationErrorCode 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/global/error/code/UserErrorCode.java com.back.web7_9_codecrete_be.global.error.code.UserErrorCode 0.00% 0 0
src/main/java/com/back/web7_9_codecrete_be/domain/users/service/UserService.java com.back.web7_9_codecrete_be.domain.users.service.UserService 1.01% 1 98
src/main/java/com/back/web7_9_codecrete_be/domain/concerts/controller/ConcertController.java com.back.web7_9_codecrete_be.domain.concerts.controller.ConcertController 6.25% 1 15
src/main/java/com/back/web7_9_codecrete_be/domain/users/entity/User.java com.back.web7_9_codecrete_be.domain.users.entity.User 9.09% 4 40
src/main/java/com/back/web7_9_codecrete_be/global/storage/ImageFileValidator.java com.back.web7_9_codecrete_be.global.storage.ImageFileValidator 10.53% 2 17
src/main/java/com/back/web7_9_codecrete_be/domain/location/service/KakaoLocalService.java com.back.web7_9_codecrete_be.domain.location.service.KakaoLocalService 51.81% 43 40
src/main/java/com/back/web7_9_codecrete_be/domain/location/service/TmapService.java com.back.web7_9_codecrete_be.domain.location.service.TmapService 72.73% 16 6

🔗 Full HTML report: See artifact jacoco-full-html on this run → https://github.com/prgrms-web-devcourse-final-project/WEB7_9_codecrete_BE/actions/runs/20425625308

@tobbot16 tobbot16 changed the title Feat/#133 [Location] 카카오 모빌리티 api 연동 완료 Dec 21, 2025

@kms152000 kms152000 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다~

@larama-C larama-C left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

@Bean
public WebClient TmapClient(){
return WebClient.builder()
public RestClient TmapRestClient(){

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

컨벤션상 메소드명 첫글자는 소문자로 바꾸는게 좋을 것 같습니다!

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 넵 감사합니다! 바로 수정하겠습니다

@Creamcheesepie Creamcheesepie left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

수고하셨습니다!

private String tmapBaseUrl;

@Value("https://apis-navi.kakaomobility.com")
private String kakaoMobilityUrl;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

위의 tmap이랑 같은 처리로 하시면 좋을 것 같습니다.

private final RestClient kakaoMobilityClient;

public List<KakaoLocalResponse.Document> searchNearbyRestaurants(double lat, double lng) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

추후 확장을 고려하여 query, categoryGroupCode를 enum 타입으로 처리하고, searchNearbyPlaces 같은 메소드�공통처리를 하는 것도 좋을 것 같습니다.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 알겠습니다! 감사합니다!

@Creamcheesepie Creamcheesepie merged commit 9330819 into main Dec 23, 2025
2 checks passed
@Creamcheesepie Creamcheesepie deleted the feat/#133 branch December 23, 2025 01:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Location] 카카오 길찾기 api 연동 및 WebClient -> RestClient 로 변경

5 participants