<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>B 드라이브</title>
    <link>https://b-drive.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 3 Jul 2026 18:33:11 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>s.e.s</managingEditor>
    <item>
      <title>웹 개발 공부하기 - 챕터 1(HTML/CSS + JS 기초) #1 일뻔</title>
      <link>https://b-drive.tistory.com/30</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTML&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developer.mozilla.org/ko/docs/Web/HTML&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761287761000&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;HTML: Hypertext Markup Language | MDN&quot; data-og-description=&quot;HTML 소개 웹 개발이 처음이시라면 HTML 기본 문서에서 HTML이란 무엇인지, 그리고 HTML의 사용법을 배워보세요. HTML 자습서 HTML 학습지를 방문하시면 HTML 사용법과 자습서, 완전한 예제를 찾아보실 &quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTML&quot; data-og-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTML&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTML&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTML&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;HTML: Hypertext Markup Language | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;HTML 소개 웹 개발이 처음이시라면 HTML 기본 문서에서 HTML이란 무엇인지, 그리고 HTML의 사용법을 배워보세요. HTML 자습서 HTML 학습지를 방문하시면 HTML 사용법과 자습서, 완전한 예제를 찾아보실&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MDN님님님들이 이런 가이드를 작성해주셨다. 그리고 번역한 한국인님들 정말 감사합니다... 공부 열심히 할게요&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;들어가보면, 먼저 HTML이 뭔지 알려준다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. HTML이란?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HyperText Markup Language. 웹을 이루는 가장 기초적인 구성 요소로 웹 콘텐츠의 의미와 구조를 정의할 때 사용한다. 여기서 말하는 HyperText란 웹 페이지를 다른 페이지로 연결하는 링크를 말한다. 라고 적혀있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;평소에 자주 쓰는 '&lt;b&gt;하이퍼링크&lt;/b&gt;'라는 용어와는 무슨 차이일까? 궁금증이 생겼다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하이퍼텍스트가 좀 더 큰 개념으로 하이퍼링크를 포함한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하이퍼텍스트 안에서 다른 곳으로 이동하기 위해 우리가 &lt;b&gt;실제로 클릭하는 특정 부분&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfXwZe/dJMb9LqsOrp/dnh1vg9IwrEKKNlXOWu230/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfXwZe/dJMb9LqsOrp/dnh1vg9IwrEKKNlXOWu230/img.png&quot; data-alt=&quot;MDN HTML 시작하기 - HTML 요소(Element)의 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfXwZe/dJMb9LqsOrp/dnh1vg9IwrEKKNlXOWu230/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfXwZe%2FdJMb9LqsOrp%2Fdnh1vg9IwrEKKNlXOWu230%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;821&quot; height=&quot;255&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;MDN HTML 시작하기 - HTML 요소(Element)의 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;여는 태그(Opening tag): 요소의 이름과 열고 닫는 꺽쇠 괄호로 구성&lt;/li&gt;
&lt;li&gt;닫는 태그(Closing tag): 요소 앞에 슬래시(/)가 있는 걸 빼면 여는 태그와 동일&lt;/li&gt;
&lt;li&gt;내용(Content): 요소의 내용&lt;/li&gt;
&lt;li&gt;요소(Element): 여는 태그, 닫는 태그, 내용을 통틀어 요소(element)라고 한다&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. Block vs Inline&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8xbM7/dJMb9NaKd3S/7FIwsX1sCw5jJ5QlrfGVN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8xbM7/dJMb9NaKd3S/7FIwsX1sCw5jJ5QlrfGVN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8xbM7/dJMb9NaKd3S/7FIwsX1sCw5jJ5QlrfGVN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8xbM7%2FdJMb9NaKd3S%2F7FIwsX1sCw5jJ5QlrfGVN0%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;954&quot; height=&quot;556&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;556&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문서에서는 Block-level Elements랑 nline elements를 구구절절 설명하고 있다. 이게 어떻게 입문 문서일까. 나같으면 읽자마자 도망간다;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 간단히 블록은 한 줄을 다 먹는 애고 인라인은 블록 안에서 자기 크기만큼 먹는 애다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니 한 줄 다먹는 블록이 인라인 안에 들어갈 순 없다. 반대는 당연히 가능하지만!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 빈 요소(Empty elements)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 엘리먼트가 여는 태그, 내용, 닫는 태그 패턴을 따르지는 않는다. 주로 문서에 무언가를 첨부하기 위해 Single tag를 사용하는 엘리먼트도 있다. 이미지를 삽입하는 &amp;lt;img&amp;gt; 엘리먼트가 그 예시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. 속성(Attributes)&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M9qP0/dJMb9Mpm6zn/iyl1fkKOkQxnntKuKIfia1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M9qP0/dJMb9Mpm6zn/iyl1fkKOkQxnntKuKIfia1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M9qP0/dJMb9Mpm6zn/iyl1fkKOkQxnntKuKIfia1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM9qP0%2FdJMb9Mpm6zn%2Fiyl1fkKOkQxnntKuKIfia1%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;1280&quot; height=&quot;155&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엘리먼트는 속성을 가질 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- boolean attributes&lt;/p&gt;
&lt;pre id=&quot;code_1761291445754&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; disabled=&quot;disabled&quot;&amp;gt;
&amp;lt;input type=&quot;text&quot; disabled /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;여기까지 하다가 진짜 너무 지루하고 못해먹겠어서 바로 프로젝트 기반으로 변경....&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로바로 독서기록장 웹서비스를 만들어보겠습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Web</category>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/30</guid>
      <comments>https://b-drive.tistory.com/30#entry30comment</comments>
      <pubDate>Mon, 27 Oct 2025 16:40:56 +0900</pubDate>
    </item>
    <item>
      <title>웹 개발 공부하기 개요</title>
      <link>https://b-drive.tistory.com/29</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;iOS 위주로 개발 공부를 하다가 막상 실무는 Flutter로만 하다보니 점점 네이티브 개발에 대한 기억도 사라져 간다.&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;푸릇푸릇한 대학시절의 나... 공부하겠다고 TIL 레포지토리까지 파놓았다.. 아주 기특해 죽겠다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/ddeonseo/TIL.git&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/ddeonseo/TIL.git&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1761287626990&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - ddeonseo/TIL&quot; data-og-description=&quot;Contribute to ddeonseo/TIL development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/ddeonseo/TIL.git&quot; data-og-url=&quot;https://github.com/ddeonseo/TIL&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gmdT0/hyZL2j5b9c/ROvPv3Zi3TNOKXeK9cmcxk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/ddeonseo/TIL.git&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/ddeonseo/TIL.git&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gmdT0/hyZL2j5b9c/ROvPv3Zi3TNOKXeK9cmcxk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - ddeonseo/TIL&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Contribute to ddeonseo/TIL development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대충 보니까 자동화 해둬서 push하면 README가 업데이트되어서 목차를 예쁘게 정리되는 듯&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 커밋이 2024년 10월인거 보면 10월이 공부하고 싶은 달인가? ㅎㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기다는 좀 정제되지 않은 아무 말 대잔치의 공부 기록을 남기고 알짜만 정제해서 마크다운으로 바꿔서 푸시해야겠다.. 그래야 어디 보여주기 안 쪽팔릴 것 같애&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금은 10월 목표를 세우기는 늦었으니 오늘부터 시작해서 11월말까지의 목표를 세워야겠다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로바로...&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4주안에 리액트 찍먹해보기~~~~~~!!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;듣기로는 플러터랑 리액트가 유사해서 공부하기 편하다는데... 뭐 해봐야 알 것 같다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이딴 걸 개요라고 할 수 있을 진 모르겠는데 나름대로 계획을 세워보자면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;HTML/CSS + JS 기초 (사실 이건 쫌 날먹이긴해)&lt;/li&gt;
