제미나이와 함께 어플을 개발하는 중에 네이버 맵 API를 사용해야 하는 순간이 왔다.
네이버 클라우드 플랫폼에서 지도 API 사용 권한을 받아 키도 받아서 코드에 집어넣었는데 자꾸 인증되지 않은 사용자로 나와 구글링을 좀 많이 해보았다.
기존 코드
//main.dart 코드
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 1. 네이버 지도 초기화
await NaverMapSdk.instance.initialize(
clientId: mapClientId,
onAuthFailed: (ex) => print("지도 인증 실패: $ex"),
);
runApp(const FoundDuApp());
}
이게 제미나이가 써준 코드이다. 네이버 지도 API에 접속해 내 클라이언트 ID를 넘겨줘서 인증을 하는 듯 한데, 여기서 문제가 생기니 좌표를 찍어도 하얀 화면만 계속 나왔다. 구글링을 하다가 문득 flutter 공식 홈페이지를 찾아보게 됐다.
https://pub.dev/packages/flutter_naver_map
flutter_naver_map | Flutter package
Naver Map plugin for Flutter, which provides map service of Korea.
pub.dev

분명 나는 여기서 문제가 생겼을 것이라고 확신했다. 이것저것 다 찾아보고 다른 문서들도 찾아봤는데 해결을 못하고 있으니.. 겨우 인증키가 안먹히는 문제는 근본적으로 코드에 문제가 있다고 판단했다. 이후 공식문서 아래에 나와있는 코드로 변경했다.
//변경코드
await FlutterNaverMap().init(
clientId: 'o2tqhxht3d',
onAuthFailed: (ex) {
switch (ex) {
case NQuotaExceededException(:final message):
print("사용량 초과 (message: $message)");
break;
case NUnauthorizedClientException() ||
NClientUnspecifiedException() ||
NAnotherAuthFailedException():
print("인증 실패: $ex");
break;
}
});
runApp(const FoundDuApp());
}
공식 문서에 있는대로 작성하니 기존에 나오지않던 지도 화면이 딱 서울특별시 서울 시청으로 나왔다.
해결 완료!
나와 똑같이 Naver map API 사용 중 문제가 생긴 사람들에게 많은 도움이 되길 바란다.