NAVER Map을 이용하여 Android App을 만들어 보려고 합니다.  Google Map을 이용하여 안드로이드 앱을 만들어 보았다면 네이버 맵도 쉽게 만드실 수 있습니다.  네이버도 구글과 비슷한 방법으로 맵 사용 권한을 부여 하고 있습니다.  구글 맵을 이용하여 앱을 만들어 보지 않았다면 사용 권한 키를 받는 과정이 다소 복잡해 보일 수 있습니다.  설명 방법은 그림 위주로 하며 다음 순서대로 진행합니다.

1. 네이버 맵 사용 등록

2. Client ID 생성(맵 사용 키)

3. 안드로이드 스튜디오에서 NAVER Map을 이용한 앱 생성

 

이용 신청을 위해 아래 주소를 이용하여 네이버 맵 사이트 접속합니다.

https://www.ncloud.com/product/applicationService/maps

 

[이용 신청 하기] 버튼을 클릭 합니다

 

 

[회원가입] 화면에서 개인 회원 또는 사업자를 클릭 합니다. 저는 [개인 회원]을 선택하고 [다음] 버튼을 클릭 하였습니다.

 

 

약관에 동의를 합니다광고를 받고 싶으면 광고 정보 수신을 꼭 선택하세요.

 

 

회원 정보를 입력합니다.   아이디는 메일 주소로 입력해야 하고 인증을 위해 전송 버튼을 클릭하여 발송된 메일을 클릭 해야 하니 정확히 입력해야 합니다.  메일 인증을 위해 입력한 아이디의 메일을 확인해 봅니다.

 

 

위 사진은 아이디로 입력한 메일로 수신된 인증 메일입니다. [메일 인증] 버튼을 클릭 해 줍니다.

 

 

나머지 주소 및 회원 정보도 입력을 하고 휴대폰 번호도 인증을 한 후 [다음] 버튼을 클릭합니다.

 

 

무조건 결제수단을 등록해야 하는데 특정 사용량을 넘겨야 하기 때문에 과금은 이루어지지 않는다고 생각하면 됩니다.

 

 

[휴대폰 인증하기]로 결제카드를 등록 합니다.

 

 

본인 확인을 위한 전화 인증을 진행 합니다.

 

 

 

카드정보를 입력하고 [등록하기] 버튼을 클릭 합니다.

 

 

결제 카드 등록이 완료 되었습니다.

 

 

 

10만원 상당의 크레딧을 제공한다고 하는데 필요하면 신청을 합니다단 유효 기간은 3개월 입니다.

 

 

회원가입을 완료하고 로그인 후 다시 처음 화면으로 왔습니다.  [이용 신청 하기] 버튼을 클릭 합니다.

 

 

여러 API들이 소개 되고 있는데 현재는 선택하는 게 아니므로 하단으로 이동합니다.

 

 

본인이 만든 프로그램을 등록하는 화면인데 개인적으로는 순서가 바뀌지 않았나 하는 생각이 듭니다.  어째든 [Application 등록] 버튼을 클릭합니다.

 

 

약관 동의를 하고 [확인] 버튼을 클릭 합니다.

 

 

이제 사용하려는 애플리케이션을 선택하고 등록할 수 있습니다이번에도 스크롤을 하단으로 이동합니다.  물론 네이버 맵이 아니라면 다른걸 선택하면 되겠죠.

 

 

모바일 맵을 사용 하기한 등록을 시작 합니다.  [Mobile Dynamic Map]을 체크하고 안드로이드 앱 패키지 이름도 등록합니다등록시 [추가] 버튼을 클릭해야 등록 됩니다.  패키지를 입력했으면 [등록] 버튼을 클릭합니다.

 

 

드디어 얻으려는 인증 정보 단계에 도착했습니다.  키 모양 아이콘이 있는 [인증 정보] 버튼을 클릭 합니다.

 

 

인증 정보 팝업에서 [Client ID]를 복사해 잘 보관 합니다.  ID가 있어야 앱에서 네이버 맵을 불러올 수 있습니다.

 

 

Client ID를 생성 하였으니 네이버 맵을 이용한 앱을 하나 만들어 봅니다.

 

템플릿을 하나 선택 하고

 

 

Package name Naver에 입력한 것으로 적어줍니다. 네이버 지도 SDK는 안드로이드 OS 버전 4.0.3(API 레벨 15) 이상에서 사용할 수 있으니 Minimum SDK도 확인하고 [Finish] 버튼을 클릭해 줍니다.

 

프로젝트가 생성되면 추가적인 설정값을 입력해 줍니다.

 

build.gradle(Project)

allprojects {
   
repositories {
       
google()
        jcenter()
        maven {
            url
'https://naver.jfrog.io/artifactory/maven/'
       
}
    }
}

 

build.gradle(Module)

 

dependencies {
    implementation 'com.naver.maps:map-sdk:3.10.2'
}

 

그리고 Manifast에 복사해 놓은 Client_ID를 추가해주고 android.permission.INTERNET도 추가 합니다.

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    
package="copycoding.tistory.navermap">
    <
uses-permission android:name="android.permission.INTERNET" />
    <
