<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Wooa Studio</title>
    <link>https://wooastudio.tistory.com/</link>
    <description>평범한 직장인의 자기개발 일상을 다루고 있습니다.</description>
    <language>ko</language>
    <pubDate>Mon, 25 May 2026 18:51:08 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>||| : ) |||</managingEditor>
    <image>
      <title>Wooa Studio</title>
      <url>https://tistory1.daumcdn.net/tistory/3824756/attach/3e46be6bc3564a24a7c1f921c80be88b</url>
      <link>https://wooastudio.tistory.com</link>
    </image>
    <item>
      <title>tesseract를 이용한 OCR 테스트</title>
      <link>https://wooastudio.tistory.com/14</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;&lt;b&gt;tesseract를&amp;nbsp;이용한&amp;nbsp;OCR&amp;nbsp;테스트&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파이썬을 설치했으니 가장 간단한 테스트를 하나 해볼까 합니다. &lt;u&gt;&lt;b&gt;tesseract를 이용해서 이미지에 있는 문자를 인식&lt;/b&gt;&lt;/u&gt;하는 코드를 작성해보도록 하겠습니다. 파이썬의 경우 라이브러리가 굉장히 잘되어 있기때문에 라이브러리를 잘 이용하면 구현하는데 크게 어려움이 없습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파이썬에는 OCR 관련된 라이브러리도 많은데 그 중 구글에서 개발한 tesseract를 이용해서 문자인식을 진행해보았습니다. 그럼 아래에서 &lt;u&gt;&lt;b&gt;tesseract를 이용한 문자인식 하는 방법&lt;/b&gt;&lt;/u&gt;에 대해서 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ClNNY/btqGU2pMLa0/sEKJTGrETBuywAbxJB3OS0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ClNNY/btqGU2pMLa0/sEKJTGrETBuywAbxJB3OS0/img.jpg&quot; data-alt=&quot;Photo by gfk DSGN on Pixabay &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ClNNY/btqGU2pMLa0/sEKJTGrETBuywAbxJB3OS0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FClNNY%2FbtqGU2pMLa0%2FsEKJTGrETBuywAbxJB3OS0%2Fimg.jpg&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Photo by gfk DSGN on Pixabay &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;u&gt;&lt;b&gt;개발환경 : Windows 10 / 파이참&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; tesseract를 이용한 OCR 테스트&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;tesseract를 이용하기 위해서는 tesseract를 설치하고 라이브러리를 import 해야한다.&lt;/p&gt;
&lt;p&gt;tesseract 설치는 아래의 tesseract github에서 진행할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/tesseract-ocr/tesseract/wiki&quot;&gt;https://github.com/tesseract-ocr/tesseract/wiki&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1597887495745&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;object&quot; data-og-title=&quot;tesseract-ocr/tesseract&quot; data-og-description=&quot;Tesseract Open Source OCR Engine (main repository) - tesseract-ocr/tesseract&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/tesseract-ocr/tesseract/wiki&quot; data-og-url=&quot;https://github.com/tesseract-ocr/tesseract&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bmzed2/hyHdqPsMdl/0687yhtSHs4gQ9izITKgI0/img.png?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420&quot;&gt;&lt;a href=&quot;https://github.com/tesseract-ocr/tesseract/wiki&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/tesseract-ocr/tesseract/wiki&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bmzed2/hyHdqPsMdl/0687yhtSHs4gQ9izITKgI0/img.png?width=420&amp;amp;height=420&amp;amp;face=0_0_420_420');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;tesseract-ocr/tesseract&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Tesseract Open Source OCR Engine (main repository) - tesseract-ocr/tesseract&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;▼ tesseract github로 이동 후 스크롤을 아래로 내리면 Windows용 설치파일을 받을 수 있습니다.&lt;/p&gt;
&lt;p&gt;'Tesseract at UB Mannheim'을 선택하고 환경에 맞는 버전을 선택해서 설치하면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;이미지 4.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;286&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tWkp3/btqGRRP4I6g/VieEGCmTvKn7rrJF1dg8G1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tWkp3/btqGRRP4I6g/VieEGCmTvKn7rrJF1dg8G1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tWkp3/btqGRRP4I6g/VieEGCmTvKn7rrJF1dg8G1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtWkp3%2FbtqGRRP4I6g%2FVieEGCmTvKn7rrJF1dg8G1%2Fimg.png&quot; data-filename=&quot;이미지 4.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;286&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;이미지 5.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;592&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J1l28/btqGY7w3c7n/vVwXWwt6dWDdLVnKqHGskk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J1l28/btqGY7w3c7n/vVwXWwt6dWDdLVnKqHGskk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J1l28/btqGY7w3c7n/vVwXWwt6dWDdLVnKqHGskk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ1l28%2FbtqGY7w3c7n%2FvVwXWwt6dWDdLVnKqHGskk%2Fimg.png&quot; data-filename=&quot;이미지 5.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;592&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 파이참에서 tesseract를 이용하기 위해서 tessaract 모듈을 설치합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;File 메뉴를 선택해서 Settings 메뉴로 진입합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;이미지 1.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qvQoj/btqGWTMVBbH/nzdizZkic5AxZJmPqYu7ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qvQoj/btqGWTMVBbH/nzdizZkic5AxZJmPqYu7ak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qvQoj/btqGWTMVBbH/nzdizZkic5AxZJmPqYu7ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqvQoj%2FbtqGWTMVBbH%2FnzdizZkic5AxZJmPqYu7ak%2Fimg.png&quot; data-filename=&quot;이미지 1.png&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;517&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ Project Interpreter를 선택해서 우측에 있는 + 메뉴를 선택합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;이미지 2.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;581&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJ6qld/btqGYK9KMRj/ACy2TWB3aZc6GsUbzZUWD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJ6qld/btqGYK9KMRj/ACy2TWB3aZc6GsUbzZUWD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJ6qld/btqGYK9KMRj/ACy2TWB3aZc6GsUbzZUWD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJ6qld%2FbtqGYK9KMRj%2FACy2TWB3aZc6GsUbzZUWD1%2Fimg.png&quot; data-filename=&quot;이미지 2.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;581&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ pytesseract로 검색을 해서 하단의 install package를 선택하면 설치가 완료됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;이미지 3.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;656&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bey5Hy/btqGVwkit1C/2jQKT93WsQmvNzDzaGFSDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bey5Hy/btqGVwkit1C/2jQKT93WsQmvNzDzaGFSDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bey5Hy/btqGVwkit1C/2jQKT93WsQmvNzDzaGFSDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbey5Hy%2FbtqGVwkit1C%2F2jQKT93WsQmvNzDzaGFSDk%2Fimg.png&quot; data-filename=&quot;이미지 3.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;656&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 이제 tesseract 사용준비가 끝났습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;간단하게 코드를 작성해 보겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1597887934582&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from PIL import Image
from pytesseract import *

pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract'

img = Image.open('test_image.png')
text = pytesseract.image_to_string(img, lang='kor')

