<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>commit;</title>
    <link>https://everycommit.tistory.com/</link>
    <description>관심있는 모든 것을 기록합니다.</description>
    <language>ko</language>
    <pubDate>Mon, 18 May 2026 03:28:50 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>coucou3</managingEditor>
    <image>
      <title>commit;</title>
      <url>https://tistory1.daumcdn.net/tistory/3560363/attach/dc79886e650d467096ec12a16934cf75</url>
      <link>https://everycommit.tistory.com</link>
    </image>
    <item>
      <title>호스센스</title>
      <link>https://everycommit.tistory.com/81</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;271&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUeEwH/btszmwDMaMF/iArnXRpB3wrGgSEVPQRfxK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUeEwH/btszmwDMaMF/iArnXRpB3wrGgSEVPQRfxK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUeEwH/btszmwDMaMF/iArnXRpB3wrGgSEVPQRfxK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUeEwH%2FbtszmwDMaMF%2FiArnXRpB3wrGgSEVPQRfxK%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;271&quot; height=&quot;400&quot; data-origin-width=&quot;271&quot; data-origin-height=&quot;400&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;2023.10&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;누구에게나 성공의 도구가 필요하다&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표가 분명하면 그것만 해내게 된다. 목표에만 몰두하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주변을 둘러보고 작은 운을 챙겨라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;목표, 노력은 남들도 다 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;말을 올라타야 성공할 수 있다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;1. 성공의 중요한 열쇠는 자신을 믿는 것이 아니라 좋은 말을 제대로 찾아 올라타는 것이다.&lt;br /&gt;2. 계획된 것 아닌 다른 곳에서 기회를 발견할 수 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;누구를 이용할 것인가?&lt;/h3&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;1. 근로마 - 성공확률 1/100&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;2. 지식마 - 1/75&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성공은 A학점을 받은 학생보다 B, C학점 받은 학생이 한다.&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;3. 교육마 - 1/60&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;4. 회사마 - 1/50&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;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;5. 재능마&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 성공은 남에게 달렸다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뛰어난 재능을 가지고 있다면 남에게 그것을 알려라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 취미마&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;7. 지리마&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;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;&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;9. 제품마&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. 창발마&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;11. 타인마&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;12. 파트너마&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;13. 부부마&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;14. 가족마&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;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;어떻게 성공할 것인가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 회사마&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;100명 중 1명만 성공하는 게임&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;정치인 : 너무 솔직하지 말 것. 스폰서를 찾을 것. 똑똑한 고양이보다 친한 개가 승진힌다.&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;2. 제품마&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;뛰어난 제품과 경쟁하지 말고 함께 올라타라.&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;문제에 맞서지 말고 받아들여라. 그 속에 해결이 있다.&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;3. 창발마&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;아이디어는 나 자신에게 먼저 팔아야 한다. 나 자신도 설득이 안되면 안돼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 타인마&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부부마, 가족마 다음은 타인마&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기회는 생각보다 슬로우모션. 눈 앞에 오랜 시간 노출되어 있을 수 있다. 외부에 관심을 갖자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사마를 타겠다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;올라탈 상사 : 약간 게으름. 약간 뻔뻔. 정치적 통찰력. 전사적 기질. 남 앞에 나설 줄 앎&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상사의 상사의 상사 : CEO와 물리적 거리를 가까이 하라&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;이때 자아와 허풍을 빼야한다. 항상 자아가 문제가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 파트너마&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기업 파트너. 부부 파트너&lt;/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;6. 부부마&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나를 100% 지원해 줄 수 있는 사람은 배우자밖에 없다.&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;h3 data-ke-size=&quot;size23&quot;&gt;인생게임에서 성공하는 기술&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타이밍을 놓치지 마라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 일이 여전히 즐거울 때 갈아타야 한다. 그래야 유리한 게임을 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 지겹다면 늦은 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5년 뒤에도 계속 현재 일을 하고 있을 것인가? 아니라면 침착하게 실행으로 옮기자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 같은 일을 한다고 해도 유연하게 사고하고 행동하라&lt;/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;&lt;b&gt;제 2막은 없다.&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;성공하면 내가 잘난 줄 알고 외부를 무시, 자만에 빠진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2막 기업.&amp;nbsp;자아가 나대면 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;b&gt;성공을 행동으로 증명하라.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세상에 기회는 많다. 둘러보라. 주변에 좋은 집, 좋은 차를 가진 사람은 대단한 회사의 CEO가 아니라 동전교환기, 의료기구, 배관 부속품 등 별 거 아닌 걸로 돈을 번 사람들이다.&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;마음을 열고 입을 다물어라. 닫힌 마음과 따발총 입으로는 절대 말을 찾지 못한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 분야에서 가치를 찾아라.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Thoughts</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/81</guid>
      <comments>https://everycommit.tistory.com/81#entry81comment</comments>
      <pubDate>Sun, 29 Oct 2023 14:50:19 +0900</pubDate>
    </item>
    <item>
      <title>책) 데일 카네기 인간관계론</title>
      <link>https://everycommit.tistory.com/79</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NhsIl/btsxp7NK3Up/DjSfbRP4DMnuXPQRFQRIt1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NhsIl/btsxp7NK3Up/DjSfbRP4DMnuXPQRFQRIt1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NhsIl/btsxp7NK3Up/DjSfbRP4DMnuXPQRFQRIt1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNhsIl%2Fbtsxp7NK3Up%2FDjSfbRP4DMnuXPQRFQRIt1%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;320&quot; height=&quot;474&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;인간을 대하는 방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 비난과 질책은 아무런 도움이 되지 않는다.&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;3. 아무리 정단한 비판이라도 결과는 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 중요한 사람이 되고픈 욕망에 따라 움직인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 진심어린 인정과 격려만이 사람을 움직인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 우리는 우리가 원하는 것에만 관심있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 상대의 관점에서 상대가 원하는 것에 대해 생각하자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 다른 사람의 열렬한 욕구를 불러 일으키자&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;1. 다른 사람에게 관심을 갖는다. 무조건적으로 당신을 반기는 강아지는 얼마나 사랑스러운가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;루스벨트와 오바마는 모든 직원과 알고 지냈다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 좋은 인상&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;3. 이름을 기억하라&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;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;5. 관심. 다른 사람의 관심에 대해 얘기하라. 상대는 자신이 원하는 것에만 관심이 있다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 보자마자 나를 좋아하게 하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 중요한 사람이 되고픈 욕망&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;3) 내게 주었으면 하는 걸 남에게 주어라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 중요한 사람이라는 것을 인정하고 있다고 알려주자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) 다른 사람으로 하여금 그 사람이 중요하다고 느끼게 하라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6) 그 사람에게 그 사람 얘기를 하라&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;1. 논쟁에서 이겨서 얻을 건 아무것도 없다. 사소한 건 내가 맞아도 양보하자&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;3. 틀림을 인정하라. 나 스스로 먼저 나를 비판하라. 남에게 나에게 할 것 같은 모든 생각, 말을 상대보다 먼저 나에게 질책하라.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 설득은 우호적으로 시작하라. 화가 나는 상황에서도 상대를 인정하고 친절하고 우호적인 접근으로 시작한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 대화할 때는 동의하는 말부터 이야기한다.&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;나랑 여행가자 x =&amp;gt; 너 여행 좋아하니? 놀러 가는 거 좋아하지? 여행갈래? 이런 식..?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 질문하고 상대가 이야기 하도록 하라&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;상대를 나보다 뛰어난 사람으로 만들어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 협조. 내 제안조차 상대가 스스로 생각해 냈다고 여기도록 만들어라. 상대 스스로 선택한 것처럼&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 기적을 만드는 공식. 다른 사람의 관점에서 생각하라. 적개심을 불러일으키지 않게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 원하는 것. 인간은 공감을 갈망한다. 연민을 느끼고 불편에 공감.&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;10. 호소. 사람은 듣기에 그럴 듯한 이유를 따르려고 한다. 고상한 동기에 호소하라.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11. 극화 Dramatize. 말로 사실만 전달하는 건 부족하다. 영화처럼 쇼맨쉽 발휘가 필요하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;12. 최후의 수단. 도전의욕을 자극하라. 남보다 잘하고 싶다는 욕망&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;1. 비판을 해야한다면 칭찬으로 시작하라&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;3. 남 비판 전에 내 실수, 단점, 과거부터 언급한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 명령이 아닌 질문으로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 상대의 기분이 상할 상황에서 상대의 체면을 살려라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 칭찬을 아끼지 말라. 잠재 가능성을 알아보고 칭찬하는 능력은 마법같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 평판. 기대하는 모습을 이미 상대가 가진 것처럼 말하라.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 해주었음 하는 것을 쉬운 일처럼 격려/응원하라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 내 제안을 다른 사람이 즐겁게 하도록&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;상대가 중요한 사람이라고 여기도록&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;1. 잔소리 금지&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;3. 비판하지 말라. 가족에게도, 가정에서 남에게도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 진심으로 감사, 인정을 표시하라. 밖에서는 Thanks라고 잘만 하면서 집에서는 왜 하지 않는가!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 미루지 말고 항상 작은 관심을 자주 보여라. 이 길은 단 한 번 걸어간다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 결혼 후의 예의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 섹스. 결혼의 성적 측면에 관해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Thoughts</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/79</guid>
      <comments>https://everycommit.tistory.com/79#entry79comment</comments>
      <pubDate>Mon, 9 Oct 2023 13:29:47 +0900</pubDate>
    </item>
    <item>
      <title>기적의 독서 메모 법</title>
      <link>https://everycommit.tistory.com/78</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;한&lt;span&gt; &lt;/span&gt;번만&lt;span&gt; &lt;/span&gt;읽어도&lt;span&gt; &lt;/span&gt;책&lt;span&gt; &lt;/span&gt;내용&lt;span&gt; &lt;/span&gt;다&lt;span&gt; &lt;/span&gt;기억하는&lt;span&gt; &lt;/span&gt;기적의&lt;span&gt; &lt;/span&gt;독서&lt;span&gt; &lt;/span&gt;메모&lt;span&gt; &lt;/span&gt;법&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/fxdPHw8vhog?si=fev25jvngE7TsqZM&quot; width=&quot;560&quot; height=&quot;315&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&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;h4 data-ke-size=&quot;size20&quot;&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;메모 내용이 생생하게 기억난다.&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;&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;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) &lt;b&gt;순간의 생각&lt;/b&gt; - 2페이지 정도를 읽고 책을 덮는다. 읽은 내용을 핵심 키워드만으로 되새김 해 본다.&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;3) &lt;b&gt;생각의 이음&lt;/b&gt; - 액기스 키워드가 5개 정도 쌓이면 생각만으로 키워드를 이어본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 정리된 키워드를 &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;&amp;nbsp;&lt;/p&gt;</description>
      <category>Thoughts</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/78</guid>
      <comments>https://everycommit.tistory.com/78#entry78comment</comments>
      <pubDate>Mon, 9 Oct 2023 12:57:40 +0900</pubDate>
    </item>
    <item>
      <title>책 리뷰) 1년에 10억 버는 방구석 비즈니스</title>
      <link>https://everycommit.tistory.com/77</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3lXfm/btsayVgG5p2/gYyQ0oTBRrJuTEaR7ZB4sK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3lXfm/btsayVgG5p2/gYyQ0oTBRrJuTEaR7ZB4sK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3lXfm/btsayVgG5p2/gYyQ0oTBRrJuTEaR7ZB4sK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3lXfm%2FbtsayVgG5p2%2FgYyQ0oTBRrJuTEaR7ZB4sK%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;500&quot; height=&quot;741&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;1200&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;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;(저자) Ryan Daniel Moran&lt;/b&gt;&lt;br /&gt;기업가들에게 번영하는 기업을 만들고 수익을 투자하는 방법을 교육하는 웹사이트인 Capitalism.com을 설립했습니다. 원 퍼센트 팟캐스트와 브랜드 빌더 팟캐스트는 모두 라이언 모란이 진행합니다. 현재 라이언 모란의 제자 중 300명 이상이 그의 '12개월 만에 100만 달러 만들기' 접근법을 사용하여 7자리 숫자의 비즈니스를 개발했습니다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;백만&amp;nbsp;달러를&amp;nbsp;향한&amp;nbsp;10단계&amp;nbsp;로드맵&lt;/h3&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. 1단계 - 그라인드(1~4개월)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 번째 제품에서 하루에 최소 25건의 판매를 지속적으로 달성할 수 있을 때까지는 그라인드 단계에 있습니다. 가능한 한 빨리 그 시점에 도달하려면 처음 시작할 때 빠르고 과감한 결정을 내려야 합니다. 모든 것을 제대로 해낼 수 없다는 사실을 받아들여야 합니다. 그라인드에서 속도는 여러분의 친구입니다. 모든 판매는 매우 중요합니다. 팔로워 수 천 명, 1위 제품에 대한 리뷰 20개 이상, 하루에 25개 판매를 달성하는 데 집중하세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. 2단계 - 성장기(5~9개월)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;눈덩이가 쌓이기 시작하는 시기입니다. 1번 제품이 하루에 25개씩 꾸준히 판매되면 감당할 수 있는 만큼 더 많은 제품을 출시할 수 있습니다. 단, 무지개를 쫓기보다는 첫 번째 제품과 동일한 고객 그룹을 대상으로 더 많은 제품을 출시해야 합니다. 이 단계에서는 두 번째로 많은 결정을 내릴 필요가 없으므로 모멘텀이 빠르게 구축됩니다. 산만해지지 말고 단순하게 유지하고 집중하세요.&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;br /&gt;&lt;b&gt;3. 3단계 - 골드(10~12개월)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 단계에서는 다양한 유형의 광고를 실험하여 제품 유형에 가장 효과적인 광고가 무엇인지 파악할 수 있습니다. 이 단계는 또한 마침내 스스로에게 돈을 지불하기 시작하고 진정한 풀타임 사업가가 될 수 있는 단계이기도 합니다. 이 단계에서 여러분의 임무는 수익을 창출하고, 구매자를 찾고, 6자리 수 이상의 횡재를 달성한 후 이 모든 것을 다시 할 수 있도록 하는 것입니다.&lt;br /&gt;&lt;br /&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;기업가&amp;nbsp;정신보다&amp;nbsp;더&amp;nbsp;도전적이고&amp;nbsp;보람&amp;nbsp;있는&amp;nbsp;게임은&amp;nbsp;없습니다.&amp;nbsp;모든&amp;nbsp;성공적인&amp;nbsp;비즈니스의&amp;nbsp;근간에는&amp;nbsp;모든&amp;nbsp;것을&amp;nbsp;걸고&amp;nbsp;기꺼이&amp;nbsp;회사를&amp;nbsp;백만&amp;nbsp;달러&amp;nbsp;규모의&amp;nbsp;기업으로&amp;nbsp;성장시킨&amp;nbsp;한&amp;nbsp;명의&amp;nbsp;기업가가&amp;nbsp;있습니다.&amp;nbsp;변화가&amp;nbsp;일어나고&amp;nbsp;부를&amp;nbsp;창출할&amp;nbsp;때,&amp;nbsp;항상&amp;nbsp;그것을&amp;nbsp;등에&amp;nbsp;짊어지고&amp;nbsp;도전하는&amp;nbsp;한&amp;nbsp;사람이&amp;nbsp;있습니다.&amp;nbsp;저는&amp;nbsp;그&amp;nbsp;사람에게&amp;nbsp;힘을&amp;nbsp;실어주기&amp;nbsp;위해&amp;nbsp;살고&amp;nbsp;있습니다.&amp;nbsp;미디어에서&amp;nbsp;흔히&amp;nbsp;듣는&amp;nbsp;것과는&amp;nbsp;달리,&amp;nbsp;이윤을&amp;nbsp;추구하는&amp;nbsp;자본가들이&amp;nbsp;이&amp;nbsp;세상에서&amp;nbsp;가장&amp;nbsp;큰&amp;nbsp;변화를&amp;nbsp;만들어냅니다.&amp;nbsp;저는&amp;nbsp;이러한&amp;nbsp;기업가&amp;nbsp;정신을&amp;nbsp;굳게&amp;nbsp;믿기&amp;nbsp;때문에&amp;nbsp;제&amp;nbsp;학생들과&amp;nbsp;친구들이&amp;nbsp;시작하는&amp;nbsp;비즈니스에&amp;nbsp;개인적으로&amp;nbsp;투자하고&amp;nbsp;있으며,&amp;nbsp;이러한&amp;nbsp;기업가들이&amp;nbsp;만들어내는&amp;nbsp;변화의&amp;nbsp;일부가&amp;nbsp;되고&amp;nbsp;싶습니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Thoughts</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/77</guid>
      <comments>https://everycommit.tistory.com/77#entry77comment</comments>
      <pubDate>Mon, 17 Apr 2023 00:43:38 +0900</pubDate>
    </item>
    <item>
      <title>Unity Graphics APIs 안드로이드 설정</title>
      <link>https://everycommit.tistory.com/75</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;logo_graphics_api.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbpjed/btrHVgsTIA2/SHFN05ltCBg63kdKLTATa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbpjed/btrHVgsTIA2/SHFN05ltCBg63kdKLTATa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbpjed/btrHVgsTIA2/SHFN05ltCBg63kdKLTATa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcbpjed%2FbtrHVgsTIA2%2FSHFN05ltCBg63kdKLTATa0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-filename=&quot;logo_graphics_api.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;Graphics API가 무엇이고, 안드로이드 플랫폼에서 어떻게 설정 해야하는가에 대한 정리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;0. Graphics API&lt;/b&gt;&lt;/h3&gt;
