- 주소는 나왔는데 네이버 검색 결과가 없을 때
위도/경도로 주소를 잘 받아왔고, 네이버 지역 검색 API도 붙였는데... 검색 결과가 비어 있음! 아무것도 안 뜸!
❗ 문제 상황
- VWorld API를 통해 주소를 잘 받아옴
- 서울특별시 중구 태평로1가 31
- 하지만 네이버 지역 검색 API 호출 결과는 빈 배열 []
- 화면에는 아무것도 안 나타남 (리스트가 비어 있어서)
원인
네이버 검색 API는 도로명 주소보다 '장소 이름' 중심으로 작동합니다.
예를 들어, 스타벅스, 서울역, 강남역 같은 상호명/지명에는 잘 작동하지만, 서울특별시 중구 태평로1가 31 같은 정확한 주소로는 검색 결과가 없을 수 있습니다.
✅ 해결 방법
1. 주소를 '시 + 구' 정도로 잘라서 검색어로 사용하기
String fullAddress = "서울특별시 중구 태평로1가 31";
String keyword = fullAddress.split(" ").take(2).join(" "); // → '서울특별시 중구'
await ref.read(locationProvider.notifier).search(keyword);
→ 이렇게 하면 장소 밀집 지역 단위로 검색되어 결과가 뜰 확률이 매우 높아집니다.
2. 실제 테스트 로그 예시
flutter: 내 주소: 서울특별시 중구 태평로1가 31
flutter: 네이버 검색 결과 : []
→ 태평로1가 31은 건물 주소라서 검색 결과가 없던 것
→ 검색어를 서울 중구로 줄이자 결과가 나옴
✅ 코드 예시 (searchByLocation 함수 내 적용)
Future<void> searchByLocation(WidgetRef ref) async {
try {
final position = await getCurrentPosition();
final address = await getAddressFromLatLng(position.latitude, position.longitude);
// 주소를 일부만 검색어로 사용
final keyword = address.split(" ").take(2).join(" ");
await ref.read(locationProvider.notifier).search(keyword);
} catch (e) {
print('위치 기반 검색 실패: $e');
}
}
✅ 마무리
- 네이버 검색 API는 장소 중심이기 때문에 주소 그대로 넣으면 결과가 없을 수 있습니다.
- 시 + 구 정도로 줄여서 검색하면 결과가 잘 나옵니다.
- 검색 결과가 비어도 앱은 오류가 없으니, 디버깅이 더 어렵게 느껴졌습니다.
'flutter앱개발과정' 카테고리의 다른 글
Flutter 버전 업데이트 방법 (0) | 2025.04.28 |
---|---|
flutter_naver_map 초기 설정 방법 (1) | 2025.04.25 |
위치 검색 앱 -트러블 슈팅(위도 경도 위치가 외국으로 나옴) (1) | 2025.04.22 |
위치검색앱 - 트러블슈팅(Geolocator 패키지사용, 위치 권한 팝업 안뜸) (0) | 2025.04.22 |
Json 직렬화 역직렬화 (0) | 2025.04.11 |