&lt;li&gt;모던 JS, React 입문&lt;/li&gt;
&lt;li&gt;React 핵심&lt;/li&gt;
&lt;li&gt;구현(뭐 만들지 아직 안정햇슴)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게다... LLM들이 짜줌!! 성능좋다잉&lt;/p&gt;</description>
      <category>Web</category>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/29</guid>
      <comments>https://b-drive.tistory.com/29#entry29comment</comments>
      <pubDate>Fri, 24 Oct 2025 15:34:18 +0900</pubDate>
    </item>
    <item>
      <title>코어키퍼(Core Keeper) 24시간 서버 만들기 (모드 적용 및 월드 백업 포함)</title>
      <link>https://b-drive.tistory.com/28</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;작년 얼리액세스 당시에 열심히 하다가 컨텐츠 다 깨고 접은 뒤에 정식 출시된 게임 코어키퍼&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;2160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TE9dP/btsQ1XTfJpG/v3qLjLf8KzWrBKzHHcuPF0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TE9dP/btsQ1XTfJpG/v3qLjLf8KzWrBKzHHcuPF0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TE9dP/btsQ1XTfJpG/v3qLjLf8KzWrBKzHHcuPF0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTE9dP%2FbtsQ1XTfJpG%2Fv3qLjLf8KzWrBKzHHcuPF0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;2160&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;2160&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최대 8인 멀티까지 가능하고 스타듀밸리 + 마크를 섞은 게임이라 중독성 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;멀티를 할 때 한 사람이 서버를 만들면 거기에 들어오는 방식인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 서버장이 계속 서버를 열어두고 있어야 서버에 들어갈 수 있어서 다소 귀찮다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이에 상설 서버를 GCP 같은 걸로 만들어둘 순 없을까 검색하다가 좋은 글을 발견했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;page-title&quot; style=&quot;background-color: #ffffff; color: #3d4144; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://salmon99.github.io/gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_1/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[GCP] GCP로 Core Keeper 24시간 Dedicated Server 열기 -1-&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1759647560614&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GCP] GCP로 Core Keeper 24시간 Dedicated Server 열기 -1-&quot; data-og-description=&quot;1편 - GCP에서 VM 인스턴스 만들기 가이드라인&quot; data-og-host=&quot;salmon99.github.io&quot; data-og-source-url=&quot;https://salmon99.github.io/gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_1/&quot; data-og-url=&quot;https://salmon99.github.io//gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_1/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b0zgT4/hyZKzu0o9k/azcNXNgJSsMHKBQd5YZkm0/img.png?width=1750&amp;amp;height=642&amp;amp;face=0_0_1750_642,https://scrap.kakaocdn.net/dn/zsANK/hyZJ5mRASE/0jA6SMEI0uU4Lr90xJH6iK/img.png?width=1028&amp;amp;height=714&amp;amp;face=0_0_1028_714,https://scrap.kakaocdn.net/dn/bvBWef/hyZJ8DQ69Z/nC6wutUv3aO3C4bCV5lHnk/img.png?width=592&amp;amp;height=642&amp;amp;face=0_0_592_642&quot;&gt;&lt;a href=&quot;https://salmon99.github.io/gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_1/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://salmon99.github.io/gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_1/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b0zgT4/hyZKzu0o9k/azcNXNgJSsMHKBQd5YZkm0/img.png?width=1750&amp;amp;height=642&amp;amp;face=0_0_1750_642,https://scrap.kakaocdn.net/dn/zsANK/hyZJ5mRASE/0jA6SMEI0uU4Lr90xJH6iK/img.png?width=1028&amp;amp;height=714&amp;amp;face=0_0_1028_714,https://scrap.kakaocdn.net/dn/bvBWef/hyZJ8DQ69Z/nC6wutUv3aO3C4bCV5lHnk/img.png?width=592&amp;amp;height=642&amp;amp;face=0_0_592_642');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[GCP] GCP로 Core Keeper 24시간 Dedicated Server 열기 -1-&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;1편 - GCP에서 VM 인스턴스 만들기 가이드라인&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;salmon99.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1편은 말 그대로 GCP에서 VM 인스턴스를 만드는 과정이라서 그대로 따라하면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;page-title&quot; style=&quot;background-color: #ffffff; color: #3d4144; text-align: start;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;a href=&quot;https://salmon99.github.io/gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_2/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[GCP] GCP로 Core Keeper 24시간 Dedicated Server 열기 -2-&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1759647625847&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[GCP] GCP로 Core Keeper 24시간 Dedicated Server 열기 -2-&quot; data-og-description=&quot;2편 - Ubuntu에서 Docker를 설치하고 이미지로 컨테이너 실행하는 가이드라인&quot; data-og-host=&quot;salmon99.github.io&quot; data-og-source-url=&quot;https://salmon99.github.io/gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_2/&quot; data-og-url=&quot;https://salmon99.github.io//gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_2/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bDFoGK/hyZKxcT5RF/vdkvXe91dU1BTkQQElqzYK/img.png?width=894&amp;amp;height=605&amp;amp;face=0_0_894_605,https://scrap.kakaocdn.net/dn/b8HhK0/hyZKnVHDmG/hRcIrDYyb4vpYbpQtGVrP1/img.png?width=1274&amp;amp;height=294&amp;amp;face=0_0_1274_294,https://scrap.kakaocdn.net/dn/ednJk7/hyZKtO8aPb/FCNjOrAS3kREzmsfBdWynk/img.png?width=890&amp;amp;height=320&amp;amp;face=0_0_890_320&quot;&gt;&lt;a href=&quot;https://salmon99.github.io/gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_2/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://salmon99.github.io/gcp/%EC%BD%94%EC%96%B4%ED%82%A4%ED%8D%BC_24%EC%8B%9C%EA%B0%84_%EC%84%9C%EB%B2%84_%EC%97%B4%EA%B8%B0_2/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bDFoGK/hyZKxcT5RF/vdkvXe91dU1BTkQQElqzYK/img.png?width=894&amp;amp;height=605&amp;amp;face=0_0_894_605,https://scrap.kakaocdn.net/dn/b8HhK0/hyZKnVHDmG/hRcIrDYyb4vpYbpQtGVrP1/img.png?width=1274&amp;amp;height=294&amp;amp;face=0_0_1274_294,https://scrap.kakaocdn.net/dn/ednJk7/hyZKtO8aPb/FCNjOrAS3kREzmsfBdWynk/img.png?width=890&amp;amp;height=320&amp;amp;face=0_0_890_320');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[GCP] GCP로 Core Keeper 24시간 Dedicated Server 열기 -2-&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;2편 - Ubuntu에서 Docker를 설치하고 이미지로 컨테이너 실행하는 가이드라인&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;salmon99.github.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2편은 도커 컨테이너를 설정하는 부분이다. 마찬가지로 그대로 진행해주면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 기존에 사용하던 맵과 진행사항을 가져오는 부분이나, 모드를 설정하는 부분이 설명되어 있지 않아서 추가로 찾아본 뒤 작성한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;모드 적용법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/escapingnetwork/core-keeper-dedicated&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/escapingnetwork/core-keeper-dedicated&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1759647765538&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - escapingnetwork/core-keeper-dedicated: Dockerfile for automated build of a Core Keeper Dedicated Server&quot; data-og-description=&quot;Dockerfile for automated build of a Core Keeper Dedicated Server - escapingnetwork/core-keeper-dedicated&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/escapingnetwork/core-keeper-dedicated&quot; data-og-url=&quot;https://github.com/escapingnetwork/core-keeper-dedicated&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/43xk8/hyZJ666nf4/ExZLH15taT4KREEPNqivm1/img.png?width=1280&amp;amp;height=629&amp;amp;face=0_0_1280_629,https://scrap.kakaocdn.net/dn/fPDqd/hyZKofYGkj/KFaYgYm0YPAX06YDToNJDk/img.png?width=1280&amp;amp;height=629&amp;amp;face=0_0_1280_629&quot;&gt;&lt;a href=&quot;https://github.com/escapingnetwork/core-keeper-dedicated&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/escapingnetwork/core-keeper-dedicated&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/43xk8/hyZJ666nf4/ExZLH15taT4KREEPNqivm1/img.png?width=1280&amp;amp;height=629&amp;amp;face=0_0_1280_629,https://scrap.kakaocdn.net/dn/fPDqd/hyZKofYGkj/KFaYgYm0YPAX06YDToNJDk/img.png?width=1280&amp;amp;height=629&amp;amp;face=0_0_1280_629');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - escapingnetwork/core-keeper-dedicated: Dockerfile for automated build of a Core Keeper Dedicated Server&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Dockerfile for automated build of a Core Keeper Dedicated Server - escapingnetwork/core-keeper-dedicated&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 레포의 README를 읽으면 쉽게 적용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;난 그것도 모르고 직접 server files에 들어가서 모드 폴더를 하나하나 만들고, 압축 풀고, 귀찮은 짓을 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 그렇게 해도 모드 하나만 달라도 서버 참가할 때 버전이 달라서 못 들어가는 참사가 생기기 때문에 그냥 얌전히 리드미 대로 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. API key 발급 받기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인게임 메뉴에서 모드를 적용할 때 mod.io 계정을 만들었을 것이다 (나는 스팀 계정으로 연동함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mod.io/g&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mod.io/g&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1759648117898&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Cross Platform Mod Support for Games&quot; data-og-description=&quot;Support mods on PC, console and mobile with mod.io, a platform which makes it easy to grow, manage and integrate UGC in-game, using our API, SDK and plugins for Unity, Unreal Engine and more.&quot; data-og-host=&quot;mod.io&quot; data-og-source-url=&quot;https://mod.io/g&quot; data-og-url=&quot;https://mod.io&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ohTBB/hyZKuN0ThP/ZJiiw3tHvfwhyKJJRpJ2Jk/img.jpg?width=1300&amp;amp;height=731&amp;amp;face=0_0_1300_731,https://scrap.kakaocdn.net/dn/bTDhAS/hyZKaBD9a6/vFNkbKHW6saFTaKXB5hecK/img.jpg?width=1300&amp;amp;height=731&amp;amp;face=0_0_1300_731&quot;&gt;&lt;a href=&quot;https://mod.io/g&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mod.io/g&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ohTBB/hyZKuN0ThP/ZJiiw3tHvfwhyKJJRpJ2Jk/img.jpg?width=1300&amp;amp;height=731&amp;amp;face=0_0_1300_731,https://scrap.kakaocdn.net/dn/bTDhAS/hyZKaBD9a6/vFNkbKHW6saFTaKXB5hecK/img.jpg?width=1300&amp;amp;height=731&amp;amp;face=0_0_1300_731');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Cross Platform Mod Support for Games&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Support mods on PC, console and mobile with mod.io, a platform which makes it easy to grow, manage and integrate UGC in-game, using our API, SDK and plugins for Unity, Unreal Engine and more.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mod.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mod.io에 들어가서 로그인 한 다음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;904&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F9O11/btsQ3mEz4nn/q0qAbJnv7OqE8deZgI7DG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F9O11/btsQ3mEz4nn/q0qAbJnv7OqE8deZgI7DG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F9O11/btsQ3mEz4nn/q0qAbJnv7OqE8deZgI7DG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF9O11%2FbtsQ3mEz4nn%2Fq0qAbJnv7OqE8deZgI7DG1%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;352&quot; height=&quot;904&quot; data-origin-width=&quot;352&quot; data-origin-height=&quot;904&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화살표로 가리킨 프로필을 클릭하면 API Access 메뉴가 보인다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API Access로 이동하자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mod.io/me/access&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mod.io/me/access&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1759648496579&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Cross Platform Mod Support for Games&quot; data-og-description=&quot;Support mods on PC, console and mobile with mod.io, a platform which makes it easy to grow, manage and integrate UGC in-game, using our API, SDK and plugins for Unity, Unreal Engine and more.&quot; data-og-host=&quot;mod.io&quot; data-og-source-url=&quot;https://mod.io/me/access&quot; data-og-url=&quot;https://mod.io&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/deTU14/hyZJ5tBBsB/Mrvy2m8ALJLezVUv76Kmk1/img.jpg?width=1300&amp;amp;height=731&amp;amp;face=0_0_1300_731,https://scrap.kakaocdn.net/dn/dyWOcO/hyZKtVTYj4/39yMqF2gGkjJsRJ4FW3cNk/img.jpg?width=1300&amp;amp;height=731&amp;amp;face=0_0_1300_731&quot;&gt;&lt;a href=&quot;https://mod.io/me/access&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mod.io/me/access&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/deTU14/hyZJ5tBBsB/Mrvy2m8ALJLezVUv76Kmk1/img.jpg?width=1300&amp;amp;height=731&amp;amp;face=0_0_1300_731,https://scrap.kakaocdn.net/dn/dyWOcO/hyZKtVTYj4/39yMqF2gGkjJsRJ4FW3cNk/img.jpg?width=1300&amp;amp;height=731&amp;amp;face=0_0_1300_731');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Cross Platform Mod Support for Games&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Support mods on PC, console and mobile with mod.io, a platform which makes it easy to grow, manage and integrate UGC in-game, using our API, SDK and plugins for Unity, Unreal Engine and more.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mod.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 직접 접근도 가능하다&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;페이지에 들어가보면 API Access 설정 화면이 나온다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;377&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SgSFd/btsQ3cB5Tyj/vM5PHXKUbLPI0yGyKeKDcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SgSFd/btsQ3cB5Tyj/vM5PHXKUbLPI0yGyKeKDcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SgSFd/btsQ3cB5Tyj/vM5PHXKUbLPI0yGyKeKDcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSgSFd%2FbtsQ3cB5Tyj%2FvM5PHXKUbLPI0yGyKeKDcK%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;1602&quot; height=&quot;377&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;377&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 키를 발급 받은 상태라 이렇게 나온다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키가 없으면 API Key를 받을 수 있는 request 버튼이 나올텐데 눌러서 받아주자&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;request 보내면 바로 key와 path를 알 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;key&lt;/b&gt;는 오른쪽 눈 모양 아이콘을 누르면 보이니 복사하면 되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;path&lt;/b&gt;는 API path:의 오른쪽에 나온다 (예시: https://u-*.modapi.io/v1)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 가지 값을 복사해두면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. .env 파일 수정&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.env 파일 아래에 아래 내용을 추가해주자&lt;/p&gt;