&lt;figure id=&quot;og_1658419576728&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;그래픽스 API 지원 - Unity 매뉴얼&quot; data-og-description=&quot;Unity는 특정 플랫폼의 API 유효성에 따라 DirectX, Metal, OpenGL 및 Vulkan 그래픽스 API를 지원합니다. Unity는 빌트인 그래픽스 API 세트 또는 에디터에서 선택된 그래픽스 API를 사용합니다.&quot; data-og-host=&quot;docs.unity3d.com&quot; data-og-source-url=&quot;https://docs.unity3d.com/kr/2021.3/Manual/GraphicsAPIs.html&quot; data-og-url=&quot;https://docs.unity3d.com/kr/2021.3/Manual/GraphicsAPIs.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cV0Zfk/hyPaCIHjFi/pKh3yiEEsvU1fuZ6P6yivk/img.png?width=519&amp;amp;height=120&amp;amp;face=0_0_519_120&quot;&gt;&lt;a href=&quot;https://docs.unity3d.com/kr/2021.3/Manual/GraphicsAPIs.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.unity3d.com/kr/2021.3/Manual/GraphicsAPIs.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cV0Zfk/hyPaCIHjFi/pKh3yiEEsvU1fuZ6P6yivk/img.png?width=519&amp;amp;height=120&amp;amp;face=0_0_519_120');&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;그래픽스 API 지원 - Unity 매뉴얼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Unity는 특정 플랫폼의 API 유효성에 따라 DirectX, Metal, OpenGL 및 Vulkan 그래픽스 API를 지원합니다. Unity는 빌트인 그래픽스 API 세트 또는 에디터에서 선택된 그래픽스 API를 사용합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.unity3d.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Unity에서 설정하는 방법&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2022-07-22 010852.png&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;860&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A9IYr/btrHTWWd8FO/zFIVcvqvhy6fcSMnBoz0X0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A9IYr/btrHTWWd8FO/zFIVcvqvhy6fcSMnBoz0X0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A9IYr/btrHTWWd8FO/zFIVcvqvhy6fcSMnBoz0X0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA9IYr%2FbtrHTWWd8FO%2FzFIVcvqvhy6fcSMnBoz0X0%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;820&quot; height=&quot;618&quot; data-filename=&quot;화면 캡처 2022-07-22 010852.png&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;860&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ProjectSettings &amp;gt; Player &amp;gt; OtherSettings &amp;gt; Rendering &amp;gt; Graphics APIs&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 Auto Graphics API가 체크되어 있다면 Graphics APIs 목록은 나타나지 않는다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2022-07-22 014734.png&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcJn5M/btrHVfOgxSK/KGesKcE6iKlKORXVpkxe20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcJn5M/btrHVfOgxSK/KGesKcE6iKlKORXVpkxe20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcJn5M/btrHVfOgxSK/KGesKcE6iKlKORXVpkxe20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcJn5M%2FbtrHVfOgxSK%2FKGesKcE6iKlKORXVpkxe20%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;820&quot; height=&quot;317&quot; data-filename=&quot;화면 캡처 2022-07-22 014734.png&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;323&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Graphics APIs 동작 방식&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 Graphics APIs 목록에 여러 개가 들어 있다면 맨 위에서부터 차례대로 사용을 시도한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vulkan / OpenGLES3 / OpenGLES2 순서로 들어 있다면 그대로 Vulkan -&amp;gt; OpenGLES3 -&amp;gt; OpenGLES2 순서로 사용 시도한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 시도라고 하는 것은 디바이스에서 해당 API가 지원되지 않을 경우 목록의 다음으로 넘어간다는 것을 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Auto Graphics API&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Unity Documentation에 따르면 다음과 같다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;플랫폼에 대해 &lt;b&gt;Auto Graphics API&lt;/b&gt;를 선택하면 플레이어는 빌트인 그래픽스 API 세트를 포함하고 런타임 시점에 그중 가장 적합한 API를 사용하여 최상의 시나리오를 만듭니다.&lt;/blockquote&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;그러나 Auto Graphics API를 사용하면 Vulkan은 사용되지 않는다 !&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(~Unity 2021.1까지도 Auto로 Vulkan이 안됨)&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;Vulkan API를 사용하기 위해선 Auto를 끄고 Vulkan을 최상단 목록에 넣어주어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vulkan을 지원하는 모든 디바이스는 OpenGLES3를 지원하기 때문에 OpenGLES3가 앞에 오면 Vulkan은 사용되지 않을 것.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2022-07-22 015601.png&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Noog7/btrHSA0IGJT/S5jY9KMLX10lQB1i3YPC90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Noog7/btrHSA0IGJT/S5jY9KMLX10lQB1i3YPC90/img.png&quot; data-alt=&quot;안드로이드에서 Vulkan을 쓰려면 이렇게&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Noog7/btrHSA0IGJT/S5jY9KMLX10lQB1i3YPC90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNoog7%2FbtrHSA0IGJT%2FS5jY9KMLX10lQB1i3YPC90%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;412&quot; height=&quot;171&quot; data-filename=&quot;화면 캡처 2022-07-22 015601.png&quot; data-origin-width=&quot;412&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;안드로이드에서 Vulkan을 쓰려면 이렇게&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;참고&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;a href=&quot;https://forum.unity.com/threads/will-the-auto-graphics-api-automatically-enable-the-vulkan-api-when-available.625807/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Will the &quot;Auto Graphics API&quot; automatically enable the Vulkan API when available?&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;a href=&quot;https://forum.unity.com/threads/auto-graphics-api-logic.876967/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Auto&amp;nbsp;graphics&amp;nbsp;api&amp;nbsp;logic&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Unity &amp;amp; C#/최적화</category>
      <category>graphicsapi</category>
      <category>OpenGLES</category>
      <category>Optimization</category>
      <category>vulkan</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/75</guid>
      <comments>https://everycommit.tistory.com/75#entry75comment</comments>
      <pubDate>Fri, 22 Jul 2022 02:03:26 +0900</pubDate>
    </item>
    <item>
      <title>AWS EC2 기본 인프라</title>
      <link>https://everycommit.tistory.com/73</link>
      <description>&lt;h1&gt;AWS EC2 기본 인프라&lt;/h1&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/EC2Win_Infrastructure.html&quot;&gt;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/EC2Win_Infrastructure.html&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;EC2(Elastic Compute Cloud)&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instances-and-amis.html&quot;&gt;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instances-and-amis.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;EC2는 안전하고 크기 조정이 가능한 컴퓨팅 파워를 클라우드에서 제공하는 웹 서비스.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;AMI (Amazon Machine Image)&lt;/h2&gt;
