Skip to content

🚀 Deploy 20260118-v1.0.1#15

Merged
Cassiiopeia merged 5 commits intodeployfrom
main
Jan 18, 2026
Merged

🚀 Deploy 20260118-v1.0.1#15
Cassiiopeia merged 5 commits intodeployfrom
main

Conversation

@Cassiiopeia
Copy link
Contributor

@Cassiiopeia Cassiiopeia commented Jan 18, 2026

Summary by CodeRabbit

  • 새로운 기능

    • Geocoding API 엔드포인트 추가 - 주소를 좌표(위도/경도)로 변환
    • 카카오맵 및 Nominatim 제공자 지원
    • 다중 제공자 자동 폴백 기능
    • 장소 정보의 누락된 좌표 자동 채우기
  • 업데이트

    • 버전 1.0.1 출시

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

@coderabbitai
Copy link

coderabbitai bot commented Jan 18, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

지오코딩 기능을 구현하는 새로운 API 엔드포인트, 서비스 계층, 데이터 모델을 추가했습니다. Kakao 및 Nominatim 제공자를 지원하며, HTTP 요청 유틸리티와 설정을 통합했고 Naver 지도 스크래퍼에 폴백 지오코딩을 추가했습니다.

Changes

Cohort / File(s) 변경 사항
API 라우터
src/apis/geocoding_router.py, src/apis/test_router.py
POST /api/geocode 및 POST /api/test/geocode 엔드포인트 추가. API 키 검증, 요청 로깅, 지오코딩 서비스 호출, CustomError를 HTTP 404로 처리.
지오코딩 서비스
src/services/geocoding_service.py
GeocodingResult 데이터클래스와 geocode_with_kakao(), geocode_with_nominatim(), geocode_with_fallback() 함수 추가. Kakao 우선 시도 후 Nominatim으로 폴백.
데이터 모델
src/models/geocoding_models.py
GeocodingProvider 열거형, GeocodingRequest, GeocodingTestRequest, GeocodingResponse 모델 추가. 주소와 제공자 선택 지원.
설정 및 통합
src/core/config.py, src/main.py
KAKAO_REST_API_KEY 설정 추가, extra="ignore" 옵션 추가. 지오코딩 라우터 FastAPI 앱에 등록.
HTTP 유틸리티
src/utils/common.py
DEFAULT_HTTP_TIMEOUT 상수 및 http_get_json() 비동기 함수 추가. httpx 예외를 CustomError로 변환.
기존 기능 통합
src/services/scraper/platforms/naver_map_scraper.py
geocode_with_fallback() 호출 추가로 좌표 누락 시 지오코딩 수행. 로그 단계를 [7/7]에서 [8/8]로 업데이트.
문서 및 버전
CLAUDE.md, version.yml
공통 유틸리티 사용 가이드, KAKAO_REST_API_KEY 환경변수 설명 추가. 버전 0.1.3 → 1.0.1로 업데이트.

Sequence Diagram(s)

sequenceDiagram
    participant Client
    participant FastAPI as FastAPI App
    participant Auth as verify_api_key
    participant Service as geocoding_service
    participant Kakao as Kakao API
    participant Nominatim as Nominatim API

    Client->>FastAPI: POST /api/geocode<br/>{address, api_key}
    FastAPI->>Auth: verify_api_key(api_key)
    Auth-->>FastAPI: ✓ api_key valid
    FastAPI->>Service: geocode_with_kakao(address)
    Service->>Kakao: GET /v2/local/search/address
    alt Kakao Success
        Kakao-->>Service: {documents: [...]}
        Service-->>FastAPI: GeocodingResult(lat, lon, "kakao")
    else Kakao Fail
        Kakao-->>Service: empty or error
        Service->>Service: raise CustomError
        Service->>FastAPI: CustomError
    end
    FastAPI-->>Client: GeocodingResponse{address, latitude,<br/>longitude, provider}
Loading
sequenceDiagram
    participant Service as geocoding_service
    participant Kakao as Kakao API
    participant Nominatim as Nominatim API

    Service->>Kakao: geocode_with_kakao(address)
    alt Kakao Success
        Kakao-->>Service: GeocodingResult(lat, lon, "kakao")
        Service-->>Service: return result
    else Kakao Fail
        Kakao-->>Service: CustomError
        Service->>Nominatim: geocode_with_nominatim(address)
        alt Nominatim Success
            Nominatim-->>Service: GeocodingResult(lat, lon, "nominatim")
            Service-->>Service: return result
        else Nominatim Fail
            Nominatim-->>Service: CustomError
            Service-->>Service: return None
        end
    end
Loading
sequenceDiagram
    participant Scraper as naver_map_scraper
    participant Service as geocoding_service
    participant GeoAPI as Kakao/Nominatim API

    Scraper->>Scraper: Extract info from page
    Scraper->>Scraper: Check lat/lon fields
    alt lat or lon is None
        Scraper->>Service: geocode_with_fallback(address)
        Service->>GeoAPI: Call Kakao (fallback to Nominatim)
        GeoAPI-->>Service: GeocodingResult or None
        Service-->>Scraper: GeocodingResult | None
        Scraper->>Scraper: Update lat/lon if successful
    else lat and lon exist
        Scraper->>Scraper: Use existing coordinates
    end
    Scraper->>Scraper: Create NaverPlaceInfo with coordinates
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • 🚀 Deploy 20260118-v0.1.3 #13: NaverMapScraper 흐름을 수정하여 geocode_with_fallback을 호출하고 누락된 좌표를 채우는 기능을 직접적으로 구현합니다.

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

@Cassiiopeia
Copy link
Contributor Author

@coderabbitai summary

@Cassiiopeia Cassiiopeia changed the title deploy 🚀 Deploy 20260118-v1.0.1 Jan 18, 2026
@coderabbitai
Copy link

coderabbitai bot commented Jan 18, 2026

✅ Actions performed

Summary regeneration triggered.

@github-actions
Copy link

✅ 변경사항이 자동으로 deploy 브랜치에 적용되었습니다. PR을 수동으로 닫아주세요.

@Cassiiopeia Cassiiopeia merged commit a723f24 into deploy Jan 18, 2026
1 check passed
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.

2 participants