&lt;pre id=&quot;code_1759649215797&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;MODS_ENABLED=true # 모드를 사용할 것인지 여부 (true로 하자)
MODIO_API_KEY=your_api_key # 아까 복사해둔 key 붙여넣기
MODIO_API_URL=your_api_url # 아까 복사해둔 path 붙여넣기
MODS=mod1,mod2,mod3 # 아래에 추가 설명&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 yml 파일에 추가해주면 되는데 MODS는 추가할 모드의 이름을 넣어주면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가할 모드의 이름을 아는 방법은 다음과 같다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Better Text Input&lt;/b&gt; 모드를 추가하려 한다고 가정하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mod.io 사이트에서 해당 모드를 검색한 뒤 페이지에 들어가보면 상단에 &lt;b&gt;링크&lt;/b&gt;가 보인다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mod.io/g/corekeeper/m/better-text-input#description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mod.io/g/corekeeper/m/better-text-input#description&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리는 여기서 m/ 다음의 글자에 집중하면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;better-text-input&lt;/b&gt;이 우리가 적용할 모드의 이름인 것이다 (#description 같은 건 무시해도 됨)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 잡몹 체력바도 보여주는 &lt;b&gt;Enemy Health Bars&lt;/b&gt; 모드는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mod.io/g/corekeeper/m/healthbars#description&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mod.io/g/corekeeper/m/healthbars&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;healthbars&lt;/b&gt;가 모드의 이름인 거다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 이 두 개의 모드를 적용하고 싶으면&lt;/p&gt;
&lt;pre id=&quot;code_1759649633117&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;MODS=core-lib,healthbars,better-text-input&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 적용해주면 된다. (core-lib는 모드를 적용할 때 꼭 필요한 선행 모드라서 임의로 집어넣었다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2개가 아니라 3개 4개의 모드를 적용하는 것도 마찬가지다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;링크에서 이름을 알아낸 뒤 뒤에 적어주면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버전도 지정해줄 수 있는데 그건 &lt;a href=&quot;https://github.com/escapingnetwork/core-keeper-dedicated&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github&lt;/a&gt;에 들어가서 알아서 읽어서 합시다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1759650616495&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SERVER_PORT=27015

MODS_ENABLED=true
MODIO_API_KEY=your_key
MODIO_API_URL=your_url
MODS=healthbars,corelibrewiredextension,coreliblocalization,corelibcommands,better-text-input,core-lib&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 작성해주면(내 로컬 환경과 정확히 맞추기 위해 MODS를 수정함), 도커 container가 시작할 때 모드들이 최신 버전으로 업데이트해서 적용된다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;는데 &lt;b&gt;나는 여기서 문제가 생겼다!!!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;3. &lt;/span&gt;override.env 파일 생성&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분명 모드 관련 내용을 적어뒀는데 컨테이너를 실행시키면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;MODS_ENABLED=false&lt;/b&gt;라고 읽어버려서 모드 설치를 생략하고 서버를 열어버리니까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 모드를 적용한 내 컴퓨터와 환경이 안 맞아서 게임에 참가가 안 됐다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직도 원인은 모르겠는데, 일단 해결법은 찾았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;docker-compose.yml, .env, server-data 등이 있는 디렉토리에 &lt;b&gt;override.env&lt;/b&gt;를 생성해준다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1759650732875&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vim override.env&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음&lt;/p&gt;
&lt;pre id=&quot;code_1759650756746&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;MODS_ENABLED=true
MODIO_API_KEY=your_key
MODIO_API_URL=your_api
MODS=healthbars,corelibrewiredextension,coreliblocalization,corelibcommands,better-text-input,core-lib&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까 .env에 추가했던 내용을 작성해주었다.&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;SERVER_PORT를 생략한 이유는.. 새벽에 오류를 해결 하다가 없어도 될 것 같아서 빼버렸다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자세하게는 기억 안 나는데 어차피 게임 ID로 접속할 거라 저 특정 포트가 필요 없어서? 였던 것 같다&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;README의 Network Mode를 정독해보고 알아서 판단해서 넣을지 말지 결정하면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 한 뒤&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1759650939240&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo docker compose down &amp;amp;&amp;amp; sudo docker compose up -d&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버를 재실행하고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1759650961414&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo docker logs -f core-keeper-dedicated&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그를 확인해보니 드디어 모드를 설치하는 로그가 떴다!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1759650997200&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Installing mods...
...
Installed CoreLib (core-lib) 3.4.1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 아래 명령어로 GameID를 확인하고 접속하면 원만히 잘 실행된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모드 설치는 됐는데 버전이 안 맞는다고 접속이 안되면 서버에 적용한 모드랑 내 PC에 적용한 모드가 완벽히 일치하는지 확인해보자&lt;/p&gt;
&lt;pre id=&quot;code_1759651031499&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo docker exec -it core-keeper-dedicated cat /home/steam/core-keeper-dedicated/GameID.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;맵 진행사항 적용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모드도 적용했으니 이제 맵 진행 사항을 옮겨보자. 맵 진행을 옮기는 건 간단하다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 새로 만든 서버의 월드 파일 삭제&lt;/h4&gt;
&lt;pre id=&quot;code_1759651138537&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo rm /root/server-data/worlds/*&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;충돌이 생길 수도 있으니 새로 만든 서버의 worlds 정보를 지운다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 기존 월드 파일 복사&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 PC -&amp;gt; 코어키퍼 설치한 드라이브 -&amp;gt; 사용자 -&amp;gt; 내 프로필에 들어간 다음 AppData에 들어간다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(AppData가 안 보이면 숨김 폴더 보기 설정을 키면 된다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그 다음 LocalLow\Pugstorm\Core Keeper\Steam\STEAM_ID\worlds로 들어간다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QCIGI/btsQ1XFJKyU/8ZZSQroYfwtjf6NOnfBnAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QCIGI/btsQ1XFJKyU/8ZZSQroYfwtjf6NOnfBnAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QCIGI/btsQ1XFJKyU/8ZZSQroYfwtjf6NOnfBnAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQCIGI%2FbtsQ1XFJKyU%2F8ZZSQroYfwtjf6NOnfBnAK%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;706&quot; height=&quot;303&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;worlds 폴더에는 위와 같이 0.world.gzip, 1.world.gzip 파일들이 쭉 있을 것이다&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;blob&quot; data-origin-width=&quot;1407&quot; data-origin-height=&quot;762&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qAlfG/btsQ2meo6O6/7H0o8q9iYjwmWpnrJKsUR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qAlfG/btsQ2meo6O6/7H0o8q9iYjwmWpnrJKsUR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qAlfG/btsQ2meo6O6/7H0o8q9iYjwmWpnrJKsUR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqAlfG%2FbtsQ2meo6O6%2F7H0o8q9iYjwmWpnrJKsUR0%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;1407&quot; height=&quot;762&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1407&quot; data-origin-height=&quot;762&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;world 앞의 숫자들은 게임 시작을 누르고 서버를 고를 때 나오는 그 순서다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 세계 1을 옮기고 싶으면 0.world.gzip으로 덮어씌우면 되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세계 3을 옮기고 싶으면 2.world.gzip으로 덮어씌우면 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 경우 세계 4를 옮기고 싶어서 3.world.gzip과 3.world.gzip.pugbackup을 옮길 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;backup 파일은 굳이 옮겨야 하나 싶긴 한데 혹시 몰라서 같이 복사해서 백업 폴더에 옮겨두었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 파일 업로드&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/root/server-data/worlds/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 경로로 아까 복사해둔 두 파일을 옮겨주자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(SSH에 파일을 업로드하고 옮기는 과정은 이 글에서 설명하면 너무 복잡해지니 생략한다)&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;그 다음 ls로 worlds 폴더에 저장된 world를 보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.world.gzip과 3.world.gzip.pugbackup이 있을 것이다.&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;각각 0.world.gzip, 0.world.gzip.pugbackup으로 이름을 변경해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다시 도커 컨테이너를 실행해주면 기존에 사용하던 월드의 정보가 그대로 적용될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지도가 적용되지 않았을 경우 지도 테이블을 한 번씩 봐주면 해결된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://steamcommunity.com/app/1621690/discussions/0/4754200750489016394/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://steamcommunity.com/app/1621690/discussions/0/4754200750489016394/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1759652798557&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Guide for Transferring Worlds :: Core Keeper General Discussions&quot; data-og-description=&quot;How to transfer hosting of a Core Keeper world from one PC to another. I use Windows but hopefully some of this will translate well to other OS users. You can copy the files across from one PC to another but be mindful that the corresponding number on the &quot; data-og-host=&quot;steamcommunity.com&quot; data-og-source-url=&quot;https://steamcommunity.com/app/1621690/discussions/0/4754200750489016394/&quot; data-og-url=&quot;https://steamcommunity.com/app/1621690/discussions/0/4754200750489016394/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kicMd/hyZKzBOGC3/CAyHVMdB6xuph6RtFNCF3k/img.jpg?width=460&amp;amp;height=215&amp;amp;face=0_0_460_215,https://scrap.kakaocdn.net/dn/bDIeon/hyZKrqgq2h/w27ijp6qyBJZ2ut8JZev7K/img.jpg?width=460&amp;amp;height=215&amp;amp;face=0_0_460_215&quot;&gt;&lt;a href=&quot;https://steamcommunity.com/app/1621690/discussions/0/4754200750489016394/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://steamcommunity.com/app/1621690/discussions/0/4754200750489016394/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kicMd/hyZKzBOGC3/CAyHVMdB6xuph6RtFNCF3k/img.jpg?width=460&amp;amp;height=215&amp;amp;face=0_0_460_215,https://scrap.kakaocdn.net/dn/bDIeon/hyZKrqgq2h/w27ijp6qyBJZ2ut8JZev7K/img.jpg?width=460&amp;amp;height=215&amp;amp;face=0_0_460_215');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Guide for Transferring Worlds :: Core Keeper General Discussions&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;How to transfer hosting of a Core Keeper world from one PC to another. I use Windows but hopefully some of this will translate well to other OS users. You can copy the files across from one PC to another but be mindful that the corresponding number on the&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;steamcommunity.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 게시글을 참고했는데, worldgenparams, worldinfos, worlds를 다 복사할 필요는 없고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단히 worlds의 (번호).world.gzip만 옮겨주면 내 월드를 잘 옮겨줄 수 있다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GCP로 Dedicated Server를 여는 데 도움을 주신 남현정님과 도커 파일을 배포해주신 분들께 감사드립니다.&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;</description>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/28</guid>
      <comments>https://b-drive.tistory.com/28#entry28comment</comments>
      <pubDate>Sun, 5 Oct 2025 17:31:03 +0900</pubDate>
    </item>
    <item>
      <title>Commit Convention 커밋 컨벤션</title>
      <link>https://b-drive.tistory.com/27</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #37352f; text-align: start;&quot;&gt;
&lt;h1 style=&quot;text-align: var(--header-title-align);&quot;&gt;&amp;nbsp;&lt;/h1&gt;
&lt;/div&gt;
&lt;h3 id=&quot;block-4adc5c10c6dc449bb3e0cbd6c21ea597&quot; data-ke-size=&quot;size23&quot;&gt;커밋 메시지 형식&lt;/h3&gt;
&lt;div id=&quot;block-c56ce3e3de084b088c6e8369ec6d394f&quot;&gt;
&lt;pre class=&quot;bash&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;&amp;lt;type&amp;gt;(&amp;lt;scope&amp;gt;): &amp;lt;subject&amp;gt;
&amp;lt;BLANK LINE&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;BLANK LINE&amp;gt;
&amp;lt;footer&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 id=&quot;block-a163f6ff23a74fd89ce709ed5a268aa1&quot; data-ke-size=&quot;size23&quot;&gt;type&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;block-315cbe2950be4cfd90a15cf25671a1cb&quot;&gt;feat (feature)&lt;/li&gt;
&lt;li id=&quot;block-552e7fe6435649e2a2940c98dcf3ef74&quot;&gt;fix (bug fix)&lt;/li&gt;
&lt;li id=&quot;block-9f3b717e168f480e8e23c1eb1201d211&quot;&gt;docs (documentation)&lt;/li&gt;
&lt;li id=&quot;block-7a1dc0a3ac5147749175559ed4f598d8&quot;&gt;style (formatting, missing semi colons, &amp;hellip;)&lt;/li&gt;
&lt;li id=&quot;block-3f5b49ea3497419f9d0cd9d6575c60ae&quot;&gt;refactor&lt;/li&gt;
&lt;li id=&quot;block-1751eaaa10b14b5cbdc931b0d0634274&quot;&gt;test (when adding missing tests)&lt;/li&gt;
&lt;li id=&quot;block-faddd935f38944acbb8b03fe72abffdb&quot;&gt;chore (maintain)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;block-7e0caf008d794b5a87b7c5a8c59f4125&quot; data-ke-size=&quot;size23&quot;&gt;scope&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li id=&quot;block-0572cbd3b4d54be9be80625ed56997f2&quot;&gt;어디가 변경되었는지&lt;/li&gt;
&lt;li id=&quot;block-27f1b4a037fe4cf185e9e6ae60c08040&quot;&gt;생략 가능&lt;/li&gt;
&lt;li id=&quot;block-6f409b5d49fb46ed8bf83d8def60a461&quot;&gt;$location, $browser, $compile, $rootScope, ngHref, ngClick, ngView&amp;hellip;&lt;/li&gt;
&lt;li id=&quot;block-b4fd3eb573514e7992b4293c5e469406&quot;&gt;함수가 변경되었다면 함수 이름, 메소드가 추가되었다면 해당 클래스 이름 등&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;block-81b8f529daf24e6d9c78bc3fabdbc6df&quot; data-ke-size=&quot;size23&quot;&gt;subject&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li id=&quot;block-307b99b736d44d28a7dcec04f606bdc4&quot;&gt;명령문, 현재 시제&lt;/li&gt;
&lt;li id=&quot;block-a1539e9a966848ee9a8481c5b99f5497&quot;&gt;끝에 마침표 X&lt;/li&gt;
&lt;li id=&quot;block-103bca54edc6484d8436c377912f2f8a&quot;&gt;첫글자 소문자로 쓰기&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;block-7df92297098846418d07bb5f1a0d0b4b&quot; data-ke-size=&quot;size23&quot;&gt;body&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li id=&quot;block-aba06786590b42649e2f678b48552062&quot;&gt;명령문, 현재 시제 권장&lt;/li&gt;
&lt;li id=&quot;block-8051043b66e743548ab71d4a6860c3f8&quot;&gt;변경한 이유, 변경 전과의 차이점 설명&lt;/li&gt;
&lt;li id=&quot;block-c5a621b767f54931afc2cfdf2c47f08a&quot;&gt;무엇을 왜 했는지&lt;/li&gt;
&lt;li id=&quot;block-0d56f2dc93ca41e58c19777ba2fe0058&quot;&gt;생략 가능&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;block-7cd0f6ea13bb4c0fb00a678b2661daaf&quot; data-ke-size=&quot;size23&quot;&gt;footer&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li id=&quot;block-82d167eb688e45c79ed8a173d75d08ae&quot;&gt;주요 변경 내역(breaking changes)&lt;/li&gt;
&lt;li id=&quot;block-d3601d1b20b5452bbf03cdee4e382fb1&quot;&gt;모든 주요 변경 내역이 변경점, 변경 사유, 마이그레이션 지시와 함께 언급&lt;/li&gt;
&lt;li id=&quot;block-86208449cd844401b46e5daefd1ee6a2&quot;&gt;해결된 issue tracker ID 명시 (주로)&lt;/li&gt;
&lt;li id=&quot;block-1b8556ebb77f44a38a258168cb713930&quot;&gt;생략 가능&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;block-0440a862e84342869a27517c6676782a&quot; data-ke-size=&quot;size23&quot;&gt;참고한 자료&lt;/h3&gt;
&lt;div id=&quot;block-7f8ff04f80bb42ebac86c88986ea9d5a&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://gist.github.com/stephenparish/9941e89d80e2bc58a153&quot;&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/a&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gist.github.com/stephenparish/9941e89d80e2bc58a153&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://gist.github.com/stephenparish/9941e89d80e2bc58a153&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716305944089&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Git Commit Message Conventions&quot; data-og-description=&quot;Git Commit Message Conventions. GitHub Gist: instantly share code, notes, and snippets.&quot; data-og-host=&quot;gist.github.com&quot; data-og-source-url=&quot;https://gist.github.com/stephenparish/9941e89d80e2bc58a153&quot; data-og-url=&quot;https://gist.github.com/stephenparish/9941e89d80e2bc58a153&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/1g7aF/hyV9Vm3Job/kuM47TadJar3qjlcm4naBk/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640&quot;&gt;&lt;a href=&quot;https://gist.github.com/stephenparish/9941e89d80e2bc58a153&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gist.github.com/stephenparish/9941e89d80e2bc58a153&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/1g7aF/hyV9Vm3Job/kuM47TadJar3qjlcm4naBk/img.png?width=1280&amp;amp;height=640&amp;amp;face=0_0_1280_640');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Git Commit Message Conventions&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Git Commit Message Conventions. GitHub Gist: instantly share code, notes, and snippets.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gist.github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>기타</category>
      <category>Commit</category>
      <category>Convention</category>
      <category>Git</category>
      <category>github</category>
      <category>커밋 컨벤션</category>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/27</guid>
      <comments>https://b-drive.tistory.com/27#entry27comment</comments>
      <pubDate>Wed, 22 May 2024 00:40:19 +0900</pubDate>
    </item>
    <item>
      <title>Google Material Icons 구글 머터리얼 아이콘 HTML 활용법</title>
      <link>https://b-drive.tistory.com/26</link>
      <description>&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;h3 id=&quot;block-df8be5c5b1be4426b0f44cd71ad6f600&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 구글 머터리얼 아이콘&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://fonts.google.com/icons&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://fonts.google.com/icons&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716286363337&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Material Symbols and Icons - Google Fonts&quot; data-og-description=&quot;Material Symbols are our newest icons consolidating over 2,500 glyphs in a single font file with a wide range of design variants.&quot; data-og-host=&quot;fonts.google.com&quot; data-og-source-url=&quot;https://fonts.google.com/icons&quot; data-og-url=&quot;https://fonts.google.com/icons&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bRgFBQ/hyV9V1DopQ/3eECaKZkA2NkKjZEOgjqm1/img.jpg?width=1136&amp;amp;height=648&amp;amp;face=0_0_1136_648,https://scrap.kakaocdn.net/dn/kcM3H/hyV6fAGDJh/BOnjwacnuXEwXAubLdgn00/img.jpg?width=1136&amp;amp;height=648&amp;amp;face=0_0_1136_648&quot;&gt;&lt;a href=&quot;https://fonts.google.com/icons&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://fonts.google.com/icons&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bRgFBQ/hyV9V1DopQ/3eECaKZkA2NkKjZEOgjqm1/img.jpg?width=1136&amp;amp;height=648&amp;amp;face=0_0_1136_648,https://scrap.kakaocdn.net/dn/kcM3H/hyV6fAGDJh/BOnjwacnuXEwXAubLdgn00/img.jpg?width=1136&amp;amp;height=648&amp;amp;face=0_0_1136_648');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Material Symbols and Icons - Google Fonts&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Material Symbols are our newest icons consolidating over 2,500 glyphs in a single font file with a wide range of design variants.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;fonts.google.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;block-c60d29acd3674869a54f4b56e496fe7b&quot; style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;h3 id=&quot;block-503d856565d148f380ca711cbc4084fe&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. 적용법&lt;/h3&gt;
&lt;div id=&quot;block-b5e8313e89544001ac8b2d048efd7ee7&quot; style=&quot;ctext-align: start;&quot;&gt;
&lt;pre id=&quot;code_1716286381298&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;link href=&quot;https://fonts.googleapis.com/icon?family=Material+Icons&quot; rel=&quot;stylesheet&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&quot;block-b381d72279c44721afd94b024cb22270&quot; style=&quot;#ffffff; text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1716286398235&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- ligatures 예시 --&amp;gt;
&amp;lt;span class=&quot;material-icons&quot;&amp;gt;face&amp;lt;/span&amp;gt;

&amp;lt;!-- numeric character 예시 --&amp;gt;
&amp;lt;span class=&quot;material-icons&quot;&amp;gt;&amp;amp;#xE87C;&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ol style=&quot;list-style-type: decimal; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li id=&quot;block-3fc536af491f405c80747d0a93014f0f&quot;&gt;ligatures(합자)라고 불리는 typographic 기능을 사용한 예시&lt;/li&gt;
&lt;li id=&quot;block-e35e7f42b41f4b199e335cbe63e9a97e&quot;&gt;텍스트 이름만 사용해서 아이콘을 렌더링함&lt;/li&gt;
&lt;li id=&quot;block-1a372c6cddea42b5a56fc9c4f53ca487&quot;&gt;대체 작업(텍스트 &amp;rarr; 아이콘)은 웹 브라우저에 의해 자동으로 수행&lt;/li&gt;
&lt;li id=&quot;block-6a69fb280a8040258ed32aa5ad56cf36&quot;&gt;데스크탑, 모바일 기기, 대부분의 최신 브라우저에서 지원됨&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;block-f19a261cf03742eb89017c0714c0efbc&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3. 아이콘 스타일 지정&lt;/h3&gt;
&lt;div id=&quot;block-a04796269f7543f2a5eab553fc04c74e&quot; style=&quot;text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1716286426965&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* 아이콘 사이즈 조정 */
.material-icons.md-18 { font-size: 18px; }
.material-icons.md-24 { font-size: 24px; }

/* 밝은 배경에 검정색 아이콘 */
.material-icons.md-dark { color: rgba(0, 0, 0, 0.54); }
.material-icons.md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }

/* 어두운 배경에 흰색 아이콘 */
.material-icons.md-light { color: rgba(255, 255, 255, 1); }
.material-icons.md-light.md-inactive { color: rgba(255, 255, 255, 0.3); }&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h3 id=&quot;block-b09fbd08b40c416dad8cb3beaebce365&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4. Sizing&lt;/h3&gt;
&lt;div id=&quot;block-503599f5e99d44789c08b014a59192c0&quot; style=&quot;text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1716286432784&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* 아이콘 사이즈 조정 */
.material-icons.md-18 { font-size: 18px; }
.material-icons.md-24 { font-size: 24px; }

/* 밝은 배경에 검정색 아이콘 */
.material-icons.md-dark { color: rgba(0, 0, 0, 0.54); }
.material-icons.md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }

/* 어두운 배경에 흰색 아이콘 */
.material-icons.md-light { color: rgba(255, 255, 255, 1); }
.material-icons.md-light.md-inactive { color: rgba(255, 255, 255, 0.3); }&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ol style=&quot;list-style-type: decimal; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li id=&quot;block-37d6f853e1504c349d12dc744f3e7d87&quot;&gt;아이콘 크기는 자유롭게 조정 가능&lt;/li&gt;
&lt;li id=&quot;block-c72a855c21814023b82e4790b6226c92&quot;&gt;material design icons 가이드라인에 따르면 18, 24, 36, 48px 권장&lt;/li&gt;
&lt;li id=&quot;block-2ba58b6006834caba0b5d7bf8f083c2a&quot;&gt;default는 24px&lt;/li&gt;
&lt;/ol&gt;
&lt;div id=&quot;block-44355f97db384b0fba2bac57dbae9980&quot; style=&quot;text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7qyRV/btsHxK1yFFF/mfhNkeh8gSE90xzuMvCH1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7qyRV/btsHxK1yFFF/mfhNkeh8gSE90xzuMvCH1K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7qyRV/btsHxK1yFFF/mfhNkeh8gSE90xzuMvCH1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7qyRV%2FbtsHxK1yFFF%2FmfhNkeh8gSE90xzuMvCH1K%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;1065&quot; height=&quot;768&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;h3 id=&quot;block-94c893662c5b46d6b5608e628501a595&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5. Coloring&lt;/h3&gt;
&lt;div id=&quot;block-04326ac6b0394eaabb840c80d3ab370a&quot; style=&quot;text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1716286448501&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.material-icons.md-dark { color: rgba(0, 0, 0, 0.54); }
.material-icons.md-dark.md-inactive { color: rgba(0, 0, 0, 0.26); }