&lt;p&gt;AMI는 소프트웨어 구성이 기재된 템플릿(OS, 어플리케이션 서버, 어플리케이션 등). AMI 사용해 인스턴스를 시작할 수 있으며, AMI의 사본인 인스턴스는 클라우드에서 가상 서버로 실행.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;image-20210325235546753.png&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;347&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btECMN/btq0YiAOuaQ/xUaIfQEGfK00OqGyRSEe71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btECMN/btq0YiAOuaQ/xUaIfQEGfK00OqGyRSEe71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btECMN/btq0YiAOuaQ/xUaIfQEGfK00OqGyRSEe71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtECMN%2Fbtq0YiAOuaQ%2FxUaIfQEGfK00OqGyRSEe71%2Fimg.png&quot; data-filename=&quot;image-20210325235546753.png&quot; data-origin-width=&quot;336&quot; data-origin-height=&quot;347&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;리전 및 영역&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/using-regions-availability-zones.html&quot;&gt;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/using-regions-availability-zones.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;AWS EC2는 세계 각지에서 호스팅됨.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;리전 : 개별 지리 영역. 미국(버지니아, 오하이오, 캘리포니아, 오레곤), 아시아(홍콩, 도쿄, 서울) 등&lt;/li&gt;
&lt;li&gt;가용 영역 : 리전 내 여러 격리된 위치&lt;/li&gt;
&lt;li&gt;로컬 영역 : 최종 사용자에게 가까운 여러 위치&lt;/li&gt;
&lt;li&gt;Wavelength Zone : 통신 사업자의 5G 네트워크 엣지&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;image-20210326000623982.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;437&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/br4DsO/btq05oy6iRG/PO2Vzva5uIeqOZaFuRRuQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/br4DsO/btq05oy6iRG/PO2Vzva5uIeqOZaFuRRuQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/br4DsO/btq05oy6iRG/PO2Vzva5uIeqOZaFuRRuQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbr4DsO%2Fbtq05oy6iRG%2FPO2Vzva5uIeqOZaFuRRuQk%2Fimg.png&quot; data-filename=&quot;image-20210326000623982.png&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;437&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;스토리지&lt;/h2&gt;
&lt;h3&gt;EBS(Elastic Block Store)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/AmazonEBS.html&quot;&gt;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/AmazonEBS.html&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EC2와 저장장치가 분리되어 있고, 네트워크로 연결되어 있음&lt;/li&gt;
&lt;li&gt;인스턴스를 내려도, 데이터가 보존됨&lt;/li&gt;
&lt;li&gt;Instance Storage에 비해 데이터 접근 속도가 느림&lt;/li&gt;
&lt;li&gt;인스턴스 스펙을 변경할 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Instance Store&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/InstanceStorage.html&quot;&gt;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/WindowsGuide/InstanceStorage.html&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EC2 안에 들어가 있음&lt;/li&gt;
&lt;li&gt;인스턴스를 내리면 동시에 데이터도 날아감&lt;/li&gt;
&lt;li&gt;저장장치를 직접 들고 있기 때문에 접근 속도가 빠름&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;S3(Simple Storage Service)&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://aws.amazon.com/ko/s3/&quot;&gt;https://aws.amazon.com/ko/s3/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;인터넷 스토리지&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;image-20210326001518787.png&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;325&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Pj6BA/btq0Y5aeXVU/ldKYI0CP3FGkperfxWQotK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Pj6BA/btq0Y5aeXVU/ldKYI0CP3FGkperfxWQotK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Pj6BA/btq0Y5aeXVU/ldKYI0CP3FGkperfxWQotK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPj6BA%2Fbtq0Y5aeXVU%2FldKYI0CP3FGkperfxWQotK%2Fimg.png&quot; data-filename=&quot;image-20210326001518787.png&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;325&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;루트 디바이스 볼륨&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/RootDeviceStorage.html#RootDeviceStorageConcepts&quot;&gt;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/RootDeviceStorage.html#RootDeviceStorageConcepts&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;인스턴스를 시작하면 인스턴스 부팅에 사용된 이미지가 루트 디바이스 볼륨에 저장 됨. 선택한 AMI에 따라 인스턴스 스토어 또는 EBS가 루트 디바이스가 됨.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;네트워킹 및 보안&lt;/h2&gt;
&lt;p&gt;인스턴스는 기본 VPC로 실행된 경우에만 퍼블릭 IPv4 주소가 할당됨. 기본이 아닌 VPC로 실행되는 인스턴스에 퍼블릭 IPv4 주스롤 할당하려면 인스턴스 시작시 지정하거나 서브넷의 기본 주소 할당 방식을 수정해야 함.&lt;/p&gt;
&lt;p&gt;인스턴스에 오류가 발생하여 중지-시작 되었거나 대체 인스턴스를 시작했을 경우 원본 인스턴스와 다른 퍼블릭 IPv4주소가 할당됨. 탄력적 IP를 이용해 고정 IPv4 주소를 사용할 수 있음.&lt;/p&gt;
&lt;p&gt;보안 그룹을 사용하면 인스턴스에 액세스할 수 있는 사용자를 관리할 수 있음. 허용 프로토콜, 포트, 소스 IP 범위를 지정하는 인바운드 네트워크 방화벽과 유사.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;IAM(Identity and Access Management)&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html&quot;&gt;https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/introduction.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;IAM과 EC2를 함께 사용하면 사용자별로 특정 EC2 API 작업, 특정 AWS 리소스 사용 권한을 제어할 수 있음&lt;/p&gt;
&lt;p&gt;AWS 계정을 처음 생성할 때 모든 권한이 있는 루트 계정으로 생성됨. 일상 작업과 관리 작업 모두에 루트 사용자를 사용하지 않는 것이 좋음.&lt;/p&gt;</description>
      <category>Sever &amp;amp; Database</category>
      <category>aws</category>
      <category>ec2</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/73</guid>
      <comments>https://everycommit.tistory.com/73#entry73comment</comments>
      <pubDate>Fri, 26 Mar 2021 00:38:15 +0900</pubDate>
    </item>
    <item>
      <title>책 리뷰) 비폭력대화(Nonviolent Communication)</title>
      <link>https://everycommit.tistory.com/72</link>
      <description>&lt;h1&gt;비폭력대화&lt;/h1&gt;