print(text)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 인식하고자 하는 사진은 아래와 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;test_image.png&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;64&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxsjCg/btqGYK2YdYk/FOm9kGzaLLb1dVpzaq1VxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxsjCg/btqGYK2YdYk/FOm9kGzaLLb1dVpzaq1VxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxsjCg/btqGYK2YdYk/FOm9kGzaLLb1dVpzaq1VxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxsjCg%2FbtqGYK2YdYk%2FFOm9kGzaLLb1dVpzaq1VxK%2Fimg.png&quot; data-filename=&quot;test_image.png&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;64&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 인식이 잘 되는것을 확인 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;이미지 7.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;214&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ClJQv/btqGTm3h9rJ/Hp4n601CPLrs8XBEv3z0Ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ClJQv/btqGTm3h9rJ/Hp4n601CPLrs8XBEv3z0Ok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ClJQv/btqGTm3h9rJ/Hp4n601CPLrs8XBEv3z0Ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FClJQv%2FbtqGTm3h9rJ%2FHp4n601CPLrs8XBEv3z0Ok%2Fimg.png&quot; data-filename=&quot;이미지 7.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;214&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;문장이 길어지면 인식률이 많이 떨어지긴 하는데 그래도 간단한 문자는 인식됨을 확인할 수 있었습니다. 인식률을 올리기 위해서 open-cv를 이용해 이미지 전처리가 필요하기도 하지만 이번 포스팅에서는 여기까지만 진행하도록 하겠습니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>파이썬</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/14</guid>
      <comments>https://wooastudio.tistory.com/14#entry14comment</comments>
      <pubDate>Thu, 20 Aug 2020 10:51:41 +0900</pubDate>
    </item>
    <item>
      <title>[파이썬 시작하기] 파이썬 개발환경 구축(설치 및 환경설정)</title>
      <link>https://wooastudio.tistory.com/13</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;[파이썬&amp;nbsp;시작하기]&amp;nbsp;파이썬&amp;nbsp;개발환경&amp;nbsp;구축(설치&amp;nbsp;및&amp;nbsp;환경설정)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;최근에 파이썬에 관심이 생겨서 파이썬 개발을 시작해볼까 합니다. 요즘 각광받는 인공지능이나 데이터 분석에서도 파이썬이 많이 사용되고 있으니 알아두면 도움이 되지 않을까 싶습니다. 파이썬은 한 번도 해본 적이 없어서 한편으로는 걱정도 되면서 한편으로는 재미있지 않을까 기대가 되기도 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파이썬 개발을 위한 IDE가 다양한데 저는 파이참을 이용할 예정입니다. 무료버전인 커뮤니티 버전도 쓸만하다고 하니 커뮤니티 버전으로 다운받아서 설치해보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;오늘 포스팅 내용은 아래와 같습니다.&lt;/p&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;background-color: #eeeeee; padding: 10px; border: 1px solid #c1c1c1;&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&amp;nbsp; 목&amp;nbsp; 차&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;1. 파이썬 설치&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;2. 파이참 설치&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;3. HelloWorld 출력해보기&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d5Peo6/btqGTnf7KCG/4iOllajapvfERg6dzqBZhk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d5Peo6/btqGTnf7KCG/4iOllajapvfERg6dzqBZhk/img.jpg&quot; data-alt=&quot;Photo by gfk DSGN on Pixabay &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d5Peo6/btqGTnf7KCG/4iOllajapvfERg6dzqBZhk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd5Peo6%2FbtqGTnf7KCG%2F4iOllajapvfERg6dzqBZhk%2Fimg.jpg&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Photo by gfk DSGN on Pixabay &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 파이썬 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;▼ 윈도우즈 OS를 이용하고 있기 때문에 아래 파이썬 홈페이지에서 윈도우즈 OS용 파이썬을 다운로드합니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://www.python.org/downloads/&quot;&gt;https://www.python.org/downloads/&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1597807358349&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Download Python&quot; data-og-description=&quot;The official home of the Python Programming Language&quot; data-og-host=&quot;www.python.org&quot; data-og-source-url=&quot;https://www.python.org/downloads/&quot; data-og-url=&quot;https://www.python.org/downloads/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/q5Lxa/hyHdslJBYO/XrfgwVOFgukr73CknPJCKK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.python.org/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.python.org/downloads/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/q5Lxa/hyHdslJBYO/XrfgwVOFgukr73CknPJCKK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Download Python&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;The official home of the Python Programming Language&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.python.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 상단에는 최신버전을 다운로드 할 수 있는 버튼이 있고 이전 버전을 다운로드 하고 싶다면 스크롤을 하단으로 내려 'Looking for a specific release?'에서 원하는 버전으로 다운로드 할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처1.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;346&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csJiWJ/btqGNEpM0Cv/LaKQt4ihfkwglFxMf4bpc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csJiWJ/btqGNEpM0Cv/LaKQt4ihfkwglFxMf4bpc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csJiWJ/btqGNEpM0Cv/LaKQt4ihfkwglFxMf4bpc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsJiWJ%2FbtqGNEpM0Cv%2FLaKQt4ihfkwglFxMf4bpc0%2Fimg.png&quot; data-filename=&quot;캡처1.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;346&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처2.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;370&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Az6bb/btqGTm2w35O/28B8EyA3oKGHkYgSH68yJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Az6bb/btqGTm2w35O/28B8EyA3oKGHkYgSH68yJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Az6bb/btqGTm2w35O/28B8EyA3oKGHkYgSH68yJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAz6bb%2FbtqGTm2w35O%2F28B8EyA3oKGHkYgSH68yJ0%2Fimg.png&quot; data-filename=&quot;캡처2.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;370&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▶&amp;nbsp;설치 시 'Add Python 3.8 to PATH'를 체크하면 환경변수 설정까지 함께 진행이 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 파이참 설치하기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 파이참은 JetBrain사의 개발환경으로 JetBrain사 홈페이지에서 다운로드가 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/ko-kr/&quot;&gt;&lt;b&gt;https://www.jetbrains.com/ko-kr/&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1597808533036&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;JetBrains: Developer Tools for Professionals and Teams&quot; data-og-description=&quot;JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA &amp;ndash; the leading Java IDE, and the Kotlin programming language.&quot; data-og-host=&quot;www.jetbrains.com&quot; data-og-source-url=&quot;https://www.jetbrains.com/ko-kr/&quot; data-og-url=&quot;https://www.jetbrains.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cKb9qi/hyHdCIFmXS/xjDQah68Kyb1HxueAq08Jk/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/ko-kr/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.jetbrains.com/ko-kr/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cKb9qi/hyHdCIFmXS/xjDQah68Kyb1HxueAq08Jk/img.png?width=1280&amp;amp;height=800&amp;amp;face=0_0_1280_800');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;JetBrains: Developer Tools for Professionals and Teams&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA &amp;ndash; the leading Java IDE, and the Kotlin programming language.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.jetbrains.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 우측상단에 다운로드 버튼을 선택해서 커뮤니티 버전으로 설치를 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처3.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;487&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Uyhis/btqGIpfs1M8/EebbXW7UwGdkjPK9exBByk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Uyhis/btqGIpfs1M8/EebbXW7UwGdkjPK9exBByk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Uyhis/btqGIpfs1M8/EebbXW7UwGdkjPK9exBByk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUyhis%2FbtqGIpfs1M8%2FEebbXW7UwGdkjPK9exBByk%2Fimg.png&quot; data-filename=&quot;캡처3.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;487&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처4.PNG&quot; data-origin-width=&quot;636&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KMgPV/btqGQcF8S0R/k4whGxVMKdHg84hE8lT881/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KMgPV/btqGQcF8S0R/k4whGxVMKdHg84hE8lT881/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KMgPV/btqGQcF8S0R/k4whGxVMKdHg84hE8lT881/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKMgPV%2FbtqGQcF8S0R%2Fk4whGxVMKdHg84hE8lT881%2Fimg.png&quot; data-filename=&quot;캡처4.PNG&quot; data-origin-width=&quot;636&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; HelloWorld 출력해보기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파이썬과 파이참 설치를 완료했으니 개발의 첫 단계인 Hello World를 출력해 보겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ &lt;/span&gt;파이참을 실행해서 프로젝트를 생성합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처5.PNG&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUEdLT/btqGQb8jJs7/oFheWutRk71BG1XgGrLx3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUEdLT/btqGQb8jJs7/oFheWutRk71BG1XgGrLx3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUEdLT/btqGQb8jJs7/oFheWutRk71BG1XgGrLx3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUEdLT%2FbtqGQb8jJs7%2FoFheWutRk71BG1XgGrLx3k%2Fimg.png&quot; data-filename=&quot;캡처5.PNG&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;463&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 프로젝트에서 마우스 우클릭으로 파이썬 파일을 생성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처6.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;647&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wWx7Y/btqGPNUjQ1k/kGSINOJE12R2uffffa3RD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wWx7Y/btqGPNUjQ1k/kGSINOJE12R2uffffa3RD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wWx7Y/btqGPNUjQ1k/kGSINOJE12R2uffffa3RD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwWx7Y%2FbtqGPNUjQ1k%2FkGSINOJE12R2uffffa3RD0%2Fimg.png&quot; data-filename=&quot;캡처6.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;647&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ Hello World 파일을 생성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처7.PNG&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;167&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YtpkI/btqGSriU63Z/awXdKotj8Retm3aZVRZot1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YtpkI/btqGSriU63Z/awXdKotj8Retm3aZVRZot1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YtpkI/btqGSriU63Z/awXdKotj8Retm3aZVRZot1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYtpkI%2FbtqGSriU63Z%2FawXdKotj8Retm3aZVRZot1%2Fimg.png&quot; data-filename=&quot;캡처7.PNG&quot; data-origin-width=&quot;327&quot; data-origin-height=&quot;167&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ print('Hello World')를 입력하고 실행을 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처8.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;793&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beGLDn/btqGPOeGdOK/8ZE8SkkrYWLzYJqxLHZBk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beGLDn/btqGPOeGdOK/8ZE8SkkrYWLzYJqxLHZBk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beGLDn/btqGPOeGdOK/8ZE8SkkrYWLzYJqxLHZBk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeGLDn%2FbtqGPOeGdOK%2F8ZE8SkkrYWLzYJqxLHZBk0%2Fimg.png&quot; data-filename=&quot;캡처8.PNG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;793&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ Hello World가 정상적으로 출력됨을 확인할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처9.PNG&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;288&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x58xq/btqGU0xW4ri/cVtPeFceCzO2rM7cGGztS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x58xq/btqGU0xW4ri/cVtPeFceCzO2rM7cGGztS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x58xq/btqGU0xW4ri/cVtPeFceCzO2rM7cGGztS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx58xq%2FbtqGU0xW4ri%2FcVtPeFceCzO2rM7cGGztS0%2Fimg.png&quot; data-filename=&quot;캡처9.PNG&quot; data-origin-width=&quot;635&quot; data-origin-height=&quot;288&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이상으로 파이썬 개발을 위한 개발환경 구축을 해보았습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;감사합니다:)&lt;/p&gt;</description>
      <category>파이썬</category>
      <category>#파이썬 #파이참 #개발환경구축</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/13</guid>
      <comments>https://wooastudio.tistory.com/13#entry13comment</comments>
      <pubDate>Wed, 19 Aug 2020 12:47:35 +0900</pubDate>
    </item>
    <item>
      <title>[네이버 지도 API] 지도 위에 인포윈도우(InfoWindow) 표시하기</title>
      <link>https://wooastudio.tistory.com/12</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;&lt;b&gt;[네이버&amp;nbsp;지도&amp;nbsp;API]&amp;nbsp;지도 위에&amp;nbsp;인포윈도우(InfoWindow)&amp;nbsp;표시하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이어서 네이버 지도 위에 인포윈도우를 표시하는 방법에 대해서 알아보도록 하겠습니다. 지도를 사용하는 앱을 살펴보면 지도 위에 있는 마커를 클릭했을 때 마커에 대한 정보가 뜨는 걸 볼 수 있습니다. 간단하게 구현해 볼 수 있으니 한 번 해보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;혹시 지난 포스팅이 궁금하신 분들은 아래를 참고해 주세요.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://wooastudio.tistory.com/11&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[네이버 지도 API] 커스텀 마커, 마커 클릭이벤트 추가하기&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://wooastudio.tistory.com/9&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[네이버 지도 API] UI 컨트롤 제어하기(나침반, 축척바, 줌버튼, 현위치 버튼, 네이버 로고)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://wooastudio.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[네이버 지도 API] 마커 / 현재위치 표시하기&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://wooastudio.tistory.com/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;오늘 포스팅 내용은 아래와 같습니다.&lt;/p&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;background-color: #eeeeee; padding: 10px; border: 1px solid #c1c1c1;&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&amp;nbsp; 목&amp;nbsp; 차&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #9aa5ea;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;□ InfoWindow 객체 생성&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;□ &lt;span&gt;DefaultTextAdapter &lt;/span&gt;활용&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;□ &lt;/span&gt;DefaultViewAdapter 활용&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;□ 전체코드&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bArTKO/btqEAMbT0Rm/CIsBW6fEw3n1O7pNeUiTX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bArTKO/btqEAMbT0Rm/CIsBW6fEw3n1O7pNeUiTX0/img.jpg&quot; data-alt=&quot;Photo by gfk DSGN on Pixabay&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bArTKO/btqEAMbT0Rm/CIsBW6fEw3n1O7pNeUiTX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbArTKO%2FbtqEAMbT0Rm%2FCIsBW6fEw3n1O7pNeUiTX0%2Fimg.jpg&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Photo by gfk DSGN on Pixabay&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; InfoWindow 객체 생성&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;onMapReady 내에서 InfoWindow 객체를 생성합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1591163630419&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;private InfoWindow mInfoWindow;

public void onMapReady(@NonNull NaverMap naverMap)
    mInfoWindow = new InfoWindow();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;마커 클릭이벤트를 이용해서 InfoWindow가 잘 뜨는지 확인합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1591163671515&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    @Override
    public boolean onClick(@NonNull Overlay overlay) {
        if (overlay instanceof Marker) {
            Marker marker = (Marker) overlay;
            if (marker.getInfoWindow() != null) {
                mInfoWindow.close();
                Toast.makeText(this.getApplicationContext(), &quot;InfoWindow Close.&quot;, Toast.LENGTH_LONG).show();
            }
            else {
                mInfoWindow.open(marker);
                Toast.makeText(this.getApplicationContext(), &quot;InfoWindow Open.&quot;, Toast.LENGTH_LONG).show();
            }
            return true;
        }
        return false;
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;▼ 아래 그림처럼 인포윈도우가 정상적으로 뜨는 걸 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200603-143820_Wooa Studio-horz.jpg&quot; data-origin-width=&quot;646&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XcxPs/btqEBeTiypd/8kFCOXeGf2ow3Ynu9AguW0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XcxPs/btqEBeTiypd/8kFCOXeGf2ow3Ynu9AguW0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XcxPs/btqEBeTiypd/8kFCOXeGf2ow3Ynu9AguW0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXcxPs%2FbtqEBeTiypd%2F8kFCOXeGf2ow3Ynu9AguW0%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200603-143820_Wooa Studio-horz.jpg&quot; data-origin-width=&quot;646&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; DefaultTextAdapter 활용&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;인포윈도우에 정보를 보여주기 위해서는 어댑터 설정이 필요합니다. 기본적인 Text만 보여줄 수 있는 DefaultTextAdapter와 복잡한 뷰를 보여줄 수 있는 DefaultViewAdapter가 있습니다.&lt;/p&gt;
&lt;p&gt;먼저 DefaultTextAdapter를 사용해 보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;DefaultTextAdapter를 이용하면 하나의 문자열을 인포윈도우에 표시할 수 있습니다. infoWindow에 adapter를 설정하고 보여주고자 하는 문자열을 리턴합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1591163950905&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;       mInfoWindow.setAdapter(new InfoWindow.DefaultTextAdapter(this) {
            @NonNull
            @Override
            public CharSequence getText(@NonNull InfoWindow infoWindow) {
                return &quot;Wooa Studio&quot;;
            }
        });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;▼ 아래 그림처럼 인포윈도우에 리턴한 문자열이 보여지게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200603-144150_Wooa Studio.jpg&quot; data-origin-width=&quot;317&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u4bBB/btqEzAXvLZF/GOpAnqHGMP1K5onqAtDJT1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u4bBB/btqEzAXvLZF/GOpAnqHGMP1K5onqAtDJT1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u4bBB/btqEzAXvLZF/GOpAnqHGMP1K5onqAtDJT1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu4bBB%2FbtqEzAXvLZF%2FGOpAnqHGMP1K5onqAtDJT1%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200603-144150_Wooa Studio.jpg&quot; data-origin-width=&quot;317&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; DefaultViewAdapter 활용&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다음으로 &lt;span style=&quot;color: #333333;&quot;&gt;DefaultViewAdapter를 사용해보겠습니다. &lt;span style=&quot;color: #333333;&quot;&gt;DefaultViewAdapter를 이용하면 다양한 레이아웃을 인포윈도우에 표시할 수 있습니다. 저는 간단하게 텍스트뷰가 2개 있는 레이아웃을 설정해 보도록 하겠습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1591164079387&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;       mInfoWindow.setAdapter(new InfoWindow.DefaultViewAdapter(this) {
            @NonNull
            @Override
            protected View getContentView(@NonNull InfoWindow infoWindow) {
                Marker marker = infoWindow.getMarker();
                PlaceInfo info = (PlaceInfo) marker.getTag();
                View view = View.inflate(MainActivity.this, R.layout.view_info_window, null);
                ((TextView) view.findViewById(R.id.title)).setText(&quot;Wooa Studio&quot;);
                ((TextView) view.findViewById(R.id.details)).setText(&quot;Info Window 테스트&quot;);
                return view;
            }
        });&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1591164119559&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;view_info_window.xml

&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;LinearLayout
    xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_width=&quot;wrap_content&quot;
    android:layout_height=&quot;wrap_content&quot;
    android:orientation=&quot;vertical&quot;&amp;gt;

    &amp;lt;TextView
        android:id=&quot;@+id/title&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;center_horizontal&quot;
        android:gravity=&quot;center_horizontal&quot;
        android:textStyle=&quot;bold&quot;
        android:textSize=&quot;15sp&quot; /&amp;gt;

    &amp;lt;TextView
        android:id=&quot;@+id/details&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;center_horizontal&quot;
        android:gravity=&quot;center_horizontal&quot;
        android:textSize=&quot;12sp&quot;
        android:textColor=&quot;@android:color/black&quot;/&amp;gt;

&amp;lt;/LinearLayout&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200603-144532_Wooa Studio.jpg&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czFn0R/btqEBfkmG5r/I3K0NBz6bTffMt6bxvcXO1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czFn0R/btqEBfkmG5r/I3K0NBz6bTffMt6bxvcXO1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czFn0R/btqEBfkmG5r/I3K0NBz6bTffMt6bxvcXO1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczFn0R%2FbtqEBfkmG5r%2FI3K0NBz6bTffMt6bxvcXO1%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200603-144532_Wooa Studio.jpg&quot; data-origin-width=&quot;321&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 전체코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1591164189612&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MainActivity extends AppCompatActivity implements OnMapReadyCallback, Overlay.OnClickListener {

    private static final String TAG = &quot;MainActivity&quot;;

    private static final int PERMISSION_REQUEST_CODE = 100;
    private static final String[] PERMISSIONS = {
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.ACCESS_COARSE_LOCATION
    };

    private FusedLocationSource mLocationSource;
    private NaverMap mNaverMap;

    private InfoWindow mInfoWindow;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 지도 객체 생성
        FragmentManager fm = getSupportFragmentManager();
        MapFragment mapFragment = (MapFragment) fm.findFragmentById(R.id.map);
        if (mapFragment == null) {
            mapFragment = MapFragment.newInstance();
            fm.beginTransaction().add(R.id.map, mapFragment).commit();
        }

        // getMapAsync를 호출하여 비동기로 onMapReady 콜백 메서드 호출
        // onMapReady에서 NaverMap 객체를 받음
        mapFragment.getMapAsync(this);

        // 위치를 반환하는 구현체인 FusedLocationSource 생성
        mLocationSource =
                new FusedLocationSource(this, PERMISSION_REQUEST_CODE);
    }

    @Override
    public void onMapReady(@NonNull NaverMap naverMap) {
        Log.d(TAG, &quot;onMapReady&quot;);

        // 지도상에 마커 표시
        Marker marker = new Marker();
        marker.setPosition(new LatLng(37.5670135, 126.9783740));
        marker.setMap(naverMap);

        marker.setWidth(100);
        marker.setHeight(100);
        marker.setIcon(OverlayImage.fromResource(R.drawable.tour));
        marker.setOnClickListener(this);

        // NaverMap 객체 받아서 NaverMap 객체에 위치 소스 지정
        mNaverMap = naverMap;
        mNaverMap.setLocationSource(mLocationSource);

        // UI 컨트롤 재배치
        UiSettings uiSettings = mNaverMap.getUiSettings();
        uiSettings.setCompassEnabled(false); // 기본값 : true
        uiSettings.setScaleBarEnabled(false); // 기본값 : true
        uiSettings.setZoomControlEnabled(false); // 기본값 : true
        uiSettings.setLocationButtonEnabled(false); // 기본값 : false
        uiSettings.setLogoGravity(Gravity.RIGHT | Gravity.BOTTOM);

        CompassView compassView = findViewById(R.id.compass);
        compassView.setMap(mNaverMap);
        ScaleBarView scaleBarView = findViewById(R.id.scalebar);
        scaleBarView.setMap(mNaverMap);
        ZoomControlView zoomControlView = findViewById(R.id.zoom);
        zoomControlView.setMap(mNaverMap);
        LocationButtonView locationButtonView = findViewById(R.id.location);
        locationButtonView.setMap(mNaverMap);

        // 권한확인. 결과는 onRequestPermissionsResult 콜백 매서드 호출
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_REQUEST_CODE);

        mInfoWindow = new InfoWindow();

//        mInfoWindow.setAdapter(new InfoWindow.DefaultTextAdapter(this) {
//            @NonNull
//            @Override
//            public CharSequence getText(@NonNull InfoWindow infoWindow) {
//                return &quot;Wooa Studio&quot;;
//            }
//        });

        mInfoWindow.setAdapter(new InfoWindow.DefaultViewAdapter(this) {
            @NonNull
            @Override
            protected View getContentView(@NonNull InfoWindow infoWindow) {
                Marker marker = infoWindow.getMarker();
                PlaceInfo info = (PlaceInfo) marker.getTag();
                View view = View.inflate(MainActivity.this, R.layout.view_info_window, null);
                ((TextView) view.findViewById(R.id.title)).setText(&quot;Wooa Studio&quot;);
                ((TextView) view.findViewById(R.id.details)).setText(&quot;Info Window 테스트&quot;);
                return view;
            }
        });
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        // request code와 권한획득 여부 확인
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (grantResults.length &amp;gt; 0
                    &amp;amp;&amp;amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                mNaverMap.setLocationTrackingMode(LocationTrackingMode.Follow);
            }
        }
    }

    @Override
    public boolean onClick(@NonNull Overlay overlay) {
        if (overlay instanceof Marker) {
            Marker marker = (Marker) overlay;
            if (marker.getInfoWindow() != null) {
                mInfoWindow.close();
                Toast.makeText(this.getApplicationContext(), &quot;InfoWindow Close.&quot;, Toast.LENGTH_LONG).show();
            }
            else {
                mInfoWindow.open(marker);
                Toast.makeText(this.getApplicationContext(), &quot;InfoWindow Open.&quot;, Toast.LENGTH_LONG).show();
            }
            return true;
        }
        return false;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이상으로 네이버 지도 위에 인포윈도우를 표시하는 방법에 대해서 알아보았습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;감사합니다:)&lt;/p&gt;</description>
      <category>Android 앱 개발/네이버 API 사용하기</category>
      <category>#네이버지도API #네이버지도인포윈도우 #인포윈도우표시하기 #안드로이드앱개발 #네이버지도사용하기</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/12</guid>
      <comments>https://wooastudio.tistory.com/12#entry12comment</comments>
      <pubDate>Wed, 3 Jun 2020 15:05:53 +0900</pubDate>
    </item>
    <item>
      <title>[네이버 지도 API] 커스텀 마커, 마커 클릭이벤트 추가하기</title>
      <link>https://wooastudio.tistory.com/11</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;&lt;b&gt;[네이버&amp;nbsp;지도&amp;nbsp;API]&amp;nbsp;커스텀&amp;nbsp;마커,&amp;nbsp;마커&amp;nbsp;클릭이벤트&amp;nbsp;추가하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;지난 포스팅에 이어 마커 이미지 변경하는 방법과 마커에 클릭이벤트를 추가하는 방법에 대해서 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;이전 포스팅은 아래와 같으니 참고해 주세요.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://wooastudio.tistory.com/9&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[네이버 지도 API] UI 컨트롤 제어하기(나침반, 축척바, 줌버튼, 현위치 버튼, 네이버 로고)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://wooastudio.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[네이버 지도 API] 마커 / 현재위치 표시하기&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://wooastudio.tistory.com/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;오늘 포스팅 내용은 아래와 같습니다.&lt;/p&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;background-color: #eeeeee; padding: 10px; border: 1px solid #c1c1c1;&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&amp;nbsp; 목&amp;nbsp; 차&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #9aa5ea;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;□ 마커 이미지 변경&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;□&amp;nbsp;&lt;/span&gt;마커 클릭이벤트 추가&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;□ 전체코드&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pLOVM/btqEyeyQuvj/cj08vdYzvKfMgRYfsCRCz1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pLOVM/btqEyeyQuvj/cj08vdYzvKfMgRYfsCRCz1/img.jpg&quot; data-alt=&quot;Photo by gfk DSGN on Pixabay&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pLOVM/btqEyeyQuvj/cj08vdYzvKfMgRYfsCRCz1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpLOVM%2FbtqEyeyQuvj%2Fcj08vdYzvKfMgRYfsCRCz1%2Fimg.jpg&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Photo by gfk DSGN on Pixabay&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 마커 이미지 변경하기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;마커 이미지 변경은 setIcon 함수를 이용해서 간단하게 할 수 있습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1590989087995&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        marker.setWidth(100);
        marker.setHeight(100);
        marker.setIcon(OverlayImage.fromResource(R.drawable.tour));&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;크기는 dimens.xml을 이용해서 적당히 조절해주면 되고 이미지는 본인이 사용하고자 하는 이미지를 drawble 폴더에 넣은 다음에 사용하면 됩니다.&lt;/p&gt;
&lt;p&gt;▼ 아래 그림처럼 마커의 이미지를 원하는 이미지로 변경을 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200601-141639_Wooa Studio.jpg&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvwhyQ/btqEyJSTC8h/HxyuaMw7In63BzmyZH8Ux0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvwhyQ/btqEyJSTC8h/HxyuaMw7In63BzmyZH8Ux0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvwhyQ/btqEyJSTC8h/HxyuaMw7In63BzmyZH8Ux0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvwhyQ%2FbtqEyJSTC8h%2FHxyuaMw7In63BzmyZH8Ux0%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200601-141639_Wooa Studio.jpg&quot; data-origin-width=&quot;318&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 마커에 클릭이벤트 추가하기&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;1. 먼저 Overlay.OnClickListener 을 추가합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1590989241092&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MainActivity extends AppCompatActivity implements OnMapReadyCallback, Overlay.OnClickListener &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. 마커에 클릭이벤트를 추가합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1590989262129&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;marker.setOnClickListener(this);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. 클릭을 했을 때 액션을 구현합니다. 저는 간단하게 마커가 클릭되었는지 체크 후 토스트를 띄워보았습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1590989317724&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    @Override
    public boolean onClick(@NonNull Overlay overlay) {
        if (overlay instanceof Marker) {
            Toast.makeText(this.getApplicationContext(), &quot;마커가 선택되었습니다&quot;, Toast.LENGTH_LONG).show();
            return true;
        }
        return false;
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;▼ 아래 그림처럼 마커를 클릭하면 토스트가 발생하는 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200601-141644_Wooa Studio.jpg&quot; data-origin-width=&quot;317&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zHA9x/btqEwf0qWyB/YWMaZYSdQsFFWmTbutqmJ0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zHA9x/btqEwf0qWyB/YWMaZYSdQsFFWmTbutqmJ0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zHA9x/btqEwf0qWyB/YWMaZYSdQsFFWmTbutqmJ0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzHA9x%2FbtqEwf0qWyB%2FYWMaZYSdQsFFWmTbutqmJ0%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200601-141644_Wooa Studio.jpg&quot; data-origin-width=&quot;317&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 전체코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1590989418012&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MainActivity extends AppCompatActivity implements OnMapReadyCallback, Overlay.OnClickListener {

    private static final String TAG = &quot;MainActivity&quot;;

    private static final int PERMISSION_REQUEST_CODE = 100;
    private static final String[] PERMISSIONS = {
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.ACCESS_COARSE_LOCATION
    };

    private FusedLocationSource mLocationSource;
    private NaverMap mNaverMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 지도 객체 생성
        FragmentManager fm = getSupportFragmentManager();
        MapFragment mapFragment = (MapFragment) fm.findFragmentById(R.id.map);
        if (mapFragment == null) {
            mapFragment = MapFragment.newInstance();
            fm.beginTransaction().add(R.id.map, mapFragment).commit();
        }

        // getMapAsync를 호출하여 비동기로 onMapReady 콜백 메서드 호출
        // onMapReady에서 NaverMap 객체를 받음
        mapFragment.getMapAsync(this);

        // 위치를 반환하는 구현체인 FusedLocationSource 생성
        mLocationSource =
                new FusedLocationSource(this, PERMISSION_REQUEST_CODE);
    }

    @Override
    public void onMapReady(@NonNull NaverMap naverMap) {
        Log.d(TAG, &quot;onMapReady&quot;);

        // 지도상에 마커 표시
        Marker marker = new Marker();
        marker.setPosition(new LatLng(37.5670135, 126.9783740));
        marker.setMap(naverMap);

        marker.setWidth(100);
        marker.setHeight(100);
        marker.setIcon(OverlayImage.fromResource(R.drawable.tour));
        marker.setOnClickListener(this);

        // NaverMap 객체 받아서 NaverMap 객체에 위치 소스 지정
        mNaverMap = naverMap;
        mNaverMap.setLocationSource(mLocationSource);

        // UI 컨트롤 재배치
        UiSettings uiSettings = mNaverMap.getUiSettings();
        uiSettings.setCompassEnabled(false); // 기본값 : true
        uiSettings.setScaleBarEnabled(false); // 기본값 : true
        uiSettings.setZoomControlEnabled(false); // 기본값 : true
        uiSettings.setLocationButtonEnabled(false); // 기본값 : false
        uiSettings.setLogoGravity(Gravity.RIGHT | Gravity.BOTTOM);

        CompassView compassView = findViewById(R.id.compass);
        compassView.setMap(mNaverMap);
        ScaleBarView scaleBarView = findViewById(R.id.scalebar);
        scaleBarView.setMap(mNaverMap);
        ZoomControlView zoomControlView = findViewById(R.id.zoom);
        zoomControlView.setMap(mNaverMap);
        LocationButtonView locationButtonView = findViewById(R.id.location);
        locationButtonView.setMap(mNaverMap);

        // 권한확인. 결과는 onRequestPermissionsResult 콜백 매서드 호출
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_REQUEST_CODE);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        // request code와 권한획득 여부 확인
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (grantResults.length &amp;gt; 0
                    &amp;amp;&amp;amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                mNaverMap.setLocationTrackingMode(LocationTrackingMode.Follow);
            }
        }
    }

    @Override
    public boolean onClick(@NonNull Overlay overlay) {
        if (overlay instanceof Marker) {
            Toast.makeText(this.getApplicationContext(), &quot;마커가 선택되었습니다&quot;, Toast.LENGTH_LONG).show();
            return true;
        }
        return false;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이번 포스팅에서는 마커 이미지 변경하는 방법과 마커에 클릭이벤트를 추가해서 클릭이 되었을 때 액션을 추가하는 방법에 대해서 알아보았습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;감사합니다:)&lt;/p&gt;</description>
      <category>Android 앱 개발/네이버 API 사용하기</category>
      <category>#네이버지도API #네이버지도마커이미지변경 #네이버지도마커 #네이버지도마커클릭이벤트 #마커클릭이벤트 #안드로이드앱개발 #네이버지도사용하기</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/11</guid>
      <comments>https://wooastudio.tistory.com/11#entry11comment</comments>
      <pubDate>Mon, 1 Jun 2020 14:31:57 +0900</pubDate>
    </item>
    <item>
      <title>Android WebView 사용하기</title>
      <link>https://wooastudio.tistory.com/10</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7; color: #000000;&quot;&gt;&lt;b&gt;Android&amp;nbsp;WebView&amp;nbsp;사용하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이번에는 안드로이드 WebView를 이용해서 웹사이트를 띄워보도록 하겠습니다. 웹뷰 사용은 굉장히 간단하므로 손쉽게 이용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xXbcP/btqEwfTGndG/AYsBT4TOOPT34Yu7mCrdD0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xXbcP/btqEwfTGndG/AYsBT4TOOPT34Yu7mCrdD0/img.jpg&quot; data-alt=&quot;Photo by gfk DSGN on Pixabay&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xXbcP/btqEwfTGndG/AYsBT4TOOPT34Yu7mCrdD0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxXbcP%2FbtqEwfTGndG%2FAYsBT4TOOPT34Yu7mCrdD0%2Fimg.jpg&quot; data-filename=&quot;개발정보 배경.jpg&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;450&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Photo by gfk DSGN on Pixabay&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; Android WebView 예제&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1. Manifest에서 인터넷을 사용할 수 있는 권한 추가를 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;그리고 &amp;lt;application&amp;gt; 부분에 usesCleartextTraffic을 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;추가하지 않으면 'ERR CLEARTEXT NOT PERMITTED' 에러가 발생합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1590720004921&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;AndroidManifest.xml

&amp;lt;uses-permission android:name=&quot;android.permission.INTERNET&quot;/&amp;gt;

    &amp;lt;application
        android:usesCleartextTraffic=&quot;true&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2. xml 파일에 WebView 위젯을 추가합니다. 저는 화면을 가득 채우도록 했는데 원하는 사이즈로 설정을 하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1590720259913&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;&amp;gt;
    
    &amp;lt;WebView
        android:id=&quot;@+id/webview&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot; /&amp;gt;
