<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Crazy Lazy</title>
    <link>https://crazy-lazy.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 25 Sep 2026 00:15:20 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Crazy Lazy</managingEditor>
    <image>
      <title>Crazy Lazy</title>
      <url>https://tistory1.daumcdn.net/tistory/4723817/attach/95aca99f641348bca00a9ec98a8c66f3</url>
      <link>https://crazy-lazy.tistory.com</link>
    </image>
    <item>
      <title>Fbx 의 Avatar Configuration Issue.</title>
      <link>https://crazy-lazy.tistory.com/156</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 중 Character 를 구매하여 사용 중인데 Humanoid 로 사용 중 일부 손 동작이 어색해 확인해보니 아래와 같이 관절에 문제가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;369&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfFaed/dJMcagdogrJ/hvSg1uWHzyiHk9Lr0bwVlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfFaed/dJMcagdogrJ/hvSg1uWHzyiHk9Lr0bwVlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfFaed/dJMcagdogrJ/hvSg1uWHzyiHk9Lr0bwVlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfFaed%2FdJMcagdogrJ%2FhvSg1uWHzyiHk9Lr0bwVlk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;615&quot; height=&quot;369&quot; data-origin-width=&quot;615&quot; data-origin-height=&quot;369&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;렌더러를 통해 뼈대를 확인해본 결과, 아래와 같이 뼈대는 정상적으로 이어져 있었고,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1813&quot; data-origin-height=&quot;821&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b13jxY/dJMcac9O9bU/eCTskv1pSQIzcyGzm781m1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b13jxY/dJMcac9O9bU/eCTskv1pSQIzcyGzm781m1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b13jxY/dJMcac9O9bU/eCTskv1pSQIzcyGzm781m1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb13jxY%2FdJMcac9O9bU%2FeCTskv1pSQIzcyGzm781m1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1813&quot; height=&quot;821&quot; data-origin-width=&quot;1813&quot; data-origin-height=&quot;821&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유니티에서의 관절 할당도 아래와 같이 정상적으로 되어 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;466&quot; data-origin-height=&quot;771&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QDUFK/dJMcabC8WKa/yInt6PbVvxWitaYkh6CnUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QDUFK/dJMcabC8WKa/yInt6PbVvxWitaYkh6CnUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QDUFK/dJMcabC8WKa/yInt6PbVvxWitaYkh6CnUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQDUFK%2FdJMcabC8WKa%2FyInt6PbVvxWitaYkh6CnUK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;466&quot; height=&quot;771&quot; data-origin-width=&quot;466&quot; data-origin-height=&quot;771&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Reference 를 찾아본 결과, 유니티에서 요구하는 T Pose 에 부합하지 않는 위치/각도 일 때 문제가 발생할 수 있다는 것을 찾았고, 이를 아래와 같이 적용하여 해결하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1622&quot; data-origin-height=&quot;818&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byIM7E/dJMb99L3Q4S/8ejt4YjYkkGwiuVbi7DJpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byIM7E/dJMb99L3Q4S/8ejt4YjYkkGwiuVbi7DJpK/img.png&quot; data-alt=&quot;우측 하단의 Enforce T-Pose 를 클릭.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byIM7E/dJMb99L3Q4S/8ejt4YjYkkGwiuVbi7DJpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyIM7E%2FdJMb99L3Q4S%2F8ejt4YjYkkGwiuVbi7DJpK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1622&quot; height=&quot;818&quot; data-origin-width=&quot;1622&quot; data-origin-height=&quot;818&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;우측 하단의 Enforce T-Pose 를 클릭.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1579&quot; data-origin-height=&quot;880&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdyn9f/dJMcagLdVLf/fcYcVDTkymXmlHWYRKWfd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdyn9f/dJMcagLdVLf/fcYcVDTkymXmlHWYRKWfd1/img.png&quot; data-alt=&quot;아바타에 약간의 조정이 발생되고 문제가 해결됨. 우측 하단에 apply 를 눌러줄 것.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdyn9f/dJMcagLdVLf/fcYcVDTkymXmlHWYRKWfd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcdyn9f%2FdJMcagLdVLf%2FfcYcVDTkymXmlHWYRKWfd1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1579&quot; height=&quot;880&quot; data-origin-width=&quot;1579&quot; data-origin-height=&quot;880&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아바타에 약간의 조정이 발생되고 문제가 해결됨. 우측 하단에 apply 를 눌러줄 것.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Unity/게임 그래픽 프로그래밍</category>
      <category>FBX</category>
      <category>pose</category>
      <category>Renderer</category>
      <category>unity</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/156</guid>
      <comments>https://crazy-lazy.tistory.com/156#entry156comment</comments>
      <pubDate>Fri, 13 Feb 2026 12:09:55 +0900</pubDate>
    </item>
    <item>
      <title>마커를 이용한 고양이 모델 보여주고 공으로 포획하기.</title>
      <link>https://crazy-lazy.tistory.com/155</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;마커를 이용한 고양이 모델 보여주는 VR 프로그램.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Project &amp;amp; Package.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 링크의 3번까지 참조할 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://crazy-lazy.tistory.com/153&quot;&gt;https://crazy-lazy.tistory.com/153&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1770783324504&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;지형 인식을 이용한 자동차 모델 보여주기.&quot; data-og-description=&quot;바닥면을 인식하여 해당 바닥을 터치하면 자동차 모델을 나타나게 해주는 AR 프로그램. 1. Create Project.1) Type : 3D (Built-In Render Pipeline)2) Name : MyAR_Project3) Build Profiles &amp;gt; Android &amp;gt; Switch Platform.4) Game &amp;gt; Displ&quot; data-og-host=&quot;crazy-lazy.tistory.com&quot; data-og-source-url=&quot;https://crazy-lazy.tistory.com/153&quot; data-og-url=&quot;https://crazy-lazy.tistory.com/153&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/HGdkZ/dJMb8Z3naV9/ifjdGJvg2hWwm9KyCoXzDk/img.png?width=800&amp;amp;height=452&amp;amp;face=0_0_800_452,https://scrap.kakaocdn.net/dn/faQBl/dJMb8T9VmLj/ijIhlWpRvVNMYZWaeQjfd0/img.png?width=800&amp;amp;height=452&amp;amp;face=0_0_800_452,https://scrap.kakaocdn.net/dn/eF1BQ/dJMb8QL7TXY/ihkaVyF1rxBSdVE5tDtfz0/img.png?width=407&amp;amp;height=886&amp;amp;face=0_0_407_886&quot;&gt;&lt;a href=&quot;https://crazy-lazy.tistory.com/153&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://crazy-lazy.tistory.com/153&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/HGdkZ/dJMb8Z3naV9/ifjdGJvg2hWwm9KyCoXzDk/img.png?width=800&amp;amp;height=452&amp;amp;face=0_0_800_452,https://scrap.kakaocdn.net/dn/faQBl/dJMb8T9VmLj/ijIhlWpRvVNMYZWaeQjfd0/img.png?width=800&amp;amp;height=452&amp;amp;face=0_0_800_452,https://scrap.kakaocdn.net/dn/eF1BQ/dJMb8QL7TXY/ihkaVyF1rxBSdVE5tDtfz0/img.png?width=407&amp;amp;height=886&amp;amp;face=0_0_407_886');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;지형 인식을 이용한 자동차 모델 보여주기.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;바닥면을 인식하여 해당 바닥을 터치하면 자동차 모델을 나타나게 해주는 AR 프로그램. 1. Create Project.1) Type : 3D (Built-In Render Pipeline)2) Name : MyAR_Project3) Build Profiles &amp;gt; Android &amp;gt; Switch Platform.4) Game &amp;gt; Displ&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;crazy-lazy.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 파일들 다운받아서 프로젝트에 넣기.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bekaai/dJMcadOpWmX/Nx4AOn3Kc6av8WLAohcSPK/Cat.jpg?attach=1&amp;amp;knm=img.jpg&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Cat.jpg&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.23MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/brh3RD/dJMcabXp6NH/f0V2TkBBzPBbCpGnOdqDEk/Cartoon%20Cat.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Cartoon Cat.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;2.94MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Materials.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) M_Ball.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqbChV/dJMcacIOmUa/5Dja8GDLFJ4dmaIK2zFTm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqbChV/dJMcacIOmUa/5Dja8GDLFJ4dmaIK2zFTm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqbChV/dJMcacIOmUa/5Dja8GDLFJ4dmaIK2zFTm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqbChV%2FdJMcacIOmUa%2F5Dja8GDLFJ4dmaIK2zFTm1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;402&quot; height=&quot;854&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. Prefabs.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) WhiteCat : cat_Idel.fbx 파일을 토대로 unpack 후 아래와 같이 프리팹 생성.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GSuZi/dJMcacWjfQY/jzgBIIJQhjOK7xpXuz8wS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GSuZi/dJMcacWjfQY/jzgBIIJQhjOK7xpXuz8wS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GSuZi/dJMcacWjfQY/jzgBIIJQhjOK7xpXuz8wS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGSuZi%2FdJMcacWjfQY%2FjzgBIIJQhjOK7xpXuz8wS1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;405&quot; height=&quot;854&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) MarkerObject : 아래와 같은 구조로 잡고, 고양이가 나를 보도록 ratation 조절 처리.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(실제 WhiteCat 프리팹에 override 하진 않음.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;154&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpz1JH/dJMcagLc2k2/arwBdqYNQl8QzKcki9hKVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpz1JH/dJMcagLc2k2/arwBdqYNQl8QzKcki9hKVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpz1JH/dJMcagLc2k2/arwBdqYNQl8QzKcki9hKVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcpz1JH%2FdJMcagLc2k2%2FarwBdqYNQl8QzKcki9hKVK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;154&quot; height=&quot;52&quot; data-origin-width=&quot;154&quot; data-origin-height=&quot;52&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M2G2N/dJMcagErSJ8/SMt8zG0jBfLKPwR1szD3J1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M2G2N/dJMcagErSJ8/SMt8zG0jBfLKPwR1szD3J1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M2G2N/dJMcagErSJ8/SMt8zG0jBfLKPwR1szD3J1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM2G2N%2FdJMcagErSJ8%2FSMt8zG0jBfLKPwR1szD3J1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;218&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. Project.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) ReferenceImageLibrary 생성.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;754&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oSRSE/dJMcafyLUZF/ZtcxGk5OJ8KvRXO4gkq7Rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oSRSE/dJMcafyLUZF/ZtcxGk5OJ8KvRXO4gkq7Rk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oSRSE/dJMcafyLUZF/ZtcxGk5OJ8KvRXO4gkq7Rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoSRSE%2FdJMcafyLUZF%2FZtcxGk5OJ8KvRXO4gkq7Rk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;754&quot; height=&quot;630&quot; data-origin-width=&quot;754&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Add Image : Cat.png 파일을 추가 후 Specify Size 체크 및 Size 기입.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k2BUp/dJMcadt60Cn/mn9QPTmFb3ksAlKHVGDOP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k2BUp/dJMcadt60Cn/mn9QPTmFb3ksAlKHVGDOP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k2BUp/dJMcadt60Cn/mn9QPTmFb3ksAlKHVGDOP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk2BUp%2FdJMcadt60Cn%2Fmn9QPTmFb3ksAlKHVGDOP0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;405&quot; height=&quot;280&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;280&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. Hierarchy&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;174&quot; data-origin-height=&quot;174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vjqFu/dJMcadHEQeC/wzakKVW4huUiuDqsfITNAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vjqFu/dJMcadHEQeC/wzakKVW4huUiuDqsfITNAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vjqFu/dJMcadHEQeC/wzakKVW4huUiuDqsfITNAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvjqFu%2FdJMcadHEQeC%2FwzakKVW4huUiuDqsfITNAk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;174&quot; height=&quot;174&quot; data-origin-width=&quot;174&quot; data-origin-height=&quot;174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boWtQn/dJMcafyLUXn/D9wiuWRFtzuzv8qSOYKra1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boWtQn/dJMcafyLUXn/D9wiuWRFtzuzv8qSOYKra1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boWtQn/dJMcafyLUXn/D9wiuWRFtzuzv8qSOYKra1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboWtQn%2FdJMcafyLUXn%2FD9wiuWRFtzuzv8qSOYKra1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;481&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;481&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;647&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2g3rA/dJMcajny07U/Zpjde87WRkxgJChCFGEmU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2g3rA/dJMcajny07U/Zpjde87WRkxgJChCFGEmU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2g3rA/dJMcajny07U/Zpjde87WRkxgJChCFGEmU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2g3rA%2FdJMcajny07U%2FZpjde87WRkxgJChCFGEmU1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;647&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;647&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l0v9B/dJMb99L20Fc/CgdtwJ7d2nOwXtQmFkX2sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l0v9B/dJMb99L20Fc/CgdtwJ7d2nOwXtQmFkX2sk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l0v9B/dJMb99L20Fc/CgdtwJ7d2nOwXtQmFkX2sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl0v9B%2FdJMb99L20Fc%2FCgdtwJ7d2nOwXtQmFkX2sk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;788&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckevbh/dJMcahDjDqv/9lyMQA1YfCO0N4MqdKmFBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckevbh/dJMcahDjDqv/9lyMQA1YfCO0N4MqdKmFBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckevbh/dJMcahDjDqv/9lyMQA1YfCO0N4MqdKmFBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fckevbh%2FdJMcahDjDqv%2F9lyMQA1YfCO0N4MqdKmFBk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;401&quot; height=&quot;638&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;729&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d0oljH/dJMcafS3H3C/vvWnFaxPUg8mABkWXRcJYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d0oljH/dJMcafS3H3C/vvWnFaxPUg8mABkWXRcJYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d0oljH/dJMcafS3H3C/vvWnFaxPUg8mABkWXRcJYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd0oljH%2FdJMcafS3H3C%2FvvWnFaxPUg8mABkWXRcJYk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;729&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;729&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;588&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caNgNS/dJMcadARTCI/p7TRq3N7XZoha5WS8ps0Xk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caNgNS/dJMcadARTCI/p7TRq3N7XZoha5WS8ps0Xk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caNgNS/dJMcadARTCI/p7TRq3N7XZoha5WS8ps0Xk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaNgNS%2FdJMcadARTCI%2Fp7TRq3N7XZoha5WS8ps0Xk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;410&quot; height=&quot;588&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;588&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;730&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bH2Lg0/dJMcacaYF2S/giNlqoM7GS58sn0jRDwDKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bH2Lg0/dJMcacaYF2S/giNlqoM7GS58sn0jRDwDKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bH2Lg0/dJMcacaYF2S/giNlqoM7GS58sn0jRDwDKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH2Lg0%2FdJMcacaYF2S%2FgiNlqoM7GS58sn0jRDwDKK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;397&quot; height=&quot;730&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;730&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6.Scripts.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) BallController.cs&lt;/p&gt;