application
        
android:allowBackup="true"
        
android:icon="@mipmap/ic_launcher"
        
android:label="@string/app_name"
        
android:roundIcon="@mipmap/ic_launcher_round"
        
android:supportsRtl="true"
        
android:theme="@style/Theme.NaverMap">
        <
activity android:name=".MainActivity">
            <
intent-filter>
                <
action android:name="android.intent.action.MAIN" />

                <
category android:name="android.intent.category.LAUNCHER" />
            </
intent-filter>
        </
activity>
        <
meta-data
            android:name="com.naver.maps.map.CLIENT_ID"
            android:value="Client_ID입력" 
/>
    </
application>

</
manifest>

 

Layout에 맵용 fragment를 추가해 줍니다.

 

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    
xmlns:app="http://schemas.android.com/apk/res-auto"
    
xmlns:tools="http://schemas.android.com/tools"
    
android:layout_width="match_parent"
    
android:layout_height="match_parent"
    
tools:context=".MainActivity">

    <
fragment android:layout_width="match_parent"
        
android:layout_height="match_parent"
        
android:id="@+id/map"
        
android:name="com.naver.maps.map.MapFragment" 
/>

</
androidx.constraintlayout.widget.ConstraintLayout>

 

프로그램은 이것으로 끝이고 실행해 볼까요?

 

 

기본적인 지도를 볼 수 있습니다.  Client ID를 얻는 과정이 프로그램보다 더 힘이 드는군요.

 

- copy coding -

Android Studio에서 직접 프로젝트를 생성해서 작업 하는 경우는 발생할 확률이 적고 다른 곳에서 프로그램 소스를 가지고 온 경우나 안드로이드 스튜디오를 새로 설치하고 예전 프로젝트를 Open한 경우에는 발생하는 경우가 있습니다.  오류 내용은

 

Starting Gradle Daemon...
Gradle Daemon started in 1 s 328 ms
> Task :prepareKotlinBuildScriptModel UP-TO-DATE
File C:\Users\will\.android\repositories.cfg could not be loaded.
Checking the license for package Android SDK Build-Tools 29.0.2 in C:\Users\will\AppData\Local\Android\Sdk\licenses
Warning: License for package Android SDK Build-Tools 29.0.2 not accepted.
Checking the license for package Android SDK Platform 28 in C:\Users\will\AppData\Local\Android\Sdk\licenses
Warning: License for package Android SDK Platform 28 not accepted.
 
BUILD SUCCESSFUL in 25s

이런 식으로 되어 있고 여기서는 29.0.2로 되어 있는데 프로젝트 마다 조금씩 다른 버전 번호를 가지고 있게 되겠죠.  원인은 최초 Project 생성시 설정한 buildToolsVersion 값 때문 입니다.

 

저의 경우는 이렇게 프로젝트 생성시 입력이 되어 있는데 Android Studio에서는 관련 기능이 설치가 되어 있지 않아서 메시지가 출력되는 것 입니다.  해결 방법은

 

File > Setting를 선택하여 Settings 창을 오픈 합니다.

 

좌측에서 Android SDK 메뉴를 선택하고 우측에서 [SDK Tools] 탭을 선택합니다.  그리고 우측 하단의 [Show Package Details]를 클릭하면 Build-Tools가 확장되며 필요한 29.0.2 버전을 찾을 수 있습니다.  29.0.2 항목을 체크하고 [OK] 버튼을 클릭 합니다.

 

 

한번 더 설치를 위한 [OK] 버튼 클릭

 

 

좌측 아래에 있는 29.0.2를 선택하고 저작권 Accept를 선택 한 후 [Next] 버튼을 클릭 합니다.

 

 

설치가 진행 되면 잠시 기다리고

 

 

설치가 완료 되면 [Finish] 버튼을 클릭 한 후 다시 Android Studio를 재시작 하면 오류가 사라집니다.

 

- copy coding -

처음 안드로이드 스튜디오를 설치하고 스마트폰 앱을 개발하는 경우 대부분 AVD 가상 장치를 이용하여로 테스트를 진행 하는데 어느정도 완성이 되면 실제 핸드폰을 이용하여 테스트를 해야 합니다.  이때 핸드폰을 개발자 모드로 설정 하였지만 컴퓨터에 연결을 해도 Android Studio에서 인식을 하지 못하여 테스트를 할 수 없는 상황을 격게 됩니다.  물론 어떤 기종의 스마트폰은 USB로 연결 하자 마자 쉽게 인식이 되는 경우도 있고 어떤 기종은 계속 오류가(오류라기 보다는 연결이 안됨) 발생 합니다.

 

 

위의 그림은 스마트폰을 USB로 연결하여도 디바이스를 찾지 못하고 가상 디바이스만 나타나는 현상 입니다.  이런 경우는 컴퓨터 운영체제 버전이 낮거나 업데이트가 안되어 스마트폰 드라이버를 지원하지 못하여 발생하는 경우가 많습니다스마트폰용 USB 드라이버가 설치되지 않아서 인식을 못하는 상황이 발생한 것입니다.

 

 

