Skip to content

CatchPro 고도화 10: Navi 주소 동기화와 지도 안정화

오늘 업데이트의 핵심은 CatchPro를 “오더를 빠르게 잡는 인성폰”과 “운행 중 주소와 지도를 계속 보는 지도네비폰”으로 더 분명하게 나누는 것이었습니다. 기본 기능을 약화시키지 않으면서, 여러 주소를 수행할 때 지도네비폰 쪽에서 현재 위치와 다음 목적지를 안정적으로 확인할 수 있게 다듬었습니다.

1. 완료 주소가 다시 살아나는 문제 차단

CatchPro Navi에서 주소를 완료 처리하면 해당 주소는 다시 동기화되어 되살아나면 안 됩니다. 오늘은 완료 처리된 주소를 tombstone처럼 기억하고, AWS snapshot이 늦게 도착하더라도 같은 주소가 다시 들어오면 빈 값으로 처리하도록 보강했습니다. 이로써 지도네비폰에서 완료한 주소가 인성폰에 다시 나타나는 흐름을 막았습니다.

2. Navi 기준 완료 처리와 인성폰 역할 정리

인성폰의 TMAP 연결 탭에서는 완료, 최적순서계산, 주소초기화처럼 운행 중 지도 조작에 가까운 기능을 비활성화했습니다. 완료 판단은 CatchPro Navi가 기준이 되고, Navi에서 완료한 주소가 AWS 동기화를 통해 인성폰에서도 정리되는 구조로 맞췄습니다.

3. 네이버 지도 안정화

Navi 화면의 지도는 운행 중 계속 켜두는 화면입니다. 그래서 지도 갱신 때 마커와 경로를 반복 생성하며 끊기는 부분을 줄이고, 현재 위치 마커와 다음 목적지 표시가 더 안정적으로 보이도록 다듬었습니다. 출발점은 실제 현재 위치 좌표를 기준으로 크게 표시하고, 다음 방문지는 점선 화살표 흐름으로 확인할 수 있게 했습니다.

4. 네이버 API 호출 캐시 적용

주소 지오코딩과 구간 예상거리/시간 계산은 반복 호출될 수 있습니다. 오늘은 동일 주소와 동일 좌표 조합에 대한 네이버 API 결과를 캐시해서 불필요한 재호출을 줄였습니다. 이 변경은 지도네비폰 반응성을 위한 것이고, 인성폰의 오더확정 루프와 분리되어 있어 확정 속도에 영향을 주지 않는 방향으로 넣었습니다.

5. 행정동 거리 확인 흐름 정리

운행 중 추가오더 후보를 볼 때 행정동만 보고도 대략적인 거리감을 잡고 싶다는 요구가 있었습니다. 행정동 입력 결과는 사용자의 현재 위치 기준 방문순서를 유지하면서, 가장 가까운 실제 목적지와 행정동 사이의 대략적인 직선거리 참고값을 보여주는 방향으로 정리했습니다. 목적은 “추가오더 후보가 현재 수행 흐름과 얼마나 가까운지”를 빠르게 판단하는 것입니다.

6. GitHub와 로컬 버전 관리

오늘 변경분은 GitHub의 hongsik-dev/Ai_Leader_Camp 저장소에 반영했습니다. 또한 로컬 C:\Users\misoh\TTJ\catchpro 폴더도 첫 커밋을 만들어 로컬에서 바로 변경 이력을 관리할 수 있게 했습니다.

  • GitHub 커밋: ea738c7Update CatchPro Navi sync and map stability
  • 로컬 커밋: f52690dInitial CatchPro local baseline

검증

인성폰 APK와 Navi APK 모두 빌드 및 단위 테스트를 통과했습니다.

  • ./gradlew :app:assembleInsungDebug :app:assembleNaviDebug
  • ./gradlew :app:testInsungDebugUnitTest :app:testNaviDebugUnitTest

오늘 업데이트는 새 기능을 더 붙이는 것보다, 실제 운행 중 주소 동기화가 꼬이지 않게 하고 지도네비폰을 오래 켜두어도 안정적으로 보이게 하는 데 초점을 맞췄습니다. 오더확정 속도는 계속 최우선 기준으로 두고, 지도 기능은 Navi 앱 쪽으로 분리해서 가져가는 방향을 유지합니다.