<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>miiingo riiingo</title>
    <link>https://miiingo.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 30 Jun 2026 23:29:31 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>miiingo</managingEditor>
    <item>
      <title>[Python] IntelliJ에서 python 실행을 위한 세팅 방법</title>
      <link>https://miiingo.tistory.com/391</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Python 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(MacOS 기준) homebrew를 통해 python3를 설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1724299720460&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install python3&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 python3 설치 시 아래와 같은 &quot;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;Error:&lt;/b&gt; &lt;b&gt;No developer tools installed.&lt;/b&gt;&lt;/span&gt;&quot; 에러가 발생한다면, 추가로 아래 명령어를 실행하고 다시 설치를 진행해주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1724299845775&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;xcode-select --install&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2130&quot; data-origin-height=&quot;1066&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bO8Gs1/btsJaL664u5/6svCkCG8wPi8meJE7U9ZWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bO8Gs1/btsJaL664u5/6svCkCG8wPi8meJE7U9ZWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bO8Gs1/btsJaL664u5/6svCkCG8wPi8meJE7U9ZWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbO8Gs1%2FbtsJaL664u5%2F6svCkCG8wPi8meJE7U9ZWK%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;2130&quot; height=&quot;1066&quot; data-origin-width=&quot;2130&quot; data-origin-height=&quot;1066&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 완료되면 python3 버전 명령을 실행해본다.&lt;/p&gt;
&lt;pre id=&quot;code_1724299970676&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;python3 --version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본적으로 설치되는 python 버전은 2이기 때문에, python3를 설치한 경우에는 명령어를 python3, pip3 로 실행해줘야한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvXGQQ/btsJaqa0rnX/aqRkDWVIj5W7qNfblKxhSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvXGQQ/btsJaqa0rnX/aqRkDWVIj5W7qNfblKxhSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvXGQQ/btsJaqa0rnX/aqRkDWVIj5W7qNfblKxhSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvXGQQ%2FbtsJaqa0rnX%2FaqRkDWVIj5W7qNfblKxhSk%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;260&quot; height=&quot;134&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;284&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;h2 data-ke-size=&quot;size26&quot;&gt;2. IntelliJ에 Python 플러그인 설치&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(MacOS 기준) IntelliJ IDEA &amp;gt; Settings &amp;gt; Plugins &amp;gt; 'python' 검색 후 Python 플러그인 설치(Install)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1968&quot; data-origin-height=&quot;1424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8NRFO/btsJaChTO3i/i3nKK4h9EB9zxRAObuJ1nK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8NRFO/btsJaChTO3i/i3nKK4h9EB9zxRAObuJ1nK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8NRFO/btsJaChTO3i/i3nKK4h9EB9zxRAObuJ1nK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8NRFO%2FbtsJaChTO3i%2Fi3nKK4h9EB9zxRAObuJ1nK%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;1968&quot; height=&quot;1424&quot; data-origin-width=&quot;1968&quot; data-origin-height=&quot;1424&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;설치가 완료되면 .py 파일들에 Python 아이콘이 표시되는 게 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(만약 아이콘이 제대로 보이지 않는다면 IntelliJ를 껐다가 다시 켜보길!)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;490&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qQWo6/btsJcBhkmHo/lv2nWwAQcMTUfB6uwKUOIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qQWo6/btsJcBhkmHo/lv2nWwAQcMTUfB6uwKUOIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qQWo6/btsJcBhkmHo/lv2nWwAQcMTUfB6uwKUOIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqQWo6%2FbtsJcBhkmHo%2Flv2nWwAQcMTUfB6uwKUOIK%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;240&quot; height=&quot;244&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;490&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;h2 data-ke-size=&quot;size26&quot;&gt;3. IntelliJ Project 세팅&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;(MacOS 기준)&lt;span&gt; File &amp;gt; Project Structure... &amp;gt; Project Settings &amp;gt; Project에서 &lt;b&gt;SDK&lt;/b&gt; 항목을 설치한 Python 버전으로 지정한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1860&quot; data-origin-height=&quot;1256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2atRN/btsJasmnR6t/XFHMcjAjgbI6wLfncH2LLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2atRN/btsJasmnR6t/XFHMcjAjgbI6wLfncH2LLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2atRN/btsJasmnR6t/XFHMcjAjgbI6wLfncH2LLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2atRN%2FbtsJasmnR6t%2FXFHMcjAjgbI6wLfncH2LLk%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;1860&quot; height=&quot;1256&quot; data-origin-width=&quot;1860&quot; data-origin-height=&quot;1256&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;h2 data-ke-size=&quot;size26&quot;&gt;4. 필요 라이브러리 다운로드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;requirements.txt 파일을 이용해 프로젝트에 필요한 라이브러리들을 설치한다.&lt;/p&gt;
&lt;pre id=&quot;code_1724301630811&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip3 install -r requirements.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 설치 시 &quot;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;error:&lt;/span&gt; &lt;span style=&quot;color: #ee2323;&quot;&gt;externally-managed-environment&lt;/span&gt;&lt;/b&gt;&quot; 에러가 발생한다면, 아래 명령을 실행해 패키지 설치 권한을 풀어야한다.&lt;/p&gt;
&lt;pre id=&quot;code_1724301754311&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;python3 -m pip config set global.break-system-packages true&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3148&quot; data-origin-height=&quot;1242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckOpfQ/btsJaA5DvQe/wtwxrKFOm8d9KaMRvKLvY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckOpfQ/btsJaA5DvQe/wtwxrKFOm8d9KaMRvKLvY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckOpfQ/btsJaA5DvQe/wtwxrKFOm8d9KaMRvKLvY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckOpfQ%2FbtsJaA5DvQe%2FwtwxrKFOm8d9KaMRvKLvY1%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;3148&quot; height=&quot;1242&quot; data-origin-width=&quot;3148&quot; data-origin-height=&quot;1242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 완료되면 .py 파일 내에서 빨간줄로 표시되던 부분이 모두 사라진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5. IntelliJ에서 python 파일 실행&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 IntelliJ에서 python 파일을 직접 실행할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행하려는 파일 &amp;gt; 마우스 오른쪽 버튼 &amp;gt; &lt;b&gt;Run '&amp;lt;파일명&amp;gt;'&lt;/b&gt; 을 클릭하면 해당 python 파일이 실행된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvqfXJ/btsJcjIczdc/b7wQxJauNLO7YKkvfavbZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvqfXJ/btsJcjIczdc/b7wQxJauNLO7YKkvfavbZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvqfXJ/btsJcjIczdc/b7wQxJauNLO7YKkvfavbZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvqfXJ%2FbtsJcjIczdc%2Fb7wQxJauNLO7YKkvfavbZK%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;331&quot; height=&quot;709&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;1400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>python #python3 #pip #pip3 #파이썬 #파이썬3 #인텔리제이 #intellij</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/391</guid>
      <comments>https://miiingo.tistory.com/391#entry391comment</comments>
      <pubDate>Thu, 22 Aug 2024 13:49:19 +0900</pubDate>
    </item>
    <item>
      <title>[Programmers] Lv. 1 - 가장 많이 받은 선물(2024 KAKAO WINTER INTERNSHIP): javascript 문제 풀이</title>
      <link>https://miiingo.tistory.com/390</link>
      <description>&lt;h2&gt;문제&lt;/h2&gt;