&amp;lt;/RelativeLayout&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3. Activity에 WebView를 load하는 코드를 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1590720317654&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MainActivity extends AppCompatActivity {

    private WebView mWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.setWebViewClient(new WebViewClient());
        mWebView.getSettings().setJavaScriptEnabled(true);

        mWebView.loadUrl(&quot;https://www.tistory.com/&quot;);


    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200529-113607_Wooa Studio.jpg&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yi0WT/btqEtOBaoX7/K8J6LbWmv8KbdXBdtWAzt1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yi0WT/btqEtOBaoX7/K8J6LbWmv8KbdXBdtWAzt1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yi0WT/btqEtOBaoX7/K8J6LbWmv8KbdXBdtWAzt1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyi0WT%2FbtqEtOBaoX7%2FK8J6LbWmv8KbdXBdtWAzt1%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200529-113607_Wooa Studio.jpg&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;600&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;티스토리 메인화면이 정상적으로 출력됨을 확인 할 수 있습니다.,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이번 포스팅에서는 WebView이용해서 간단히 웹사이트를 띄워보는 방법에 대해서 알아보았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;감사합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Android 앱 개발/Android 예제</category>
      <category>#Android예제 #AndroidWebView #WebView #WebView예제</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/10</guid>
      <comments>https://wooastudio.tistory.com/10#entry10comment</comments>
      <pubDate>Fri, 29 May 2020 11:48:44 +0900</pubDate>
    </item>
    <item>
      <title>[네이버 지도 API] UI 컨트롤 제어하기(나침반, 축척바, 줌버튼, 현위치 버튼, 네이버 로고)</title>
      <link>https://wooastudio.tistory.com/9</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;&lt;b&gt;[네이버 지도 API] UI 컨트롤 제어하기(나침반, 축척바, 줌버튼, 현위치 버튼, 네이버 로고)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이번에는 네이버 지도에서 유용하게 사용이 되는 UI 컨트롤을 제어해 보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;이전 포스팅이 궁금하시다면 아래 링크를 참고해 주세요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://wooastudio.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Android 앱 개발/네이버 API 사용하기] - [네이버 지도 API] 마커 / 현재위치 표시하기&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&quot;https://wooastudio.tistory.com/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Android 앱 개발/네이버 API 사용하기] - [네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;오늘 포스팅 내용은 아래와 같습니다.&lt;/p&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;background-color: #eeeeee; padding: 10px; border: 1px solid #c1c1c1;&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&amp;nbsp; 목&amp;nbsp; 차&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #9aa5ea;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;□ UI 컨트롤 활성화 / 비활성화&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;□ UI 컨트롤 위치 변경&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;□ 전체코드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;안드로이드 배경 이미지2.jpg&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chyVxC/btqDIncu6qQ/22q1sdd1zkDe3lEgrGlKpk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chyVxC/btqDIncu6qQ/22q1sdd1zkDe3lEgrGlKpk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chyVxC/btqDIncu6qQ/22q1sdd1zkDe3lEgrGlKpk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchyVxC%2FbtqDIncu6qQ%2F22q1sdd1zkDe3lEgrGlKpk%2Fimg.jpg&quot; data-filename=&quot;안드로이드 배경 이미지2.jpg&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;502&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; UI 컨트롤 활성화/비활성화&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;UI 컨트롤을 제어할 수 있는 UiSettings 객체를 받아서 활용합니다. UiSettings 객체는 하나의 NaverMap 객체와 1:1로 대응됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. UiSettings 객체를 받아옵니다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587826679570&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;UiSettings uiSettings = mNaverMap.getUiSettings();&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. 나침반, 축척바, 줌버튼, 현위치 버튼을 활성화 합니다. 네이버 로고의 경우 항상 보여져야 하기 때문에 활성/비활성을 제어할 수 있는 API를 제공하지 않습니다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587826969323&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        uiSettings.setCompassEnabled(true); // 기본값 : true
        uiSettings.setScaleBarEnabled(true); // 기본값 : true
        uiSettings.setZoomControlEnabled(true); // 기본값 : true
        uiSettings.setLocationButtonEnabled(true); // 기본값 : false&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 코드 실행 시 아래와 같이 표시됩니다. 우측 중간에 줌버튼, 좌상단에 나침반, 좌하단에 현위치 버튼 / 네이버 로그 / 축척바가 위치합니다.&lt;/p&gt;
&lt;p&gt;나침반의 경우는 바로 나타나지 않고 카메라가 회전되거나 틸트 되었을 때 활성화되고 원복 되면 자동으로 사라집니다.&lt;/p&gt;
&lt;p&gt;해당 위치가 네이버 지도에서 제공하는 UI 컨트롤의 기본 위치입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200426-000847_Wooa Studio.jpg&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjxiom/btqDGIu0JtQ/tTvuxEzhFHWC0RRK8Gkk20/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjxiom/btqDGIu0JtQ/tTvuxEzhFHWC0RRK8Gkk20/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjxiom/btqDGIu0JtQ/tTvuxEzhFHWC0RRK8Gkk20/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjxiom%2FbtqDGIu0JtQ%2FtTvuxEzhFHWC0RRK8Gkk20%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200426-000847_Wooa Studio.jpg&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;800&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. 나침반, 축척바, 줌버튼, 현위치 버튼을 비활성화 합니다. 당연히 화면에 아무것도 안보이겠죠.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587827486410&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        uiSettings.setCompassEnabled(false); // 기본값 : true
        uiSettings.setScaleBarEnabled(false); // 기본값 : true
        uiSettings.setZoomControlEnabled(false); // 기본값 : true
        uiSettings.setLocationButtonEnabled(false); // 기본값 : false&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200426-001152_Wooa Studio.jpg&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjfgFd/btqDIobumv4/MloVrnevaPicLv1TlAwaVK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjfgFd/btqDIobumv4/MloVrnevaPicLv1TlAwaVK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjfgFd/btqDIobumv4/MloVrnevaPicLv1TlAwaVK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjfgFd%2FbtqDIobumv4%2FMloVrnevaPicLv1TlAwaVK%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200426-001152_Wooa Studio.jpg&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;800&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; UI 컨트롤 위치 변경&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;UI 컨트롤의 위치를 변경시켜 보겠습니다. UiSettings로는 활성화 여부만 제어가 가능합니다. UI 컨트롤 위치를 변경시키기 위해서는 layout파일에서 위치를 변경하고자 하는 컨트롤을 뷰 형태로 추가해야 합니다.&lt;/p&gt;
&lt;p&gt;UI 컨트롤들을 모두 우측(네이버 로고는 우하단, 나머지는 모두 우상단)으로 이동시켜 보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1587828176719&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        MainActivity.java
        
        UiSettings uiSettings = mNaverMap.getUiSettings();
        uiSettings.setCompassEnabled(false); // 기본값 : true
        uiSettings.setScaleBarEnabled(false); // 기본값 : true
        uiSettings.setZoomControlEnabled(false); // 기본값 : true
        uiSettings.setLocationButtonEnabled(false); // 기본값 : false
        uiSettings.setLogoGravity(Gravity.RIGHT|Gravity.BOTTOM);

        CompassView compassView = findViewById(R.id.compass);
        compassView.setMap(mNaverMap);
        ScaleBarView scaleBarView = findViewById(R.id.scalebar);
        scaleBarView.setMap(mNaverMap);
        ZoomControlView zoomControlView = findViewById(R.id.zoom);
        zoomControlView.setMap(mNaverMap);
        LocationButtonView locationButtonView = findViewById(R.id.location);
        locationButtonView.setMap(mNaverMap);&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1587828217827&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;activity_main.xml

    &amp;lt;com.naver.maps.map.widget.LocationButtonView
        android:id=&quot;@+id/location&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_alignParentTop=&quot;true&quot;
        android:layout_alignParentRight=&quot;true&quot; /&amp;gt;

    &amp;lt;com.naver.maps.map.widget.ZoomControlView
        android:id=&quot;@+id/zoom&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@+id/location&quot;
        android:layout_alignParentRight=&quot;true&quot;/&amp;gt;

    &amp;lt;com.naver.maps.map.widget.CompassView
        android:id=&quot;@+id/compass&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@+id/zoom&quot;
        android:layout_alignParentRight=&quot;true&quot;/&amp;gt;

    &amp;lt;com.naver.maps.map.widget.ScaleBarView
        android:id=&quot;@+id/scalebar&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@+id/compass&quot;
        android:layout_alignParentRight=&quot;true&quot;/&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200426-002223_Wooa Studio.jpg&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CjVm2/btqDH0u4YJb/nAZ0H4kTDO3r0HiEzYNiwk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CjVm2/btqDH0u4YJb/nAZ0H4kTDO3r0HiEzYNiwk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CjVm2/btqDH0u4YJb/nAZ0H4kTDO3r0HiEzYNiwk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCjVm2%2FbtqDH0u4YJb%2FnAZ0H4kTDO3r0HiEzYNiwk%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200426-002223_Wooa Studio.jpg&quot; data-origin-width=&quot;426&quot; data-origin-height=&quot;800&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 전체 코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1587828347855&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;MainActivity.java

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

    private static final String TAG = &quot;MainActivity&quot;;

    private static final int PERMISSION_REQUEST_CODE = 100;
    private static final String[] PERMISSIONS = {
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.ACCESS_COARSE_LOCATION
    };

    private FusedLocationSource mLocationSource;
    private NaverMap mNaverMap;

    // 마커를 찍을 데이터
    private ArrayList&amp;lt;PlaceInfo&amp;gt; mPlaceInfoList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 지도 객체 생성
        FragmentManager fm = getSupportFragmentManager();
        MapFragment mapFragment = (MapFragment)fm.findFragmentById(R.id.map);
        if (mapFragment == null) {
            mapFragment = MapFragment.newInstance();
            fm.beginTransaction().add(R.id.map, mapFragment).commit();
        }

        // getMapAsync를 호출하여 비동기로 onMapReady 콜백 메서드 호출
        // onMapReady에서 NaverMap 객체를 받음
        mapFragment.getMapAsync(this);

        // 위치를 반환하는 구현체인 FusedLocationSource 생성
        mLocationSource =
                new FusedLocationSource(this, PERMISSION_REQUEST_CODE);
    }

    @Override
    public void onMapReady(@NonNull NaverMap naverMap) {
        Log.d( TAG, &quot;onMapReady&quot;);

        // 지도상에 마커 표시
        Marker marker = new Marker();
        marker.setPosition(new LatLng(37.5670135, 126.9783740));
        marker.setMap(naverMap);

        // NaverMap 객체 받아서 NaverMap 객체에 위치 소스 지정
        mNaverMap = naverMap;
        mNaverMap.setLocationSource(mLocationSource);

        // UI 컨트롤 재배치
        UiSettings uiSettings = mNaverMap.getUiSettings();
        uiSettings.setCompassEnabled(false); // 기본값 : true
        uiSettings.setScaleBarEnabled(false); // 기본값 : true
        uiSettings.setZoomControlEnabled(false); // 기본값 : true
        uiSettings.setLocationButtonEnabled(false); // 기본값 : false
        uiSettings.setLogoGravity(Gravity.RIGHT|Gravity.BOTTOM);

        CompassView compassView = findViewById(R.id.compass);
        compassView.setMap(mNaverMap);
        ScaleBarView scaleBarView = findViewById(R.id.scalebar);
        scaleBarView.setMap(mNaverMap);
        ZoomControlView zoomControlView = findViewById(R.id.zoom);
        zoomControlView.setMap(mNaverMap);
        LocationButtonView locationButtonView = findViewById(R.id.location);
        locationButtonView.setMap(mNaverMap);

        // 권한확인. 결과는 onRequestPermissionsResult 콜백 매서드 호출
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_REQUEST_CODE);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        // request code와 권한획득 여부 확인
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (grantResults.length &amp;gt; 0
                    &amp;amp;&amp;amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                mNaverMap.setLocationTrackingMode(LocationTrackingMode.Follow);
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1587828365078&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;activity_main.xml

&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;&amp;gt;

    &amp;lt;fragment
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot;
        android:id=&quot;@+id/map&quot;
        android:name=&quot;com.naver.maps.map.MapFragment&quot; /&amp;gt;

    &amp;lt;com.naver.maps.map.widget.LocationButtonView
        android:id=&quot;@+id/location&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_alignParentTop=&quot;true&quot;
        android:layout_alignParentRight=&quot;true&quot; /&amp;gt;

    &amp;lt;com.naver.maps.map.widget.ZoomControlView
        android:id=&quot;@+id/zoom&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@+id/location&quot;
        android:layout_alignParentRight=&quot;true&quot;/&amp;gt;

    &amp;lt;com.naver.maps.map.widget.CompassView
        android:id=&quot;@+id/compass&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@+id/zoom&quot;
        android:layout_alignParentRight=&quot;true&quot;/&amp;gt;

    &amp;lt;com.naver.maps.map.widget.ScaleBarView
        android:id=&quot;@+id/scalebar&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@+id/compass&quot;
        android:layout_alignParentRight=&quot;true&quot;/&amp;gt;


&amp;lt;/RelativeLayout&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;간단하게 UI 컨트롤을 제어하는 방법에 대해서 알아보았습니다.&lt;/p&gt;
&lt;p&gt;읽어주셔서 감사합니다:)&lt;/p&gt;</description>
      <category>Android 앱 개발/네이버 API 사용하기</category>
      <category>#네이버지도API #네이버지도 #네이버지도사용하기 #네이버지도UI컨트롤 #네이버지도UI컨트롤제어 #안드로이드앱개발</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/9</guid>
      <comments>https://wooastudio.tistory.com/9#entry9comment</comments>
      <pubDate>Sun, 26 Apr 2020 00:29:03 +0900</pubDate>
    </item>
    <item>
      <title>[네이버 지도 API] 마커 / 현재위치 표시하기</title>
      <link>https://wooastudio.tistory.com/5</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;&lt;b&gt;[네이버&amp;nbsp;지도&amp;nbsp;API]&amp;nbsp;마커&amp;nbsp;/&amp;nbsp;현재위치&amp;nbsp;표시하기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;지난 포스팅에 이어 네이버 지도에 마커와 현재위치를 표시해 보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;아직 네이버 지도 사용을 위한 준비가 되지 않았다면 아래 포스팅을 참고해 주세요.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://wooastudio.tistory.com/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;[네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기)&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1587479985743&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기)&quot; data-og-description=&quot;[네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기) 네이버 지도를 사용하기 위해서는 네이버 클라우드 플랫폼 가입 후 Client ID를 발급받아야 합니다. 이번 포스팅에서는 네이버 클라우드 플랫폼 가..&quot; data-og-host=&quot;wooastudio.tistory.com&quot; data-og-source-url=&quot;https://wooastudio.tistory.com/2&quot; data-og-url=&quot;https://wooastudio.tistory.com/2&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/YmAdJ/hyFKhOHgxp/Lh8awtSvyle8Iy2S1HylRk/img.jpg?width=800&amp;amp;height=500&amp;amp;face=0_0_800_500,https://scrap.kakaocdn.net/dn/caISHy/hyFLMl1oaU/qQgMOp7kQMbzkhKfmmFFbK/img.jpg?width=800&amp;amp;height=500&amp;amp;face=0_0_800_500,https://scrap.kakaocdn.net/dn/bpqCiQ/hyFKh81FIV/5I8dnY4cTpdUwMsIg3GJDk/img.png?width=863&amp;amp;height=844&amp;amp;face=0_0_863_844&quot;&gt;&lt;a href=&quot;https://wooastudio.tistory.com/2&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wooastudio.tistory.com/2&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/YmAdJ/hyFKhOHgxp/Lh8awtSvyle8Iy2S1HylRk/img.jpg?width=800&amp;amp;height=500&amp;amp;face=0_0_800_500,https://scrap.kakaocdn.net/dn/caISHy/hyFLMl1oaU/qQgMOp7kQMbzkhKfmmFFbK/img.jpg?width=800&amp;amp;height=500&amp;amp;face=0_0_800_500,https://scrap.kakaocdn.net/dn/bpqCiQ/hyFKh81FIV/5I8dnY4cTpdUwMsIg3GJDk/img.png?width=863&amp;amp;height=844&amp;amp;face=0_0_863_844');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;[네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;[네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기) 네이버 지도를 사용하기 위해서는 네이버 클라우드 플랫폼 가입 후 Client ID를 발급받아야 합니다. 이번 포스팅에서는 네이버 클라우드 플랫폼 가..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;wooastudio.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;오늘 포스팅의 내용은 아래와 같습니다.&lt;/p&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;background-color: #eeeeee; padding: 10px; border: 1px solid #c1c1c1;&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&amp;nbsp; 목&amp;nbsp; 차&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;□ 마커 표시하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;□ 현재위치 표시하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;□ 전체 코드&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;안드로이드 배경 이미지_수정.jpg&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b07D4w/btqDA4LcM7w/5QWO47lY2Fv6j0M55K8bSk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b07D4w/btqDA4LcM7w/5QWO47lY2Fv6j0M55K8bSk/img.jpg&quot; data-alt=&quot;Photo by andrekheren on Pixabay&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b07D4w/btqDA4LcM7w/5QWO47lY2Fv6j0M55K8bSk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb07D4w%2FbtqDA4LcM7w%2F5QWO47lY2Fv6j0M55K8bSk%2Fimg.jpg&quot; data-filename=&quot;안드로이드 배경 이미지_수정.jpg&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;502&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Photo by andrekheren on Pixabay&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 마커 표시하기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;xml에 정의하였던 MapFragment 객체를 받아옵니다. 그리고 getMapAsync() 함수를 호출합니다. Map이 준비가 완료되면 onMapReady() 콜백 메서드가 비동기적으로 호출됩니다. &lt;span style=&quot;color: #333333;&quot;&gt;onMapReady()가 호출된 후에 지도를 정상적으로 사용할 수 있습니다.&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. OnMapReadyCallback을 구현하기 위해 선언합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1587480829900&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MainActivity extends AppCompatActivity 
		implements OnMapReadyCallback {&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. getMapAsync()에 this를 넣어줘서 onMapReady()가 호출될 수 있게 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1587480897116&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        // 지도 객체 생성
        FragmentManager fm = getSupportFragmentManager();
        MapFragment mapFragment = (MapFragment)fm.findFragmentById(R.id.map);
        if (mapFragment == null) {
            mapFragment = MapFragment.newInstance();
            fm.beginTransaction().add(R.id.map, mapFragment).commit();
        }

        // getMapAsync를 호출하여 비동기로 onMapReady 콜백 메서드 호출
        // onMapReady에서 NaverMap 객체를 받음
        mapFragment.getMapAsync(this);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. onMapReady()가 호출되면 지도상에 마커를 표시합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1587481036223&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    @Override
    public void onMapReady(@NonNull NaverMap naverMap) {
        Log.d( TAG, &quot;onMapReady&quot;);

        // 지도상에 마커 표시
        Marker marker = new Marker();
        marker.setPosition(new LatLng(37.5670135, 126.9783740));
        marker.setMap(naverMap);
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200421-235808_Wooa Studio.jpg&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgii2d/btqDCac9AwD/0qkBHG470baUouabKVVQm0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgii2d/btqDCac9AwD/0qkBHG470baUouabKVVQm0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgii2d/btqDCac9AwD/0qkBHG470baUouabKVVQm0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbgii2d%2FbtqDCac9AwD%2F0qkBHG470baUouabKVVQm0%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200421-235808_Wooa Studio.jpg&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;712&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 현재위치 표시하기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;현재위치를 받기 위해서는 위치정보 사용을 위한 권한이 필요합니다. 그리고 구글에서 제공하는 FusedLocationSource를 이용해서 위치를 받아옵니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. AndroidManifest.xml에 위치정보 사용을 위해 권한을 추가합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1587481260816&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;uses-permission android:name=&quot;android.permission.ACCESS_FINE_LOCATION&quot; /&amp;gt;
&amp;lt;uses-permission android:name=&quot;android.permission.ACCESS_COARSE_LOCATION&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. &lt;span style=&quot;color: #333333;&quot;&gt;FusedLocationSource를 사용하기 위해 앱 모듈의 build.gradle에 play-services-location 라이브러리를 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587481329856&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;implementation 'com.google.android.gms:play-services-location:17.0.0'&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. MainActivity에서 &lt;span style=&quot;color: #333333;&quot;&gt;FusedLocationSource를 생성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1587481379840&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mLocationSource =
                new FusedLocationSource(this, PERMISSION_REQUEST_CODE);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4. onMapReady() 함수 내에서 NaverMap 객체를 받아서 위치소스를 지정합니다. 그리고 위치정보 사용을 위해서 권한이 정상적으로 있는지 확인합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1587481443237&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;        // NaverMap 객체 받아서 NaverMap 객체에 위치 소스 지정
        mNaverMap = naverMap;
        mNaverMap.setLocationSource(mLocationSource);

        // 권한확인. 결과는 onRequestPermissionsResult 콜백 매서드 호출
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_REQUEST_CODE);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5. 권한 확인의 결과는 onRequestPermissionsResult() 에서 받을 수 있습니다. 권한이 정상적으로 부여가 되었다면 현재위치를 표시합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;setLocationTrackingMode() 함수를 이용해서 위치 추적 모드를 변경할 수 있습니다.&lt;/p&gt;
&lt;p&gt;(None, NoFollow, Follow, Face)&lt;/p&gt;
&lt;pre id=&quot;code_1587481515451&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        // request code와 권한획득 여부 확인
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (grantResults.length &amp;gt; 0
                    &amp;amp;&amp;amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                mNaverMap.setLocationTrackingMode(LocationTrackingMode.Follow);
            }
        }
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200421-235813_Wooa Studio.jpg&quot; data-origin-width=&quot;119&quot; data-origin-height=&quot;101&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5sDzx/btqDACg7WU5/wwAUwntdTLChc0YSF2sSbk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5sDzx/btqDACg7WU5/wwAUwntdTLChc0YSF2sSbk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5sDzx/btqDACg7WU5/wwAUwntdTLChc0YSF2sSbk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5sDzx%2FbtqDACg7WU5%2FwwAUwntdTLChc0YSF2sSbk%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200421-235813_Wooa Studio.jpg&quot; data-origin-width=&quot;119&quot; data-origin-height=&quot;101&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 전체 코드&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;MainActivity 전체 코드는 아래와 같습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1587481655356&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

    private static final String TAG = &quot;MainActivity&quot;;

    private static final int PERMISSION_REQUEST_CODE = 100;
    private static final String[] PERMISSIONS = {
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.ACCESS_COARSE_LOCATION
    };

    private FusedLocationSource mLocationSource;
    private NaverMap mNaverMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 지도 객체 생성
        FragmentManager fm = getSupportFragmentManager();
        MapFragment mapFragment = (MapFragment)fm.findFragmentById(R.id.map);
        if (mapFragment == null) {
            mapFragment = MapFragment.newInstance();
            fm.beginTransaction().add(R.id.map, mapFragment).commit();
        }

        // getMapAsync를 호출하여 비동기로 onMapReady 콜백 메서드 호출
        // onMapReady에서 NaverMap 객체를 받음
        mapFragment.getMapAsync(this);

        // 위치를 반환하는 구현체인 FusedLocationSource 생성
        mLocationSource =
                new FusedLocationSource(this, PERMISSION_REQUEST_CODE);
    }

    @Override
    public void onMapReady(@NonNull NaverMap naverMap) {
        Log.d( TAG, &quot;onMapReady&quot;);

        // 지도상에 마커 표시
        Marker marker = new Marker();
        marker.setPosition(new LatLng(37.5670135, 126.9783740));
        marker.setMap(naverMap);

        // NaverMap 객체 받아서 NaverMap 객체에 위치 소스 지정
        mNaverMap = naverMap;
        mNaverMap.setLocationSource(mLocationSource);

        // 권한확인. 결과는 onRequestPermissionsResult 콜백 매서드 호출
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_REQUEST_CODE);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

        // request code와 권한획득 여부 확인
        if (requestCode == PERMISSION_REQUEST_CODE) {
            if (grantResults.length &amp;gt; 0
                    &amp;amp;&amp;amp; grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                mNaverMap.setLocationTrackingMode(LocationTrackingMode.Follow);
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;이상으로 네이버 지도에 마커와 현재위치를 표시하는 방법을 알아보았습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;읽어주셔서 감사합니다.&lt;/p&gt;</description>
      <category>Android 앱 개발/네이버 API 사용하기</category>
      <category>#네이버지도API #네이버지도 #네이버지도사용하기 #네이버지도마커표시 #네이버지도현재위치가져오기 #안드로이드앱개발</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/5</guid>
      <comments>https://wooastudio.tistory.com/5#entry5comment</comments>
      <pubDate>Wed, 22 Apr 2020 03:12:39 +0900</pubDate>
    </item>
    <item>
      <title>[네이버 지도 API] 시작하기(Client ID 발급, 앱에 지도 띄우기)</title>
      <link>https://wooastudio.tistory.com/2</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;&lt;b&gt;[네이버&amp;nbsp;지도&amp;nbsp;API]&amp;nbsp;시작하기(Client&amp;nbsp;ID&amp;nbsp;발급,&amp;nbsp;앱에&amp;nbsp;지도&amp;nbsp;띄우기)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;네이버 지도를 사용하기 위해서는 네이버 클라우드 플랫폼 가입 후 Client ID를 발급받아야 합니다.&lt;/p&gt;
&lt;p&gt;이번 포스팅에서는 네이버 클라우드 플랫폼 가입 / Client ID 발급과 이를 활용해서 네이버 지도를 띄우는 안드로이드 앱을 만들어 봅니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;txc-textbox&quot; style=&quot;background-color: #eeeeee; padding: 10px; border: 1px solid #c1c1c1;&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&amp;nbsp; 목&amp;nbsp; 차&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;▼&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;□ &lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;네이버 클라우드 플랫폼 가입 / Client ID 발급&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;□ &lt;/span&gt;&lt;/b&gt;안드로이드 앱에 네이버 지도 띄우기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;android-199225_1280.jpg&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/coGwIG/btqDzkHS1eQ/zB1bFGRaZ0s0IbpE6o6Fbk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/coGwIG/btqDzkHS1eQ/zB1bFGRaZ0s0IbpE6o6Fbk/img.jpg&quot; data-alt=&quot;Photo by andrekheren on Pixabay&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/coGwIG/btqDzkHS1eQ/zB1bFGRaZ0s0IbpE6o6Fbk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcoGwIG%2FbtqDzkHS1eQ%2FzB1bFGRaZ0s0IbpE6o6Fbk%2Fimg.jpg&quot; data-filename=&quot;android-199225_1280.jpg&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;502&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Photo by andrekheren on Pixabay&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt; 네이버 클라우드 플랫폼 가입 / Client ID 발급&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;1. 네이버 클라우드 플랫폼 사이트로 이동합니다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;a href=&quot;ncloud.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;ncloud.com&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1587469218746&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;NAVER CLOUD PLATFORM&quot; data-og-description=&quot;cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification&quot; data-og-host=&quot;www.ncloud.com&quot; data-og-source-url=&quot;http://ncloud.com&quot; data-og-url=&quot;https://www.ncloud.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hNhM4/hyFKoGX6MW/vbN6mwF0kNg9qVEEYVoOeK/img.jpg?width=526&amp;amp;height=274&amp;amp;face=0_0_526_274&quot;&gt;&lt;a href=&quot;http://ncloud.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://ncloud.com&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hNhM4/hyFKoGX6MW/vbN6mwF0kNg9qVEEYVoOeK/img.jpg?width=526&amp;amp;height=274&amp;amp;face=0_0_526_274');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;NAVER CLOUD PLATFORM&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.ncloud.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. 상단 메뉴 중 서비스 -&amp;gt; Application Service의 Maps를 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처1.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;542&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pE85p/btqDzjvq6Iz/2NKqCGnSO4Rlo2A4qAyXJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pE85p/btqDzjvq6Iz/2NKqCGnSO4Rlo2A4qAyXJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pE85p/btqDzjvq6Iz/2NKqCGnSO4Rlo2A4qAyXJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpE85p%2FbtqDzjvq6Iz%2F2NKqCGnSO4Rlo2A4qAyXJK%2Fimg.png&quot; data-filename=&quot;캡처1.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;542&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처2.png&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;733&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5NoRG/btqDCbbW81u/4gJSzSMHOiz3z867zSv620/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5NoRG/btqDCbbW81u/4gJSzSMHOiz3z867zSv620/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5NoRG/btqDCbbW81u/4gJSzSMHOiz3z867zSv620/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5NoRG%2FbtqDCbbW81u%2F4gJSzSMHOiz3z867zSv620%2Fimg.png&quot; data-filename=&quot;캡처2.png&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;733&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. 이용 신청하기 버튼을 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처3.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wmvHH/btqDyNwTBep/v9mnYQiGqkzkmJDGUZ3EMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wmvHH/btqDyNwTBep/v9mnYQiGqkzkmJDGUZ3EMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wmvHH/btqDyNwTBep/v9mnYQiGqkzkmJDGUZ3EMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwmvHH%2FbtqDyNwTBep%2Fv9mnYQiGqkzkmJDGUZ3EMK%2Fimg.png&quot; data-filename=&quot;캡처3.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;694&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4. 계정이 없으므로&amp;nbsp;계정을 생성합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처4.PNG&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;654&quot; width=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c33EQN/btqDzDUL59C/LqBP7dlwO1sb8A3qsTxy71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c33EQN/btqDzDUL59C/LqBP7dlwO1sb8A3qsTxy71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c33EQN/btqDzDUL59C/LqBP7dlwO1sb8A3qsTxy71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc33EQN%2FbtqDzDUL59C%2FLqBP7dlwO1sb8A3qsTxy71%2Fimg.png&quot; data-filename=&quot;캡처4.PNG&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;654&quot; width=&quot;600&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처5.PNG&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;797&quot; width=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bM46Ar/btqDDwfA2bd/zkEByhEWiRHBOsDtPRRF7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bM46Ar/btqDDwfA2bd/zkEByhEWiRHBOsDtPRRF7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bM46Ar/btqDDwfA2bd/zkEByhEWiRHBOsDtPRRF7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbM46Ar%2FbtqDDwfA2bd%2FzkEByhEWiRHBOsDtPRRF7k%2Fimg.png&quot; data-filename=&quot;캡처5.PNG&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;797&quot; width=&quot;600&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처6.PNG&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;657&quot; width=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dEyOrw/btqDzETHZ2c/OElcbk5JcVaAdGQhG4Skq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dEyOrw/btqDzETHZ2c/OElcbk5JcVaAdGQhG4Skq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dEyOrw/btqDzETHZ2c/OElcbk5JcVaAdGQhG4Skq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdEyOrw%2FbtqDzETHZ2c%2FOElcbk5JcVaAdGQhG4Skq0%2Fimg.png&quot; data-filename=&quot;캡처6.PNG&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;657&quot; width=&quot;600&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처7.PNG&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;844&quot; width=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ci0Mx5/btqDyOoXK4i/iPjY7kvtpzImlDjZpt2nmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ci0Mx5/btqDyOoXK4i/iPjY7kvtpzImlDjZpt2nmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ci0Mx5/btqDyOoXK4i/iPjY7kvtpzImlDjZpt2nmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fci0Mx5%2FbtqDyOoXK4i%2FiPjY7kvtpzImlDjZpt2nmK%2Fimg.png&quot; data-filename=&quot;캡처7.PNG&quot; data-origin-width=&quot;863&quot; data-origin-height=&quot;844&quot; width=&quot;600&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처8.PNG&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;633&quot; width=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tr2n9/btqDzjhUVcf/JB1kBudVMsHIKfjhF4YUak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tr2n9/btqDzjhUVcf/JB1kBudVMsHIKfjhF4YUak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tr2n9/btqDzjhUVcf/JB1kBudVMsHIKfjhF4YUak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftr2n9%2FbtqDzjhUVcf%2FJB1kBudVMsHIKfjhF4YUak%2Fimg.png&quot; data-filename=&quot;캡처8.PNG&quot; data-origin-width=&quot;555&quot; data-origin-height=&quot;633&quot; width=&quot;600&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5. 회원가입 완료 후 하단에 있는 결제 수단 등록을 선택합니다. &lt;span style=&quot;color: #333333;&quot;&gt;네이버 지도 같은 경우 무료로 이용을 할수 있지만 &lt;/span&gt;결제 수단을 등록하지 않으면 네이버 API를 사용할 수 없으므로 결제 수단을 등록합니다.&lt;/p&gt;
&lt;p&gt;현재 이벤트가 진행되고 있어서 할인 크레딧도 신청해 봅니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처9.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;727&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wkBvC/btqDCaD6Gem/tLFEbddPqzq2vgJUPkR3n0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wkBvC/btqDCaD6Gem/tLFEbddPqzq2vgJUPkR3n0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wkBvC/btqDCaD6Gem/tLFEbddPqzq2vgJUPkR3n0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwkBvC%2FbtqDCaD6Gem%2FtLFEbddPqzq2vgJUPkR3n0%2Fimg.png&quot; data-filename=&quot;캡처9.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;727&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처10.PNG&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;282&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqFKMn/btqDyFsa5Ka/79PkK9LFKwBejbAtkGmBU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqFKMn/btqDyFsa5Ka/79PkK9LFKwBejbAtkGmBU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqFKMn/btqDyFsa5Ka/79PkK9LFKwBejbAtkGmBU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqFKMn%2FbtqDyFsa5Ka%2F79PkK9LFKwBejbAtkGmBU0%2Fimg.png&quot; data-filename=&quot;캡처10.PNG&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;282&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;6. 가입이 완료 되었으므로 3번 화면에서 이용 신청하기를 다시 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처3.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3UG5x/btqDzlmtvJ3/vsyMux2lcj8b5lbBhu2ADK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3UG5x/btqDzlmtvJ3/vsyMux2lcj8b5lbBhu2ADK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3UG5x/btqDzlmtvJ3/vsyMux2lcj8b5lbBhu2ADK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3UG5x%2FbtqDzlmtvJ3%2FvsyMux2lcj8b5lbBhu2ADK%2Fimg.png&quot; data-filename=&quot;캡처3.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;694&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;7. 콘솔로 이동이 되고 AI NAVER API 하단의 Application 메뉴를 선택합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;스크롤을 하단으로 내려 '+ Application 등록' 버튼을 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처12.PNG&quot; data-origin-width=&quot;995&quot; data-origin-height=&quot;952&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ff5Eb/btqDCbwe5vH/0zmT6BjKUmTA48szqLAUw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ff5Eb/btqDCbwe5vH/0zmT6BjKUmTA48szqLAUw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ff5Eb/btqDCbwe5vH/0zmT6BjKUmTA48szqLAUw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFf5Eb%2FbtqDCbwe5vH%2F0zmT6BjKUmTA48szqLAUw0%2Fimg.png&quot; data-filename=&quot;캡처12.PNG&quot; data-origin-width=&quot;995&quot; data-origin-height=&quot;952&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;8. 이용&lt;span style=&quot;color: #333333;&quot;&gt;약관에 동의하고 확인을 선택합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처13.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcp4LS/btqDyNcw90q/KW97aVNNJhJmpC2jQrc2M0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcp4LS/btqDyNcw90q/KW97aVNNJhJmpC2jQrc2M0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcp4LS/btqDyNcw90q/KW97aVNNJhJmpC2jQrc2M0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbcp4LS%2FbtqDyNcw90q%2FKW97aVNNJhJmpC2jQrc2M0%2Fimg.png&quot; data-filename=&quot;캡처13.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;662&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;9. 모바일앱을 개발할 예정이므로 Mobile Dynamic Map을 선택합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; 스크롤을 아래로 내려 개발하고자 하는 앱의 패키지명을 입력하고 등록 버튼을 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처14.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;742&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FFsUG/btqDyEtk1Yq/wWMUKbcdTTJnbIq2bGvKzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FFsUG/btqDyEtk1Yq/wWMUKbcdTTJnbIq2bGvKzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FFsUG/btqDyEtk1Yq/wWMUKbcdTTJnbIq2bGvKzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFFsUG%2FbtqDyEtk1Yq%2FwWMUKbcdTTJnbIq2bGvKzk%2Fimg.png&quot; data-filename=&quot;캡처14.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;742&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처19.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;309&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmjKpp/btqDyMEDPWn/INypH1CfBCR4I38iJwIBD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmjKpp/btqDyMEDPWn/INypH1CfBCR4I38iJwIBD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmjKpp/btqDyMEDPWn/INypH1CfBCR4I38iJwIBD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmjKpp%2FbtqDyMEDPWn%2FINypH1CfBCR4I38iJwIBD0%2Fimg.png&quot; data-filename=&quot;캡처19.PNG&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;309&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;10. 앱이 정상적으로 등록되었습니다. 앱 이름 아래에 인증정보 버튼을 누르면 Client ID를 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처15.PNG&quot; data-origin-width=&quot;1898&quot; data-origin-height=&quot;439&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CzlAK/btqDyD2d3pC/ov29m5DrHuWOHb9mQKXIck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CzlAK/btqDyD2d3pC/ov29m5DrHuWOHb9mQKXIck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CzlAK/btqDyD2d3pC/ov29m5DrHuWOHb9mQKXIck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCzlAK%2FbtqDyD2d3pC%2Fov29m5DrHuWOHb9mQKXIck%2Fimg.png&quot; data-filename=&quot;캡처15.PNG&quot; data-origin-width=&quot;1898&quot; data-origin-height=&quot;439&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;캡처17.PNG&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwN4CY/btqDzDN0LP5/t9rBw77ZcsUEmUJHeoyQJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwN4CY/btqDzDN0LP5/t9rBw77ZcsUEmUJHeoyQJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwN4CY/btqDzDN0LP5/t9rBw77ZcsUEmUJHeoyQJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwN4CY%2FbtqDzDN0LP5%2Ft9rBw77ZcsUEmUJHeoyQJ1%2Fimg.png&quot; data-filename=&quot;캡처17.PNG&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;597&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #8cb3be;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;안드로이드 앱에 네이버 지도 띄우기&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;1. 가이드 문서를 확인합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;a href=&quot;https://docs.ncloud.com/ko/naveropenapi_v3/maps/android-sdk/v3/start.html&quot;&gt;&lt;b&gt;Mobile Dynamic Map(v3) Android 시작하기&lt;/b&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1587470282931&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;설명서&quot; data-og-description=&quot;시작하기 네이버 지도 SDK를 사용하기 위해서는 네이버 클라우드 플랫폼에서 클라이언트 ID를 발급받고, 발급받은 ID를 SDK에 지정해야 합니다. 클라이언트 ID 발급 네이버 지도 모바일 SDK API를 사용하려면 다음과 같이 애플리케이션을 등록하고 클라이언트 ID를 발급받아야 합니다. 콘솔의 AI&amp;middot;Application Service &amp;gt; AI&amp;middot;NAVER API &amp;gt; Application에서 애플리케이션을 등록합니다.(자세한 방법은 Application 사용&quot; data-og-host=&quot;docs.ncloud.com&quot; data-og-source-url=&quot;https://docs.ncloud.com/ko/naveropenapi_v3/maps/android-sdk/v3/start.html&quot; data-og-url=&quot;https://docs.ncloud.com/ko/naveropenapi_v3/maps/android-sdk/v3/start.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.ncloud.com/ko/naveropenapi_v3/maps/android-sdk/v3/start.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.ncloud.com/ko/naveropenapi_v3/maps/android-sdk/v3/start.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;설명서&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;시작하기 네이버 지도 SDK를 사용하기 위해서는 네이버 클라우드 플랫폼에서 클라이언트 ID를 발급받고, 발급받은 ID를 SDK에 지정해야 합니다. 클라이언트 ID 발급 네이버 지도 모바일 SDK API를 사용하려면 다음과 같이 애플리케이션을 등록하고 클라이언트 ID를 발급받아야 합니다. 콘솔의 AI&amp;middot;Application Service &amp;gt; AI&amp;middot;NAVER API &amp;gt; Application에서 애플리케이션을 등록합니다.(자세한 방법은 Application 사용&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;docs.ncloud.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;2. 안드로이드 프로젝트를 생성하고 생성한 프로젝트에 의존성을 추가합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;- 프로젝트 수준 build.gradle에 저장소 추가&lt;/p&gt;
&lt;pre id=&quot;code_1587470513854&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;build.gradle (&amp;lt;project&amp;gt;/build.gradle)

allprojects {
    repositories {
        google()
        jcenter()

        // 네이버 지도 저장소
        maven {
            url 'https://navercorp.bintray.com/maps'
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;- App 수준 build.gradle에 의존성 추가&lt;/p&gt;
&lt;pre id=&quot;code_1587470542438&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;build.gradle (&amp;lt;project&amp;gt;/&amp;lt;app-module&amp;gt;/build.gradle)

dependencies {
    implementation 'com.naver.maps:map-sdk:3.7.1'
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. Client ID 설정&lt;/p&gt;
&lt;p&gt;AndroidManifest.xml에 Client ID를 설정합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1587470695014&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;AndroidManifest.xml

&amp;lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    package=&quot;&quot;&amp;gt;

    &amp;lt;application
        android:allowBackup=&quot;true&quot;
        android:icon=&quot;@mipmap/ic_launcher&quot;
        android:label=&quot;@string/app_name&quot;
        android:roundIcon=&quot;@mipmap/ic_launcher_round&quot;
        android:supportsRtl=&quot;true&quot;
        android:theme=&quot;@style/AppTheme&quot;&amp;gt;

        &amp;lt;meta-data
            android:name=&quot;com.naver.maps.map.CLIENT_ID&quot;
            android:value=&quot;YOUR_CLIENT_ID_HERE&quot; /&amp;gt;

        &amp;lt;activity android:name=&quot;.MainActivity&quot;&amp;gt;
            &amp;lt;intent-filter&amp;gt;
                &amp;lt;action android:name=&quot;android.intent.action.MAIN&quot; /&amp;gt;

                &amp;lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&amp;gt;
            &amp;lt;/intent-filter&amp;gt;
        &amp;lt;/activity&amp;gt;
    &amp;lt;/application&amp;gt;

&amp;lt;/manifest&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4. xml에 네이버 지도 추가&lt;/p&gt;
&lt;pre id=&quot;code_1587470750954&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;activity_main.xml

&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;androidx.constraintlayout.widget.ConstraintLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    tools:context=&quot;.MainActivity&quot;&amp;gt;

    &amp;lt;fragment android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot;
        android:id=&quot;@+id/map&quot;
        android:name=&quot;com.naver.maps.map.MapFragment&quot; /&amp;gt;

&amp;lt;/androidx.constraintlayout.widget.ConstraintLayout&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;5. 확인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200421-210629_Wooa Studio.jpg&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d9jzyW/btqDDvVjjQw/GOMHPKpLMKRAFPKkmLU4Q1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d9jzyW/btqDDvVjjQw/GOMHPKpLMKRAFPKkmLU4Q1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d9jzyW/btqDDvVjjQw/GOMHPKpLMKRAFPKkmLU4Q1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd9jzyW%2FbtqDDvVjjQw%2FGOMHPKpLMKRAFPKkmLU4Q1%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200421-210629_Wooa Studio.jpg&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;800&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;네이버 지도가 정상적으로 출력됨을 확인할 수 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;이번 포스팅에서는 네이버 지도 API 사용을 위해 기본 준비사항 진행 및 간단하게 네이버 지도를 앱에 띄워보았습니다.&lt;/p&gt;
&lt;p&gt;다음에는 네이버 지도에 마커를 표시하는 포스팅을 진행하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;읽어주셔서 감사합니다.&lt;/p&gt;</description>
      <category>Android 앱 개발/네이버 API 사용하기</category>
      <category>#네이버API #네이버mapAPI #네이버클라우드플랫폼 #네이버지도사용하기 #안드로이드앱개발</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/2</guid>
      <comments>https://wooastudio.tistory.com/2#entry2comment</comments>
      <pubDate>Tue, 21 Apr 2020 20:27:07 +0900</pubDate>
    </item>
    <item>
      <title>ExtendedFloatingActionButton 사용 방법</title>
      <link>https://wooastudio.tistory.com/1</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;ExtendedFloatingActionButton&amp;nbsp;사용&amp;nbsp;방법&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ExtendedFloatingActionButton 사용법에 대해서 알아보겠습니다. FloatingActionButton의 확장형으로 기존 FloatingActionButton이 이미지 하나로만 디스플레이 되었다면 ExtendedFloatingActionButton은 이미지와 텍스트를 같이 보여줄 수 있습니다. FloatingActionButton을 사용해서 비슷하게 구현할 수 있지만 ExtendedFloatingActionButton을 사용하면 그런 수고를 덜할 수 있겠죠. 아래 예제를 통해서 자세히 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;u&gt;&lt;b&gt;ExtendedFloatingActionButton 사용 예&lt;/b&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Screenshot_20200327-225352_Wooa Studio-horz.jpg&quot; data-origin-width=&quot;2180&quot; data-origin-height=&quot;2280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sqwLY/btqC6k9bUtM/yg4VtXCHAgdWUjkiBRVLXK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sqwLY/btqC6k9bUtM/yg4VtXCHAgdWUjkiBRVLXK/img.jpg&quot; data-alt=&quot;좌 : ExtendedFloatingActionButton, 우 : FloatingActionButton(삼성 기본 문자 앱)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sqwLY/btqC6k9bUtM/yg4VtXCHAgdWUjkiBRVLXK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsqwLY%2FbtqC6k9bUtM%2Fyg4VtXCHAgdWUjkiBRVLXK%2Fimg.jpg&quot; data-filename=&quot;Screenshot_20200327-225352_Wooa Studio-horz.jpg&quot; data-origin-width=&quot;2180&quot; data-origin-height=&quot;2280&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;좌 : ExtendedFloatingActionButton, 우 : FloatingActionButton(삼성 기본 문자 앱)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Extended&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton과 &lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton을 비교해 보았습니다. 이미지와 텍스트를 함께 디스플레이 할 때는 Extended&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton을 사용하고 이미지만 사용할 때는 &lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton을 사용하면 됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그럼 아래에서는 실제 코드를 통해 Extended&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton을 어떻게 구현할 수 있는지 알아보겠습니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;u&gt;&lt;b&gt;ExtendedFloatingActionButton 구현&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;1. Gradle에 라이브러리 추가&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1585719925278&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;build.gradle (Module:app)

dependencies {
    implementation 'com.google.android.material:material:1.2.0-alpha05'
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Extended&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton을 사용하기 위해 Gradle에 라이브러리를 추가합니다. material components이므로 관련 라이브러리를 추가합니다.(현재 최신 버전이 1.2.0-alpha05입니다.)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2. 레이아웃 작성&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1585720048832&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;activity_main.xml

&amp;lt;com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
        android:id=&quot;@+id/fab&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:theme=&quot;@style/MaterialTheme&quot;
        android:layout_alignParentBottom=&quot;true&quot;
        android:layout_alignParentRight=&quot;true&quot;
        android:layout_marginBottom=&quot;20dp&quot;
        android:layout_marginRight=&quot;20dp&quot;
        android:text=&quot;Test&quot;
        app:icon=&quot;@drawable/share&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;activity_main.xml에 &lt;span style=&quot;color: #333333;&quot;&gt;Extended&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton을 정의합니다. 저는 MainActivity에서 바로 사용을 하였는데 다른 곳에서 쓰실 분들은 관련 xml에 정의하시면 됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;3. styles.xml에 theme 적용&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1585720165425&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;styles.xml

&amp;lt;style name=&quot;MaterialTheme&quot; parent=&quot;Theme.MaterialComponents.Light.DarkActionBar&quot;&amp;gt;
        &amp;lt;!-- Customize your theme here. --&amp;gt;
        &amp;lt;item name=&quot;colorPrimary&quot;&amp;gt;@color/colorPrimary&amp;lt;/item&amp;gt;
        &amp;lt;item name=&quot;colorPrimaryDark&quot;&amp;gt;@color/colorPrimaryDark&amp;lt;/item&amp;gt;
        &amp;lt;item name=&quot;colorAccent&quot;&amp;gt;@color/colorAccent&amp;lt;/item&amp;gt;
        &amp;lt;item name=&quot;android:windowContentOverlay&quot;&amp;gt;@null&amp;lt;/item&amp;gt;
    &amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Extended&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton 사용을 위해서 Material 테마 적용이 필수입니다. 위와 같이 MaterialComponents 테마를 적용해 주시고 Color값들은 원하는 값으로 적용을 하면 됩니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;4. MainActivity 구현&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1585720249798&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;MainActivity.java

ExtendedFloatingActionButton fab = (ExtendedFloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // to do
            }
        });&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;버튼이 클릭되었을 때 특정 동작을 수행할 수 있도록 구현하였습니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton에 버튼도 같이 사용하고 싶으셨던 분들은 이제부터 &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Extended&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton을 사용해서 간편하게 &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;FloatingActionButton에 이미지와 텍스트를 디스플레이 하실 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;감사합니다:)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Android 앱 개발/Android 예제</category>
      <author>||| : ) |||</author>
      <guid isPermaLink="true">https://wooastudio.tistory.com/1</guid>
      <comments>https://wooastudio.tistory.com/1#entry1comment</comments>
      <pubDate>Wed, 1 Apr 2020 14:55:56 +0900</pubDate>
    </item>
  </channel>
</rss>