&lt;figure id=&quot;og_1616072758188&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;비폭력대화&quot; data-og-description=&quot;『비폭력대화』는 비폭력대화(NVC)의 기본 개념, NVC 모델, 모델 적용 과정 등을 자세히 다루는 기본 텍스트이다. 다시 말해, 이론과 실천에 관한 구체적인 설명과 지침을 제공하는 NVC 교과서라고 &quot; data-og-host=&quot;book.naver.com&quot; data-og-source-url=&quot;https://book.naver.com/bookdb/book_detail.nhn?bid=12863442&quot; data-og-url=&quot;http://book.naver.com/bookdb/book_detail.nhn?bid=12863442&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cgXZE0/hyJBemgQs3/KKTswrxxkdnsPtxglhj3ZK/img.jpg?width=139&amp;amp;height=206&amp;amp;face=0_0_139_206&quot;&gt;&lt;a href=&quot;https://book.naver.com/bookdb/book_detail.nhn?bid=12863442&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://book.naver.com/bookdb/book_detail.nhn?bid=12863442&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cgXZE0/hyJBemgQs3/KKTswrxxkdnsPtxglhj3ZK/img.jpg?width=139&amp;amp;height=206&amp;amp;face=0_0_139_206');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;비폭력대화&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;『비폭력대화』는 비폭력대화(NVC)의 기본 개념, NVC 모델, 모델 적용 과정 등을 자세히 다루는 기본 텍스트이다. 다시 말해, 이론과 실천에 관한 구체적인 설명과 지침을 제공하는 NVC 교과서라고&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;book.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;새로운 사람을 만나고, 의견을 전달해야하는 일이 많아지는 와중 도움이 될까 읽어 봄&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;비폭력대화 NVC는 커뮤니케이션에서 화자의 욕구(진정성, 의도)를 파악하는데 집중한 대화법이다.&lt;/p&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;1장. 마음으로 주기&lt;/h2&gt;
&lt;p&gt;NVC 모델의 네 가지 요소 : 관찰, 느낌, 욕구, 부탁&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;NVC는 우리의 본성인 연민이 우러나는 방식으로 다른 사람들과 유대를 맺고, 우리 자신을 더 깊이 이해하는 데 도움이 된다. 우리는 NVC를 통해 우리 의식을 네 가지 요소-우리가 무엇을 &lt;b&gt;관찰&lt;/b&gt;하고, &lt;b&gt;느끼고&lt;/b&gt;, &lt;b&gt;바라고&lt;/b&gt;, 우리 삶을 풍요롭게 하기 위해 무엇을 &lt;b&gt;부탁&lt;/b&gt;하는가-에 집중하면서 자신을 표현하거나 다른 사람의 말에 귀 기울이는 방법을 배우게 된다. NVC는 깊이 듣고, 존중하고, 공감하는 자세를 길러 주고 진정으로 서로 주고 싶은 마음이 생기게 한다. 어떤 사람들은 자기 자신을 더욱 연민으로 대하기 위해 이 방법을 사용하고, 또 어떤 사람들은 더욱 깊이 있는 인간관계를 나누기 위해 사용한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;3장. 있는 그대로 관찰하기&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;NVC의 첫 번재 요소는 평가와 관찰을 분리하는 것이다. 관찰에 평가를 섞으면 듣는 사람은 그것을 비판으로 받아들이고 우리가 하는 말에 저항감을 느끼기 쉽다. NVC는 고정적인 일반화를 피하고 진행 중인 변화를 반영하는 언어이다. 관찰을 표현하는 말은 때와 맥락에 맞게 구체적이어야 한다. 예컨대 &quot;그는 시간 개념이 없다.&quot;가 아니라 , &quot;그는 지난 세 번의 약속에서 모두 30분이 지난 후에 왔다.&quot;라고 하면 관찰에 따른 표현이 된다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;4장. 느낌을 알아차리고 표현하기&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;자신을 표현하는 데 필요한 두 번째 요소는 느낌이다. 우리의 느낌을 표현함으로써 자신의 솔직한 내면을 인정하는 것이 갈등을 해결하는 데 도움이 될 수 있다. NVC에서는 느낌을 표현하는 말과 생각/평가/해석을 나타내는 말을 구별한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;5장. 욕구를 의식함으로써 자신의 느낌에 대해 책임지기&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;NVC의 세 번째 요소는 우리 느낌 뒤에 있는 욕구를 인식하는 것이다. 다른 사람의 말이나 행동이 우리의 느낌에 &lt;b&gt;자극&lt;/b&gt;이 될 수는 있지만 &lt;b&gt;원인&lt;/b&gt;은 아니다. 누군가가 우리에게 부정적으로 말했을 때 우리가 그것을 받아들이는 데에는 네 가지 선택이 있다. 첫째, 자신을 탓하기. 둘째, 다른 사람을 탓하기. 셋째, 우리 자신의 느낌과 욕구 인식하기. 넷째, 상대방의 부정적인 말 속에 숨어있는 상대방의 느낌과 욕구 인식하기.&lt;/p&gt;
&lt;p&gt;다른 사람에 대한 비판, 판단, 분석, 평가 등은 우리 자신의 욕구나 가치관의 왜곡된 표현이다. 사람들은 비판을 받으면 자기 방어나 반격에 힘을 쏟는다. 우리 느낌을 자신의 욕구에 더 직접적으로 연결해 표현할수록 상대방은 더 쉽게 연민으로 반응한다.&lt;/p&gt;
&lt;p&gt;하지만 자신의 욕구를 인식하고 표현하는 것을 비판적으로 보는 환경에서는 그것을 표현하기가 매우 두려울 수도 있다. 다른 사람을 돌보기 위해 자신의 욕구를 무시하도록 사회화된 여성들에게는 더욱 그렇다.&lt;/p&gt;
&lt;p&gt;느낌에 대한 책임감을 키워 가는 과정에서 우리는 대개 세 단계를 거친다. 1. 정서적 노예 단계. 다른 사람의 느낌에 대한 책임이 자신에게 있다고 믿는다. 2. 얄미운 단계. 다른 사람의 느낌이나 욕구에 대해서 배려하기를 거부한다. 3. 정서적 해방 단계. 다른 사람의 느낌이 아닌 자신의 느낌에 책임을 지는 단계로, 다른 사람을 무시하고 희생시키면서 자신의 욕구를 충족할 수는 없다는 것을 인식한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;6장. 삶을 풍요롭게 하기 위해 부탁하기&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;NVC의 네 번째 요소는 '우리가 각자 삶을 풍요롭게 하기 위해서 서로에게 무엇을 부탁하고 싶어 하는가?'라는 문제를 다루고 있다. 그것은 막연하고 추상적이거나 모호한 말을 피하고, 원하지 않는 것보다 우리가 원하는 것을 말함으로써 &lt;b&gt;긍정적인 행동언어를 사용하는 것&lt;/b&gt;을 기억하는 일이다.&lt;/p&gt;
&lt;p&gt;우리가 말할 때 상대에게 어떤 응답을 바라는지 분명히 할수록 우리가 원하는 것을 얻을 가능성은 더 커진다. 우리가 전하려는 뜻이 항상 그대로 전달되지는 않기 때문에 그것이 정확하게 전해졌는지 확인할 방법을 배울 필요가 있다. 특히 집단을 대상으로 말할 때에는 자신이 바라는 반응에 대하여 명확하게 인식할 필요가 있다. 그렇지 않으면 비생산적인 대화로 많은 사람의 시간을 낭비하게 된다.&lt;/p&gt;
&lt;p&gt;상대방이 우리의 부탁에 응하지 않을 때 비난이나 처벌을 받게 되리라고 생각한다면, 이는 부탁이 강요로 받아들여진 것이다. 상대가 기꺼이 할 수 있을 때에만 우리의 부탁을 들어달라는 뜻을 명백히 함으로써, 그것이 강요가 아니라 부탁임을 상대가 믿도록 도울 수 있다. NVC의 목적은 자신이 원하는 것을 얻기 위해 다른 사람의 행동을 바꾸려는 것이 아니다. 솔직함과 공감에 바탕을 둔 인간관계를 형성하여 결국에는 모든 사람의 욕구가 충족되도록 하는 것이다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2&gt;7장. 공감으로 듣기&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;공감이란 다른 사람이 경험하는 것을 존중하는 마음으로 이해하는 것이다. 그러나 우리는 공감을 하는 대신에 자신의 견해나 느낌을 설명하거나, 조언을 하거나, 상대를 안심시키고 싶은 충동을 강하게 느낀다. 그러나 공감은 우리에게 마음을 비우고 온 존재로 다른 사람의 말에 귀를 기울일 것을 요구한다. NVC에서는 다른 사람이 자신을 어떤 말로 표현하든 상관없이 그들이 무엇을 관찰하고, 느끼고, 필요로 하고, 부탁하고 있는가를 듣는다. 그리고 우리가 이해한 것을 상대에게 되풀이해서 들려줌으로써 상대의 뜻을 확인할 수 있다. &lt;b&gt;상대를 도와주기 위해 우리의 관심을 해결 방안이나 부탁으로 돌리기 전에, 상대가 자신을 충분히 표현할 수 있는 기회를 주면서 계속해서 공감에 머무른다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;다른 사람에게 공감을 해 주기 위해서는 우리가 먼저 공감이 필요하다. 우리 자신이 방어적이 되거나 남에게 공ㄱ암하기 어려울 때에는 (1) 멈추고, 심호흡을 하고, 자기 공감을 하거나, (2) 비폭력적으로 소리를 지르거나, (3) 잠시 그 자리를 떠나 자신을 위한 공감의 시간을 가진다.&lt;/p&gt;
&lt;/blockquote&gt;</description>
      <category>Thoughts</category>
      <category>비폭력대화</category>
      <category>책리뷰</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/72</guid>
      <comments>https://everycommit.tistory.com/72#entry72comment</comments>
      <pubDate>Thu, 18 Mar 2021 22:03:49 +0900</pubDate>
    </item>
    <item>
      <title>test</title>
      <link>https://everycommit.tistory.com/pages/test</link>
      <description>&lt;p&gt;test&lt;/p&gt;</description>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/pages/test</guid>
      <pubDate>Thu, 25 Feb 2021 10:44:16 +0900</pubDate>
    </item>
    <item>
      <title>ML-Agents을 이용한 간단한 게임 만들기</title>
      <link>https://everycommit.tistory.com/69</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bF70rO/btqXJWnoxO6/oewPaJIuRHHpg337TKDktK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bF70rO/btqXJWnoxO6/oewPaJIuRHHpg337TKDktK/img.png&quot; data-alt=&quot;How to use Machine Learning AI in Unity! (ML-Agents) - CodeMonkey(YouTube)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bF70rO/btqXJWnoxO6/oewPaJIuRHHpg337TKDktK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbF70rO%2FbtqXJWnoxO6%2FoewPaJIuRHHpg337TKDktK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;How to use Machine Learning AI in Unity! (ML-Agents) - CodeMonkey(YouTube)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;머신러닝 강화학습은 위와 같은 사이클로 동작한다.&lt;/p&gt;