&lt;p&gt;원본 사이트: &lt;a href=&quot;https://school.programmers.co.kr/learn/courses/30/lessons/258712&quot;&gt;https://school.programmers.co.kr/learn/courses/30/lessons/258712&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;문제 설명&lt;/h3&gt;
&lt;p&gt;선물을 직접 전하기 힘들 때 카카오톡 선물하기 기능을 이용해 축하 선물을 보낼 수 있습니다. 당신의 친구들이 이번 달까지 선물을 주고받은 기록을 바탕으로 다음 달에 누가 선물을 많이 받을지 예측하려고 합니다.&lt;/p&gt;
&lt;p&gt;두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다.&lt;br&gt;예를 들어 A가 B에게 선물을 5번 줬고, B가 A에게 선물을 3번 줬다면 다음 달엔 A가 B에게 선물을 하나 받습니다.&lt;br&gt;두 사람이 선물을 주고받은 기록이 하나도 없거나 주고받은 수가 같다면, 선물 지수가 더 큰 사람이 선물 지수가 더 작은 사람에게 선물을 하나 받습니다.&lt;br&gt;선물 지수는 이번 달까지 자신이 친구들에게 준 선물의 수에서 받은 선물의 수를 뺀 값입니다.&lt;br&gt;예를 들어 A가 친구들에게 준 선물이 3개고 받은 선물이 10개라면 A의 선물 지수는 -7입니다. B가 친구들에게 준 선물이 3개고 받은 선물이 2개라면 B의 선물 지수는 1입니다. 만약 A와 B가 선물을 주고받은 적이 없거나 정확히 같은 수로 선물을 주고받았다면, 다음 달엔 B가 A에게 선물을 하나 받습니다.&lt;br&gt;만약 두 사람의 선물 지수도 같다면 다음 달에 선물을 주고받지 않습니다.&lt;br&gt;위에서 설명한 규칙대로 다음 달에 선물을 주고받을 때, 당신은 선물을 가장 많이 받을 친구가 받을 선물의 수를 알고 싶습니다.&lt;/p&gt;
&lt;p&gt;친구들의 이름을 담은 1차원 문자열 배열 friends 이번 달까지 친구들이 주고받은 선물 기록을 담은 1차원 문자열 배열 gifts가 매개변수로 주어집니다. 이때, 다음달에 가장 많은 선물을 받는 친구가 받을 선물의 수를 return 하도록 solution 함수를 완성해 주세요.&lt;/p&gt;
&lt;h3&gt;제한사항&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;2 ≤ friends의 길이 = 친구들의 수 ≤ 50&lt;ul&gt;
&lt;li&gt;friends의 원소는 친구의 이름을 의미하는 알파벳 소문자로 이루어진 길이가 10 이하인 문자열입니다.&lt;/li&gt;
&lt;li&gt;이름이 같은 친구는 없습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;1 ≤ gifts의 길이 ≤ 10,000&lt;ul&gt;
&lt;li&gt;gifts의 원소는 &amp;quot;A B&amp;quot; 형태의 문자열입니다. A는 선물을 준 친구의 이름을 B는 선물을 받은 친구의 이름을 의미하며 공백 하나로 구분됩니다.&lt;/li&gt;
&lt;li&gt;A와 B는 friends의 원소이며 A와 B가 같은 이름인 경우는 존재하지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;입출력 예&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;friends&lt;/th&gt;
&lt;th&gt;gifts&lt;/th&gt;
&lt;th&gt;result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;[&amp;quot;muzi&amp;quot;, &amp;quot;ryan&amp;quot;, &amp;quot;frodo&amp;quot;, &amp;quot;neo&amp;quot;]&lt;/td&gt;
&lt;td&gt;[&amp;quot;muzi frodo&amp;quot;, &amp;quot;muzi frodo&amp;quot;, &amp;quot;ryan muzi&amp;quot;, &amp;quot;ryan muzi&amp;quot;, &amp;quot;ryan muzi&amp;quot;, &amp;quot;frodo muzi&amp;quot;, &amp;quot;frodo ryan&amp;quot;, &amp;quot;neo muzi&amp;quot;]&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[&amp;quot;joy&amp;quot;, &amp;quot;brad&amp;quot;, &amp;quot;alessandro&amp;quot;, &amp;quot;conan&amp;quot;, &amp;quot;david&amp;quot;]&lt;/td&gt;
&lt;td&gt;[&amp;quot;alessandro brad&amp;quot;, &amp;quot;alessandro joy&amp;quot;, &amp;quot;alessandro conan&amp;quot;, &amp;quot;david alessandro&amp;quot;, &amp;quot;alessandro david&amp;quot;]&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[&amp;quot;a&amp;quot;, &amp;quot;b&amp;quot;, &amp;quot;c&amp;quot;]&lt;/td&gt;
&lt;td&gt;[&amp;quot;a b&amp;quot;, &amp;quot;b a&amp;quot;, &amp;quot;c a&amp;quot;, &amp;quot;a c&amp;quot;, &amp;quot;a c&amp;quot;, &amp;quot;c a&amp;quot;]&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;h3&gt;입출력 예 설명&lt;/h3&gt;
&lt;h4&gt;입출력 예 #1&lt;/h4&gt;
&lt;p&gt;주고받은 선물과 선물 지수를 표로 나타내면 다음과 같습니다.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;↓준 사람 \ 받은 사람→&lt;/th&gt;
&lt;th&gt;muzi&lt;/th&gt;
&lt;th&gt;ryan&lt;/th&gt;
&lt;th&gt;frodo&lt;/th&gt;
&lt;th&gt;neo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;muzi&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ryan&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;frodo&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;neo&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;이름&lt;/th&gt;
&lt;th&gt;준 선물&lt;/th&gt;
&lt;th&gt;받은 선물&lt;/th&gt;
&lt;th&gt;선물 지수&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;muzi&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;-3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ryan&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;frodo&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;neo&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;muzi는 선물을 더 많이 줬던 frodo에게서 선물을 하나 받습니다.&lt;br&gt;ryan은 선물을 더 많이 줬던 muzi에게서 선물을 하나 받고, 선물을 주고받지 않았던 neo보다 선물 지수가 커 선물을 하나 받습니다.&lt;br&gt;frodo는 선물을 더 많이 줬던 ryan에게 선물을 하나 받습니다.&lt;br&gt;neo는 선물을 더 많이 줬던 muzi에게서 선물을 하나 받고, 선물을 주고받지 않았던 frodo보다 선물 지수가 커 선물을 하나 받습니다.&lt;/p&gt;
&lt;p&gt;다음달에 가장 선물을 많이 받는 사람은 ryan과 neo이고 2개의 선물을 받습니다. 따라서 2를 return 해야 합니다.&lt;/p&gt;
&lt;h4&gt;입출력 예 #2&lt;/h4&gt;
&lt;p&gt;주고받은 선물과 선물 지수를 표로 나타내면 다음과 같습니다.  &lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;↓준 사람 \ 받은 사람→&lt;/th&gt;
&lt;th&gt;joy&lt;/th&gt;
&lt;th&gt;brad&lt;/th&gt;
&lt;th&gt;alessandro&lt;/th&gt;
&lt;th&gt;conan&lt;/th&gt;
&lt;th&gt;david&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;joy&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;brad&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;alessandro&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;conan&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;david&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;이름&lt;/th&gt;
&lt;th&gt;준 선물&lt;/th&gt;
&lt;th&gt;받은 선물&lt;/th&gt;
&lt;th&gt;선물 지수&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;joy&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;-1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;brad&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;-1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;alessandro&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;conan&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;-1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;david&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;alessandro가 선물을 더 많이 줬던 joy, brad, conan에게서 선물을 3개 받습니다. 선물을 하나씩 주고받은 david보다 선물 지수가 커 선물을 하나 받습니다.&lt;br&gt;david는 선물을 주고받지 않았던 joy, brad, conan보다 선물 지수가 커 다음 달에 선물을 3개 받습니다.&lt;br&gt;joy, brad, conan은 선물을 받지 못합니다.&lt;/p&gt;
&lt;p&gt;다음달에 가장 선물을 많이 받는 사람은 alessandro이고 4개의 선물을 받습니다. 따라서 4를 return 해야 합니다.&lt;/p&gt;
&lt;h4&gt;입출력 예 #3&lt;/h4&gt;
&lt;p&gt;a와 b, a와 c, b와 c 사이에 서로 선물을 주고받은 수도 같고 세 사람의 선물 지수도 0으로 같아 다음 달엔 아무도 선물을 받지 못합니다. 따라서 0을 return 해야 합니다.&lt;/p&gt;
&lt;h2&gt;답안 (+12점)&lt;/h2&gt;
&lt;h3&gt;소스 코드&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;function solution(friends, gifts) {
    var answer = 0;

    let friendsCnt = friends.length;
    let recordsArray = [];       // 친구들 간의 선물 주고 받은 기록
    let pointsArray = [];        // 선물 지수
    let nextGifts = new Array(friendsCnt).fill(0);        // 다음 달에 받을 선물 개수

    // 친구들의 선물 현황 초기화
    friends.reduce((acc, friend, idx) =&amp;gt; {
        // recordsArray 배열 초기화(이차원 배열)
        (arr = []).length = friendsCnt;
        arr.fill(0);
        recordsArray.push(arr);
        // pointsArray 배열 초기화(이차원 배열)
        pointsArray.push({
            name: friend,
            gives: 0,
            takes: 0,
            points: 0
        });
    }, 0);

    // 친구들의 선물 기록
    gifts.reduce((acc, gift, idx) =&amp;gt; {
        let [giver, taker] = gift.split(&amp;#39; &amp;#39;);
        let giverIdx = pointsArray.findIndex(({name}) =&amp;gt; giver === name);
        let takerIdx = pointsArray.findIndex(({name}) =&amp;gt; taker === name);
        recordsArray[giverIdx][takerIdx]++;
        pointsArray[giverIdx].gives++;
        pointsArray[giverIdx].points++;
        pointsArray[takerIdx].takes++;
        pointsArray[takerIdx].points--;
    }, 0);
    // console.log(&amp;quot;recordsArray=%o&amp;quot;,recordsArray);
    // console.log(&amp;quot;pointsArray=%o&amp;quot;,pointsArray);    

    // 다음 달에 받을 선물 계산
    for(let i=0; i&amp;lt;friendsCnt-1; i++) {
        for(let j=i+1; j&amp;lt;friendsCnt; j++) {
            // 두 사람 중 선물을 많이 준 사람이 다음달 선물을 받음
            if(recordsArray[i][j] &amp;gt; recordsArray[j][i]){
                nextGifts[i]++;
            }
            else if(recordsArray[i][j] &amp;lt; recordsArray[j][i]){
                nextGifts[j]++;
            }
            // 선물을 주고받은 기록이 없거나 주고받은 수가 같으면 선물 지수가 더 큰 사람이 선물을 받음
            else if((recordsArray[i][j]==0 &amp;amp;&amp;amp; recordsArray[j][i]==0) || recordsArray[i][j] == recordsArray[j][i]) {
                if(pointsArray[i].points &amp;gt; pointsArray[j].points){
                    nextGifts[i]++;
                }
                else if(pointsArray[i].points &amp;lt; pointsArray[j].points){
                    nextGifts[j]++;
                }
            }
        }
    }
    // console.log(nextGifts);

    // 가장 많은 선물을 받는 친구가 받을 선물 개수
    answer = Math.max.apply(null, nextGifts);
    // console.log(&amp;quot;가장 많은 선물=&amp;quot;+answer);

    return answer;
}&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;코드 설명&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;배열 생성 및 for문을 위한 친구들 총 인원 수를 friendsCnt 변수에 저장&lt;/li&gt;
&lt;li&gt;recordsArray 변수에 친구들 간의 주고받은 선물 내역 저장&lt;ul&gt;
&lt;li&gt;행: 준 사람, 열: 받은 사람 (ex: recordsArray[giver][taker])&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;pointsArray 변수에 개인별 선물 지수 계산&lt;ul&gt;
&lt;li&gt;name: 이름&lt;/li&gt;
&lt;li&gt;gives: 준 횟수&lt;/li&gt;
&lt;li&gt;takes: 받은 횟수&lt;/li&gt;
&lt;li&gt;points: 선물 지수&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;gifts 배열을 순차적으로 돌며 &amp;quot; &amp;quot;으로 split해 준 사람(giver)과 받은 사람(taker)을 구분&lt;/li&gt;
&lt;li&gt;recordsArray 배열에서 준 사람(giver)을 행, 받은 사람(taker)을 열로 구분해 ++&lt;/li&gt;
&lt;li&gt;findIndex 함수로 준 사람(giver)과 받은 사람(taker)의 인덱스 값을 찾아 준 선물(gives), 받은 선물(takes), 선물 지수(points) 값을 업데이트&lt;/li&gt;
&lt;li&gt;recordsArray 배열을 기준으로 for문을 돌며 각자 다음 달에 받을 선물 개수를 계산해 nextGifts 배열에 저장&lt;ul&gt;
&lt;li&gt;두 사람 중 선물을 많이 준 사람이 다음달 선물을 받음&lt;/li&gt;
&lt;li&gt;선물을 주고받은 기록이 없거나 주고받은 수가 같으면 선물 지수가 더 큰 사람이 선물을 받음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;nextGifts 배열 중 가장 큰 값을 answer에 저장하고 answer 값을 return&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>알고리즘/Programmers</category>
      <category>javascript</category>
      <category>LV1</category>
      <category>programmers</category>
      <category>가장많이받은선물</category>
      <category>문제풀이</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>풀이</category>
      <category>해결방법</category>
      <category>해설</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/390</guid>
      <comments>https://miiingo.tistory.com/390#entry390comment</comments>
      <pubDate>Fri, 26 Jul 2024 14:42:00 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS] CentOS7에서 디스크 사용량이 많은 디렉터리 확인</title>
      <link>https://miiingo.tistory.com/389</link>
      <description>&lt;pre id=&quot;code_1650956100281&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo du -ckx | sort -n &amp;gt; ~/disk-usage
# =&amp;gt; ~/disk-usage 파일에 디스크 사용량이 많은 순으로 내용이 저장됨

tail -f ~/disk-usage
# =&amp;gt; ~/disk-usage 파일의 내용을 보여줌&lt;/code&gt;&lt;/pre&gt;</description>
      <category>OS/CentOS</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/389</guid>
      <comments>https://miiingo.tistory.com/389#entry389comment</comments>
      <pubDate>Tue, 26 Apr 2022 15:55:04 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js] nodemon 실행 시 Internal watch failed: ENOSPC: System limit for number of file watchers reached 오류 해결 방법</title>
      <link>https://miiingo.tistory.com/388</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;● 문제 상황&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발 환경에서는 서버 재기동 없이 변경사항을 바로 적용하기 위해 nodemon을 사용했는데, 실행 시 다음과 같은 오류가 발생했다.&lt;/p&gt;