&lt;pre id=&quot;code_1770783802464&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using TMPro;
using UnityEngine;
using UnityEngine.UI;

public class BallController : MonoBehaviour
{
    private Rigidbody _rb;
    private bool _isReady = true;
    private Vector2 _startPos;
    private GameObject _targetMonster; // 동적으로 찾은 고양이를 담을 변수
    
    // 포획 확률
    public float captureRate = 0.5f;    // 50% 확률
    public TMP_Text resultText;         // 결과 텍스트

    void Start()
    {
        _rb = GetComponent&amp;lt;Rigidbody&amp;gt;();
        _rb.isKinematic = true;// 물리 능력을 비활성화
        
        resultText.text = &quot;&quot;;
    }

    void Update()
    {
        if (!_isReady) return;
        if (_targetMonster == null)
            _targetMonster = GameObject.FindWithTag(&quot;Monster&quot;);
        SetBallPosition(Camera.main.transform);

        if (Input.touchCount &amp;gt; 0 &amp;amp;&amp;amp; _isReady)
        {
            Touch touch = Input.GetTouch(0);

            if (touch.phase == TouchPhase.Began)
            {
                // 터치 시작 픽셀 저장.
                _startPos = touch.position;
            }
            else if (touch.phase == TouchPhase.Ended)
            {
                // 손가락이 드래그한 픽셀의 y축 거리 구하기.
                float distance = touch.position.y - _startPos.y;
                
                // AR 카메라 기준으로 던질 방향 설정. (전방 위로 45도)
                Vector3 throwAngle = (Camera.main.transform.forward + Camera.main.transform.up).normalized;
                
                // 물리 능력 활성화 및 준비 상태 false 처리.
                _rb.isKinematic = false;
                _isReady = false;
                
                // 던질 방향 *  손가락 드래그 거리만큼 공에 물리적 힘 추가.
                _rb.AddForce(throwAngle * distance * 0.005f, ForceMode.VelocityChange);
                
                // 3초 후 공 위치 및 속도 초기화.
                Invoke(nameof(ResetBall), 3f);
            }
        }
        
        DrawLineToTarget();
    }

    private void SetBallPosition(Transform anchor)
    {
        float spawnDistance = 0.5f; 

        if (_targetMonster != null)
        {
            // 카메라에서 고양이까지의 거리 계산
            float distanceToMonster = Vector3.Distance(anchor.position, _targetMonster.transform.position);
        
            // 고양이가 너무 가까우면(예: 0.6m 이내), 공을 고양이 앞 20cm 지점에 배치
            // 고양이가 멀리 있으면 기본 0.5m 거리에 배치
            spawnDistance = Mathf.Min(0.5f, distanceToMonster - 0.2f);
        
            // 거리가 음수가 되지 않도록 방어 코드
            spawnDistance = Mathf.Max(0.1f, spawnDistance);
        }
        
        // 카메라의 위치에서 일정 거리 만큼 떨어진 특정 위치를 설정.
        Vector3 offset = anchor.forward * spawnDistance + anchor.up * -0.2f;
        
        // 공의 위치를 카메라 위치에서 특정 위치만큼 이동된 거리로 정함.
        transform.position = anchor.position + offset;
    }

    private void ResetBall()
    {
        // 물리 능력 비활성화 및 속도 초기화.
        _rb.isKinematic = true;
        _rb.linearVelocity = Vector3.zero;
        
        // 준비 상태로 변경.
        _isReady = true;
    }
    
    private void DrawLineToTarget()
    {
        LineRenderer line = GetComponent&amp;lt;LineRenderer&amp;gt;();
        if (line == null || _targetMonster == null) return;

        line.positionCount = 2;
        line.SetPosition(0, transform.position);      // 시작점: 공
        line.SetPosition(1, _targetMonster.transform.position); // 끝점: 고양이

        // 거리 차이에 따라 선 색상을 바꾸면 더 직관적입니다.
        float dist = Vector3.Distance(transform.position, _targetMonster.transform.position);
        line.startColor = dist &amp;lt; 0.2f ? Color.red : Color.green; 
    }

    private void OnCollisionEnter(Collision other)
    {
        if (_isReady) return;
        // 포획 확률 추첨.
        float draw = Random.Range(0, 1.0f);
        resultText.text = draw &amp;lt;= captureRate ? &quot;포획 성공&quot; : &quot;포획에 실패해 도망쳤습니다...&quot;;
        
        // 고양이 캐릭터 제거 및 공 비활성화.
        Destroy(other.gameObject);
        gameObject.SetActive(false);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) ColliderVisualizer.cs&lt;/p&gt;
&lt;pre id=&quot;code_1770783832468&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using UnityEngine;

[ExecuteAlways]
[DisallowMultipleComponent]
[RequireComponent(typeof(Collider))]
public class ColliderVisualizer : MonoBehaviour
{
    public bool visibleInPlayMode = true;
    public bool visibleInEditMode = false;

    public Color lineColor = Color.green;
    [Range(0.001f, 0.05f)]
    public float lineWidth = 0.01f;

    private Collider col;

    // 기본(박스/캡슐/메쉬)용
    private LineRenderer line;

    // 스피어 3축 링용
    private LineRenderer ringXY;
    private LineRenderer ringXZ;
    private LineRenderer ringYZ;

    void OnEnable()
    {
        col = GetComponent&amp;lt;Collider&amp;gt;();
        EnsureBaseLine();
        EnsureSphereRings();
        UpdateVisibility();
    }

    void OnDisable()
    {
        DestroyLR(line);
        DestroyLR(ringXY);
        DestroyLR(ringXZ);
        DestroyLR(ringYZ);

        line = null;
        ringXY = ringXZ = ringYZ = null;
    }

    void LateUpdate()
    {
        UpdateVisibility();
        if (!IsAnyLineEnabled()) return;

        ApplyStyle(line);
        ApplyStyle(ringXY);
        ApplyStyle(ringXZ);
        ApplyStyle(ringYZ);

        DrawCollider();
    }

    bool IsAnyLineEnabled()
    {
        if (line != null &amp;amp;&amp;amp; line.enabled) return true;
        if (ringXY != null &amp;amp;&amp;amp; ringXY.enabled) return true;
        if (ringXZ != null &amp;amp;&amp;amp; ringXZ.enabled) return true;
        if (ringYZ != null &amp;amp;&amp;amp; ringYZ.enabled) return true;
        return false;
    }

    void UpdateVisibility()
    {
        bool shouldShow =
            (Application.isPlaying &amp;amp;&amp;amp; visibleInPlayMode) ||
            (!Application.isPlaying &amp;amp;&amp;amp; visibleInEditMode);

        SetEnabled(line, shouldShow);
        SetEnabled(ringXY, shouldShow);
        SetEnabled(ringXZ, shouldShow);
        SetEnabled(ringYZ, shouldShow);
    }

    void SetEnabled(LineRenderer lr, bool enabled)
    {
        if (lr != null) lr.enabled = enabled;
    }

    void DestroyLR(LineRenderer lr)
    {
        if (lr == null) return;

        if (Application.isPlaying) Destroy(lr.gameObject);
        else DestroyImmediate(lr.gameObject);
    }

    void ApplyStyle(LineRenderer lr)
    {
        if (lr == null) return;

        lr.material ??= new Material(Shader.Find(&quot;Sprites/Default&quot;));
        lr.startColor = lr.endColor = lineColor;
        lr.startWidth = lr.endWidth = lineWidth;
    }

    LineRenderer CreateLine(string name)
    {
        var go = new GameObject(name);
        go.hideFlags = HideFlags.HideAndDontSave;
        go.transform.SetParent(transform, false);

        var lr = go.AddComponent&amp;lt;LineRenderer&amp;gt;();
        lr.useWorldSpace = true;
        lr.loop = false;
        lr.material = new Material(Shader.Find(&quot;Sprites/Default&quot;));
        lr.positionCount = 0;
        return lr;
    }

    void EnsureBaseLine()
    {
        if (line == null)
            line = CreateLine(&quot;ColliderVisualizer_Line&quot;);
    }

    void EnsureSphereRings()
    {
        if (ringXY == null) ringXY = CreateLine(&quot;ColliderVisualizer_RingXY&quot;);
        if (ringXZ == null) ringXZ = CreateLine(&quot;ColliderVisualizer_RingXZ&quot;);
        if (ringYZ == null) ringYZ = CreateLine(&quot;ColliderVisualizer_RingYZ&quot;);
    }

    void ClearLR(LineRenderer lr)
    {
        if (lr == null) return;
        lr.positionCount = 0;
        lr.loop = false;
    }

    void DrawCollider()
    {
        if (col == null) return;

        if (col is SphereCollider sphere)
        {
            // Sphere는 3개 링으로만 표시
            ClearLR(line);
            DrawSphere(sphere);
            return;
        }

        // Sphere가 아닐 때는 링들 지우기(잔상 방지)
        ClearLR(ringXY);
        ClearLR(ringXZ);
        ClearLR(ringYZ);

        if (col is BoxCollider box) DrawBox(box);
        else if (col is CapsuleCollider capsule) DrawCapsuleSimple(capsule);
        else if (col is MeshCollider mesh) DrawMesh(mesh);
        else ClearLR(line);
    }

    void DrawBox(BoxCollider box)
    {
        if (line == null) return;

        Vector3 c = box.center;
        Vector3 s = box.size * 0.5f;

        Vector3[] p =
        {
            c + new Vector3(-s.x, -s.y, -s.z),
            c + new Vector3( s.x, -s.y, -s.z),
            c + new Vector3( s.x, -s.y,  s.z),
            c + new Vector3(-s.x, -s.y,  s.z),

            c + new Vector3(-s.x,  s.y,  s.z),
            c + new Vector3( s.x,  s.y,  s.z),
            c + new Vector3( s.x,  s.y, -s.z),
            c + new Vector3(-s.x,  s.y, -s.z)
        };

        int[] order =
        {
            0,1,2,3,0,
            7,6,1,
            6,5,2,
            5,4,3,
            4,7
        };

        line.loop = false;
        line.positionCount = order.Length;

        for (int i = 0; i &amp;lt; order.Length; i++)
            line.SetPosition(i, transform.TransformPoint(p[order[i]]));
    }

    void DrawSphere(SphereCollider sphere)
    {
        EnsureSphereRings();

        Vector3 center = transform.TransformPoint(sphere.center);

        // SphereCollider는 비균등 스케일에서 시각화/물리 모두 애매해질 수 있어서 max축으로 보정
        float r = sphere.radius * Mathf.Max(transform.lossyScale.x, transform.lossyScale.y, transform.lossyScale.z);

        DrawCircle(ringXY, center, r, transform.right, transform.up);         // XY
        DrawCircle(ringXZ, center, r, transform.right, transform.forward);    // XZ
        DrawCircle(ringYZ, center, r, transform.up, transform.forward);       // YZ
    }

    void DrawCircle(LineRenderer lr, Vector3 center, float radius, Vector3 axisA, Vector3 axisB)
    {
        if (lr == null) return;

        const int segments = 64;

        lr.loop = false;
        lr.positionCount = segments + 1;

        for (int i = 0; i &amp;lt;= segments; i++)
        {
            float t = (float)i / segments;
            float angle = t * Mathf.PI * 2f;

            Vector3 offset =
                Mathf.Cos(angle) * axisA * radius +
                Mathf.Sin(angle) * axisB * radius;

            lr.SetPosition(i, center + offset);
        }
    }

    // 캡슐은 &amp;ldquo;간단 원&amp;rdquo; 버전(기존과 동일한 수준). 원하면 진짜 캡슐(반구+실린더)로 확장해줄게.
    void DrawCapsuleSimple(CapsuleCollider capsule)
    {
        if (line == null) return;

        const int segments = 64;

        Vector3 center = transform.TransformPoint(capsule.center);
        float r = capsule.radius * Mathf.Max(transform.lossyScale.x, transform.lossyScale.y, transform.lossyScale.z);

        // capsule.direction에 따라 원이 서는 축이 달라야 하지만,
        // 기존 구현을 크게 바꾸지 않기 위해 우선 오브젝트 로컬 XZ 원으로 표현(간단 디버그용)
        line.loop = false;
        line.positionCount = segments + 1;

        Vector3 axisA = transform.right;
        Vector3 axisB = transform.forward;

        for (int i = 0; i &amp;lt;= segments; i++)
        {
            float t = (float)i / segments;
            float angle = t * Mathf.PI * 2f;

            Vector3 offset =
                Mathf.Cos(angle) * axisA * r +
                Mathf.Sin(angle) * axisB * r;

            line.SetPosition(i, center + offset);
        }
    }

