Skip to content

[SCRUM-293] 대한민국 판별 API 구현 (#140)#142

Merged
moonxxpower merged 5 commits intodevelopfrom
SCRUM-293-대한민국-판별-API-구현
Sep 23, 2025

Hidden character warning

The head ref may contain hidden characters: "SCRUM-293-\ub300\ud55c\ubbfc\uad6d-\ud310\ubcc4-API-\uad6c\ud604"
Merged

[SCRUM-293] 대한민국 판별 API 구현 (#140)#142
moonxxpower merged 5 commits intodevelopfrom
SCRUM-293-대한민국-판별-API-구현

Conversation

@moonxxpower
Copy link
Member

@moonxxpower moonxxpower commented Sep 20, 2025

✏️ 연관 이슈

#140

⛳ 작업 내용

  • 카카오 지도 좌표로 행정구역정보 변환 API 연동
  • 바운딩 박스 방식으로 필터링
  • 필터링 통과한 것만 카카오 지도 API 호출
  • 관련 테스트 코드 작성

💬리뷰 요구사항

  • 좌표를 주소를 변환하는 API는 주소가 등록된 일부 지역에 한함으로 행정구역으로 구분해 주소가 등록되지 않는 지역에 대해서도 결과값을 도출하는 행정구역 정보 반환 API를 새로 연동했습니다. 추후 해당 API로 수정해도 좋을 것 같은데, 어떻게 생각하시나요?
  • 총 2개(성공 2개)의 테스트 코드를 작성했습니다.

📍 참고사항

  • 해당 API의 경우, 중국, 일본, 북한 등 우리나라와 맞닿아 있는 곳에 한해 address_name으로 제공합니다.
{
    "meta": {
        "total_count": 2
    },
    "documents": [
        {
            "region_type": "B",
            "code": "90004",
            "address_name": "중국",
            "region_1depth_name": "",
            "region_2depth_name": "",
            "region_3depth_name": "",
            "region_4depth_name": "",
            "x": 118.93423891258752,
            "y": 42.3401103392924
        },
        {
            "region_type": "H",
            "code": "90004",
            "address_name": "중국",
            "region_1depth_name": "",
            "region_2depth_name": "",
            "region_3depth_name": "",
            "region_4depth_name": "",
            "x": 118.93423891258752,
            "y": 42.3401103392924
        }
    ]
}
  • 너무 먼 곳일 경우 아래와 같이 에러 메세지를 반환합니다. (예시로 러시아를 호출해보았을 떄)
{
    "code": -2,
    "msg": "The input parameter value is not in the service area"
}
  • 행정구역으로 구분함으로 주소 등록되지 않은 지역에 대해서도 해당 행정구역 확인 가능합니다. 해당 응답은 좌표에서 주소 변환하기 API를 호출했을 때 결과값이 나오지 않은 좌표입니다.
{
    "meta": {
        "total_count": 2
    },
    "documents": [
        {
            "region_type": "B",
            "code": "2650010300",
            "address_name": "부산광역시 수영구 민락동",
            "region_1depth_name": "부산광역시",
            "region_2depth_name": "수영구",
            "region_3depth_name": "민락동",
            "region_4depth_name": "",
            "x": 129.1254459421262,
            "y": 35.15726484072749
        },
        {
            "region_type": "H",
            "code": "2650080000",
            "address_name": "부산광역시 수영구 민락동",
            "region_1depth_name": "부산광역시",
            "region_2depth_name": "수영구",
            "region_3depth_name": "민락동",
            "region_4depth_name": "",
            "x": 129.1254459421262,
            "y": 35.15726484072749
        }
    ]
}

카카오 지도에서 제공하는 좌표로 행정구역 정보를 변환하는 API를 연동했습니다. 주소가 등록되지 않은 지역에서도 결과값을 도출할 수 있습니다.
사용자가 생성한 코스의 시작점, 경유지, 도착점 좌표가 대한민국 내에 있는지 검증하여, 대한민국이 아닌 코스 데이터를 필터링합니다. 아래와 같은 방식으로 동작합니다.

- 대한민국 경계 좌표를 통해 1차 필터링
- 통과한 좌표에 한해 카카오 지도 API를 통해 행정구역 정보를 조회
- 맞닿아 있는 해외에 한해 (일본, 중국, 북한 등) 응답이 옴으로 시도단위인 region_1depth_name 유무로 판별
@moonxxpower moonxxpower self-assigned this Sep 20, 2025
대한민국 판별 API의 서비스 메서드들에 대하여 테스트 코드를 구현하고 테스트를 진행했습니다. (성공 2개)
@moonxxpower moonxxpower requested a review from ssggii September 20, 2025 18:03
Copy link
Contributor

@ssggii ssggii left a comment

Choose a reason for hiding this comment

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

고생하셨습니다! 코멘트 확인 부탁드립니다😃

@ssggii
Copy link
Contributor

ssggii commented Sep 22, 2025

좌표를 주소를 변환하는 API는 주소가 등록된 일부 지역에 한함으로 행정구역으로 구분해 주소가 등록되지 않는 지역에 대해서도 결과값을 도출하는 행정구역 정보 반환 API를 새로 연동했습니다. 추후 해당 API로 수정해도 좋을 것 같은데, 어떻게 생각하시나요?

getAddressFromCoordinate에서 사용되고 있는 좌표로 주소 변환 API를 행정구역 변환 API로 교체하자는 말씀이실까요?

@ssggii ssggii added this to the #8-sprint milestone Sep 22, 2025
@ssggii ssggii moved this to In Progress in Runchuck-러닝한다이 Sep 22, 2025
@moonxxpower
Copy link
Member Author

moonxxpower commented Sep 23, 2025

넵! 정확도가 행정구역 분리 API가 더 높은 것 같아 건의드렸습니다:) 사실 코스 지역, 테마 판별 로직이 추후에 수정될 수 있을거 같아서 그때 수정해도 될 거 같습니다!

경계좌표를 상수로 선언해 관리 편의성을 증가시키고, 단일 좌표 판별 로직을 별도 메서드로 분리하여 재사용성을 향상시켰습니다. 추가적으로 allMatch를 사용해 false가 나오면 즉시 종료하게 만들어 불필요한 호출 횟수를 줄였습니다.
@moonxxpower moonxxpower merged commit 4db3cee into develop Sep 23, 2025
@github-project-automation github-project-automation bot moved this from In Progress to Done in Runchuck-러닝한다이 Sep 23, 2025
@moonxxpower moonxxpower deleted the SCRUM-293-대한민국-판별-API-구현 branch September 23, 2025 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants