<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>조금씩의 기록</title>
    <link>https://ssapo.tistory.com/</link>
    <description>크게 변하는 건 없어요.
그래도 한 발짝씩 떼봐요.  </description>
    <language>ko</language>
    <pubDate>Thu, 21 May 2026 20:25:30 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ssapo</managingEditor>
    <image>
      <title>조금씩의 기록</title>
      <url>https://tistory1.daumcdn.net/tistory/1822855/attach/f330663be99f4bd2a0b07f6eb9fa5426</url>
      <link>https://ssapo.tistory.com</link>
    </image>
    <item>
      <title>[Unity] No Sprite Editor Window Error 스프라이트 에디터 에러 해결방법</title>
      <link>https://ssapo.tistory.com/36</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오랜만에 유니티로 작업해볼 일이 생겨서 켰다가 발생한 에러입니다.&lt;br /&gt;스프라이트 편집해볼려고 Sprite Eidtor 버튼 누르는 순간! 이전버젼들에서는 본적이 없는 에러가 발생했습니다.&lt;br /&gt;참고로 &lt;b&gt;해당 에러 발생 버젼은 2020. 3. 28f1 LTS 버젼입니다. &lt;br /&gt;&lt;/b&gt;유니티가 버젼업이 급진적이다 보니 버젼이 다르면 해결이 안될수도 있겠습니다...&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;No_Sprite_Editor_WTF.png&quot; data-origin-width=&quot;537&quot; data-origin-height=&quot;700&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F8kGs/btrtMIQUKpN/LdcM7wyLZQMFwMvf65XKSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F8kGs/btrtMIQUKpN/LdcM7wyLZQMFwMvf65XKSK/img.png&quot; data-alt=&quot;No Sprite Editor Window Error???&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F8kGs/btrtMIQUKpN/LdcM7wyLZQMFwMvf65XKSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF8kGs%2FbtrtMIQUKpN%2FLdcM7wyLZQMFwMvf65XKSK%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;537&quot; height=&quot;700&quot; data-filename=&quot;No_Sprite_Editor_WTF.png&quot; data-origin-width=&quot;537&quot; data-origin-height=&quot;700&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;No Sprite Editor Window Error???&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오랜만에 켜가지고 에러없이 딱딱 끝낼려고 했는데.. 진짜 왓더뻑;;인 상황이..&lt;br /&gt;하지만 침착하게 에러창에서 하란대로 하면 해결이됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;'Please donwload 2D Sprite package from Package Manager. '&lt;br /&gt;&lt;/b&gt;&lt;b&gt;'패키지 매니저를 통해 2D Sprite pakcage 다운로드 받으세요'&lt;br /&gt;&lt;br /&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;No_Sprite_Editor_WTF2.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rRE3N/btrtIS1hakl/XQiDHqRaWg91OWyKYBKyWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rRE3N/btrtIS1hakl/XQiDHqRaWg91OWyKYBKyWK/img.png&quot; data-alt=&quot;No Sprite Editor Window Error 해결방법1&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rRE3N/btrtIS1hakl/XQiDHqRaWg91OWyKYBKyWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrRE3N%2FbtrtIS1hakl%2FXQiDHqRaWg91OWyKYBKyWK%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;748&quot; height=&quot;504&quot; data-filename=&quot;No_Sprite_Editor_WTF2.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;504&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;No Sprite Editor Window Error 해결방법1&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메뉴바에서 Window &amp;gt; Package Manager 클릭 클릭으로 들어가면 Package Manager 윈도우가 뜹니다.&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-filename=&quot;No_Sprite_Editor_WTF3.png&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pHhqi/btrtOyAd2lp/eOs5za5vOn6c573w4F1Qa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pHhqi/btrtOyAd2lp/eOs5za5vOn6c573w4F1Qa1/img.png&quot; data-alt=&quot;No Sprite Editor Window Error 해결방법2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pHhqi/btrtOyAd2lp/eOs5za5vOn6c573w4F1Qa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpHhqi%2FbtrtOyAd2lp%2FeOs5za5vOn6c573w4F1Qa1%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;802&quot; height=&quot;569&quot; data-filename=&quot;No_Sprite_Editor_WTF3.png&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;569&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;No Sprite Editor Window Error 해결방법2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이거 좀 해매다가 찾았는데 Package Manager 창에서 2D Sprite 패키지 선택후에 &lt;b&gt;Install버튼&lt;/b&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-filename=&quot;No_Sprite_Editor_WTF4.png&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yPtuO/btrtIeC0TOK/aWO7Wf7yKW90zgW4uKkL0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yPtuO/btrtIeC0TOK/aWO7Wf7yKW90zgW4uKkL0K/img.png&quot; data-alt=&quot;No Sprite Editor Window Error 해결방법3&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yPtuO/btrtIeC0TOK/aWO7Wf7yKW90zgW4uKkL0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyPtuO%2FbtrtIeC0TOK%2FaWO7Wf7yKW90zgW4uKkL0K%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;802&quot; height=&quot;569&quot; data-filename=&quot;No_Sprite_Editor_WTF4.png&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;569&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;No Sprite Editor Window Error 해결방법3&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 완료되고 나면 스크린샷에서 보이듯이 녹색 체크표시가 됩니다.&lt;br /&gt;녹색 체크 표시 뜨고나면 완료된 것입니다.&lt;br /&gt;다시 스프라이트 눌러서 Sprite Eidtor가 잘뜨는 것 확인해보면 되겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;No_Sprite_Editor_WTF5.png&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxlrN0/btrtO7vSUje/6hEixNXUsPCgKgGud4A3UK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxlrN0/btrtO7vSUje/6hEixNXUsPCgKgGud4A3UK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxlrN0/btrtO7vSUje/6hEixNXUsPCgKgGud4A3UK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxlrN0%2FbtrtO7vSUje%2F6hEixNXUsPCgKgGud4A3UK%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;363&quot; height=&quot;569&quot; data-filename=&quot;No_Sprite_Editor_WTF5.png&quot; data-origin-width=&quot;363&quot; data-origin-height=&quot;569&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>DEV/Unity Engine</category>
      <category>2d</category>
      <category>editor</category>
      <category>error</category>
      <category>Sprite</category>
      <category>Unity</category>
      <category>스파라이트</category>
      <category>애니메이션</category>
      <category>에디터</category>
      <category>유니티</category>
      <category>유니티엔진</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/36</guid>
      <comments>https://ssapo.tistory.com/36#entry36comment</comments>
      <pubDate>Sun, 20 Feb 2022 05:00:17 +0900</pubDate>
    </item>
    <item>
      <title>[VS] visual studio Ctrl + Click disable</title>
      <link>https://ssapo.tistory.com/26</link>
      <description>&lt;p&gt;마우스 클릭을 사용하여 [정의로 이동] 기능을 수행해주는 단축키가 있는데&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;언리얼같은 코드량이 아~~주 방대해서 한번 정의로 이동하는 기능을 사용하면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;상당히 느린 반응으로 인해 답답한데&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;코드를 복사 붙여넣기 하다보면 Ctrl이 눌려진 상태로 인식되어서 Ctrl + Click 단축키가 의도하지 않게 자주 실행된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cC7Tls/btqu0tGZj2Y/Sao7SpdofxOekIPt8z0ua1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cC7Tls/btqu0tGZj2Y/Sao7SpdofxOekIPt8z0ua1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cC7Tls/btqu0tGZj2Y/Sao7SpdofxOekIPt8z0ua1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcC7Tls%2Fbtqu0tGZj2Y%2FSao7SpdofxOekIPt8z0ua1%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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;기본적으로 2017부터는 체크가 되어 있기 때문에 ( 2015 에서는 안해봐서 정확히 모르겠다... )&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;도구 -&amp;gt; 옵션 -&amp;gt; 텍스트 편집기&lt;/p&gt;
&lt;p&gt;마우스클릭을 사용하여 [정의로 이동] 수행 - 을 체크해제 해주면 된다.&lt;/p&gt;</description>
      <category>DEV/Visual Studio</category>
      <category>ctrl + click</category>
      <category>ctrl click</category>
      <category>HotKey</category>
      <category>UE4</category>
      <category>Visual Studio</category>
      <category>VS</category>
      <category>단축키</category>
      <category>마우스 클릭</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/26</guid>
      <comments>https://ssapo.tistory.com/26#entry26comment</comments>
      <pubDate>Sat, 19 Feb 2022 19:29:20 +0900</pubDate>
    </item>
    <item>
      <title>[Unity] How to import custom package? 다운받은 유니티 어셋 추가 방법</title>
      <link>https://ssapo.tistory.com/35</link>
      <description>&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;그럴 경우에 사용하는 방법 커스텀 어셋 추가방법입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;import_custom_package.png&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pdBQF/btrtIORpKMj/i4KknlKpuiXxVvCaqwO8W1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pdBQF/btrtIORpKMj/i4KknlKpuiXxVvCaqwO8W1/img.png&quot; data-alt=&quot;import custom package1&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pdBQF/btrtIORpKMj/i4KknlKpuiXxVvCaqwO8W1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpdBQF%2FbtrtIORpKMj%2Fi4KknlKpuiXxVvCaqwO8W1%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;992&quot; height=&quot;564&quot; data-filename=&quot;import_custom_package.png&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;import custom package1&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유니티 에디터에서 Assets &amp;gt; Import Package &amp;gt; Custom Package... 메뉴를 선택해 줍니다.&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-filename=&quot;import_custom_package2.png&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;533&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbyXtf/btrtDguWsPu/g9wXwYnUcMkDp21ghwK5MK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbyXtf/btrtDguWsPu/g9wXwYnUcMkDp21ghwK5MK/img.png&quot; data-alt=&quot;import custom package2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbyXtf/btrtDguWsPu/g9wXwYnUcMkDp21ghwK5MK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbyXtf%2FbtrtDguWsPu%2Fg9wXwYnUcMkDp21ghwK5MK%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;946&quot; height=&quot;533&quot; data-filename=&quot;import_custom_package2.png&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;533&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;import custom package2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;import package에 대한 윈도우 선택창이 뜨면 .unitypackage 확장자로&lt;br /&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-filename=&quot;import_custom_package3.png&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;581&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYgl0J/btrtGh1FJOl/Ql9zkK8EAvkVAXHDDKhhQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYgl0J/btrtGh1FJOl/Ql9zkK8EAvkVAXHDDKhhQk/img.png&quot; data-alt=&quot;import custom package3&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYgl0J/btrtGh1FJOl/Ql9zkK8EAvkVAXHDDKhhQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYgl0J%2FbtrtGh1FJOl%2FQl9zkK8EAvkVAXHDDKhhQk%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;350&quot; height=&quot;581&quot; data-filename=&quot;import_custom_package3.png&quot; data-origin-width=&quot;350&quot; data-origin-height=&quot;581&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;import custom package3&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후의 화면은 어셋 임포트랑 완전히 동일합니다.&lt;/p&gt;</description>
      <category>DEV/Unity Engine</category>
      <category>Asset</category>
      <category>AssetStore</category>
      <category>Custom</category>
      <category>download</category>
      <category>HOW</category>
      <category>Import</category>
      <category>package</category>
      <category>Unity</category>
      <category>어셋</category>
      <category>유니티</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/35</guid>
      <comments>https://ssapo.tistory.com/35#entry35comment</comments>
      <pubDate>Sat, 19 Feb 2022 10:55:23 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 커밋 git commit 날짜 변경하기</title>
      <link>https://ssapo.tistory.com/34</link>
      <description>&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;잔디 심기를 매일 해주고 싶은데 몇 분의 차이로 하루가 지나버렸을 때에, 잔디를 심는 꼼수 방법입니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;일단 먼저 커밋을 하면, 당연히 마지막 커밋으로 올라오겠죠,&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;마지막 커밋을 기준으로 날짜를 변경하는 커맨드를 넣어주면 됩니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;&lt;span&gt;git commit --amend --no-edit --date &quot;Mon 20 Aug 2018 20:19:19 KST&quot;&lt;/span&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p&gt;&quot;요일 날짜 월 년 시:분:초 KST&lt;span&gt;(한국표준시&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&quot; 넣어주면 됩니다.&lt;/p&gt;
&lt;p&gt;예상 되는 파라미터 값들입니다.&lt;/p&gt;
&lt;p&gt;요일 약어 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)&lt;/p&gt;
&lt;p&gt;월 약어 (Jan, Fab, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)&lt;/p&gt;
&lt;p&gt;날짜와 년도는 숫자로 입력 하면 되니 패스하구요&lt;/p&gt;
&lt;p&gt;시분초는 hh:mm::ss 기준으로 입력하면 됩니다.&lt;/p&gt;</description>
      <category>DEV/Git</category>
      <category>change</category>
      <category>commit</category>
      <category>git</category>
      <category>Unity</category>
      <category>개발</category>
      <category>깃</category>
      <category>날짜</category>
      <category>변경</category>
      <category>유니티</category>
      <category>커밋</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/34</guid>
      <comments>https://ssapo.tistory.com/34#entry34comment</comments>
      <pubDate>Sun, 15 Mar 2020 23:05:00 +0900</pubDate>
    </item>
    <item>
      <title>[Unity] C# MonoBehaviour Singleton 유니티 싱글톤 만드는 방법</title>
      <link>https://ssapo.tistory.com/33</link>
      <description>&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;# 싱글톤 패턴 (Singleton Pattern) 이란?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;[GoF의 디자인 패턴] 책에서의 싱글턴에 대한 요약은 이렇습니다.&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 style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 오직 한 개의 인스턴스만 갖도록 보장&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;외부 시스템과 상호작용 하면서 전역 상태를 관리하는 클래스 같은 경우,&lt;br /&gt;인스턴스가 여러개로 만들어지는 것 자체로도 제대로 작동하지 않는 경우가 발생할 수 있습니다.&lt;br /&gt;게임을 하는 플레이어의 상태, 혹은 게임 자체의 상태를 관리하는 역할의 클래스를 만들려 한다면,&lt;br /&gt;이는 분명 게임에서 하나만 존재하여야 할것입니다.&lt;br /&gt;하나만 가져야 한다는 규칙 자체를 컴파일 단계에서 강제하여 런타임에서 의도하지 않은 동작을&lt;br /&gt;방지할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 전역 접근성을 제공&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;로깅, 컨텐츠 로딩, 게임 저장 등 여러 내부 시스템에서 전역적인 방향에서 게임에 대한 상태를 접근해서 얻고 싶을때에 대한 해결책을 제공합니다. 싱글톤은 어디서든 어떤 클래스에서든 누구든지, 싱글톤 클래스의 인스턴스에 접근하여 필요한 기능을 사용할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;# 싱글톤을 왜 사용하는지?&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;위의 2가지 문제를 한번에 해결하는 간단한 방법이고, 버그의 여지가 거의 없기도 한 방법이기 때문입니다.&lt;br /&gt;또 그 외에도 몇가지 장점은 있습니다.&lt;br /&gt;[게임 프로그래밍 패턴] 책에서는 3가지의 장점을 더 알려주고 있습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 한 번도 사용하지 않는다면 아예, 메모리조차 할당하지 않을 수 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;처음 사용될때 초기화를 시도하는 방법으로 싱글톤을 구현한다면, 게임 내에서 사용되지 않을 경우에 아예 초기화되지 않을 것이므로 메모리를 사용하지 않게 됩니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 런타임에 초기화 됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;정적 멤버 변수는 컴파일 타임에 자동으로 초기화가 되는 문제가 있지만, 싱글턴은 최대한 늦게 필요한 시점에서 초기화를 시킬 수 있기 때문에, 해당 시점에는 싱글톤이 필요하는 정보를 안전하게 가져올 수 있고, 순환 참조의 문제만 없다면 다른 싱글톤끼리의 참조또한 어렵지 않습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. 싱글톤을 상속할 수 있습니다.&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;싱글톤 코드는 구현이 어느정도 고정되어 있으므로, 여러가지 관리자 클래스가 필요할때 하나의 싱글톤 부모 클래스를 상속함으로서 구현상의 생산성을 증대시킬 수 있습니다. 이 방법은 아래쪽에서 다룰 예정입니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;# 싱글톤을 구현하는 방법에 대해&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;싱글톤을 구현하는 여러가지 방법을 알아보자.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 간단한 방법&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;이 방법은 아주 간단합니다. 클래스에 정적 변수로 자기 자신의 클래스에 대한 Instance를 만들고 Awake()함수에서 정적 변수를 초기화 하는 것으로 구현이 완료됩니다.&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #272727; border-radius: 4px; height: 260px;&quot; width=&quot;706&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 306px;&quot;&gt;