    void DrawMesh(MeshCollider mesh)
    {
        if (line == null) return;
        if (mesh.sharedMesh == null)
        {
            ClearLR(line);
            return;
        }

        var m = mesh.sharedMesh;
        var vertices = m.vertices;
        var triangles = m.triangles;

        // 단순 삼각형 버텍스 나열(와이어프레임 아님). 필요하면 edge 기반 와이어프레임으로 바꿔줄게.
        line.loop = false;
        line.positionCount = triangles.Length;

        for (int i = 0; i &amp;lt; triangles.Length; i++)
        {
            Vector3 v = vertices[triangles[i]];
            line.SetPosition(i, transform.TransformPoint(v));
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7. Result.&lt;/b&gt;&lt;/p&gt;

            &lt;figure class=&quot;unsupported component-kakaotv&quot; contenteditable=&quot;false&quot; style=&quot;background:#000;margin:16px 0;min-height:72px;padding:10px 16px;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;width:100%;max-width:100%;&quot;&gt;
                &lt;p contenteditable=&quot;false&quot; style=&quot;margin:0;color:#8a8a8a;font-size:13px;line-height:1.6;user-select:none;pointer-events:none;&quot;&gt;동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.&lt;/p&gt;
            &lt;/figure&gt;
        
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Unity/AR 프로그래밍</category>
      <category>AR</category>
      <category>c#</category>
      <category>unity</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/155</guid>
      <comments>https://crazy-lazy.tistory.com/155#entry155comment</comments>
      <pubDate>Wed, 11 Feb 2026 13:30:11 +0900</pubDate>
    </item>
    <item>
      <title>얼굴 인식을 이용한 가면 모델 보여주기.</title>
      <link>https://crazy-lazy.tistory.com/154</link>
      <description>&lt;p style=&quot;position: absolute;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;얼굴을 인식하여 가면 모델을 나타나게 해주는 AR 프로그램.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Project &amp;amp; Package.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 링크의 3번까지 참조할 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://crazy-lazy.tistory.com/153&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://crazy-lazy.tistory.com/153&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1770771773943&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;지형 인식을 이용한 자동차 모델 보여주기.&quot; data-og-description=&quot;바닥면을 인식하여 해당 바닥을 터치하면 자동차 모델을 나타나게 해주는 AR 프로그램. 1. Create Project.1) Type : 3D (Built-In Render Pipeline)2) Name : MyAR_Project3) Build Profiles &amp;gt; Android &amp;gt; Switch Platform.4) Game &amp;gt; Displ&quot; data-og-host=&quot;crazy-lazy.tistory.com&quot; data-og-source-url=&quot;https://crazy-lazy.tistory.com/153&quot; data-og-url=&quot;https://crazy-lazy.tistory.com/153&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/HGdkZ/dJMb8Z3naV9/ifjdGJvg2hWwm9KyCoXzDk/img.png?width=800&amp;amp;height=452&amp;amp;face=0_0_800_452,https://scrap.kakaocdn.net/dn/faQBl/dJMb8T9VmLj/ijIhlWpRvVNMYZWaeQjfd0/img.png?width=800&amp;amp;height=452&amp;amp;face=0_0_800_452,https://scrap.kakaocdn.net/dn/eF1BQ/dJMb8QL7TXY/ihkaVyF1rxBSdVE5tDtfz0/img.png?width=407&amp;amp;height=886&amp;amp;face=0_0_407_886&quot;&gt;&lt;a href=&quot;https://crazy-lazy.tistory.com/153&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://crazy-lazy.tistory.com/153&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/HGdkZ/dJMb8Z3naV9/ifjdGJvg2hWwm9KyCoXzDk/img.png?width=800&amp;amp;height=452&amp;amp;face=0_0_800_452,https://scrap.kakaocdn.net/dn/faQBl/dJMb8T9VmLj/ijIhlWpRvVNMYZWaeQjfd0/img.png?width=800&amp;amp;height=452&amp;amp;face=0_0_800_452,https://scrap.kakaocdn.net/dn/eF1BQ/dJMb8QL7TXY/ihkaVyF1rxBSdVE5tDtfz0/img.png?width=407&amp;amp;height=886&amp;amp;face=0_0_407_886');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;지형 인식을 이용한 자동차 모델 보여주기.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;바닥면을 인식하여 해당 바닥을 터치하면 자동차 모델을 나타나게 해주는 AR 프로그램. 1. Create Project.1) Type : 3D (Built-In Render Pipeline)2) Name : MyAR_Project3) Build Profiles &amp;gt; Android &amp;gt; Switch Platform.4) Game &amp;gt; Displ&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;crazy-lazy.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 파일들을 다운받아 프로젝트에 넣기.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/moysj/dJMcabwlpD9/cuUarekvn0WB57KgaXhcak/Mask.png?attach=1&amp;amp;knm=img.png&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Mask.png&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.74MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://assetstore.unity.com/packages/essentials/asset-packs/ar-face-assets-184187&quot;&gt;https://assetstore.unity.com/packages/essentials/asset-packs/ar-face-assets-184187&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1770867785642&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;AR Face Assets | 에셋팩 | Unity Asset Store&quot; data-og-description=&quot;Get the AR Face Assets package from Unity Technologies and speed up your game development process. Find this &amp;amp; other 에셋팩 options on the Unity Asset Store.&quot; data-og-host=&quot;assetstore.unity.com&quot; data-og-source-url=&quot;https://assetstore.unity.com/packages/essentials/asset-packs/ar-face-assets-184187&quot; data-og-url=&quot;https://assetstore.unity.com/packages/essentials/asset-packs/ar-face-assets-184187&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/5FYOT/dJMb8SpDXZ1/mcCWmCBvk5poitlitXJEhk/img.jpg?width=1950&amp;amp;height=1300&amp;amp;face=36_152_1742_846,https://scrap.kakaocdn.net/dn/btNrFC/dJMb8YpRrCF/H2TlLYkUBQy4YocBsJle1K/img.jpg?width=1950&amp;amp;height=1300&amp;amp;face=36_152_1742_846,https://scrap.kakaocdn.net/dn/QWvzD/dJMb8ZvxrLB/PDznfrDsjxYpzkzqXoAHS0/img.jpg?width=1950&amp;amp;height=1300&amp;amp;face=36_152_1742_846&quot;&gt;&lt;a href=&quot;https://assetstore.unity.com/packages/essentials/asset-packs/ar-face-assets-184187&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://assetstore.unity.com/packages/essentials/asset-packs/ar-face-assets-184187&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/5FYOT/dJMb8SpDXZ1/mcCWmCBvk5poitlitXJEhk/img.jpg?width=1950&amp;amp;height=1300&amp;amp;face=36_152_1742_846,https://scrap.kakaocdn.net/dn/btNrFC/dJMb8YpRrCF/H2TlLYkUBQy4YocBsJle1K/img.jpg?width=1950&amp;amp;height=1300&amp;amp;face=36_152_1742_846,https://scrap.kakaocdn.net/dn/QWvzD/dJMb8ZvxrLB/PDznfrDsjxYpzkzqXoAHS0/img.jpg?width=1950&amp;amp;height=1300&amp;amp;face=36_152_1742_846');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AR Face Assets | 에셋팩 | Unity Asset Store&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Get the AR Face Assets package from Unity Technologies and speed up your game development process. Find this &amp;amp; other 에셋팩 options on the Unity Asset Store.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;assetstore.unity.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Materials.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) M_Face_1 : Plasto_Head_Albedo.png &amp;amp; Plasto_Head_normal.png 를 각각 할당.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;633&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lNTPK/dJMcag5vB5v/kxZCQ6nkuijl88marxBsz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lNTPK/dJMcag5vB5v/kxZCQ6nkuijl88marxBsz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lNTPK/dJMcag5vB5v/kxZCQ6nkuijl88marxBsz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlNTPK%2FdJMcag5vB5v%2FkxZCQ6nkuijl88marxBsz0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;391&quot; height=&quot;633&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;633&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) M_Face_2 : PopFace_Albedo.png&amp;nbsp; 를 할당.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kITg6/dJMcafS3D72/TXfuF8KgByg29vYsR5ADI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kITg6/dJMcafS3D72/TXfuF8KgByg29vYsR5ADI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kITg6/dJMcafS3D72/TXfuF8KgByg29vYsR5ADI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkITg6%2FdJMcafS3D72%2FTXfuF8KgByg29vYsR5ADI1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;404&quot; height=&quot;861&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) M_Face_3 : Robot_Albedo.png &amp;amp; Robot_Normal.png 를 할당.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/19hyo/dJMcadHELLC/TezKldkUYOGUAXsoWZ8kC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/19hyo/dJMcadHELLC/TezKldkUYOGUAXsoWZ8kC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/19hyo/dJMcadHELLC/TezKldkUYOGUAXsoWZ8kC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F19hyo%2FdJMcadHELLC%2FTezKldkUYOGUAXsoWZ8kC0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;405&quot; height=&quot;861&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. Prefabs.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) Mask :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;118&quot; data-origin-height=&quot;54&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba0KqX/dJMcabpBVJC/hItwWQ9Er8oJndYpQ6KOYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba0KqX/dJMcabpBVJC/hItwWQ9Er8oJndYpQ6KOYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba0KqX/dJMcabpBVJC/hItwWQ9Er8oJndYpQ6KOYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba0KqX%2FdJMcabpBVJC%2FhItwWQ9Er8oJndYpQ6KOYK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;118&quot; height=&quot;54&quot; data-origin-width=&quot;118&quot; data-origin-height=&quot;54&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) MyFaceModel :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;825&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cj8g7t/dJMcacot2rr/iYxfnMmiOa3z0lHSNS29JK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cj8g7t/dJMcacot2rr/iYxfnMmiOa3z0lHSNS29JK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cj8g7t/dJMcacot2rr/iYxfnMmiOa3z0lHSNS29JK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcj8g7t%2FdJMcacot2rr%2FiYxfnMmiOa3z0lHSNS29JK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;398&quot; height=&quot;825&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;825&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) MyMask :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;893&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biWSgJ/dJMcabXpz80/SHHJnDpHpInN7tE8rAD1e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biWSgJ/dJMcabXpz80/SHHJnDpHpInN7tE8rAD1e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biWSgJ/dJMcabXpz80/SHHJnDpHpInN7tE8rAD1e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiWSgJ%2FdJMcabXpz80%2FSHHJnDpHpInN7tE8rAD1e1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;397&quot; height=&quot;893&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;893&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. Hierarchy.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) FaceScene 생성.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Hierarchy 를 아래와 같이 구성.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;177&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYfxLC/dJMcafyLRfH/nk3QE6ChS68Lbi4fjMFZuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYfxLC/dJMcafyLRfH/nk3QE6ChS68Lbi4fjMFZuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYfxLC/dJMcafyLRfH/nk3QE6ChS68Lbi4fjMFZuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYfxLC%2FdJMcafyLRfH%2Fnk3QE6ChS68Lbi4fjMFZuK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;177&quot; height=&quot;284&quot; data-origin-width=&quot;177&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;465&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nghIZ/dJMcai9194m/O6qk52klHbzZPw31ruKyxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nghIZ/dJMcai9194m/O6qk52klHbzZPw31ruKyxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nghIZ/dJMcai9194m/O6qk52klHbzZPw31ruKyxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnghIZ%2FdJMcai9194m%2FO6qk52klHbzZPw31ruKyxk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;402&quot; height=&quot;465&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;465&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;651&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxtJMG/dJMcabiP1OW/pe04aRpTzliqS4zLhKb7X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxtJMG/dJMcabiP1OW/pe04aRpTzliqS4zLhKb7X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxtJMG/dJMcabiP1OW/pe04aRpTzliqS4zLhKb7X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxtJMG%2FdJMcabiP1OW%2Fpe04aRpTzliqS4zLhKb7X1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;404&quot; height=&quot;651&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;651&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crXI9n/dJMcaiWvCVF/vfYWmzoXaZ2lpw6KHTmBqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crXI9n/dJMcaiWvCVF/vfYWmzoXaZ2lpw6KHTmBqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crXI9n/dJMcaiWvCVF/vfYWmzoXaZ2lpw6KHTmBqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrXI9n%2FdJMcaiWvCVF%2FvfYWmzoXaZ2lpw6KHTmBqk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;430&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHjzRj/dJMcajgNmhn/BPVoH4SomCunr09FpWL2T1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHjzRj/dJMcajgNmhn/BPVoH4SomCunr09FpWL2T1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHjzRj/dJMcajgNmhn/BPVoH4SomCunr09FpWL2T1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHjzRj%2FdJMcajgNmhn%2FBPVoH4SomCunr09FpWL2T1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;431&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;873&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Y7wTK/dJMcagYIHAd/9OaKlwK7uTPVodas8fK8zK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Y7wTK/dJMcagYIHAd/9OaKlwK7uTPVodas8fK8zK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Y7wTK/dJMcagYIHAd/9OaKlwK7uTPVodas8fK8zK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FY7wTK%2FdJMcagYIHAd%2F9OaKlwK7uTPVodas8fK8zK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;401&quot; height=&quot;873&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;873&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;891&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dwixKk/dJMcabJUpbJ/qhCQe4LDOph3SlBH6SbIH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dwixKk/dJMcabJUpbJ/qhCQe4LDOph3SlBH6SbIH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dwixKk/dJMcabJUpbJ/qhCQe4LDOph3SlBH6SbIH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdwixKk%2FdJMcabJUpbJ%2FqhCQe4LDOph3SlBH6SbIH0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;396&quot; height=&quot;891&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;891&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;875&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsT5xm/dJMcagRYkOk/6H5oZxJjfdOb1kKAaOlWl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsT5xm/dJMcagRYkOk/6H5oZxJjfdOb1kKAaOlWl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsT5xm/dJMcagRYkOk/6H5oZxJjfdOb1kKAaOlWl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsT5xm%2FdJMcagRYkOk%2F6H5oZxJjfdOb1kKAaOlWl0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;393&quot; height=&quot;875&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;875&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ddJHq6/dJMcadnmoCD/sG6KTCpDplFt24heLA6C0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ddJHq6/dJMcadnmoCD/sG6KTCpDplFt24heLA6C0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ddJHq6/dJMcadnmoCD/sG6KTCpDplFt24heLA6C0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FddJHq6%2FdJMcadnmoCD%2FsG6KTCpDplFt24heLA6C0K%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;399&quot; height=&quot;271&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. Scripts.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) FindDetection.cs&lt;/p&gt;
&lt;pre id=&quot;code_1770772973151&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections.Generic;
using TMPro;
using Unity.Collections;
using UnityEngine;
using UnityEngine.XR.ARCore;
using UnityEngine.XR.ARFoundation;

public class FindDetection : MonoBehaviour
{
    public ARFaceManager afm;
    public GameObject smallCube;
    public TMP_Text vertexIndexText;
    
    private List&amp;lt;GameObject&amp;gt; _faceCubes = new List&amp;lt;GameObject&amp;gt;();
    private ARCoreFaceSubsystem _subsystem;
    private NativeArray&amp;lt;ARCoreFaceRegionData&amp;gt; _regionDatas;
    
    void Start()
    {
        for (int i = 0; i &amp;lt; 3; i++)
        {
            var go = Instantiate(smallCube);
            _faceCubes.Add(go);
            go.SetActive(false);
        }
        _subsystem = (ARCoreFaceSubsystem)afm.subsystem;
        
        // afm.trackablesChanged.AddListener(OnDetectThreePoints);
        afm.trackablesChanged.AddListener(OnDetectFaceAll);
    }

    private void OnDetectThreePoints(ARTrackablesChangedEventArgs&amp;lt;ARFace&amp;gt; face)
    {
        if (face.updated.Count &amp;gt; 0)         // 얼굴 인식 정보가 갱신 된 것이 있을 경우
        {
            // 인식된 얼굴의 특정 위치를 가져오기
            _subsystem.GetRegionPoses(face.updated[0].trackableId, Allocator.Persistent, ref _regionDatas);
            // 인식된 얼굴의 특정 위치 (0: 코, 1: 이마 좌측, 2: 이마 우측)에 오브젝트를 위치 시킨다.
            for (int i = 0; i &amp;lt; _regionDatas.Length; i++)
            {
                _faceCubes[i].transform.position = _regionDatas[i].pose.position;
                _faceCubes[i].transform.rotation = _regionDatas[i].pose.rotation;
                _faceCubes[i].SetActive(true);
            }
        }
        else if (face.removed.Count &amp;gt; 0)    // 얼굴 인식 정보를 잃었을 경우
        {
            // 오브젝트를 비활성화.
            for (int i = 0; i &amp;lt; _regionDatas.Length; i++)
            {
                _faceCubes[i].SetActive(false);
            }
        }
    }

    private void OnDetectFaceAll(ARTrackablesChangedEventArgs&amp;lt;ARFace&amp;gt; args)
    {
        if (args.updated.Count &amp;gt; 0)//얼굴을 인식 했을 때
        {
            int num = int.Parse(vertexIndexText.text);
            
            //얼굴 정점 배열에서 지정한 인덱스에 해당하는 좌표를 가져온다.
            Vector3 verPosition = args.updated[0].vertices[num];
            Debug.Log(verPosition);
            //준비된 큐브 하나를 활성화 하고 정점 위치에 가져다 놓는다.
            _faceCubes[0].SetActive(true);
            _faceCubes[0].transform.position = args.updated[0].transform.TransformPoint(verPosition);
        } 
        else if(args.removed.Count &amp;gt; 0)//얼굴을 인식 하지 못했을 때
        {
            _faceCubes[0].SetActive(false);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) UI_Manager.cs&lt;/p&gt;
&lt;pre id=&quot;code_1770772998554&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using TMPro;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;

public class UI_Manager : MonoBehaviour
{
    public ARFaceManager faceManager;
    public TMP_Text indexText;
    
    private int vertNum = 0;
    private int vertCount = 468;

    void Start()
    {
        indexText.text = vertNum.ToString();
    }

    public void IndexIncrease()
    {
        // verNum 1증가, 최대 인덱스 넘지 않게.
        int number = Mathf.Min(++vertNum, vertCount - 1);
        indexText.text = number.ToString();
    }

    public void IndexDecrease()
    {
        // verNum 1감소, 최소 인덱스 넘지 않게.
        int number = Mathf.Max(--vertNum, 0);
        indexText.text = number.ToString();
    }

    public void ToggleMaskImage()
    {
        // faceManager 컴포넌트에서 현재 생성된 face 오브젝트들을 모두 순회.
        foreach (ARFace face in faceManager.trackables)
        {
            // 얼굴 인식 시
            if (face.trackingState == TrackingState.Tracking)
            {
                // face 오브젝트의 활성화 상태를 반대로 변경.
                face.gameObject.SetActive(!face.gameObject.activeSelf);
            }
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. Result.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Face3 을 활성화하고, 코 부분에 큐브를 띄운 모습.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bARktC/dJMcaioIZbO/i8rjRjQpEx4yTxTrLPs8Z1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bARktC/dJMcaioIZbO/i8rjRjQpEx4yTxTrLPs8Z1/img.jpg&quot; data-filename=&quot;Screenshot_20260211_131015_MyAR_Project.jpg&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;3120&quot; data-origin-width=&quot;1440&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bARktC/dJMcaioIZbO/i8rjRjQpEx4yTxTrLPs8Z1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbARktC%2FdJMcaioIZbO%2Fi8rjRjQpEx4yTxTrLPs8Z1%2Fimg.jpg&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; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;3120&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dvr35c/dJMcadARTrT/KoTsUyQyoFiNPW2UvmjSq0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dvr35c/dJMcadARTrT/KoTsUyQyoFiNPW2UvmjSq0/img.jpg&quot; data-filename=&quot;Screenshot_20260211_131013_MyAR_Project.jpg&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;3120&quot; data-origin-width=&quot;1440&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dvr35c/dJMcadARTrT/KoTsUyQyoFiNPW2UvmjSq0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdvr35c%2FdJMcadARTrT%2FKoTsUyQyoFiNPW2UvmjSq0%2Fimg.jpg&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; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;3120&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Unity/AR 프로그래밍</category>
      <category>AR</category>
      <category>c#</category>
      <category>unity</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/154</guid>
      <comments>https://crazy-lazy.tistory.com/154#entry154comment</comments>
      <pubDate>Wed, 11 Feb 2026 10:23:27 +0900</pubDate>
    </item>
    <item>
      <title>지형 인식을 이용한 자동차 모델 보여주기.</title>
      <link>https://crazy-lazy.tistory.com/153</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;바닥면을 인식하여 해당 바닥을 터치하면 자동차 모델을 나타나게 해주는 AR 프로그램.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Create Project.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) Type : 3D (Built-In Render Pipeline)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Name : MyAR_Project&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) Build Profiles &amp;gt; Android &amp;gt; Switch Platform.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) Game &amp;gt; Display Size : 1920 X 1080 Portait.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) 아래 자료 다운로드.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/ryASv/dJMcahceLHj/G0v2PvvjZwe7L7QNMTTQe0/Low-poly%20Sports%20car%20%2320.z01?attach=1&amp;amp;knm=tfile.z01&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Low-poly Sports car #20.z01&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;10.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/VFuIL/dJMcafS2LQn/cZtxecKkwZk4oez4QJVKO1/Low-poly%20Sports%20car%20%2320.z02?attach=1&amp;amp;knm=tfile.z02&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Low-poly Sports car #20.z02&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;10.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bdsZ7X/dJMcaaEdayt/pWKbyXwcXgNUUOAYkrESWK/Low-poly%20Sports%20car%20%2320.z03?attach=1&amp;amp;knm=tfile.z03&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Low-poly Sports car #20.z03&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;10.00MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/kVEmJ/dJMcafS2LQl/JHMeHGBj3FyD243VIig1ik/Low-poly%20Sports%20car%20%2320.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Low-poly Sports car #20.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.07MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/DjoN7/dJMcafFvsyj/lkGgks3tBMNgvmBqtnTB1K/Indicator.png?attach=1&amp;amp;knm=img.png&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;Indicator.png&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.02MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Install Package.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) AR Foundation. (6.0.6)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Google ARCore XR Plugin. (6.0.6)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) XR Plugin Management. (4.5.1)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. Project Settings.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) Project Settings &amp;gt; Other Settings &amp;gt; Rendering &amp;gt; Auto Graphics API 체크 해제.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Project Settings &amp;gt; Other Settings &amp;gt; Graphics API &lt;span&gt;&amp;gt; VulKan 삭제.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;3) &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Project Settings &amp;gt; Other Settings &amp;gt;&lt;span&gt; Package Name 입력.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;4) Project Settings &amp;gt; Other Settings &amp;gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; Multithreaded Rendering 체크 해제.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;5) Project Settings &amp;gt; Other Settings &amp;gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt; Minimum API Level 을 API Level 24 로 변경.&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;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333; text-align: start;&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;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;6)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Project Settings &amp;gt; Other Settings &amp;gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&lt;span&gt; Active Input Handling 을 Old 로 변경.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;4. Materials.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;1) M_Indicator : Albedo 에 Indicator.png 할당.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYEOwz/dJMb99ZCaIN/FiT9P5CykkSEWMTR1XVP80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYEOwz/dJMb99ZCaIN/FiT9P5CykkSEWMTR1XVP80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYEOwz/dJMb99ZCaIN/FiT9P5CykkSEWMTR1XVP80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYEOwz%2FdJMb99ZCaIN%2FFiT9P5CykkSEWMTR1XVP80%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;405&quot; height=&quot;861&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;2) M_Plan.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;854&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwSo0v/dJMcagxCL0e/TAgF8vwamRFn19qfokkHak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwSo0v/dJMcagxCL0e/TAgF8vwamRFn19qfokkHak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwSo0v/dJMcagxCL0e/TAgF8vwamRFn19qfokkHak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwSo0v%2FdJMcagxCL0e%2FTAgF8vwamRFn19qfokkHak%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;854&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;854&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;5. Prefabs.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;1) DetectedPlane.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;886&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdACrt/dJMcabpA56H/XZEKKUsG2hCpPIyRIxqG6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdACrt/dJMcabpA56H/XZEKKUsG2hCpPIyRIxqG6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdACrt/dJMcabpA56H/XZEKKUsG2hCpPIyRIxqG6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdACrt%2FdJMcabpA56H%2FXZEKKUsG2hCpPIyRIxqG6k%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;886&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;886&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;2) SportCar : SportCar20_Static_USA 프리팹을 언팩 후 아래와 같이 구성하여 새로운 프리팹으로 저장.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;702&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBrHp7/dJMcaf6zrTZ/IZ4KbfqYSm8Jp5LcwohyPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBrHp7/dJMcaf6zrTZ/IZ4KbfqYSm8Jp5LcwohyPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBrHp7/dJMcaf6zrTZ/IZ4KbfqYSm8Jp5LcwohyPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBrHp7%2FdJMcaf6zrTZ%2FIZ4KbfqYSm8Jp5LcwohyPK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;414&quot; height=&quot;702&quot; data-origin-width=&quot;414&quot; data-origin-height=&quot;702&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. Hierarchy.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) CarScene 생성.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Hierarchy 를 아래와 같이 구성.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;152&quot; data-origin-height=&quot;245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/elhVZY/dJMcajnx7J0/5KwLplOMmKRaykJB865XP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/elhVZY/dJMcajnx7J0/5KwLplOMmKRaykJB865XP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/elhVZY/dJMcajnx7J0/5KwLplOMmKRaykJB865XP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FelhVZY%2FdJMcajnx7J0%2F5KwLplOMmKRaykJB865XP0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;152&quot; height=&quot;245&quot; data-origin-width=&quot;152&quot; data-origin-height=&quot;245&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czyMHn/dJMcacWikR0/oy6MvknjEPkNrEeBiNX1N0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czyMHn/dJMcacWikR0/oy6MvknjEPkNrEeBiNX1N0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czyMHn/dJMcacWikR0/oy6MvknjEPkNrEeBiNX1N0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczyMHn%2FdJMcacWikR0%2Foy6MvknjEPkNrEeBiNX1N0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;388&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;624&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kx6ol/dJMcacWikSh/FrcA13iqJxH3JOGer5B6Z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kx6ol/dJMcacWikSh/FrcA13iqJxH3JOGer5B6Z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kx6ol/dJMcacWikSh/FrcA13iqJxH3JOGer5B6Z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fkx6ol%2FdJMcacWikSh%2FFrcA13iqJxH3JOGer5B6Z0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;624&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;624&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/22ZrS/dJMcaac8qxE/0rIlnEd6aL7tklvIBmdDkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/22ZrS/dJMcaac8qxE/0rIlnEd6aL7tklvIBmdDkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/22ZrS/dJMcaac8qxE/0rIlnEd6aL7tklvIBmdDkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F22ZrS%2FdJMcaac8qxE%2F0rIlnEd6aL7tklvIBmdDkK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;405&quot; height=&quot;416&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;838&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4RaHH/dJMcai3eXTa/5ZZoeyqVmbokCiqGYgPo9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4RaHH/dJMcai3eXTa/5ZZoeyqVmbokCiqGYgPo9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4RaHH/dJMcai3eXTa/5ZZoeyqVmbokCiqGYgPo9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4RaHH%2FdJMcai3eXTa%2F5ZZoeyqVmbokCiqGYgPo9K%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;408&quot; height=&quot;838&quot; data-origin-width=&quot;408&quot; data-origin-height=&quot;838&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;789&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqVAOW/dJMcahwzxwy/qKhAJAWI6MbVatszVY4Pu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqVAOW/dJMcahwzxwy/qKhAJAWI6MbVatszVY4Pu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqVAOW/dJMcahwzxwy/qKhAJAWI6MbVatszVY4Pu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqVAOW%2FdJMcahwzxwy%2FqKhAJAWI6MbVatszVY4Pu1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;789&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;789&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmXGag/dJMcafetlPH/2Wrf6NDMhdIodZFrzWeKZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmXGag/dJMcafetlPH/2Wrf6NDMhdIodZFrzWeKZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmXGag/dJMcafetlPH/2Wrf6NDMhdIodZFrzWeKZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmXGag%2FdJMcafetlPH%2F2Wrf6NDMhdIodZFrzWeKZK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;405&quot; height=&quot;432&quot; data-origin-width=&quot;405&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;590&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E2enU/dJMcacPyA9g/X6PinKrope10kjZt4gfKxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E2enU/dJMcacPyA9g/X6PinKrope10kjZt4gfKxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E2enU/dJMcacPyA9g/X6PinKrope10kjZt4gfKxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE2enU%2FdJMcacPyA9g%2FX6PinKrope10kjZt4gfKxk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;590&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;590&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;587&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZR6UC/dJMcajgMsY8/2AqCBs3KkhpIw2SHuzbTuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZR6UC/dJMcajgMsY8/2AqCBs3KkhpIw2SHuzbTuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZR6UC/dJMcajgMsY8/2AqCBs3KkhpIw2SHuzbTuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZR6UC%2FdJMcajgMsY8%2F2AqCBs3KkhpIw2SHuzbTuk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;407&quot; height=&quot;587&quot; data-origin-width=&quot;407&quot; data-origin-height=&quot;587&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;591&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k3Gbk/dJMcadOoAqW/XLR5Qfo7jKr7yvFqkJ6gOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k3Gbk/dJMcadOoAqW/XLR5Qfo7jKr7yvFqkJ6gOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k3Gbk/dJMcadOoAqW/XLR5Qfo7jKr7yvFqkJ6gOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk3Gbk%2FdJMcadOoAqW%2FXLR5Qfo7jKr7yvFqkJ6gOK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;591&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;591&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;7. Scripts.&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;1) CarManager.cs&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1770606454877&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class CarManager : MonoBehaviour
{
    public GameObject indicator;
    public GameObject myCar;
    public ARRaycastManager arManager;
    public float relocationDistance = 1f;
    public Button[] colorButtons;
    
    private GameObject _placeObject;
    
    void Start()
    {
        indicator.SetActive(false);

        for (int i = 0; i &amp;lt; colorButtons.Length; i++)
        {
            int idx = i;
            var btn = colorButtons[i];
            btn.onClick.AddListener(() =&amp;gt;
            {
                if (_placeObject != null)
                {
                    var carController = _placeObject.GetComponent&amp;lt;CarController&amp;gt;();
                    carController.ChangeColor(idx);
                }
            });
        }
    }

    void Update()
    {
        DetectGround();

        if (EventSystem.current.currentSelectedGameObject) return;
        if (indicator.activeInHierarchy &amp;amp;&amp;amp; Input.touchCount &amp;gt; 0)
        {
            Touch touch = Input.GetTouch(0);
            if (touch.phase == TouchPhase.Began)
            {
                if (_placeObject == null)
                    _placeObject = Instantiate(myCar, indicator.transform.position, indicator.transform.rotation);
                else
                {
                    if (Vector3.Distance(_placeObject.transform.position, indicator.transform.position) &amp;gt; relocationDistance)
                        _placeObject.transform.SetPositionAndRotation(indicator.transform.position, indicator.transform.rotation);
                }
            }
        }
    }

    private void DetectGround()
    {
        Vector2 screenSize = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f);
        List&amp;lt;ARRaycastHit&amp;gt; hitInfos = new List&amp;lt;ARRaycastHit&amp;gt;();
        if (arManager.Raycast(screenSize, hitInfos, TrackableType.Planes))
        {
            indicator.SetActive(true);
            indicator.transform.position = hitInfos[0].pose.position;
            indicator.transform.rotation = hitInfos[0].pose.rotation;
            indicator.transform.position += indicator.transform.up * 0.1f;
        }
        else
        {
            indicator.SetActive(false);
        }
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) CarController.cs&lt;/p&gt;
&lt;pre id=&quot;code_1770607316452&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using UnityEngine;

public class CarController : MonoBehaviour
{
    public GameObject[] bodyObjects;
    public Color32[] colors;
    public float rotSpeed = 0.1f;

    private Material[] _carMats;
    
    void Start()
    {
        _carMats = new Material[bodyObjects.Length];
        for (int i = 0; i &amp;lt; _carMats.Length; i++)
            _carMats[i] = bodyObjects[i].GetComponent&amp;lt;Renderer&amp;gt;().material;

        colors[0] = _carMats[0].color;
    }

    void Update()
    {
        if (Input.touchCount &amp;gt; 0)
        {
            Touch touch = Input.GetTouch(0);
            if (touch.phase == TouchPhase.Moved)
            {
                Ray ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward);
                RaycastHit hitInfo;
                if (Physics.Raycast(ray, out hitInfo, Mathf.Infinity, 1 &amp;lt;&amp;lt; 8))
                {
                    Vector3 deltaPos = touch.deltaPosition;
                    transform.Rotate(transform.up, deltaPos.x * -1.0f * rotSpeed);
                }
            }
        }
    }

    public void ChangeColor(int num)
    {
        for (int i = 0; i &amp;lt; _carMats.Length; i++)
            _carMats[i].color = colors[num];
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) NoneSleepMode.cs&lt;/p&gt;
&lt;pre id=&quot;code_1770610833739&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using UnityEngine;

public class NoneSleepMode : MonoBehaviour
{
    void Start()
    {
        Screen.sleepTimeout = SleepTimeout.NeverSleep;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8. Result.&lt;/b&gt;&lt;/p&gt;

            &lt;figure class=&quot;unsupported component-kakaotv&quot; contenteditable=&quot;false&quot; style=&quot;background:#000;margin:16px 0;min-height:72px;padding:10px 16px;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;width:100%;max-width:100%;&quot;&gt;
                &lt;p contenteditable=&quot;false&quot; style=&quot;margin:0;color:#8a8a8a;font-size:13px;line-height:1.6;user-select:none;pointer-events:none;&quot;&gt;동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.&lt;/p&gt;
            &lt;/figure&gt;
        
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;* References.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) &lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@6.0/manual/index.html&quot;&gt;https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@6.0/manual/index.html&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) &lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://docs.unity3d.com/Packages/com.unity.xr.arcore@6.0/manual/index.html&quot;&gt;https://docs.unity3d.com/Packages/com.unity.xr.arcore@6.0/manual/index.html&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>Unity/AR 프로그래밍</category>
      <category>AR</category>
      <category>c#</category>
      <category>car</category>
      <category>unity</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/153</guid>
      <comments>https://crazy-lazy.tistory.com/153#entry153comment</comments>
      <pubDate>Mon, 9 Feb 2026 13:27:25 +0900</pubDate>
    </item>
    <item>
      <title>Addressable - 리소스 관리</title>
      <link>https://crazy-lazy.tistory.com/152</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Addressable 을 이용하여 새버전 출시를 하지 않고 패치를 진행할 수 있다. 단, 소스 변경이나 구조 변경 등은 불가하고, 이미지나 json 파일, SO 파일 등 리소스 형태만 가능하다. (실제로 불가능하진 않지만 그냥 불가능하다고 보면 된다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Addressable 을 사용하는 방법은 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 패키지 다운로드.&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/Kb71E/dJMcaaYhFOT/4BFIi1CK1YcK70fPrURskk/AddressablesBootstrap_v1.0.2_20260106_162115.unitypackage?attach=1&amp;amp;knm=tfile.unitypackage&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;AddressablesBootstrap_v1.0.2_20260106_162115.unitypackage&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.29MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 서버.&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/dg2CDF/dJMcagjSXyt/4nMqeQdueU7L6wzjHKfx8k/addressable-server.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;addressable-server.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.15MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 패키지 설치.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) &lt;a style=&quot;background-color: #f9f9f8; color: #ff4e59; text-align: left;&quot; href=&quot;https://cafe.naver.com/f-e/cafes/31559186/articles/51?referrerAllArticles=false&quot;&gt;com.unity.nuget.newtonsoft-json&lt;/a&gt; 설치&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kEJRV/dJMcac9z3xu/Cl46B76sK1wERB9F7HgYXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kEJRV/dJMcac9z3xu/Cl46B76sK1wERB9F7HgYXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kEJRV/dJMcac9z3xu/Cl46B76sK1wERB9F7HgYXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkEJRV%2FdJMcac9z3xu%2FCl46B76sK1wERB9F7HgYXK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;286&quot; height=&quot;156&quot; data-origin-width=&quot;286&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) addressable 설치.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oHYC6/dJMcadHqKia/7OiqLoHxsx51k12qk18kq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oHYC6/dJMcadHqKia/7OiqLoHxsx51k12qk18kq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oHYC6/dJMcadHqKia/7OiqLoHxsx51k12qk18kq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoHYC6%2FdJMcadHqKia%2F7OiqLoHxsx51k12qk18kq0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;293&quot; height=&quot;163&quot; data-origin-width=&quot;293&quot; data-origin-height=&quot;163&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. 설정.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) Build Profile 의 플랫폼을 Android 로 switch.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;701&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqBCKR/dJMcajt5NRV/9X38OLb4tS53GPkefpBv3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqBCKR/dJMcajt5NRV/9X38OLb4tS53GPkefpBv3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqBCKR/dJMcajt5NRV/9X38OLb4tS53GPkefpBv3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqBCKR%2FdJMcajt5NRV%2F9X38OLb4tS53GPkefpBv3k%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;701&quot; height=&quot;112&quot; data-origin-width=&quot;701&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Tools &amp;gt; Addressabels Bootstrap &amp;gt; Quick Setup Wizard 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H2VLD/dJMcaiaWqzG/lxMMoncTE6NonmfmcEDyrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H2VLD/dJMcaiaWqzG/lxMMoncTE6NonmfmcEDyrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H2VLD/dJMcaiaWqzG/lxMMoncTE6NonmfmcEDyrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH2VLD%2FdJMcaiaWqzG%2FlxMMoncTE6NonmfmcEDyrK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;431&quot; height=&quot;102&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;102&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3)&amp;nbsp;서버 기동했다면, 아래 사진과 같이 변경 후 Setup 실행 버튼 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rwwP4/dJMb9958x7M/ljTwM6Y8kCPaWr8pvO1tPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rwwP4/dJMb9958x7M/ljTwM6Y8kCPaWr8pvO1tPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rwwP4/dJMb9958x7M/ljTwM6Y8kCPaWr8pvO1tPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrwwP4%2FdJMb9958x7M%2FljTwM6Y8kCPaWr8pvO1tPK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;504&quot; data-origin-width=&quot;501&quot; data-origin-height=&quot;504&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 닫기 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;217&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xmH6a/dJMcacofIJh/EVFNcdzq3kIBlvJhYozPH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xmH6a/dJMcacofIJh/EVFNcdzq3kIBlvJhYozPH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xmH6a/dJMcacofIJh/EVFNcdzq3kIBlvJhYozPH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxmH6a%2FdJMcacofIJh%2FEVFNcdzq3kIBlvJhYozPH0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;344&quot; height=&quot;217&quot; data-origin-width=&quot;344&quot; data-origin-height=&quot;217&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) 생성된 BootstrapConfig 파일 확인.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;187&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFyKxf/dJMcaiosEn3/Pplet5sVBQuS6KUDkxG881/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFyKxf/dJMcaiosEn3/Pplet5sVBQuS6KUDkxG881/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFyKxf/dJMcaiosEn3/Pplet5sVBQuS6KUDkxG881/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFyKxf%2FdJMcaiosEn3%2FPplet5sVBQuS6KUDkxG881%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;187&quot; height=&quot;75&quot; data-origin-width=&quot;187&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6) Window &amp;gt; Asset Management &amp;gt; Addressables &amp;gt; Groups 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5dLlA/dJMcaf6lP2W/vcm9SaeKDmOz5PmoJcJk11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5dLlA/dJMcaf6lP2W/vcm9SaeKDmOz5PmoJcJk11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5dLlA/dJMcaf6lP2W/vcm9SaeKDmOz5PmoJcJk11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5dLlA%2FdJMcaf6lP2W%2Fvcm9SaeKDmOz5PmoJcJk11%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;697&quot; height=&quot;437&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7) 나타난 창을 Console 탭 옆에 위치 후 Create Addressables Settings 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vdued/dJMcai9NmFb/MaKikf1m7ltgUxtckwzIdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vdued/dJMcai9NmFb/MaKikf1m7ltgUxtckwzIdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vdued/dJMcai9NmFb/MaKikf1m7ltgUxtckwzIdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvdued%2FdJMcai9NmFb%2FMaKikf1m7ltgUxtckwzIdK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;918&quot; height=&quot;230&quot; data-origin-width=&quot;918&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8) 생성된 내용 확인.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;913&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dY2IFT/dJMcafSPk7d/14xU7dVBDNnH7KLRciNKvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dY2IFT/dJMcafSPk7d/14xU7dVBDNnH7KLRciNKvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dY2IFT/dJMcafSPk7d/14xU7dVBDNnH7KLRciNKvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdY2IFT%2FdJMcafSPk7d%2F14xU7dVBDNnH7KLRciNKvK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;913&quot; height=&quot;124&quot; data-origin-width=&quot;913&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;309&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvyUYQ/dJMcafZzNt4/IeTIGAPZzXXaRcvKTvTkp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvyUYQ/dJMcafZzNt4/IeTIGAPZzXXaRcvKTvTkp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvyUYQ/dJMcafZzNt4/IeTIGAPZzXXaRcvKTvTkp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvyUYQ%2FdJMcafZzNt4%2FIeTIGAPZzXXaRcvKTvTkp1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;309&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;309&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9) Addressables Groups &amp;gt; Profile &amp;gt; Manage Profiles 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;191&quot; data-origin-height=&quot;85&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csSAn0/dJMcacu1zMM/SEa0LxI52WHFfypu8Jme21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csSAn0/dJMcacu1zMM/SEa0LxI52WHFfypu8Jme21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csSAn0/dJMcacu1zMM/SEa0LxI52WHFfypu8Jme21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsSAn0%2FdJMcacu1zMM%2FSEa0LxI52WHFfypu8Jme21%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;191&quot; height=&quot;85&quot; data-origin-width=&quot;191&quot; data-origin-height=&quot;85&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10) Remote.LoadPath 에 아까 기입한 사이트주소를 동일하게 기입.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;243&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zO0lp/dJMcacofIQl/6EwSgkjyS3kkIIGcnfIw4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zO0lp/dJMcacofIQl/6EwSgkjyS3kkIIGcnfIw4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zO0lp/dJMcacofIQl/6EwSgkjyS3kkIIGcnfIw4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzO0lp%2FdJMcacofIQl%2F6EwSgkjyS3kkIIGcnfIw4k%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;904&quot; height=&quot;243&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;243&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11) 관리할 대상을 생성한 그룹에 드래그앤 드롭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ApKxU/dJMcagEdfd0/LkNFQu5HbmYVL5dskKBXBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ApKxU/dJMcagEdfd0/LkNFQu5HbmYVL5dskKBXBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ApKxU/dJMcagEdfd0/LkNFQu5HbmYVL5dskKBXBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FApKxU%2FdJMcagEdfd0%2FLkNFQu5HbmYVL5dskKBXBK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;708&quot; height=&quot;183&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;12) Addressable Name 변경.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;json 파일은 소스에 기재할 내용과 동일하게 Name 해야하고, json 안의 key 와 그룹 내 위치한 리소스 Name 도 일치시켜야 함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byBOAl/dJMcaaYhGIS/IvFHAkXZNx6MALxVZQ0Yg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byBOAl/dJMcaaYhGIS/IvFHAkXZNx6MALxVZQ0Yg1/img.png&quot; data-origin-width=&quot;637&quot; data-origin-height=&quot;179&quot; data-is-animation=&quot;false&quot; style=&quot;width: 78.5698%; margin-right: 10px;&quot; data-widthpercent=&quot;79.49&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byBOAl/dJMcaaYhGIS/IvFHAkXZNx6MALxVZQ0Yg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyBOAl%2FdJMcaaYhGIS%2FIvFHAkXZNx6MALxVZQ0Yg1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;637&quot; height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cimY4U/dJMcagc72fM/8hFSjhFr5iJLFqELVBCgok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cimY4U/dJMcagc72fM/8hFSjhFr5iJLFqELVBCgok/img.png&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;256&quot; data-is-animation=&quot;false&quot; style=&quot;width: 20.2674%;&quot; data-widthpercent=&quot;20.51&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cimY4U/dJMcagc72fM/8hFSjhFr5iJLFqELVBCgok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcimY4U%2FdJMcagc72fM%2F8hFSjhFr5iJLFqELVBCgok%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;235&quot; height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;13) Play Mode Script &amp;gt; Use Existing Build (Android) 선택.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HIuDs/dJMcagxpNvR/p1BSw24xpBs0kIGVPXpupk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HIuDs/dJMcagxpNvR/p1BSw24xpBs0kIGVPXpupk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HIuDs/dJMcagxpNvR/p1BSw24xpBs0kIGVPXpupk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHIuDs%2FdJMcagxpNvR%2Fp1BSw24xpBs0kIGVPXpupk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;258&quot; height=&quot;73&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;14) Build &amp;gt; New Build &amp;gt; Default Build Script 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqaW3C/dJMcafZzNEM/0FxAnFzze6rRwRGdhdA5d0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqaW3C/dJMcafZzNEM/0FxAnFzze6rRwRGdhdA5d0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqaW3C/dJMcafZzNEM/0FxAnFzze6rRwRGdhdA5d0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqaW3C%2FdJMcafZzNEM%2F0FxAnFzze6rRwRGdhdA5d0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;409&quot; height=&quot;104&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;15) Yes 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eE9neS/dJMcahQDybs/v6uAVS5YMmIs7vM327bZp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eE9neS/dJMcahQDybs/v6uAVS5YMmIs7vM327bZp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eE9neS/dJMcahQDybs/v6uAVS5YMmIs7vM327bZp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeE9neS%2FdJMcahQDybs%2Fv6uAVS5YMmIs7vM327bZp1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;396&quot; height=&quot;166&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;16) 결과 확인.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FsOAq/dJMcaivb9yl/BXvXIXgEl4hqKAc6w7JaJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FsOAq/dJMcaivb9yl/BXvXIXgEl4hqKAc6w7JaJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FsOAq/dJMcaivb9yl/BXvXIXgEl4hqKAc6w7JaJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFsOAq%2FdJMcaivb9yl%2FBXvXIXgEl4hqKAc6w7JaJ1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;956&quot; height=&quot;505&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;17) Tools &amp;gt; Addressables Bootstrap &amp;gt; Groups Setup Wizard 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNhYOL/dJMcah4aq35/px5dtlpsiKiWeitnWOKDU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNhYOL/dJMcah4aq35/px5dtlpsiKiWeitnWOKDU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNhYOL/dJMcah4aq35/px5dtlpsiKiWeitnWOKDU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNhYOL%2FdJMcah4aq35%2Fpx5dtlpsiKiWeitnWOKDU0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;431&quot; height=&quot;103&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;103&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;18) Groups 자동 생성 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bb8PKm/dJMcab3W06u/O6hEcGAHb0z4vuoHM8tzlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bb8PKm/dJMcab3W06u/O6hEcGAHb0z4vuoHM8tzlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bb8PKm/dJMcab3W06u/O6hEcGAHb0z4vuoHM8tzlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbb8PKm%2FdJMcab3W06u%2FO6hEcGAHb0z4vuoHM8tzlK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;455&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;19) 원격으로 반영할 파일 목록을 그룹으로 이동 후 Name 및 Label 변경.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;273&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bilsXY/dJMcai9NnWz/tOKi5I7nhuiGRwZhscXCN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bilsXY/dJMcai9NnWz/tOKi5I7nhuiGRwZhscXCN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bilsXY/dJMcai9NnWz/tOKi5I7nhuiGRwZhscXCN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbilsXY%2FdJMcai9NnWz%2FtOKi5I7nhuiGRwZhscXCN1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;638&quot; height=&quot;273&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;273&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;20) Build &amp;gt; New Build &amp;gt; Default Build Script 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rsJNT/dJMcac2PdY7/dFkVHUC2oG8OYzkYBoLfs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rsJNT/dJMcac2PdY7/dFkVHUC2oG8OYzkYBoLfs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rsJNT/dJMcac2PdY7/dFkVHUC2oG8OYzkYBoLfs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrsJNT%2FdJMcac2PdY7%2FdFkVHUC2oG8OYzkYBoLfs1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;621&quot; height=&quot;196&quot; data-origin-width=&quot;621&quot; data-origin-height=&quot;196&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;21) 생성된 파일 업로드. (ui 없을 경우엔 public &amp;gt; addressable &amp;gt; Android 폴더 하위에 넣을 것)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYG0EU/dJMcaaYhHB0/Ys09pbb76P8BG0rvQh7qL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYG0EU/dJMcaaYhHB0/Ys09pbb76P8BG0rvQh7qL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYG0EU/dJMcaaYhHB0/Ys09pbb76P8BG0rvQh7qL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYG0EU%2FdJMcaaYhHB0%2FYs09pbb76P8BG0rvQh7qL0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;339&quot; height=&quot;132&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;22) WordsMergeTest 빈 오브젝트 생성 후 WordsMergeTest.cs 컴포넌트로 추가.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brKLuK/dJMcaiWg6Wi/KqaPOcyZTeZBBXIaa5lR50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brKLuK/dJMcaiWg6Wi/KqaPOcyZTeZBBXIaa5lR50/img.png&quot; data-origin-width=&quot;218&quot; data-origin-height=&quot;99&quot; data-is-animation=&quot;false&quot; style=&quot;width: 59.5208%; margin-right: 10px;&quot; data-widthpercent=&quot;60.22&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brKLuK/dJMcaiWg6Wi/KqaPOcyZTeZBBXIaa5lR50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrKLuK%2FdJMcaiWg6Wi%2FKqaPOcyZTeZBBXIaa5lR50%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;218&quot; height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kCde5/dJMcadtSKQq/2q2oMEzcQogkEQqktIQaZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kCde5/dJMcadtSKQq/2q2oMEzcQogkEQqktIQaZK/img.png&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;330&quot; data-is-animation=&quot;false&quot; style=&quot;width: 39.3165%;&quot; data-widthpercent=&quot;39.78&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kCde5/dJMcadtSKQq/2q2oMEzcQogkEQqktIQaZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkCde5%2FdJMcadtSKQq%2F2q2oMEzcQogkEQqktIQaZK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;480&quot; height=&quot;330&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;23) 실행 및 결과 확인.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;838&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x6FIF/dJMcafZzN4Y/pr4xPbkqTlvreOkzSo9KJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x6FIF/dJMcafZzN4Y/pr4xPbkqTlvreOkzSo9KJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x6FIF/dJMcafZzN4Y/pr4xPbkqTlvreOkzSo9KJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx6FIF%2FdJMcafZzN4Y%2Fpr4xPbkqTlvreOkzSo9KJK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;908&quot; height=&quot;838&quot; data-origin-width=&quot;908&quot; data-origin-height=&quot;838&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Unity/게임 웹 프로그래밍</category>
      <category>addressable</category>
      <category>c#</category>
      <category>unity</category>
      <category>잠수패치?!</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/152</guid>
      <comments>https://crazy-lazy.tistory.com/152#entry152comment</comments>
      <pubDate>Tue, 6 Jan 2026 18:04:43 +0900</pubDate>
    </item>
    <item>
      <title>GCP VM Instance 고정 IP 설정.</title>
      <link>https://crazy-lazy.tistory.com/151</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;GCP VM Instance 는 기본적으로 동적 IP 가 할당된다. 뭐 껐다 키지않는다면 변경되지 않고, 변경되더라도 그때마다 설정을 바꿔주는 방법도 있다. 하지만 그런 번거러운 작업을 하느니 고정 IP 를 사용하여 변경없이 가는 게 정신건강에 좋다. 오늘은 고정 IP 를 사용하는 방법에 대해 알아본다. (현재 GCP VM Free Plan 사용 중이며, 고정 IP 도 거기에 맞춰 설정할 생각이다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 현황&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- VM Instance 1개 Free Tier VM(e20micro) 으로 운영중.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAozbn/dJMcahpuXnH/SlKMjL9K9Uebxuvl7sEtN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAozbn/dJMcahpuXnH/SlKMjL9K9Uebxuvl7sEtN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAozbn/dJMcahpuXnH/SlKMjL9K9Uebxuvl7sEtN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAozbn%2FdJMcahpuXnH%2FSlKMjL9K9Uebxuvl7sEtN0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1244&quot; height=&quot;355&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. VM 중지.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Compute Engine &amp;gt; VM Instance &amp;gt; 설정할 VM 선택 &amp;gt; Stop(중지) 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;217&quot; data-origin-height=&quot;250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXupBl/dJMcadHlPEm/K2NCkVWIfT7MaIvUulSdGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXupBl/dJMcadHlPEm/K2NCkVWIfT7MaIvUulSdGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXupBl/dJMcadHlPEm/K2NCkVWIfT7MaIvUulSdGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXupBl%2FdJMcadHlPEm%2FK2NCkVWIfT7MaIvUulSdGK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;217&quot; height=&quot;250&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;217&quot; data-origin-height=&quot;250&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 상태가 Terminated 될 때까지 기다릴 것. (우측 맨 앞이 검정색 네모가 되면 되며, 너무 오래걸리는 것 같으면 새로고침 해보자.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;70&quot; data-origin-height=&quot;64&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vf9b9/dJMcadHlPEp/Yhw8iv9OX0SkR6OZWJhZHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vf9b9/dJMcadHlPEp/Yhw8iv9OX0SkR6OZWJhZHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vf9b9/dJMcadHlPEp/Yhw8iv9OX0SkR6OZWJhZHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvf9b9%2FdJMcadHlPEp%2FYhw8iv9OX0SkR6OZWJhZHK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;70&quot; height=&quot;64&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;70&quot; data-origin-height=&quot;64&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 고정 외부 IP 예약.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 좌측 상단 햄버거 모양 아이콘 클릭 &amp;gt; VPC 네트워크 클릭 &amp;gt; IP 주소 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFY7eH/dJMcaa4XKMz/5KSIbbqDd2cMwDljro25m1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFY7eH/dJMcaa4XKMz/5KSIbbqDd2cMwDljro25m1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFY7eH/dJMcaa4XKMz/5KSIbbqDd2cMwDljro25m1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFY7eH%2FdJMcaa4XKMz%2F5KSIbbqDd2cMwDljro25m1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;380&quot; height=&quot;328&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;380&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 외부 예약 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;161&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dEtj2n/dJMcadHlPEn/GQnampdeDKcAQFom2d9zB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dEtj2n/dJMcadHlPEn/GQnampdeDKcAQFom2d9zB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dEtj2n/dJMcadHlPEn/GQnampdeDKcAQFom2d9zB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdEtj2n%2FdJMcadHlPEn%2FGQnampdeDKcAQFom2d9zB1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;541&quot; height=&quot;161&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;541&quot; data-origin-height=&quot;161&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 각 항목을 입력.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(우측의 연결 대상은 본인이 설정할 VM 을 선택하면 됨.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; text-align: center;&quot;&gt; (연결 대상은 사용할 VM 을 선택하면 되며, 선택하지 않을 경우 요금이 발생한다.) &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRD6Zd/dJMcadHlPEo/kbAv3LKm03HekV2438ssNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRD6Zd/dJMcadHlPEo/kbAv3LKm03HekV2438ssNK/img.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;724&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;51.6&quot; data-filename=&quot;blob&quot; style=&quot;width: 51.0032%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRD6Zd/dJMcadHlPEo/kbAv3LKm03HekV2438ssNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRD6Zd%2FdJMcadHlPEo%2FkbAv3LKm03HekV2438ssNK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;724&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QCcOz/dJMcaa4XKMy/rzkouqIbjewDIklwedj0f0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QCcOz/dJMcaa4XKMy/rzkouqIbjewDIklwedj0f0/img.png&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;738&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;48.4&quot; data-filename=&quot;blob&quot; style=&quot;width: 47.8341%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QCcOz/dJMcaa4XKMy/rzkouqIbjewDIklwedj0f0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQCcOz%2FdJMcaa4XKMy%2FrzkouqIbjewDIklwedj0f0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;478&quot; height=&quot;738&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;(좌) 설정 전, (우) 설정 후(이미 등록해서 선택할 VM 이 없음...)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. VM Instance 시작.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Compute Engine &amp;gt; VM Instance &amp;gt; 설정할 VM 선택 &amp;gt; Start(시작/재개) 클릭.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. 확인.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 외부&amp;nbsp; IP 가 본인이 설정한게 맞는지 확인.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; (굳이 확인안해도 되지만, VM Instance 수정으로 들어가 네트워크 설정을 봐서 본인이 설정한 이름으로 되어 있는지 확인하자.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- IP 고정 확인 테스트&amp;nbsp; : VM Instance 를 중지 했다가 다시 시작했을 때 외부 IP 가 본인이 설정한 그대로 있어야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. 주의 사항.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 보통 VM 을 중지하면 요금이 덜나가나, 외부 IP 예약의 경우 중지할 때 비용이 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; (사용으로 해놨을 땐 비용이 나가지 않는다고 하나, 네트워크 사용량은 별개의 얘기다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 한동안 VM 을 중지할 생각이라면, 외부 IP 예약을 해제하면 된다.&lt;/p&gt;</description>
      <category>개발 이야기/GCP</category>
      <category>GCP</category>
      <category>vm instance</category>
      <category>고정 IP</category>
      <category>외부 ip</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/151</guid>
      <comments>https://crazy-lazy.tistory.com/151#entry151comment</comments>
      <pubDate>Wed, 24 Dec 2025 23:26:36 +0900</pubDate>
    </item>
    <item>
      <title>DBeaver 로 접속한 PostgreSQL 의 데이터베이스 내 테이블 보이지 않을 때.</title>
      <link>https://crazy-lazy.tistory.com/150</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;분명히 방금 테이블을 생성했는데 보이지 않는다면 아래와 같이 확인해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 설정 확인.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) Connection view.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Show objects description 이 기본으로 체크되어 있지 않은지 확인해보자...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;509&quot; data-origin-height=&quot;278&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWivLA/dJMb9953r4D/VfyVHs5GfGKx9dPUggQsjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWivLA/dJMb9953r4D/VfyVHs5GfGKx9dPUggQsjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWivLA/dJMb9953r4D/VfyVHs5GfGKx9dPUggQsjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWivLA%2FdJMb9953r4D%2FVfyVHs5GfGKx9dPUggQsjK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;509&quot; height=&quot;278&quot; data-origin-width=&quot;509&quot; data-origin-height=&quot;278&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. query 로 상태 확인.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) db 확인.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 명령어를 실행한 db 가 맞는지 확인해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1766481383836&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT current_database();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 테이블 스키마 확인.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 혹시 다른곳에 생긴건 아닌지 확인해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1766481487602&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT table_schema, table_name
FROM information_schema.tables
WHERE table_name = '생성한 테이블명';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 권한 확인.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 권한이 있는지 확인해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1766481518705&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT grantee, privilege_type
FROM information_schema.role_table_grants
WHERE table_schema = 'public';&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Unity/게임 데이터베이스 프로그래밍</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/150</guid>
      <comments>https://crazy-lazy.tistory.com/150#entry150comment</comments>
      <pubDate>Tue, 23 Dec 2025 18:19:01 +0900</pubDate>
    </item>
    <item>
      <title>GCP Compute Engine - VM 에 PostgreSQL 설치 및 Local Tool 연동.</title>
      <link>https://crazy-lazy.tistory.com/149</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;GCP Compute Engine 의 VM Instance 에 DB 로 사용할 PostgreSQL 을 설치한 후 Local Tool 인 DBeaver 를 연동하는 방법이다. 일반적인 방법은 보안 상 우려가 되어, SSH 터널링을 이용한 방법을 사용했다. 장점은 방화벽에서 별도로 postgresql 포트를 열지 않아도 된다는 점으로, SSH 를 통해 보안 연결을 구성하는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. PostgreSQL 설치 및 설정.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) GCP VM Instance 에 접속.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) PostgreSQL 설치.&lt;/p&gt;
&lt;pre id=&quot;code_1766475254849&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt update
sudo apt -y install postgresql postgresql-client postgresql-contrib vim&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) Postgres 로 접속.&lt;/p&gt;
&lt;pre id=&quot;code_1766475294454&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo -u postgres psql postgres&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 패스워드 설정.&lt;/p&gt;
&lt;pre id=&quot;code_1766475328782&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;\password postgres

# 이후 나오는 비밀번호 입력란을 동일하게 두 번 입력할 것.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) pg_hba.conf 설정 변경.&lt;/p&gt;
&lt;pre id=&quot;code_1766475402741&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/postgresql/12/main/pg_hba.conf

# vi 창이 열리면 아래와 같이 입력하고 저장할 것.
host    all             all           0.0.0.0/0         md5&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6) postgresql.conf 설정 변경.&lt;/p&gt;
&lt;pre id=&quot;code_1766475455306&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo vi /etc/postgresql/12/main/postgresql.conf

# listen_addresses= 'localhost' 이렇게 되어 있는 부분을 찾아, 아래와 같이 변경하고 저장할 것.
listen_addresses = '*'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7) 서비스 재시작.&lt;/p&gt;
&lt;pre id=&quot;code_1766475474574&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo service postgresql restart&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. SSH 키 준비 및 GCP 등록.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) SSH 키 생성.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 아래 설명을 잘 읽고 따라할 것.&lt;/p&gt;
&lt;pre id=&quot;code_1766476805843&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 유저명에 본인이 SSH 로 접속하는 계정을 적을 것.

ssh-keygen -t rsa -f ~/.ssh/gcp_db_key -C &quot;유저명&quot;



# 혹시 위 명령어가 오류 난다면 아래와 같이 폴더를 생성할 것.
# 윈도우 사용자라면 아래와 같이하고,
New-Item -ItemType Directory -Path &quot;$HOME\.ssh&quot; -Force
# 리눅스나 맥 사용자라면 아래와 같이 할 것.
mkdir -p ~/.ssh
chmod 700 ~/.ssh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 파일 생성 확인.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 결과가 두 개 파일 gcp_db_key 와 gcp_db_key.pub 이 나오면 된다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1766476951891&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 윈도우
ls $HOME\.ssh\gcp_db_key*

# 리눅스/맥
ls -l ~/.ssh/gcp_db_key*&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) SSH key 값 복사.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- gcp_db_key.pub 파일을 메모장으로 열어, 안의 내용을 모두 선택하여 복사하기.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) GCP 에 메타데이터 등록.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 아래 메뉴를 참고하여 &lt;b&gt;메타데이터&lt;/b&gt;로 이동.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;886&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IvvPE/dJMcacuWkNM/B52tsJdc9Vk2dt34Anq3p0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IvvPE/dJMcacuWkNM/B52tsJdc9Vk2dt34Anq3p0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IvvPE/dJMcacuWkNM/B52tsJdc9Vk2dt34Anq3p0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIvvPE%2FdJMcacuWkNM%2FB52tsJdc9Vk2dt34Anq3p0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;448&quot; height=&quot;886&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;886&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 수정 클릭. (또는 아래 메타데이터 추가 클릭해도 됨.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;589&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n68xS/dJMcac9u2jO/n8r2uX9T7CGgiUE1xKzv9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n68xS/dJMcac9u2jO/n8r2uX9T7CGgiUE1xKzv9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n68xS/dJMcac9u2jO/n8r2uX9T7CGgiUE1xKzv9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn68xS%2FdJMcac9u2jO%2Fn8r2uX9T7CGgiUE1xKzv9k%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;661&quot; height=&quot;589&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;661&quot; data-origin-height=&quot;589&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SSH 키 탭을 클릭하고, 항목 추가 를 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bg6aVN/dJMcaaKEGe9/0S7qn6zWN9QCKIyaVZrFQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bg6aVN/dJMcaaKEGe9/0S7qn6zWN9QCKIyaVZrFQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bg6aVN/dJMcaaKEGe9/0S7qn6zWN9QCKIyaVZrFQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbg6aVN%2FdJMcaaKEGe9%2F0S7qn6zWN9QCKIyaVZrFQk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;381&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 추가된 항목 입력란에 &lt;b&gt;3)&lt;/b&gt; 에서 복사한 값 붙여넣고, 좌측 하단의 &lt;b&gt;저장&lt;/b&gt; 버튼 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bN2e5U/dJMcagxkETb/hUkCfjFRl8CmbxWMCbkHZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bN2e5U/dJMcagxkETb/hUkCfjFRl8CmbxWMCbkHZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bN2e5U/dJMcagxkETb/hUkCfjFRl8CmbxWMCbkHZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN2e5U%2FdJMcagxkETb%2FhUkCfjFRl8CmbxWMCbkHZ0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;552&quot; height=&quot;643&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;552&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. DBeaver 설정.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) DB 선택.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;b&gt;PostgreSQL&lt;/b&gt; 선택 후 &lt;b&gt;Next&lt;/b&gt; 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;666&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjAIom/dJMcac9u2jR/KfCTenfbjAftFY9XUgk2r1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjAIom/dJMcac9u2jR/KfCTenfbjAftFY9XUgk2r1/img.png&quot; data-alt=&quot;PostgreSQL 선택 후 Next 클릭.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjAIom/dJMcac9u2jR/KfCTenfbjAftFY9XUgk2r1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjAIom%2FdJMcac9u2jR%2FKfCTenfbjAftFY9XUgk2r1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;573&quot; height=&quot;666&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;573&quot; data-origin-height=&quot;666&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;PostgreSQL 선택 후 Next 클릭.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Main 탭 속성 설정.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- host : &lt;b&gt;localhost&lt;/b&gt; 로 기입.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- port : 본인이 설정한 &lt;b&gt;포트&lt;/b&gt;. (없으면 기본 포트 그대로 유지할 것.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- database : 기본으로 선택되어질 &lt;b&gt;database 명&lt;/b&gt;.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- show all databases : &lt;b&gt;체크&lt;/b&gt;해야 다른 db 도 보고, 수정하거나 추가할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- username : 접속할 &lt;b&gt;계정&lt;/b&gt;명 입력.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- password : 접속할 &lt;b&gt;비밀번호&lt;/b&gt; 입력.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAbJNC/dJMcac9u2jQ/y56kQKqa0PVTBKkBUEFmi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAbJNC/dJMcac9u2jQ/y56kQKqa0PVTBKkBUEFmi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAbJNC/dJMcac9u2jQ/y56kQKqa0PVTBKkBUEFmi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAbJNC%2FdJMcac9u2jQ%2Fy56kQKqa0PVTBKkBUEFmi1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;786&quot; height=&quot;650&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) SSH 탭 속성 설정.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Main 탭 우측에 보면 초록색으로 + 버튼이 있고 SSH 등 여러 탭 생성 가능. &lt;b&gt;+&lt;/b&gt; 버튼 클릭 후 &lt;b&gt;SSH&lt;/b&gt; 를 선택하여 SSH 탭 생성할 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- host/ip : 접속할 &lt;b&gt;gcp ip&lt;/b&gt; 기입.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- port : 접속할 gcp 에 설정한&lt;b&gt; ssh port&lt;/b&gt; 기입. (없을 경우 기본 22)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- user name : 접속할 &lt;b&gt;ssh account&lt;/b&gt; 명. (별도 설정한게 없다면 보통 @ 앞쪽이나, 이미 존재할 경우 다를 수 있으니 웹 접속하여 확인할 것.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- authentication method : &lt;b&gt;public key&lt;/b&gt; 선택.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- private key : &lt;b&gt;생성한 key file&lt;/b&gt; 선택. (gcp_db_key)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- passphrase : 키 생성 시 입력한 &lt;b&gt;비밀번호&lt;/b&gt; 입력.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnAvxU/dJMcagxkETc/ScT3goKtuvy5InD9AfSn71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnAvxU/dJMcagxkETc/ScT3goKtuvy5InD9AfSn71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnAvxU/dJMcagxkETc/ScT3goKtuvy5InD9AfSn71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnAvxU%2FdJMcagxkETc%2FScT3goKtuvy5InD9AfSn71%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;786&quot; height=&quot;638&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 접속 테스트 및 datasource 저장.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;b&gt;Test Connection&lt;/b&gt; 클릭하여 정상 접속 여부 확인. (안될 경우 잘못 설정한게 없는지 체크할 것.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 테스트 완료되었다면 &lt;b&gt;OK&lt;/b&gt; 를 눌러 설정 내용 저장.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) 접속.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 저장한 &lt;b&gt;datasource&lt;/b&gt; 선택 후 접속.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dtsDNz/dJMcac9u2jP/PACAwf4Wyu6grzgEsPImO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dtsDNz/dJMcac9u2jP/PACAwf4Wyu6grzgEsPImO1/img.png&quot; data-alt=&quot;정상 접속 시 나오는 결과 화면.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dtsDNz/dJMcac9u2jP/PACAwf4Wyu6grzgEsPImO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtsDNz%2FdJMcac9u2jP%2FPACAwf4Wyu6grzgEsPImO1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;307&quot; height=&quot;344&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;344&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;정상 접속 시 나오는 결과 화면.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발 이야기/GCP</category>
      <category>compute engine</category>
      <category>DBeaver</category>
      <category>GCP</category>
      <category>PostgreSQL</category>
      <category>vm instance</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/149</guid>
      <comments>https://crazy-lazy.tistory.com/149#entry149comment</comments>
      <pubDate>Tue, 23 Dec 2025 17:17:22 +0900</pubDate>
    </item>
    <item>
      <title>GCP VM Instance 생성. - 무료로 사용하기.</title>
      <link>https://crazy-lazy.tistory.com/148</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;간단한 서버 환경을 경험해보고 싶다면 이미 이전 강의에서 GCP 계정을 생성하였으므로 GCP 환경을 추천한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 명령어를 검색해서 사용하고 도전하고자 하는 의지가 있어야 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비용은 아래와 같이 무료 등급으로 개설할 예정이므로 0원이다. (단, 시기에 따라 달라질 수 있으니 꼭 확인하자.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vUpxa/dJMcadm0HbU/V7IXKmOzddXjkL6S7cRO31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vUpxa/dJMcadm0HbU/V7IXKmOzddXjkL6S7cRO31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vUpxa/dJMcadm0HbU/V7IXKmOzddXjkL6S7cRO31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvUpxa%2FdJMcadm0HbU%2FV7IXKmOzddXjkL6S7cRO31%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;740&quot; height=&quot;355&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* Reference : &lt;a href=&quot;https://docs.cloud.google.com/free/docs/free-cloud-features?hl=ko#compute&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.cloud.google.com/free/docs/free-cloud-features?hl=ko#compute&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1766324813516&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;무료 클라우드 기능 및 무료 체험 혜택 &amp;nbsp;|&amp;nbsp; Google Cloud Free Program &amp;nbsp;|&amp;nbsp; Google Cloud Documentation&quot; data-og-description=&quot;Google Cloud 무료 체험 혜택에 포함된 무료 클라우드 기능과 계정 업그레이드 방법에 대해 자세히 알아보세요.&quot; data-og-host=&quot;docs.cloud.google.com&quot; data-og-source-url=&quot;https://docs.cloud.google.com/free/docs/free-cloud-features?hl=ko#compute&quot; data-og-url=&quot;https://docs.cloud.google.com/free/docs/free-cloud-features?hl=ko&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/K4Rcl/hyZPYU1ghT/7dKwup1merKY0dJiYupJqk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://docs.cloud.google.com/free/docs/free-cloud-features?hl=ko#compute&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.cloud.google.com/free/docs/free-cloud-features?hl=ko#compute&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/K4Rcl/hyZPYU1ghT/7dKwup1merKY0dJiYupJqk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;무료 클라우드 기능 및 무료 체험 혜택 &amp;nbsp;|&amp;nbsp; Google Cloud Free Program &amp;nbsp;|&amp;nbsp; Google Cloud Documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Google Cloud 무료 체험 혜택에 포함된 무료 클라우드 기능과 계정 업그레이드 방법에 대해 자세히 알아보세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.cloud.google.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;0. Requierments.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 이미 GCP 계정이 있어야 한다. (없으면 생성할 것)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 이미 개설한 프로젝트가 있어야 한다. (없으면 만들 것)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Compute Engine API 활성화.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) GCP 의 Compute Engine 으로 이동한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCKBel/dJMcajnepmc/YusIvi8cSwfu21Wqlx4cHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCKBel/dJMcajnepmc/YusIvi8cSwfu21Wqlx4cHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCKBel/dJMcajnepmc/YusIvi8cSwfu21Wqlx4cHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCKBel%2FdJMcajnepmc%2FYusIvi8cSwfu21Wqlx4cHK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;500&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 사용을 클릭한다. (시간이 좀 걸릴 수 있으니 대기하자.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BsWn0/dJMcajnepmb/WktvaBr81ODFBg7PsqBLgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BsWn0/dJMcajnepmb/WktvaBr81ODFBg7PsqBLgK/img.png&quot; data-origin-width=&quot;375&quot; data-origin-height=&quot;242&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;51.22&quot; data-filename=&quot;blob&quot; style=&quot;width: 50.6271%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BsWn0/dJMcajnepmb/WktvaBr81ODFBg7PsqBLgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBsWn0%2FdJMcajnepmb%2FWktvaBr81ODFBg7PsqBLgK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;375&quot; height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doVCUx/dJMcacItegg/k2BNR57kJkQmkFPm08vgw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doVCUx/dJMcacItegg/k2BNR57kJkQmkFPm08vgw0/img.png&quot; data-origin-width=&quot;605&quot; data-origin-height=&quot;410&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;48.78&quot; data-filename=&quot;blob&quot; style=&quot;width: 48.2101%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doVCUx/dJMcacItegg/k2BNR57kJkQmkFPm08vgw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoVCUx%2FdJMcacItegg%2Fk2BNR57kJkQmkFPm08vgw0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;605&quot; height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;(좌) 사용 클릭 전 모습. (우) 사용 클릭 후 완료된 모습. (만약 완료되어도 이렇게 안나온다면 새로고침 할 것)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. VM Instance 만들기.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 인스턴스 만들기를 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OPVbx/dJMcajnepmd/FPj3VnpzBr7m8g96oW1ZeK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OPVbx/dJMcajnepmd/FPj3VnpzBr7m8g96oW1ZeK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OPVbx/dJMcajnepmd/FPj3VnpzBr7m8g96oW1ZeK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOPVbx%2FdJMcajnepmd%2FFPj3VnpzBr7m8g96oW1ZeK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;492&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;722&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 머신 구성 핵심은 &lt;b&gt;E2 &amp;gt; e2-micro &amp;gt; 표준&lt;/b&gt; 이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;1173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wGomI/dJMcadm0HbW/qX6isa5Kk8WizuX2Qlx3hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wGomI/dJMcadm0HbW/qX6isa5Kk8WizuX2Qlx3hk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wGomI/dJMcadm0HbW/qX6isa5Kk8WizuX2Qlx3hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwGomI%2FdJMcadm0HbW%2FqX6isa5Kk8WizuX2Qlx3hk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;881&quot; height=&quot;1173&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;1173&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) OS 및 스토리지 핵심은 &lt;b&gt;표준 영구 디스크 &amp;gt; 30Gb&lt;/b&gt; 이다. (운영체제는 아무거나 무료로 사용할 것)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;588&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CFGFw/dJMcacItegh/KB41BuI2raviKqo3xXJNAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CFGFw/dJMcacItegh/KB41BuI2raviKqo3xXJNAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CFGFw/dJMcacItegh/KB41BuI2raviKqo3xXJNAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCFGFw%2FdJMcacItegh%2FKB41BuI2raviKqo3xXJNAK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;878&quot; height=&quot;588&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;588&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 데이터 보호 핵심은 &lt;b&gt;백업 없음&lt;/b&gt; 이다. (스냅샷 일정은 비용이 발생하니 사용 중 직접 하는 방향이 좋다.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/br17sH/dJMcadm0HbV/1M5DzIk7kKgMh5kVysMMIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/br17sH/dJMcadm0HbV/1M5DzIk7kKgMh5kVysMMIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/br17sH/dJMcadm0HbV/1M5DzIk7kKgMh5kVysMMIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbr17sH%2FdJMcadm0HbV%2F1M5DzIk7kKgMh5kVysMMIk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;897&quot; height=&quot;544&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) 네트워킹 핵심은 &lt;b&gt;네트워크 서비스 계층을 표준으로 변경&lt;/b&gt;하는 것이다. 그 외 본인이 서비스를 할 것이라면 &lt;b&gt;방화벽에 HTTP / HTTPS 를 추가 체크&lt;/b&gt; 하자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;1162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjMpqx/dJMcajnepme/BBmGGmhIofY9EGoXwLn4L0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjMpqx/dJMcajnepme/BBmGGmhIofY9EGoXwLn4L0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjMpqx/dJMcajnepme/BBmGGmhIofY9EGoXwLn4L0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjMpqx%2FdJMcajnepme%2FBBmGGmhIofY9EGoXwLn4L0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;921&quot; height=&quot;1162&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;1162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;1212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbNx8Q/dJMcaaDSijm/ThGHLfOFE4M2zCmvjPzpq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbNx8Q/dJMcaaDSijm/ThGHLfOFE4M2zCmvjPzpq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbNx8Q/dJMcaaDSijm/ThGHLfOFE4M2zCmvjPzpq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbNx8Q%2FdJMcaaDSijm%2FThGHLfOFE4M2zCmvjPzpq0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;917&quot; height=&quot;1212&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;917&quot; data-origin-height=&quot;1212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6) 모니터링 가능성의 핵심은 &lt;b&gt;모두 체크 해제&lt;/b&gt;이다. (비용 발생 가능성을 줄이자)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2E7ar/dJMcah34ivi/hRklVgmut7534zERTX07GK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2E7ar/dJMcah34ivi/hRklVgmut7534zERTX07GK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2E7ar/dJMcah34ivi/hRklVgmut7534zERTX07GK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2E7ar%2FdJMcah34ivi%2FhRklVgmut7534zERTX07GK%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;565&quot; height=&quot;423&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7) 완료.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성할 때 비용이 표기가 되어 있으나, 정책에 따르면 표기는 7.3 달러 이지만, 실제 결제는 이뤄지지 않는다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(실제 결제가 이뤄지지 않는지는 경험해보지 못했으며, 익월 포스팅에 업데이트 할 예정.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;548&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FxT6s/dJMcacItegi/Rvg7emkerNCCshfpxcDyxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FxT6s/dJMcacItegi/Rvg7emkerNCCshfpxcDyxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FxT6s/dJMcacItegi/Rvg7emkerNCCshfpxcDyxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFxT6s%2FdJMcacItegi%2FRvg7emkerNCCshfpxcDyxk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;1244&quot; height=&quot;548&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;548&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 그 외 비용 줄이기 Tip.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 사용하다가 서비스에 확신이 들어 정상 운영을 하고 싶다. 좀 더 안정적인 운영이나 서비스를 하고 더 나은 퍼포먼스를 원한다. 라고 느낀다면 속성 수정을 통해 하드웨어를 업그레이드 할 수 있다. 이에 대한 부분은 언제든 수정이 가능하니 이를 활용하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 이미 알고 있겠지만 머신을 사용하지 않을 땐 정지 시켜두면 비용이 거의 나가지 않는다. (일부 비용이 아주 미세하게 나가는게 있긴함. (상세한 내용은 정책 참고))&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 1월엔 머신을 정상 운영하며, API 서버 와 관리자용 웹서버, 데이터베이스서버 이렇게 최소 3개 서비스를 돌릴 생각으로, 추후 push 서버를 도입할까 고민 중에 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 추가적인 무료 서비스가 필요하다면 처음 올린 링크를 참고하면 다른 간단한 서비스들도 활용할것이 제법 있으니 참고하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>개발 이야기/GCP</category>
      <category>compute engine</category>
      <category>GCP</category>
      <category>vm</category>
      <category>무료</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/148</guid>
      <comments>https://crazy-lazy.tistory.com/148#entry148comment</comments>
      <pubDate>Sun, 21 Dec 2025 23:27:36 +0900</pubDate>
    </item>
    <item>
      <title>Github LFS 사용하기. - 대용량 파일 업로드.</title>
      <link>https://crazy-lazy.tistory.com/147</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;github 사용 시 100mb 를 넘을 경우 commit 을 할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 LFS 를 사용하게 되면, 최대 1GB 까진 가능해진다. 이에 대한 내용은 아래를 참고하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 프로젝트 폴더로 이동.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;abc 프로젝트를 진행중이라면 abc 폴더 안에 들어가서 마우스 우클릭 &amp;gt; 추가 옵션 표시 클릭 &amp;gt; . git bash here 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U3fM4/dJMcaiaOzms/KzYYtdR0uovbH0IzNXkFS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U3fM4/dJMcaiaOzms/KzYYtdR0uovbH0IzNXkFS0/img.png&quot; data-origin-width=&quot;136&quot; data-origin-height=&quot;42&quot; data-is-animation=&quot;false&quot; style=&quot;width: 48.9507%; margin-right: 10px;&quot; data-widthpercent=&quot;49.53&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U3fM4/dJMcaiaOzms/KzYYtdR0uovbH0IzNXkFS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU3fM4%2FdJMcaiaOzms%2FKzYYtdR0uovbH0IzNXkFS0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;136&quot; height=&quot;42&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIxlrS/dJMcaiV8O2w/SJMIBVEZZwtoNCMtaHr6i1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIxlrS/dJMcaiV8O2w/SJMIBVEZZwtoNCMtaHr6i1/img.png&quot; data-origin-width=&quot;132&quot; data-origin-height=&quot;40&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.8865%;&quot; data-widthpercent=&quot;50.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIxlrS/dJMcaiV8O2w/SJMIBVEZZwtoNCMtaHr6i1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIxlrS%2FdJMcaiV8O2w%2FSJMIBVEZZwtoNCMtaHr6i1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;132&quot; height=&quot;40&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;(우) 폴더 내 빈 곳을 마우스 우클릭 시 나오는 context 창에서 나오는 내용. (좌) 추가 옵션 표시 클릭 시 나오는 내용.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. git-lfs 설치.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git lfs install 입력하고 엔터.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;121&quot; data-origin-height=&quot;29&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RIdJH/dJMcabQh7rF/pdo1MK6ztEaRAVYGLsSrF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RIdJH/dJMcabQh7rF/pdo1MK6ztEaRAVYGLsSrF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RIdJH/dJMcabQh7rF/pdo1MK6ztEaRAVYGLsSrF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRIdJH%2FdJMcabQh7rF%2Fpdo1MK6ztEaRAVYGLsSrF0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;121&quot; height=&quot;29&quot; data-origin-width=&quot;121&quot; data-origin-height=&quot;29&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. lfs 로 관리할 파일 등록.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(아래 예시는 확장자가 bundle 인 파일 등록)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git lfs track *.bundle&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;170&quot; data-origin-height=&quot;37&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MWnt2/dJMcagc0B1K/USLT8kBAErRxjs0MmiHryk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MWnt2/dJMcagc0B1K/USLT8kBAErRxjs0MmiHryk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MWnt2/dJMcagc0B1K/USLT8kBAErRxjs0MmiHryk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMWnt2%2FdJMcagc0B1K%2FUSLT8kBAErRxjs0MmiHryk%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;170&quot; height=&quot;37&quot; data-origin-width=&quot;170&quot; data-origin-height=&quot;37&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 관리 파일 추가.&lt;/b&gt; (자동으로 추가 안되었을 경우 필요)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git&amp;nbsp;add&amp;nbsp;.gitattributes&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;181&quot; data-origin-height=&quot;14&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sqy4l/dJMcaaDQBsO/VXCSaUoZo6yPjcCAoHwhg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sqy4l/dJMcaaDQBsO/VXCSaUoZo6yPjcCAoHwhg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sqy4l/dJMcaaDQBsO/VXCSaUoZo6yPjcCAoHwhg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsqy4l%2FdJMcaaDQBsO%2FVXCSaUoZo6yPjcCAoHwhg0%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;181&quot; height=&quot;14&quot; data-origin-width=&quot;181&quot; data-origin-height=&quot;14&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. github descktop 실행.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;138&quot; data-origin-height=&quot;33&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F5h4q/dJMcajgrfxr/Q0cSplQzNMfVdp3mn6kMz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F5h4q/dJMcajgrfxr/Q0cSplQzNMfVdp3mn6kMz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F5h4q/dJMcajgrfxr/Q0cSplQzNMfVdp3mn6kMz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF5h4q%2FdJMcajgrfxr%2FQ0cSplQzNMfVdp3mn6kMz1%2Fimg.png&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; loading=&quot;lazy&quot; width=&quot;138&quot; height=&quot;33&quot; data-origin-width=&quot;138&quot; data-origin-height=&quot;33&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. 소스 업로드&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;commit 후 push 하면 됨.&lt;/p&gt;</description>
      <category>Unity/Tools</category>
      <category>GitHub</category>
      <category>lfs</category>
      <category>대용량파일</category>
      <author>Crazy Lazy</author>
      <guid isPermaLink="true">https://crazy-lazy.tistory.com/147</guid>
      <comments>https://crazy-lazy.tistory.com/147#entry147comment</comments>
      <pubDate>Wed, 17 Dec 2025 16:52:54 +0900</pubDate>
    </item>
  </channel>
</rss>