&lt;p&gt;Agent는 테스트 환경을 관찰하여 데이터를 얻고(Observation), 그걸 바탕으로 결정을 내린다(Decision).&lt;/p&gt;
&lt;p&gt;결정은 바로 행동으로 이어지고(Action), 행동이 테스트 의도와 맞을 경우 보상을 받는다(Reward).&lt;/p&gt;
&lt;p&gt;이러한 과정의 반복을 통해 Agent는 어떤 결정과 행동이 가장 높은 결과를 내는지 학습한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ML-Agents를 이용하여 간단한 머신러닝을 해보자.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ucdlC/btqXQ6bbC0i/TxKaTb9PH6Kqczs8rgwiFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ucdlC/btqXQ6bbC0i/TxKaTb9PH6Kqczs8rgwiFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ucdlC/btqXQ6bbC0i/TxKaTb9PH6Kqczs8rgwiFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FucdlC%2FbtqXQ6bbC0i%2FTxKaTb9PH6Kqczs8rgwiFK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;파란색 네모는 Player Agent, 하얀색 구는 Goal이다.&lt;/p&gt;
&lt;p&gt;Player가 Goal에 도달하는 것이 목적인 게임이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;# MoveToGoalAgent.cs&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1613658501287&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using Unity.MLAgents;

public class MoveToGoalAgent : Agent
{
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Unity&lt;span&gt;.&lt;/span&gt;MLAgents.Agent를 상속받은 MoveToGoalAgent 클래스를 생성하고, 스크립트를 Agent Object에 넣어준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7gX74/btqXSoJcFTc/akCNwbqf33j7saqaFKjLq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7gX74/btqXSoJcFTc/akCNwbqf33j7saqaFKjLq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7gX74/btqXSoJcFTc/akCNwbqf33j7saqaFKjLq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7gX74%2FbtqXSoJcFTc%2FakCNwbqf33j7saqaFKjLq1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Agent를 상속받는 스크립트를 넣어주면 자동으로 Behavior Parameters 스크립트도 추가된다.&lt;/p&gt;
&lt;p&gt;Agent가 될 MonoBehaviour 스크립트를 먼저 넣어두고, Agent를 나중에 상속받으면 Behavior Parameters는 추가되지 않으니 주의.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1) Observation&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;먼저 Agent의 Observation을 설정해 보자.&lt;/p&gt;
&lt;p&gt;게임은 Player가 Goal에 도달해야 하므로, Agent는 Player와 Goal의 Position 값을 알고 있으면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1613662921424&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using Unity.MLAgents;
using Unity.MLAgents.Sensors;
using UnityEngine;

