1인앱개발도전기/고난과역경

[에러코드해결]NUnauthorizedClientException(code: 401, message: [401] Unauthorized client) 네이버 맵 API 에러 코드 해결

earlykim 2026. 2. 4. 01:01

제미나이와 함께 어플을 개발하는 중에 네이버 맵 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 사용 중 문제가 생긴 사람들에게 많은 도움이 되길 바란다.