확인을 하려면 스마트폰을 USB로 연결하고 [드라이버 소프트웨어 설치] 창을 열어보면 오래된 운영체제 또는 업데이트가 안된 경우 드라이버를 찾지 못하여 계속 찾기를 반복만 하고 있습니다.

 

이 글에서는 제가 사용하고 있는 삼성폰으로 설명을 진행 하지만 다른 제조 회사 제품도 동일한 현상이 발생하면 아래의 방법으로 해결을 하면 되는데 인식이 안되는 스마트폰은 제조사 마다 USB 드라이버를 제공하고 있으니 제조사 홈페이지에 들어가 통합 드라이버를 다운받아 설치를 진행 하면 간단히 해결 할 수 있습니다.

 

삼성 스마트폰 드라이버 다운로드 사이트 접속 주소 입니다.(각 제조사별로 작업합니다.)

https://developer.samsung.com/mobile/android-usb-driver.html

 

 

SAMSUNG_USB_Driver_for_Mobile_Phones.exe 를 클릭 하면 드라이버 다운로드가 바로 진행되고 완료 되면 실행 하여 드라이버 설치를 진행 합니다.  설치 작업은 대부분 기본 설정된 버튼을 클릭 하면 됩니다.

 

 

 

 

여기 까지는 설치를 위한 설정 진행입니다.

 

이제 [설치] 버튼을 클릭 하면 드라이버 설치가 진행 됩니다.

 

 

설치가 진행 되고

 

 

설치가 완료되면 [마침] 버튼을 클릭 하여 종료 합니다.  경우에 따라 바로 장치를 인식하는 경우도 있고 컴퓨터를 재시작 해야 스마트폰을 인식하는 경우도 있습니다.  저는 Windows 7인데 다시 시작을 해야 인식이 되었습니다.  윈도우 창 우측에서 [드리이버 소프트웨어 설치] 창을 열어보면

 

 

 

계속 찾기로 빙빙 돌던 아이콘이 체크로 변하고 상태도 [사용 준비 완료]로 변경 되어 있고 스마트폰을 사용할 수 있는 상태가 된 것 입니다.

 

 

안드로이드 스튜디오를 열어보면 데스트 디바이스가 가상 디바이스에서 연결된 실제 스마트폰으로 변경된 것을 확인 할 수 있습니다.

이제부터는 상황에 따라 가상 디바이스 또는 실제 스마트폰을 선택하여 테스트할 수 있는 환경이 마련 되었습니다.

 

- copy coding -

 

손가락을 조개가 물고 있는 꿈 해몽
 -> 어떤 문서나 계약서에 날인할 일이 있거나, 모임에서 우연히 여자를 만나게 된다.

조개 껍질을 모으니 자갈더미가 되는 꿈 해몽
 -> 사업, 책무 등이 완전한 것으로 정리된다.

조개 속에서 진주 알이 나오는 꿈 해몽
 -> 심오한 학문과 진리를 탐구하거나 새로운 아이디어로 신상품을 개발하며, 재물, 돈, 횡재 등의 일이 발생한다.

조개 속이 들여 다 보이는 꿈 해몽
 -> 작품 전시회에 참석하여 자신도 모르게 감격스러운 기분을 느낀다.

그릇에 조개가 가득 담긴 꿈 해몽
 -> 재물과 돈이 생기고 먹을 것이 생기면서 오래간만에 목돈을 만질 일이 있다.

그릇에 조개를 까서 담는 꿈 해몽
 -> 작품을 논하거나 다른 사람에게 청탁을 받는다.

 


조개를 까보는 꿈 해몽
 -> 높은 지위에 오르게 되며, 태몽이라면 귀한 아들을 얻을 징조이다.

조개를 삶거나 깨뜨려 죽이는 꿈 해몽
 -> 부녀자와 연관된 일로 말썽이 생기거나 손실이 있게 된다.

조개를 잡는 꿈 해몽
 -> 늦동이를 보게 될 태몽으로서 귀여운 자식을 얻게 된다.

조개를 줍는 꿈 해몽
 -> 창작물을 발표하게 된다.미혼이라면 혼담이 오갈 징조이다.

하늘에서 떨어지는 조개를 받아서 먹는 꿈 해몽
 -> 공적으로 재물을 얻는다.

많은 조개를 해변이나 개천에서 잡는 꿈 해몽
 -> 미혼녀는 혼담이 오가고, 자기가 개발한 창작물을 남에게 보여줄 기회가 생긴다.

맑은 물이 고인 논바닥에 물고기 떼가 놀고 있는 꿈 해몽
 -> 하고 있는 일의 성과를 기대할 수 있다.

물이 없는 개울이나 산에서 조개를 줍는 꿈 해몽
 -> 어떤 재물을 얻거나 학설에 관한 것을 수집하게 된다.

소라나 우렁이를 보는 꿈 해몽
 -> 다른 사람과 구설, 비방 등의 말썽이 있게 된다.

소라를 얻거나 보는 꿈 해몽
 -> 가깝게 지내던 사람과 이별하게 된다.

 

- copy coding -


1···25262728293031···118

+ Recent posts