&lt;td style=&quot;padding: 6px 0px; text-align: left; width: 1058px; height: 306px;&quot; colspan=&quot;2&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;using&lt;/span&gt;&amp;nbsp;UnityEngine;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;MySingleton1&amp;nbsp;:&amp;nbsp;MonoBehaviour&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;MySingleton1&amp;nbsp;Instance;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;Awake()&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Instance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;this&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;DoSomething()&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;DoSomething&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;사용방법도 간단합니다.&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #272727; border-radius: 4px; height: 155px;&quot; width=&quot;866&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px 0px; text-align: left; width: 864px;&quot; colspan=&quot;2&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;using&lt;/span&gt;&amp;nbsp;UnityEngine;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;MyUser&amp;nbsp;:&amp;nbsp;MonoBehaviour&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;Start()&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MySingleton1.Instance.DoSomething();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;문제의 여지가 많고 사용상에서 제약이 많은 코드입니다만, 간단하게 싱글톤 패턴을 구현했고,&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;원래에 해결 하고 싶었던 2가지 문제인, 하나의 인스턴스와 전역적인 사용성을 만족하는 가장 간단한 구현 코드 입니다. 게임이라는 프로젝트의 특성상 빈번하게 만들어질 가능성이 있는 패턴인 점에서 간결한 코드는 큰 장점입니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.25em;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 여러가지를 고려하는 방법&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;1) 동기화에 대한 예외처리&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;2) 클래스만 있고 씬에서 해당 클래스 오브젝트가 없을때의 예외처리&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;3) DonDontDestroyOnLoad로 인해 씬이 재시작 되면 생기는 2개의 오브젝트 문제&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;4) 비대해진 코드를 압축하는 방법&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;를 고려하여서 제네릭으로 구현하는 방법이 있습니다.&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #272727; border-radius: 4px; height: 1094px;&quot; width=&quot;870&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px 0px; text-align: left; width: 868px;&quot; colspan=&quot;2&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.Collections;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #4be6fa;&quot;&gt;System&lt;/span&gt;.Collections.Generic;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;using&lt;/span&gt;&amp;nbsp;UnityEngine;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;///&amp;nbsp;Inherit&amp;nbsp;from&amp;nbsp;this&amp;nbsp;base&amp;nbsp;class&amp;nbsp;to&amp;nbsp;create&amp;nbsp;a&amp;nbsp;singleton.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;///&amp;nbsp;e.g.&amp;nbsp;public&amp;nbsp;class&amp;nbsp;MyClassName&amp;nbsp;:&amp;nbsp;Singleton&amp;lt;MyClassName&amp;gt;&amp;nbsp;{}&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #999999;&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;MySingleton2&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;T&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;:&amp;nbsp;MonoBehaviour&amp;nbsp;where&amp;nbsp;T&amp;nbsp;:&amp;nbsp;MonoBehaviour&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Check&amp;nbsp;to&amp;nbsp;see&amp;nbsp;if&amp;nbsp;we're&amp;nbsp;about&amp;nbsp;to&amp;nbsp;be&amp;nbsp;destroyed&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;bool&lt;/span&gt;&amp;nbsp;m_ShuttingDown&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;false&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;object&lt;/span&gt;&amp;nbsp;m_Lock&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;object&lt;/span&gt;();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;T&amp;nbsp;m_Instance;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;///&amp;nbsp;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;///&amp;nbsp;Access&amp;nbsp;singleton&amp;nbsp;instance&amp;nbsp;through&amp;nbsp;this&amp;nbsp;propriety.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;///&amp;nbsp;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;static&lt;/span&gt;&amp;nbsp;T&amp;nbsp;Instance&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;get&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(m_ShuttingDown)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Debug.LogWarning(&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;[Singleton]&amp;nbsp;Instance&amp;nbsp;'&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;typeof&lt;/span&gt;(T)&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;'&amp;nbsp;already&amp;nbsp;destroyed.&amp;nbsp;Returning&amp;nbsp;null.&quot;&lt;/span&gt;);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;null&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;lock&lt;/span&gt;&amp;nbsp;(m_Lock)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(m_Instance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;null&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Search&amp;nbsp;for&amp;nbsp;existing&amp;nbsp;instance.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_Instance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;(T)FindObjectOfType(&lt;span style=&quot;color: #ff3399;&quot;&gt;typeof&lt;/span&gt;(T));&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Create&amp;nbsp;new&amp;nbsp;instance&amp;nbsp;if&amp;nbsp;one&amp;nbsp;doesn't&amp;nbsp;already&amp;nbsp;exist.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(m_Instance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;null&lt;/span&gt;)&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Need&amp;nbsp;to&amp;nbsp;create&amp;nbsp;a&amp;nbsp;new&amp;nbsp;GameObject&amp;nbsp;to&amp;nbsp;attach&amp;nbsp;the&amp;nbsp;singleton&amp;nbsp;to.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;singletonObject&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;new&lt;/span&gt;&amp;nbsp;GameObject();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_Instance&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;singletonObject.AddComponent&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;T&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;();&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;singletonObject.name&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;typeof&lt;/span&gt;(T).ToString()&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ffd500;&quot;&gt;&quot;&amp;nbsp;(Singleton)&quot;&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Make&amp;nbsp;instance&amp;nbsp;persistent.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DontDestroyOnLoad(singletonObject);&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;return&lt;/span&gt;&amp;nbsp;m_Instance;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;OnApplicationQuit()&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_ShuttingDown&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;true&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;OnDestroy()&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_ShuttingDown&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;true&lt;/span&gt;;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;이러한 방식으로 구현하는 방법이 있으며, 여러가지 모두 고려된 방식입니다.&lt;br /&gt;상속의 가능성을 없애버리고 코드가 콘크리트처럼 단단해지지만 유니티에서의 싱글톤을 구현하는데에서 고민이 되는 문제들을 가장 많이 한번에 해결하는 멋진 코드임에는 분명합니다.&lt;br /&gt;&lt;br /&gt;아래에는 해당 클래스를 상속하여 싱글톤 패턴을 구현하는 방법입니다.&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; position: relative !important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;letter-spacing: 0px; margin: 0px; padding: 0px; border: none; background-color: #272727; border-radius: 4px; height: 195px;&quot; width=&quot;862&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px 0px; width: 860px; text-align: left;&quot; colspan=&quot;2&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #f0f0f0; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace !important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;class&lt;/span&gt;&amp;nbsp;MyUser&amp;nbsp;:&amp;nbsp;MySingleton2&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;lt;&lt;/span&gt;MyUser&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;protected&lt;/span&gt;&amp;nbsp;MyUser()&amp;nbsp;{&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;void&lt;/span&gt;&amp;nbsp;DoSomething()&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0 6px; white-space: pre; line-height: 130%;&quot;&gt;}&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;해당 방법으로 구현한 모든 싱글톤클래스를 단 한줄에 똑같은 기능을 하도록 기대되는 구현을 할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;# 정리하며&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;싱글톤이 무엇인지 왜 쓰면 좋은 것인지와 함께 구현 방법까지 알아보았습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;이 방법에도 분명한 단점이 있습니다.&lt;/p&gt;
&lt;p style=&quot;font-size: 1.12em;&quot; data-ke-size=&quot;size16&quot;&gt;싱글턴 패턴은 코드를 관리하기 어렵게 만들고 상태의존적이며 절차적이게 만드는 첫 단추가 되기도 합니다. 실제로 게임을 만드는데에 필요없는 안티패턴이라고 생각하는 의견도 많습니다만,&amp;nbsp;&lt;br /&gt;적절하게 쓰기만 한다면 간결함을 유지할 수 있고, 아주 편리한 개발패턴입니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/Unity Engine</category>
      <category>AR</category>
      <category>c#</category>
      <category>GoF</category>
      <category>singleton</category>
      <category>Unity</category>
      <category>VR</category>
      <category>게임개발</category>
      <category>디자인패턴</category>
      <category>싱글톤</category>
      <category>유니티</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/33</guid>
      <comments>https://ssapo.tistory.com/33#entry33comment</comments>
      <pubDate>Fri, 13 Mar 2020 21:39:02 +0900</pubDate>
    </item>
    <item>
      <title>[Unity] 유니티 애니메이션의 샘플 레이트 설정이 안보이는 경우</title>
      <link>https://ssapo.tistory.com/32</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGgfER/btqCDj3d0sH/P1AceTvWxlTK3TFA2HhvkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGgfER/btqCDj3d0sH/P1AceTvWxlTK3TFA2HhvkK/img.png&quot; data-alt=&quot;애니메이션 샘플을 변경할 수있는 상자가 보이지 않는다.. 버그인가??&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGgfER/btqCDj3d0sH/P1AceTvWxlTK3TFA2HhvkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGgfER%2FbtqCDj3d0sH%2FP1AceTvWxlTK3TFA2HhvkK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;애니메이션 샘플을 변경할 수있는 상자가 보이지 않는다.. 버그인가??&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;오랜만에 유니티로 작업하기 위해서 켜서 프로젝트 세팅을 하던중에 애니메이션 창에서 샘플레이트 설정이 바뀌어져 있는것을 발견했습니다. 9.2로 버젼업이 되면서 있던 기능이 사라졌나 했는데, 포럼 글에서 찾아서 기록용으로 남겨둡니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;You can get the sampling back by clicking on the gear on the top right corner of the Animation panel.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;There you can find the option, which was probably always selected by default : &quot;Show sample rate&quot;.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHl8OJ/btqCzAyq0Mc/Xz2mmxm6OdgcuXsVByW7vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHl8OJ/btqCzAyq0Mc/Xz2mmxm6OdgcuXsVByW7vk/img.png&quot; data-alt=&quot;해당 애니메이션 창에서 오른쪽 위에 톱니바퀴 모양을 클릭&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHl8OJ/btqCzAyq0Mc/Xz2mmxm6OdgcuXsVByW7vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHl8OJ%2FbtqCzAyq0Mc%2FXz2mmxm6OdgcuXsVByW7vk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;해당 애니메이션 창에서 오른쪽 위에 톱니바퀴 모양을 클릭&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x3uPm/btqCBw20PLl/EbtDSy7M5J9N7jNTYK9gjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x3uPm/btqCBw20PLl/EbtDSy7M5J9N7jNTYK9gjk/img.png&quot; data-alt=&quot;Show Sample Rate 기능을 클릭하게 되면 Samples 창이 나타나게 됩니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x3uPm/btqCBw20PLl/EbtDSy7M5J9N7jNTYK9gjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx3uPm%2FbtqCBw20PLl%2FEbtDSy7M5J9N7jNTYK9gjk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Show Sample Rate 기능을 클릭하게 되면 Samples 창이 나타나게 됩니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JNkud/btqCB79P6za/RaX1yZhWrKb5gQlQHu9aFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JNkud/btqCB79P6za/RaX1yZhWrKb5gQlQHu9aFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JNkud/btqCB79P6za/RaX1yZhWrKb5gQlQHu9aFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJNkud%2FbtqCB79P6za%2FRaX1yZhWrKb5gQlQHu9aFk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;버젼이 되면서 디폴트값이 보이지 않는 상태로 설정이 된것 같습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;요렇게 설정을 하면 기존 설정대로 애니메이션 세팅을 할 수 있게 됩니다.&lt;/p&gt;</description>
      <category>DEV/Unity Engine</category>
      <category>Animation</category>
      <category>AR</category>
      <category>Unity</category>
      <category>VR</category>
      <category>게임개발</category>
      <category>게임엔진</category>
      <category>게임학원</category>
      <category>독학</category>
      <category>애니메이션</category>
      <category>유니티</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/32</guid>
      <comments>https://ssapo.tistory.com/32#entry32comment</comments>
      <pubDate>Tue, 10 Mar 2020 23:25:41 +0900</pubDate>
    </item>
    <item>
      <title>[C#] structs and Interface</title>
      <link>https://ssapo.tistory.com/31</link>
      <description>&lt;p&gt;The fact that a struct can implement an interface is well known and so is the fact that&amp;nbsp;casting a value type into an interface leads to boxing of the value type. This is because methods in interfaces are defined as virtual and to resolve virtual references, vtable (method table) look up is required. Since value types do not have pointers to vtable they are first boxed into a reference type and then the look up happens.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;구조체가&amp;nbsp;인터페이스를&amp;nbsp;구현할&amp;nbsp;수&amp;nbsp;있다는&amp;nbsp;사실은&amp;nbsp;잘&amp;nbsp;알려져&amp;nbsp;있고&amp;nbsp;값&amp;nbsp;유형을&amp;nbsp;인터페이스에&amp;nbsp;캐스팅하면&amp;nbsp;값&amp;nbsp;유형의&amp;nbsp;복싱으로&amp;nbsp;연결된다는&amp;nbsp;사실도&amp;nbsp;있습니다.&amp;nbsp;이것은&amp;nbsp;인터페이스의&amp;nbsp;메소드가&amp;nbsp;가상으로&amp;nbsp;정의되고&amp;nbsp;가상&amp;nbsp;참조를&amp;nbsp;분석하기&amp;nbsp;때문에&amp;nbsp;vtable&amp;nbsp;(메소드&amp;nbsp;테이블)&amp;nbsp;검색이&amp;nbsp;필요합니다.&amp;nbsp;값&amp;nbsp;유형에는&amp;nbsp;vtable에&amp;nbsp;대한&amp;nbsp;포인터가&amp;nbsp;없기&amp;nbsp;때문에&amp;nbsp;먼저&amp;nbsp;참조&amp;nbsp;유형으로&amp;nbsp;묶인&amp;nbsp;다음&amp;nbsp;조회가&amp;nbsp;발생합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This boxing leads to some performance penalty. See&lt;span&gt;&amp;nbsp;&lt;/span&gt;Rico Mariani's performance quiz for an example.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이&amp;nbsp;복싱은&amp;nbsp;약간의&amp;nbsp;성능&amp;nbsp;저하를&amp;nbsp;초래합니다.&amp;nbsp;예를&amp;nbsp;들어&amp;nbsp;Rico&amp;nbsp;Mariani의&amp;nbsp;성능&amp;nbsp;퀴즈를&amp;nbsp;참조하십시오.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The fact that such boxing takes place on casting to interfaces can lead to subtle issues in code. Consider the following&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이러한&amp;nbsp;복싱이&amp;nbsp;인터페이스로&amp;nbsp;캐스팅&amp;nbsp;될&amp;nbsp;때&amp;nbsp;발생한다는&amp;nbsp;사실은&amp;nbsp;코드에서&amp;nbsp;미묘한&amp;nbsp;문제를&amp;nbsp;일으킬&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;다음을&amp;nbsp;고려하세요&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;500&quot; height=&quot;788&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;1250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDcGF8/btqvJT5ITHK/DjBycDs3yKCaafdGDGEglK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDcGF8/btqvJT5ITHK/DjBycDs3yKCaafdGDGEglK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDcGF8/btqvJT5ITHK/DjBycDs3yKCaafdGDGEglK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDcGF8%2FbtqvJT5ITHK%2FDjBycDs3yKCaafdGDGEglK%2Fimg.png&quot; width=&quot;500&quot; height=&quot;788&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;1250&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Here the output would be&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;Cool Guy (65)&lt;br /&gt;Cool Guy (65)&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;So even after calling&lt;span&gt;&amp;nbsp;&lt;/span&gt;p.promote()&lt;span&gt;&amp;nbsp;&lt;/span&gt;the value of&lt;span&gt;&amp;nbsp;&lt;/span&gt;JobGrade&lt;span&gt;&amp;nbsp;&lt;/span&gt;in&lt;span&gt;&amp;nbsp;&lt;/span&gt;employee&lt;span&gt;&amp;nbsp;&lt;/span&gt;does not increase. The reason is that on implicitly casting&lt;span&gt;&amp;nbsp;&lt;/span&gt;employee&lt;span&gt;&amp;nbsp;&lt;/span&gt;to&lt;span&gt;&amp;nbsp;&lt;/span&gt;IPromotion p&lt;span&gt;&amp;nbsp;&lt;/span&gt;a temporary boxed object is created and&lt;span&gt;&amp;nbsp;&lt;/span&gt;p.promote&lt;span&gt;&amp;nbsp;&lt;/span&gt;updates the&lt;span&gt;&amp;nbsp;&lt;/span&gt;JobGrade&lt;span&gt;&amp;nbsp;&lt;/span&gt;in this temporary object and not on original&lt;span&gt;&amp;nbsp;&lt;/span&gt;employee&lt;span&gt;&amp;nbsp;&lt;/span&gt;value type. Since after this usage the temporary boxed object is not refered to, the update to it is lost and it is garbage collected.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;따라서&amp;nbsp;p.promote&amp;nbsp;()를&amp;nbsp;호출&amp;nbsp;한&amp;nbsp;후에도&amp;nbsp;Employer의&amp;nbsp;JobGrade&amp;nbsp;값은&amp;nbsp;증가하지&amp;nbsp;않습니다.&amp;nbsp;그&amp;nbsp;이유는&amp;nbsp;직원을&amp;nbsp;IPromotion&amp;nbsp;p에&amp;nbsp;암시&amp;nbsp;적으로&amp;nbsp;캐스팅&amp;nbsp;할&amp;nbsp;때&amp;nbsp;임시&amp;nbsp;boxed&amp;nbsp;객체가&amp;nbsp;생성되고&amp;nbsp;p.promote가&amp;nbsp;원래&amp;nbsp;임시&amp;nbsp;값&amp;nbsp;유형이&amp;nbsp;아닌이&amp;nbsp;임시&amp;nbsp;객체의&amp;nbsp;JobGrade를&amp;nbsp;업데이트하기&amp;nbsp;때문입니다.&amp;nbsp;이&amp;nbsp;사용법&amp;nbsp;이후에&amp;nbsp;임시&amp;nbsp;boxed&amp;nbsp;객체는&amp;nbsp;참조되지&amp;nbsp;않기&amp;nbsp;때문에,&amp;nbsp;그것의&amp;nbsp;업데이트는&amp;nbsp;손실되고&amp;nbsp;가비지&amp;nbsp;수집됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If however we change the code and make Employee a class the output would become as expected&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그러나&amp;nbsp;코드를&amp;nbsp;변경하고&amp;nbsp;Employee를&amp;nbsp;클래스로&amp;nbsp;만들면&amp;nbsp;출력이&amp;nbsp;예상대로&amp;nbsp;될&amp;nbsp;것입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cool Guy (65)&lt;br /&gt;Cool Guy (&lt;b&gt;66&lt;/b&gt;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The reason being that now the boxing does not take place and the update happens on the original&lt;span&gt;&amp;nbsp;&lt;/span&gt;employee&lt;span&gt;&amp;nbsp;&lt;/span&gt;object.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그&amp;nbsp;이유는&amp;nbsp;지금&amp;nbsp;복싱이&amp;nbsp;발생하지&amp;nbsp;않고&amp;nbsp;업데이트가&amp;nbsp;원래&amp;nbsp;직원&amp;nbsp;개체에서&amp;nbsp;발생하기&amp;nbsp;때문입니다.&lt;/p&gt;</description>
      <category>DEV/Unity C#</category>
      <category>AR</category>
      <category>c#</category>
      <category>Unity</category>
      <category>VR</category>
      <category>게임엔진</category>
      <category>게임학원</category>
      <category>국비지원</category>
      <category>독학</category>
      <category>유니티</category>
      <category>자료구조</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/31</guid>
      <comments>https://ssapo.tistory.com/31#entry31comment</comments>
      <pubDate>Sat, 1 Jun 2019 13:31:01 +0900</pubDate>
    </item>
    <item>
      <title>[UE4] UPROPERTY()  매크로에 대한 궁금증</title>
      <link>https://ssapo.tistory.com/30</link>
      <description>&lt;h2&gt;Q. Does the UPROPERTY macro have any benefit for things that don't need it?&lt;/h2&gt;
&lt;p&gt;08-11-2017, 11:04 AM&lt;/p&gt;
&lt;p&gt;I've heard vaguely that things declared to be UPROPERTY can be handled by the engine's garbage collector, but I'm having trouble understanding the practical application.&lt;br /&gt;&lt;br /&gt;If I have a variable that is only used on the C++ side, do I gain anything from making it a UPROPERTY? Does the answer change if it's a pointer?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UPROPERTY&amp;nbsp;매크로는&amp;nbsp;필요하지&amp;nbsp;않은&amp;nbsp;것에&amp;nbsp;이점이&amp;nbsp;있습니까?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;UPROPERTY로&amp;nbsp;선언&amp;nbsp;된&amp;nbsp;것들이&amp;nbsp;엔진의&amp;nbsp;가비지&amp;nbsp;컬렉터에&amp;nbsp;의해&amp;nbsp;처리&amp;nbsp;될&amp;nbsp;수&amp;nbsp;있다고&amp;nbsp;막연하게&amp;nbsp;들었지만&amp;nbsp;실용적인&amp;nbsp;응용&amp;nbsp;프로그램을&amp;nbsp;이해하는&amp;nbsp;데&amp;nbsp;문제가&amp;nbsp;있습니다.&amp;nbsp;C++&amp;nbsp;측에서만&amp;nbsp;사용되는&amp;nbsp;변수가&amp;nbsp;있으면&amp;nbsp;그것을&amp;nbsp;UPROPERTY로&amp;nbsp;만드는&amp;nbsp;것으로부터&amp;nbsp;무엇을&amp;nbsp;얻을&amp;nbsp;수&amp;nbsp;있습니까?&amp;nbsp;포인터인&amp;nbsp;경우&amp;nbsp;대답이&amp;nbsp;변경됩니까?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;A.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;08-11-2017, 11:49 AM&lt;/p&gt;
&lt;p&gt;Yep, aside the fact that UPROPERTIES has a lot of configs for your variables including network capabilities, also special functionality between your classes and the editor, some pointers lives forever if you don't take care in your code, making those UPROPERTIES is a easy way to handle that. You might take a look of the documentation, there is a lot of stuff you can do with metadata.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;네,&amp;nbsp;UPROPERTIES에는&amp;nbsp;네트워크&amp;nbsp;기능,&amp;nbsp;클래스와&amp;nbsp;편집기&amp;nbsp;사이의&amp;nbsp;특수&amp;nbsp;기능을&amp;nbsp;포함하여&amp;nbsp;변수에&amp;nbsp;대한&amp;nbsp;많은&amp;nbsp;설정이&amp;nbsp;있다는&amp;nbsp;점&amp;nbsp;외에도&amp;nbsp;코드에서주의를&amp;nbsp;기울이지&amp;nbsp;않으면&amp;nbsp;영원히&amp;nbsp;살&amp;nbsp;수있는&amp;nbsp;포인터가있어서&amp;nbsp;UPROPERTIES는&amp;nbsp;쉽습니다.&amp;nbsp;그걸&amp;nbsp;처리하는&amp;nbsp;방법.&amp;nbsp;설명서를&amp;nbsp;살펴보면&amp;nbsp;메타&amp;nbsp;데이터로&amp;nbsp;수행&amp;nbsp;할&amp;nbsp;수있는&amp;nbsp;많은&amp;nbsp;작업이&amp;nbsp;있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;1 cool example I have in mind right now:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;내가&amp;nbsp;지금&amp;nbsp;염두에&amp;nbsp;둔&amp;nbsp;멋진&amp;nbsp;1&amp;nbsp;가지&amp;nbsp;예&amp;nbsp;:&lt;br /&gt;UPROPERTY(EditAnywhere, Category = &quot;IDS&quot;, Meta = (InlineEditConditionToggle, MakeEditWidget = true))&lt;br /&gt;uint32 bOverrideLightMapRes : 1;&lt;br /&gt;&lt;br /&gt;UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Lighting, meta = (ClampMax = 4096, EditCondition = &quot;bOverrideLightMapRes&quot;))&lt;br /&gt;int32 OverriddenLightMapRes = 64;&lt;br /&gt;&lt;br /&gt;I did this when I created a new static mesh component, and I wanted to override the light map resolution, this allow me modify my int based on my bool, like a toogle, there is a lot of examples like this, UPROPERTIES are very useful&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;나는&amp;nbsp;새로운&amp;nbsp;스태틱&amp;nbsp;메시&amp;nbsp;컴포넌트를&amp;nbsp;만들었을&amp;nbsp;때&amp;nbsp;이것을했다.&amp;nbsp;라이트&amp;nbsp;맵의&amp;nbsp;해상도를&amp;nbsp;오버라이드하고&amp;nbsp;싶다.&amp;nbsp;이것은&amp;nbsp;내&amp;nbsp;부울을&amp;nbsp;기반으로&amp;nbsp;내&amp;nbsp;int를&amp;nbsp;수정할&amp;nbsp;수있게&amp;nbsp;해준다.&amp;nbsp;예를&amp;nbsp;들어,&amp;nbsp;이처럼&amp;nbsp;많은&amp;nbsp;예제가있다.&amp;nbsp;UPROPERTIES는&amp;nbsp;매우&amp;nbsp;유용하다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;UHT will generate a bit more code (insignificant increase in executable size) and that will translate to a very slight increase in runtime memory allocation for the associated entry in the reflection data structures (again, insignificant).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;UHT는&amp;nbsp;조금&amp;nbsp;더&amp;nbsp;많은&amp;nbsp;코드&amp;nbsp;(실행&amp;nbsp;파일&amp;nbsp;크기에서&amp;nbsp;무시할&amp;nbsp;수 있는&amp;nbsp;증가)를&amp;nbsp;생성&amp;nbsp;할&amp;nbsp;것이고,&amp;nbsp;이는&amp;nbsp;Reflection 데이터&amp;nbsp;구조에서&amp;nbsp;관련된&amp;nbsp;엔트리에&amp;nbsp;대한&amp;nbsp;런타임&amp;nbsp;메모리&amp;nbsp;할당이&amp;nbsp;약간&amp;nbsp;증가하는&amp;nbsp;것으로&amp;nbsp;해석&amp;nbsp;될&amp;nbsp;것입니다&amp;nbsp;(다시, 중요하지&amp;nbsp;않음).&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span&gt;The main thing to be aware of is that if you make something UPROPERTY() without any specifiers, then it will default to being serialized. So if the property is on an actor or asset class, you're adding a bit of processing time and storage space usage. It would rarely make sense for something to be serialized if not editable though anyway.&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;중요한&amp;nbsp;점은&amp;nbsp;지정자없이&amp;nbsp;UPROPERTY&amp;nbsp;()를&amp;nbsp;작성하면&amp;nbsp;기본적으로&amp;nbsp;직렬화됩니다.&amp;nbsp;따라서&amp;nbsp;속성이&amp;nbsp;액터&amp;nbsp;나&amp;nbsp;자산&amp;nbsp;클래스에&amp;nbsp;있으면&amp;nbsp;처리&amp;nbsp;시간과&amp;nbsp;저장&amp;nbsp;공간&amp;nbsp;사용량이&amp;nbsp;약간&amp;nbsp;늘어납니다.&amp;nbsp;어쨌든&amp;nbsp;편집&amp;nbsp;할&amp;nbsp;수없는&amp;nbsp;경우에는&amp;nbsp;직렬화&amp;nbsp;할&amp;nbsp;내용이&amp;nbsp;거의&amp;nbsp;없습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;span&gt;Anyway, if there's no reflection functionality you need, then just don't make it a UPROPERTY. There's nothing wrong with using non-reflected variables.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;어쨌든,&amp;nbsp;당신이&amp;nbsp;필요로하는&amp;nbsp;반영&amp;nbsp;기능이&amp;nbsp;없다면,&amp;nbsp;단지&amp;nbsp;그것을&amp;nbsp;UPROPERTY로&amp;nbsp;만들지&amp;nbsp;마십시오.&amp;nbsp;반영되지&amp;nbsp;않은&amp;nbsp;변수를&amp;nbsp;사용할&amp;nbsp;때&amp;nbsp;아무&amp;nbsp;문제가&amp;nbsp;없습니다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;내린 결론 : 포인터를 사용하거나 메타데이가 필요한 변수가 아니라면 굳이 UPROPERTY 매크로를 쓰지 않아도 좋다.&lt;/b&gt;&lt;/p&gt;</description>
      <category>DEV/Unreal</category>
      <category>C++</category>
      <category>C++ UPROPERTY()</category>
      <category>UE4</category>
      <category>UE4 C++</category>
      <category>UE4 UPROPERTY</category>
      <category>Unreal Engine Blueprint</category>
      <category>Unreal Engine Uproperty</category>
      <category>Unreal Engine4</category>
      <category>UPROPERTY</category>
      <category>why use UPROPERTY</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/30</guid>
      <comments>https://ssapo.tistory.com/30#entry30comment</comments>
      <pubDate>Sun, 26 May 2019 03:00:15 +0900</pubDate>
    </item>
    <item>
      <title>[C#] 액세스 한정자 (Access Modifiers)</title>
      <link>https://ssapo.tistory.com/29</link>
      <description>&lt;p&gt;&lt;span&gt;모든 형식과 형식 멤버에는 사용 중인 어셈블리나 기타 어셈블리의 다른 코드에서 사용될 수 있는지 여부를 제어하는 액세스 가능성 수준이 있다.&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;다음 액세스 한정자를 사용하여 형식 또는 멤버를 선언할 때 해당 항목의 액세스 가능성을 지정할 수 있음.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;public&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span&gt;- 동일한 어셈블리의 다른 코드나 해당 어셈블리를 참조하는 다른 어셈블리의 코드에서 형식이나 멤버에 액세스&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;private&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span&gt;- 같은 클래스 또는 구조체의 코드에서만 형식 또는 멤버에 액세스&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;protected&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span&gt;- &lt;/span&gt;&lt;span&gt;같은 클래스 또는 해당 클래스에서 파생된 클래스의 코드에서만 형식 또는 멤버에 액세스&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;b&gt;&lt;span&gt;internal&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span&gt;- 동일한 어셈블리의 코드에서는 형식이나 멤버에 액세스할 수 있지만 다른 어셈블리의 코드에서는 액세스 불가능&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;protected internal&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;- 형식이나 멤버가 선언된 어셈블리의 모든 코드에서 또는 다른 어셈블리의 파생 클래스 내에서 형식 또는 멤버에 액세스&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;private protected&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;- 형식이나 멤버를 선언하는 어셈블리, 같은 클래스나 해당 클래스에서 파생된 형식의 코드에서만 형식 또는 멤버에 액세스&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Q. 액세스 한정자가 지정되지 않은 경우?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;A.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. 클래스 및 구조체&lt;/p&gt;
&lt;p&gt;- internal&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. Nested 클래스 및 구조체&lt;/p&gt;
&lt;p&gt;- private&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. 클래스 및 구조체의 멤버 (변수, 메소드)&lt;/p&gt;
&lt;p&gt;- private&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DEV/Unity C#</category>
      <category>C# access modifier</category>
      <category>C# private</category>
      <category>C# public</category>
      <category>기본기</category>
      <category>액세스 한정자가 지정되지 않은 경우</category>
      <category>클래스 구조체</category>
      <category>한정자</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/29</guid>
      <comments>https://ssapo.tistory.com/29#entry29comment</comments>
      <pubDate>Sun, 12 May 2019 11:43:46 +0900</pubDate>
    </item>
    <item>
      <title>[C#] Garbage Collection: Mark and Sweep</title>
      <link>https://ssapo.tistory.com/28</link>
      <description>&lt;p&gt;용어정의&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Object: 힙의 저장소 단위. 일반적으로는 OOP의 객체를 의미하지만 절차 언어, 또는 함수 언어에도 동일하게 적용된다.&lt;/p&gt;
&lt;p&gt;2. Object / Reference graph: 메모리에서 object들의 방향을 나타내는 그래프. 다음 그림이 예이다. node는 메모리에 있는 object이고 edges(arrows)는 한 object가 다른 object의 참조를 들고 있음을 표현하고 있다. object3 , object5 그리고 object6 에서 순환참조가 발생한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;415&quot; data-origin-height=&quot;189&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u1YOT/btqveJglDnR/qpD32CQjYHI3bKgDpQvMUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u1YOT/btqveJglDnR/qpD32CQjYHI3bKgDpQvMUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u1YOT/btqveJglDnR/qpD32CQjYHI3bKgDpQvMUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu1YOT%2FbtqveJglDnR%2FqpD32CQjYHI3bKgDpQvMUK%2Fimg.png&quot; data-origin-width=&quot;415&quot; data-origin-height=&quot;189&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;3. Roots: reference graph에서 시작점의 집합을 뜻한다. roots는 스택에서의 로컬 변수, 전역 변수가 될 수 있다. 위의 예시에서는 녹색 node가 roots에 속한다.&lt;/p&gt;
&lt;p&gt;4. Unreachable object: 자신을 참조하는 edge가 없는 node. GC가 어떤 node에서도 접근할 수 없으므로 garbage가 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Mark-and-Sweep GC&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 알고리즘에서 메모리는 garbage가 되는 순간에 해제가 되지 않는다고 한다. 다른 시스템들이 돌고 있는 동안에 메모리를 항상 추적하지는 않는다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;보통의 경우 메모리가 부족한 시점부터 시작을 하게 되고( 혹은 다른 발생 시점을 정의하면 실행한다 )&lt;/p&gt;
&lt;p&gt;모든 root를 순환, 재귀로 참조되고 있는 object를 검사한다. 검사(Mark) 단계에서 object에 접근했다는 뜻은 해당 object에 도달할 수 있음을 뜻하게 되고 특정한 플래그로 표시 해둔다. 검사 단계가 끝나고 나면&amp;nbsp; 휩쓸기(Sweep) 단계가 시작되는데 검사 단계에서 표시 되지 못한 object들을 garbage로 판단하고 시스템에서 처리한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The algorithm&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;슈도코드&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Root Enumeration&lt;/b&gt;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0px; padding: 0px; border: none; background-color: #fafafa; border-radius: 4px; height: 202px;&quot; width=&quot;733&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 6px; width: 786px; text-align: left;&quot; colspan=&quot;3&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; word-break: normal; text-align: right; color: #666; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;void&lt;/span&gt;&amp;nbsp;GC()&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;HaltAllProcessing();&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ObjectCollection&amp;nbsp;roots&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;GetRoots();&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #a71d5d;&quot;&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;roots.Count();&amp;nbsp;&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;roots.Count();&amp;nbsp;&lt;/a&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #0086b3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;i)&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Mark(roots[i]);&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sweep();&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;}&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&lt;b&gt;Mark&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;object들이 자신의 참조를 재귀하면서 도달할 수 있음을 표시해 나간다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 631px; text-align: left;&quot; colspan=&quot;2&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;void&lt;/span&gt;&amp;nbsp;Mark(Object&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;*&lt;/span&gt;&amp;nbsp;pObj)&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;!&lt;/span&gt;Marked(pObj))&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Marked&amp;nbsp;returns&amp;nbsp;the&amp;nbsp;marked&amp;nbsp;flag&amp;nbsp;from&amp;nbsp;object&amp;nbsp;header&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MarkBit(pObj);&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Marks&amp;nbsp;the&amp;nbsp;flag&amp;nbsp;in&amp;nbsp;obj&amp;nbsp;header&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;Get&amp;nbsp;list&amp;nbsp;of&amp;nbsp;references&amp;nbsp;that&amp;nbsp;the&amp;nbsp;current&amp;nbsp;object&amp;nbsp;has&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;and&amp;nbsp;recursively&amp;nbsp;mark&amp;nbsp;them&amp;nbsp;as&amp;nbsp;well&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ObjectCollection&amp;nbsp;children&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;pObj&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;gt;&lt;/span&gt;GetChildren();&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;for&lt;/span&gt;(&lt;span style=&quot;color: #066de2;&quot;&gt;int&lt;/span&gt;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: #0099cc;&quot;&gt;0&lt;/span&gt;;&amp;nbsp;i&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;children.Count();&amp;nbsp;&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;children.Count();&amp;nbsp;&lt;/a&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;+&lt;/span&gt;i)&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Mark(children[i]);&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;recursively&amp;nbsp;call&amp;nbsp;mark&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;}&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Sweep&lt;br /&gt;&lt;/b&gt;스윕은 전체 메모리를 반복하여 시작하고 표시되지 않은 메모리 블록을 해제한다. 또한 Mark 표시를 지워서 후속 GC가 올바르게 표시 / 해제 할 수 있도록 한다. (메모리를 사전 표시 상태로 재설정).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;colorscripter-code&quot; style=&quot;color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; position: relative&amp;nbsp;!important; overflow: auto;&quot;&gt;
&lt;table class=&quot;colorscripter-code-table&quot; style=&quot;margin: 0; padding: 0; border: none; background-color: #fafafa; border-radius: 4px;&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 631px; text-align: left;&quot; colspan=&quot;2&quot;&gt;
&lt;div style=&quot;margin: 0; padding: 0; color: #010101; font-family: Consolas,&amp;nbsp;'Liberation&amp;nbsp;Mono',&amp;nbsp;Menlo,&amp;nbsp;Courier,&amp;nbsp;monospace&amp;nbsp;!important; line-height: 130%;&quot;&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;void&lt;/span&gt;&amp;nbsp;Sweep()&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;{&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Object&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;*&lt;/span&gt;pHeap&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;pHeapStart;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;while&lt;/span&gt;(pHeap&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;&amp;lt;&lt;/span&gt;&amp;nbsp;pHeapEnd)&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;if&lt;/span&gt;&amp;nbsp;(&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;!&lt;/span&gt;Marked(pHeap))&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Free(pHeap);&amp;nbsp;&lt;span style=&quot;color: #999999;&quot;&gt;//&amp;nbsp;put&amp;nbsp;it&amp;nbsp;to&amp;nbsp;the&amp;nbsp;free&amp;nbsp;object&amp;nbsp;list&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: #a71d5d;&quot;&gt;else&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;UnMarkBit(pHeap);&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pHeap&amp;nbsp;&lt;span style=&quot;color: #ff3399;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #a71d5d;&quot;&gt;=&lt;/span&gt;&amp;nbsp;GetNext(pHeap);&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;}&lt;/div&gt;
&lt;div style=&quot;padding: 0&amp;nbsp;6px; white-space: pre; line-height: 130%;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;이 후에 메모리 단편화 문제를 해결하기 위해서 &lt;b&gt;Compaction&lt;/b&gt; 과정이 추가로 진행된다.&lt;/p&gt;
&lt;p&gt;메모리의 할당과&amp;nbsp; mark-and-sweep이 반복적으로 일어날 경우, 메모리 단편화가 발생하고 이는 할당 속도를 저해하는 원인이 된다. 해서 실제로 많은 시스템들에서 Sweep과 Compaction을 조합하여 후속적인 할당 요청이 속도가 줄어들지 않도록&amp;nbsp; 의도하지만, 메모리가 압축되는 그 시점에서 object들의 주소가 변경되게 되고 이를 가리키는 주소를 모두 업데이트 해주어야 하기 때문에 매우 무거운 작업이 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;GC 실행시점?&lt;/p&gt;
&lt;p&gt;간단하게는 언뜻 메모리가 할당 실패하는 경우에 이를 실행하게 되면 될듯 하지만, 가비지를 수집하는 과정에서도 메모리가 필요하므로 가비지 수집 과정 자체가 실패할 수 있다. 해서 실제적으로는 다양한 시점에 가비지 수집을 실행하게 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. 시스템의 메모리가 부족 ( GC를 실행하는데는 충분하나 곧 할당이 실패되는 시점 )&lt;/p&gt;
&lt;p&gt;2. 메모리 단편화가 심해졌을 때 ( Compaction )&lt;/p&gt;
&lt;p&gt;3. 매량의 메모리를 할당했을 때 ( GC 이후에 1MB를 할당시 GC를 실행 함)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;장단점 정리&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;+ 순환 참조를 매우 자연스럽게 해결함&lt;/p&gt;
&lt;p&gt;+ GC가 실행 되지 않았을 때에 추가적인 오버헤드가 없다.&lt;/p&gt;
&lt;p&gt;+ Compaction 과정 추가로 단편화와 추가 메모리 요청을 최적화 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;- 모든 스레드를 정지시키기 때문에 아주 무거운 방법임 ( 대화형 프로그램에서 사용할 때 고려할 사항이 많아짐 )&lt;/p&gt;
&lt;p&gt;- 메모리가 적을 때에 실행 되기 때문에, 메모리가 고갈 될 수록 반복적으로 GC를 수행하게 된다.&lt;/p&gt;
&lt;/div&gt;</description>
      <category>DEV/Unity C#</category>
      <category>c#</category>
      <category>C# Garbage Collection</category>
      <category>garbage collection</category>
      <category>GC</category>
      <category>Mark and sweep</category>
      <category>Unity</category>
      <category>가비지 콜렉션 알고리즘</category>
      <category>게임 개발</category>
      <category>기본</category>
      <category>유니티</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/28</guid>
      <comments>https://ssapo.tistory.com/28#entry28comment</comments>
      <pubDate>Sat, 11 May 2019 16:55:03 +0900</pubDate>
    </item>
    <item>
      <title>인터페이스 IEnumerator 와 IEnumerable의 차이</title>
      <link>https://ssapo.tistory.com/27</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;반복자(iterator)에 대한 C#에서 제공하는 인터페이스 세트&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;foreach를 사용하기 위한 공통 인터페이스를 제공하는데 IEnumerable 클래스이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;IEnumerable&lt;/p&gt;
&lt;p&gt;+ GetEnumerator&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;GetEnumerator는 IEnumerator를 리턴 값으로 가지게 되는데&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 IEnumerator라는 클래스는&amp;nbsp; 쉽게 말해서 땅바닥에 물건들이 널려있다고 가정할때&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;물건을 가르키는 손가락 같은 역할을 하게된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;IEnumerator&lt;br /&gt;+&amp;nbsp;&lt;span&gt;Current&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;+ MoveNext&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;+ Reset&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3가지의 구현해야하는 공통메소드가 있으며,&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;현재 시점의 개체와 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;다음 개체, &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;그리고 현재의 가리키는 손가락을 처음으로 되돌리는,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3가지 약속된 역할을 하는 메소드가 정의되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;또한 IEnumator를 리턴값으로 뒀을때에는&amp;nbsp;yield 문법을 사용하여 리턴을 해야한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; width=&quot;660&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brIfEp/btqu8v3C0ru/kZYrqmRshoEDUlgYd0Rjok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brIfEp/btqu8v3C0ru/kZYrqmRshoEDUlgYd0Rjok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brIfEp/btqu8v3C0ru/kZYrqmRshoEDUlgYd0Rjok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrIfEp%2Fbtqu8v3C0ru%2FkZYrqmRshoEDUlgYd0Rjok%2Fimg.png&quot; width=&quot;660&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;141&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DEV/Unity C#</category>
      <category>c#</category>
      <category>Coroutine</category>
      <category>Enumerable</category>
      <category>Enumerator</category>
      <category>Interface</category>
      <category>Unity</category>
      <category>yield</category>
      <category>반복자</category>
      <category>열거자</category>
      <category>유니티</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/27</guid>
      <comments>https://ssapo.tistory.com/27#entry27comment</comments>
      <pubDate>Thu, 9 May 2019 07:39:13 +0900</pubDate>
    </item>
    <item>
      <title>[GAME] 경직치에 대한 단어 선택에 대해서</title>
      <link>https://ssapo.tistory.com/25</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lHfD8/btqu2aFuAt4/YbTDcemfwNQXNrTbWJiYJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lHfD8/btqu2aFuAt4/YbTDcemfwNQXNrTbWJiYJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lHfD8/btqu2aFuAt4/YbTDcemfwNQXNrTbWJiYJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlHfD8%2Fbtqu2aFuAt4%2FYbTDcemfwNQXNrTbWJiYJ0%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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;한국에서 어떤 상태에 이르기 위한 누적치를 단어로 표현하라고 하면 대개 '경직치' 라고 많이 표현한다.&lt;/p&gt;
&lt;p&gt;(적어도 나는 그렇게 자주 썻던거 같다)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;코드로 표현할때는 영어단어를 선택해야 하고,&amp;nbsp; 한번도 고민해 본적이 없었기 때문에 구글에 쳐봤더니&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 뜨는데 과연 이게 이렇게 쓰는 말이 맞나 싶었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;경직치라는 말을 어디서 가장 많이 봤던걸까 하면서 거슬러 올라가보니&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;몬스터 헌터 월드 게임에서 이런 표현을 많이 썼다는 기억을 떠올리고 mhw wiki로 찾아 들어가니&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9g3YN/btqu2IBZFnb/GV6G6iB0sJsKRjorZaPvIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9g3YN/btqu2IBZFnb/GV6G6iB0sJsKRjorZaPvIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9g3YN/btqu2IBZFnb/GV6G6iB0sJsKRjorZaPvIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9g3YN%2Fbtqu2IBZFnb%2FGV6G6iB0sJsKRjorZaPvIk%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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;이런 이야기가 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;걔중에 blunt damage, buildup damage란 표현이 눈에 띄는데 대충 해석을하면&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;스턴효과가 발생하는데 몬스터 머리에 둔기류 무기 데미지가 쌓이면 buildup이 쌓인다. 쌓여서 스턴이 발생한다...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;라고 되어있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;뭔가가 쌓여서 발생하는 상태에 대한 단어를 buildup으로 사용하는 것 같다&lt;/p&gt;</description>
      <category>DEV/단어선택</category>
      <category>buildup</category>
      <category>CODE</category>
      <category>game</category>
      <category>MHW</category>
      <category>Naming</category>
      <category>Programming</category>
      <category>stun</category>
      <category>voca</category>
      <category>경직치</category>
      <category>단어</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/25</guid>
      <comments>https://ssapo.tistory.com/25#entry25comment</comments>
      <pubDate>Sun, 5 May 2019 13:59:17 +0900</pubDate>
    </item>
    <item>
      <title>[C#] how to convert string[] to int[]? 배열 캐스트 변환에 대하여</title>
      <link>https://ssapo.tistory.com/24</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;알고리즘을 풀다가 인풋을 받아서 문자열을 다른 값들로 캐스트 하고자 할 경우&lt;/p&gt;
&lt;p&gt;예를 들어서,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&quot;45,23,5,4,1,123,58,7,71,11&quot;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이런 값의 인풋을 받았다고 쳤을때,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;string.split(','); 을 사용하면 string[]이 나오게 되는데,&lt;/p&gt;
&lt;p&gt;함수 파라미터로 넘겨서 사용하기 전에 int[]로 변환해야 한다면?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;for문으로 다 넘겨도 좋지만&lt;/p&gt;
&lt;p&gt;코드 한줄로 넘겨준다면 기분좋을거 같다.&lt;/p&gt;
&lt;p&gt;당연히 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;특정 &amp;lt;InputT&amp;gt;를 &amp;lt;OutputT&amp;gt;로 변환해주는 함수다.&lt;/p&gt;
&lt;p&gt;아래 코드처럼 사용하면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;int[] result = Array.ConvertAll( string[] input, ( e ) =&amp;gt; int.Parse(e));&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DEV/Unity C#</category>
      <category>AR</category>
      <category>c#</category>
      <category>convert</category>
      <category>Unity</category>
      <category>VR</category>
      <category>게임 개발</category>
      <category>게임 엔진</category>
      <category>게임 학원</category>
      <category>변환</category>
      <category>유니티</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/24</guid>
      <comments>https://ssapo.tistory.com/24#entry24comment</comments>
      <pubDate>Thu, 2 May 2019 04:25:55 +0900</pubDate>
    </item>
    <item>
      <title>[VBA]Excel VBA 문자열 정렬 관련</title>
      <link>https://ssapo.tistory.com/23</link>
      <description>&lt;p&gt;&lt;span&gt;파일명을 리스트로 담아두는 컨테이너를 사용할시에 생기는 문제였는데,&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;ex)&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&quot;abc1&quot;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc2&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc3&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc11&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc10&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;라는 문자들이 들어가서 엑셀의 이름순 정렬이 들어갔을 때,&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc1&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc10&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc11&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc2&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&quot;abc3&quot;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;이러한 식으로 정렬이 되어버린다.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그래서 문자열 비교를 하여 따로 정렬해 주어야 했다.(안타깝게도 따로 정렬하는 함수는 없는듯 하다)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;'문자열의 길이가 같을때에&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;If&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;StrLen(문자열1) = StrLen(문자열2) Then&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; '0은 두 문자의 비교가 같음을, 1이면 문자열1이 문자열2 다음 순서임을 의미한다&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;If StrComp(문자열1, 문자열2) = 1 Then&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Swap(문자열1, 문자열2)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &amp;nbsp;End If&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;End If&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>DEV/VBA</category>
      <category>.NET</category>
      <category>Excel</category>
      <category>VBA</category>
      <category>문자열</category>
      <category>알고리즘</category>
      <category>정렬</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/23</guid>
      <comments>https://ssapo.tistory.com/23#entry23comment</comments>
      <pubDate>Mon, 29 Apr 2019 23:39:57 +0900</pubDate>
    </item>
    <item>
      <title>Column code가 페이지를 넘어갈 때 유용한 설정 단축키</title>
      <link>https://ssapo.tistory.com/22</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0uRgs/btquSpwRHAA/Mg61vpMqbivLPMQOoRERo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0uRgs/btquSpwRHAA/Mg61vpMqbivLPMQOoRERo1/img.png&quot; data-alt=&quot;Visual Studio로 개발을 하다보면 이렇게 탭을 나눠서 보는 경우가 왕왕 생긴다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0uRgs/btquSpwRHAA/Mg61vpMqbivLPMQOoRERo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0uRgs%2FbtquSpwRHAA%2FMg61vpMqbivLPMQOoRERo1%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;/&gt;&lt;/span&gt;&lt;figcaption&gt;Visual Studio로 개발을 하다보면 이렇게 탭을 나눠서 보는 경우가 왕왕 생긴다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcALAP/btquSqihdGG/wy6DoleYZdvQfrbUNW1Yx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcALAP/btquSqihdGG/wy6DoleYZdvQfrbUNW1Yx0/img.png&quot; data-alt=&quot;그러다 보면 가로의 길이가 짧아져서 Column으로 글 길이가 길어지면 코드가 뒤 쪽으로 가려진다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcALAP/btquSqihdGG/wy6DoleYZdvQfrbUNW1Yx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcALAP%2FbtquSqihdGG%2Fwy6DoleYZdvQfrbUNW1Yx0%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;/&gt;&lt;/span&gt;&lt;figcaption&gt;그러다 보면 가로의 길이가 짧아져서 Column으로 글 길이가 길어지면 코드가 뒤 쪽으로 가려진다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이런 경우가 발생할때 이 경우에 유용하게 사용할만한 단축키가 있다.&lt;/p&gt;
&lt;p&gt;Ctrl + E, Ctrl + W 단축키를 사용하면 column이 페이지를 넘어가면 다음 줄로 자동으로 넘겨준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRlvth/btquT3MXQ4v/pHs7szVlDlO65tn3J74tHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRlvth/btquT3MXQ4v/pHs7szVlDlO65tn3J74tHk/img.png&quot; data-alt=&quot;Ctrl + E, Ctrl + W 단축키 사용후 변화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRlvth/btquT3MXQ4v/pHs7szVlDlO65tn3J74tHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRlvth%2FbtquT3MXQ4v%2FpHs7szVlDlO65tn3J74tHk%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;/&gt;&lt;/span&gt;&lt;figcaption&gt;Ctrl + E, Ctrl + W 단축키 사용후 변화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;실제로 넘어가는게 아니고 눈에 보이기로만 넘어간 것처럼 보이게 된다.&lt;/p&gt;
&lt;p&gt;가로 스크롤뷰가 생기지 않기 때문에 코드를 한눈에 볼수 있어서 좀 더 깔끔해진다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Visual Studio 2017, Visual Studio 2019 에서 되는 것을 확인했다.&lt;/p&gt;</description>
      <category>DEV/Visual Studio</category>
      <category>HotKey</category>
      <category>Visual Studio</category>
      <category>단축키</category>
      <category>비주얼</category>
      <category>설정</category>
      <category>스튜디오</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/22</guid>
      <comments>https://ssapo.tistory.com/22#entry22comment</comments>
      <pubDate>Sun, 28 Apr 2019 17:57:30 +0900</pubDate>
    </item>
    <item>
      <title>[Pixel]시계</title>
      <link>https://ssapo.tistory.com/21</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bebIgy/btquM9BghwS/9xvFYTygKPp9LcXO6Km5gk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bebIgy/btquM9BghwS/9xvFYTygKPp9LcXO6Km5gk/img.jpg&quot; data-alt=&quot;256&amp;amp;amp;nbsp;&amp;amp;amp;times;&amp;amp;amp;nbsp;256 &quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bebIgy/btquM9BghwS/9xvFYTygKPp9LcXO6Km5gk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbebIgy%2FbtquM9BghwS%2F9xvFYTygKPp9LcXO6Km5gk%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;/&gt;&lt;/span&gt;&lt;figcaption&gt;256&amp;nbsp;&amp;times;&amp;nbsp;256 &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DEV/Resources</category>
      <category>Pixel</category>
      <category>pixel-art</category>
      <category>watch</category>
      <category>[pixel]</category>
      <category>도트</category>
      <category>도트연습</category>
      <category>시계</category>
      <category>연습</category>
      <category>픽셀</category>
      <category>픽셀아트</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/21</guid>
      <comments>https://ssapo.tistory.com/21#entry21comment</comments>
      <pubDate>Wed, 24 Apr 2019 21:09:23 +0900</pubDate>
    </item>
    <item>
      <title>1회차 3~5일차(끝) Rogue Legacy(악당의 유산)</title>
      <link>https://ssapo.tistory.com/20</link>
      <description>&lt;p style=&quot;text-align: center;&quot;&gt;3일차 부터 갑자기 바빠져서 플레이 할때 스샷만 겁나게 찍고 시간이 너무 지나버렸는데..&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;일단 마무리는 해야 될 거 같아서 스크린샷만 올려본다 ㅠ&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27567046551EE4001D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27567046551EE4001D&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-20_00012.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;흠 지금 생각해보면 무지 쉬웠음..&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2258AB46551EE4011C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2258AB46551EE4011C&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-20_00013.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;그냥 패턴을 읽고 잘 피하다가&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21582A46551EE4021C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21582A46551EE4021C&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-20_00014.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;몇 대 치고 잘피하다&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22588546551EE4021C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22588546551EE4021C&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-20_00016.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;푝푝푝 쳐주니 클리어&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23567746551EE4031D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23567746551EE4031D&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-20_00017.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;돈도 많이줌 개꿀 첫 보스 정도는 설계자의 힘을 빌리지 말고 잡는것이 좋을 듯&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25568E46551EE4041D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25568E46551EE4041D&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-21_00022.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;이것도 글케 어렵지 않았다 흡혈 능력이 많으면 엄청쉽다&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25561746551EE4051C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25561746551EE4051C&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-21_00038.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;네방향으로 커다란 미사일 쏘면서 쫄을 뽑는데 패턴이랄 것도 없고 그냥 잘피해서 잘 때리면 된다.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/217B1A4A551EE40520&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F217B1A4A551EE40520&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-21_00039.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;거의 2번째 3번째&amp;nbsp;만나자 마자 잡았던 걸로 기억함&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/277C784A551EE4061F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F277C784A551EE4061F&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-21_00040.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;얘도 설계자 없이 잡으면 좋다&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/257CC14A551EE40620&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F257CC14A551EE40620&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-21_00041.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;역시 돈을 많이준다.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/237C894A551EE40720&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F237C894A551EE40720&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-21_00042.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;이 때 3일차가 끝났다.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/277C7D4A551EE40820&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F277C7D4A551EE40820&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00004.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;엄청나게 집중력이 필요한 보스였던 기억이 난다. 지나다니면서 불덩이를 남기는데 엄청 신경쓰여..&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;이거 바바리안킹/퀸의 특수능력인 A키 (함성) 쓰면 불이 지워지므로 그거 이용하면 좀 쉽다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/267C474A551EE40920&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F267C474A551EE40920&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00006.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;색맹 캐릭으로 마무리 했다.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/277C844A551EE4091F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F277C844A551EE4091F&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00007.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;아무래도 시노비 직업이 이속도 빠르고 공격력도 쎄다보니까 잡기 쉽다.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/267C9F4A551EE40A20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F267C9F4A551EE40A20&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00008.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;체력이 무지 적은데.. 안맞고 잡을수 있는 보스니까 해볼만했다.&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/217A854A551EE40A21&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F217A854A551EE40A21&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00009.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;별로 쓸모없는 방어력.. 올라도 데미지 그대로인거 같은데&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/227CB84A551EE40B20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F227CB84A551EE40B20&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00010.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;세 번쨰 문이 열렸다! 이쯤에서 4일차가 끝남&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/247CC84A551EE40C1F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F247CC84A551EE40C1F&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00027.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;마지막 보스보다 더 힘든 보스였다. 보스룸까지 가기도 만만찮은 던젼임..&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/217AAF4A551EE40C21&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F217AAF4A551EE40C21&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00028.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;죽고&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/247C4F4A551EE40D20&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F247C4F4A551EE40D20&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00029.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;또 죽고&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2637B14E551EE40D18&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2637B14E551EE40D18&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00030.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;막 죽음 ㅋㅋㅋㅋ&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;건축가 없으면 이 게임은 너무 힘들거 같다..&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px; font-size: 9pt; line-height: 1.5;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25371F4E551EE40E19&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25371F4E551EE40E19&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00031.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;font-size: 9pt; line-height: 1.5;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;성공 했을때 캐릭터 팔라딘&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2637304E551EE40E19&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2637304E551EE40E19&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00032.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;체력&amp;nbsp;한방 남았을때 갑자기 미쳐가지고 한대도 안맞고 잡아버림&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2439154E551EE40F18&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2439154E551EE40F18&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00033.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;+(공격력 * 3)&amp;nbsp;이었다면..&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2737284E551EE41019&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2737284E551EE41019&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00035.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;흠! 문 다열렸음&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;스토리가 좀 반전인데...&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;해보면 암.. 스포하기 귀찮..&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px; font-size: 9pt; line-height: 1.5;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22608347551EE4122B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22608347551EE4122B&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00064.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;font-size: 9pt; line-height: 1.5;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;마지막 보스 Fountain!&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/255E8F47551EE4122A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F255E8F47551EE4122A&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00065.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;패턴이 단순해서 집중만 하면 잡는다&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2460B847551EE4132B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2460B847551EE4132B&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00074.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;마지막 보스를 잡았다..&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2760CA47551EE4132B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2760CA47551EE4132B&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00075.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;는 돈을 주네?? 마지막이 아닌가?&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;여기서 부턴 엔딩 영상인데 ... 영상 찍는걸 알아내서 그냥 찍는게 낫겠다..&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22252444551EE7C02D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22252444551EE7C02D&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00076.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25777F3F551EE7C52D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25777F3F551EE7C52D&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00084.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26751E3F551EE7C630&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26751E3F551EE7C630&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00085.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2177BC3F551EE7C62E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2177BC3F551EE7C62E&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00086.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2575333F551EE7C730&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2575333F551EE7C730&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00087.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2277E93F551EE7C72E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2277E93F551EE7C72E&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00088.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2777EE3F551EE7C82D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2777EE3F551EE7C82D&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00089.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2677F33F551EE7C92E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2677F33F551EE7C92E&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00090.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2576A03F551EE7C92F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2576A03F551EE7C92F&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00091.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2377B33F551EE7CA2E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2377B33F551EE7CA2E&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00092.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2277CF3F551EE7CA2E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2277CF3F551EE7CA2E&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00093.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26753E3F551EE7CB30&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26753E3F551EE7CB30&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00094.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2176823F551EE7CC2F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2176823F551EE7CC2F&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00095.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2775983F551EE7CC30&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2775983F551EE7CC30&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00096.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27410742551EE7CD03&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27410742551EE7CD03&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00097.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2751BE42551EE7CE38&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2751BE42551EE7CE38&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00098.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2353BF42551EE7CE38&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2353BF42551EE7CE38&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00099.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2443FE42551EE7CF02&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2443FE42551EE7CF02&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00100.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25534942551EE7CF38&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25534942551EE7CF38&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00101.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/24537542551EE7D038&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F24537542551EE7D038&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00102.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25412742551EE7D103&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25412742551EE7D103&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00103.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2453B742551EE7D138&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2453B742551EE7D138&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00104.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2164C33D551EE7D239&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2164C33D551EE7D239&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00105.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;엔딩 크레딧!!&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2664E63D551EE7D239&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2664E63D551EE7D239&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00106.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2465353D551EE7D33A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2465353D551EE7D33A&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00107.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2657143D551EE7D402&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2657143D551EE7D402&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00108.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/244E953D551EE7D406&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F244E953D551EE7D406&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00109.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/25520D3D551EE7D504&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F25520D3D551EE7D504&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00110.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2518B13E551EE7D502&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2518B13E551EE7D502&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00111.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/251BD33E551EE7D601&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F251BD33E551EE7D601&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00112.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;총 플레이 시간 8시간&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26168C3E551EE7D603&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26168C3E551EE7D603&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-29_00113.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;Rogue Legacy+&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;스토리는 1회차에서 끝이고 나머지는 보너스 플레이라고 한다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;소감을 적어보자면,&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;2D플랫포머&amp;nbsp;형식 게임중엔 굉장히 수작인 것 같다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;난이도는 조금 어렵지만,&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;아기자기한 그림체와 스토리,&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;조화로운 사운드와 효과음,&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&amp;nbsp;참신한 시스템,&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;그리고 제작자의 센스까지 합쳐지니 정말 재밌는 게임이 만들어졌다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;유저로서는 재밌는 게임을 만나 즐거웠고&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;게임개발자로서는 배울게 많은 그런 게임이었다.&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>GAME/Rogue Legacy</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/20</guid>
      <comments>https://ssapo.tistory.com/20#entry20comment</comments>
      <pubDate>Sat, 4 Apr 2015 04:30:23 +0900</pubDate>
    </item>
    <item>
      <title>1회차 2일차 Rogue Legacy(악당의 유산)</title>
      <link>https://ssapo.tistory.com/19</link>
      <description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2175854655097F3419&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2175854655097F3419&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00001.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;CELLAR DOOR GAMES..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2652964655097F3537&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2652964655097F3537&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00002.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;3번째 자식 헨리&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/225FC24655097F352D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F225FC24655097F352D&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00007.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;게임의 중간 중간 방마다 미션이 존재하는데 실패하면 영영 먹을 수 없는 상자가 된다.( 자손은 다시 도전할 수 있다 )&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2773204655097F361C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2773204655097F361C&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00008.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;가끔씩 방마다 재밌는 미션을 주는 삐에로가 등장하는데&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;이걸 깰수가 있나? 싶다.. 내 언젠가 공략을 써보고 싶다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2309FC4655097F3606&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2309FC4655097F3606&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00011.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;도끼를 던져서 표적이 10개 이하로 남으면 내기에서 이기는건데..&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/257ADE4655097F3715&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F257ADE4655097F3715&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00012.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;15개나 남았다.. 그래도 420골드 먹었으니 개이득인듯 ㅋ&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/27044D4F550980E301&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F27044D4F550980E301&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00022.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;Henrietta가 아니네?? ...&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;점점 개죽음 당하는 자손들이 늘어나는 속도가 빨라지고 있다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/256B074F550980E418&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F256B074F550980E418&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00027.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;색맹 형질을 가진 자손으로 플레이&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/24675E4F550980E41D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F24675E4F550980E41D&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00028.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;이거시 보스방이란다 처음 봤으니 일단 맛이라도 보게 바로 들어가 보았다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/21771F4F550980E50C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F21771F4F550980E50C&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00029.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;엄청 거대한 눈알이 보스다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/23506B4F550980E634&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F23506B4F550980E634&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00030.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;역시 처음에 보스를 잡는건 너무 힘들다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;일정한 주기마다&amp;nbsp;일정 패턴으로 미사일을 쏴대는데 처음 상대해보는데도 패턴이 보였다.&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;아마 다음번에 바바리안이 되면 이길 수 있을것 같다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 599px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/26371943550982BC05&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F26371943550982BC05&quot; width=&quot;599&quot; height=&quot;588&quot; filename=&quot;journey2.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;왕자의 일지 # 2&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;1. 비록 나는 장남이었지만, 아버지가 총애 하시진 않으셨어. 난 항상 아버지가 나없이 떠날 계획을 알고 있었어.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;2. 그러나 만약 내가 치료제를 찾는다면 모든 것은 바뀌게 될거야&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;3. 승자는 아버지의 왕좌를 물려받게 될테니까&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: 'Comic Sans MS'; font-size: 16px; line-height: 24px; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;4.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt; font-family: 'Comic Sans MS'; line-height: normal;&quot;&gt;내가 즉위하면 내 아내와 아이들은 다시 왕가의 일원이 되고 왕도로 돌아오는 거야&lt;/span&gt;&lt;span style=&quot;font-size: 12pt; font-family: 'Comic Sans MS'; line-height: normal;&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 12pt; font-family: 'Comic Sans MS'; line-height: normal;&quot;&gt;우리가 바랬던 존경받는 왕도로 말이야!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: 'Comic Sans MS'; font-size: 16px; line-height: 24px; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: 'Comic Sans MS'; font-size: 16px; line-height: 24px; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt; font-family: 'Comic Sans MS'; line-height: normal;&quot;&gt;5. 더 이상 우리는 내 사촌들의 가십과 비방을 참지 않을거야. 다른 공작들은&amp;nbsp;우리가 지나가면 고개를 숙이게 될거야! 그러나 내 생각은 너무 이른거 같아.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: 'Comic Sans MS'; font-size: 16px; line-height: 24px; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;color: rgb(102, 102, 102); font-family: 'Comic Sans MS'; font-size: 16px; line-height: 24px; text-align: center; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt; font-family: 'Comic Sans MS'; line-height: normal;&quot;&gt;6. 우선순위를 명확히 해야겠어. 성을 점령하고, 치료제를 찾아서, 내 보상을 챙기는 거지.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;font face=&quot;gulim, 굴림&quot;&gt;&lt;span style=&quot;line-height: normal; font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;...&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/214DC7395509862A16&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F214DC7395509862A16&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00004.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/234A05395509862A14&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F234A05395509862A14&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00005.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2763F1395509862B02&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2763F1395509862B02&quot; width=&quot;800&quot; height=&quot;375&quot; filename=&quot;2015-03-16_00006.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;span style=&quot;font-family: 'Comic Sans MS'; font-size: 12pt;&quot;&gt;추가된 장비들이다.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 12pt; font-family: 'Comic Sans MS'; line-height: normal;&quot;&gt;나중에 장비들에 대한 정리도 해보고 싶다. 시간이 남는다면 ㅎ&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: 9pt; font-family: gulim, 굴림; line-height: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>GAME/Rogue Legacy</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/19</guid>
      <comments>https://ssapo.tistory.com/19#entry19comment</comments>
      <pubDate>Wed, 18 Mar 2015 23:05:58 +0900</pubDate>
    </item>
    <item>
      <title>1회차 1일차 Rogue Legacy(악당의 유산)</title>
      <link>https://ssapo.tistory.com/18</link>
      <description>&lt;p style=&quot;text-align: left;&quot;&gt;인트로 부분이 있는데 빠르게 넘어가느라 추가하지 못했다 ㅠ&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2762404F5504717E1A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2762404F5504717E1A&quot; width=&quot;800&quot; height=&quot;440&quot; filename=&quot;game_through_title.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;뭔가 강렬한 느낌을 주는 타이틀 화면이다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/210C1344550472D20A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F210C1344550472D20A&quot; width=&quot;800&quot; height=&quot;436&quot; filename=&quot;game_through_start.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Enter를 누르니 바로 게임이 시작된다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/230AFC44550472D30B&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F230AFC44550472D30B&quot; width=&quot;800&quot; height=&quot;867&quot; filename=&quot;game_journal_entry1.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;이 게임의 스토리를 Price's Journal을 통해 알 수 있는거 같다. 해석하자면&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;1.&amp;nbsp;반역이야 ! 암살자가 왕인 나의 아버지를 해쳤어!&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;2. 왕국의 질서를 되찾기 위해서, 나의 아버지는 그를 구하기 위한 모험에&amp;nbsp;나와 형제들을 보냈어. 우리는 저주받은 숲을 함께 지나 햄슨 성으로 갈 것이다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;3. 이 저주받은 성은 태고의 시절부터 숲의 외곽에 서 있었는데 어떤 질병도 치료할 수 있는 약이 있다는 소문이 있었어.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;... 스샷을 찍었는데 이 사이에 부분이 날라갔다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;생략된 내용은 &quot;나는 오늘밤&amp;nbsp;형제 자매들이 자고있는 틈을타 몰래 오밤중에 먼저 왔다.&quot; 하는 내용임ㅋ&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;4. 이 모험을 실패하면 내 이름에 먹칠을 하게 될거다. (왜냐면 형제 자매 몰래 치사하게 혼자 들어와서)&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 380px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/217C18485504769210&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F217C18485504769210&quot; width=&quot;380&quot; height=&quot;423&quot; filename=&quot;game_get_item_caronsobol.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;나중에 알게 된건데 이건 다음 세대가 카론이란 놈에게 통행료를 주지 않아도 성에 들어갈 수 있게 해준다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/260C6E44550472D50A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F260C6E44550472D50A&quot; width=&quot;800&quot; height=&quot;497&quot; filename=&quot;game_sirlee_death.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;게임오버되면&amp;nbsp;실제로 캐릭터가 죽는다.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232D8D3B550477F810&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232D8D3B550477F810&quot; width=&quot;800&quot; height=&quot;455&quot; filename=&quot;game_choose_heir.jpg&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;다음 게임을 시작하면 이전 세대의 초상화가 걸려 있다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;Sir Lee는 용맹스런 기사였다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;그리고 그 다음 세대를 선택하는 것이 이 게임의 &quot;continue&quot;의 개념이다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;개별적인 특성으로 직업과 유전형질 스킬이 있다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;치킨을 무서워 한다는데. 닭고기 아이템이 걸어다닌다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232D943B550477F90F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232D943B550477F90F&quot; width=&quot;800&quot; height=&quot;436&quot; filename=&quot;game_through_garden.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;아버지(이전 세대)가 벌어 놓은 돈으로 영지를 가꾼다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;이 게임의 업그레이드 시스템이다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232DA23B550477FA10&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232DA23B550477FA10&quot; width=&quot;800&quot; height=&quot;433&quot; filename=&quot;game_unlocked_smithy.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;하나씩 업그레이드 하면 실제 게임에 적용된다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;가장 기본적인 블랙스미스를 언락하면 차례차례 다른 업그레이드들이 언락되면서 영지가 점점 화려해 진다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px; font-size: 9pt; line-height: 1.5; text-align: center;; height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/232EE93B550477FC0F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F232EE93B550477FC0F&quot; width=&quot;800&quot; height=&quot;427&quot; filename=&quot;game_through_added_smith.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;font-size: 9pt; line-height: 1.5; text-align: center;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;대장간에서는 아이템을 만들어준다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/222D203B550477FB11&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F222D203B550477FB11&quot; width=&quot;800&quot; height=&quot;429&quot; filename=&quot;game_through_added_architect.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;또 이 게임은 세대가 바껴서 성에 들어갈 때마다 맵이 랜덤으로 생성되는데,&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;건설가는 요번 세대가 벌어들이는 수익의 일부를 가져가고 이전 세대의 맵을 쓸 수 있게 해준다.&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/252F183B550477FD0F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F252F183B550477FD0F&quot; width=&quot;800&quot; height=&quot;426&quot; filename=&quot;game_through_charon_bad_man.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;이새끼&amp;nbsp;순 나쁜새끼에요!&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;성에 들어가는 통행료로 이전 세대가 벌어 둔 돈을 다가져 간다.. 그러니 들어가기 전에 돈을 다쓰고 들어가자.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 800px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/222C3C4055047A5C15&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F222C3C4055047A5C15&quot; width=&quot;800&quot; height=&quot;476&quot; filename=&quot;game_antoinette_death.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;앙뜨와네뜨도 죽었다..&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;일단 맵이 랜덤하게 바뀌니까 생각보다 게임이 어렵다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;조작이 단순하지 않았다면 엄청 어려웠을 거 같다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;일단 한 세대를 플레이 하는데 걸리는 시간이 매우 짧다.&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;2일차 부터는 게임 플레이 스샷도 같이 찍도록 해야지&lt;/p&gt;</description>
      <category>GAME/Rogue Legacy</category>
      <category>Legacy</category>
      <category>Rogue</category>
      <category>steam</category>
      <category>인디게임</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/18</guid>
      <comments>https://ssapo.tistory.com/18#entry18comment</comments>
      <pubDate>Sun, 15 Mar 2015 03:16:39 +0900</pubDate>
    </item>
    <item>
      <title>[STL] cout에서 실수형 데이터의 지수표현법 막기</title>
      <link>https://ssapo.tistory.com/17</link>
      <description>&lt;p&gt;float가 값이 너무 커졌을 때..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;cout으로 출력을 할 때에 지수표현법으로 출력되는 버그(?)가 발생한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이를 막기 위한 방법으로&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;cout &amp;lt;&amp;lt; fixed &amp;lt;&amp;lt; float_value &amp;lt;&amp;lt; endl; 라고 fixed 라는 std::fixed ( 아마 template 객체일 듯? )를 호출해주면 된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/C++</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/17</guid>
      <comments>https://ssapo.tistory.com/17#entry17comment</comments>
      <pubDate>Fri, 13 Mar 2015 23:48:41 +0900</pubDate>
    </item>
    <item>
      <title>[STL] cin, getline 사이에 twice enter issue</title>
      <link>https://ssapo.tistory.com/16</link>
      <description>&lt;p&gt;문자열 입력을 받기 위해서,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;cin과 get line을 동시 사용하는 경우에&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;cin을 위에다가 쓰고 getline을 밑에다가 썼을 때에 cin에서 받은 버퍼의 '\n'가 버퍼에서 남아 있다가,&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;getline 함수에서 읽어 들여 버려서 getline 함수가 실행되자마자 개행 문자로 인해서 입력을 받지 못하는 문제가 발생하였다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;이런 경우&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;cin 함수 밑 부분에서&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;cin.ignore() 함수를 사용해주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;인자값의 정보에 대한 숙지가 이 문제를 해결하는 데에는 크게 의미가 있진 않으므로&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.cplusplus.com/reference/istream/istream/ignore/&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;std::istream::ignore&lt;/a&gt;&amp;nbsp;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;nbsp;링크만 걸어놓고 자세한 인자값에 대한 이해가&amp;nbsp;필요할 떄 참고할 것을 권한다.&lt;/p&gt;</description>
      <category>DEV/C++</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/16</guid>
      <comments>https://ssapo.tistory.com/16#entry16comment</comments>
      <pubDate>Tue, 10 Mar 2015 21:37:18 +0900</pubDate>
    </item>
    <item>
      <title>[Pixel]도트 이미지 그리기 연습2</title>
      <link>https://ssapo.tistory.com/15</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 259px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2459F84E54F314B50E&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2459F84E54F314B50E&quot; width=&quot;259&quot; height=&quot;134&quot; filename=&quot;red_balloon_menu.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/Resources</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/15</guid>
      <comments>https://ssapo.tistory.com/15#entry15comment</comments>
      <pubDate>Sun, 1 Mar 2015 22:31:54 +0900</pubDate>
    </item>
    <item>
      <title>[Pixel]도트 이미지 그리기 연습하기1</title>
      <link>https://ssapo.tistory.com/14</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 128px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2315164554F0F7363F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2315164554F0F7363F&quot; width=&quot;128&quot; height=&quot;128&quot; filename=&quot;hobby.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/Resources</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/14</guid>
      <comments>https://ssapo.tistory.com/14#entry14comment</comments>
      <pubDate>Sat, 28 Feb 2015 08:02:13 +0900</pubDate>
    </item>
    <item>
      <title>Eclipse cocos2d-x GC overhead limit exceeded</title>
      <link>https://ssapo.tistory.com/13</link>
      <description>&lt;p&gt;Ecliipse로 cocos2d-x개발을 하고 있었다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;google_play_services lib를 추가하여&amp;nbsp;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;빌드를 했을때 GC overhead limit exceeded 이클립스 런타임 에러가 발생했다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 375px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2761383854EA44791C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2761383854EA44791C&quot; width=&quot;375&quot; height=&quot;151&quot; filename=&quot;캡처.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;이런 문구와 함께..&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;곧 Eclipse가 종료가 되는 에러가 발생했다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;찾아보니 Eclipse에서 허용된 Heap size 자체가 적어서 프로그램이 에러를 뿜으며 종료된다는 것이다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;해결방법은&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 607px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/22086F3554EA45DC04&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F22086F3554EA45DC04&quot; width=&quot;607&quot; height=&quot;289&quot; filename=&quot;캡처.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;eclipse가 설치되어 있는 path로&amp;nbsp;들어가서&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 662px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/2122003654EA45AD35&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F2122003654EA45AD35&quot; width=&quot;662&quot; height=&quot;488&quot; filename=&quot;캡처.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;eclipse.ini를 열어서 표시된 부분들을 수정해 주면 된다.&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/Android</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/13</guid>
      <comments>https://ssapo.tistory.com/13#entry13comment</comments>
      <pubDate>Mon, 23 Feb 2015 06:11:45 +0900</pubDate>
    </item>
    <item>
      <title>[Keyword] explicit, 암시적 형변환 피하기</title>
      <link>https://ssapo.tistory.com/12</link>
      <description>&lt;p style=&quot;margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;textarea name=&quot;code&quot; margin:=&quot;&quot; 0px;=&quot;&quot; height:=&quot;&quot; 848px;=&quot;&quot; width:=&quot;&quot; 645px;&quot;=&quot;&quot; class=&quot;brush:cpp;&quot; style=&quot;margin: 0px; width: 522px; height: 330px;&quot;&gt;#include &amp;lt;iostream&amp;gt;
using std::cout;
using std::endl;
using std::string;

class Person
{
public:
	explicit Person(string name, int size) : mOld(size), mName(name) {}
	virtual ~Person() {}

	inline void setSize(int size) { mOld = size; }
	inline int getSize() const { return mOld; }

	inline void setName(string name) { mName = name; }
	inline string getName() const { return mName; }

private:
	Person(const Person&amp;amp;);
	Person&amp;amp; operator=(const Person&amp;amp;);

	int mOld;
	string mName;
};

class Student : public Person
{
public:
	Student(string name, int old, int year) 
		: Person(name, old) 
		, mYear(year) 
	{}

	virtual ~Student() {}

	inline void setYear(int year) { mYear = year; }
	inline int getYear() const { return mYear; }

private:
	Student(const Student&amp;amp;);
	Student&amp;amp; operator=(const Student&amp;amp;);

	int mYear;
};

int main()
{
	Student sSong = { &quot;SongSiYoon&quot;, 26, 4 };	// OK !
	Person p = {&quot;Song&quot;, 20};// Compile Error !


	return 0;
}


&lt;/textarea&gt;&amp;nbsp;
&lt;div&gt;Explicit이라는 키워드는 C 스타일의 구조체 생성 방식 ( Structure A = {type, type}; ) 을 막는다.&amp;nbsp;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이러한 제한을 걸어주는 이유는 해당 방식으로 암시적 형변환을 통한 생성 방식이 버그 발생 소지가 있기 때문이다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;그래서 클래스를 설계할때에 explicit 키워드를 붙여 주는 것이 안전한 클래스 작성 방법이다.&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/C++</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/12</guid>
      <comments>https://ssapo.tistory.com/12#entry12comment</comments>
      <pubDate>Sat, 21 Feb 2015 04:56:50 +0900</pubDate>
    </item>
    <item>
      <title>[OOP] c++ 에서의 상속에 관한 키워드</title>
      <link>https://ssapo.tistory.com/11</link>
      <description>&lt;textarea name=&quot;code&quot; class=&quot;brush:cpp;&quot;&gt;class Base
{
};

class PublicDerived : public Base
{
};

class PrivateDerived : private Base
{
};
&lt;/textarea&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;C++ 에서는 상속을 하려는 클래스 앞에 액세스 한정자에 대한 명시를 해줘야 하는데,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;이부분에 대해서 모르는 사람들이 굉장히 많다는 것을 느꼈다. ( 내 주변만 그런가...? )&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;일단은 C++에서만 나오는 개념이기도 하고, 알고 있어도 설계단계에서나&amp;nbsp;&lt;/div&gt;&lt;div&gt;중요한 키워드이기 때문에 잘 모르게 되고 그러다 보니 알고 있다가도 까먹어서 모르는 사람도 많은거 같다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;textarea name=&quot;code&quot; class=&quot;brush:cpp;&quot;&gt;#include &amp;lt;iostream&amp;gt;

class Base
{
public:
	explicit Base(int x, int y)
		: m_x(x)
		, m_y(y)
	{}

	virtual ~Base() {}

	inline int getX() const { return m_x; }
	inline void settX(int x) { m_x = x; }
	inline int getY() const { return m_y; }
	inline void setY(int y) { m_y = y; }

private:
	Base(const Base&amp;amp; o);

	int m_x;
	int m_y;
};

class PublicDerived : public Base
{
public:
	explicit PublicDerived(int x, int y) : Base(x, y) {}
	virtual ~PublicDerived() {}
};

class PrivateDerived : private Base
{
public:
	explicit PrivateDerived(int x, int y) : Base(x, y) {}
	virtual ~PrivateDerived() {}
};


int main()
{
	PublicDerived childA(20, 20);
	PrivateDerived childB(10, 10);

	std::cout &amp;lt;&amp;lt; childA.getX() &amp;lt;&amp;lt; &quot;\n&quot;; // 1. 당연히 될것이다.

	std::cout &amp;lt;&amp;lt; childB.getX() &amp;lt;&amp;lt; &quot;\n&quot;; // 2. 이건 ??

	return 0;
}
&lt;/textarea&gt;&amp;nbsp;&lt;div&gt;이 코드에서 2번은 컴파일 에러를 뿜는다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;왜?

상속 키워드에서 public 한정자는 해당 부모 클래스의 public 한정자에 있는 멤버변수,&amp;nbsp;&lt;/div&gt;&lt;div&gt;멤버함수들을, 모두 public으로 받겠다 하는 뜻이다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;그렇다면 private 한정자는? 부모 클래스의 public 한정자와,&amp;nbsp;&lt;/div&gt;&lt;div&gt;protected 한정자로 설정 되어 있는 모든 변수와 함수들을 private으로 받게 된다.&amp;nbsp;&lt;/div&gt;&lt;div&gt;그러니, 당연히 private 한정자로 된 getX()에 대한 assign은 불가능하게 되는 것이다.&amp;nbsp;
&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;왜 이렇게 제한을 걸고 불편하게 하는 것인가? 하는 문제는 설계자의 철학에 관한 문제인데,&amp;nbsp;&lt;div&gt;상속하는 클래스가 부모의 인터페이스를 통해서 로직을 설계하고 새로운 인터페이스를 제공해야 할때,&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Wrapper class(Adapter Pattern)의 구현방법중에 이런 방법이 있다는 것을 알고 있으면,&lt;/div&gt;&lt;div&gt;오픈 소스를 이해할 때에 큰 도움이 된다.&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/C++</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/11</guid>
      <comments>https://ssapo.tistory.com/11#entry11comment</comments>
      <pubDate>Wed, 18 Feb 2015 02:26:33 +0900</pubDate>
    </item>
    <item>
      <title>White screen on start App in Android</title>
      <link>https://ssapo.tistory.com/9</link>
      <description>&lt;p&gt;매니피스트.xml theme에서 translucent를 언급&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;margin-top: 0px; padding: 5px; border: 0px; font-size: 13px; overflow: auto; width: auto; max-height: 600px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, sans-serif; color: rgb(57, 51, 24); word-wrap: normal; background-color: rgb(238, 238, 238);&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, sans-serif; white-space: inherit;&quot;&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;&amp;lt;activity&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(255, 0, 0);&quot;&gt;android:name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 255);&quot;&gt;&quot;first Activity Name&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(255, 0, 0);&quot;&gt;android:theme&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 255);&quot;&gt;&quot;@android:style/Theme.Translucent.NoTitleBar&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;&amp;lt;intent-filter&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;
            &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;&amp;lt;action&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(255, 0, 0);&quot;&gt;android:name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 255);&quot;&gt;&quot;android.intent.action.MAIN&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;

            &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;&amp;lt;category&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;atn&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(255, 0, 0);&quot;&gt;android:name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;atv&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 255);&quot;&gt;&quot;android.intent.category.LAUNCHER&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;&amp;lt;/intent-filter&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);&quot;&gt;
 &lt;/span&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;&amp;lt;/activity&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;code style=&quot;margin: 0px; padding: 0px; border: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, sans-serif; white-space: inherit;&quot;&gt;&lt;span class=&quot;tag&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; color: rgb(128, 0, 0);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/Android</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/9</guid>
      <comments>https://ssapo.tistory.com/9#entry9comment</comments>
      <pubDate>Thu, 5 Feb 2015 10:23:07 +0900</pubDate>
    </item>
    <item>
      <title>[OOP] Struct와 Class의 차이</title>
      <link>https://ssapo.tistory.com/6</link>
      <description>&lt;p&gt;사실상 객체지향에서 말하는 struct와 class의 차이는 명확하다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만 이따금씩 C++을 많이 접해보지 못한 프로그래머들에겐&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;화제거리가 되곤 하는데 이는 C++만이 가진 모호한 객체지향성 때문인거 같다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;가령 C#이나 Java 두 언어에서 보여지는 Struct와 Class의 차이는 아주 명확한데,&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Struct는 기본적으로 value copy가 이뤄지는 데이터 타입이며&lt;/p&gt;&lt;p&gt;Class는 반대로 reference copy가 발생하는 객체 타입이라는 것이다.&lt;/p&gt;&lt;p&gt;실제로 코딩을 할때도 Struct와 Class를 다루는 코딩 방식이 판이하기 때문에 조금만 접해봐도 그 차이를 체감 할 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;하지만 C++은 Struct와 Class의 차이가 거의&amp;nbsp;없다.&lt;/p&gt;&lt;p&gt;차이라곤 딱하나가 있는데 기본 한정자가&amp;nbsp;&lt;/p&gt;&lt;p&gt;Struct의 경우에는 public:으로 설정되어 있고&lt;/p&gt;&lt;p&gt;Class의 경우 private:으로 되어 있다는 것이다.&lt;/p&gt;&lt;p&gt;메소드 , 가상 메소드 , 순수 가상 메소드 모두 지원한다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;또 Struct를 상속하는 Class가 가능하고&amp;nbsp;&lt;span style=&quot;font-size: 9pt; line-height: 1.5;&quot;&gt;Class를 상속하는 Struct 또한 가능하다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;실제로 Struct가 public:으로 기본 한정자가 잡혀 있는 것을 이용해 다른언어에서 지원하는&amp;nbsp;Interface로서 활용하는 경우도 심심치 않다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;많은 책에서는 혹은 대학 강의에서는 이러한 이슈를 명확하게 다루지 않는다. 사실상&amp;nbsp;이슈라고 할만큼 크리티컬 하지 않기도 하다.&lt;/p&gt;&lt;p&gt;이러한 모호함이 객체지향을 접하는데 마이너스 요소라고 생각하는 것 같다.&lt;/p&gt;</description>
      <category>DEV/C++</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/6</guid>
      <comments>https://ssapo.tistory.com/6#entry6comment</comments>
      <pubDate>Sat, 31 Jan 2015 03:26:34 +0900</pubDate>
    </item>
    <item>
      <title>[STL] set iterator의 const issue</title>
      <link>https://ssapo.tistory.com/4</link>
      <description>연구실 과제를 진행하다가 set컨테이너의 iterator 접근시에 

값이 변경 불가능한&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&quot;error C2662 'this' 포인터를 'const Foo'에서 'Foo&amp;amp;'(으)로 변환할 수 없습니다.&quot;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;라는 컴파일 에러를 2시간의 삽질 끝에&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;const_cast로 해당 클래스의 const 해제를 통해 문제를 해결했다.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;

&lt;textarea name=&quot;code&quot; class=&quot;brush:cpp;&quot;&gt;#include &amp;lt;set&amp;gt;

class Foo
{
public:
	Foo() : m_number(10) {}
	void setNumber(int n) { m_number = n; }
	int getNumber() const { return m_number; }

    bool operator&amp;lt; (const Foo&amp;amp; e) const { return (m_number &amp;gt; e.m_number); }
private:
	int m_number;
};

int main()
{
	std::set&amp;lt;Foo&amp;gt; foos;

	Foo f = Foo();
	foos.insert(f);
	std::set&amp;lt;Foo&amp;gt;::iterator found = foos.find(f);

	//found-&amp;gt;setNumber(20); //error
	Foo&amp;amp; fwoc = const_cast&amp;lt;Foo&amp;amp;&amp;gt;(*found);
	fwoc.setNumber(20);
	return 0;
}
&lt;/textarea&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>DEV/C++</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/4</guid>
      <comments>https://ssapo.tistory.com/4#entry4comment</comments>
      <pubDate>Wed, 28 Jan 2015 03:19:08 +0900</pubDate>
    </item>
    <item>
      <title>HTML CSS 버튼 만드는 사이트</title>
      <link>https://ssapo.tistory.com/3</link>
      <description>&lt;p&gt;&lt;a href=&quot;http://livetools.uiparade.com/button-builder.html#&quot; target=&quot;_blank&quot; class=&quot;tx-link&quot;&gt;http://livetools.uiparade.com/button-builder.html#&lt;/a&gt;&lt;/p&gt;</description>
      <category>티스토리</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/3</guid>
      <comments>https://ssapo.tistory.com/3#entry3comment</comments>
      <pubDate>Tue, 27 Jan 2015 04:28:24 +0900</pubDate>
    </item>
    <item>
      <title>Syntax Highilighter 연습2.</title>
      <link>https://ssapo.tistory.com/2</link>
      <description>&lt;p&gt;&lt;/p&gt;