public class MoveToGoalAgent : Agent
{
    [SerializeField] private Transform targetTransform;
    public override void CollectObservations(VectorSensor sensor)
    {
        sensor.AddObservation(transform.localPosition);    
        sensor.AddObservation(targetTransform.position);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;CollectObservations에서 VectorSensor에 관찰할 데이터를 모두 넣어준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNYTBC/btqXRuQumEa/2ZqDbq5pkZusYDnOGK5Clk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNYTBC/btqXRuQumEa/2ZqDbq5pkZusYDnOGK5Clk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNYTBC/btqXRuQumEa/2ZqDbq5pkZusYDnOGK5Clk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNYTBC%2FbtqXRuQumEa%2F2ZqDbq5pkZusYDnOGK5Clk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Behavior Paramters의 Vector Observation 항목에서 VectorSensor에 넣어준 데이터 갯수만큼 사이즈를 맞춰준다.&lt;/p&gt;
&lt;p&gt;x, y, z값 3개로 이루어진 Vector3 데이터를 두 개 넣었으니 Space Size는 6이 된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Stacked Vectors는 Agent가 다음 추론에 지난 관찰 데이터를 사용하도록 하는 파라미터다. Stacked Vectors가 2일 경우 바로 전 관찰까지 참조하게 된다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;position을 사용하는 이 게임에서는 Agent가 이전 position과 현재 position을 알게 되므로, Player의 방향을 추론에 이용할 수 있게끔 된다는 소리 같다. 아주 간단한 수준의 이 게임에서는 1로 두고 쓴다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2) Decision&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Action을 하기 위해선 Decision이 필요하다.&lt;/p&gt;
&lt;p&gt;Agent에 Decision Requester 스크립트를 넣어 Decision 기능을 수행한다. Decision Requester는 일정한 시간마다 Decision Request를 날리고, Action을 수행하도록 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xkspI/btqYpWd6WeC/PKqAlSGehkdmI0rqNd96K0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xkspI/btqYpWd6WeC/PKqAlSGehkdmI0rqNd96K0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xkspI/btqYpWd6WeC/PKqAlSGehkdmI0rqNd96K0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxkspI%2FbtqYpWd6WeC%2FPKqAlSGehkdmI0rqNd96K0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1614090486343&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/// &amp;lt;summary&amp;gt;
/// The DecisionRequester component automatically request decisions for an
/// &amp;lt;see cref=&quot;Agent&quot;/&amp;gt; instance at regular intervals.
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;remarks&amp;gt;
/// Attach a DecisionRequester component to the same [GameObject] as the
/// &amp;lt;see cref=&quot;Agent&quot;/&amp;gt; component.
///&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Decision을 내리는 방법은 다양하지만 이 게임에서는 간단하게 Decision Requester 스크립트를 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1614090497897&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/// The DecisionRequester component provides a convenient and flexible way to
/// trigger the agent decision making process. Without a DecisionRequester,
/// your &amp;lt;see cref=&quot;Agent&quot;/&amp;gt; implmentation must manually call its
/// &amp;lt;seealso cref=&quot;Agent.RequestDecision&quot;/&amp;gt; function.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3) Action&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;다음으로 Vector Action 값을 설정한다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;여기서 사용하는 머신러닝 알고리즘은 오직 숫자에 의해서만 동작하며,&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Behavior Parameters &amp;gt; Vector Action를 통해 Input을 받을 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Vector Action은 정수만 사용하는 Discrete(이산적)와 -1.0f ~ 1.0f값을 사용하는 Continuous(연속적)의 SpaceType을 설정할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예를 들어 보자.&lt;/p&gt;
&lt;p&gt;Discrete : 고정된 방향으로만 움직이는 자동차 AI를 만든다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Branch 0을 이용하여&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;앞 또는 뒤 2가지 선택사항을 만든다고 하면, Size를 2로 한다. 그럼 VectorAction의 0번 데이터는 0 또는 1이된다. 왼쪽, 중앙, 오른쪽 방향 데이터도 넣는다고 하면, Branch 1 Size를 3으로 하고, 0, 1, 2의 데이터를 받을 수 있다.&lt;/p&gt;
&lt;p&gt;Continuous : 자동차가 360도 어느 방향으로도 갈 수 있게&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;-1.0f ~ 1.0f 값을 받아 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 게임에서 Agent는 x, z축으로 이동하는데, 이동값을 Continuous Type으로 각각 받아서 사용할 예정이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1613664744276&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MoveToGoalAgent : Agent
{
    ...
    public override void OnActionReceived(float[] vectorAction)
    {
        float moveX = vectorAction[0];
        float moveZ = vectorAction[1];
        
        transform.localPosition += new Vector3(moveX, 0, moveZ) * Time.deltaTime * moveSpeed;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;OnActionReceived에서 Agent로부터 받은 VectorAction값을 transform를 이동하는데 사용한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이제 게임이 돌아가는 에피소드를 작성한다.&lt;/p&gt;
&lt;pre id=&quot;code_1613665270802&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MoveToGoalAgent : Agent
{
    ...
    private void OnTriggerEnter(Collider other)
    {
        if (other.TryGetComponent&amp;lt;Goal&amp;gt;(out Goal goal))
        {
            SetReward(1f);
        }

        if (other.TryGetComponent&amp;lt;Wall&amp;gt;(out Wall wall))
        {
            SetReward(-1f);
        }
        
        EndEpisode();
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Player가 Goal과 충돌할 경우 SetReward(1f)를 이용하여 Positive 보상을 주고, 맵을 벗어나 Wall과 충돌할 경우 -1에 해당하는 Negative 보상을 준다.&lt;/p&gt;
&lt;p&gt;어떤 경우라도 EndEpisode()를 호출하여 이번 에피소드를 종료한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1613665431015&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MoveToGoalAgent : Agent
{
    ...
    public override void OnEpisodeBegin()
    {
        transform.localPosition = new Vector3(-2, 1, 0);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;에피소드가 시작될 때는 Player의 위치를 초기위치로 돌려주어 게임을 처음부터 다시 시작한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1613665617462&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MoveToGoalAgent : Agent
{
    ...
    public override void Heuristic(float[] actionsOut)
    {
        actionsOut[0] = Input.GetAxisRaw(&quot;Horizontal&quot;);
        actionsOut[1] = Input.GetAxisRaw(&quot;Vertical&quot;);
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;마지막으로 테스트를 위해 &lt;span style=&quot;color: #333333;&quot;&gt;OnActionReceived로 들어온 Action을 수정하는 메서드를 작성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Heuristic()에서 actionsOut에 넣은 데이터는 OnActionReceived의 파라미터로 전달된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;기능 작업은 완료되었고, 테스트를 해보자.&lt;/p&gt;
&lt;p&gt;Behavior Parameters &amp;gt; Behavior Type에서 Default 또는 HeuristicOnly를 선택한다.&lt;/p&gt;
&lt;p&gt;Default는 Python ML Agent가 돌아가지 않을 때 HeuristicOnly와 동일하게 동작하며, HeuristicOnly는 Agent.Heuristic() 메서드를 동작시킨다. &lt;span style=&quot;color: #333333;&quot;&gt;Default 또는 HeuristicOnly에서 플레이하면 방향키 조작으로 Player를 움직일 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;InferenceOnly는 기존 학습 모델로 동작하는 방식이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bURWyO/btqYkbwKKKA/Aeu6qsOjrp4kCjILpxpwd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bURWyO/btqYkbwKKKA/Aeu6qsOjrp4kCjILpxpwd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bURWyO/btqYkbwKKKA/Aeu6qsOjrp4kCjILpxpwd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbURWyO%2FbtqYkbwKKKA%2FAeu6qsOjrp4kCjILpxpwd1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;1.gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;355&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGBSZ3/btqYgGqShvp/U5ikfRFrSJ6oRgzvuF7CrK/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGBSZ3/btqYgGqShvp/U5ikfRFrSJ6oRgzvuF7CrK/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGBSZ3/btqYgGqShvp/U5ikfRFrSJ6oRgzvuF7CrK/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bGBSZ3/btqYgGqShvp/U5ikfRFrSJ6oRgzvuF7CrK/img.gif&quot; data-filename=&quot;1.gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;355&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이제 Python ML Agent를 실행하여 실제 머신러닝을 돌려보자.&lt;/p&gt;
&lt;p&gt;우선 Python 가상환경을 실행한다.&lt;/p&gt;
&lt;pre id=&quot;code_1614092713226&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;D:\Workspace\Projects\MLAgent&amp;gt;venv\Scripts\activate

(venv) D:\Workspace\Projects\MLAgent&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;mlagents-learn을 실행하는데, --run-id 옵션으로 저장할 모델의 이름을 지정한다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이미 사용한 id일 경우 --force를 지정하면 run-id를 덮어쓰고, --resume을 지정하면 해당 id의 모델을 다시 실행한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1614092778717&quot; class=&quot;cs&quot; data-ke-language=&quot;cs&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(venv) D:\Workspace\Projects\MLAgent&amp;gt;mlagents-learn --run-id=MoveToGoal&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;정상적으로 작동할 경우 아래와 같이 Unity 로고가 나오면서 Unity의 Play모드 진입을 기다린다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvKhIz/btqYpVTNvJt/SaWmhh32P88O83z7zFGnAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvKhIz/btqYpVTNvJt/SaWmhh32P88O83z7zFGnAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvKhIz/btqYpVTNvJt/SaWmhh32P88O83z7zFGnAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvKhIz%2FbtqYpVTNvJt%2FSaWmhh32P88O83z7zFGnAk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Play모드에 진입하면 Agent는 앞서 작성한 코드에 따라 랜덤으로 방향을 움직이기 시작한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;ezgif.com-gif-maker.gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;349&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brz0Yq/btqYhy0hLIk/lcglDCbBbghqNZ57H6nXq1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brz0Yq/btqYhy0hLIk/lcglDCbBbghqNZ57H6nXq1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brz0Yq/btqYhy0hLIk/lcglDCbBbghqNZ57H6nXq1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/brz0Yq/btqYhy0hLIk/lcglDCbBbghqNZ57H6nXq1/img.gif&quot; data-filename=&quot;ezgif.com-gif-maker.gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;349&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;한 가지 고려해야할 사항이 있다. Agent가 끝끝내 Goal을 터치하지 못해 Positive Reward를 얻는 경우가 없게 되면, Agent는 Negative Reward를 피하기 위해 초기 Position 주변을 영원히 맴돌 수 있다.&lt;/p&gt;
&lt;p&gt;이런 경우를 방지하기 위해 Agent의 MaxStep값을 명시해주어야 한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cI3OMG/btqYmHa7MRG/NCD4D61wa7flvnJZqKq3i0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cI3OMG/btqYmHa7MRG/NCD4D61wa7flvnJZqKq3i0/img.png&quot; data-alt=&quot;Max Step의 기본값은 0&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cI3OMG/btqYmHa7MRG/NCD4D61wa7flvnJZqKq3i0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcI3OMG%2FbtqYmHa7MRG%2FNCD4D61wa7flvnJZqKq3i0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Max Step의 기본값은 0&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Max Step은 기본적으로 0으로 설정되어 있으며, 0은 Unlimited를 의미한다. Agent의 Step은 MonoBehaviour.FixedUpdate()와 마찬가지로 초당 50회 동작한다.&lt;/p&gt;
&lt;p&gt;적당히 1000회 정도로 Step을 제한하면 될 것 같다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;마지막으로 Agent의 학습 속도를 높여주기 위해 시뮬레이션을 여러 개 배치한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;ezgif.com-gif-maker (1).gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;330&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IhW3f/btqYnmScEGW/sX1PxOJbpRQe13QSGJCBlk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IhW3f/btqYnmScEGW/sX1PxOJbpRQe13QSGJCBlk/img.gif&quot; data-alt=&quot;노란색은 성공, 빨간색은 실패&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IhW3f/btqYnmScEGW/sX1PxOJbpRQe13QSGJCBlk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/IhW3f/btqYnmScEGW/sX1PxOJbpRQe13QSGJCBlk/img.gif&quot; data-filename=&quot;ezgif.com-gif-maker (1).gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;330&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노란색은 성공, 빨간색은 실패&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;일정 Step마다 학습 결과가 출력되고, 500000번째 Step에서 모델은 저장/종료된다.&lt;/p&gt;
&lt;pre id=&quot;code_1614095502509&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;2021-02-24 00:45:16 INFO [stats.py:139] MoveToGoal. Step: 50000. Time Elapsed: 19.279 s. Mean Reward: 0.148. Std of Reward: 0.986. Training.
2021-02-24 00:45:30 INFO [stats.py:139] MoveToGoal. Step: 100000. Time Elapsed: 33.543 s. Mean Reward: 0.113. Std of Reward: 0.992. Training.
2021-02-24 00:45:44 INFO [stats.py:139] MoveToGoal. Step: 150000. Time Elapsed: 47.892 s. Mean Reward: 0.316. Std of Reward: 0.948. Training.
2021-02-24 00:45:59 INFO [stats.py:139] MoveToGoal. Step: 200000. Time Elapsed: 62.353 s. Mean Reward: 0.653. Std of Reward: 0.758. Training.
2021-02-24 00:46:14 INFO [stats.py:139] MoveToGoal. Step: 250000. Time Elapsed: 77.498 s. Mean Reward: 0.935. Std of Reward: 0.356. Training.
2021-02-24 00:46:29 INFO [stats.py:139] MoveToGoal. Step: 300000. Time Elapsed: 92.672 s. Mean Reward: 0.989. Std of Reward: 0.150. Training.
2021-02-24 00:46:44 INFO [stats.py:139] MoveToGoal. Step: 350000. Time Elapsed: 107.837 s. Mean Reward: 0.995. Std of Reward: 0.104. Training.
2021-02-24 00:47:00 INFO [stats.py:139] MoveToGoal. Step: 400000. Time Elapsed: 123.088 s. Mean Reward: 0.986. Std of Reward: 0.165. Training.
2021-02-24 00:47:15 INFO [stats.py:139] MoveToGoal. Step: 450000. Time Elapsed: 138.620 s. Mean Reward: 0.996. Std of Reward: 0.094. Training.
2021-02-24 00:47:30 INFO [stats.py:139] MoveToGoal. Step: 500000. Time Elapsed: 153.751 s. Mean Reward: 0.995. Std of Reward: 0.100. Training.
2021-02-24 00:47:30 INFO [model_serialization.py:104] Converting to results\Test5\MoveToGoal\MoveToGoal-499984.onnx
2021-02-24 00:47:30 INFO [model_serialization.py:116] Exported results\Test5\MoveToGoal\MoveToGoal-499984.onnx
2021-02-24 00:47:30 INFO [model_serialization.py:104] Converting to results\Test5\MoveToGoal\MoveToGoal-500050.onnx
2021-02-24 00:47:30 INFO [model_serialization.py:116] Exported results\Test5\MoveToGoal\MoveToGoal-500050.onnx
2021-02-24 00:47:30 INFO [torch_model_saver.py:116] Copied results\Test5\MoveToGoal\MoveToGoal-500050.onnx to results\Test5\MoveToGoal.onnx.
2021-02-24 00:47:30 INFO [trainer_controller.py:85] Saved Model&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;학습 결과는 프로젝트 Root/results 경로에 mlagents-learning의 id 이름 폴더에 저장된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b84MOh/btqYiC9gLLM/bLhkm423eQPemnWH7zU9r0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b84MOh/btqYiC9gLLM/bLhkm423eQPemnWH7zU9r0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b84MOh/btqYiC9gLLM/bLhkm423eQPemnWH7zU9r0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb84MOh%2FbtqYiC9gLLM%2FbLhkm423eQPemnWH7zU9r0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;모델은 Agent이름.onnx로 저장된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nAwZC/btqYnmLoFqg/ewjgUf7s9x3aDKHockDGKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nAwZC/btqYnmLoFqg/ewjgUf7s9x3aDKHockDGKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nAwZC/btqYnmLoFqg/ewjgUf7s9x3aDKHockDGKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnAwZC%2FbtqYnmLoFqg%2FewjgUf7s9x3aDKHockDGKk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;해당 모델은 BehaviorParameters &amp;gt; BehaviorType을 InferenceOnly로 두고, Model에 지정하여 바로 사용해 볼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbaXNo/btqYn53H4Qw/ai1kq830Dw8lNEtLIwKpJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbaXNo/btqYn53H4Qw/ai1kq830Dw8lNEtLIwKpJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbaXNo/btqYn53H4Qw/ai1kq830Dw8lNEtLIwKpJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbaXNo%2FbtqYn53H4Qw%2Fai1kq830Dw8lNEtLIwKpJ0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;git) &lt;a href=&quot;https://github.com/JJ03/MoveToGoal&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/JJ03/MoveToGoal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;참고)&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;1. CodeMonkey - How to use Machine Learning AI in Unity! (ML-Agents) - &lt;a href=&quot;https://youtu.be/zPFU30tbyKs&quot;&gt;youtu.be/zPFU30tbyKs&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;2. UnityDocs - ML Agents 1.7.2-preview - &lt;a href=&quot;https://docs.unity3d.com/Packages/com.unity.ml-agents@1.7/api/Unity.MLAgents.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;docs.unity3d.com/Packages/com.unity.ml-agents@1.7/api/Unity.MLAgents.html&lt;/a&gt;&lt;/p&gt;</description>
      <category>Unity &amp;amp; C#/Machine Learning</category>
      <category>machinelearning</category>
      <category>MLAgents</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/69</guid>
      <comments>https://everycommit.tistory.com/69#entry69comment</comments>
      <pubDate>Wed, 24 Feb 2021 00:56:37 +0900</pubDate>
    </item>
    <item>
      <title>Unity ML-Agents 설치</title>
      <link>https://everycommit.tistory.com/68</link>
      <description>&lt;p&gt;&lt;a href=&quot;https://unity.com/kr/products/machine-learning-agents&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;unity.com/kr/products/machine-learning-agents&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1613574496179&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;머신러닝 에이전트 | Unity&quot; data-og-description=&quot;심층 학습 기술을 활용하는 툴킷으로 지능적인 반응형 에이전트를 만들어 보세요.&quot; data-og-host=&quot;unity.com&quot; data-og-source-url=&quot;https://unity.com/kr/products/machine-learning-agents&quot; data-og-url=&quot;https://unity.com/kr/products/machine-learning-agents&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bbKiX7/hyJjKkGoYj/IJfbjCwLPkkoVQOSgaThvK/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/zmy6k/hyJiARu4oC/Z6OXtEbFsbDSgV4mclo4MK/img.jpg?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/H28eZ/hyJip3w1RJ/AYxDA1GCMWTB3JI5aQ2ikk/img.jpg?width=768&amp;amp;height=512&amp;amp;face=0_0_768_512&quot;&gt;&lt;a href=&quot;https://unity.com/kr/products/machine-learning-agents&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://unity.com/kr/products/machine-learning-agents&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bbKiX7/hyJjKkGoYj/IJfbjCwLPkkoVQOSgaThvK/img.jpg?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/zmy6k/hyJiARu4oC/Z6OXtEbFsbDSgV4mclo4MK/img.jpg?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/H28eZ/hyJip3w1RJ/AYxDA1GCMWTB3JI5aQ2ikk/img.jpg?width=768&amp;amp;height=512&amp;amp;face=0_0_768_512');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;머신러닝 에이전트 | Unity&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;심층 학습 기술을 활용하는 툴킷으로 지능적인 반응형 에이전트를 만들어 보세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;unity.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Unity에서 간단하게 사용할 수 있는 머신러닝 툴을 제공한다. 몇 몇 설정만으로 복잡하고 고도화된 머신러닝 코딩 없이 ML-Agents를 이용하여 머신러닝을 구현해볼 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;0. 설치/작업 환경&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;Windows10&lt;/p&gt;
&lt;p&gt;Windows PowerShell&lt;/p&gt;
&lt;p&gt;Unity 2021.1.0b5 (개인 작업용이기 때문에 그냥 최신 버전)&lt;/p&gt;
&lt;p&gt;ML Agents 1.7.2&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Python 설치&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;ML-Agents는 Python 라이브러리를 사용하여 돌아간다. Python 3.6.x, 3.7.x, 3.8.x 버전을 설치한다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.python.org/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.python.org/downloads/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1613575014036&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Download Python&quot; data-og-description=&quot;The official home of the Python Programming Language&quot; data-og-host=&quot;www.python.org&quot; data-og-source-url=&quot;https://www.python.org/downloads/&quot; data-og-url=&quot;https://www.python.org/downloads/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cqCd3U/hyJjQkTScv/TSkhiKTYwKbeMXywDB7XnK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.python.org/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.python.org/downloads/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cqCd3U/hyJjQkTScv/TSkhiKTYwKbeMXywDB7XnK/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Download Python&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;The official home of the Python Programming Language&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.python.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Python 내부에서 사용하는 라이브러리 중 일부가 3.9.x 버전과 32비트 버전을 지원하지 않기 때문에 3.7.9 64비트 버전으로 설치했다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OZwfE/btqXJVHCZmy/k85GWFVYJKWgZBCinfjcSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OZwfE/btqXJVHCZmy/k85GWFVYJKWgZBCinfjcSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OZwfE/btqXJVHCZmy/k85GWFVYJKWgZBCinfjcSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOZwfE%2FbtqXJVHCZmy%2Fk85GWFVYJKWgZBCinfjcSk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;PowerShell을 관리자 권한으로 실행하여 설치된 python 버전을 확인한다.&lt;/p&gt;
&lt;pre id=&quot;code_1613575427249&quot; class=&quot;python&quot; style=&quot;display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; python --version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y7ms0/btqXMeNdnNo/w93gMdLwXMpCTOQ0neKZO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y7ms0/btqXMeNdnNo/w93gMdLwXMpCTOQ0neKZO1/img.png&quot; data-alt=&quot;python만 입력해 python을 실행해도 버전이 나온다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y7ms0/btqXMeNdnNo/w93gMdLwXMpCTOQ0neKZO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy7ms0%2FbtqXMeNdnNo%2Fw93gMdLwXMpCTOQ0neKZO1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;python만 입력해 python을 실행해도 버전이 나온다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Unity 프로젝트 경로에 python 가상환경을 하나 생성한다.&lt;/p&gt;
&lt;pre id=&quot;code_1613575644270&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; python -m venv venv&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQWhvy/btqXMfei8Bz/kvD2mLZnTUR7IeAh7qvCS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQWhvy/btqXMfei8Bz/kvD2mLZnTUR7IeAh7qvCS0/img.png&quot; data-alt=&quot;venv 이름의 python 가상환경&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQWhvy/btqXMfei8Bz/kvD2mLZnTUR7IeAh7qvCS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQWhvy%2FbtqXMfei8Bz%2FkvD2mLZnTUR7IeAh7qvCS0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;venv 이름의 python 가상환경&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;생성된 가상환경 경로에서 venv/Scripts/activate를 실행하여 가상환경을 활성화 시킨다.&lt;/p&gt;
&lt;pre id=&quot;code_1613575797149&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; .\venv\Scripts\activate&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lR1SJ/btqXD4FmgC7/9wKpA7Z7YyOG5t5iTHlpp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lR1SJ/btqXD4FmgC7/9wKpA7Z7YyOG5t5iTHlpp0/img.png&quot; data-alt=&quot;앞쪽에 (venv)라는게 생겨 가상환경임을 보여준다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lR1SJ/btqXD4FmgC7/9wKpA7Z7YyOG5t5iTHlpp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlR1SJ%2FbtqXD4FmgC7%2F9wKpA7Z7YyOG5t5iTHlpp0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;앞쪽에 (venv)라는게 생겨 가상환경임을 보여준다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이제 이 가상환경에 설치하는 라이브러리는 이 환경 안에서만 동작한다. 가상환경을 바꿀 경우 같은 라이브러리도 새로 설치해 주어야 한다.&lt;/p&gt;
&lt;p&gt;Python 패키지 인스톨러인 pip를 설치/업그레이드 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1613575984935&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; python -m pip install --upgrade pip&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;pip를 이용하여 딥러닝 라이브러리 pytorch를 설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1613576074604&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; pip install torch==1.7.0 -f https://download.pytorch.org/whl/torch_stable.html&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이번엔 mlagents를 설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1613576252568&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; pip install mlagents&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;만약 위와 같이 설치시 dependency conflicts 에러가 날 경우 아래 옵션을 넣어서 설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1613576301498&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; pip install mlagents --use-feature=2020-resolver&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;mlagents 설치를 확인한다.&lt;/p&gt;
&lt;pre id=&quot;code_1613576427609&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt; mlagents-learn --help&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDXGpR/btqXKvhCjWE/MSRzojphpx4RRwnKWl6NR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDXGpR/btqXKvhCjWE/MSRzojphpx4RRwnKWl6NR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDXGpR/btqXKvhCjWE/MSRzojphpx4RRwnKWl6NR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDXGpR%2FbtqXKvhCjWE%2FMSRzojphpx4RRwnKWl6NR1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. Unity Package 설치&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;Window &amp;gt; Package Manager에서 Unity Registry를 선택하고 ML Agents를 설치한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vpHxj/btqXHhqHnPT/1s2HKIeXfkXR9UTIVuO3ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vpHxj/btqXHhqHnPT/1s2HKIeXfkXR9UTIVuO3ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vpHxj/btqXHhqHnPT/1s2HKIeXfkXR9UTIVuO3ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvpHxj%2FbtqXHhqHnPT%2F1s2HKIeXfkXR9UTIVuO3ck%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위 과정에서 문제가 있거나 &lt;span style=&quot;color: #333333;&quot;&gt;기타 다른 버전을 설치할 경우&lt;/span&gt;&amp;nbsp;GitHub 페이지에서 최신 업데이트된 문서를 확인해 보자.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Unity-Technologies/ml-agents&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/Unity-Technologies/ml-agents&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1613576698144&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;object&quot; data-og-title=&quot;Unity-Technologies/ml-agents&quot; data-og-description=&quot;Unity Machine Learning Agents Toolkit. Contribute to Unity-Technologies/ml-agents development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/Unity-Technologies/ml-agents&quot; data-og-url=&quot;https://github.com/Unity-Technologies/ml-agents&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/MA2Li/hyJirG2L0h/VdvWOAkjfuqD3lRcdvpzMK/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400,https://scrap.kakaocdn.net/dn/kx8ce/hyJjZa4UX2/wGKCMPactD9i7UpPjQZfJ1/img.png?width=2843&amp;amp;height=1308&amp;amp;face=0_0_2843_1308&quot;&gt;&lt;a href=&quot;https://github.com/Unity-Technologies/ml-agents&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/Unity-Technologies/ml-agents&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/MA2Li/hyJirG2L0h/VdvWOAkjfuqD3lRcdvpzMK/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400,https://scrap.kakaocdn.net/dn/kx8ce/hyJjZa4UX2/wGKCMPactD9i7UpPjQZfJ1/img.png?width=2843&amp;amp;height=1308&amp;amp;face=0_0_2843_1308');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Unity-Technologies/ml-agents&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Unity Machine Learning Agents Toolkit. Contribute to Unity-Technologies/ml-agents development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Unity &amp;amp; C#/Machine Learning</category>
      <category>machinelearning</category>
      <category>MLAgents</category>
      <author>coucou3</author>
      <guid isPermaLink="true">https://everycommit.tistory.com/68</guid>
      <comments>https://everycommit.tistory.com/68#entry68comment</comments>
      <pubDate>Thu, 18 Feb 2021 00:46:08 +0900</pubDate>
    </item>
  </channel>
</rss>