.material-icons.md-light { color: rgba(255, 255, 255, 1); }
.material-icons.md-light.md-inactive { color: rgba(255, 255, 255, 0.3); }&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;ol style=&quot;list-style-type: decimal; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li id=&quot;block-348fe08f90f74d92ae723053c884c39f&quot;&gt;active icon&lt;/li&gt;
&lt;li id=&quot;block-883fabbdd9a8426f94321729617e9fd8&quot;&gt;disabled/inactive icon&lt;/li&gt;
&lt;li id=&quot;block-3cd8846dd37a4d169b61e37ab7e58f84&quot;&gt;예시&lt;/li&gt;
&lt;li id=&quot;block-2c44be149c10421cae78af50f06aa8b1&quot;&gt;색상 지정&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;block-2281b01532e3424f88e1740d9d65a2b5&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;6. 활용 예시&lt;/h3&gt;
&lt;div id=&quot;block-ed5fca4d8e6b483b8cbbff631f477c6f&quot; style=&quot;text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;637&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k2UKx/btsHxhetG8w/R1k3AoBtw0qy0aJ20cB7e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k2UKx/btsHxhetG8w/R1k3AoBtw0qy0aJ20cB7e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k2UKx/btsHxhetG8w/R1k3AoBtw0qy0aJ20cB7e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk2UKx%2FbtsHxhetG8w%2FR1k3AoBtw0qy0aJ20cB7e1%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;1280&quot; height=&quot;637&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;637&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p id=&quot;block-c70b71a1a917446db1d08d2d72f51c52&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;line 6, 12 참조&lt;/p&gt;
&lt;div id=&quot;block-9b3e7815f95645578e0b0cf0d29b4068&quot; style=&quot;text-align: start;&quot;&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;801&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/L49iT/btsHw3U55Cm/qpii26IoeSae3YctOl6WKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L49iT/btsHw3U55Cm/qpii26IoeSae3YctOl6WKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L49iT/btsHw3U55Cm/qpii26IoeSae3YctOl6WKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL49iT%2FbtsHw3U55Cm%2Fqpii26IoeSae3YctOl6WKk%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;1280&quot; height=&quot;801&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;801&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p id=&quot;block-c697a89b678a4175b5e8e965e1f4e41d&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;내가 작성한 코드를 발췌한 것이지만, 이 경우 credit_card 뿐만 아니라 모든 material-icons가 조정된다.&lt;/p&gt;
&lt;p id=&quot;block-f1dffe31db184df8af26a91968aa52d6&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;추후 이 페이지에 다른 icon이 추가될 수 있으니 좋은 예시는 아니다.&lt;/p&gt;
&lt;p id=&quot;block-9376e687882f4973bcf2d6784afc26d1&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;따라서,&lt;/p&gt;
&lt;div id=&quot;block-d1a407d18cf3467a8c75b80727670109&quot; style=&quot;text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1716286478666&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;span class=&quot;material-icons credit&quot;&amp;gt;credit_card&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div id=&quot;block-d7a83b04a3e44446890327f2cd1c1f13&quot; style=&quot;text-align: start;&quot;&gt;
&lt;pre id=&quot;code_1716286504232&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.credit {
 /* 조정할 요소 */
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p id=&quot;block-6a23f79017084c85afdab8c5a331433a&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 수정하면 credit_card만 조정된다!&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;+) 다른 사용법&lt;/p&gt;
&lt;pre id=&quot;code_1716374999654&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;i class=&quot;material-icons&quot;&amp;gt;mic&amp;lt;/i&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;i 태그도 사용 가능하다&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;i&amp;gt; 태그는 원래 이탤릭체를 표시하는 태그인데, 최근에는 아이콘 폰트 라이브러리와 함께 아이콘을 표시하는 데 자주 사용된다고 한다&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Material Icons나 Font Awesome과 같은 아이콘 폰트 라이브러리에서는 `&amp;lt;i&amp;gt;` 태그 안에 아이콘의 이름을 지정하여 아이콘을 삽입할 수 있다&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;block-3e15e4ffeaab462ebd9ee129f1c663bf&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;7. 정리 출처&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developers.google.com/fonts/docs/material_icons?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developers.google.com/fonts/docs/material_icons?hl=ko&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716286525091&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;머티리얼 아이콘 가이드 &amp;nbsp;|&amp;nbsp; Google Fonts &amp;nbsp;|&amp;nbsp; Google for Developers&quot; data-og-description=&quot;이 페이지는 Cloud Translation API를 통해 번역되었습니다. 머티리얼 아이콘 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 머티리얼 아이콘의 개요 - 아&quot; data-og-host=&quot;developers.google.com&quot; data-og-source-url=&quot;https://developers.google.com/fonts/docs/material_icons?hl=ko&quot; data-og-url=&quot;https://developers.google.com/fonts/docs/material_icons?hl=ko&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bsRPaf/hyV9UVWz8V/dstN2hjG8HWFIfuAZvzPk1/img.png?width=1200&amp;amp;height=675&amp;amp;face=0_0_1200_675,https://scrap.kakaocdn.net/dn/bo1hZP/hyV9YKONXx/9BErQlgg3jjoW1vGAKyksK/img.png?width=2080&amp;amp;height=1000&amp;amp;face=0_0_2080_1000,https://scrap.kakaocdn.net/dn/mUvVu/hyV55LFg3M/kAVW2S8dZkQLUbLVnsudUK/img.png?width=846&amp;amp;height=682&amp;amp;face=0_0_846_682&quot;&gt;&lt;a href=&quot;https://developers.google.com/fonts/docs/material_icons?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developers.google.com/fonts/docs/material_icons?hl=ko&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bsRPaf/hyV9UVWz8V/dstN2hjG8HWFIfuAZvzPk1/img.png?width=1200&amp;amp;height=675&amp;amp;face=0_0_1200_675,https://scrap.kakaocdn.net/dn/bo1hZP/hyV9YKONXx/9BErQlgg3jjoW1vGAKyksK/img.png?width=2080&amp;amp;height=1000&amp;amp;face=0_0_2080_1000,https://scrap.kakaocdn.net/dn/mUvVu/hyV55LFg3M/kAVW2S8dZkQLUbLVnsudUK/img.png?width=846&amp;amp;height=682&amp;amp;face=0_0_846_682');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;머티리얼 아이콘 가이드 &amp;nbsp;|&amp;nbsp; Google Fonts &amp;nbsp;|&amp;nbsp; Google for Developers&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이 페이지는 Cloud Translation API를 통해 번역되었습니다. 머티리얼 아이콘 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 머티리얼 아이콘의 개요 - 아&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developers.google.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;block-c9a594f6e3b143d0bc2349cebd6b492f&quot; style=&quot;text-align: start;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://developers.google.com/fonts/docs/material_icons?hl=ko&quot;&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/div&gt;</description>
      <category>Web</category>
      <category>html</category>
      <category>구글 머터리얼 아이콘</category>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/26</guid>
      <comments>https://b-drive.tistory.com/26#entry26comment</comments>
      <pubDate>Tue, 21 May 2024 19:18:55 +0900</pubDate>
    </item>
    <item>
      <title>0818 모각코 6회차</title>
      <link>https://b-drive.tistory.com/25</link>
      <description>&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;6. Any, AnyObject, nil&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Any - Swift의 모든 타입을 지칭&lt;/p&gt;
&lt;pre id=&quot;code_1692362155407&quot; class=&quot;nix&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var someAny: Any = 100
someAny = &quot;어떤 타입도 수용 가능&quot;
someAny = 123.12

let someDouble: Double = someAny // 오류&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;AnyObject - 모든 클래스 타입을 지칭하는 프로토콜&lt;/p&gt;
&lt;pre id=&quot;code_1692362155408&quot; class=&quot;angelscript&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
someAnyObject = 123.12 // 오류&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;nil - 없음을 의미, null과 유사&lt;/p&gt;
&lt;pre id=&quot;code_1692362155409&quot; class=&quot;delphi&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;someAny = nil //오류
someAnyObject = nil // 오류&lt;/code&gt;&lt;/pre&gt;</description>
      <category>모각코/2023 하계 모각코</category>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/25</guid>
      <comments>https://b-drive.tistory.com/25#entry25comment</comments>
      <pubDate>Fri, 18 Aug 2023 21:36:00 +0900</pubDate>
    </item>
    <item>
      <title>0816 모각코 5회차</title>
      <link>https://b-drive.tistory.com/24</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;0. Swift란?&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Swift는 iOS, macOS, watchOS, and tvOS app 개발을 위해 만들어진 언어다. C와 Objective-C와 많은 부분에서 유사하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;객체 지향 프로그래밍, 함수형 프로그래밍의 패턴을 모두 갖고 있다. 특징은 나중에 차차 정리해볼 예정이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;1. Naming&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Swift는 이름을 지을 때 Camel Case를 사용한다!&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;함수, 메서드, 변수, 상수 -&amp;gt; Lower Camel Case&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;클래스, 구조체, 열거형, 익스텐션과 같은 타입명 -&amp;gt; Upper Camel Case&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;2. 콘솔 출력&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;nbsp;print: 단순 문자열 출력&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- dump: 인스턴스의 자세한 설명까지 출력&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;3. String Interpolation&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;문자열 내에 변수 또는 상수의 실질적인 값을 표현하기 위해 사용&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;백슬래시(\)와 괄호로 표현한다 \()&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1692187096816&quot; class=&quot;stylus&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let age: Int = 10
print(&quot;안녕하세요! 저는 \(age)살입니다.&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;4. 변수와 상수&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- 상수 선언 키워드: let&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- 변수 선언 키워드: var&lt;/p&gt;
&lt;pre id=&quot;code_1692187096817&quot; class=&quot;lasso&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// let 이름: 타입 = 값
// var 이름: 타입 = 값

let constant: String = &quot;hello&quot;
let variable: String = &quot;world&quot;

constant = &quot;hello world!&quot; // 오류
variable = &quot;hello world!&quot; // 가능&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Swift는 선언 후 나중에 값을 할당할 수 있다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;단, 나중에 할당할 변수와 상수는 반드시 타입을 명시해야 한다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;상수의 경우 첫 할당 이후로는 값 변경 X&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;변수는 계속해서 값을 변경할 수 있음&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;5. 기본 데이터 타입&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Swift는 안전한 프로그래밍을 위해 데이터 타입 간의 변환이 까다롭다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- Bool (true/false) : 0/1 불가능&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- Int (실수, 소수 X)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- UInt (음수 X)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- Float (정수 O)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- Double (정수 O, Float X)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- Character (큰 따옴표 사용, 이모티콘 가능)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- String&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;6. Any, AnyObject, nil&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Any - Swift의 모든 타입을 지칭&lt;/p&gt;
&lt;pre id=&quot;code_1692187096820&quot; class=&quot;nix&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var someAny: Any = 100
someAny = &quot;어떤 타입도 수용 가능&quot;
someAny = 123.12

let someDouble: Double = someAny // 오류&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;AnyObject - 모든 클래스 타입을 지칭하는 프로토콜&lt;/p&gt;
&lt;pre id=&quot;code_1692187096821&quot; class=&quot;angelscript&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class SomeClass {}
var someAnyObject: AnyObject = SomeClass()
someAnyObject = 123.12 // 오류&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;nil - 없음을 의미, null과 유사&lt;/p&gt;
&lt;pre id=&quot;code_1692187096822&quot; class=&quot;delphi&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;swift&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;someAny = nil //오류
someAnyObject = nil // 오류&lt;/code&gt;&lt;/pre&gt;</description>
      <category>모각코/2023 하계 모각코</category>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/24</guid>
      <comments>https://b-drive.tistory.com/24#entry24comment</comments>
      <pubDate>Wed, 16 Aug 2023 20:57:33 +0900</pubDate>
    </item>
    <item>
      <title>0815 모각코 4회차</title>
      <link>https://b-drive.tistory.com/7</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;목표 - GAN의 한계와 DCGAN&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;0. GAN의 한계&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GAN은 대표적인 생성 모델로 이미지 생성에서 아주 좋은 성능을 보인다. 그러나 모든 기술이 그렇듯 GAN 또한 한계점을 가지고 있다. GAN은 이론적으로는 fixed solution으로 수렴하는 것이 보장되어 있지만 실제 적용은 이론적 가정이 깨지면서 생기는 불안정한 구조적 단점을 보이곤 한다. 그 중 &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;mode-collapse이 대표적이다. Mode-collapse는 generator와 discriminator 중 하나가 너무 학습이 잘 돼서 다른 하나의 학습이 진행되지 않는 것을 말한다. GAN은 generator와 discriminator가 대결하며 학습하는 구도인 만큼 학습이 불안정하다는 단점이 있다. Discriminator와 generator가 서로 균형 있게 훈련을 주고 받아야 하는데 두 모델 간 실력차가 발생하는 경우 훈련이 한 쪽에 치우쳐 궁극적으로 성능이 제약된다. 예를 들어 generator가 정말 진짜 같은 가짜 데이터를 생성한다면 discriminator는 이를 항상 구별할 수 없을 것이고, discriminator는 더 이상 학습을 진행할 수 없는 것이다. GAN의 훈련 성능을 높이기 위해 다양한 연구를 진행하고 있는데, 대표적인 것이 DCGAN(Deep Convolutional GAN)이다.DCGAN이 세상에 나온 이후로 대다수의 GAN 구조는 전부 어떤 식으로든 DCGAN 구조를 사용했다고 할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. DCGAN에 대하여&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 alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;319&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bykxEs/btrZUBl2gjG/jxX2gr1XsEKVsznERUlIaK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bykxEs/btrZUBl2gjG/jxX2gr1XsEKVsznERUlIaK/img.jpg&quot; data-alt=&quot;DCGAN의 생성자 구조도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bykxEs/btrZUBl2gjG/jxX2gr1XsEKVsznERUlIaK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbykxEs%2FbtrZUBl2gjG%2FjxX2gr1XsEKVsznERUlIaK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;844&quot; height=&quot;319&quot; data-origin-width=&quot;844&quot; data-origin-height=&quot;319&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DCGAN의 생성자 구조도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DCGAN은 GAN에 지도학습에서 이미 폭 넓게 적용되던 CNN을 사용하는 것으로 비지도학습 적용을 위해 fully connected DNN 대신 CNN(Convolutional Neural Networks) 기법으로 신경망을 구성했다. Supervised Learning에 CNN을 이용한 것은 Computer vision application에 큰 반향을 일으켰다. 그 반면 비지도학습에 CNN을 이용하는 것은 아주 적은 관심을 받았는데, DCGAN paper은 지도학습에서의 CNN의 성공과 비지도학습 간의 격차를 줄이는 데 큰 역할을 했다. CNN은 전체 데이터의 특정 부분에 대한 주요 특징 값을 추출하는 Convolutional layer와 추출한 특징 중 제일 중요한 값만 추려내는 Polling layer가 교차하면서 이루어진다. 이때 이미지와 같은 부분의 특징을 읽어내는 성능이 탁월하여 학습이 잘 된다는 장점을 GAN의 이미지 생서에 적용한 것이다. 각 층 해당 뉴런의 입력 대비 출력을 얼마나 반영할지 결정하는 함수인 활성화함수의 적절한 선택이 중요한데, GAN을 위해서 leaky_ReLU 함수를 사용하여 분류자의 학습 효율을 높였다.&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;DCGAN 논문이 기여한 바는 다음과 같다. 대부분의 상황에서 언제나 안정적으로 학습이 되는 Convolutional GAN 구조를 제안했다는 점, DCGAN으로 학습된 Generator가 벡터 산술 연산이 가능한 성질을 갖고 이것으로 semantic 수준의 sample genration을 해볼 수 있다는 점, DCGAN이 학습한 filter들을 시각화하여 보여주고 특정 filter들이 이미지의 특정 물체를 학습했다는 걸 보여주었다는 점, 이렇게 학습된 Dicriminator가 다른 비지도 학습 알고리즘과 비교하여 비등한 이미지 분류 성능을 보였다는 점 총 네 가지로 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. DCGAN의 활용 사례&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DCGAN은 GAN의 학습에 대한 문제점을 상당 부분 극복해내면서 주목을 받았으며 latent vector를 이용한 이미지의 산술적 연산을 가능하게 했다. DCGAN의 등장으로 성능이 향상된 GAN을 통해 더 완벽한 가짜 데이터를 만들어내는 모델이 연구됨에&amp;nbsp; 따라 GAN의 활용 범위 역시 더욱 넓어지고 있다. 특히 2017년 워싱턴대학교 연구팀은 영상 합성에 GAN을 적용하여 만든 오바마 전 미국 대통령의 가짜 영상을 공개해 화제가 되기도 했다. 오바마의 얼굴을 만들어낸 latent vector에서 입술에 해당하는 부분만 벡터 연산을 통해 산술적으로 대체해주면 얼마든지 창조적으로 얼굴을 조작할 수 있는 것이다.&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;페이스북에서 개발한 Real-eye-opener가 GAN의 대표적 사례다. Real-eye-opener은 눈을 감은 사진에 가짜 눈을 생성하여 눈을 뜨고 있는 사진으로 만들어주는 기술이다. 입모양을 생성해 오바마 전 대통령의 연설 영상에 합성한 것과 마찬가지로 이번에는 원하는 눈 모양을 latent vector에 반영하여 눈 모양이 대체된 새로운 얼굴 전체를 생성하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.samsungsds.com/kr/insights/gan.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.samsungsds.com/kr/insights/gan.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://jaejunyoo.blogspot.com/2017/02/deep-convolutional-gan-dcgan-1.html&lt;/a&gt;&lt;/p&gt;</description>
      <category>모각코/2023 하계 모각코</category>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/7</guid>
      <comments>https://b-drive.tistory.com/7#entry7comment</comments>
      <pubDate>Tue, 15 Aug 2023 20:13:58 +0900</pubDate>
    </item>
    <item>
      <title>0804 모각코 3회차</title>
      <link>https://b-drive.tistory.com/23</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;FLUTTER 환경설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;794&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTMowA/btsp2jnuQXg/DLwPO1x1KLGGtK4KPYUK2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTMowA/btsp2jnuQXg/DLwPO1x1KLGGtK4KPYUK2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTMowA/btsp2jnuQXg/DLwPO1x1KLGGtK4KPYUK2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTMowA%2Fbtsp2jnuQXg%2FDLwPO1x1KLGGtK4KPYUK2k%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;1282&quot; height=&quot;794&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;794&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1278&quot; data-origin-height=&quot;694&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ecRzkV/btsp1eNsmEH/48oj7UGHOmdi0PrtGBvCMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ecRzkV/btsp1eNsmEH/48oj7UGHOmdi0PrtGBvCMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ecRzkV/btsp1eNsmEH/48oj7UGHOmdi0PrtGBvCMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FecRzkV%2Fbtsp1eNsmEH%2F48oj7UGHOmdi0PrtGBvCMk%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;1278&quot; height=&quot;694&quot; data-origin-width=&quot;1278&quot; data-origin-height=&quot;694&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/23</guid>
      <comments>https://b-drive.tistory.com/23#entry23comment</comments>
      <pubDate>Fri, 4 Aug 2023 20:00:23 +0900</pubDate>
    </item>
    <item>
      <title>최대/최소 값과 인덱스 찾기</title>
      <link>https://b-drive.tistory.com/22</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Header: &amp;lt;algorithm&amp;gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;max_element(first, last)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. first: 찾고자 하는 시작 범위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. last: 찾고자 하는 끝 범위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 리턴값: iterator(주소가 아닌 값을 얻고 싶으면 * 연산자 붙이기)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 예시&lt;/p&gt;
&lt;pre id=&quot;code_1690956082480&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;maxValue = *max_element(v.begin(), v.end()); // 최댓값
maxIndex = distance(v.begin(), maxValue); // 최댓값 인덱스 구하기 1
maxIndex = max_element(v.begin(), v.end()) - v.begin(); // 최댓값 인덱스 구하기 2

minValue = *min_element(v.begin(), v.end()); // 최솟값
minIndex = distance(v.begin(), minValue); // 최솟값 인덱스 구하기 1
minIndex = min_element(v.begin(), v.end()) - v.begin(); // 최솟값 인덱스 구하기 2&lt;/code&gt;&lt;/pre&gt;</description>
      <category>언어/C++</category>
      <author>s.e.s</author>
      <guid isPermaLink="true">https://b-drive.tistory.com/22</guid>
      <comments>https://b-drive.tistory.com/22#entry22comment</comments>
      <pubDate>Wed, 2 Aug 2023 15:06:07 +0900</pubDate>
    </item>
  </channel>
</rss>