&lt;pre class=&quot;brush:cpp &quot;&gt;int main(int argc, char* argv[])
{

  int num_points = 0;
  double max = 0, min = 0;
  double zoom;

  if (argc != 5) {
    cout &amp;lt;&amp;lt; &quot;-== USAGE ==-&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot;Load Data File: p2t filename center_x center_y zoom&quot; &amp;lt;&amp;lt; endl;
    cout &amp;lt;&amp;lt; &quot; Random Points: p2t random num_points width zoom&quot; &amp;lt;&amp;lt; endl;
    return 1;
  }

  if(string(argv[1]) == &quot;random&quot;) {
    num_points = atoi(argv[2]);
    random_distribution = true;
    char* pEnd;
    max = strtod(argv[3], &amp;amp;pEnd);
    min = -max;
    cx = cy = 0;
    zoom = atof(argv[4]);
  } else {
    zoom = atof(argv[4]);
    cx = atof(argv[2]);
    cy = atof(argv[3]);
  }

  vector&lt;p2t::point*&gt; polyline;

  if(random_distribution) {
    // Create a simple bounding box
    polyline.push_back(new Point(min,min));
    polyline.push_back(new Point(min,max));
    polyline.push_back(new Point(max,max));
    polyline.push_back(new Point(max,min));
  } else {
    // Load pointset from file

    // Parse and tokenize data file
    string line;
    ifstream myfile(argv[1]);
    if (myfile.is_open()) {
      while (!myfile.eof()) {
        getline(myfile, line);
        if (line.size() == 0) {
          break;
        }
        istringstream iss(line);
        vector&lt;string&gt; tokens;
        copy(istream_iterator&lt;string&gt;(iss), istream_iterator&lt;string&gt;(),
             back_inserter&lt;vector&lt;string&gt; &amp;gt;(tokens));
        double x = StringToDouble(tokens[0]);
        double y = StringToDouble(tokens[1]);
        polyline.push_back(new Point(x, y));
        num_points++;
      }
      myfile.close();
    } else {
      cout &amp;lt;&amp;lt; &quot;File not opened&quot; &amp;lt;&amp;lt; endl;
    }
  }

  cout &amp;lt;&amp;lt; &quot;Number of constrained edges = &quot; &amp;lt;&amp;lt; polyline.size() &amp;lt;&amp;lt; endl;
  polylines.push_back(polyline);

  Init();

  /*
   * Perform triangulation!
   */

  double init_time = glfwGetTime();
  
  /*
   * STEP 1: Create CDT and add primary polyline
   * NOTE: polyline must be a simple polygon. The polyline's points
   * constitute constrained edges. No repeat points!!!
   */
  CDT* cdt = new CDT(polyline);

  /*
   * STEP 2: Add holes or Steiner points if necessary
   */
  string s(argv[1]);
  if(s.find(&quot;dude.dat&quot;, 0) != string::npos) {
    // Add head hole
    vector&lt;point*&gt; head_hole = CreateHeadHole();
    num_points += head_hole.size();
    cdt-&amp;gt;AddHole(head_hole);
    // Add chest hole
    vector&lt;point*&gt; chest_hole = CreateChestHole();
    num_points += chest_hole.size();
    cdt-&amp;gt;AddHole(chest_hole);
    polylines.push_back(head_hole);
    polylines.push_back(chest_hole);
  } else if (random_distribution) {
    max-=(1e-4);
    min+=(1e-4);
    for(int i = 0; i &amp;lt; num_points; i++) {
      double x = Random(Fun, min, max);
      double y = Random(Fun, min, max);
      cdt-&amp;gt;AddPoint(new Point(x, y));
    }
  }

  /*
   * STEP 3: Triangulate!
   */
  cdt-&amp;gt;Triangulate();

  double dt = glfwGetTime() - init_time;

  triangles = cdt-&amp;gt;GetTriangles();
  map = cdt-&amp;gt;GetMap();

  cout &amp;lt;&amp;lt; &quot;Number of points = &quot; &amp;lt;&amp;lt; num_points &amp;lt;&amp;lt; endl;
  cout &amp;lt;&amp;lt; &quot;Number of triangles = &quot; &amp;lt;&amp;lt; triangles.size() &amp;lt;&amp;lt; endl;
  cout &amp;lt;&amp;lt; &quot;Elapsed time (ms) = &quot; &amp;lt;&amp;lt; dt*1000.0 &amp;lt;&amp;lt; endl;

  MainLoop(zoom);

  delete cdt;
  ShutDown(0);
  return 0;
}