&lt;pre id=&quot;code_1650433343357&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm run dev

&amp;gt; ui-project@1.0.0 dev
&amp;gt; nodemon --watch 'client/**' --exec ts-node server/index.ts

[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): client/**
[nodemon] watching extensions: ts,json
[nodemon] starting `ts-node server/index.ts`
[nodemon] Internal watch failed: ENOSPC: System limit for number of file watchers reached, watch '/data02/npm_test/ui-project/client/ui/myproject/pcweb/trunk/src/img/common/btn.png'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;package.json 파일&lt;/p&gt;
&lt;pre id=&quot;code_1650433968562&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;ui-project&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;description&quot;: &quot;&quot;,
  &quot;main&quot;: &quot;dist/index.js&quot;,
  &quot;scripts&quot;: {
    &quot;start&quot;: &quot;node dist/index.js&quot;,
    &quot;dev&quot;: &quot;nodemon --watch 'client/**' --exec ts-node server/index.ts&quot;,
    &quot;build&quot;: &quot;tsc&quot;
  },
  &quot;keywords&quot;: [],
  &quot;author&quot;: &quot;&quot;,
  &quot;license&quot;: &quot;ISC&quot;,
  &quot;dependencies&quot;: {
    &quot;bcrypt&quot;: &quot;^5.0.1&quot;,
    &quot;cookie-parser&quot;: &quot;^1.4.5&quot;,
    &quot;cors&quot;: &quot;^2.8.5&quot;,
    &quot;dotenv&quot;: &quot;^9.0.2&quot;,
    &quot;express&quot;: &quot;^4.17.3&quot;,
    &quot;serve-index&quot;: &quot;^1.9.1&quot;,
    &quot;jsonwebtoken&quot;: &quot;^8.5.1&quot;,
    &quot;mongoose&quot;: &quot;^5.12.10&quot;,
    &quot;morgan&quot;: &quot;^1.10.0&quot;,
    &quot;socket.io&quot;: &quot;^4.4.1&quot;
  },
  &quot;devDependencies&quot;: {
    &quot;@types/bcrypt&quot;: &quot;^5.0.0&quot;,
    &quot;@types/cookie-parser&quot;: &quot;^1.4.2&quot;,
    &quot;@types/cors&quot;: &quot;^2.8.10&quot;,
    &quot;@types/dotenv&quot;: &quot;^8.2.0&quot;,
    &quot;@types/express&quot;: &quot;^4.17.11&quot;,
    &quot;@types/serve-index&quot;: &quot;^1.9.1&quot;,
    &quot;@types/jsonwebtoken&quot;: &quot;^8.5.1&quot;,
    &quot;@types/mongoose&quot;: &quot;^5.10.5&quot;,
    &quot;@types/morgan&quot;: &quot;^1.9.2&quot;,
    &quot;@types/node&quot;: &quot;^15.3.1&quot;,
    &quot;ts-node-dev&quot;: &quot;^1.1.6&quot;,
    &quot;typescript&quot;: &quot;^4.2.4&quot;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d;&quot;&gt;tsconfig.json 파일&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1650434055846&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;compilerOptions&quot;: {
    /* Visit https://aka.ms/tsconfig.json to read more about this file */

    /* Basic Options */
    // &quot;incremental&quot;: true,                         /* Enable incremental compilation */
    &quot;target&quot;: &quot;es6&quot;,                                /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
    &quot;module&quot;: &quot;commonjs&quot;,                           /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
    // &quot;lib&quot;: [],                                   /* Specify library files to be included in the compilation. */
    // &quot;allowJs&quot;: true,                             /* Allow javascript files to be compiled. */
    // &quot;checkJs&quot;: true,                             /* Report errors in .js files. */
    // &quot;jsx&quot;: &quot;preserve&quot;,                           /* Specify JSX code generation: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */
    // &quot;declaration&quot;: true,                         /* Generates corresponding '.d.ts' file. */
    // &quot;declarationMap&quot;: true,                      /* Generates a sourcemap for each corresponding '.d.ts' file. */
    // &quot;sourceMap&quot;: true,                           /* Generates corresponding '.map' file. */
    // &quot;outFile&quot;: &quot;./&quot;,                             /* Concatenate and emit output to single file. */
    &quot;outDir&quot;: &quot;./dist&quot;,                              /* Redirect output structure to the directory. */
    &quot;rootDir&quot;: &quot;./server&quot;,                             /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
    // &quot;composite&quot;: true,                           /* Enable project compilation */
    // &quot;tsBuildInfoFile&quot;: &quot;./&quot;,                     /* Specify file to store incremental compilation information */
    // &quot;removeComments&quot;: true,                      /* Do not emit comments to output. */
    // &quot;noEmit&quot;: true,                              /* Do not emit outputs. */
    // &quot;importHelpers&quot;: true,                       /* Import emit helpers from 'tslib'. */
    // &quot;downlevelIteration&quot;: true,                  /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
    // &quot;isolatedModules&quot;: true,                     /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */

    /* Strict Type-Checking Options */
    &quot;strict&quot;: true,                                 /* Enable all strict type-checking options. */
    // &quot;noImplicitAny&quot;: true,                       /* Raise error on expressions and declarations with an implied 'any' type. */
    // &quot;strictNullChecks&quot;: true,                    /* Enable strict null checks. */
    // &quot;strictFunctionTypes&quot;: true,                 /* Enable strict checking of function types. */
    // &quot;strictBindCallApply&quot;: true,                 /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
    // &quot;strictPropertyInitialization&quot;: true,        /* Enable strict checking of property initialization in classes. */
    // &quot;noImplicitThis&quot;: true,                      /* Raise error on 'this' expressions with an implied 'any' type. */
    // &quot;alwaysStrict&quot;: true,                        /* Parse in strict mode and emit &quot;use strict&quot; for each source file. */

    /* Additional Checks */
    // &quot;noUnusedLocals&quot;: true,                      /* Report errors on unused locals. */
    // &quot;noUnusedParameters&quot;: true,                  /* Report errors on unused parameters. */
    // &quot;noImplicitReturns&quot;: true,                   /* Report error when not all code paths in function return a value. */
    // &quot;noFallthroughCasesInSwitch&quot;: true,          /* Report errors for fallthrough cases in switch statement. */
    // &quot;noUncheckedIndexedAccess&quot;: true,            /* Include 'undefined' in index signature results */
    // &quot;noPropertyAccessFromIndexSignature&quot;: true,  /* Require undeclared properties from index signatures to use element accesses. */

    /* Module Resolution Options */
    &quot;moduleResolution&quot;: &quot;node&quot;,                  /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
    // &quot;baseUrl&quot;: &quot;./&quot;,                             /* Base directory to resolve non-absolute module names. */
    // &quot;paths&quot;: {},                                 /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
    // &quot;rootDirs&quot;: [],                              /* List of root folders whose combined content represents the structure of the project at runtime. */
    // &quot;typeRoots&quot;: [],                             /* List of folders to include type definitions from. */
    // &quot;types&quot;: [],                                 /* Type declaration files to be included in compilation. */
    // &quot;allowSyntheticDefaultImports&quot;: true,        /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
    &quot;esModuleInterop&quot;: true,                        /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
    // &quot;preserveSymlinks&quot;: true,                    /* Do not resolve the real path of symlinks. */
    // &quot;allowUmdGlobalAccess&quot;: true,                /* Allow accessing UMD globals from modules. */

    /* Source Map Options */
    // &quot;sourceRoot&quot;: &quot;&quot;,                            /* Specify the location where debugger should locate TypeScript files instead of source locations. */
    // &quot;mapRoot&quot;: &quot;&quot;,                               /* Specify the location where debugger should locate map files instead of generated locations. */
    // &quot;inlineSourceMap&quot;: true,                     /* Emit a single file with source maps instead of having a separate file. */
    // &quot;inlineSources&quot;: true,                       /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */

    /* Experimental Options */
    // &quot;experimentalDecorators&quot;: true,              /* Enables experimental support for ES7 decorators. */
    // &quot;emitDecoratorMetadata&quot;: true,               /* Enables experimental support for emitting type metadata for decorators. */

    /* Advanced Options */
    &quot;skipLibCheck&quot;: true,                           /* Skip type checking of declaration files. */
    &quot;forceConsistentCasingInFileNames&quot;: true        /* Disallow inconsistently-cased references to the same file. */
  },
  &quot;include&quot;: [
    &quot;server/**/*&quot;
  ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;● 해결 방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--watch 옵션에 client/** 이렇게 client 디렉터리 하위의 모든 내용을 넣었는데, 이 안에 들어있는 파일이 많다보니 limit에 걸려서 오류가 발생한 것이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 CentOS 기준으로 다음 명령을 실행해 max_user_watches 값을 수정 적용해주면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1650436391837&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf &amp;amp;&amp;amp; sudo sysctl -p
fs.inotify.max_user_watches=582222
net.ipv6.conf.all.disable_ipv6 = 1
vm.swappiness = 0
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
fs.inotify.max_user_watches = 582222&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 나서 다시 nodemon을 실행해주면 정상적으로 실행이 되는 것을 볼 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1650436450430&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm run dev

&amp;gt; ui-project@1.0.0 dev
&amp;gt; nodemon --watch 'client/**' --exec ts-node server/index.ts

[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): client/**
[nodemon] watching extensions: ts,json
[nodemon] starting `ts-node server/index.ts`
Server is running on port 3000
GET / 200 39.895 ms - 10018&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그래밍 언어/Node.js</category>
      <category>nodejs</category>
      <category>nodemon</category>
      <category>ts-node</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/388</guid>
      <comments>https://miiingo.tistory.com/388#entry388comment</comments>
      <pubDate>Wed, 20 Apr 2022 15:35:23 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS 7] Docker 설치 시 libselinux-devel-2.5-11.el7.x86_64, libsepol-devel-2.5-6.el7.x86_64 패키지 오류 해결 방법</title>
      <link>https://miiingo.tistory.com/387</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■ 오류 발생&lt;/h2&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;스크립트를 이용해 Docker를 설치하는 도중 아래와 같은 오류가 발생했다.&lt;/p&gt;
&lt;pre id=&quot;code_1641432361136&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ curl -fsSL https://get.docker.com/ | sudo sh
# Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
+ sh -c 'yum install -y -q yum-utils'
Package yum-utils-1.1.31-42.el7.noarch already installed and latest version
+ sh -c 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
+ '[' stable '!=' stable ']'
+ sh -c 'yum makecache'
Loaded plugins: fastestmirror, langpacks
base                                                                                     | 3.6 kB  00:00:00
docker-ce-stable                                                                         | 3.5 kB  00:00:00
extra                                                                                    | 3.4 kB  00:00:00
hpe-fwpp                                                                                 | 2.5 kB  00:00:00
others                                                                                   | 2.9 kB  00:00:00
updates                                                                                  | 3.4 kB  00:00:00
Loading mirror speeds from cached hostfile
Metadata Cache Created
+ '[' -n '' ']'
+ sh -c 'yum install -y -q docker-ce'
Error: Package: libselinux-devel-2.5-11.el7.x86_64 (@base)
           Requires: libselinux(x86-64) = 2.5-11.el7
           Removing: libselinux-2.5-11.el7.x86_64 (@base)
               libselinux(x86-64) = 2.5-11.el7
           Updated By: libselinux-2.5-15.el7.x86_64 (others)
               libselinux(x86-64) = 2.5-15.el7
           Available: libselinux-2.5-14.1.el7.x86_64 (others)
               libselinux(x86-64) = 2.5-14.1.el7
Error: Package: libsepol-devel-2.5-6.el7.x86_64 (@base)
           Requires: libsepol(x86-64) = 2.5-6.el7
           Removing: libsepol-2.5-6.el7.x86_64 (@anaconda)
               libsepol(x86-64) = 2.5-6.el7
           Updated By: libsepol-2.5-10.el7.x86_64 (others)
               libsepol(x86-64) = 2.5-10.el7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size14&quot;&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;&lt;a href=&quot;https://miiingo.tistory.com/386&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://miiingo.tistory.com/386&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641432343230&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[CentOS 7] Docker 설치 시 docker-ce-rootless-extras-20.10.11-3.el7.x86_64 패키지 오류 해결 방법&quot; data-og-description=&quot;■ 오류 발생 스크립트를 이용해 Docker를 설치하는 도중 아래와 같은 오류가 발생했다. $ curl -fsSL https://get.docker.com/ | sudo sh # Executing docker install script, commit: 93d2499759296ac1f9c510605..&quot; data-og-host=&quot;miiingo.tistory.com&quot; data-og-source-url=&quot;https://miiingo.tistory.com/386&quot; data-og-url=&quot;https://miiingo.tistory.com/386&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/O69gq/hyMYLosG0I/jH7rCjkdqiWoL4gaQ4mwx1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bIoUAL/hyMZRN8kL2/42v9QLbkjkI8o7H2pabKy1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://miiingo.tistory.com/386&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://miiingo.tistory.com/386&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/O69gq/hyMYLosG0I/jH7rCjkdqiWoL4gaQ4mwx1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bIoUAL/hyMZRN8kL2/42v9QLbkjkI8o7H2pabKy1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;[CentOS 7] Docker 설치 시 docker-ce-rootless-extras-20.10.11-3.el7.x86_64 패키지 오류 해결 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;■ 오류 발생 스크립트를 이용해 Docker를 설치하는 도중 아래와 같은 오류가 발생했다. $ curl -fsSL https://get.docker.com/ | sudo sh # Executing docker install script, commit: 93d2499759296ac1f9c510605..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;miiingo.tistory.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;h2 data-ke-size=&quot;size26&quot;&gt;■ 해결 방법&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이것도 지난번과 동일하게 설치 URL을 이용해 직접 해당 패키지들을 설치해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://mirror.centos.org/centos/7/os/x86_64/Packages/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://mirror.centos.org/centos/7/os/x86_64/Packages/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&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;yum&amp;nbsp;install&amp;nbsp;명령을&amp;nbsp;수행해주면&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;libsepol-devel&amp;nbsp;패키지&amp;nbsp;설치&lt;/h3&gt;
&lt;pre id=&quot;code_1641432413709&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/libsepol-devel-2.5-10.el7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
libsepol-devel-2.5-10.el7.x86_64.rpm                                                     |  77 kB  00:00:00
Examining /var/tmp/yum-root-JuSvQm/libsepol-devel-2.5-10.el7.x86_64.rpm: libsepol-devel-2.5-10.el7.x86_64
Marking /var/tmp/yum-root-JuSvQm/libsepol-devel-2.5-10.el7.x86_64.rpm as an update to libsepol-devel-2.5-6.el7.x86_64
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package libsepol-devel.x86_64 0:2.5-6.el7 will be updated
---&amp;gt; Package libsepol-devel.x86_64 0:2.5-10.el7 will be an update
--&amp;gt; Processing Dependency: libsepol(x86-64) = 2.5-10.el7 for package: libsepol-devel-2.5-10.el7.x86_64
Loading mirror speeds from cached hostfile
--&amp;gt; Running transaction check
---&amp;gt; Package libsepol.i686 0:2.5-6.el7 will be updated
---&amp;gt; Package libsepol.x86_64 0:2.5-6.el7 will be updated
---&amp;gt; Package libsepol.i686 0:2.5-10.el7 will be an update
---&amp;gt; Package libsepol.x86_64 0:2.5-10.el7 will be an update
--&amp;gt; Finished Dependency Resolution

Dependencies Resolved

================================================================================================================
 Package                 Arch            Version               Repository                                  Size
================================================================================================================
Updating:
 libsepol-devel          x86_64          2.5-10.el7            /libsepol-devel-2.5-10.el7.x86_64          124 k
Updating for dependencies:
 libsepol                i686            2.5-10.el7            others                                     294 k
 libsepol                x86_64          2.5-10.el7            others                                     297 k

Transaction Summary
================================================================================================================
Upgrade  1 Package (+2 Dependent packages)

Total size: 715 k
Total download size: 591 k
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/2): libsepol-2.5-10.el7.i686.rpm                                                      | 294 kB  00:00:00
(2/2): libsepol-2.5-10.el7.x86_64.rpm                                                    | 297 kB  00:00:00
----------------------------------------------------------------------------------------------------------------
Total                                                                           1.1 MB/s | 591 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : libsepol-2.5-10.el7.x86_64                                                                   1/6
  Updating   : libsepol-devel-2.5-10.el7.x86_64                                                             2/6
  Updating   : libsepol-2.5-10.el7.i686                                                                     3/6
  Cleanup    : libsepol-devel-2.5-6.el7.x86_64                                                              4/6
  Cleanup    : libsepol-2.5-6.el7                                                                           5/6
  Cleanup    : libsepol-2.5-6.el7                                                                           6/6
  Verifying  : libsepol-2.5-10.el7.i686                                                                     1/6
  Verifying  : libsepol-2.5-10.el7.x86_64                                                                   2/6
  Verifying  : libsepol-devel-2.5-10.el7.x86_64                                                             3/6
  Verifying  : libsepol-2.5-6.el7.i686                                                                      4/6
  Verifying  : libsepol-2.5-6.el7.x86_64                                                                    5/6
  Verifying  : libsepol-devel-2.5-6.el7.x86_64                                                              6/6

Updated:
  libsepol-devel.x86_64 0:2.5-10.el7

Dependency Updated:
  libsepol.i686 0:2.5-10.el7                            libsepol.x86_64 0:2.5-10.el7

Complete!&lt;/code&gt;&lt;/pre&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;libselinux-devel&amp;nbsp;패키지&amp;nbsp;설치&lt;/h3&gt;
&lt;pre id=&quot;code_1641432434257&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/libselinux-devel-2.5-15.el7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks
libselinux-devel-2.5-15.el7.x86_64.rpm                                                   | 187 kB  00:00:00
Examining /var/tmp/yum-root-JuSvQm/libselinux-devel-2.5-15.el7.x86_64.rpm: libselinux-devel-2.5-15.el7.x86_64
Marking /var/tmp/yum-root-JuSvQm/libselinux-devel-2.5-15.el7.x86_64.rpm as an update to libselinux-devel-2.5-11.el7.x86_64
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package libselinux-devel.x86_64 0:2.5-11.el7 will be updated
---&amp;gt; Package libselinux-devel.x86_64 0:2.5-15.el7 will be an update
--&amp;gt; Processing Dependency: libselinux(x86-64) = 2.5-15.el7 for package: libselinux-devel-2.5-15.el7.x86_64
Loading mirror speeds from cached hostfile
--&amp;gt; Running transaction check
---&amp;gt; Package libselinux.i686 0:2.5-11.el7 will be updated
---&amp;gt; Package libselinux.x86_64 0:2.5-11.el7 will be updated
--&amp;gt; Processing Dependency: libselinux(x86-64) = 2.5-11.el7 for package: libselinux-utils-2.5-11.el7.x86_64
--&amp;gt; Processing Dependency: libselinux(x86-64) = 2.5-11.el7 for package: libselinux-python-2.5-11.el7.x86_64
---&amp;gt; Package libselinux.i686 0:2.5-15.el7 will be an update
---&amp;gt; Package libselinux.x86_64 0:2.5-15.el7 will be an update
--&amp;gt; Running transaction check
---&amp;gt; Package libselinux-python.x86_64 0:2.5-11.el7 will be updated
---&amp;gt; Package libselinux-python.x86_64 0:2.5-15.el7 will be an update
---&amp;gt; Package libselinux-utils.x86_64 0:2.5-11.el7 will be updated
---&amp;gt; Package libselinux-utils.x86_64 0:2.5-15.el7 will be an update
--&amp;gt; Finished Dependency Resolution

Dependencies Resolved

================================================================================================================
 Package                   Arch           Version             Repository                                   Size
================================================================================================================
Updating:
 libselinux-devel          x86_64         2.5-15.el7          /libselinux-devel-2.5-15.el7.x86_64         190 k
Updating for dependencies:
 libselinux                i686           2.5-15.el7          others                                      166 k
 libselinux                x86_64         2.5-15.el7          others                                      162 k
 libselinux-python         x86_64         2.5-15.el7          others                                      236 k
 libselinux-utils          x86_64         2.5-15.el7          others                                      151 k

Transaction Summary
================================================================================================================
Upgrade  1 Package (+4 Dependent packages)

Total size: 904 k
Total download size: 715 k
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/4): libselinux-2.5-15.el7.i686.rpm                                                    | 166 kB  00:00:00
(2/4): libselinux-2.5-15.el7.x86_64.rpm                                                  | 162 kB  00:00:00
(3/4): libselinux-utils-2.5-15.el7.x86_64.rpm                                            | 151 kB  00:00:00
(4/4): libselinux-python-2.5-15.el7.x86_64.rpm                                           | 236 kB  00:00:00
----------------------------------------------------------------------------------------------------------------
Total                                                                           4.9 MB/s | 715 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : libselinux-2.5-15.el7.x86_64                                                                1/10
  Updating   : libselinux-devel-2.5-15.el7.x86_64                                                          2/10
  Updating   : libselinux-python-2.5-15.el7.x86_64                                                         3/10
  Updating   : libselinux-utils-2.5-15.el7.x86_64                                                          4/10
  Updating   : libselinux-2.5-15.el7.i686                                                                  5/10
  Cleanup    : libselinux-devel-2.5-11.el7.x86_64                                                          6/10
  Cleanup    : libselinux-2.5-11.el7                                                                       7/10
  Cleanup    : libselinux-utils-2.5-11.el7.x86_64                                                          8/10
  Cleanup    : libselinux-python-2.5-11.el7.x86_64                                                         9/10
  Cleanup    : libselinux-2.5-11.el7                                                                      10/10
  Verifying  : libselinux-devel-2.5-15.el7.x86_64                                                          1/10
  Verifying  : libselinux-2.5-15.el7.x86_64                                                                2/10
  Verifying  : libselinux-2.5-15.el7.i686                                                                  3/10
  Verifying  : libselinux-python-2.5-15.el7.x86_64                                                         4/10
  Verifying  : libselinux-utils-2.5-15.el7.x86_64                                                          5/10
  Verifying  : libselinux-utils-2.5-11.el7.x86_64                                                          6/10
  Verifying  : libselinux-devel-2.5-11.el7.x86_64                                                          7/10
  Verifying  : libselinux-2.5-11.el7.x86_64                                                                8/10
  Verifying  : libselinux-2.5-11.el7.i686                                                                  9/10
  Verifying  : libselinux-python-2.5-11.el7.x86_64                                                        10/10

Updated:
  libselinux-devel.x86_64 0:2.5-15.el7

Dependency Updated:
  libselinux.i686 0:2.5-15.el7          libselinux.x86_64 0:2.5-15.el7  libselinux-python.x86_64 0:2.5-15.el7
  libselinux-utils.x86_64 0:2.5-15.el7

Complete!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;● Docker 재설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제&amp;nbsp;다시&amp;nbsp;Docker&amp;nbsp;설치&amp;nbsp;스크립트를&amp;nbsp;실행하면&amp;nbsp;설치가&amp;nbsp;정상적으로&amp;nbsp;완료된다.&lt;/p&gt;
&lt;pre id=&quot;code_1641432464648&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ curl -fsSL https://get.docker.com/ | sudo sh
# Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
+ sh -c 'yum install -y -q yum-utils'
Package yum-utils-1.1.31-42.el7.noarch already installed and latest version
+ sh -c 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
+ '[' stable '!=' stable ']'
+ sh -c 'yum makecache'
Loaded plugins: fastestmirror, langpacks
base                                                                                     | 3.6 kB  00:00:00
docker-ce-stable                                                                         | 3.5 kB  00:00:00
extra                                                                                    | 3.4 kB  00:00:00
hpe-fwpp                                                                                 | 2.5 kB  00:00:00
others                                                                                   | 2.9 kB  00:00:00
updates                                                                                  | 3.4 kB  00:00:00
Loading mirror speeds from cached hostfile
Metadata Cache Created
+ '[' -n '' ']'
+ sh -c 'yum install -y -q docker-ce'
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-20.10.12-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
Public key for docker-ce-20.10.12-3.el7.x86_64.rpm is not installed
Importing GPG key 0x621E9F35:
 Userid     : &quot;Docker Release (CE rpm) &amp;lt;docker@docker.com&amp;gt;&quot;
 Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 From       : https://download.docker.com/linux/centos/gpg
setsebool:  SELinux is disabled.
+ version_gte 20.10
+ '[' -z '' ']'
+ return 0
+ sh -c 'yum install -y -q docker-ce-rootless-extras'
Package docker-ce-rootless-extras-20.10.12-3.el7.x86_64 already installed and latest version

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/CentOS</category>
      <category>CentOS</category>
      <category>centos7</category>
      <category>dependency</category>
      <category>docker</category>
      <category>docker 설치</category>
      <category>package</category>
      <category>디펜던시</category>
      <category>오류</category>
      <category>의존성</category>
      <category>패키지</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/387</guid>
      <comments>https://miiingo.tistory.com/387#entry387comment</comments>
      <pubDate>Thu, 6 Jan 2022 10:28:46 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS 7] Docker 설치 시 docker-ce-rootless-extras-20.10.11-3.el7.x86_64 패키지 오류 해결 방법</title>
      <link>https://miiingo.tistory.com/386</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;■ 오류 발생&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크립트를 이용해 Docker를 설치하는 도중 아래와 같은 오류가 발생했다.&lt;/p&gt;
&lt;pre id=&quot;code_1638843927910&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ curl -fsSL https://get.docker.com/ | sudo sh
# Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
+ sh -c 'yum install -y -q yum-utils'
Package yum-utils-1.1.31-50.el7.noarch already installed and latest version
+ sh -c 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
Loaded plugins: fastestmirror, langpacks, product-id, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
+ '[' stable '!=' stable ']'
+ sh -c 'yum makecache'
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
base                                                                                    | 3.6 kB  00:00:00     
docker-ce-stable                                                                        | 3.5 kB  00:00:00     
extra                                                                                   | 3.4 kB  00:00:00     
hpe-fwpp                                                                                | 2.5 kB  00:00:00     
others                                                                                  | 2.9 kB  00:00:00     
updates                                                                                 | 3.4 kB  00:00:00     
(1/16): base/other_db                                                                   | 1.3 MB  00:00:00     
(2/16): docker-ce-stable/7/x86_64/updateinfo                                            |   55 B  00:00:00     
(3/16): docker-ce-stable/7/x86_64/primary_db                                            |  69 kB  00:00:00     
(4/16): docker-ce-stable/7/x86_64/filelists_db                                          |  29 kB  00:00:00     
(5/16): docker-ce-stable/7/x86_64/other_db                                              | 121 kB  00:00:00     
(6/16): extra/prestodelta                                                               |  47 kB  00:00:00     
(7/16): extra/other_db                                                                  | 117 kB  00:00:00     
(8/16): base/filelists_db                                                               | 3.2 MB  00:00:00     
(9/16): hpe-fwpp/filelists_db                                                           | 247 kB  00:00:00     
(10/16): hpe-fwpp/other_db                                                              | 888 kB  00:00:00     
(11/16): updates/prestodelta                                                            | 341 kB  00:00:00     
(12/16): updates/other_db                                                               | 341 kB  00:00:00     
(13/16): extra/filelists_db                                                             | 230 kB  00:00:00     
(14/16): others/7/other_db                                                              | 666 kB  00:00:00     
(15/16): others/7/filelists_db                                                          | 3.1 MB  00:00:00     
(16/16): updates/filelists_db                                                           | 1.9 MB  00:00:00     
Metadata Cache Created
+ '[' -n '' ']'
+ sh -c 'yum install -y -q docker-ce'
Error: Package: docker-ce-rootless-extras-20.10.11-3.el7.x86_64 (docker-ce-stable)
           Requires: slirp4netns &amp;gt;= 0.4
Error: Package: docker-ce-rootless-extras-20.10.11-3.el7.x86_64 (docker-ce-stable)
           Requires: fuse-overlayfs &amp;gt;= 0.7
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;docker-ce-rootless-extras-20.10.11-3.el7.x86_64&lt;/b&gt; 패키지를 설치하려면 s&lt;b&gt;lirp4netns &amp;gt;= 0.4&lt;/b&gt;, &lt;b&gt;fuse-overlayfs &amp;gt;= 0.7&lt;/b&gt; 패키지가 필요한데 해당 패키지가 없어서 발생하는 문제였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 &lt;b&gt;yum install&lt;/b&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;그래서 설치 URL을 이용해 직접 해당 패키지들을 설치해주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;http://mirror.centos.org/centos/7/extras/x86_64/Packages/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://mirror.centos.org/centos/7/extras/x86_64/Packages/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1638844104860&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;CentOS Mirror&quot; data-og-description=&quot;&quot; data-og-host=&quot;mirror.centos.org&quot; data-og-source-url=&quot;http://mirror.centos.org/centos/7/extras/x86_64/Packages/&quot; data-og-url=&quot;http://mirror.centos.org/centos/7/extras/x86_64/Packages/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;http://mirror.centos.org/centos/7/extras/x86_64/Packages/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://mirror.centos.org/centos/7/extras/x86_64/Packages/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;CentOS Mirror&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mirror.centos.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 페이지에 들어가면 설치 가능한 패키지들이 쭉 나오는데 여기서 필요한 패키지의 링크를 복사해 yum install 명령을 수행해주면 된다.&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;●&amp;nbsp;slirp4netns 패키지 설치&lt;/h4&gt;
&lt;pre id=&quot;code_1638844133386&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages
/slirp4netns-0.4.3-4.el7_8.x86_64.rpm
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
slirp4netns-0.4.3-4.el7_8.x86_64.rpm                                                    |  81 kB  00:00:00     
Examining /var/tmp/yum-root-0O3mdM/slirp4netns-0.4.3-4.el7_8.x86_64.rpm: slirp4netns-0.4.3-4.el7_8.x86_64
Marking /var/tmp/yum-root-0O3mdM/slirp4netns-0.4.3-4.el7_8.x86_64.rpm to be installed
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package slirp4netns.x86_64 0:0.4.3-4.el7_8 will be installed
--&amp;gt; Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
 Package              Arch            Version                 Repository                                  Size
===============================================================================================================
Installing:
 slirp4netns          x86_64          0.4.3-4.el7_8           /slirp4netns-0.4.3-4.el7_8.x86_64          169 k

Transaction Summary
===============================================================================================================
Install  1 Package

Total size: 169 k
Installed size: 169 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : slirp4netns-0.4.3-4.el7_8.x86_64                                                            1/1 
Loading mirror speeds from cached hostfile
  Verifying  : slirp4netns-0.4.3-4.el7_8.x86_64                                                            1/1 

Installed:
  slirp4netns.x86_64 0:0.4.3-4.el7_8                                                                           

Complete!


$ sudo yum info slirp4netns
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
Installed Packages
Name        : slirp4netns
Arch        : x86_64
Version     : 0.4.3
Release     : 4.el7_8
Size        : 169 k
Repo        : installed
Summary     : slirp for network namespaces
URL         : https://github.com/rootless-containers/slirp4netns
License     : GPLv2
Description : slirp for network namespaces, without copying buffers across the namespaces.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;● fuse3-libs 패키지 설치&lt;/h4&gt;
&lt;pre id=&quot;code_1638844268290&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages
/fuse3-libs-3.6.1-4.el7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
fuse3-libs-3.6.1-4.el7.x86_64.rpm                                                       |  82 kB  00:00:00     
Examining /var/tmp/yum-root-0O3mdM/fuse3-libs-3.6.1-4.el7.x86_64.rpm: fuse3-libs-3.6.1-4.el7.x86_64
Marking /var/tmp/yum-root-0O3mdM/fuse3-libs-3.6.1-4.el7.x86_64.rpm to be installed
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package fuse3-libs.x86_64 0:3.6.1-4.el7 will be installed
--&amp;gt; Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
 Package              Arch             Version                  Repository                                Size
===============================================================================================================
Installing:
 fuse3-libs           x86_64           3.6.1-4.el7              /fuse3-libs-3.6.1-4.el7.x86_64           270 k

Transaction Summary
===============================================================================================================
Install  1 Package

Total size: 270 k
Installed size: 270 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : fuse3-libs-3.6.1-4.el7.x86_64                                                               1/1 
Loading mirror speeds from cached hostfile
  Verifying  : fuse3-libs-3.6.1-4.el7.x86_64                                                               1/1 

Installed:
  fuse3-libs.x86_64 0:3.6.1-4.el7                                                                              

Complete!

$ sudo yum info fuse3-libs
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
Installed Packages
Name        : fuse3-libs
Arch        : x86_64
Version     : 3.6.1
Release     : 4.el7
Size        : 270 k
Repo        : installed
Summary     : File System in Userspace (FUSE) v3 libraries
URL         : http://fuse.sf.net
License     : LGPLv2+
Description : Devel With FUSE it is possible to implement a fully functional filesystem in a
            : userspace program. This package contains the FUSE v3 libraries.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;●&lt;span&gt; fuse3-devel&lt;/span&gt;&amp;nbsp;패키지 설치&lt;/h4&gt;
&lt;pre id=&quot;code_1638844340593&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages
/fuse3-devel-3.6.1-4.el7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
fuse3-devel-3.6.1-4.el7.x86_64.rpm                                                      |  39 kB  00:00:00     
Examining /var/tmp/yum-root-0O3mdM/fuse3-devel-3.6.1-4.el7.x86_64.rpm: fuse3-devel-3.6.1-4.el7.x86_64
Marking /var/tmp/yum-root-0O3mdM/fuse3-devel-3.6.1-4.el7.x86_64.rpm to be installed
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package fuse3-devel.x86_64 0:3.6.1-4.el7 will be installed
--&amp;gt; Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
 Package               Arch             Version                Repository                                 Size
===============================================================================================================
Installing:
 fuse3-devel           x86_64           3.6.1-4.el7            /fuse3-devel-3.6.1-4.el7.x86_64           143 k

Transaction Summary
===============================================================================================================
Install  1 Package

Total size: 143 k
Installed size: 143 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : fuse3-devel-3.6.1-4.el7.x86_64                                                              1/1 
Loading mirror speeds from cached hostfile
  Verifying  : fuse3-devel-3.6.1-4.el7.x86_64                                                              1/1 

Installed:
  fuse3-devel.x86_64 0:3.6.1-4.el7                                                                             

Complete!


$ sudo yum info fuse3-devel
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
Installed Packages
Name        : fuse3-devel
Arch        : x86_64
Version     : 3.6.1
Release     : 4.el7
Size        : 143 k
Repo        : installed
Summary     : File System in Userspace (FUSE) v3 devel files
URL         : http://fuse.sf.net
License     : LGPLv2+
Description : With FUSE it is possible to implement a fully functional filesystem in a
            : userspace program. This package contains development files (headers,
            : pgk-config) to develop FUSE v3 based applications/filesystems.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;●&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;fuse3&lt;/span&gt;&amp;nbsp;패키지 설치&lt;/h4&gt;
&lt;pre id=&quot;code_1638844382235&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages
/fuse3-3.6.1-4.el7.x86_64.rpm
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
fuse3-3.6.1-4.el7.x86_64.rpm                                                            |  47 kB  00:00:00     
Examining /var/tmp/yum-root-0O3mdM/fuse3-3.6.1-4.el7.x86_64.rpm: fuse3-3.6.1-4.el7.x86_64
Marking /var/tmp/yum-root-0O3mdM/fuse3-3.6.1-4.el7.x86_64.rpm to be installed
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package fuse3.x86_64 0:3.6.1-4.el7 will be installed
--&amp;gt; Processing Dependency: /etc/fuse.conf for package: fuse3-3.6.1-4.el7.x86_64
Loading mirror speeds from cached hostfile
--&amp;gt; Running transaction check
---&amp;gt; Package fuse.x86_64 0:2.9.2-11.el7 will be installed
--&amp;gt; Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
 Package            Arch                Version                   Repository                              Size
===============================================================================================================
Installing:
 fuse3              x86_64              3.6.1-4.el7               /fuse3-3.6.1-4.el7.x86_64              103 k
Installing for dependencies:
 fuse               x86_64              2.9.2-11.el7              base                                    86 k

Transaction Summary
===============================================================================================================
Install  1 Package (+1 Dependent package)

Total size: 188 k
Total download size: 86 k
Installed size: 321 k
Is this ok [y/d/N]: y
Downloading packages:
fuse-2.9.2-11.el7.x86_64.rpm                                                            |  86 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : fuse-2.9.2-11.el7.x86_64                                                                    1/2 
  Installing : fuse3-3.6.1-4.el7.x86_64                                                                    2/2 
  Verifying  : fuse-2.9.2-11.el7.x86_64                                                                    1/2 
  Verifying  : fuse3-3.6.1-4.el7.x86_64                                                                    2/2 

Installed:
  fuse3.x86_64 0:3.6.1-4.el7                                                                                   

Dependency Installed:
  fuse.x86_64 0:2.9.2-11.el7                                                                                   

Complete!


$ sudo yum info fuse3
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
Installed Packages
Name        : fuse3
Arch        : x86_64
Version     : 3.6.1
Release     : 4.el7
Size        : 103 k
Repo        : installed
Summary     : File System in Userspace (FUSE) v3 utilities
URL         : http://fuse.sf.net
License     : GPL+
Description : With FUSE it is possible to implement a fully functional filesystem in a
            : userspace program. This package contains the FUSE v3 userspace tools to
            : mount a FUSE filesystem.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;●&lt;span&gt;&lt;span&gt; fuse-overlayfs&amp;nbsp;&lt;/span&gt;&lt;/span&gt;패키지 설치&lt;/h4&gt;
&lt;pre id=&quot;code_1638844413696&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ sudo yum install http://mirror.centos.org/centos/7/extras/x86_64/Packages
/fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm                                                 |  54 kB  00:00:00     
Examining /var/tmp/yum-root-0O3mdM/fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm: fuse-overlayfs-0.7.2-6.el7_8.x86_64
Marking /var/tmp/yum-root-0O3mdM/fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm to be installed
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package fuse-overlayfs.x86_64 0:0.7.2-6.el7_8 will be installed
--&amp;gt; Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
 Package               Arch          Version                 Repository                                   Size
===============================================================================================================
Installing:
 fuse-overlayfs        x86_64        0.7.2-6.el7_8           /fuse-overlayfs-0.7.2-6.el7_8.x86_64        116 k

Transaction Summary
===============================================================================================================
Install  1 Package

Total size: 116 k
Installed size: 116 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                         1/1 
Loading mirror speeds from cached hostfile
  Verifying  : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                         1/1 

Installed:
  fuse-overlayfs.x86_64 0:0.7.2-6.el7_8                                                                        

Complete!


$ sudo yum info fuse-overlayfs 
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
Installed Packages
Name        : fuse-overlayfs
Arch        : x86_64
Version     : 0.7.2
Release     : 6.el7_8
Size        : 116 k
Repo        : installed
Summary     : FUSE overlay+shiftfs implementation for rootless containers
URL         : https://github.com/containers/fuse-overlayfs
License     : GPLv3+
Description : FUSE overlay+shiftfs implementation for rootless containers.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;● Docker 재설치&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 다시 Docker 설치 스크립트를 실행하면 설치가 정상적으로 완료된다.&lt;/p&gt;
&lt;pre id=&quot;code_1638844493872&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ curl -fsSL https://get.docker.com/ | sudo sh
# Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
+ sh -c 'yum install -y -q yum-utils'
Package yum-utils-1.1.31-50.el7.noarch already installed and latest version
+ sh -c 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
Loaded plugins: fastestmirror, langpacks, product-id, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
+ '[' stable '!=' stable ']'
+ sh -c 'yum makecache'
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
base                                                                                    | 3.6 kB  00:00:00     
docker-ce-stable                                                                        | 3.5 kB  00:00:00     
extra                                                                                   | 3.4 kB  00:00:00     
hpe-fwpp                                                                                | 2.5 kB  00:00:00     
others                                                                                  | 2.9 kB  00:00:00     
updates                                                                                 | 3.4 kB  00:00:00     
Metadata Cache Created
+ '[' -n '' ']'
+ sh -c 'yum install -y -q docker-ce'
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-20.10.11-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
Public key for docker-ce-20.10.11-3.el7.x86_64.rpm is not installed
Importing GPG key 0x621E9F35:
 Userid     : &quot;Docker Release (CE rpm) &amp;lt;docker@docker.com&amp;gt;&quot;
 Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 From       : https://download.docker.com/linux/centos/gpg
setsebool:  SELinux is disabled.
+ version_gte 20.10
+ '[' -z '' ']'
+ return 0
+ sh -c 'yum install -y -q docker-ce-rootless-extras'
Package docker-ce-rootless-extras-20.10.11-3.el7.x86_64 already installed and latest version

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/CentOS</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/386</guid>
      <comments>https://miiingo.tistory.com/386#entry386comment</comments>
      <pubDate>Tue, 7 Dec 2021 12:30:36 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS 7] CentOS 7에서 Docker 및 Docker Compose 설치 방법</title>
      <link>https://miiingo.tistory.com/385</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;■&amp;nbsp;참고&amp;nbsp;사이트&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.docker.com/engine/install/centos/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Docker&amp;nbsp;Docs&amp;nbsp;|&amp;nbsp;Install&amp;nbsp;Docker&amp;nbsp;Engine&amp;nbsp;on&amp;nbsp;CentOS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.docker.com/engine/install/linux-postinstall/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Docker&amp;nbsp;Docs&amp;nbsp;|&amp;nbsp;Post-installation&amp;nbsp;steps&amp;nbsp;for&amp;nbsp;Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.docker.com/compose/install/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Docker&amp;nbsp;Docs&amp;nbsp;|&amp;nbsp;Install&amp;nbsp;Docker&amp;nbsp;Compose&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;■&amp;nbsp;Docker&amp;nbsp;및&amp;nbsp;Docker&amp;nbsp;Compose&amp;nbsp;설치&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;●&amp;nbsp;스크립트로&amp;nbsp;설치&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재&amp;nbsp;일자&amp;nbsp;기준(2021.11.29)&amp;nbsp;가장&amp;nbsp;최신&amp;nbsp;버전의&amp;nbsp;Docker&amp;nbsp;및&amp;nbsp;Docker&amp;nbsp;Compose를&amp;nbsp;설치합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Docker: 20.10.11&lt;/li&gt;
&lt;li&gt;Docker&amp;nbsp;Compose:&amp;nbsp;1.29.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※&amp;nbsp;Docker&amp;nbsp;Compose의&amp;nbsp;경우,&amp;nbsp;v2.1.1이&amp;nbsp;가장&amp;nbsp;최신&amp;nbsp;버전이긴&amp;nbsp;하지만&amp;nbsp;2.X는&amp;nbsp;기본&amp;nbsp;커맨드&amp;nbsp;자체가&amp;nbsp;달라졌기&amp;nbsp;때문에&amp;nbsp;1.x의&amp;nbsp;가장&amp;nbsp;최신&amp;nbsp;버전인&amp;nbsp;1.29.2로&amp;nbsp;설치함&lt;/p&gt;
&lt;pre id=&quot;code_1638843559125&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Docker(20.10.11) 설치
curl -fsSL https://get.docker.com/ | sudo sh
sudo systemctl start docker
sudo systemctl enable docker
docker version

# docker 그룹에 scom 계정 추가
sudo groupadd docker
sudo usermod -a -G docker scom
docker version
# 그래도 안되면 아래 chmod 명령도 실행
# chmod 666 /var/run/docker.sock


# Docker Compose(1.29.2) 설치
sudo curl -L &quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&quot; -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;●&amp;nbsp;Docker&amp;nbsp;기본&amp;nbsp;저장소&amp;nbsp;변경&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker의 기본 저장소는 &lt;b&gt;/var/lib/docker&lt;/b&gt;입니다. 이 경로에 Docker 이미지나 로그, 컨테이너 등 모든 데이터들이 저장되기 때문에 별도의 마운트 장소로 변경해주는 것이 좋습니다.&amp;nbsp;&amp;nbsp; &lt;br /&gt;여기에서는 &lt;b&gt;/data01/docker&lt;/b&gt;로 변경해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1638843597880&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# Docker 기본 저장소 위치 확인
docker info | grep &quot;Docker Root Dir&quot;
# =&amp;gt; Docker Root Dir: /var/lib/docker

# 저장소 위치 변경
sudo systemctl stop docker
mkdir -p /data01/docker
sudo vi /etc/docker/daemon.json
# /etc/docker/daemon.json 파일에 다음 내용 추가
# ----------------------------------------------------------------------- #
{ &quot;graph&quot;: &quot;/data01/docker&quot; }
# ----------------------------------------------------------------------- #
sudo systemctl start docker

# Docker 기본 저장소 위치 변경 확인
docker info | grep &quot;Docker Root Dir&quot;
# =&amp;gt; Docker Root Dir: /data01/docker&lt;/code&gt;&lt;/pre&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;iptables&amp;nbsp;설정&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;docker&amp;nbsp;info&amp;nbsp;명령어를&amp;nbsp;실행했을&amp;nbsp;때,&amp;nbsp;다음과&amp;nbsp;같은&amp;nbsp;경고&amp;nbsp;메세지가&amp;nbsp;출력되는&amp;nbsp;경우가&amp;nbsp;있습니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;WARNING: bridge-nf-call-iptables is disabled&lt;br /&gt;WARNING: bridge-nf-call-ip6tables is disabled&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는&amp;nbsp;bridge&amp;nbsp;네트워크를&amp;nbsp;통해&amp;nbsp;송수신되는&amp;nbsp;패킷이&amp;nbsp;iptables&amp;nbsp;설정을&amp;nbsp;우회한다는&amp;nbsp;의미입니다.&amp;nbsp;&amp;nbsp; &lt;br /&gt;따라서&amp;nbsp;iptables&amp;nbsp;설정을&amp;nbsp;추가해주면&amp;nbsp;됩니다.&lt;/p&gt;
&lt;pre id=&quot;code_1638843678257&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# iptables 설정 추가
sudo vi /etc/sysctl.conf
# /etc/sysctl.conf 파일에 다음 내용 추가
# ----------------------------------------------------------------------- #
# Docker를 위한 설정 추가
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

# ----------------------------------------------------------------------- #
sudo sysctl -p&lt;/code&gt;&lt;/pre&gt;</description>
      <category>OS/CentOS</category>
      <category>CentOS</category>
      <category>docker</category>
      <category>Docker Compose</category>
      <category>Docker Compose 설치</category>
      <category>docker 설치</category>
      <category>설치</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/385</guid>
      <comments>https://miiingo.tistory.com/385#entry385comment</comments>
      <pubDate>Tue, 7 Dec 2021 11:22:12 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS 7] CentOS 7에서 jq 설치 방법</title>
      <link>https://miiingo.tistory.com/384</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;CentOS 7에서 jq를 설치할 때, yum을 이용해 jq를 설치하면 다음과 같은 오류가 발생한다.&lt;/p&gt;
&lt;pre id=&quot;code_1627534660715&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[hyper@localhost opt]$ sudo yum install -y jq
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
No package jq available.
Error: Nothing to do&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jq를 설치하기 위해서는 epel-release를 먼저 설치해주어야 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1627534692054&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[hyper@localhost opt]$ sudo yum install -y epel-release
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package epel-release.noarch 0:7-11 will be installed
--&amp;gt; Finished Dependency Resolution

...(중략)

Installed:
  epel-release.noarch 0:7-11

Complete!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런 다음, jq를 설치하면 정상적으로 설치가 완료된다.&lt;/p&gt;
&lt;pre id=&quot;code_1627534747787&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[hyper@localhost opt]$ sudo yum install -y jq
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                                               | 6.0 kB  00:00:00
 * base: mirror.kakao.com
 * epel: ftp.iij.ad.jp
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com

...(중략)

Installed:
  jq.x86_64 0:1.6-2.el7

Dependency Installed:
  oniguruma.x86_64 0:6.8.2-1.el7

Complete!

[hyper@localhost opt]$ jq --version
jq-1.6&lt;/code&gt;&lt;/pre&gt;</description>
      <category>OS/CentOS</category>
      <category>CentOS</category>
      <category>centos 7</category>
      <category>epel-release</category>
      <category>JQ</category>
      <category>jq install</category>
      <category>jq 설치</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/384</guid>
      <comments>https://miiingo.tistory.com/384#entry384comment</comments>
      <pubDate>Thu, 29 Jul 2021 14:00:19 +0900</pubDate>
    </item>
    <item>
      <title>[CentOS 7] yum 명령어 실행 시 오류 발생: 'Could not resolve host: mirrorlist.centos.org; 알 수 없는 오류'</title>
      <link>https://miiingo.tistory.com/383</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;■&amp;nbsp;문제&amp;nbsp;발생&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CentOS&amp;nbsp;7에서&amp;nbsp;`yum`을&amp;nbsp;이용해&amp;nbsp;git&amp;nbsp;client를&amp;nbsp;설치하려고&amp;nbsp;했는데&amp;nbsp;다음과&amp;nbsp;같은&amp;nbsp;오류가&amp;nbsp;발생했다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1627523613800&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[hyper@localhost ~]$ sudo yum install git
[sudo] hyper의 암호:
Loaded plugins: fastestmirror
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&amp;amp;arch=x86_64&amp;amp;repo=os&amp;amp;infra=stock error was
14: curl#6 - &quot;Could not resolve host: mirrorlist.centos.org; 알 수 없는 오류&quot;


 One of the configured repositories failed (Unknown),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work &quot;fix&quot; this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=&amp;lt;repoid&amp;gt; ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable &amp;lt;repoid&amp;gt;
        or
            subscription-manager repos --disable=&amp;lt;repoid&amp;gt;

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=&amp;lt;repoid&amp;gt;.skip_if_unavailable=true

Cannot find a valid baseurl for repo: base/7/x86_64&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;■&amp;nbsp;원인&amp;nbsp;파악&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;`mirrorlist.centos.org`&amp;nbsp;호스트와&amp;nbsp;연결이&amp;nbsp;되지&amp;nbsp;않아&amp;nbsp;발생하는&amp;nbsp;문제인&amp;nbsp;것&amp;nbsp;같은데...&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이미&amp;nbsp;네트워크&amp;nbsp;설정은&amp;nbsp;마쳐서&amp;nbsp;`ping`은&amp;nbsp;잘&amp;nbsp;오는&amp;nbsp;상태였고&amp;nbsp;네트워크도&amp;nbsp;설정한&amp;nbsp;`ens33`으로&amp;nbsp;연결된&amp;nbsp;상태였다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1627523633356&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[hyper@localhost ~]$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=113 time=32.1 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=113 time=32.1 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1010ms
rtt min/avg/max/mdev = 32.102/32.103/32.104/0.001 ms

[hyper@localhost ~]$ nmcli d
DEVICE  TYPE      STATE          CONNECTION
ens33   ethernet  연결됨         ens33
lo      loopback  관리되지 않음  --&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;구글링을&amp;nbsp;해보니&amp;nbsp;위와&amp;nbsp;같은&amp;nbsp;오류는&amp;nbsp;DNS&amp;nbsp;설정을&amp;nbsp;하지&amp;nbsp;않았을&amp;nbsp;경우에&amp;nbsp;발생하는&amp;nbsp;문제였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;`/etc/resolv.conf`&amp;nbsp;파일에&amp;nbsp;DNS&amp;nbsp;설정을&amp;nbsp;해줘야하는데,&amp;nbsp;현재는&amp;nbsp;이렇게&amp;nbsp;빈&amp;nbsp;내용이&amp;nbsp;출력되고&amp;nbsp;있었다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1627523651135&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[hyper@localhost ~]$ cat /etc/resolv.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;■&amp;nbsp;문제&amp;nbsp;해결&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;`/etc/resolv.conf`&amp;nbsp;파일에&amp;nbsp;nameserver를&amp;nbsp;추가해준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;nameserver는&amp;nbsp;network&amp;nbsp;설정&amp;nbsp;시에&amp;nbsp;입력한&amp;nbsp;DNS&amp;nbsp;주소와&amp;nbsp;동일한&amp;nbsp;IP를&amp;nbsp;입력하면&amp;nbsp;된다.&amp;nbsp;(`/etc/sysconfig/network-scripts/ifcfg-ens33`&amp;nbsp;파일&amp;nbsp;참고)&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1627523686219&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[hyper@localhost ~]$ sudo vi /etc/resolv.conf
[sudo] hyper의 암호:

[hyper@localhost ~]$ cat /etc/resolv.conf
nameserver x.x.x.x&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;nameserver를&amp;nbsp;설정한&amp;nbsp;뒤에&amp;nbsp;`yum`&amp;nbsp;명령을&amp;nbsp;다시&amp;nbsp;수행하면&amp;nbsp;정상적으로&amp;nbsp;동작하는&amp;nbsp;것을&amp;nbsp;확인할&amp;nbsp;수&amp;nbsp;있다!&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1627523699189&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[hyper@localhost ~]$ sudo yum install git
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
Resolving Dependencies
--&amp;gt; Running transaction check
---&amp;gt; Package git.x86_64 0:1.8.3.1-23.el7_8 will be installed
--&amp;gt; Processing Dependency: perl-Git = 1.8.3.1-23.el7_8 for package: git-1.8.3.1-23.el7_8.x86_64

...(중략)

Complete!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/CentOS</category>
      <category>CentOS</category>
      <category>centos7</category>
      <category>Could not resolve host: mirrorlist.centos.org</category>
      <category>DNS</category>
      <category>nameserver</category>
      <category>yum</category>
      <category>yum 오류</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/383</guid>
      <comments>https://miiingo.tistory.com/383#entry383comment</comments>
      <pubDate>Thu, 29 Jul 2021 10:56:10 +0900</pubDate>
    </item>
    <item>
      <title>[HackerRank] Arrays - (Medium)Minimum Swaps 2 (최소 swap 수 찾기) javascript 문제 풀이</title>
      <link>https://miiingo.tistory.com/382</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;문제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원본 사이트: &lt;a href=&quot;https://www.hackerrank.com/challenges/minimum-swaps-2/problem?h_l=interview&amp;amp;playlist_slugs%5B%5D=interview-preparation-kit&amp;amp;playlist_slugs%5B%5D=arrays&quot;&gt;https://www.hackerrank.com/challenges/minimum-swaps-2/problem?h_l=interview&amp;amp;playlist_slugs%5B%5D=interview-preparation-kit&amp;amp;playlist_slugs%5B%5D=arrays&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1626166019901&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;Minimum Swaps 2 | HackerRank&quot; data-og-description=&quot;Return the minimum number of swaps to sort the given array.&quot; data-og-host=&quot;www.hackerrank.com&quot; data-og-source-url=&quot;https://www.hackerrank.com/challenges/minimum-swaps-2/problem?h_l=interview&amp;amp;playlist_slugs%5B%5D=interview-preparation-kit&amp;amp;playlist_slugs%5B%5D=arrays&quot; data-og-url=&quot;https://www.hackerrank.com/challenges/minimum-swaps-2/problem&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/9kVTZ/hyKRQylHFr/X0cWBYzE7JJaQJxTu1PKlK/img.jpg?width=1200&amp;amp;height=640&amp;amp;face=706_91_833_229&quot;&gt;&lt;a href=&quot;https://www.hackerrank.com/challenges/minimum-swaps-2/problem?h_l=interview&amp;amp;playlist_slugs%5B%5D=interview-preparation-kit&amp;amp;playlist_slugs%5B%5D=arrays&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.hackerrank.com/challenges/minimum-swaps-2/problem?h_l=interview&amp;amp;playlist_slugs%5B%5D=interview-preparation-kit&amp;amp;playlist_slugs%5B%5D=arrays&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/9kVTZ/hyKRQylHFr/X0cWBYzE7JJaQJxTu1PKlK/img.jpg?width=1200&amp;amp;height=640&amp;amp;face=706_91_833_229');&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;Minimum Swaps 2 | HackerRank&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Return the minimum number of swaps to sort the given array.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.hackerrank.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;난이도: Medium&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최대&amp;nbsp;스코어: 40&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;요약&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;중복되지 않은 연속된 정수들 [1, 2, 3, ..., n]로 구성된 정렬되지 않음 배열이 제공됨&lt;/li&gt;
&lt;li&gt;두 요소를 교환할 수 있음 (swap. 스왑)&lt;/li&gt;
&lt;li&gt;배열을&amp;nbsp;오름차순으로&amp;nbsp;정렬하는&amp;nbsp;데&amp;nbsp;필요한&amp;nbsp;최소&amp;nbsp;스왑&amp;nbsp;수를&amp;nbsp;return&lt;/li&gt;
&lt;/ul&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;pre id=&quot;code_1624341621958&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;arr = [7, 1, 3, 2, 4, 5, 6]&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;
&lt;table style=&quot;border-collapse: collapse; width: 61.9565%; height: 168px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;td style=&quot;width: 15.7005%; height: 24px; text-align: center;&quot;&gt;&lt;b&gt;i&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 26.9323%; height: 24px; text-align: center;&quot;&gt;&lt;b&gt;arr&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 19.3236%; height: 24px; text-align: center;&quot;&gt;&lt;b&gt;swap&amp;nbsp;(indices)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;td style=&quot;width: 15.7005%; height: 24px; text-align: center;&quot;&gt;0&lt;/td&gt;
&lt;td style=&quot;width: 26.9323%; height: 24px; text-align: center;&quot;&gt;[7,&amp;nbsp;1,&amp;nbsp;3,&amp;nbsp;2,&amp;nbsp;4,&amp;nbsp;5,&amp;nbsp;6]&lt;/td&gt;
&lt;td style=&quot;width: 19.3236%; height: 24px; text-align: center;&quot;&gt;swap&amp;nbsp;(0,3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;td style=&quot;width: 15.7005%; height: 24px; text-align: center;&quot;&gt;1&lt;/td&gt;
&lt;td style=&quot;width: 26.9323%; height: 24px; text-align: center;&quot;&gt;[2,&amp;nbsp;1,&amp;nbsp;3,&amp;nbsp;7,&amp;nbsp;4,&amp;nbsp;5,&amp;nbsp;6]&lt;/td&gt;
&lt;td style=&quot;width: 19.3236%; height: 24px; text-align: center;&quot;&gt;swap&amp;nbsp;(0,1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;td style=&quot;width: 15.7005%; height: 24px; text-align: center;&quot;&gt;2&lt;/td&gt;
&lt;td style=&quot;width: 26.9323%; height: 24px; text-align: center;&quot;&gt;[1,&amp;nbsp;2,&amp;nbsp;3,&amp;nbsp;7,&amp;nbsp;4,&amp;nbsp;5,&amp;nbsp;6]&lt;/td&gt;
&lt;td style=&quot;width: 19.3236%; height: 24px; text-align: center;&quot;&gt;swap&amp;nbsp;(3,4)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;td style=&quot;width: 15.7005%; height: 24px; text-align: center;&quot;&gt;3&lt;/td&gt;
&lt;td style=&quot;width: 26.9323%; height: 24px; text-align: center;&quot;&gt;[1,&amp;nbsp;2,&amp;nbsp;3,&amp;nbsp;4,&amp;nbsp;7,&amp;nbsp;5,&amp;nbsp;6]&lt;/td&gt;
&lt;td style=&quot;width: 19.3236%; height: 24px; text-align: center;&quot;&gt;swap&amp;nbsp;(4,5)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;td style=&quot;width: 15.7005%; height: 24px; text-align: center;&quot;&gt;4&lt;/td&gt;
&lt;td style=&quot;width: 26.9323%; height: 24px; text-align: center;&quot;&gt;[1,&amp;nbsp;2,&amp;nbsp;3,&amp;nbsp;4,&amp;nbsp;5,&amp;nbsp;7,&amp;nbsp;6]&lt;/td&gt;
&lt;td style=&quot;width: 19.3236%; height: 24px; text-align: center;&quot;&gt;swap&amp;nbsp;(5,6)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 24px;&quot;&gt;
&lt;td style=&quot;width: 15.7005%; height: 24px; text-align: center;&quot;&gt;5&lt;/td&gt;
&lt;td style=&quot;width: 26.9323%; height: 24px; text-align: center;&quot;&gt;[1,&amp;nbsp;2,&amp;nbsp;3,&amp;nbsp;4,&amp;nbsp;5,&amp;nbsp;6,&amp;nbsp;7]&lt;/td&gt;
&lt;td style=&quot;width: 19.3236%; height: 24px; text-align: center;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;==&amp;gt; 정렬하기&amp;nbsp;위해&amp;nbsp;총&amp;nbsp;5&amp;nbsp;번의&amp;nbsp;swap이&amp;nbsp;발생함&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;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;■&amp;nbsp;문제&amp;nbsp;풀이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선,&amp;nbsp;1부터&amp;nbsp;n까지의&amp;nbsp;숫자가&amp;nbsp;중복되지&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;br /&gt;&lt;br /&gt;서로&amp;nbsp;교환을&amp;nbsp;해야하므로&amp;nbsp;i=1부터&amp;nbsp;돌고,&amp;nbsp;arr[i-1]을&amp;nbsp;비교해&amp;nbsp;위치에&amp;nbsp;맞는&amp;nbsp;요소인지&amp;nbsp;체크한다. &lt;br /&gt;배열의&amp;nbsp;요소는&amp;nbsp;0부터&amp;nbsp;시작하므로&amp;nbsp;arr[i-1]이&amp;nbsp;i&amp;nbsp;값이&amp;nbsp;되는지를&amp;nbsp;확인해야&amp;nbsp;한다. &lt;br /&gt;&lt;br /&gt;만약&amp;nbsp;두&amp;nbsp;값이&amp;nbsp;다를&amp;nbsp;경우,&amp;nbsp;해당&amp;nbsp;위치에&amp;nbsp;잘못된&amp;nbsp;요소가&amp;nbsp;있는&amp;nbsp;것이므로&amp;nbsp;원래&amp;nbsp;있어야할&amp;nbsp;요소를&amp;nbsp;찾아&amp;nbsp;서로&amp;nbsp;교환한다. &lt;br /&gt;그리고&amp;nbsp;카운트&amp;nbsp;값을&amp;nbsp;추가해준다. &lt;br /&gt;&lt;br /&gt;이런식으로&amp;nbsp;모든&amp;nbsp;요소가&amp;nbsp;제&amp;nbsp;위치에&amp;nbsp;있을&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;for문을&amp;nbsp;실행하고&amp;nbsp;나면,&amp;nbsp;최소&amp;nbsp;스왑&amp;nbsp;수가&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;- 40&amp;nbsp;Points&amp;nbsp;(Max)&lt;/h3&gt;
&lt;pre id=&quot;code_1624341711149&quot; class=&quot;javascript&quot; style=&quot;display: block; overflow: auto; padding: 20px; color: #383a42; background: #f8f8f8; font-size: 14px; font-family: 'SF Mono', Menlo, Consolas, Monaco, monospace; border: 1px solid #ebebeb; line-height: 1.71; 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;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;'use strict';

const fs = require('fs');

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', inputStdin =&amp;gt; {
    inputString += inputStdin;
});

process.stdin.on('end', function() {
    inputString = inputString.replace(/\s*$/, '')
        .split('\n')
        .map(str =&amp;gt; str.replace(/\s*$/, ''));

    main();
});

function readLine() {
    return inputString[currentLine++];
}

// Complete the minimumSwaps function below.
function minimumSwaps(arr) {
    let cnt = 0;
    for(let i=1; i&amp;lt;arr.length+1; i++){
        if(arr[i-1] != i){
            let idx = arr.findIndex((element) =&amp;gt; element == i);
            [arr[i-1], arr[idx]] = [arr[idx], arr[i-1]];
            cnt++;
        }
    }
    return cnt;
}

function main() {
    const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

    const n = parseInt(readLine(), 10);

    const arr = readLine().split(' ').map(arrTemp =&amp;gt; parseInt(arrTemp, 10));

    const res = minimumSwaps(arr);

    ws.write(res + '\n');

    ws.end();
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>알고리즘/HackerRank</category>
      <category>arrays</category>
      <category>hackerrank</category>
      <category>javascript</category>
      <category>Minimum Swaps 2</category>
      <category>문제풀이</category>
      <category>알고리즘</category>
      <category>최소 swap 수 찾기</category>
      <category>코딩테스트</category>
      <category>코테</category>
      <category>해커랭크</category>
      <author>miiingo</author>
      <guid isPermaLink="true">https://miiingo.tistory.com/382</guid>
      <comments>https://miiingo.tistory.com/382#entry382comment</comments>
      <pubDate>Tue, 13 Jul 2021 17:49:41 +0900</pubDate>
    </item>
  </channel>
</rss>