&lt;/point*&gt;&lt;/point*&gt;&lt;/vector&lt;string&gt;&lt;/string&gt;&lt;/string&gt;&lt;/string&gt;&lt;/p2t::point*&gt;&lt;/pre&gt;</description>
      <category>티스토리</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/2</guid>
      <comments>https://ssapo.tistory.com/2#entry2comment</comments>
      <pubDate>Mon, 26 Jan 2015 14:22:42 +0900</pubDate>
    </item>
    <item>
      <title>Syntax Highilighter 연습.</title>
      <link>https://ssapo.tistory.com/1</link>
      <description>&lt;pre class=&quot;brush:cpp tab-size:4 highlight: 1 smart-tab : true&quot; &gt;
#include &amp;lt;iostream&amp;gt;
int main()
{
cout &lt;&lt; &quot;Hello World!&quot;&lt;&lt; endl;
return 0;
}
&lt;/pre&gt;

다음은 들여쓰기</description>
      <category>티스토리</category>
      <author>ssapo</author>
      <guid isPermaLink="true">https://ssapo.tistory.com/1</guid>
      <comments>https://ssapo.tistory.com/1#entry1comment</comments>
      <pubDate>Mon, 26 Jan 2015 05:45:10 +0900</pubDate>
    </item>
  </channel>
</rss>