<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>자비스가 필요해</title>
    <link>https://needjarvis.tistory.com/</link>
    <description>IT, 인공지능, 빅데이터, 블록체인, 정보처리기술사 그리고 과학 관련 포스팅을 적는 블로그입니다.</description>
    <language>ko</language>
    <pubDate>Sun, 5 Apr 2026 08:41:22 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Steve Jang</managingEditor>
    <image>
      <title>자비스가 필요해</title>
      <url>https://tistory1.daumcdn.net/tistory/1902972/attach/768e99959d9d403fb73662a4d8de8be9</url>
      <link>https://needjarvis.tistory.com</link>
    </image>
    <item>
      <title>Llama3(라마3) 쉽게 사용해보기 (Feat. 올라마)</title>
      <link>https://needjarvis.tistory.com/815</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;ChatGPT의 열풍이 거세지면서, 원조 트랜스포머(Transformer) 맛집들이었던 구글과 메타는 각각 ChatGPT에 대응하는 제미나이(GeminAi)와 라마(Llama)를 오픈하며 초거대 AI의 전쟁에 불이 붙고 있습니다. 여기에 MS가 ChatGPT와 독립한 버전인 Phi라는 LLM AI 모델을 또 내놓았고, 영리와 비영리 사이의 충돌로 인해 OpenAI 직원들이 퇴사하여 만든 스타트업인 앤트로픽에서 내놓은 클로드 모델까지 난리도 아닌 것 같네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;국내에서는 네이버를 비롯하여 거대 기업들은 자체적인 LLM 모델을 만들거나 타기업과 연합하는 모습을 보이기도 하는데요. 여기서 사용해볼 라마는 최근 라마3(Llama3)를 내놓으며, 이제 작은 기업도 ChatGPT 3.5 정도 수준의 모델을 부담없이 장착할 수 있는 시대가 오지 않았나 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;올라마_라마3_사용.jpg&quot; data-origin-width=&quot;889&quot; data-origin-height=&quot;541&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsuHvu/btsG33O9bKY/y6xWzMtrolUMSl0vkKh9OK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsuHvu/btsG33O9bKY/y6xWzMtrolUMSl0vkKh9OK/img.jpg&quot; data-alt=&quot;Llama3(라마3) 쉽게 사용해보기 (Feat. 올라마)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsuHvu/btsG33O9bKY/y6xWzMtrolUMSl0vkKh9OK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsuHvu%2FbtsG33O9bKY%2Fy6xWzMtrolUMSl0vkKh9OK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;889&quot; height=&quot;541&quot; data-filename=&quot;올라마_라마3_사용.jpg&quot; data-origin-width=&quot;889&quot; data-origin-height=&quot;541&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Llama3(라마3) 쉽게 사용해보기 (Feat. 올라마)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;올라마(Ollama)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메타는 라마3를 공개하였기 때문에 누구나 받아도 상관이 없는데요. 개인이 쉽게 성능을 테스트하는 쉬운 방법중에 여기서는 올라마(Ollama)를 사용하여 테스트를 해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;올라마는 이름으로 인해, 라마를 사용하기 위한 무엇인가?라고 생각할 수 있는데요. 라마 뿐만 아니라 MS의 Phi, 미스트랄, Gemma(제미나이의 언어모델) 등 수많은 모델들을 매우 빠르고 쉽게 사용할 수 있는 도구라고 볼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1714472491522&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;Ollama&quot; data-og-description=&quot;Get up and running with large language models.&quot; data-og-host=&quot;ollama.com&quot; data-og-source-url=&quot;https://ollama.com/&quot; data-og-url=&quot;https://ollama.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b1hFmR/hyVZjgZZfT/k6Zq5LTFWzItjkFijKgN0K/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://ollama.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ollama.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b1hFmR/hyVZjgZZfT/k6Zq5LTFWzItjkFijKgN0K/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Ollama&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Get up and running with large language models.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ollama.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_1.png&quot; data-origin-width=&quot;1909&quot; data-origin-height=&quot;991&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rqWQD/btsG2VYBdwc/Zwv6VTlJXdTKohYo2rpUF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rqWQD/btsG2VYBdwc/Zwv6VTlJXdTKohYo2rpUF1/img.png&quot; data-alt=&quot;올라마 웹사이트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rqWQD/btsG2VYBdwc/Zwv6VTlJXdTKohYo2rpUF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrqWQD%2FbtsG2VYBdwc%2FZwv6VTlJXdTKohYo2rpUF1%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;1909&quot; height=&quot;991&quot; data-filename=&quot;라마3_1.png&quot; data-origin-width=&quot;1909&quot; data-origin-height=&quot;991&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;올라마 웹사이트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 공유한 올라마 사이트에 들어가면, 다운로드 버튼이 존재합니다. 이를 클릭하면, OS 플랫폼에 따른 다운로드 페이지로 들어가게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_2.png&quot; data-origin-width=&quot;1041&quot; data-origin-height=&quot;761&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Su8GE/btsG5S6Kiuw/Kbl5EB7xkgwRKC2K00iZfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Su8GE/btsG5S6Kiuw/Kbl5EB7xkgwRKC2K00iZfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Su8GE/btsG5S6Kiuw/Kbl5EB7xkgwRKC2K00iZfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSu8GE%2FbtsG5S6Kiuw%2FKbl5EB7xkgwRKC2K00iZfK%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;1041&quot; height=&quot;761&quot; data-filename=&quot;라마3_2.png&quot; data-origin-width=&quot;1041&quot; data-origin-height=&quot;761&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;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 회사 윈도우 컴퓨터로 실행을 해야 했기에 Windows를 선택하여 아래 활성화된 Download for Windows를 클릭하여 윈도우 전용 올라마를 다운로드 받았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_3.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1MGV9/btsG6aTDCvh/vkOhvljmkXxcdJZDkrl8DK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1MGV9/btsG6aTDCvh/vkOhvljmkXxcdJZDkrl8DK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1MGV9/btsG6aTDCvh/vkOhvljmkXxcdJZDkrl8DK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1MGV9%2FbtsG6aTDCvh%2FvkOhvljmkXxcdJZDkrl8DK%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;640&quot; height=&quot;96&quot; data-filename=&quot;라마3_3.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;96&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;받은 파일인 OllamaSetup을 실행하면, 아래와 같이 설치 프로그램이 실행되는데요. Install을 입력하여 설치합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_4.png&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;663&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6A0Gh/btsG3suWGJX/aYrDfQjSwRQWMSK9ye5S61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6A0Gh/btsG3suWGJX/aYrDfQjSwRQWMSK9ye5S61/img.png&quot; data-alt=&quot;올라마 인스톨 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6A0Gh/btsG3suWGJX/aYrDfQjSwRQWMSK9ye5S61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6A0Gh%2FbtsG3suWGJX%2FaYrDfQjSwRQWMSK9ye5S61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;897&quot; height=&quot;663&quot; data-filename=&quot;라마3_4.png&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;663&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;올라마 인스톨 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램을 모두 설치하였다면, 정상적으로 설치가 되었는지 검색창에서 Ollama를 입력해 봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_5.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m6iWn/btsG3o0yFkE/hLlb4HqK0KZ0EC9Mxu1gq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m6iWn/btsG3o0yFkE/hLlb4HqK0KZ0EC9Mxu1gq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m6iWn/btsG3o0yFkE/hLlb4HqK0KZ0EC9Mxu1gq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm6iWn%2FbtsG3o0yFkE%2FhLlb4HqK0KZ0EC9Mxu1gq0%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;784&quot; height=&quot;680&quot; data-filename=&quot;라마3_5.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;귀여운 라마의 얼굴이 정상적으로 설치가 되었다 반기는 것 같네요. 프로그램을 실행하면 아래와 같이 시스템 트레이 화면에 올라마 프로그램이 띄워졌다는 것을 알 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_6.png&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;295&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gxavt/btsG35TLWxp/sfzPwuCKsmCM8kVqNGWWUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gxavt/btsG35TLWxp/sfzPwuCKsmCM8kVqNGWWUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gxavt/btsG35TLWxp/sfzPwuCKsmCM8kVqNGWWUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGxavt%2FbtsG35TLWxp%2FsfzPwuCKsmCM8kVqNGWWUK%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;583&quot; height=&quot;295&quot; data-filename=&quot;라마3_6.png&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;295&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;라마3 모델 다운로드&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;올라마는 LLM 모델들을 쉽게 활용하기 위한 도구 같은 것입니다. 즉, 저희는 라마3 모델을 사용하기 위해서 올라마를 설치한 것 뿐이라는 겁니다. 본격적으로 라마3 모델을 사용하기 위해서는 올라마를 이용하여 라마3 모델을 다운로드 받을 건데요. 다시 올라마 웹사이트로 돌아가면, 우측 상단에 아래와 같이 Models라는 영역이 보일 겁니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_7.png&quot; data-origin-width=&quot;985&quot; data-origin-height=&quot;563&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brTvLJ/btsG2n8KdQX/ohLEoLHtjUkHOBGLz7kssk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brTvLJ/btsG2n8KdQX/ohLEoLHtjUkHOBGLz7kssk/img.png&quot; data-alt=&quot;올라마 웹사이트의 Models 영역&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brTvLJ/btsG2n8KdQX/ohLEoLHtjUkHOBGLz7kssk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrTvLJ%2FbtsG2n8KdQX%2FohLEoLHtjUkHOBGLz7kssk%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;985&quot; height=&quot;563&quot; data-filename=&quot;라마3_7.png&quot; data-origin-width=&quot;985&quot; data-origin-height=&quot;563&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;올라마 웹사이트의 Models 영역&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 영역을 들어가면, LLM 모델들을 선택할 수 있는데요. 저희의 목적은 라마3이니 llama3를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_8.png&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;378&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8MgOj/btsG49uA473/bY0mABNS2zeN6P7UScyLX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8MgOj/btsG49uA473/bY0mABNS2zeN6P7UScyLX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8MgOj/btsG49uA473/bY0mABNS2zeN6P7UScyLX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8MgOj%2FbtsG49uA473%2FbY0mABNS2zeN6P7UScyLX0%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;951&quot; height=&quot;378&quot; data-filename=&quot;라마3_8.png&quot; data-origin-width=&quot;951&quot; data-origin-height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라마3을 선택하게 되면, 아래와 같이 모델을 선택할 수 있는 화면이 나오게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_9.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;586&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9dJkY/btsG4gt2T9t/kWHhI3bE65AoxbeHiEdpEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9dJkY/btsG4gt2T9t/kWHhI3bE65AoxbeHiEdpEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9dJkY/btsG4gt2T9t/kWHhI3bE65AoxbeHiEdpEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9dJkY%2FbtsG4gt2T9t%2FkWHhI3bE65AoxbeHiEdpEk%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;1080&quot; height=&quot;586&quot; data-filename=&quot;라마3_9.png&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;586&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;저희가 테스트 해봐야 될 건, 로컬에서 쉽게 설치하고 활용할 수 있는 8B 버전입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메타의 설명에 따르면 8B는 GPT 3.5 수준의 성능을 내며, 70b는 GPT 4.0 수준의 성능을 발휘한다고 합니다. 3.5 정도만 되더라도 충분히 많은 서비스에 적용할 수 있기 때문에 기대를 안고 8B를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_10.png&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;561&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dFi7yM/btsG5HEkTHC/alm1G3aWo6ikQHzgyiYaoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dFi7yM/btsG5HEkTHC/alm1G3aWo6ikQHzgyiYaoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dFi7yM/btsG5HEkTHC/alm1G3aWo6ikQHzgyiYaoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdFi7yM%2FbtsG5HEkTHC%2Falm1G3aWo6ikQHzgyiYaoK%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;927&quot; height=&quot;561&quot; data-filename=&quot;라마3_10.png&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;561&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;8B 모델을 선택하면, 우측의 영역에 ollama run llama3:8b라는 말로 바뀐 것을 알 수 있는데요. 이를 Copy 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_11.png&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oYdZq/btsG483u2mu/PpxYNR2q0fsIc4fXI2dlh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oYdZq/btsG483u2mu/PpxYNR2q0fsIc4fXI2dlh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oYdZq/btsG483u2mu/PpxYNR2q0fsIc4fXI2dlh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoYdZq%2FbtsG483u2mu%2FPpxYNR2q0fsIc4fXI2dlh0%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;979&quot; height=&quot;512&quot; data-filename=&quot;라마3_11.png&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커멘드창을 연 후, 위 명령어를 실행해 봅니다. 저는 혹시 몰라 폴더를 생성하였는데 어차피 올라마 위치에 다운로드를 하는 것으로 보이기에 어떤 위치에서 실행해도 상관이 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_12.png&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H8PqX/btsG5l2IqJU/vtcPEBkJY3Gw52EpkqypH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H8PqX/btsG5l2IqJU/vtcPEBkJY3Gw52EpkqypH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H8PqX/btsG5l2IqJU/vtcPEBkJY3Gw52EpkqypH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH8PqX%2FbtsG5l2IqJU%2FvtcPEBkJY3Gw52EpkqypH1%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;979&quot; height=&quot;512&quot; data-filename=&quot;라마3_12.png&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_13.png&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHNMFr/btsG5mmYaRE/JMrxnFD6EeuQEUKeD0wK21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHNMFr/btsG5mmYaRE/JMrxnFD6EeuQEUKeD0wK21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHNMFr/btsG5mmYaRE/JMrxnFD6EeuQEUKeD0wK21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHNMFr%2FbtsG5mmYaRE%2FJMrxnFD6EeuQEUKeD0wK21%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;979&quot; height=&quot;512&quot; data-filename=&quot;라마3_13.png&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모델을 모두 다운로드 하게 되면, 해당 모델을 바로 사용을 할 수 있게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_14.png&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HXK0I/btsG53Anli6/wvLhJskJ2Pikb68J8gTp91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HXK0I/btsG53Anli6/wvLhJskJ2Pikb68J8gTp91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HXK0I/btsG53Anli6/wvLhJskJ2Pikb68J8gTp91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHXK0I%2FbtsG53Anli6%2FwvLhJskJ2Pikb68J8gTp91%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;979&quot; height=&quot;512&quot; data-filename=&quot;라마3_14.png&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/? 라고 입력을 하면, 명령어가 뜨게 되며 사용법을 알 수 있게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;라마3_15.png&quot; data-origin-width=&quot;1271&quot; data-origin-height=&quot;678&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2w10s/btsG3LuhM3q/4Idt5KWzllat3KyTKBCO31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2w10s/btsG3LuhM3q/4Idt5KWzllat3KyTKBCO31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2w10s/btsG3LuhM3q/4Idt5KWzllat3KyTKBCO31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2w10s%2FbtsG3LuhM3q%2F4Idt5KWzllat3KyTKBCO31%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;1271&quot; height=&quot;678&quot; data-filename=&quot;라마3_15.png&quot; data-origin-width=&quot;1271&quot; data-origin-height=&quot;678&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 화면은 제가 라마3에게 인공지능에 대해서 어떻게 생각하는지를 질문하는 화면입니다. 번역해서 말해달라는 말이 없다면 기본 Default로 말을 하기 때문에 질문을 한글로 적더라도, 꼭 아래와 같이 한글로 작성해줘와 같은 말을 추가로 넣어주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재까지 여럿 테스트를 해봤는데 아직까지는 GPT-3.5 보다는 약간 성능이 부족한 것처럼 느껴지는데요. 장점은 속도가 매우 빠르며, 현업에서 충분히 활용할 수 있는 용량이기 때문에 앞으로 해당 모델을 어떻게 파인튜닝 시키는지에 따라서 성능을 얼만큼 끌어올릴 수 있을지 좀 테스트를 해봐야 될 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저희 회사는 ChatGPT 3.5 버전을 사용하는 서비스가 많으며, 한달에 약 100만원 가량의 API 사용료를 지불하는데 이참에 가장 많이 사용하는 서비스를 대상으로 교체를 해보는 것을 시도해봐도 좋을 것 같습니다.&lt;/p&gt;</description>
      <category>LLM/그외 GPT</category>
      <category>llama</category>
      <category>llama3</category>
      <category>라마3</category>
      <category>메타</category>
      <category>올라마</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/815</guid>
      <comments>https://needjarvis.tistory.com/815#entry815comment</comments>
      <pubDate>Tue, 30 Apr 2024 19:46:34 +0900</pubDate>
    </item>
    <item>
      <title>Java 로깅 프레임워크 비교 및 사용 : Log4j, Logback, Log4j2</title>
      <link>https://needjarvis.tistory.com/814</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개발 과정에서나 운영 환경에서의 문제 해결에 있어서 로깅의 중요성은 아무리 강조해도 지나치지 않다. 로깅은 시스템의 내부 동작을 이해하고, 문제의 원인을 파악하는데 필수적인 정보를 제공한다. 이를 위해 로깅 시스템은 어플리케이션의 성능에 영향을 주지 않으면서 필요한 정보를 효과적으로 제공할 수 있어야 하며, 다양한 배포 환경과 상황에 따라 로깅의 세부 사항들을 조정할 수 있어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java 개발 생태계에서는 다양한 로깅 프레임워크가 이러한 기술적 요구사항을 해결해 주고 있다. SLF4(Simple Logging Facade for Java)는 이들 프레임워크를 추상화한 표준화된 API로 제공하여, 개발자가 구체적인 로깅 구현체를 변경하고자 할 때 코드를 변경할 필요 없이 의존성만 교체함으로써 유연하게 대응할 수 있게 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 포스팅에서는 Java 로깅 프레임워크 중에서도 특히 Log4j, Logback, Log4j2에 대해 간단히 소개와 동시에 예제를 보여주며, 어떤 프레임워크를 사용하면 좋을지 정리해보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;자바_로깅_프레임워크_비교.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bijeDO/btsEwHmJrrp/dGIKaIbMv5knLUOKzRiNV0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bijeDO/btsEwHmJrrp/dGIKaIbMv5knLUOKzRiNV0/img.jpg&quot; data-alt=&quot;Java 로깅 프레임워크 비교 및 사용 : Log4j, Logback, Log4j2&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bijeDO/btsEwHmJrrp/dGIKaIbMv5knLUOKzRiNV0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbijeDO%2FbtsEwHmJrrp%2FdGIKaIbMv5knLUOKzRiNV0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;484&quot; data-filename=&quot;자바_로깅_프레임워크_비교.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Java 로깅 프레임워크 비교 및 사용 : Log4j, Logback, Log4j2&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Log4j&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Log4j는 아파치(Apache Log4j) 프로젝트로 가장 오랜기간 사용한 로깅 프레임워크이며, 개발기간이 좀 된 개발자들은 아직도 Log4J를 쓰는 경우가 종종 있다. 현재에 이른 계층적 로그 레벨과 로거와 같은 기본 개념을 도입한 프로젝트로 2015년에 EOL(End of Life, 개발종료)이 된 사실상 더이상 사용을 하는 것을 권고하지 않는 프레임워크이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;샘플 코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707197419342&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import org.apache.log4j.Logger;

public class Log4jExample {
    final static Logger logger = Logger.getLogger(Log4jExample.class);

    public void performSomeOperation() {
        logger.info(&quot;로그 내용&quot;);
    }
}&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;Log4j를 사용하기 위해서는 'log4j.jar' 파일을 클래스패스에 추가하고 log4j.properties 파일로 로거와 append를 설정해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Maven 설정&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707197486628&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;log4j&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;log4j&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.2.17&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Log4j는 기본적으로 SLF4J를 지원하지 않기에 표준화된 인터페이스를 통해 Log4j를 사용하려면 아래 Dependency를 추가해야 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1707197597317&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt; 
    &amp;lt;groupId&amp;gt;org.slf4j&amp;lt;/groupId&amp;gt; 
    &amp;lt;artifactId&amp;gt;slf4j-log4j12&amp;lt;/artifactId&amp;gt; 
    &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt; 
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Gradle 설정&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707197512933&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;implementation 'log4j:log4j:1.2.17'&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;&lt;b&gt;log4j.properties 예시&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707197540100&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;log4j.appender.file=org.apache.log4j.FileAppender 
log4j.appender.file.File=app.log 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n 

log4j.rootLogger=info, file 
# basic log level for all messages 
log4j.logger.org.hibernate=info 

# SQL statements and parameters 
log4j.logger.org.hibernate.SQL=debug 
log4j.logger.org.hibernate.type.descriptor.sql=trace&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;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;Logback&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Logback은 Log4j의 후속으로 성능 향상과 SLF4J에 대한 기본 지원, 로깅 설정의 자동 리로딩 같은 여러 개선 사항을 도입하였다. Logback은 세부분으로 구성되어 있으며 각각 logback-core, logback-classic, logback-access로 되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;샘플 코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707197734613&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogbackExample {
    private static final Logger logger = LoggerFactory.getLogger(LogbackExample.class);

    public void performSomeOperation() {
        logger.info(&quot;로그 내용&quot;);
    }
}&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;Logback 설정은 XML 형식의 logback.xml 파일을 통해 이루어지며, 기본적으로 DEBUG 레벨 이상의 로그를 표준 출력으로 보낸다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Maven 설정&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707197795061&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;ch.qos.logback&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;logback-classic&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.2.3&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&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;&lt;b&gt;Gradle 설정&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707197815917&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;implementation 'ch.qos.logback:logback-classic:1.2.3'&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;&lt;b&gt;logback.xml 예시&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707197847868&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;configuration&amp;gt;
    &amp;lt;appender name=&quot;STDOUT&quot; class=&quot;ch.qos.logback.core.ConsoleAppender&quot;&amp;gt;
        &amp;lt;encoder&amp;gt;
            &amp;lt;pattern&amp;gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n&amp;lt;/pattern&amp;gt;
        &amp;lt;/encoder&amp;gt;
    &amp;lt;/appender&amp;gt;

    &amp;lt;root level=&quot;DEBUG&quot;&amp;gt;
        &amp;lt;appender-ref ref=&quot;STDOUT&quot; /&amp;gt;
    &amp;lt;/root&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 설정은 로그 메세지를 콘솔에 출력하며, 메세지 포맷은 시간, 스레드 이름, 로그 레벨, 로거 이름, 메세지 순으로 구성된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;Log4j2&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Log4j2는 Log4j와 Logback의 개선 사항을 포함하여 더욱 발전된 기능을 제공하는 로깅 프레임워크이다. 비동기 로깅, 로그 문장의 지연 평가, 가비지 수집기 작업으로 인해 발생하는 대기 시간을 방지하기 위한 garbage-free mode 등을 지원하여 성능과 유연성을 크게 향상 시켰다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;샘플 코드&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707198009333&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Log4j2Example {
    private static final Logger logger = LogManager.getLogger(Log4j2Example.class);

    public void performSomeOperation() {
        logger.info(&quot;로그 내용&quot;);
    }
}&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;Log4j2이 가장 진일보한 최신 라이브러리지만, 최근 들어 보안 문제가 발생하며 대대적인 이슈를 낳은적이 있다. 우리 회사에서도 라이브러리를 사용한 사람들에게 코드 변경을 권고 했었는데 Log4j와 Log4j2를 사용하지 않아서 개인적으로는 문제가 없었으나, 다른 팀이나 파트 사람들은 코드를 고치느라 작업을 꽤 많이 했던 것으로 기억이 난다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Maven 설정&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707198026340&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
	&amp;lt;groupId&amp;gt;org.apache.logging.log4j&amp;lt;/groupId&amp;gt;
	&amp;lt;artifactId&amp;gt;log4j-api&amp;lt;/artifactId&amp;gt;
	&amp;lt;version&amp;gt;2.22.1&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;
&amp;lt;dependency&amp;gt;
	&amp;lt;groupId&amp;gt;org.apache.logging.log4j&amp;lt;/groupId&amp;gt;
	&amp;lt;artifactId&amp;gt;log4j-core&amp;lt;/artifactId&amp;gt;
	&amp;lt;version&amp;gt;2.22.1&amp;lt;/version&amp;gt;
&amp;lt;/dependency&amp;gt;&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;&lt;b&gt;Gradle 설정&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1707198037452&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;implementation 'org.apache.logging.log4j:log4j-api:2.22.1'
implementation 'org.apache.logging.log4j:log4j-core:2.22.1'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;취약점 관련 보도&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;log4j2_취약점.png&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnHSwj/btsEnZ3y2vT/sgEStBKEoPkKTgGON6aQck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnHSwj/btsEnZ3y2vT/sgEStBKEoPkKTgGON6aQck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnHSwj/btsEnZ3y2vT/sgEStBKEoPkKTgGON6aQck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnHSwj%2FbtsEnZ3y2vT%2FsgEStBKEoPkKTgGON6aQck%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;713&quot; height=&quot;612&quot; data-filename=&quot;log4j2_취약점.png&quot; data-origin-width=&quot;713&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한동안 떠들썩 하던 보안 경고는 사실 끝난 것이 아닐지도 모른다. 그래서, Log4j 혹은 Log4j2보다는 Logback을 사용하길 권고하고 싶다. 특히 Log4j2는 특별한 일이 없으면 웬만하면 사용을 자제하는 것이 좋을 것이다.&lt;/p&gt;</description>
      <category>프로그램언어/자바(Java)</category>
      <category>log4j</category>
      <category>log4j2</category>
      <category>logback</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/814</guid>
      <comments>https://needjarvis.tistory.com/814#entry814comment</comments>
      <pubDate>Tue, 6 Feb 2024 14:57:13 +0900</pubDate>
    </item>
    <item>
      <title>[Java] OracleJDK 21, 설치 및 세팅하기 (OpenJDK 비교 및 라이센스)</title>
      <link>https://needjarvis.tistory.com/813</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오라클(Oracle)에서 17버전부터는 NFTC(No-Fee Terms and Conditions)라는 새로운 라이센스를 내세우면서 무료로 사용이 가능하다는 것을 내세웠지만, 사실상 이는 무료의 사용 기간을 길게 한 것일뿐 무료 사용이 끝나는 기간에는 유료 결제를 해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 자바의 버전을 계속 변경하다보면 사용이 가능할 것도 같지만, 문제의 여부를 테스트 해봐야 하고 수많은 서버가 있는 곳에서 이런 작업은 더욱 피곤하게 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1325&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfsy7K/btsDQ3cnHNI/zPNlKfnXBksJMwdN9Du1CK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfsy7K/btsDQ3cnHNI/zPNlKfnXBksJMwdN9Du1CK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfsy7K/btsDQ3cnHNI/zPNlKfnXBksJMwdN9Du1CK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcfsy7K%2FbtsDQ3cnHNI%2FzPNlKfnXBksJMwdN9Du1CK%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;1325&quot; height=&quot;388&quot; data-origin-width=&quot;1325&quot; data-origin-height=&quot;388&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;그래도 다행인 것은 Java21이든 Java17이든 유료 라이센스에 영향을 주는 것은 운영서버 즉, 배포를 하는 환경일 뿐 개발자 환경에서는 OracleJDK로 하든 OpenJDK로 하든 상관이 없는 것으로 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 OpenJDK로 설치를 하여 진행하려고 했지만, 개발을 할 때 속도 등을 고려했을 때 OracleJDK가 OpenJDK보다 빠를 것이 당연하므로 고민 끝에 OracleJDK로 세팅하기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;OracleJDK 설치 방법&lt;/b&gt;&lt;/h2&gt;
&lt;figure id=&quot;og_1705900843045&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;Download the Latest Java LTS Free&quot; data-og-description=&quot;Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.&quot; data-og-host=&quot;www.oracle.com&quot; data-og-source-url=&quot;https://www.oracle.com/java/technologies/downloads/&quot; data-og-url=&quot;https://www.oracle.com/java/technologies/downloads/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/uSKNV/hyU84Z2VZb/cBKfWWCNZhiaU9SxEjIxJ0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/bUoHXs/hyU8TjWJTY/QOj0SK5jaFPYcYhY3NPEM1/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200&quot;&gt;&lt;a href=&quot;https://www.oracle.com/java/technologies/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.oracle.com/java/technologies/downloads/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/uSKNV/hyU84Z2VZb/cBKfWWCNZhiaU9SxEjIxJ0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=0_0_1200_628,https://scrap.kakaocdn.net/dn/bUoHXs/hyU8TjWJTY/QOj0SK5jaFPYcYhY3NPEM1/img.jpg?width=1200&amp;amp;height=1200&amp;amp;face=0_0_1200_1200');&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;Download the Latest Java LTS Free&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.oracle.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;위 경로로 들어가게 되면, 아래와 같은 페이지가 보이게 되며 Java Downloads 탭의 서브 탭의 내용을 보면 OS를 선택할 수 있다. 본인의 OS에 맞는 하위 탭을 다시 한번 선택하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jdk_1.png&quot; data-origin-width=&quot;1340&quot; data-origin-height=&quot;702&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOuiQt/btsDLtbZNH1/BSdeKavn7ATTDMVujxMGd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOuiQt/btsDLtbZNH1/BSdeKavn7ATTDMVujxMGd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOuiQt/btsDLtbZNH1/BSdeKavn7ATTDMVujxMGd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOuiQt%2FbtsDLtbZNH1%2FBSdeKavn7ATTDMVujxMGd1%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;1340&quot; height=&quot;702&quot; data-filename=&quot;jdk_1.png&quot; data-origin-width=&quot;1340&quot; data-origin-height=&quot;702&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows에서 개발을 하기 때문에 Windows 탭을 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jdk_2.png&quot; data-origin-width=&quot;1387&quot; data-origin-height=&quot;515&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YoLir/btsDJWMGW82/QI5odAkvAuk7B18bmJ5OUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YoLir/btsDJWMGW82/QI5odAkvAuk7B18bmJ5OUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YoLir/btsDJWMGW82/QI5odAkvAuk7B18bmJ5OUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYoLir%2FbtsDJWMGW82%2FQI5odAkvAuk7B18bmJ5OUk%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;1387&quot; height=&quot;515&quot; data-filename=&quot;jdk_2.png&quot; data-origin-width=&quot;1387&quot; data-origin-height=&quot;515&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;다양한 윈도우용 버전중에 MSI Installer를 선택하였는데, 취향일 뿐 원하는 설치 방법을 선택하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jdk_3.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A2qDx/btsDJk8a4ab/9Fff5YcTKOjpPk9KzhPitK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A2qDx/btsDJk8a4ab/9Fff5YcTKOjpPk9KzhPitK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A2qDx/btsDJk8a4ab/9Fff5YcTKOjpPk9KzhPitK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA2qDx%2FbtsDJk8a4ab%2F9Fff5YcTKOjpPk9KzhPitK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;381&quot; data-filename=&quot;jdk_3.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjp0tO/btsDJmkCp9a/gpNbakf5Ome1Mn84npfOHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjp0tO/btsDJmkCp9a/gpNbakf5Ome1Mn84npfOHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjp0tO/btsDJmkCp9a/gpNbakf5Ome1Mn84npfOHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjp0tO%2FbtsDJmkCp9a%2FgpNbakf5Ome1Mn84npfOHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;381&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSY2GC/btsDKMv3eBg/c3K3k0pFYmwltCZD0gC95k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSY2GC/btsDKMv3eBg/c3K3k0pFYmwltCZD0gC95k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSY2GC/btsDKMv3eBg/c3K3k0pFYmwltCZD0gC95k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSY2GC%2FbtsDKMv3eBg%2Fc3K3k0pFYmwltCZD0gC95k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;381&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Next &amp;gt; Next &amp;gt; Next를 눌러, Java를 Program Files/Java/jdk-21에 설치를 완료하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jdk_4.png&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qWo7o/btsDI8NGPKK/hdfrez37GXHGeVMZGhUk40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qWo7o/btsDI8NGPKK/hdfrez37GXHGeVMZGhUk40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qWo7o/btsDI8NGPKK/hdfrez37GXHGeVMZGhUk40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqWo7o%2FbtsDI8NGPKK%2Fhdfrez37GXHGeVMZGhUk40%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;522&quot; height=&quot;227&quot; data-filename=&quot;jdk_4.png&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;227&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;위와같이 설치가 완료된 것을 확인할 수 있다. 이제 해야 할 건, Java를 Path에 등록을 하면 마무리 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;환경설정 등록&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jdk_5.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bypWs4/btsDQ7lBnCi/61bfCOwlyXKvCXo3qakCo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bypWs4/btsDQ7lBnCi/61bfCOwlyXKvCXo3qakCo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bypWs4/btsDQ7lBnCi/61bfCOwlyXKvCXo3qakCo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbypWs4%2FbtsDQ7lBnCi%2F61bfCOwlyXKvCXo3qakCo1%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;784&quot; height=&quot;680&quot; data-filename=&quot;jdk_5.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;윈도우 명령어에서 시스템환경을 입력하면, &lt;b&gt;시스템 환경 변수 편집&lt;/b&gt; 어플리케이션이 뜰 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;533&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K5QKl/btsDQ3crzAB/FqNJVFZZkrVY6efzN73dE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K5QKl/btsDQ3crzAB/FqNJVFZZkrVY6efzN73dE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K5QKl/btsDQ3crzAB/FqNJVFZZkrVY6efzN73dE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK5QKl%2FbtsDQ3crzAB%2FFqNJVFZZkrVY6efzN73dE0%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;479&quot; height=&quot;533&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;533&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선택하자마자 보이는 환경 변수 메뉴를 선택하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;585&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8qIVN/btsDI7uvCMT/don8nHk9sk6nXv4bdUHVC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8qIVN/btsDI7uvCMT/don8nHk9sk6nXv4bdUHVC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8qIVN/btsDI7uvCMT/don8nHk9sk6nXv4bdUHVC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8qIVN%2FbtsDI7uvCMT%2Fdon8nHk9sk6nXv4bdUHVC0%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;618&quot; height=&quot;585&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;585&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바를 단 한번도 설치한 적 없다면, 새로 만들기를 입력하여 JAVA_HOME을 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xAL9e/btsDKaKIwSC/AfRYy6qo2DpAZMyKkZIiw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xAL9e/btsDKaKIwSC/AfRYy6qo2DpAZMyKkZIiw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xAL9e/btsDKaKIwSC/AfRYy6qo2DpAZMyKkZIiw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxAL9e%2FbtsDKaKIwSC%2FAfRYy6qo2DpAZMyKkZIiw1%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;653&quot; height=&quot;165&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;165&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;여기서는 기존에 있는 JAVA_HOME에 경로를 변경하면 되는 것이라 변수 값에 jdk-21 폴더 패스를 입력한 후, 확인을 누른다.&amp;nbsp;단 한번도 JDK를 설치한 적이 없는 분들은 아래 글을 참고하여 세팅하도록 해보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1705903741532&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;[Java] JDK 설치 및 환경변수 설정 방법&quot; data-og-description=&quot;자바(Java)의 세상에 들어가기 위해서는 JDK(Java Development Kit, 자바개발키트)라는 개발환경을 설치하고 JVM(Java Virtual Machine)이라는 가상환경을 세팅해야 한다. (JDK를 설치하면 JVM도 세팅이 된다) JDK&quot; data-og-host=&quot;needneo.tistory.com&quot; data-og-source-url=&quot;https://needneo.tistory.com/52&quot; data-og-url=&quot;https://needneo.tistory.com/52&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bsSZOB/hyU8V9SM7E/WFe4W9bZAQRHLKCoBakrI0/img.png?width=800&amp;amp;height=430&amp;amp;face=0_0_800_430,https://scrap.kakaocdn.net/dn/GJdWV/hyU8VWmV7F/3odll0fqpdLjgmc27azL20/img.png?width=800&amp;amp;height=430&amp;amp;face=0_0_800_430,https://scrap.kakaocdn.net/dn/bRQRrL/hyU8UiQ1tg/Vxuh4v9rjLUGbdOhaS9UJ1/img.png?width=1450&amp;amp;height=777&amp;amp;face=0_0_1450_777&quot;&gt;&lt;a href=&quot;https://needneo.tistory.com/52&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needneo.tistory.com/52&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bsSZOB/hyU8V9SM7E/WFe4W9bZAQRHLKCoBakrI0/img.png?width=800&amp;amp;height=430&amp;amp;face=0_0_800_430,https://scrap.kakaocdn.net/dn/GJdWV/hyU8VWmV7F/3odll0fqpdLjgmc27azL20/img.png?width=800&amp;amp;height=430&amp;amp;face=0_0_800_430,https://scrap.kakaocdn.net/dn/bRQRrL/hyU8UiQ1tg/Vxuh4v9rjLUGbdOhaS9UJ1/img.png?width=1450&amp;amp;height=777&amp;amp;face=0_0_1450_777');&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;[Java] JDK 설치 및 환경변수 설정 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;자바(Java)의 세상에 들어가기 위해서는 JDK(Java Development Kit, 자바개발키트)라는 개발환경을 설치하고 JVM(Java Virtual Machine)이라는 가상환경을 세팅해야 한다. (JDK를 설치하면 JVM도 세팅이 된다) JDK&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needneo.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;b&gt;자바 설치 및 세팅 확인&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jdk_6.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QulBZ/btsDQ1FJYgY/Ss3UpaVaDMbUL1a3YTfb10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QulBZ/btsDQ1FJYgY/Ss3UpaVaDMbUL1a3YTfb10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QulBZ/btsDQ1FJYgY/Ss3UpaVaDMbUL1a3YTfb10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQulBZ%2FbtsDQ1FJYgY%2FSs3UpaVaDMbUL1a3YTfb10%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;784&quot; height=&quot;680&quot; data-filename=&quot;jdk_6.png&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;환경을 세팅 한 후, 확인을 눌러 모든 창을 닫았다면 윈도우검색창에서 cmd를 입력하여 명령 프롬프트 창을 실행한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lYXnr/btsDJYXPaVK/Ks19CS79o3sqGejNZ8LXsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lYXnr/btsDJYXPaVK/Ks19CS79o3sqGejNZ8LXsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lYXnr/btsDJYXPaVK/Ks19CS79o3sqGejNZ8LXsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlYXnr%2FbtsDJYXPaVK%2FKs19CS79o3sqGejNZ8LXsk%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;979&quot; height=&quot;512&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&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;pre id=&quot;code_1705903803971&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java -version&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;를 입력한 후, 위와 같이 21.X.X 버전이 보인다면 정상적으로 세팅이 마무리 된 것이다.&amp;nbsp;&lt;/p&gt;</description>
      <category>프로그램언어/자바(Java)</category>
      <category>java</category>
      <category>자바</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/813</guid>
      <comments>https://needjarvis.tistory.com/813#entry813comment</comments>
      <pubDate>Mon, 22 Jan 2024 15:20:19 +0900</pubDate>
    </item>
    <item>
      <title>이미지에서 텍스트를 추출하는 OCR, 만들어보기</title>
      <link>https://needjarvis.tistory.com/812</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;올해에는 단연코 ChatGPT 열풍이라 할 수 있겠지만, 올해 비록 영상 조작 논란으로 말이 많지만 멀티모달의 가능성을 열어주고, 앞으로 무궁무진한 서비스가 열릴 것으로 예상되는 구글의 제미나이(Gemini) 서비스로 인해서 자연어처리(NLP)라는 항목을 벗어나 멀티모달의 영역으로 갈 것이라 예상이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;블로그에서 유튜브로 넘어가듯, ChatGPT에서 영상처리로 가는 것은 필연적일 것이며 집에 있는 카메라등과 스피커 등을 통해서 앞으로 수많은 의사소통이 이루어지지 않을까 예상된다. 우선 OCR을 Tesseract를 사용하여 만든적(정확히는 사용한적)이 있긴 하지만, 블로그에 정리를 한적이 없는 것 같아서 이렇게 포스팅 하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;OCR_타이틀.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYGJw2/btsBR9gIFTs/mQYKgnvBNlAgvVAMsu55h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYGJw2/btsBR9gIFTs/mQYKgnvBNlAgvVAMsu55h1/img.png&quot; data-alt=&quot;이미지에서 텍스트를 추출하는 OCR, 만들어보기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYGJw2/btsBR9gIFTs/mQYKgnvBNlAgvVAMsu55h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYGJw2%2FbtsBR9gIFTs%2FmQYKgnvBNlAgvVAMsu55h1%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;1024&quot; height=&quot;576&quot; data-filename=&quot;OCR_타이틀.png&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이미지에서 텍스트를 추출하는 OCR, 만들어보기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;OCR(Optical Character Recognition)이란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OCR은 광학문자 인식(Optical Character Recognition) 이라는 의미로, 이미지에서 텍스트를 인식하고 추출하는 기술을 말하며, 스캔한 문서, 사진 속 텍스트, 손으로 쓴 글씨 등을 디지털 텍스트 형태로 변환을 시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OCR의 원리는 이미지를 우선 스캔하고, 스캔된 이미지에서 텍스트와 비텍스트를 구분하며, 텍스트의 경우 문자 인식 알고리즘으로 알파벳, 숫자, 한글 등으로 인식을 하게 된다.&amp;nbsp;여기에 추가적으로 문맥 분석이라는 것을 이용하여 단어와 문장의 문맥을 파악하여 정확도를 높이는 작업등을 보강할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;OCR 만들어보기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python으로 만들 것이며, OCR 역시 학습이라는 과정을 통해 만들어진 모델이 필요하다. 즉, OCR 역시 일반적으로는 머신러닝이기 때문에 다른 언어로 만들 생각은 일단 하지 못했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python은 대표적으로 구글의 Tesseract-OCR 엔진의 pytesseract라는 라이브러리를 사용하여 만드는 것이 보편적이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Tesseract 약력&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Tesseract는 원래 1985년부터 1994년까지 영국 브리스톨의 Hewlett-Packard Laboratories와 미국 Greeley 콜로라도의 Hewlett-Packard Co에서 개발되었으며, 1996년에 Windows로 이식하기 위해 몇 가지 추가 변경이 이루어졌고, 1998년에 일부 C++화되었습니다. 2005년 Tesseract HP에서 오픈소스로 공개했습니다. 2006년부터 2018년 11월까지 Google에서 개발했습니다.&lt;br /&gt;메이저 버전 5는 현재 안정적인 버전이며 2021년 11월 30일 릴리스 5.0.0 으로 시작되었습니다. 최신 마이너 버전과 버그 수정 버전은 GitHub 에서 사용할 수 있습니다 .&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;라이브러리 설치&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1702529776438&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(kogpt) D:\Project\steel\python&amp;gt;pip install Pillow
Requirement already satisfied: Pillow in d:\anaconda3\envs\kogpt\lib\site-packages (9.4.0)

(kogpt) D:\Project\steel\python&amp;gt;pip install pytesseract
Collecting pytesseract
  Downloading pytesseract-0.3.10-py3-none-any.whl (14 kB)
Requirement already satisfied: packaging&amp;gt;=21.3 in d:\anaconda3\envs\kogpt\lib\site-packages (from pytesseract) (23.0)
Requirement already satisfied: Pillow&amp;gt;=8.0.0 in d:\anaconda3\envs\kogpt\lib\site-packages (from pytesseract) (9.4.0)
Installing collected packages: pytesseract
Successfully installed pytesseract-0.3.10&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;우선 사용하기 위해서는 파이썬 이미지 라이브러리인 Pillow를 설치 한 후, Pytesseract 역시 설치를 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Tesseract OCR 엔진 설치&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라이브러리를 모두 설치하였다면, 이제 엔진을 설치해야 하는데 윈도우에서 작업을 하는 사람은 Tesseract GitHub로 검색을 하거나 아래 링크로 접속한 후 설치 프로그램을 받는다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1702530411820&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;Home&quot; data-og-description=&quot;Tesseract Open Source OCR Engine (main repository) - UB-Mannheim/tesseract&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/UB-Mannheim/tesseract/wiki&quot; data-og-url=&quot;https://github.com/UB-Mannheim/tesseract/wiki/Home&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/nd2B7/hyUL1bDQaa/SK2OQ4YGQZhmKU35PGpqcK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/UB-Mannheim/tesseract/wiki&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/UB-Mannheim/tesseract/wiki&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/nd2B7/hyUL1bDQaa/SK2OQ4YGQZhmKU35PGpqcK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Home&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Tesseract Open Source OCR Engine (main repository) - UB-Mannheim/tesseract&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1038&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0JPhQ/btsBYd9QotE/7URdqQX0YKOrgvHC2OS351/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0JPhQ/btsBYd9QotE/7URdqQX0YKOrgvHC2OS351/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0JPhQ/btsBYd9QotE/7URdqQX0YKOrgvHC2OS351/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0JPhQ%2FbtsBYd9QotE%2F7URdqQX0YKOrgvHC2OS351%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;1038&quot; height=&quot;630&quot; data-origin-width=&quot;1038&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 tesseract-ocr-w64-setup-x.x.x.x.exe 파일을 다운로드 한 후, 실행을 시킨다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bm3QRt/btsBXGSoRlt/iIeet8RRkkPscLjWAMLrM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bm3QRt/btsBXGSoRlt/iIeet8RRkkPscLjWAMLrM1/img.png&quot; data-alt=&quot;컴포넌츠 선택(사실상 언어)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bm3QRt/btsBXGSoRlt/iIeet8RRkkPscLjWAMLrM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbm3QRt%2FbtsBXGSoRlt%2FiIeet8RRkkPscLjWAMLrM1%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;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;컴포넌츠 선택(사실상 언어)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후, Next를 누르다보면, 컴포넌츠를 설치하는 스텝이 나오는데 원래는 한국어만 체크하는게 나을지 모르겠지만 일단 모든 언어를 모두 선택하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8M2RB/btsBR8B2fVN/PdtwZU5OSOEKLckAP3MC5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8M2RB/btsBR8B2fVN/PdtwZU5OSOEKLckAP3MC5K/img.png&quot; data-alt=&quot;설치 진행중&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8M2RB/btsBR8B2fVN/PdtwZU5OSOEKLckAP3MC5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8M2RB%2FbtsBR8B2fVN%2FPdtwZU5OSOEKLckAP3MC5K%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;499&quot; height=&quot;388&quot; data-origin-width=&quot;499&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;설치 진행중&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;누구는 오래 걸렸다 이야기를 하였지만, 1분안에 모두 설치가 되었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Tesseract 설치 확인&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 위치는 C:/Program Files/Tesseract-OCR에 설치가 되었고, 설치가 제대로 되었는지 확인을 위해서 아래와 같이 쉘 명령어를 날렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1702530873599&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;C:\Program Files\Tesseract-OCR&amp;gt;tesseract
Usage:
  tesseract --help | --help-extra | --version
  tesseract --list-langs
  tesseract imagename outputbase [options...] [configfile...]

OCR options:
  -l LANG[+LANG]        Specify language(s) used for OCR.
NOTE: These options must occur before any configfile.

Single options:
  --help                Show this help message.
  --help-extra          Show extra help for advanced users.
  --version             Show version information.
  --list-langs          List available languages for tesseract engine.

C:\Program Files\Tesseract-OCR&amp;gt;tesseract --version
tesseract v5.3.3.20231005
 leptonica-1.83.1
  libgif 5.2.1 : libjpeg 8d (libjpeg-turbo 2.1.4) : libpng 1.6.40 : libtiff 4.6.0 : zlib 1.2.13 : libwebp 1.3.2 : libopenjp2 2.5.0
 Found AVX2
 Found AVX
 Found FMA
 Found SSE4.1
 Found libarchive 3.7.2 zlib/1.3 liblzma/5.4.4 bz2lib/1.0.8 liblz4/1.9.4 libzstd/1.5.5
 Found libcurl/8.3.0 Schannel zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.4 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.11.0

C:\Program Files\Tesseract-OCR&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테서렉트 버전은 5.3.3 이며 최신 빌드는 2023년 10월 5일자로 제대로 실행이 되는 것을 확인 하였으니, 이제 Tesseract를 어디서든 사용하기 위해서 환경 변수 설정을 하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;환경 변수 설정&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c22dC7/btsB1xfA8dl/vtvgC4bkRQkmq5P7Yv1Kh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c22dC7/btsB1xfA8dl/vtvgC4bkRQkmq5P7Yv1Kh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c22dC7/btsB1xfA8dl/vtvgC4bkRQkmq5P7Yv1Kh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc22dC7%2FbtsB1xfA8dl%2FvtvgC4bkRQkmq5P7Yv1Kh0%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;784&quot; height=&quot;680&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 실행 칸에서 &quot;시스템 환경&quot; 까지만 입력하면, 위와 같이 시스템 환경 변수 편집 어플리케이션이 뜨는데 해당 앱을 실행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;533&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mWkTD/btsBZEsw1JB/qWBpUindViWz5bxJcvHJQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mWkTD/btsBZEsw1JB/qWBpUindViWz5bxJcvHJQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mWkTD/btsBZEsw1JB/qWBpUindViWz5bxJcvHJQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmWkTD%2FbtsBZEsw1JB%2FqWBpUindViWz5bxJcvHJQK%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;479&quot; height=&quot;533&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;533&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고급 탭으로 이동한 후, 하단에 있는 환경 변수 메뉴를 선택한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;585&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bapcho/btsBXMEGKRi/tK10spGiOQzRtFiSWM9xCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bapcho/btsBXMEGKRi/tK10spGiOQzRtFiSWM9xCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bapcho/btsBXMEGKRi/tK10spGiOQzRtFiSWM9xCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbapcho%2FbtsBXMEGKRi%2FtK10spGiOQzRtFiSWM9xCK%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;618&quot; height=&quot;585&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;585&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템 변수 영역에서 변수값이 Path로 되어 있는 것을 선택한 후, &quot;편집&quot; 버튼을 선택한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mQaQm/btsBUIpEIGg/KTulpsyS7JP3qDfCq730v1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mQaQm/btsBUIpEIGg/KTulpsyS7JP3qDfCq730v1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mQaQm/btsBUIpEIGg/KTulpsyS7JP3qDfCq730v1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmQaQm%2FbtsBUIpEIGg%2FKTulpsyS7JP3qDfCq730v1%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;526&quot; height=&quot;501&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;501&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수많은 환경 변수값이 있을텐데, 여기서 새로 만들기를 누른 후, 테서렉트 OCR 엔진이 설치된 폴더 풀패스를 입력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력이 완료되었다면, 확인, 확인, 확인 등을 해서 모두 창을 닫는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xnhwG/btsBVFTOR1g/wUkGpuDKhSvQ8ErqzfrNq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xnhwG/btsBVFTOR1g/wUkGpuDKhSvQ8ErqzfrNq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xnhwG/btsBVFTOR1g/wUkGpuDKhSvQ8ErqzfrNq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxnhwG%2FbtsBVFTOR1g%2FwUkGpuDKhSvQ8ErqzfrNq0%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;979&quot; height=&quot;512&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&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;윈도우에서 CMD 창을 열고, tesseract 를 실행하였을 때 위와 같이 어느 곳에서든 실행이 되면 환경 변수가 정상적으로 입력이 된 상태이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;Python에서 OCR 실행, 코드&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테서렉트 라이브러리도 설치를 하였고, 테서렉트 엔진인 Tesseract-OCR 을 설치 완료하였다면, 이제 파이썬으로 실행을 해보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1702531722151&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from PIL import Image
import pytesseract

# 이미지 파일 위치
image_path = 'C:/Project/ocr/20231214_142722.jpg'

# 이미지 로드
image = Image.open(image_path)

# 테서렉트를 사용하여 OCR 수행 (한글+영어)
text = pytesseract.image_to_string(image, lang='kor+eng')

# 추출된 텍스트 출력
print(text)&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;설치 기간의 긴 것과 달리 실행은 매우 심플한데, OCR 추출을 위해 현재 가지고 있는 명함으로 테스트를 해보니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파트장을 wey로 인식하거나, LAB을 L 4&amp;amp;8로 인식하는 문제만 있을 뿐 나머지 정보는 완벽히 추출이 되었다. 아무래도 이건 폰트 탓으로 생각이 되는데, 추가 학습이 가능한 구조이다보니 추가 학습으로 대응을 할 것인지 잘못 추출된 문자를 기반으로 변형 시킬 것인지는 고민을 해봐야 될 것 같다.&lt;/p&gt;</description>
      <category>인공지능 및 데이터과학/인공지능 기술</category>
      <category>OCR</category>
      <category>Pytesseract</category>
      <category>파이테서렉트</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/812</guid>
      <comments>https://needjarvis.tistory.com/812#entry812comment</comments>
      <pubDate>Thu, 14 Dec 2023 14:56:00 +0900</pubDate>
    </item>
    <item>
      <title>[ChatGPT] API, 주요 파라미터 이해하기</title>
      <link>https://needjarvis.tistory.com/811</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;ChatGPT, 정확하게는 OpenAI의 GPT 파라미터 API는 다양한 설정값이 존재합니다. 그리고 계속 버전업이 되면서 새로운 파라미터들이 추가되고 있습니다. 오늘 포스팅에 작성할 내용은 그 중에서 가장 기본적으로 핵심적인 파라미터를 설명하고, 예시를 통해 이해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_ChatGPT_주요파라미터_이해.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WDvhV/btsudPcgBXD/LFZVk0PgFbCGF6NtIWCM8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WDvhV/btsudPcgBXD/LFZVk0PgFbCGF6NtIWCM8k/img.png&quot; data-alt=&quot;[ChatGPT] API, 주요 파라미터 이해하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WDvhV/btsudPcgBXD/LFZVk0PgFbCGF6NtIWCM8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWDvhV%2FbtsudPcgBXD%2FLFZVk0PgFbCGF6NtIWCM8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-filename=&quot;edited_ChatGPT_주요파라미터_이해.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ChatGPT] API, 주요 파라미터 이해하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Chat API&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT의 Chat 버전을 사용하기 위해서는 다음과 같은 API를 호출해야 합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1695079306049&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;POST https://api.openai.com/v1/chat/completions&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;위와 같은 API Url을 Post로 호출하고, Request Body 들을 추가로 넣어줘야 하는데요. 주요 파라미터는 다음과 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 105px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 24.3023%; height: 20px;&quot;&gt;주요 파라미터&lt;/td&gt;
&lt;td style=&quot;width: 44.8256%; height: 20px;&quot;&gt;내용&lt;/td&gt;
&lt;td style=&quot;width: 30.8721%; height: 20px;&quot;&gt;예시&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 24.3023%; height: 17px;&quot;&gt;model&lt;/td&gt;
&lt;td style=&quot;width: 44.8256%; height: 17px;&quot;&gt;GPT 모델 선택&lt;/td&gt;
&lt;td style=&quot;width: 30.8721%; height: 17px;&quot;&gt;gpt-3.5-turbo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 24.3023%; height: 17px;&quot;&gt;messages&lt;/td&gt;
&lt;td style=&quot;width: 44.8256%; height: 17px;&quot;&gt;GPT에게 문의할 내용을 입력한다&lt;/td&gt;
&lt;td style=&quot;width: 30.8721%; height: 17px;&quot;&gt;{&lt;br /&gt;&quot;role&quot;:&quot;user&quot;, &quot;content&quot;:&quot;안녕&quot;&lt;br /&gt;}&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 24.3023%; height: 17px;&quot;&gt;temperature&lt;/td&gt;
&lt;td style=&quot;width: 44.8256%; height: 17px;&quot;&gt;샘플링의 온도로 0~2 사이, 값이 낮을수록 집중적인 답변&lt;/td&gt;
&lt;td style=&quot;width: 30.8721%; height: 17px;&quot;&gt;2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 24.3023%; height: 17px;&quot;&gt;top_p&lt;/td&gt;
&lt;td style=&quot;width: 44.8256%; height: 17px;&quot;&gt;확률 질량이 top_p인 토큰의 결과 고려 (0~1)&lt;/td&gt;
&lt;td style=&quot;width: 30.8721%; height: 17px;&quot;&gt;0.9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 24.3023%; height: 17px;&quot;&gt;max_tokens&lt;/td&gt;
&lt;td style=&quot;width: 44.8256%; height: 17px;&quot;&gt;채팅 완료 시 생성할 최대 토큰 수&lt;/td&gt;
&lt;td style=&quot;width: 30.8721%; height: 17px;&quot;&gt;512&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;위 파라미터는 ChatGPT API를 사용하기 위한 가장 기본적인 설정들이라고 보시면 됩니다. 여기에 더해서 JSON과 같은 구조로 내릴 수 있는 Request라든지, 동인한 줄을 그대로 반복할 가능성을 줄인다던지 많지만, 상당수 많은 부분들은 Default값을 그대로 사용하는 경우가 많습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 주요 파라미터를 보게 되면 많은 부분들은 이해가 될테지만, 2가지인 Temperature와 Top_p의 내용이 무슨 말인지 잘 이해가 안될 겁니다. 저 역시 GPT API를 처음쓰는 초반에는 이해를 못해서, 디폴트값으로 개발을 진행하곤 했었는데요. 저의 초반 삽질을 방지하고자, 이 파라미터들은 무엇이고 어떤 변화가 있는지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;Temperature 파라미터&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 온도(Temperature) 파라미터부터 설명해 보겠습니다. 예를 들어 &quot;이 XXX은(는) 귀엽다&quot;라는 단어가 있다고 가정을 해보겠습니다. 이때 XXX에 들어갈 단어는 강아지가 될 수도 있고, 고양이가 될 수도 있고 심지어 &quot;강호동&quot;이 될수도 있습니다. 문맥상 전혀 이상하지 않기 때문에 이 강호동은 귀엽다가 들어와도 문제가 없는 것이죠.&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;Temperature 파라미터는 바로 이 단어의 확률 분포를 조절하게 됩니다. 각각의 단어들은 들어갈 확률이라는 것이 존재하지만, 이 파라미터가 커지면 커질수록 단어들의 확률이 동등해지기 시작합니다. 반대로 값이 낮아지면 확률이 큰 단어를 선택하게 되는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Top_p&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Top_p는 이전 단어들을 바탕으로 생성한 후보 중에서, 누적 확률 분포의 상위 p%에 해당하는 후보들을 선택하는 기법입니다. 예를 들어, top_p가 0.9이면 누적 확률 분포의 상위 90%에 해당하는 후보들을 선택합니다.&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;마찬가지로 이 XXX은(는) 귀엽다를 예로 들었을 때, 들어간 단어의 값들의 확률을 기반으로 정렬한 후, 상위 50%의 단어들만 사용하고 싶을 경우 0.5를 주면 되고, 0.9를 주게 되면 상위 90%의 단어들을 사용하니 극히 드문 단어를 제외하고 대부분의 단어를 사용하게 됩니다. 반대로 0.1을 주면 일반적으로 예측할 수 있는 단어가 나올 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Temperatur 및 Top_p 사용 예시&lt;/b&gt;&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.1395%;&quot;&gt;사용 사례&lt;/td&gt;
&lt;td style=&quot;width: 14.5349%;&quot;&gt;Temperature&lt;/td&gt;
&lt;td style=&quot;width: 9.76741%;&quot;&gt;Top_p&lt;/td&gt;
&lt;td style=&quot;width: 57.5582%;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.1395%;&quot;&gt;코드 생성&lt;/td&gt;
&lt;td style=&quot;width: 14.5349%;&quot;&gt;0.2&lt;/td&gt;
&lt;td style=&quot;width: 9.76741%;&quot;&gt;0.1&lt;/td&gt;
&lt;td style=&quot;width: 57.5582%;&quot;&gt;코드는 창의적이면 안되기 때문에 확립된 패턴과 규칙을 준수하는 값을 만들어내야 합니다. 이를 위해서 Temperature와 Top_p의 값을 낮춰야 잘 동작하는 코드를 생성해낼 수 있습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.1395%;&quot;&gt;창작&lt;/td&gt;
&lt;td style=&quot;width: 14.5349%;&quot;&gt;0.7&lt;/td&gt;
&lt;td style=&quot;width: 9.76741%;&quot;&gt;0.8&lt;/td&gt;
&lt;td style=&quot;width: 57.5582%;&quot;&gt;스토리텔링을 위해서 창의적이고 다양한 텍스트를 생성합니다. 창작을 위해서는 보다 다양한 단어들과 표현이 필요하기에 Temperature와 Top_p의 값을 높게 설정합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 18.1395%;&quot;&gt;챗봇 응답&lt;/td&gt;
&lt;td style=&quot;width: 14.5349%;&quot;&gt;0.5&lt;/td&gt;
&lt;td style=&quot;width: 9.76741%;&quot;&gt;0.5&lt;/td&gt;
&lt;td style=&quot;width: 57.5582%;&quot;&gt;챗봇은 일관성과 다양성의 균형을 유지하기 위해서 두개의 값을 조화롭게 설정합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 한번 위 예시를 기반으로 직접 ChatGPT에게 호출해봐서 결과가 어떻게 다른지 확인해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Temperatur 및 Top_p별 결과 차이 비교 분석&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;질문 : 일론 머스크는 앞으로 어떻게 될 것 같아?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;top_p=0.1, temperature=0.1&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;일론 머스크는 현재로서는 많은 프로젝트와 기업을 운영하고 있으며, 그의 비전과 열정은 계속해서 성장할 것으로 예상됩니다. 테슬라, 스페이스X, 뉴럴링크 등의 기업들은 혁신적인 기술과 아이디어를 통해 성공을 거두고 있으며, 일론 머스크는 이러한 분야에서의 리더십을 유지하고 있습니다.&lt;br /&gt;&lt;br /&gt;앞으로 일론 머스크는 전기 자동차 및 재생 에너지 분야에서의 혁신을 이어갈 것으로 예상됩니다. 테슬라는 전기 자동차 시장에서 선두주자로서의 지위를 강화하고 있으며, 일론 머스크는 더 나은 배터리 기술과 자율주행 기술을 개발하여 이 분야에서의 혁신을 이끌어낼 것으로 기대됩니다.&lt;br /&gt;&lt;br /&gt;또한, 스페이스X는 우주 탐사와 우주 여행 분야에서의 혁신을 추구하고 있습니다. 일론 머스크는 화성 탐사와 인류의 다중 행성 생활을 실현하기 위한 노력을 계속할 것으로 예상됩니다.&lt;br /&gt;&lt;br /&gt;뉴럴링크는 인간과 컴퓨터 간의 인터페이스 기술을 개발하는 분야에서 선도적인 위치를 차지하고 있습니다. 일론 머스크는 뇌-컴퓨터 인터페이스 기술을 통해 인간의 인지 능력을 향상시키고 질병 치료에 도움을 줄 수 있는 가능&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1454&quot; data-origin-height=&quot;543&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IH4Jv/btsuIBo2C5X/IvPb6G4Ml0qnuhKTp7LG5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IH4Jv/btsuIBo2C5X/IvPb6G4Ml0qnuhKTp7LG5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IH4Jv/btsuIBo2C5X/IvPb6G4Ml0qnuhKTp7LG5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIH4Jv%2FbtsuIBo2C5X%2FIvPb6G4Ml0qnuhKTp7LG5k%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;1454&quot; height=&quot;543&quot; data-origin-width=&quot;1454&quot; data-origin-height=&quot;543&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;top_p=0.5, temperature=0.5&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;일론 머스크는 현재로서는 많은 사업을 진행하고 있으며, 테슬라, 스페이스X, 뉴럴링크 등 다양한 분야에서 혁신적인 기술과 아이디어를 제시하고 있습니다. 그의 비전과 열정은 미래에도 계속해서 혁신적인 변화를 이끌어낼 것으로 예상됩니다.&lt;br /&gt;&lt;br /&gt;테슬라는 전기차 시장에서 혁신적인 기술과 디자인을 선보이며 성장하고 있으며, 스페이스X는 우주 탐사와 우주 여행 분야에서 선도적인 위치를 차지하고 있습니다. 또한, 뉴럴링크는 인간과 컴퓨터 간의 인터페이스 기술을 개발하여 인간의 뇌 기능을 향상시키는 연구를 진행하고 있습니다.&lt;br /&gt;&lt;br /&gt;일론 머스크는 미래에도 새로운 분야와 기술에 도전할 것으로 예상되며, 인공지능, 에너지 저장 기술, 우주 개발 등 다양한 분야에서 혁신적인 아이디어를 제시할 것으로 예상됩니다. 그의 비전과 열정은 계속해서 혁신과 변화를 이끌어낼 것으로 기대됩니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;top_p=0.9, temperature=2.0&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;일론 머스크는 현재로서도 이미 혁신적인 기업가로 인정받고 있으며, 다양한 분야에서 엄청난 영향력을 발휘하고 있습니다. 그는 테슬라, 스페이스X, 솔라시티 등의 회사를 창립하고 지도하여 혁신적인 기술과 비즈니스 모델을 개발하고 있습니다.&lt;br /&gt;&lt;br /&gt;앞으로 일론 머스크는 스페이스 산업을 통해 우주 여행과 행성 개척을 위한 노력을 계속할 것으로 예상됩니다. 그는 이미 인류의 첫 번째 사설 우주 비행사를 보냈으며, 향후에도 우주 여행을 대중화하고 지속 가능한 우주 개척을 위해 노력할 것으로 보입니다.&lt;br /&gt;&lt;br /&gt;또한 일론 머스크는 지속 가능한 에너지와 전기자동차 시장에 큰 영향을 주고 있습니다. 테슬라는 현재 세계에서 가장 인기있는 전기 자동차 브랜드 중 하나이며, 일론 머스크는 전기자동차 산업의 선도적인 인물 중 한 명입니다. 그는 전기자동차의 인프라와 기술 발전을 촉진하고 더욱 발전된 환경을 위해 노력할 것으로 보입니다.&lt;br /&gt;&lt;br /&gt;또한 인공 지능과 뇌-컴퓨터 인터페이스 등의 분야에서도 일론 머스크는 혁신을 이끌어내고 있습니다. 그의 뇌-컴퓨터 인터페이스 회사인 뉴럴링크&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확실히 설정값이 높아지면, 좀 더 문장이 딱딱하지 않고 자유로운 느낌이 강합니다. 다만 질문이 워낙 예측 가능한 말이기 때문에 이번에는 예측하기 힘든 질문을 던져보도록 해보며, 극단적인 비교를 위해 가장 낮고, 가장 높은 값만 비교해보도록 해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;질문 : 현재 미국과 중국은 패권전쟁을 계속 진행하고 있어, 각 나라별로 연합을 만들려는 것처럼 보여. 앞으로 30년 후에는 어떻게 될 것 같아?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;top_p=0.9, temperature=2.0&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;미국과 중국 사이의 경쟁과 패권전쟁은 미래에도 계속될 것으로 예상됩니다. 앞으로 30년 후에는 다음과 같은 가능성들이 있을 수 있습니다:&lt;br /&gt;&lt;br /&gt;1. 경제적 균형: 중국은 이미 경제적으로 미국을 따라잡고 있으며, 앞으로 더 성장할 것으로 예상됩니다. 이로 인해 경제적 균형을 유지하기 위한 노력이 더 중요해질 것으로 예상됩니다.&lt;br /&gt;&lt;br /&gt;2. 기술 및 과학 분야에서의 경쟁: 미국과 중국은 기술 및 과학 분야에서의 우위를 얻기 위해 계속 경쟁할 것입니다. 인공지능, 사물인터넷 등의 혁신 기술은 미래에 중요한 역할을 할 것으로 예상됩니다.&lt;br /&gt;&lt;br /&gt;3. 지역 간 영향력 싸움: 미국과 중국은 아시아 지역을 중심으로 서로의 영향력을 넓히고자 할 것입니다. 두 나라 모두 아시아지역을 중요한 시장으로 보고 있으며, 그 영향력 확대를 위한 경쟁이 예상됩니다.&lt;br /&gt;&lt;br /&gt;4. 국제적 협력의 필요성: 앞으로 미국과 중국은 패권전쟁의 영향으로 인해 다른 나라들과의 협력을 더욱 강화해야 할 것입니다. 국제적인 협상과 조정이 필요하며, 미국과 중국 모두는 다른 나라들과의 협력을 강화할 필요성을 인지하게 될 것입니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1432&quot; data-origin-height=&quot;578&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTpwfc/btsuqzzaU4u/lqbX6k6U9lAX3OvCubIMi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTpwfc/btsuqzzaU4u/lqbX6k6U9lAX3OvCubIMi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTpwfc/btsuqzzaU4u/lqbX6k6U9lAX3OvCubIMi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTpwfc%2FbtsuqzzaU4u%2FlqbX6k6U9lAX3OvCubIMi0%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;1432&quot; height=&quot;578&quot; data-origin-width=&quot;1432&quot; data-origin-height=&quot;578&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;top_p=0.1, temperature=0.1&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;미국과 중국 사이의 패권전쟁은 현재도 계속 진행 중이지만, 앞으로 30년 후에는 상황이 어떻게 전개될지 정확히 예측하기는 어렵습니다. 그러나 몇 가지 가능성을 살펴볼 수 있습니다.&lt;br /&gt;&lt;br /&gt;첫째, 경제적으로 중국은 계속해서 성장할 것으로 예상됩니다. 중국은 이미 세계에서 가장 큰 경제 규모를 가지고 있으며, 앞으로도 이러한 경향이 지속될 것으로 예상됩니다. 따라서 중국은 미국과의 경제적 영향력 경쟁에서 강세를 보일 수 있습니다.&lt;br /&gt;&lt;br /&gt;둘째, 미국과 중국은 미래에도 군사적인 갈등을 유지할 가능성이 있습니다. 양국은 이미 군사력을 강화하고 있으며, 지역적인 영향력을 넓히려는 시도를 하고 있습니다. 이러한 경쟁은 앞으로도 계속될 수 있으며, 군사적인 충돌의 위험도 존재할 수 있습니다.&lt;br /&gt;&lt;br /&gt;셋째, 국제사회에서의 중국의 역할은 더욱 중요해질 것으로 예상됩니다. 중국은 이미 국제기구에서 더 큰 영향력을 행사하고 있으며, 앞으로도 이러한 영향력을 강화할 것으로 예상됩니다. 이는 미국과의 갈등을 더욱 복잡하게 만들 수 있습니다.&lt;br /&gt;&lt;br /&gt;마지막으로, 미국과 중국은 현재의 갈등을 해&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;조선시대 선비 아이유에 대해서 알려줘&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 엉뚱한 질문을 던졌을 때 둘간의 반응이 궁금하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;top_p=0.1, temperature=0.1&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;조선시대의 선비인 아이유에 대해서 알려드리겠습니다.&lt;br /&gt;&lt;br /&gt;아이유는 조선시대의 선비로서 활동한 인물이 아닙니다. 아이유는 현대 대한민국에서 활동하는 가수이며, 배우로도 활동하고 있습니다. 그녀의 본명은 이지은이며, 1993년 5월 16일에 태어났습니다.&lt;br /&gt;&lt;br /&gt;조선시대의 선비는 문과를 공부하여 어학, 문학, 역사 등 다양한 분야에서 지식을 갖추고, 정치, 사회, 문화 등에 영향력을 행사하는 인물을 말합니다. 선비들은 고려시대의 문인들과 달리 사대부(士大夫)라는 계급에 속하며, 양반(良班)이라고도 불렸습니다. 선비들은 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고려시대의 문인들과 달리 고&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;top_p와 temperature의 값이 낮을 경우 문장의 생성이 매끄럽지 못하다는 것을 알 수 있는데 이는 아무래도 선택해야 될 단어의 수가 적기 때문이 아닐까 생각되어 집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1429&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbyzmV/btsuglas8sj/wi6Kt6y1pOzEY2l4SoiAhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbyzmV/btsuglas8sj/wi6Kt6y1pOzEY2l4SoiAhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbyzmV/btsuglas8sj/wi6Kt6y1pOzEY2l4SoiAhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbyzmV%2Fbtsuglas8sj%2Fwi6Kt6y1pOzEY2l4SoiAhk%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;1429&quot; height=&quot;574&quot; data-origin-width=&quot;1429&quot; data-origin-height=&quot;574&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;top_p=0.9, temperature=2.0&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;아이유라는 인물은 실제로 조선시대의 인물이 아니라는 점을 미리 알려드리며, 그렇지만 아이유는 \&quot;시와 한시문, 글짓기 등 예술적인 표현에 능하며 지식이 풍부한 인재\&quot;를 의미하는 '선비'로 불린다는 뜻에서 착안하여 그림이나 판화, 드라마, 소설 등에서 이용되곤 합니다. &lt;br /&gt;&lt;br /&gt;조선시대에는 '성시(城詩)'라는 선비들의 문인층이 형성되어 있었습니다. 성시들은 정치&amp;middot;군사, 예술&amp;middot;문학 등 다양한 분야에서 활약하였으며, 고도한 교양과 재능을 가지고 있었습니다. 그들은 경시(京詩)라고 불리는 한시시조를 작성하거나 문인사로 유명한 작품을 지었습니다.&lt;br /&gt;&lt;br /&gt;아이유는 현대 가요계의 대표적인 가수이며, 실제로 선비라는 문화적 의미와 관련은 없지만, 그녀의 예술적인 표현력과 재능은 현대 선비와 유사한 면을 가지고 있다고 평가받습니다. 그녀는 가수로서 다양한 음악 장르를 소화하며 인기를 끌었을 뿐만 아니라, 작사, 작곡, 연기, 호스트 등 다양한 분야에서도 활동하고 있습니다.&lt;br /&gt;&lt;br /&gt;또한, 아이유는 소속사나 가수로서의 스케줄과 별개로 사회적으로도 활동하고 있습니다. 예를 들&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확실히 말도 안되는 질문을 넣으니, 둘간의 차이가 확실히 나는 것 같습니다. 값을 낮출 경우 헛소리를 하지 않지만 글이 매끄럽지 않다는 것을 알 수 있는 반면, 값을 높일 경우 위와 같이 말도 안되는 헛소리가 중간중간 섞여 있습니다. 다만 어떻게든 말을 만들어내려고 하는 노력이 보이는 것 같아 확실히 값을 높일수록 좀 더 창의력이 필요한 서비스에 적용하는 것이 좋아 보입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1403&quot; data-origin-height=&quot;556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GAkPU/btsuh7bT5Wy/ghGtcm6MMWpE0bw9stQ1yk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GAkPU/btsuh7bT5Wy/ghGtcm6MMWpE0bw9stQ1yk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GAkPU/btsuh7bT5Wy/ghGtcm6MMWpE0bw9stQ1yk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGAkPU%2Fbtsuh7bT5Wy%2FghGtcm6MMWpE0bw9stQ1yk%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;1403&quot; height=&quot;556&quot; data-origin-width=&quot;1403&quot; data-origin-height=&quot;556&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;극단적인 예시지만 이처럼 temperature와 top_p는 내가 어떤 서비스를 만들어야 하는가에 따라서, 설정을 달리하는 것이 중요합니다. default값을 써도 ChatGPT 자체가 영특하니 큰 문제가 없겠지만, 위와 같은 튜닝 시도 정도는 해보는 것이 바람직하며 현대의 인공지능 개발자에게 필요한 역량 중 하나가 아닌가 싶네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] OpenAI API-reference, &lt;a href=&quot;https://platform.openai.com/docs/api-reference/chat/create&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://platform.openai.com/docs/api-reference/chat/create&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] OpenAI Cummunity, Mastering Temperature and Top_p in ChatGPT API&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[3] 서울디지털재단, ChatGPT 활용사례 및 활용 팁&lt;/p&gt;</description>
      <category>LLM/ChatGPT</category>
      <category>ChatGPT</category>
      <category>ChatGPTAPI</category>
      <category>GPT</category>
      <category>OpenAI</category>
      <category>파라미터</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/811</guid>
      <comments>https://needjarvis.tistory.com/811#entry811comment</comments>
      <pubDate>Tue, 19 Sep 2023 09:26:14 +0900</pubDate>
    </item>
    <item>
      <title>상위 TOP 6 브라우저 종류 및 특징 비교</title>
      <link>https://needjarvis.tistory.com/810</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;브라우저는 인터넷을 방문하기 위한 도구이자 이제는 다양한 기능들이 내포되어 있기도 합니다. 인터넷 초창기에는 넷스케이프라는 브라우저가 독자적으로 압도적인 위용을 자랑하였지만, 스스로 심취되어 있을 때 인터넷 익스플로어의 반격으로 1위 업체가 무너지는 일이 있었으며, 최근에는 다시 웹 표준화라는 발목에 인터넷 익스플로어가 다시 무너지면서, 현재는 크롬이 압도적인 점유율을 차지하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 브라우저별로 각각 다양한 행동을 하기 때문에 되도록이면 많은 브라우저를 사용하고 있는데요. PC에서 어떤 브라우저들이 있으며, 각각 어떤 특징들이 있는지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;상위_브라우저_비교.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/da2n5W/btsufX7yKY1/RJocCmUVKQLduTFmVcPIe0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/da2n5W/btsufX7yKY1/RJocCmUVKQLduTFmVcPIe0/img.jpg&quot; data-alt=&quot;상위 TOP 6 브라우저 종류 및 특징 비교&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/da2n5W/btsufX7yKY1/RJocCmUVKQLduTFmVcPIe0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fda2n5W%2FbtsufX7yKY1%2FRJocCmUVKQLduTFmVcPIe0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;532&quot; data-filename=&quot;상위_브라우저_비교.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;상위 TOP 6 브라우저 종류 및 특징 비교&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;브라우저 점유율&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거두절미하고 우선 브라우저 점유율부터 보도록 하겠습니다. 이 데이터는 statcounter.com이라는 사이트에서 제공해주고 있으며, 2022년 9월부터 2023년 9월까지의 브라우저 점유율을 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;StatCounter-browser-ww-monthly-202208-202308_desktop.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnNCnl/btsubJvAbj7/T4yPnfBKkXa3zQ1QPz2AY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnNCnl/btsubJvAbj7/T4yPnfBKkXa3zQ1QPz2AY1/img.png&quot; data-alt=&quot;2022년 9월부터 2023년 9월까지의 데스크랍 브라우저 점유율&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnNCnl/btsubJvAbj7/T4yPnfBKkXa3zQ1QPz2AY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnNCnl%2FbtsubJvAbj7%2FT4yPnfBKkXa3zQ1QPz2AY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;StatCounter-browser-ww-monthly-202208-202308_desktop.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;2022년 9월부터 2023년 9월까지의 데스크랍 브라우저 점유율&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 브라우저 데이터를 보시면, 크롬이 아직까지 압도적인 모습을 계속 보여주고 있지만 1년전보다 약간 떨어진 것을 볼 수 있습니다. 그리고 그 자리를 사파리(Safari)가 무섭게 치고 올라간 것을 알 수 있는데요. 사파리는 애플의 브라우저이기 때문에 그만큼 전통적인 Windows 기반의 PC보다 애플 PC가 많이 팔린 것을 알 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3위는 MS의 엣지(Edge)이고 4위는 넷스케이프의 사람들이 만든 파이어폭스(Firefox) 그리고 오페라(Opera)가 5위 점유율을 차지하고 있습니다. 한국으로 한정된다면 네이버의 웨일이 3위를 차지하고 있는데요. 위 데이터는 어디까지나 모든 자료를 합친 순위입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 사파리(Safari)의 경우 윈도우에서도 예전 버전(더 이상 지원은 안합니다)은 사용이 가능하지만, 사실상 애플의 아이폰, 맥북 등을 위한 브라우저이기 때문에 여기서 설명은 배제하도록 하겠습니다. 이 포스팅은 어디까지나 윈도우 OS 기반의 사용자를 대상으로 포스팅을 사용하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;크롬(Chrome)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크롬(Chrome)을 알기 전에 우선 구글에서 진행하고 있는 크로미엄(Chromium)이라는 오픈 소스를 이해해야 하는데요. 이는 크롬 브라우저의 오픈 소스 버전이라고 생각하셔도 됩니다. 크롬은 크로미엄을 기반으로 만들어지며, 크롬만의 몇가지 기능을 포함하여 출시하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 현재의 대부분 브라우저는 크로미엄을 기반으로 만들어지게 되는데요. 그러다보니 크롬에서 업데이트가 진행되고 크롬에서 특정 문제가 발생하면 네이버의 웨일 뿐만 아니라 대부분의 브라우저가 모두 문제가 발생합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 크롬의 경우 기준이 되는 브라우저이기 때문에 여기서는 크롬의 특징을 별도로 설명하지는 않겠습니다. 알파이자 오메가인 브라우저이기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;네이버 웨일(Naver Whale)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두번째로 제가 설명해드릴 브라우저는 네이버 웨일(Naver Whale)입니다. 웨일은 크롬을 기반으로 만들어졌기 때문에 당연히 크롬의 기능을 대부분 사용이 가능합니다. 게다가 네이버의 독자적인 앱을 사용할 수 있는 장점도 있는데요. 굳이 단점을 따지자면 검색을 하면 네이버로 연결이 되기 때문에 저는 네이버를 사용하거나 네이버 블로그를 써야 할 때 정도로 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;웨일_독자앱.png&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;415&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgt5HA/btst7S0Hequ/L5JIQta5OI65eBhRPZaTX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgt5HA/btst7S0Hequ/L5JIQta5OI65eBhRPZaTX0/img.png&quot; data-alt=&quot;네이버 웨일의 독자적인 기능&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgt5HA/btst7S0Hequ/L5JIQta5OI65eBhRPZaTX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbgt5HA%2Fbtst7S0Hequ%2FL5JIQta5OI65eBhRPZaTX0%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;737&quot; height=&quot;415&quot; data-filename=&quot;웨일_독자앱.png&quot; data-origin-width=&quot;737&quot; data-origin-height=&quot;415&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;네이버 웨일의 독자적인 기능&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가적인 장점이라면, 당연히 크롬의 확장 프로그램을 설치 할 수 있으며, 파파고 번역과 같은 한국에 특화된 기능들을 쓸 수 있어서 몇가지는 네이버가 한국 사람 기준으로 훨씬 좋기도 합니다. 특히 네이버 웨일의 문서 번역은 정말 구글의 번역보다 퀄리티가 뛰어난 경우가 많습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;브레이브 앱(Brave)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브레이브(Brave)는 암호화폐로 시작된 프로젝트로 브라우저에 암호화폐 기능을 탑재한 앱입니다. 브레이브는 Web3을 지향하며, 기존 회사 기반(ex: 애드센스)의 광고를 차단하며, 자체적인 광고 시스템을 연동하여 사용자는 인터넷을 하면서 암호화폐를 벌어들이며, 이를 콘텐츠 제작자에게 후원하는 방식입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;646&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bly5m3/btst9atn1RK/cIVH9yxrUYFuIqhlVzKhd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bly5m3/btst9atn1RK/cIVH9yxrUYFuIqhlVzKhd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bly5m3/btst9atn1RK/cIVH9yxrUYFuIqhlVzKhd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbly5m3%2Fbtst9atn1RK%2FcIVH9yxrUYFuIqhlVzKhd1%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;1147&quot; height=&quot;646&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;646&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;광고를 차단하는 기능 때문에 인터넷 속도가 매우 빠르지만, 반대로 기존 콘텐츠를 만드는 사용자들을 죽이는 기능이기 때문에 장단점이 있는 브라우저입니다. 마찬가지로 저와 같이 애드센스 광고를 다는 사용자는 절대 좋을수가 없습니다만, 브라우저 성능은 만족할만 합니다.&amp;nbsp;브레이브 역시나 마찬가지로 크로미엄을 기반으로 만들어진 브라우저 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;오페라 브라우저(Opera)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오페라 브라우저는 원래 자체적으로 브라우저를 만들었으나, 버전 15부터 크로미엄을 사용하고 있습니다. 이 때문에 기존 오페라 브라우저를 개발했던 인력 상당수가 빠져나와서 비발디(Vivaldi)라는 브라우저를 만들기도 했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;518&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tFXqO/btsuh6wgxqN/UH319kfNbWapdwNahvJWl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tFXqO/btsuh6wgxqN/UH319kfNbWapdwNahvJWl0/img.png&quot; data-alt=&quot;VPN을 쉽게 사용할 수 있는 오페라&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tFXqO/btsuh6wgxqN/UH319kfNbWapdwNahvJWl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtFXqO%2Fbtsuh6wgxqN%2FUH319kfNbWapdwNahvJWl0%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;764&quot; height=&quot;518&quot; data-origin-width=&quot;764&quot; data-origin-height=&quot;518&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;VPN을 쉽게 사용할 수 있는 오페라&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오페라 브라우저의 가장 큰 강점은 바로 VPN(Virtual Private Network)을 쉽게 사용할 수 있는 것입니다. 게다가 VPN이 성능에 따라 무료이기 때문에 예를 들어 국가를 제한한 콘텐츠를 본다던지, 나의 기록을 남기기 싫을 경우 VPN을 사용하면 유용할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;파이어폭스(Firefox)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수많은 크로미엄을 기반으로 만들어진 브라우저 사이에서 파이어폭스(FireFox)는 독자적인 엔진인 Gecko 엔진을 기반으로 만들어진 브라우저입니다. 사실 파이어폭스는 MS와의 브라우저 대전에서 패배한 넷스케이프에서 이어진 모질라 재단의 브라우저로 인터넷 브라우저의 시대에서 웹 표준화 문제로 다른 브라우저로 넘어가는 당시 파이어폭스는 구글의 크롬과 양대를 이룰 정도로 매우 인기가 많았지만, 현재는 독자 OS 혹은 검색엔진을 가진 회사의 브라우저에 밀려서 4위를 차지하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beWh3p/btst7SsPFLD/lBtywQzI3qBw5UrSllckAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beWh3p/btst7SsPFLD/lBtywQzI3qBw5UrSllckAK/img.png&quot; data-alt=&quot;파이어폭스&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beWh3p/btst7SsPFLD/lBtywQzI3qBw5UrSllckAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeWh3p%2Fbtst7SsPFLD%2FlBtywQzI3qBw5UrSllckAK%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;1000&quot; height=&quot;483&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;파이어폭스&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 이를 기반으로 생각한다면 파이어폭스의 선전은 매우 훌륭합니다. 파이어폭스는 순수하게 브라우저가 매우 심플하고 빠릅니다. 저 역시 지금 크롬이 이렇게 성장하기 전에는 오히려 크롬보다 파이어폭스를 훨씬 많이 썼을 정도로 만족도가 매우 높았었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이어폭스의 장점은 구글의 크롬으로부터 독립적이기 때문에 애드센스를 차단하거나 심지어 유튜브의 광고까지 차단 시켜버리는 프로그램이 확장 프로그램으로 제공을 할 정도로 자유도가 매우 높습니다. 이런 프로그램들은 크롬에서 올라가게 된다면 크롬에서 정책으로 해당 확장 프로그램을 막기 때문에 브라우저 자체적으로 기능이 있는 브레이브 정도로 만족해야 하지만, 파이어폭스는 이게 브라우저 확장 프로그램단으로 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 브라우저 자체적으로 보안이 강력하고, 낮은 사양에서도 돌아갈 정도이며 윈도우의 이전 버전들도 제공하기 때문에 일명 혜자 브라우저라 할 수 있습니다. 현재의 점유율을 계속 유지하는 이유도 저사양의 컴퓨터에 잘 돌아가는 특징이 있을 수도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;엣지(Edge)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엣지(Edge) 브라우저는 인터넷 익스플로러(Internet Explorer)로 구글 크롬과 완패한 이후에 크로미엄을 기반으로 만든 MS(Microsoft)의 브라우저입니다. 자체적으로 브라우저를 만들던 회사에서 구글의 오픈소스를 사용하여 브라우저를 만들 정도로 사실상 2차 브라우저 대전에서 백기를 든 것이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 엣지를 딱히 좋아하지 않습니다만 엣지만의 장점은 분명 있습니다. 우선 현재 ChatGPT로 통하는 제 2의 인공지능 시대에서 MS는 자사의 검색 사이트 Bing에 ChatGPT를 통합하여 사용자들에게 제공하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1369&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u6KEL/btsugkO50aP/BrQuHkInxkJiuedeeBaK31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u6KEL/btsugkO50aP/BrQuHkInxkJiuedeeBaK31/img.png&quot; data-alt=&quot;Microsoft Edge 브라우저&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u6KEL/btsugkO50aP/BrQuHkInxkJiuedeeBaK31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu6KEL%2FbtsugkO50aP%2FBrQuHkInxkJiuedeeBaK31%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;1369&quot; height=&quot;683&quot; data-origin-width=&quot;1369&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Microsoft Edge 브라우저&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자는 Bing의 ChatGPT를 사용하기 위해서는 엣지로만 할 수 있게 만들었는데요.&amp;nbsp;게다가 엣지를 기본 브라우저로 설정해야지만 사용하기 때문에 많은 사람들이 엣지를 기본 브라우저로 하신 분들이 많습니다. ChatGPT의 기본 기능보다 엣지의 경우 Bing의 검색기능까지 포함이 되어서 최신성까지 손을 봤기 때문에 ChatGPT를 적극적으로 사용하시는 분들이라면 엣지에 대해서 만족도를 느낄 수도 있는 것이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 외에도 크로미엄의 구글 관련 API를 모두 삭제하여 일반 크롬 브라우저보다 속도가 미세하게 더 빨라서 만족하시는 분들도 많다고 합니다. (저는 체감이 안되지만...)&amp;nbsp;&amp;nbsp;참고로 저는 Edge를 좋아하지 않는 이유는 지겹게 기본 브라우저로 쓰라는 유도 창도 싫고, 왜인지 모르겠지만, 브라우저의 아이디 자동 저장등을 설정하여도 금방 풀리는 문제가 있다는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상 브라우저에 대해서 포스팅을 적어봤습니다. 저 같은 경우는 업무별로 그리고 블로그 별로 각각 로그인을 세팅을 해 놓아서 강제적으로 쓰기도 하고, 기능별로 나눠서 쓰는 경우도 있는데요. 한번 한가지 브라우저만 쓰는 분들이라면 다른 브라우저도 설치를 해봐서 경험해보는 것은 어떨까 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/IT Tip</category>
      <category>네이버웨일</category>
      <category>브라우저</category>
      <category>브레이브</category>
      <category>엣지</category>
      <category>오페라</category>
      <category>크로미엄</category>
      <category>크롬</category>
      <category>파이어폭스</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/810</guid>
      <comments>https://needjarvis.tistory.com/810#entry810comment</comments>
      <pubDate>Sun, 17 Sep 2023 01:09:58 +0900</pubDate>
    </item>
    <item>
      <title>포스트맨(Postman)으로 ChatGPT(OPENAI) API 사용하기</title>
      <link>https://needjarvis.tistory.com/809</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;챗GPT(ChatGPT) 정확히는 OpenAI API를 파이썬(Python)으로 제공하는 라이브러리를 사용하여 해보시는 분들은 많으실텐데요. 간단하게 Rest 방식으로 호출하여 사용하는 방식도 존재합니다. 이 방식을 알면 그 어떤 환경이라도 HTTP로 요청만 하면 되니 프로그램 버전이나 호환에 대해서 신경을 쓰지 않아도 되며, 새로운 기능이 생겼을 때 업데이트를 할 필요가 없는 장점이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히나 지금처럼 ChatGPT가 빠르게 성장하고 있는 시점이라면 더더욱 그러하며, Rest 방식으로 API를 쉽게 체험할 수 있는 ChatGPT API를 포스트맨으로 빠르게 사용해보도록 하겠습니다. 본 포스팅은 포스트맨을 어느정도는 알고 있다 가정으로 진행하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_ChatGPT_포스트맨_API.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lhsLl/btst6QAGCMG/L2bOA18AvOjgfHHY2Dpcj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lhsLl/btst6QAGCMG/L2bOA18AvOjgfHHY2Dpcj0/img.png&quot; data-alt=&quot;포스트맨(Postman)으로 ChatGPT(OPENAI) API 사용하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lhsLl/btst6QAGCMG/L2bOA18AvOjgfHHY2Dpcj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlhsLl%2Fbtst6QAGCMG%2FL2bOA18AvOjgfHHY2Dpcj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-filename=&quot;edited_ChatGPT_포스트맨_API.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;포스트맨(Postman)으로 ChatGPT(OPENAI) API 사용하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;포스트맨(PostMan) 헤더 세팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 OpenAI API를 호출하기 위해서는 헤더(Header)를 세팅해야 하며, 아래는 OpenAI 사이트에 있는 curl로 호출하는 예시입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;chatgpt_header.png&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P0oxu/btst52VB0Ml/KkJGLX2vewcO1AwjfR81hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P0oxu/btst52VB0Ml/KkJGLX2vewcO1AwjfR81hK/img.png&quot; data-alt=&quot;ChatGPT 세팅 값&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P0oxu/btst52VB0Ml/KkJGLX2vewcO1AwjfR81hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP0oxu%2Fbtst52VB0Ml%2FKkJGLX2vewcO1AwjfR81hK%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;813&quot; height=&quot;317&quot; data-filename=&quot;chatgpt_header.png&quot; data-origin-width=&quot;813&quot; data-origin-height=&quot;317&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ChatGPT 세팅 값&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보면 -H로 된 부분이 HTTP 헤더를 추가할 때 사용하는 옵션이며, -d는 data로 POST로 요청 보낼 때 데이터를 지정하는 것을 뜻합니다. 즉, 헤더의 값은 2개만 설정하면 된다는 의미입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;517&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCWKuE/btst0bTdqtS/vNSTUCWcuT9DH4AZRkQo51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCWKuE/btst0bTdqtS/vNSTUCWcuT9DH4AZRkQo51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCWKuE/btst0bTdqtS/vNSTUCWcuT9DH4AZRkQo51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCWKuE%2Fbtst0bTdqtS%2FvNSTUCWcuT9DH4AZRkQo51%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;1125&quot; height=&quot;517&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;517&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;값을 포스트로 전달해야 하기 때문에 포스트맨에서 POST로 변경한 후&lt;/p&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;URL&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1694739161611&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;https://api.openai.com/v1/chat/completions&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;추가된 헤더&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 54px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;Key&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;Value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;Authorization&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;Bearer {발급 받은 키}&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;Content-Type&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;application/json&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL과 Header 값을 위와 같이 추가하여 세팅을 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;포스트맨 데이터 세팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;헤더를 세팅했으니, 이제 data를 세팅하면 됩니다. 포스트맨에서 Body 탭으로 이동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;316&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVnNTv/btstXzggRId/H6m1GKIhdtJdRkCjZm8kKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVnNTv/btstXzggRId/H6m1GKIhdtJdRkCjZm8kKk/img.png&quot; data-alt=&quot;포스트맨 바디 세팅 준비&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVnNTv/btstXzggRId/H6m1GKIhdtJdRkCjZm8kKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVnNTv%2FbtstXzggRId%2FH6m1GKIhdtJdRkCjZm8kKk%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;693&quot; height=&quot;316&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;316&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;포스트맨 바디 세팅 준비&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Body 탭으로 간 후 우측의 메뉴를 JSON으로 변경하고, ChatGPT의 Curl 예시에 쓰였던 Body값을 그대로 Content만 변경하여 사용해 보겠습니다. 참고로 모델은 4.0도 있지만, 여기서는 속도가 빠르고 무난한 3.5 모델로 호출하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1694739475975&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
   &quot;model&quot;: &quot;gpt-3.5-turbo&quot;,
   &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;안녕, 나는 나야.&quot;}],
   &quot;temperature&quot;: 0.7
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;272&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bT3gGL/btst5OQIwQT/IWqu4IVdzilSZknD5xLr0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bT3gGL/btst5OQIwQT/IWqu4IVdzilSZknD5xLr0K/img.png&quot; data-alt=&quot;값이 모두 세팅된 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bT3gGL/btst5OQIwQT/IWqu4IVdzilSZknD5xLr0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbT3gGL%2Fbtst5OQIwQT%2FIWqu4IVdzilSZknD5xLr0K%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;808&quot; height=&quot;272&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;272&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;값이 모두 세팅된 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 모두 세팅 되었으니 값을 테스트 해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;OPEN AI Rest API 호출&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1694744756542&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;id&quot;: &quot;chatcmpl-7ysoMADo7wdJehHnNnbNLdrycMtvj&quot;,
    &quot;object&quot;: &quot;chat.completion&quot;,
    &quot;created&quot;: 1694744730,
    &quot;model&quot;: &quot;gpt-3.5-turbo-0613&quot;,
    &quot;choices&quot;: [
        {
            &quot;index&quot;: 0,
            &quot;message&quot;: {
                &quot;role&quot;: &quot;assistant&quot;,
                &quot;content&quot;: &quot;안녕, 나야! 만나서 반가워. 무슨 일로 나타났어?&quot;
            },
            &quot;finish_reason&quot;: &quot;stop&quot;
        }
    ],
    &quot;usage&quot;: {
        &quot;prompt_tokens&quot;: 17,
        &quot;completion_tokens&quot;: 29,
        &quot;total_tokens&quot;: 46
    }
}&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;940&quot; data-origin-height=&quot;485&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfhU8X/btst5tMIVMT/XW5B72jBXv2i7ENW61xGD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfhU8X/btst5tMIVMT/XW5B72jBXv2i7ENW61xGD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfhU8X/btst5tMIVMT/XW5B72jBXv2i7ENW61xGD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfhU8X%2Fbtst5tMIVMT%2FXW5B72jBXv2i7ENW61xGD0%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;940&quot; height=&quot;485&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;485&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API가 정상적으로 호출하는 것을 확인할 수 있으며, choices 위치에 결과값이 나오는 것을 확인할 수 있습니다. OpenAI의 GPT API는 사용하기 편하고, 모델을 자유롭게 변경할 수 있기 때문에 어떻게 사용해야 하는지, 잘 안되시는 분들이라면 이와같이 Rest로 간단하게 호출할 수 있다는 점을 아시면 좋을 것 같네요.&lt;/p&gt;</description>
      <category>LLM/ChatGPT</category>
      <category>ChatGPT</category>
      <category>GPT</category>
      <category>OpenAI</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/809</guid>
      <comments>https://needjarvis.tistory.com/809#entry809comment</comments>
      <pubDate>Fri, 15 Sep 2023 11:48:40 +0900</pubDate>
    </item>
    <item>
      <title>EoL, EoS, EoSS, EoSL, EoM 이해하기</title>
      <link>https://needjarvis.tistory.com/808</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; letter-spacing: 0px;&quot;&gt;IT 분야에서는 제품의 생명 주기(Life time)을 나타내는 다양한 약어들을 사용합니다. 이 중 일반적으로 EoL, EoS를 많이 사용하고 있지만, 5가지의 제품 생명주기 약어를 이해하는 시간을 가져보도록 하겠습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;eos_eol.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qv5s5/btsplP8MbuP/6aeSCtw8VjIynlgIUat7R0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qv5s5/btsplP8MbuP/6aeSCtw8VjIynlgIUat7R0/img.jpg&quot; data-alt=&quot;EoL, EoS, EoSS, EoSL, EoM 이해하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qv5s5/btsplP8MbuP/6aeSCtw8VjIynlgIUat7R0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQv5s5%2FbtsplP8MbuP%2F6aeSCtw8VjIynlgIUat7R0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;483&quot; data-filename=&quot;eos_eol.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;EoL, EoS, EoSS, EoSL, EoM 이해하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div id=&quot;SE-30eab4b0-ac8e-4479-8655-87d325919672&quot; style=&quot;color: #000000; text-align: start;&quot; data-compid=&quot;SE-30eab4b0-ac8e-4479-8655-87d325919672&quot; data-a11y-title=&quot;소제목&quot;&gt;
&lt;div&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-30eab4b0-ac8e-4479-8655-87d325919672&quot; data-direction=&quot;top&quot;&gt;
&lt;div&gt;
&lt;div id=&quot;SE-13568978-85b1-4e06-abd2-1538a1d917de&quot;&gt;
&lt;h2 id=&quot;SE-e443803f-97a1-4f36-af78-db1d341c6d7a&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;EoL(End of Life)&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-2e6c576e-15a7-45d5-93c2-60978081509d&quot; style=&quot;color: #000000; text-align: start;&quot; data-compid=&quot;SE-2e6c576e-15a7-45d5-93c2-60978081509d&quot; data-a11y-title=&quot;본문&quot;&gt;
&lt;div data-unitid=&quot;&quot; data-compid=&quot;SE-2e6c576e-15a7-45d5-93c2-60978081509d&quot; data-direction=&quot;top&quot;&gt;
&lt;div id=&quot;SE-245f8f7d-0953-426a-ad61-4bce8edf2c74&quot;&gt;
&lt;p id=&quot;SE-505bdaaa-81d2-4ca8-a1f6-85ed1ec545e1&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EoL은 IT 제품, 서비스의 생명 주기 중 제조사가 더 이상 해당 제품이나 서비스에 대한 지원을 제공하지 않는 시점을 의미합니다. 이 시점은 제품의 생산이 중단되고, 업데이트, 유지 보수, 보안 패치, 테크니컬 서포트 등이 제공되지 않게 되는 시점을 가리킵니다.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-54bff66c-3e78-4639-b166-04db7d63fe2e&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;SE-b985faca-6fc4-4e79-9b51-885a46de35fb&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EoL이 선언 되는 경우 기업이나 유저들은 해당 제품이나 서비스를 계속 사용하기 위해 대체 전략을 세워야 합니다. 대응책으로는 최신 버전으로 업그레이드, 다른 제조사의 제품으로의 전환(동일한 제품을 만든다는 가정), 또는 아예 다른 솔루션을 찾는 것으로 해결을 할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;일반적으로는 동일한 회사의 최신 버전으로 업그레이드하는 케이스가 가장 많습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-8962a9ab-c58e-49d9-9e5e-0e9a5d49d73e&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;SE-1d5ed06f-7fbb-4394-951a-04d28b8d1629&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EoS (End of Sale)&lt;/span&gt;&lt;/b&gt;&lt;/h2&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;EoS&amp;nbsp;이후에는&amp;nbsp;해당&amp;nbsp;제품의&amp;nbsp;신규&amp;nbsp;판매가&amp;nbsp;중지되지만,&amp;nbsp;기존의&amp;nbsp;고객들에&amp;nbsp;대한&amp;nbsp;서비스&amp;nbsp;지원이나&amp;nbsp;업데이트&amp;nbsp;제공&amp;nbsp;등은&amp;nbsp;계속될&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기업은 핵심 SW나 IT기기들이 EoS가 시작 되었다면, 당장은 아니더라도 제품의 업그레이드나 대체 전략을 계획해야 됩니다.&lt;/p&gt;
&lt;p id=&quot;SE-80883f72-5195-488e-a432-efcc06157e89&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;SE-f44a6380-91bd-40e8-9955-ff1071431209&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EoSS (End of Software Support)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;특정 소프트웨어에 대한 지원이 중단되는 시점을 나타냅니다. 이 시점 이후로는 업데이트, 패치, 버그 수정 등이 제공되지 않습니다. EoS와 유사하지만, 이 용어는 소프트웨어(S/W)에만 적용됩니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EoL이 선언된 경우 소프트웨어 뿐만 아니라 하드웨어(H/W)의 지원도 중단하기 때문에 좀 더 큰 의미를 EoL, 소프트웨어만 사용할 경우 EoSS를 쓸 수 있으며 소프트웨어라 하더라도 EoL이라 표현할 수 있기 때문에 EoL이 좀 더 일반적입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-bef10910-7453-4e96-b0ac-88ba704afed8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;SE-8afd9702-0a04-4a0b-94ef-18b04ce027bd&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EoSL (End of Service Life)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;특정 제품에 대한 서비스가 더 이상 제공되지 않는 시점을 나타냅니다. 이 시점부터 제품에 대한 유지 보수, 수리, 교환 등이 제공되지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-dbe5e9e7-dc10-4799-aeab-4ac131461ec9&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 id=&quot;SE-b9854135-f90a-406b-ae44-327a3266fba2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;EoM (End of Maintenance)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;제품에 대한 정기적인 유지 보수가 중단되는 시점을 나타냅니다. 이 시점 이후로는 새로운 버그 수정이나 기능 개선 작업이 이루어지지 않습니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;사실 5가지의 용어들이 상당수가 비슷하기 때문에 가장 많이 사용하는 용어는 EoL과 EoS를 가장 많이 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>IT/IT 용어</category>
      <category>eol</category>
      <category>EOM</category>
      <category>EOS</category>
      <category>EOSL</category>
      <category>eoss</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/808</guid>
      <comments>https://needjarvis.tistory.com/808#entry808comment</comments>
      <pubDate>Mon, 31 Jul 2023 11:11:34 +0900</pubDate>
    </item>
    <item>
      <title>TPM 2.0 활성화 방법 (윈도우 11 설치 과정)</title>
      <link>https://needjarvis.tistory.com/807</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;현재 회사에 있는 데스크탑 컴퓨터를 윈도우 11로 업그레이드 하려는 도중, TPM 2.0 활성화가 안되어 있어서 불가능하다는 메세지를 받게 되었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;896&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n4hcn/btsoz9fQ165/ngkokHUKnto0ZCTLkjRHQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n4hcn/btsoz9fQ165/ngkokHUKnto0ZCTLkjRHQ0/img.png&quot; data-alt=&quot;컴퓨터 상태 확인&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n4hcn/btsoz9fQ165/ngkokHUKnto0ZCTLkjRHQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn4hcn%2Fbtsoz9fQ165%2FngkokHUKnto0ZCTLkjRHQ0%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;600&quot; height=&quot;599&quot; data-origin-width=&quot;897&quot; data-origin-height=&quot;896&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;컴퓨터 상태 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터를 검사하게 되면, 아래와 같이 팝업창으로 TPM 2.0 활성화가 필요하다는 메세지가 온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;481&quot; data-origin-height=&quot;413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s0s90/btsoyZj4ej0/ocIPNt6ClqNuvCkru32wKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s0s90/btsoyZj4ej0/ocIPNt6ClqNuvCkru32wKk/img.png&quot; data-alt=&quot;다른 것들은 충족하나, TPM 2.0이 문제인 상태&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s0s90/btsoyZj4ej0/ocIPNt6ClqNuvCkru32wKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs0s90%2FbtsoyZj4ej0%2FocIPNt6ClqNuvCkru32wKk%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;481&quot; height=&quot;413&quot; data-origin-width=&quot;481&quot; data-origin-height=&quot;413&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다른 것들은 충족하나, TPM 2.0이 문제인 상태&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 컴퓨터를 윈도우 11로 업그레이드 하려는 이유는 데스크탑의 블루스크린이 노이로제가 걸릴 정도로 잦기 때문이다. 별다른 프로그램을 설치하지 않았는데에도 불구하고 블루스크린이 하루에 3~4번씩 발생하니 회사 업무를 할 수 없는 수준이기에 윈도우 11로 업그레이드하게 되면 나아질 수 있지 않을까라는 희망에 설치 시도중이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;TPM 2.0이란&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TPM 2.0을 활성화하기에 앞서 왜 이걸 활성해 해야 하며, 이 모듈이 무엇인지를 알아야 될 것이다. TPM은 Trusted Platform Module의 약자로 하드웨어 자체에 내장된 보안 기능을 담당하는 마이크로 칩이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TPM 2.0은 암호화, 디지털 인증서, 비밀번호 보호 등과 같은 보안 기능을 담당하여, 소프트웨어나 하드웨어에 대한 공격이나 무단 접근으로부터 컴퓨터를 보호한다. 또한 TPM은 Windows BitLocker와 같은 암호화 소프트웨어와도 상호 작용하여 더욱 강력한 보안 환경을 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 11은 이 TPM 2.0을 기본적으로 필요로 하기에 컴퓨터가 TPM 2.0을 지원하지 않을 경우 윈도우 11로 업그레이드할 수 없다. 즉, 하드웨어가 TPM 2.0을 지원하지 않는 경우 윈도우 11을 설치하지 않거나, TPM 2.0을 지원하는 하드웨어도 교체해야 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;TPM 2.0 활성화 방법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TPM 2.0을 활성화하는 방법은 BIOS나 UEFI 설정에서 가능하다. 모델마다 다르겠지만 일반적으로 Security 메뉴 아래에 위치하고 있다.&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;우선 내 메인보드가 어떤 제품인지 확인을 해보도록 하는데 &quot;시스템 정보&quot; 프로그램을 실행한 후, 아래와 같이 베이스보드 제품을 확인한다. 현재 내 컴퓨터의 경우는 기가바이트 제품의 B365M DS3H 제품이라는 것을 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1296&quot; data-origin-height=&quot;762&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wrbyz/btsoRkfx8uh/Pc9T0kOWhFgTmnpGd3C0EK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wrbyz/btsoRkfx8uh/Pc9T0kOWhFgTmnpGd3C0EK/img.png&quot; data-alt=&quot;시스템 정보로 파악하는 메인보드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wrbyz/btsoRkfx8uh/Pc9T0kOWhFgTmnpGd3C0EK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwrbyz%2FbtsoRkfx8uh%2FPc9T0kOWhFgTmnpGd3C0EK%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;1296&quot; height=&quot;762&quot; data-origin-width=&quot;1296&quot; data-origin-height=&quot;762&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;시스템 정보로 파악하는 메인보드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;TPM 활성화 (예: 기가바이트)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메인보드가 기가바이트이기 때문에 우선 기가바이트의 TPM 메뉴 활성화를 구글링해서 알아본 후, 컴퓨터를 켜고 F2 연타를 눌러 BIOS 설정으로 들어간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;409&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDp2K4/btsozSE34MS/cRXkcv2W1zEniQDYeyakZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDp2K4/btsozSE34MS/cRXkcv2W1zEniQDYeyakZ0/img.png&quot; data-alt=&quot;기가바이트 BIOS 설정 메뉴&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDp2K4/btsozSE34MS/cRXkcv2W1zEniQDYeyakZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDp2K4%2FbtsozSE34MS%2FcRXkcv2W1zEniQDYeyakZ0%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;1000&quot; height=&quot;409&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기가바이트 BIOS 설정 메뉴&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;F2를 누른 후, 위와 같이 Peripherals 메뉴를 선택 한다. 하단의 붉은 색 박스처럼 Intel Platform Trust Technology (PTT)가 보이면, 해당 메뉴를 클릭한다. 참고로 Intel과 AMD는 BIOS 설정 방법이 다르기 때문에 제조사 + CPU로 검색을 해서 확인을 하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;409&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k42d4/btsozR7fbrv/VOJ2ApRVsw7lty9HEgjoSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k42d4/btsozR7fbrv/VOJ2ApRVsw7lty9HEgjoSK/img.png&quot; data-alt=&quot;Enable&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k42d4/btsozR7fbrv/VOJ2ApRVsw7lty9HEgjoSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk42d4%2FbtsozR7fbrv%2FVOJ2ApRVsw7lty9HEgjoSK%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;1000&quot; height=&quot;409&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Enable&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PTT를 선택하면 위와같이 PTT 활성화 박스가 뜨는데 Enabled를 선택한 후, Save &amp;amp; Exit로 나간다. 위와 같이 TRM을 활성화 하게 되면, 윈도우 11설치 요건이 충족되는 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;윈도우 11 설치 요건 충족&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;851&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GBWyC/btsoNW7snLl/nTBlq9HaKeyMnCKr7r50h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GBWyC/btsoNW7snLl/nTBlq9HaKeyMnCKr7r50h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GBWyC/btsoNW7snLl/nTBlq9HaKeyMnCKr7r50h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGBWyC%2FbtsoNW7snLl%2FnTBlq9HaKeyMnCKr7r50h1%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;851&quot; height=&quot;555&quot; data-origin-width=&quot;851&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>IT/IT Tip</category>
      <category>BIOS</category>
      <category>TRM</category>
      <category>TRM2.0</category>
      <category>기가바이트</category>
      <category>윈도우11</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/807</guid>
      <comments>https://needjarvis.tistory.com/807#entry807comment</comments>
      <pubDate>Mon, 24 Jul 2023 14:21:36 +0900</pubDate>
    </item>
    <item>
      <title>개발자, 프로그래머, 코더의 차이점</title>
      <link>https://needjarvis.tistory.com/806</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개발자(Developer)와 프로그래머(Programmer) 그리고 코더(Coder)는 명확하지만, 구분하기 힘든 차이점이 존재하기도 한다. 하지만 꾸준히 거론되면서 현재는 어느정도 확립이 된 상태인데 본 포스팅에서는 개발자, 프로그래머, 코더에 대해서 차이점을 알아보고 자신은 현재 어느 위치에 있는지 알아보도록 아는 시간을 가졌으면 좋겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9hVgP/btsn0gx6Mkv/Vvhi2sBMfPEUasK8vDCUZ1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9hVgP/btsn0gx6Mkv/Vvhi2sBMfPEUasK8vDCUZ1/img.jpg&quot; data-alt=&quot;개발자, 프로그래머, 코더의 차이점&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9hVgP/btsn0gx6Mkv/Vvhi2sBMfPEUasK8vDCUZ1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9hVgP%2Fbtsn0gx6Mkv%2FVvhi2sBMfPEUasK8vDCUZ1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;744&quot; height=&quot;400&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;개발자, 프로그래머, 코더의 차이점&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;코더(Coder)과 프로그래머의 차이점&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 코더(Coder)는 코드를 짜는 사람을 뜻한다. 그런데 여기서 코드는 프로그램을 말하는 것이기 때문에 코더와 프로그래머를 동일한 사람이라 생각할 수 있다.&amp;nbsp;대부분 코더들은 자신을 코더라고 말하지 않고 프로그래머라고 말을 한다. 하지만, 영어가 둘로 나뉘어져 있듯 둘간의 미세한 차이점이 존재한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 코더는 프로그래머가 설계한 대로 코드를 작성한 사람을 뜻한다. 즉, 주체가 되느냐 아니냐의 차이가 큰 것이 바로 코더와 프로그래머라고 할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 어떤 복잡한 알고리즘을 개발을 해야 하는데 이 알고리즘을 2명이서 개발을 한다고 가정을 해보자. 그런데 한명은 이러한 일을 한지 얼마 안된 신입이고 나머지 한명은 복잡한 알고리즘을 코딩으로 구현할 수 있는 경력 개발자라고 가정을 해보자.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘이 협업을 한다고 가정을 할 시 신입은 경력자의 말에 따라 코딩을 하게 될 수 있다. 즉, 본인이 해당 알고리즘을 설계할 수 있는 능력이 없어서 위에서 시키는 대로 코드를 짜야할 수 있다는 것이다. 이럴 경우 신입은 코더가 되고, 신입에게 알려주는 사람은 프로그래머가 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 프로그래머는 자신이 스스로 어떠한 문제를 풀 수 있는 알고리즘을 작성할 수 있는 사람이고, 코더는 스스로 설계해서 알고리즘을 짤 수 없는 사람을 뜻한다. 큰 프로젝트에 가게 되면, 초급 개발자는 자신이 스스로 알고리즘을 작성하는 것보다 위에서 시키는대로 필요한 기능만 개발하는 경우가 있는데 이럴 경우 코더라고 말을 할 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;프로그래머와 개발자의 차이점&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;누구는 프로그래머와 개발자는 한자와 영어 즉, 언어의 차이라고 생각할 수 있다. 하지만 개발자는 Developer라는 용어가 존재하는 것처럼 둘간에는 명확한 차이가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 프로그래머는 프로그램을 짜는 사람이라는 뜻이 있다. 그리고 위에서 설명한 것처럼 자신이 설계를 해서 프로그램을 짤수 있는 사람을 뜻한다. 여기까지 본다면 프로그래머의 의미는 상당히 광범위하다 생각할 수 있는데 개발자는 프로그래머에서 몇가지의 스킬 능력을 더 갖춘 사람이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래머는 언어를 다루는 사람으로 오직 언어의 관점으로 가질 수 있다면 개발자는 소프트웨어가 배포하기까지 설계, 구현, 테스트, 유지보수까지 전반적인 사항을 다룰 수 있는 사람을 뜻한다. 그리고 클라이언트와 커뮤니케이션을 하고, 요구사항을 이해하며, 일정을 관리할 수 있는 능력을 갖춘 사람을 개발자라 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 프로그래머보다 개발자가 언어를 능숙하게 다룬다는 말은 아니다. 위에서 언급되었듯 개발자는 프로그래머보다 광범위한 것들을 다루기 때문에 오로지 프로그래머만 10년 이상 하는 사람보다 스킬적인 면모가 떨어질 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 오로지 프로그래머만 하는 경우는 많지 않고 대부분 고객을 상대하고, 제품을 설계하며 테스트 등까지 모두 하는 하기 때문에 프로그래머의 윗단계로 개발자를 생각할 수 있지만, 만약 오로지 프로그램만 할 수 있는 기회가 있다면 프로그래머는 개발자보다 당연히 프로그램을 짜는 능력이 우위일 것이다.(대부분 프로그래머들의 꿈이기도 하다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1]&amp;nbsp;&lt;b&gt;&lt;a href=&quot;https://www.coursera.org/articles/programmer-vs-developer&quot;&gt;https://www.coursera.org/articles/programmer-vs-developer&lt;/a&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] https://www.linkedin.com/pulse/difference-between-coder-programmer-developer-software-simar-singh/&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/IT 용어</category>
      <category>Coder</category>
      <category>developer</category>
      <category>Programmer</category>
      <category>개발자</category>
      <category>코더</category>
      <category>프로그래머</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/806</guid>
      <comments>https://needjarvis.tistory.com/806#entry806comment</comments>
      <pubDate>Mon, 17 Jul 2023 14:47:59 +0900</pubDate>
    </item>
    <item>
      <title>비트코인 NFT, 오디널스 프로토콜(Ordinals Protocol) 알아보기</title>
      <link>https://needjarvis.tistory.com/805</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;몇개의 포스팅은 한동한 비트코인(Bitcoin, BTC)을 사야 하는 이유 시리즈로 만들어보려고 합니다. 비트코인을 사야 하는 이유는 &quot;지금 당장 비트코인&quot;을 사라는 내용은 아니라 다른 암호화폐보다 비트코인이 낫다라는 뉘앙스에 더 가깝다는 것을 인지해 주셨으면 좋겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;올해 암호화폐계의 최대 이슈는 단연코 비트코인 기반 프로젝트인 것 같습니다. 그 중에 스타트를 끊은 오디널스 프로토콜(Ordinals Protocol)이 있는데요. 오디널스에 대해서 깊게 알 필요는 없을 것 같아서, 간단히 어떤 기능이 가능한지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;오디날스_프로토콜.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kZ6mG/btshsMd5KQa/9i6iiKeFFV5TZy9gfumBK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kZ6mG/btshsMd5KQa/9i6iiKeFFV5TZy9gfumBK0/img.png&quot; data-alt=&quot;비트코인 NFT, 오디널스 프로토콜(Ordinals Protocol) 알아보기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kZ6mG/btshsMd5KQa/9i6iiKeFFV5TZy9gfumBK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkZ6mG%2FbtshsMd5KQa%2F9i6iiKeFFV5TZy9gfumBK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;오디날스_프로토콜.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;비트코인 NFT, 오디널스 프로토콜(Ordinals Protocol) 알아보기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;비트코인의 업데이트 역사&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 오디널스를 이해하기 위해서는 비트코인의 업데이트 과정을 들여다볼 필요가 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;세그윗(SegWit)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2017년 세그윗(SegWit)이라는 업데이트가 진행했을 때 비트코인이 사라지는거 아닌가?라는 생각이 들정도로 내부적인 갈등이 심했습니다. 당시 최대 채굴장을 운영하던 우지한은 비트코인 개발자들과 갈등이 있었는데요. 그 이유는 비트코인의 트랜잭션이 기하급수적으로 치고 올라가면서 개선을 해야 하는데 의견 충돌이 났던 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;619&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XKqm9/btshp5SBwmj/Ehz5IKZI96W5Z0wGqxeNDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XKqm9/btshp5SBwmj/Ehz5IKZI96W5Z0wGqxeNDK/img.png&quot; data-alt=&quot;세그윗 개념&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XKqm9/btshp5SBwmj/Ehz5IKZI96W5Z0wGqxeNDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXKqm9%2Fbtshp5SBwmj%2FEhz5IKZI96W5Z0wGqxeNDK%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;1250&quot; height=&quot;619&quot; data-origin-width=&quot;1250&quot; data-origin-height=&quot;619&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;세그윗 개념&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우지한과 자칭 사토시, 크레이그 라이트는 블록 사이즈를 늘려 채굴 세력에게 이득이 가는 업데이트를 원한 반면 세그윗을 주도하는 개발팀은 사이즈는 건드리지 않고, 헤더 정보와 서명을 분리하여 사이즈를 늘리는 방식을 고수합니다. 이때 둘간의 치열한 다툼으로 우지한 세력은 비트코인 캐시(BCH)라는 코인을 하드포크로 만들게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;탭루트(Taproot)&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;탭루트는 세그윗이 나오고 4년 후인 2021년 11월 전자 서명 방식과 비트코인의 프로그램 언어 '스크립트'의 작동 방식을 변경한 업그레이드입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bavG2h/btshqKUPtpP/2GNQpLa78GC3AStR7Lkp2K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bavG2h/btshqKUPtpP/2GNQpLa78GC3AStR7Lkp2K/img.jpg&quot; data-alt=&quot;전통 서명 방식과 슈노르 서명 방식&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bavG2h/btshqKUPtpP/2GNQpLa78GC3AStR7Lkp2K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbavG2h%2FbtshqKUPtpP%2F2GNQpLa78GC3AStR7Lkp2K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;406&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;406&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;전통 서명 방식과 슈노르 서명 방식&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서명을 한 곳에 모아 전송하여 서명 사이즈를 줄이고, 스크립트의 효율성과 프라이버시를 개선하게 되었습니다.&amp;nbsp;현재는 탭루트의 이와 같은 변화로 스크립트와 서명의 사이즈 축소와 효율성을 강화시키고, 새로운 기능이 구현되어 비트코인 기반 스마트 컨트랙트 등을 구현할 가능성을 열었다고 평가 받고 있습니다만, 오디널스 이전에는 올초 1.536%만 사용하는 수준이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;오디널스 프로토콜&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;오디널스를 만들게 된 계기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스택스(Stacks)는 비트코인에 스마트 컨트랙트 기능을 부여하기 위한 프로젝트입니다. 즉, 비트코인에게 날개를 달아주는 프로젝트인데 스택스 개발자인 케이시 로더머(Casey Rodarmor)가 이더리움이나 솔라나 등에서 활개를 친 NFT(Non-Fungible Token)를 보면서 비트코인으로 NFT를 발행하고 싶은 생각을 가지게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;792&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KSXUL/btshrzlki8T/RxJO71LfUKW8zrykZJaWfK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KSXUL/btshrzlki8T/RxJO71LfUKW8zrykZJaWfK/img.jpg&quot; data-alt=&quot;Casey Rodarmor&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KSXUL/btshrzlki8T/RxJO71LfUKW8zrykZJaWfK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKSXUL%2Fbtshrzlki8T%2FRxJO71LfUKW8zrykZJaWfK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1056&quot; height=&quot;792&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;792&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Casey Rodarmor&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;오디널스 개념 및 로직&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로다머는 곧장 실행에 옮기게 되는데 현재의 비트코인은 세그윗과 탭루트의 업그레이드로 NFT를 구현할 수 있기 때문이었습니다. 우선 비트코인의 최소 단위인 사토시에 가치를 부여하는 작업을 계획하게 되었고, 이때 사토시에 순서대로 번호가 매겨지는데 이를 오디널스(Ordinals)라고 하여 오디널스 프로토콜이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;627&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/D4n96/btshwm6gco7/cyRwKZLeJLETHTtglBpGF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/D4n96/btshwm6gco7/cyRwKZLeJLETHTtglBpGF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/D4n96/btshwm6gco7/cyRwKZLeJLETHTtglBpGF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FD4n96%2Fbtshwm6gco7%2FcyRwKZLeJLETHTtglBpGF1%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;1016&quot; height=&quot;627&quot; data-origin-width=&quot;1016&quot; data-origin-height=&quot;627&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;1개의 비트코인(BTC)에는 1억개의 사토시(Satoshi)로 이루어져 있으며, 각각의 사토시에 컨텐츠를 새기는 것이 오디널스 프로토콜의 핵심이라 볼 수 있습니다. 즉 사토시에 가치를 부여(디지털 데이터 첨부)한다고 보시면 되며, 이렇게 가치를 새기는 것을 비문(inscription)이라 부릅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세그윗 업그레이드로 첨부할 수 있는 데이터는 이미지, 텍스트, 프로그램, 비디오 등이며 이론적으로는 최대 블록당 4MB의 데이터를 블록체인에 새겨 넣을 수 있습니다.&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;&lt;b&gt;다른 NFT와 차이점&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 NFT는 디지털 데이터가 별도의 사이트에 존재하고, 이를 체인에 기록하는 방식이 보편화된 방식이지만 오디널스 프로토콜은 디지털 데이터를 직접 비트코인 체인에 저장하는 차이점이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 오디널스는 사토시 하나하나 디지털 자산을 새기기 때문에 개발자가 임의로 변경이 가능한 다른 NFT와 달리 영구불변성을 가지고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&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;요약하자면 오디널스 프로토콜은 비트코인의 사토시에 가치를 부여하고, 온체인에 직접 데이터를 저장하여 발행하는 Bitcoin NFT 기술이라고 보시면 됩니다. 그리고 이러한 기술을 기반으로 새로운 시도들이 점점 생겨나게 되는데 BRC-20에 대해서는 다음 포스팅에 적어보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;유튜브 영상&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=on8Or7qHAkA&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cVhILq/hySLFogvBk/WMUAvO8tXKQOFfppHb8Kfk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=192_264_456_552&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;비트코인 NFT 가능? 오디널스 프로젝트, BTC 매수 장려 영상 #1&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/on8Or7qHAkA&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&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;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] CoinGecko - How Are Bitcoin NFTs POSSIBLE? Ordinals Explained&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] 업비트 - 비트코인이 실행한 탭루트 업그레이드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[3] Decrypt&amp;nbsp;-&amp;nbsp;What&amp;nbsp;Are&amp;nbsp;Ordinals?&amp;nbsp;A&amp;nbsp;Beginner's&amp;nbsp;Guide&amp;nbsp;to&amp;nbsp;Bitcoin&amp;nbsp;NFTs&lt;/p&gt;
&lt;div id=&quot;container&quot;&gt;&amp;nbsp;&lt;/div&gt;</description>
      <category>암호화폐 및 블록체인/암호화폐 파고들기</category>
      <category>nft</category>
      <category>Ordinals</category>
      <category>비트코인</category>
      <category>세그윗</category>
      <category>오디날스</category>
      <category>오디널스</category>
      <category>탭루트</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/805</guid>
      <comments>https://needjarvis.tistory.com/805#entry805comment</comments>
      <pubDate>Fri, 26 May 2023 14:31:48 +0900</pubDate>
    </item>
    <item>
      <title>[Python] Beautiful Soup으로 크롤링하기 (기본편)</title>
      <link>https://needjarvis.tistory.com/804</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Beautiful Soup이란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Beautiful Soup는 HTML 및 XML 문서를 파싱하기 위한 파이썬 라이브러리(Python Library)입니다. 웹 스크래핑(Web Scraping)에 사용되며, 복잡하고 비정형적인 웹 페이지로부터 필요한 데이터를 빠르고 쉽게 추출하는 것을 도와주고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;python_bs_기본편.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJWvzd/btsgQo4PRBZ/feNkUZbTny4bFjbsUzkt21/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJWvzd/btsgQo4PRBZ/feNkUZbTny4bFjbsUzkt21/img.jpg&quot; data-alt=&quot;[Python] Beautiful Soup으로 크롤링하기 (기본편)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJWvzd/btsgQo4PRBZ/feNkUZbTny4bFjbsUzkt21/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJWvzd%2FbtsgQo4PRBZ%2FfeNkUZbTny4bFjbsUzkt21%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;483&quot; data-filename=&quot;python_bs_기본편.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Python] Beautiful Soup으로 크롤링하기 (기본편)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Beautiful Soup 예제&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1684720596614&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from bs4 import BeautifulSoup
import requests

# 스크래핑할 URL
url = &quot;https://needjarvis.tistory.com/802&quot;

# 해당 url에 연결한 후 HTML 내용을 가져옵니다.
response = requests.get(url)
html_content = response.text

print(html_content)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예제를 실행할 때 만약 아래와 같이 에러가 발생한다면, 코드를 아래로 변경합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;에러 상황&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1684720694501&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1131)&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;&lt;b&gt;코드 교체&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1684720881629&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;response = requests.get(url, verify=False)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;request.get 부분에서 verify=False 인자값을 추가합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsUYfy/btsgECQ604h/9Rkqq5AeM0wqVEtkVXd6u0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsUYfy/btsgECQ604h/9Rkqq5AeM0wqVEtkVXd6u0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsUYfy/btsgECQ604h/9Rkqq5AeM0wqVEtkVXd6u0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsUYfy%2FbtsgECQ604h%2F9Rkqq5AeM0wqVEtkVXd6u0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1244&quot; height=&quot;360&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 HTML의 내용을 정상적으로 가져온 것을 확인할 수 있습니다. 이제 이 HTML 태그를 파싱하여 스크래핑해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;제목 추출하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제목을 추출해보도록 할텐데요. 그럴려면 사이트에서 제목이 어느 위치에 있는지를 알아야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1578&quot; data-origin-height=&quot;763&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pP4qv/btsgFdJSWaM/tff3vA1dbgJBgGXUwbtbdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pP4qv/btsgFdJSWaM/tff3vA1dbgJBgGXUwbtbdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pP4qv/btsgFdJSWaM/tff3vA1dbgJBgGXUwbtbdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpP4qv%2FbtsgFdJSWaM%2Ftff3vA1dbgJBgGXUwbtbdK%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;1578&quot; height=&quot;763&quot; data-origin-width=&quot;1578&quot; data-origin-height=&quot;763&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;크롤링하는 URL의 제목의 경우 위 이미지 처럼 jb-content-title이라는 클래스에 담겨져 있기도 하며, 현재 포스팅의 경우 title 태그안에도 해당 제목으로 만들어져 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 title 태그를 그냥 가지고 오는 예제를 보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1684721610830&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from bs4 import BeautifulSoup
import requests

# 스크래핑할 URL
url = &quot;https://needjarvis.tistory.com/802&quot;

# 해당 url에 연결한 후 HTML 내용을 가져옵니다.
response = requests.get(url, verify=False)
html_content = response.text

# Beautiful Soup 객체로 파싱
soup = BeautifulSoup(html_content, 'html.parser')

title = soup.find('title')
print(title)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q8hs3/btsgEDoYVch/tLYcKoVhOAPZK31aDommKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q8hs3/btsgEDoYVch/tLYcKoVhOAPZK31aDommKK/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q8hs3/btsgEDoYVch/tLYcKoVhOAPZK31aDommKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq8hs3%2FbtsgEDoYVch%2FtLYcKoVhOAPZK31aDommKK%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;474&quot; height=&quot;82&quot; data-origin-width=&quot;474&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 title이라는 태그를 입력하면, title에 적힌 내용을 리턴하여 변수에 담게 됩니다. 이번에는 title 태그가 아니라 포스팅의 Html 태그를 캡쳐 했던 jb-content-title 클래스가 있는 태그값을 가져와보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684721762783&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from bs4 import BeautifulSoup
import requests

# 스크래핑할 URL
url = &quot;https://needjarvis.tistory.com/802&quot;

# 해당 url에 연결한 후 HTML 내용을 가져옵니다.
response = requests.get(url, verify=False)
html_content = response.text

# Beautiful Soup 객체로 파싱
soup = BeautifulSoup(html_content, 'html.parser')

title = soup.find(class_='jb-content-title')
print(title)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1459&quot; data-origin-height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCt4Lm/btsgGk2ZV86/c5KkhlJ3jaZRQ2jnak6dfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCt4Lm/btsgGk2ZV86/c5KkhlJ3jaZRQ2jnak6dfK/img.png&quot; data-alt=&quot;실행 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCt4Lm/btsgGk2ZV86/c5KkhlJ3jaZRQ2jnak6dfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCt4Lm%2FbtsgGk2ZV86%2Fc5KkhlJ3jaZRQ2jnak6dfK%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;1459&quot; height=&quot;375&quot; data-origin-width=&quot;1459&quot; data-origin-height=&quot;375&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;실행 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jb-content-title 클래스가 있는 태그값이 다른 값도 포함이 되어 있어서 보긴 그렇지만, 태그의 결과는 잘 가져오는 것을 확인할 수 있습니다. 이번에는 좀 더 심화로 jb-content-title &amp;gt; h2 &amp;gt; a 태그의 값을 가져와보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1684722102190&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;from bs4 import BeautifulSoup
import requests

# 스크래핑할 URL
url = &quot;https://needjarvis.tistory.com/802&quot;

# 해당 url에 연결한 후 HTML 내용을 가져옵니다.
response = requests.get(url, verify=False)
html_content = response.text

# Beautiful Soup 객체로 파싱
soup = BeautifulSoup(html_content, 'html.parser')

title = soup.select_one('.jb-content-title &amp;gt; h2 &amp;gt; a')
print(title)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;110&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qloC2/btsgDKhl3Ek/NvkRcgkYvmKwZHhUZU4nS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qloC2/btsgDKhl3Ek/NvkRcgkYvmKwZHhUZU4nS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qloC2/btsgDKhl3Ek/NvkRcgkYvmKwZHhUZU4nS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqloC2%2FbtsgDKhl3Ek%2FNvkRcgkYvmKwZHhUZU4nS1%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;525&quot; height=&quot;110&quot; data-origin-width=&quot;525&quot; data-origin-height=&quot;110&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;이전 예제와 차이점은 find를 사용하지 않고, select라는 메소드를 사용했다는 것입니다. select를 사용하면 css, jquery처 태그를 접근할 수 있어서 find보다 훨씬 사용하기 수월합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 값을 가져왔으면, 태그를 제거해야 하는데요 태그를 제거하는 것과 beautiful soup의 다양한 메소드를 사용하는 방법은 다음 포스팅(심화편)에서 작성해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] https://beautiful-soup-4.readthedocs.io/en/latest/&lt;/p&gt;</description>
      <category>프로그램언어/파이썬(Python)</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/804</guid>
      <comments>https://needjarvis.tistory.com/804#entry804comment</comments>
      <pubDate>Mon, 22 May 2023 11:28:13 +0900</pubDate>
    </item>
    <item>
      <title>버전 관리 시스템 이해와 Git, SVN의 비교</title>
      <link>https://needjarvis.tistory.com/803</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;버전 관리 시스템 개념(&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;Version Control System)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;버전 관리 시스템(Version Control System, VCS)은 파일의 변경 이력을 저장하고, 여러 사용자가 동시에 작업 및 협업할 수 있도록 돕는 소프트웨어 도구입니다. 주로 소프트웨어 개발 프로젝트에서 코드 변경을 추적하고, 개발자들이 이전 버전으로 되돌릴 수 있게 해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;버전관리_git_svn.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFtQXg/btsdxiO6n7o/VVAzMhah9c71pfkBttZwjk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFtQXg/btsdxiO6n7o/VVAzMhah9c71pfkBttZwjk/img.jpg&quot; data-alt=&quot;버전 관리 시스템 이해와 Git, SVN의 비교&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFtQXg/btsdxiO6n7o/VVAzMhah9c71pfkBttZwjk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFtQXg%2FbtsdxiO6n7o%2FVVAzMhah9c71pfkBttZwjk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;484&quot; data-filename=&quot;버전관리_git_svn.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;버전 관리 시스템 이해와 Git, SVN의 비교&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;버전 관리 시스템의 주요 유형&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;중앙집중식 버전 관리 시스템(Centralized Version Control System, CVCS)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 중앙 서버에서 저장소를 관리하고, 개발자들이 서버와 통신하여 코드 변경 내역을 저장하고 업데이트합니다. 이 방식의 대표적인 예로는 Subversion(SVN)이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; 분산 버전 관리 시스템(Distributed Version Control System, DVCS)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 각 개발자의 로컬 저장소에 전체 코드 이력이 복제되며, 개발자들은 로컬 저장소에서 작업한 후, 다른 사용자와 변경 내역을 교환하며 통합합니다. 이 방식의 대표적인 예로는 Git이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;버전 관리 시스템의 주요 기능으로는 커밋(commit), 브랜치(branch), 병합(merge), 태그(tag), 충돌 해결(conflict resolution) 등이 있습니다. 이를 통해 개발자들은 코드의 안정성을 유지하고, 팀원 간의 협업을 원활하게 진행할 수 있습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;Git과 SVN의 차이점&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기본 구조 차이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SVN&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 중앙 서버에서 전체 코드 및 변경 이력을 저장하는 중앙집중식 구조를 사용합니다. 개발자들은 중앙 서버와 연결해야 하며, 작업한 내용을 중앙 서버에 커밋하고 최신 변경 사항을 받아옵니다. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Git&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 분산 구조를 사용하며, 각 개발자의 로컬 저장소에 전체 코드 및 변경 이력이 복제됩니다. 개발자들은 로컬 저장소에서 작업하고, 변경 사항을 원격 저장소와 동기화합니다. 이로 인해 오프라인에서도 작업이 가능합니다. &lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;br /&gt;&lt;b&gt;워크플로우 차이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SVN&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SVN 워크플로우에서는 개발자가 중앙 서버와의 연결이 필요합니다. 작업을 시작하기 전에 중앙 서버에서 최신 코드를 받아온 후(업데이트), 작업이 끝난 후 중앙 서버에 변경 사항을 반영합니다(커밋). 변경 사항이 겹치는 경우 충돌이 발생할 수 있으며, 충돌 해결 후에만 커밋이 가능합니다. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Git&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Git 워크플로우에서는 개발자가 로컬 저장소에서 독립적으로 작업할 수 있습니다. 개발자는 작업 후 로컬 저장소에 커밋하고, 원격 저장소와 동기화할 때만 인터넷 연결이 필요합니다. 충돌이 발생하는 경우, 로컬에서 충돌을 해결한 후 원격 저장소에 푸시(push)합니다. &lt;br /&gt;&lt;br /&gt;이러한 차이점으로 인해 Git은 브랜치 관리, 오프라인 작업, 성능 등에서 이점을 가지며, 현대의 분산 개발 환경에 더 적합한 버전 관리 시스템으로 인식되고 있습니다. 그러나 SVN은 접근 제어와 보안 측면에서 일부 이점이 있어, 특정 상황에서는 여전히 유용하게 사용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;브랜치 관리 (Branch Management)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브랜치 관리로는 Git과 SVN의 차이점이 크게 2가지가 존재합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;브랜치 생성&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;SVN&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 브랜치를 만들 때 전체 파일을 복사해 새로운 디렉토리를 생성하는 방식을 사용합니다. 따라서 브랜치를 생성할 때마다 새로운 파일이 추가되며, 이로 인해 저장소의 용량이 증가하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Git&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 브랜치를 만들 때 기존의 커밋 히스토리를 참조하는 방식을 사용합니다. 따라서 브랜치를 생성해도 새로운 파일이 추가되지 않으며, 저장소의 용량이 증가하지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;브랜치 도구&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git은 브랜치를 빠르고 효율적으로 관리할 수 있는 도구를 많이 제공합니다. Git에서는 브랜치를 만들고 삭제하는 것이 매우 간단하며, 브랜치 간의 병합도 쉽고 빠릅니다. 또한 Git에서는 브랜치를 이용한 병렬 개발이 매우 쉽게 가능하므로, 여러 개발자가 동시에 작업을 수행할 때도 효율적으로 협업할 수 있습니다. &lt;br /&gt;&lt;br /&gt;따라서 Git은 SVN보다 브랜치 관리에 있어서 빠르고 효율적인 장점이 있습니다. 이를 통해 개발자들은 더욱 효율적인 개발을 수행할 수 있으며, 버전 관리 시스템으로서의 가치를 높일 수 있습니다.&lt;/p&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;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;네트워크 사용 및 오프라인 작업&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SVN은 &lt;span style=&quot;background-color: #f3c000;&quot;&gt;중앙집중식 버전 관리 시스템&lt;/span&gt;이며, 버전 관리 서버에 소스 코드가 저장되어 있어 &lt;span style=&quot;background-color: #f3c000;&quot;&gt;온라인 상태에서만 작업&lt;/span&gt;을 수행할 수 있습니다. 반면 Git은 &lt;span style=&quot;background-color: #f3c000;&quot;&gt;분산 버전 관리 시스템이므로 로컬 저장소를 사용해 작업할 수&lt;/span&gt; 있습니다. 즉, Git을 사용하면 인터넷 연결이 불안정한 환경에서도 작업을 계속할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pSvbu/btsdxh3DoaM/nqgjkkgIXCjB8yxW2WTqV0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pSvbu/btsdxh3DoaM/nqgjkkgIXCjB8yxW2WTqV0/img.webp&quot; data-alt=&quot;https://www.studytonight.com/git-guide/git-vs-svn&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pSvbu/btsdxh3DoaM/nqgjkkgIXCjB8yxW2WTqV0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpSvbu%2Fbtsdxh3DoaM%2FnqgjkkgIXCjB8yxW2WTqV0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://www.studytonight.com/git-guide/git-vs-svn&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 통해 개발자는 버전 관리 서버에 있는 코드를 가져오지 않아도 로컬 저장소에서 작업을 진행할 수 있으므로 작업 속도가 더 빠릅니다. 또한, Git은 로컬 저장소에서 브랜치를 자유롭게 생성하고 삭제할 수 있으며, 이를 통해 브랜치 관리가 더욱 유연하게 이루어집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;※ 이러한 이유로 Git은 SVN보다 더욱 빠르고 효율적인 관리가 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;저장소 크기와 성능&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git과 SVN은 저장소에 파일을 저장하는 방식에서 차이가 있습니다. SVN은 파일의 변화를 추적하는 방식으로 파일을 저장하며, 이러한 방식으로 저장소의 크기가 커질 수 있습니다. 반면 Git은 파일의 스냅샷(Snapshot)을 저장하는 방식으로 파일을 저장하여 SVN에 비해 저장소의 크기가 작아질 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, Git은 로컬 저장소에서 작업이 가능하기 때문에 서버에 접근하는 횟수가 적어지고, 작업 내용을 로컬 저장소에 저장하기 때문에 네트워크도 더 적게 사용합니다. 이러한 이유들로 Git은 일반적으로 SVN보다 더 높은 성능을 보이고 있으며 저장소 크기도 더 작게 유지됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Git은 또한 분산 버전 관리 시스템이기 때문에, 저장소를 복제하여 서버에 대한 부하를 분산시킬 수 있으며, 이는 대규모 프로젝트에서도 높은 성능과 안정성을 유지하는 데 큰 도움이 됩니다.&amp;nbsp;하지만 SVN도 최근에는 저장소의 크기와 성능 개선을 위한 다양한 기술을 도입하고 있기 때문에 상황에 따라 Git과 SVN 중 어느 것을 선택할지는 프로젝트의 크기와 요구사항에 따라 달라질 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;보안 및 접근 제어&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SVN은 경로 기반의 접근 제어를 제공하며, 특정 경로의 사용 권한을 지정할 수 있습니다. 이는 특정 사용자 또는 그룹이 특정 경로에 액세스하는 것을 제한할 수 있어 보안성을 강화할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면, Git은 기본적으로 소스 코드의 변경 이력을 기록하는 것에만 초점을 두고 있으며, 저장소에 대한 접근 제어에 대한 기능이 제한적입니다. 따라서 보안이나 엄격한 접근 제어가 필요한 경우에는 SVN이 Git보다 적합할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대규모 팀에서 작업하는 경우, SVN은 중앙집중식 버전 관리 시스템으로서 팀원들이 동일한 저장소를 공유하여 작업할 수 있으며, 다수의 팀원이 동시에 작업하는 경우 충돌 방지를 위한 잠금 기능이 제공됩니다. 이와는 달리 Git은 분산형 버전 관리 시스템으로서, 각 개발자가 로컬 저장소를 가지고 작업하며, 변경 내역을 서로 공유하면서 버전 관리를 합니다. 이는 동시에 작업하는 팀원이 많을수록 효율적으로 작업할 수 있으나, 충돌을 막기 위한 추가적인 조치가 필요할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Git과 SVN의 최종 사용 비교&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 Git이 일반적으로 SVN보다 성능이 좋다는 것을 잘 알고 있지만, 무작정 Git이 SVN보다 좋은 것은 아닙니다. Git의 경우 로컬에 저장을 할 수 있기 때문에 SVN보다 충돌이 날 가능성이 보다 높습니다. 그래서 Git의 경우 올바른 코딩 습관과 Commit 등을 하는 사람들이 많을 경우 괜찮지만, 귀차니즘이 강한 한사람이 존재하거나, Git에 익숙하지 못한 개발자가 있을 경우 매일 Git 때문에 골치 아픈 경우가 많습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 SVN의 경우 이러한 문제가 덜합니다. Git보다 기능이 제한적인만큼 대규모 작업을 수행할 시 좀 더 편한 모습을 많이 보이기 때문입니다. 충돌이 날 경우 대처가 더 편하고, 일반적으로 큰 문제가 나지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 느낀 SVN과 Git의 가장 큰 차이는 브런치라고 생각합니다. 사실 Git에서 브런치를 사용하지 않으면 SVN보다 장점이 없다 생각이 들정도이며, 개인적으로 혼자서 개발을 진행한다면 SVN이 더 편하기도 합니다. 다만 Git의 경우 Github와 같은 사이트 등과 연동하기 쉽기 때문에 Github에 소스를 올리기 위해서라면 무조건 Git을 써야 할 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>아키텍처, 빌드, 관리/버전관리(Git, SVN)</category>
      <category>git</category>
      <category>SVN</category>
      <category>버전관리</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/803</guid>
      <comments>https://needjarvis.tistory.com/803#entry803comment</comments>
      <pubDate>Tue, 2 May 2023 17:52:12 +0900</pubDate>
    </item>
    <item>
      <title>[GPT] ChatGPT와 GPT 이해하기 #1</title>
      <link>https://needjarvis.tistory.com/802</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;GPT에 관련된 글들 중 어떤 것을 적을까? 고민을 많이 해봤는데 결국은 ChatGPT에 대한 정보와 나만의 인사이트에 대해서 적어보는 것이 좋을 것 같습니다. ChatGPT가 제 2의 알파고 쇼크를 줬기 때문에 엄청난 지각변동이 일어나고 있고, 수많은 사기꾼들과 협소한 인사이트로 어설픈 미래를 제시하는 사람들이 많을 것이기 때문입니다.&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;포스팅의 내용이 길어질거라 생각해서 이번 포스팅은 GPT에 대한 개념, 역사, 버전별 정보등을 적고 다음 포스팅에서는 GPT로 일어나게 될 지각변동 등에 대해서 적어보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;GPT_#1.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwxKVb/btr6QoOoEpv/UfhGyoKVkwaWsR5Levbbjk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwxKVb/btr6QoOoEpv/UfhGyoKVkwaWsR5Levbbjk/img.jpg&quot; data-alt=&quot;[GPT] ChatGPT와 GPT 이해하기 #1&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwxKVb/btr6QoOoEpv/UfhGyoKVkwaWsR5Levbbjk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwxKVb%2Fbtr6QoOoEpv%2FUfhGyoKVkwaWsR5Levbbjk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;484&quot; data-filename=&quot;GPT_#1.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[GPT] ChatGPT와 GPT 이해하기 #1&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;ChatGPT란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 ChatGPT에 대해서 설명을 하자면, 일론 머스크가 비영리 단체로 만든 Open AI에서 만들었으며 중간에 일론 머스크가 Open AI에서 손을 뗀 후, MS가 많은 투자를 해서 현재의 ChatGPT가 만들어지게 되었습니다. 정확히 ChatGPT는 GPT 3.5 이상의 모델로 만든 OpenAI의 &quot;서비스&quot;라고 보면 되며 GPT 3.5 이상이다라고 이해하셔도 크게 다르지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;779&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crzSCt/btr60jrAfJb/Gh92z1YZm6Fvm6TJT2sFUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crzSCt/btr60jrAfJb/Gh92z1YZm6Fvm6TJT2sFUK/img.png&quot; data-alt=&quot;OpenAI를 창립했던 일론 머스크&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crzSCt/btr60jrAfJb/Gh92z1YZm6Fvm6TJT2sFUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrzSCt%2Fbtr60jrAfJb%2FGh92z1YZm6Fvm6TJT2sFUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;779&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;779&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;OpenAI를 창립했던 일론 머스크&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 ChatGPT를 이해하기 위해서는 GPT를 먼저 이해해야 할텐데요. GPT의 시작은 2017년에 등장한 어텐션(Attention) 신경망 기반의 트랜스포머(Transformer)라 불리는 자연어처리의 센세이션 모델에서 비롯됩니다. 트랜스포머가 등장한 이후 정체되어 있던 인공지능 씬은 트랜스포머를 활용하여 여러가지의 새로운 모델 및 서비스들이 등장하게 되는데 그 중 하나가 GPT이고 GPT와 반대되는 기술로 버트(BERT)가 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2026&quot; data-origin-height=&quot;1106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/reYTA/btr6ZAmxfcM/cHq9TIndtOgFaLZEXNjYLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/reYTA/btr6ZAmxfcM/cHq9TIndtOgFaLZEXNjYLK/img.png&quot; data-alt=&quot;BERT와 GPT&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/reYTA/btr6ZAmxfcM/cHq9TIndtOgFaLZEXNjYLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FreYTA%2Fbtr6ZAmxfcM%2FcHq9TIndtOgFaLZEXNjYLK%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;2026&quot; height=&quot;1106&quot; data-origin-width=&quot;2026&quot; data-origin-height=&quot;1106&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;BERT와 GPT&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마치 트랜스포머라는 유명한 사부 밑에서 수제자 2명(BERT, GPT)이 등장하게 된 것도 같은데 각각은 트랜스포머의 어텐션 모델에서 BERT는 인코더만 사용하고, GPT는 디코더만 사용하여 특화시켜 발전해 나가는 모습을 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초창기 GPT는 데이터를 생성해내는 놀라운 모습 때문에 사람들이 충격을 받았으나, 지금처럼 완벽에 가까운 수준이 아니었기 때문에 의미가 있다 수준이었고 서비스에 적용하기 힘들었지만, BERT는 놀라운 수준으로 자연어처리 씬에 지대한 공을 끼칩니다. 사실 지금 GPT로 일어난 센세이션 이전에는 BERT가 그 자리를 꿰찼으며, 어느순간 초거대 데이터를 제공하는 GPT로 모든 것이 넘어가게 된 것 뿐입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;GPT의 변화 과정&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 초창기에는 구글(Google)이 제안한 BERT 모델이 잘 나갔지만, GPT는 끈기 있게 더 많은 데이터와 더 많은 파라미터로 승부를 보기 시작합니다. 지금 생각해보면, 이렇게 학습을 한다는 생각 자체가 소름이 돌 정도니까요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;GPT-1&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT-1은 2018년에 발표되었으며, 약 117M개의 파라미터를 이용하여 텍스트 생성, 질의응답, 언어 이해 등의 태스크를 수행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;GPT-2&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT2는 다음해인 2019년에 발표되었으며, 1.5B개의 파라미터를 가지고 더욱 발전된 텍스트 생성 능력을 보여줬습니다.&amp;nbsp;사실 GPT-2까지는 이런 기술들이 지금 인공지능 세계에 있구나 정도였지만, 다음 버전인 GPT-3부터는 퀄리티가 엄청나게 증가되면서 서비스에 하나둘 접목하는 기업들이 속속 등장하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;GPT-3&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT3는 2020년에 발표했으며, 175B개의 파라미터를 가지고 기계 번역, 대화형 AI, 질의응답, 텍스트 생성 등 다양한 태스크를 수행할 수 있으며 일부 태스크에서는 인간 수준 이상의 성능을 보이기 시작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT-3의 등장으로 국내의 가장 큰 데이터를 처리하는 양대 기업인 네이버와 카카오는 GPT 기반의 서비스를 만들게 되었고 네이버는 상업용 모델(HyperClova)로 서비스를 운영하고 카카오는 KoGPT라는 모델을 오픈으로 공개를 합니다. GPT3 기반으로 국내에서는 네이버가 먼저 내놨기 때문에 카카오에서는 오픈모델로 내놓지 않았을까 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네이버, 카카오 이외에도 SK 역시 GPT-3 모델(ko-gpt-trinity)을 내놓았지만, 네이버와 카카오와 만큼의 영향력은 없다 생각합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;GPT-3.5&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT-3.5는 ChatGPT를 만들 때 등장한 모델로 사실 GPT-3와의 차이보다는 서비스 측면에서 발전한 모델이라 보셔도 무방합니다. 즉, 기존의 GPT 모델들은 자체적으로 무거워지면서 성능이 높아진 반면 GPT-3.5는 3.0보다 다양한 서비스를 구현해 낼 수 있게 만들어서 더 범용적으로 쓸 수 있다 생각하면 될 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 데이터적으로 봤을 때, 2020년에 발표한 GPT-3보다는 2021년 6월까지의 데이터를 꾸준히 학습하였기 때문에 순수 모델로 봤을 때에도 GPT-3.5가 GPT-3보다 단단하다는 것을 두말할 것도 없을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;GPT-4&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그동안 텍스트만 처리하던 GPT 모델에서 이제는 멀티모달 AI가 되면서 진정한 자비스가 된 것이 GPT-4입니다. 현재 OpenAi는 GPT-4에 대한 정보를 함구하고 있기 때문에 사람들이 추측만 할 뿐인데 100조개의 파라미터를 학습할거라는 것은 OpenAI CEO인 샘 알트먼이 엉터리(ridiculous)라고 말하게 되면서 터무니없던 낭설로 끝이 났습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT-4는 단순히 멀티모달로 성능이 올라간 것 뿐만 아니라 성능적인 측면도 엄청나게 올라갔는데요. 미국 변호사 시험에서 하위 10%의 성적을 냈던 GPT-3.5와 달리 GPT-4는 상위 10%의 성적을 보여준 것입니다. 문제는 현재 이에 걸맞게 서비스에 접목하려면 엄청나게 비싼 비용과 느린 속도를 보여주기에 많은 기업들이 GPT-4를 적극적으로 도입을 하게 될지는 의문입니다. 그에 반해 ChatGPT Plus라는 서비스를 유료 구독할 경우 사용이 가능하기 때문에 ChatGPT 형태로 사용하는 사람들에게는 축복인 것 같긴 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>LLM/ChatGPT</category>
      <category>ChatGPT</category>
      <category>GPT</category>
      <category>OpenAI</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/802</guid>
      <comments>https://needjarvis.tistory.com/802#entry802comment</comments>
      <pubDate>Thu, 30 Mar 2023 14:09:01 +0900</pubDate>
    </item>
    <item>
      <title>문자열 유사도 측정, 편집거리 알고리즘(Levenshtein Distance) 개념 및 Java, Python 예시</title>
      <link>https://needjarvis.tistory.com/801</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;편집거리 개념&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;편집거리 알고리즘(Levenshtein Distance)는 두 개의 문자열 간의 편집거리를 측정하는 알고리즘 입니다. 편집 거리는 문자열을 다른 문자열로 변경하는데 필요한 최소한의 삽입, 삭제 및 대체 작업 수를 나타냅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;편집거리 알고리즘은 다양한 응용 분야에서 사용될 수 있는데 맞춤법 검사, 음성 인식, 텍스트 유사성 측정 등에서 사용됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;편집거리_알고리즘.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d4jfJr/btr3U1oR7SJ/xBVNiy2ZMi0bRRvlodIe7k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d4jfJr/btr3U1oR7SJ/xBVNiy2ZMi0bRRvlodIe7k/img.jpg&quot; data-alt=&quot;문자열 유사도 측정, 편집거리 알고리즘(Levenshtein Distance) 개념 및 Java, Python 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d4jfJr/btr3U1oR7SJ/xBVNiy2ZMi0bRRvlodIe7k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd4jfJr%2Fbtr3U1oR7SJ%2FxBVNiy2ZMi0bRRvlodIe7k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;484&quot; data-filename=&quot;편집거리_알고리즘.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;문자열 유사도 측정, 편집거리 알고리즘(Levenshtein Distance) 개념 및 Java, Python 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&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;b&gt;알고리즘 설명&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0z2Jq/btr34Bigvzu/lqeFGOdW2sw1Y6lLzDIXR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0z2Jq/btr34Bigvzu/lqeFGOdW2sw1Y6lLzDIXR0/img.png&quot; data-alt=&quot;편집거리 계산을 보여주는 예&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0z2Jq/btr34Bigvzu/lqeFGOdW2sw1Y6lLzDIXR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0z2Jq%2Fbtr34Bigvzu%2FlqeFGOdW2sw1Y6lLzDIXR0%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;502&quot; height=&quot;287&quot; data-origin-width=&quot;502&quot; data-origin-height=&quot;287&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;편집거리 계산을 보여주는 예&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 예시는 편집거리를 계산하는 것을 보여주는 예시로 비(rain)와 빛나다(shine)로 설명을 합니다. 우선 rain을 shine으로 변환하려면 r을 s로 바꾸고, a를 h로 바꾸고 e를 삽입합니다. 고로 이 편집거리는 3입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기차(rain)와 빛나다(shine)에 대해서 작업을 하게 된다면, shine앞에 t를 붙이고, s를 r로 h를 a로 바꾼 후, 마지막 글자를 삭제하면 train이 되기 때문에 편집거리는 4가 됩니다. 편집거리의 결과를 보면 알겠지만, 거리 값이 짧을수록 두 단어의 유사성이 크다는 것을 의미하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;편집거리 알고리즘 Java 예시&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1678868461387&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MlMain {

    public static void main(String[] args) {
        String a = &quot;rain&quot;;
        String b = &quot;shine&quot;;
        String c = &quot;train&quot;;

        System.out.println(a + &quot; &amp;lt;-&amp;gt; &quot; + b + &quot; -&amp;gt;&quot; + levenshteinDistance(a, b));
        System.out.println(a + &quot; &amp;lt;-&amp;gt; &quot; + c + &quot; -&amp;gt;&quot; + levenshteinDistance(a, c));
        System.out.println(b + &quot; &amp;lt;-&amp;gt; &quot; + c + &quot; -&amp;gt;&quot; + levenshteinDistance(b, c));
    }

    public static int levenshteinDistance(String s1, String s2) {
        int m = s1.length();
        int n = s2.length();
        int[][] dp = new int[m + 1][n + 1];

        for (int i = 0; i &amp;lt;= m; i++) {
            dp[i][0] = i;
        }

        for (int j = 0; j &amp;lt;= n; j++) {
            dp[0][j] = j;
        }

        for (int i = 1; i &amp;lt;= m; i++) {
            for (int j = 1; j &amp;lt;= n; j++) {
                if (s1.charAt(i - 1) == s2.charAt(j - 1)) {
                    dp[i][j] = dp[i - 1][j - 1];
                } else {
                    dp[i][j] = 1 + Math.min(dp[i - 1][j - 1], Math.min(dp[i - 1][j], dp[i][j - 1]));
                }
            }
        }

        return dp[m][n];
    }
}&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;&lt;b&gt;예제 결과&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1678868483274&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;rain &amp;lt;-&amp;gt; shine -&amp;gt;3
rain &amp;lt;-&amp;gt; train -&amp;gt;1
shine &amp;lt;-&amp;gt; train -&amp;gt;4&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;b&gt;파이썬 예시&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1678868949244&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def levenshtein_distance(s, t):
    m, n = len(s), len(t)
    dp = [[0] * (n+1) for _ in range(m+1)]

    for i in range(m+1):
        dp[i][0] = i

    for j in range(n+1):
        dp[0][j] = j

    for i in range(1, m+1):
        for j in range(1, n+1):
            if s[i-1] == t[j-1]:
                dp[i][j] = dp[i-1][j-1]
            else:
                dp[i][j] = 1 + min(dp[i-1][j-1], dp[i-1][j], dp[i][j-1])

    return dp[m][n]

print(levenshtein_distance(&quot;rain&quot;, &quot;shine&quot;))
print(levenshtein_distance(&quot;shine&quot;, &quot;train&quot;))

// 
3
4&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능 및 데이터과학/자연어처리</category>
      <category>머신러닝</category>
      <category>문자열유사도</category>
      <category>유사도</category>
      <category>편집거리알고리즘</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/801</guid>
      <comments>https://needjarvis.tistory.com/801#entry801comment</comments>
      <pubDate>Wed, 15 Mar 2023 17:31:18 +0900</pubDate>
    </item>
    <item>
      <title>[Cuda] 쿠다(Cuda) PyTorch 인식 여부 및 해결</title>
      <link>https://needjarvis.tistory.com/800</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최근 회사 컴퓨터에 PyTorch를 사용해야 되는 상황이 생겨서, PyTorch 사이트에서 있는 가이드대로 최신 버전과 Cuda도 버전 업을 하여서 Torch 설치 시도를 하였으나, Conda로 설치를 하는 것이 실패하고 말았다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;330&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wGqFz/btrWx5QXR59/U6SrHCWfSYkEKLAz6nBRAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wGqFz/btrWx5QXR59/U6SrHCWfSYkEKLAz6nBRAk/img.png&quot; data-alt=&quot;Conda로 PyTorch 설치 Command&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wGqFz/btrWx5QXR59/U6SrHCWfSYkEKLAz6nBRAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwGqFz%2FbtrWx5QXR59%2FU6SrHCWfSYkEKLAz6nBRAk%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;858&quot; height=&quot;330&quot; data-origin-width=&quot;858&quot; data-origin-height=&quot;330&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Conda로 PyTorch 설치 Command&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 Command를 입력하면, Solving에서 무한 멈춤 현상이 발생하였는데 이 문제를 해결하기 위해 아나콘다를 다시 깔아보고, Cuda도 다양한 11.6.x 버전들을 설치했지만, 아무래도 SSL 문제처럼 보였다. 결국 PIP로 trusted-host로 사이트를 신뢰한다고 표시 한 뒤, 설치를 마무리 하였으나 이번에는 Torch가 Cuda를 인식하지 못하는 문제가 발생하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673943217268&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import torch
torch.cuda.is_available()&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;위와 같이 명령어를 날리면, CUDA를 인식할 경우 True가 떠야 하는데 False가 뜨면서 cpu로 작업이 진행되어 버렸다. 현재 해야 하는 작업은 GPU가 필요한 상황이었기 때문에 CPU 모드로 돌릴 수 없었고, 결국 최근에 Torch로 Cuda를 사용한 직원에게 어떤 환경으로 설치했는지 물어보니, 10.2 버전으로 작업을 했다는 소릴 들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 내 컴퓨터 상황은 Cuda 11.6에 Torch는 1.13.1 버전을 시도하였는데 GPU가 인식이 안되는 것인지 결국 다운 그레이드를 하여, Cuda 10.2에 Torch는 1.9 버전으로 다운그레이드를 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종, 설치 명령어는 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1673943398506&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pip install torch==1.9.0+cu102 torchvision==0.10.0+cu102 torchaudio==0.9.0 --extra-index-url http://download.pytorch.org/whl/cu102 --trusted-host pypi.org --trusted-host download.pytorch.org 
pip install transformers==4.11.3&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;회사와 같은 망이 아니라 집에서 할 경우 trusted-host를 안 적어도 된다. 일단 Cuda를 다운그레이드 하였지만, 위에서 제공하는 명령어가 먹히지 않으면, 위와 같이 하나씩 버전을 직접 명시에서 사용하는 것을 시도해볼만 한 것 같다.&lt;/p&gt;</description>
      <category>인공지능 및 데이터과학/딥러닝 프레임워크</category>
      <category>CUDA</category>
      <category>pytorch</category>
      <category>TORCH</category>
      <category>쿠다</category>
      <category>파이토치</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/800</guid>
      <comments>https://needjarvis.tistory.com/800#entry800comment</comments>
      <pubDate>Tue, 17 Jan 2023 17:20:34 +0900</pubDate>
    </item>
    <item>
      <title>[Jupyter] 주피터 노트북 드라이브 변경 하는 법</title>
      <link>https://needjarvis.tistory.com/799</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;주피터 노트북(Jupyter Notebook)으로 간단하게 프로그램을 돌릴 때, 평상시에는 문제가 없지만 용량이 큰 것을 돌리기 위해서 C가 아니라 다른 드라이브로 돌려야 되는 경우가 종종 있습니다. 이럴 때에는 드라이브를 변경해야 하는데요 주피터의 드라이브를 변경하는 법을 포스팅 하도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;주피터 노트북 환경설정 생성&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 드라이브를 변경하기 위해서는 주피터 환경설정 파일을 만들어야 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673940069449&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(kogpt) C:\Users\user&amp;gt;jupyter notebook --generate-config
Writing default config to: C:\Users\user\.jupyter\jupyter_notebook_config.py&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;위와 같이 jupyter notebook --generate-config를 입력하면, 지정된 폴더안에 설정파일이 생성됩니다. 저의 경우 C:\Users\user\.jupyter\jupyter_notebook_config.py 라는 파일이 생성되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8L47H/btrWwg66Le9/SetKFig7yJQhGjIBmNyFq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8L47H/btrWwg66Le9/SetKFig7yJQhGjIBmNyFq0/img.png&quot; data-alt=&quot;주피터 설정 파일&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8L47H/btrWwg66Le9/SetKFig7yJQhGjIBmNyFq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8L47H%2FbtrWwg66Le9%2FSetKFig7yJQhGjIBmNyFq0%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;648&quot; height=&quot;183&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;주피터 설정 파일&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지정된 폴더로 가면, 위의 캡쳐처럼 파일이 생성되어 있는데요. config파일을 열어봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3pkEA/btrWrHYW96M/baRYZTeoAuOIZXkvmG1Tok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3pkEA/btrWrHYW96M/baRYZTeoAuOIZXkvmG1Tok/img.png&quot; data-alt=&quot;디렉토리 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3pkEA/btrWrHYW96M/baRYZTeoAuOIZXkvmG1Tok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3pkEA%2FbtrWrHYW96M%2FbaRYZTeoAuOIZXkvmG1Tok%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;721&quot; height=&quot;96&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;96&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;디렉토리 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼, 위와 같이 디렉토리를 설정하는 설정이 보이며, 이 값에는 Default로 되어 있는 것을 확인할 수 있습니다. 윈도우의 경우 C: 드라이브가 보통 Default로 잡혀 있기 때문에 이 값을 원하는 디렉토리로 변경해줍니다. 저의 경우 D 드라이브로 변경을 해야 해서 아래와 같이 변경하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673940349690&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;c.NotebookApp.notebook_dir = 'D:/'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정을 변경 후, 저장한 뒤 다시 주피터 노트북을 띄워봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;435&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCWKmn/btrWwow5JJz/SZoKSeX3bRKtWi4J5qOj31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCWKmn/btrWwow5JJz/SZoKSeX3bRKtWi4J5qOj31/img.png&quot; data-alt=&quot;D 드라이브 폴더 접근&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCWKmn/btrWwow5JJz/SZoKSeX3bRKtWi4J5qOj31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCWKmn%2FbtrWwow5JJz%2FSZoKSeX3bRKtWi4J5qOj31%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;1012&quot; height=&quot;435&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;D 드라이브 폴더 접근&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 위와 같이 D 드라이브의 폴더에 접근이 가능해지는 것을 확인할 수 있습니다.&lt;/p&gt;</description>
      <category>프로그램언어/파이썬(Python)</category>
      <category>jupyter</category>
      <category>NOTEBOOK</category>
      <category>Python</category>
      <category>주피터</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/799</guid>
      <comments>https://needjarvis.tistory.com/799#entry799comment</comments>
      <pubDate>Tue, 17 Jan 2023 16:29:11 +0900</pubDate>
    </item>
    <item>
      <title>구글 코랩 사용하기 (colab)</title>
      <link>https://needjarvis.tistory.com/798</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;구글 코랩&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글 코랩(Google colab)은 내 현재 사양이 딥러닝(Deep Learning) 혹은 머신러닝(Machine Learning)을 돌리기 적합하지 않거나, 다양한 기기를 사용해서 통일된 환경으로 작업을 하고 싶거나, 실제 서비스에 적용해보기전에 테스트로 돌리기 용이한 환경입니다. 구글은 코랩이라는 GPU가 탑재된 클라우드 환경을 사용자에게 무료로 제공해주고, 사용자는 코랩에서 다양한 실험을 하면서 구글은 실험 데이터를 얻고 우리는 무료로 빠르게 딥러닝을 테스트 해볼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;구글코랩.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vIwad/btrUghN4koo/yQXHJR2kACRm5NyYjxddi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vIwad/btrUghN4koo/yQXHJR2kACRm5NyYjxddi1/img.png&quot; data-alt=&quot;구글 코랩 사용하기 (colab)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vIwad/btrUghN4koo/yQXHJR2kACRm5NyYjxddi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvIwad%2FbtrUghN4koo%2FyQXHJR2kACRm5NyYjxddi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; data-filename=&quot;구글코랩.png&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;구글 코랩 사용하기 (colab)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 코랩이 고급 환경을 계속 제공해주는 것은 아닙니다. 예를 들어 모델링 학습 시간이 하루가 넘어가는 것이라면 사용을 할 수 없기 때문에 사실상 본섭에 실행을 하기 전 맛보기 정도에 불과하다는 것을 인지해야 합니다. 그럼에도 불구하고 코렙을 사용하는 경우는 언제 어디서든 작업을 할 수 있기 때문이 큰 장점이며, 구글 드라이브와 연동이 되어 매우 쉽게 작업을 진행할 수 있기 때문입니다. 게다가 왠만한 환경은 이미 세팅이 되어 있는것도 큰 장점입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&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;b&gt;코랩 시작하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코랩을 사용하기 위해서는 아래의 링크에 들어가서 코랩에 방문을 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1671674091766&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;Google Colaboratory&quot; data-og-description=&quot;&quot; data-og-host=&quot;colab.research.google.com&quot; data-og-source-url=&quot;https://colab.research.google.com/&quot; data-og-url=&quot;https://colab.research.google.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bxeLWG/hyQZKjy18J/iGpA4oBjrAgELfUU50Z7d1/img.png?width=260&amp;amp;height=260&amp;amp;face=0_0_260_260&quot;&gt;&lt;a href=&quot;https://colab.research.google.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://colab.research.google.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bxeLWG/hyQZKjy18J/iGpA4oBjrAgELfUU50Z7d1/img.png?width=260&amp;amp;height=260&amp;amp;face=0_0_260_260');&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;Google Colaboratory&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;colab.research.google.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코랩을 들어가게 되면 아래와 같이 Welcome 화면이 나오게 되는데요. 화면은 사용자에 따라 달라질 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mXaOp/btrUkDvCODz/OYGQ59N3y1W7sC9Kp2DT7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mXaOp/btrUkDvCODz/OYGQ59N3y1W7sC9Kp2DT7k/img.png&quot; data-alt=&quot;Welcome 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mXaOp/btrUkDvCODz/OYGQ59N3y1W7sC9Kp2DT7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmXaOp%2FbtrUkDvCODz%2FOYGQ59N3y1W7sC9Kp2DT7k%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;1367&quot; height=&quot;570&quot; data-origin-width=&quot;1367&quot; data-origin-height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Welcome 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저 같은 경우 colab을 이미 어느정도 사용을 했기 때문에 이 화면이 Default 화면일지 잘 모르겠네요. 아무튼 코랩에 들어간 후, File -&amp;gt; New notebook을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lztx4/btrUh0LCsJq/JxOepWXeMSGSucF8HAKgn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lztx4/btrUh0LCsJq/JxOepWXeMSGSucF8HAKgn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lztx4/btrUh0LCsJq/JxOepWXeMSGSucF8HAKgn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLztx4%2FbtrUh0LCsJq%2FJxOepWXeMSGSucF8HAKgn0%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;604&quot; height=&quot;172&quot; data-origin-width=&quot;604&quot; data-origin-height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 화면을 보면 알겠지만, 코랩은 주피터 노트북과 동일한 화면으로 되어 있기 때문에 누군가에게 소스를 설명하거나 중간중간 실험을 하기에 상당히 용이한 구성을 띄고 있습니다. 그래서 강의를 할 땐 코랩을 사용하는 것이 국룰화되어 있다 보시면 될 정도이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;217&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9tgUL/btrUe94jq1h/BPZegSp33CgsuwjmE49Hw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9tgUL/btrUe94jq1h/BPZegSp33CgsuwjmE49Hw0/img.png&quot; data-alt=&quot;새로운 notebook 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9tgUL/btrUe94jq1h/BPZegSp33CgsuwjmE49Hw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9tgUL%2FbtrUe94jq1h%2FBPZegSp33CgsuwjmE49Hw0%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;527&quot; height=&quot;217&quot; data-origin-width=&quot;527&quot; data-origin-height=&quot;217&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;새로운 notebook 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;new notebook을 선택하면 위와 같이 새로운 notebook 화면이 뜨고, Untitled1.ipynb라는 파일명이 되어 있을 것입니다. 이미 이 파일명이 존재한다면 넘버링은 다르게 나오겠죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;코랩 테스트 해보기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 코랩이 정상적으로 작동이 되는지 확인하기 위해서 테스트로 아래와 같이 아무 코드를 입력해봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;93&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvXMPz/btrUfxqmwbt/Imc8qIhQ9T15kwoQk1uBUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvXMPz/btrUfxqmwbt/Imc8qIhQ9T15kwoQk1uBUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvXMPz/btrUfxqmwbt/Imc8qIhQ9T15kwoQk1uBUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvXMPz%2FbtrUfxqmwbt%2FImc8qIhQ9T15kwoQk1uBUk%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;387&quot; height=&quot;93&quot; data-origin-width=&quot;387&quot; data-origin-height=&quot;93&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드를 작성 한 후 왼쪽의 ▶ 버튼을 클릭하여 현재 구간을 실행시킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;119&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uxRol/btrUh0LDd9t/DZkFBYCgB0bk6w7STX7MY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uxRol/btrUh0LDd9t/DZkFBYCgB0bk6w7STX7MY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uxRol/btrUh0LDd9t/DZkFBYCgB0bk6w7STX7MY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuxRol%2FbtrUh0LDd9t%2FDZkFBYCgB0bk6w7STX7MY1%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;373&quot; height=&quot;119&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;119&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드에 문제가 없을 경우 위와 같이 결과가 출력되며 왼쪽에 녹색의 체크 표시가 뜨게 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0VcuJ/btrUk6ka0T8/kSF0Vr0l2POPyOIyPvqgrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0VcuJ/btrUk6ka0T8/kSF0Vr0l2POPyOIyPvqgrk/img.png&quot; data-alt=&quot;print를 prin으로 변경해본 코드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0VcuJ/btrUk6ka0T8/kSF0Vr0l2POPyOIyPvqgrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0VcuJ%2FbtrUk6ka0T8%2FkSF0Vr0l2POPyOIyPvqgrk%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;763&quot; height=&quot;280&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;280&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;print를 prin으로 변경해본 코드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 잘못된 코드를 입력하면 에러 표시가 뜨게 됩니다. 위 화면은 print를 prin으로 변경해서 실행을 해본 결과 에러가 뜨게 되며 버튼도 붉은색 그리고 녹색 체크 표시도 붉은색 느낌표 표시로 변경된 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;pip 패키지 설치&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코랩에서 다양한 패키지를 제공하더라도 내가 원하는 패키지가 없는 경우가 상당히 많습니다. 그럴땐 pip 명령어를 입력해서 패키지를 설치해야 합니다.&amp;nbsp;사용법은 아래와 같이 pip 앞에 느낌표를 표시해서 설치를 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1671674824473&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;!pip 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;1042&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwMBlc/btrUgiGgqnC/irCLLD4Dbs54jjjMv47aak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwMBlc/btrUgiGgqnC/irCLLD4Dbs54jjjMv47aak/img.png&quot; data-alt=&quot;konlpy를 설치하는 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwMBlc/btrUgiGgqnC/irCLLD4Dbs54jjjMv47aak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwMBlc%2FbtrUgiGgqnC%2FirCLLD4Dbs54jjjMv47aak%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;1042&quot; height=&quot;312&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;312&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;konlpy를 설치하는 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 화면은 코랩에 제공하지 않고 있는 한국어 형태소 분석기 라이브러리인 konlpy를 설치한 화면입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSde2b/btrUfrXXtNX/JFiszdXSnkuWqrvuHFKhcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSde2b/btrUfrXXtNX/JFiszdXSnkuWqrvuHFKhcK/img.png&quot; data-alt=&quot;코랩에서 꼬꼬마 사용 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSde2b/btrUfrXXtNX/JFiszdXSnkuWqrvuHFKhcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSde2b%2FbtrUfrXXtNX%2FJFiszdXSnkuWqrvuHFKhcK%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;464&quot; height=&quot;105&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;105&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;코랩에서 꼬꼬마 사용 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;GPU 런타임 사용하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코랩에서는 GPU를 사용하기 위해서는 별도의 설정이 필요합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzkR1j/btrUkCQZE4q/cTbKOzAwX5mLRHJr7VgHU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzkR1j/btrUkCQZE4q/cTbKOzAwX5mLRHJr7VgHU1/img.png&quot; data-alt=&quot;런타임 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzkR1j/btrUkCQZE4q/cTbKOzAwX5mLRHJr7VgHU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzkR1j%2FbtrUkCQZE4q%2FcTbKOzAwX5mLRHJr7VgHU1%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;325&quot; height=&quot;411&quot; data-origin-width=&quot;325&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;런타임 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 코랩의 메뉴에 있는 Runtime 메뉴를 선택하고, Change runtime type을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccQxrC/btrUhhz2VkQ/ElKLGpAYP2XCJdHkxDTQi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccQxrC/btrUhhz2VkQ/ElKLGpAYP2XCJdHkxDTQi1/img.png&quot; data-alt=&quot;노트북 런타임 세팅&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccQxrC/btrUhhz2VkQ/ElKLGpAYP2XCJdHkxDTQi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccQxrC%2FbtrUhhz2VkQ%2FElKLGpAYP2XCJdHkxDTQi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;396&quot; height=&quot;216&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노트북 런타임 세팅&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 위와 같이 하드웨어 엑셀레이터 설정 화면이 나옵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXxsVN/btrUeYos4ZD/ICuAE9CzDVI71RaqsbkQfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXxsVN/btrUeYos4ZD/ICuAE9CzDVI71RaqsbkQfk/img.png&quot; data-alt=&quot;GPU 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXxsVN/btrUeYos4ZD/ICuAE9CzDVI71RaqsbkQfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXxsVN%2FbtrUeYos4ZD%2FICuAE9CzDVI71RaqsbkQfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;396&quot; height=&quot;220&quot; data-origin-width=&quot;396&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GPU 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 원하는 하드웨어를 설정하면 됩니다. GPU를 설정할 수도 있고, TPU도 사용이 가능합니다. TPU의 경우 GPU와 달리 일반적으로 코드에서 설정을 추가해야 하므로 텐서플로나 케라스에 대해서 잘 모르시는 분들이라면 한동안은 GPU를 설정하는 것을 권유드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ddlNvL/btrUe94kaiD/ufqEOwE4dGbdsTkxtgOy00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ddlNvL/btrUe94kaiD/ufqEOwE4dGbdsTkxtgOy00/img.png&quot; data-alt=&quot;Reload를 해주세요&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ddlNvL/btrUe94kaiD/ufqEOwE4dGbdsTkxtgOy00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FddlNvL%2FbtrUe94kaiD%2FufqEOwE4dGbdsTkxtgOy00%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;508&quot; height=&quot;166&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Reload를 해주세요&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPU 설정이 완료되면 위와 같이 Reload를 해달라는 창이 뜨며, Reload를 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;176&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGOEFL/btrUfrDDgrd/2hxcPMbM09vimT5LQofUTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGOEFL/btrUfrDDgrd/2hxcPMbM09vimT5LQofUTk/img.png&quot; data-alt=&quot;GPU가 리소스에 포함&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGOEFL/btrUfrDDgrd/2hxcPMbM09vimT5LQofUTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGOEFL%2FbtrUfrDDgrd%2F2hxcPMbM09vimT5LQofUTk%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;522&quot; height=&quot;176&quot; data-origin-width=&quot;522&quot; data-origin-height=&quot;176&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GPU가 리소스에 포함&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리로드를 완료하면 위와 같이 GPU가 리소스에 포함이 되며, 이제 GPU를 사용할 수 있다는 것을 알 수 있습니다. 참고로 GPU의 경우 GPU를 지원하는 프레임워크(ex: 케라스, 텐서플로)라면 일반적으로 별도의 설정없이 알아서 GPU를 실행시킵니다.&lt;/p&gt;</description>
      <category>인공지능 및 데이터과학/딥러닝 프레임워크</category>
      <category>colab</category>
      <category>GPU</category>
      <category>코랩</category>
      <category>코랩설정</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/798</guid>
      <comments>https://needjarvis.tistory.com/798#entry798comment</comments>
      <pubDate>Thu, 22 Dec 2022 11:22:36 +0900</pubDate>
    </item>
    <item>
      <title>[도서리뷰] 빅데이터 커리어 가이드북</title>
      <link>https://needjarvis.tistory.com/797</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;처음 이 책을 볼 때에는 그저그런 전문가 분이 집필한 어설픈 가이드북이 아닌가? 라는 생각을 가졌던 것 같습니다. 그러나 이 생각은 책을 펼친지 얼마 되지 않아 그런 생각은 고스란히 사라지고 말았습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;아마도 빅데이터 혹은 유사한 직무를 하는 분들은 자신의 직업이 명확히 무엇인지 모르는 분들이 많을 것입니다. 심지어 내가 하는 업무에 대한 명확한 정의를 내지 못하는 사람들이 꽤 많습니다. 이는 유사하면서도 미세하게 나뉠 수 있는 스킬과 업무의 특성 때문인데 년차가 얼마 되지 않을 경우 더더욱 본인의 직업을 정의 내리기 힘들어 합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsDPxC/btrRt7fLXoj/XjZz5lB5tl41z1kL7oPcgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsDPxC/btrRt7fLXoj/XjZz5lB5tl41z1kL7oPcgk/img.png&quot; data-alt=&quot;빅데이터 커리어 가이드북&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsDPxC/btrRt7fLXoj/XjZz5lB5tl41z1kL7oPcgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsDPxC%2FbtrRt7fLXoj%2FXjZz5lB5tl41z1kL7oPcgk%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;600&quot; height=&quot;531&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;531&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;빅데이터 커리어 가이드북&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;제가 이 책을 보기전에 회사 동료들 중 년차가 낮은 동료들에게 이렇게 물어본적이 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&amp;ldquo;연구원님은 본인의 직업을 디테일하게 정확히 무엇이다 정의 내릴 수 있나요?&amp;rdquo;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;사실 제가 근무하는 팀은 데이터 전문가 뿐만 아니라 딥러닝 모델링도 하고, 전처리 담당도 하는 등 다양한 업무를 하는 사람들이 많았기에 자신의 직업을 명확히 정의하지 못하고 두루뭉실하게 인공지능 전문가 혹은 빅데이터 전문가로 퉁 치는 경우가 많았기 때문입니다.&lt;br /&gt;&lt;br /&gt;그럼 이 책은 &amp;ldquo;내가 하는 업무의 직업명을 알려주는 건가&amp;rdquo;라는 단순한 생각을 할지도 모르겠습니다. 이 책은 책의 제목인 &amp;ldquo;커리어 가이드북&amp;rdquo;인 것처럼 현재 내가 하는 업무에 대한 정의 뿐만 아니라 부족한 지식도 알려주고 있으며, 앞으로 가야 할 넥스트 직업에 대한 방향성까지 제시를 해줍니다. 그러다보니 이 책은 상당히 많은 내용들을 담고 있고, 내용을 이해하는데 매우 쉽습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&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;b&gt;책의 구성 &lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 책은 크게 4가지의 구성을 가지고 있습니다. 첫번째 &lt;span style=&quot;background-color: #333333; color: #ffffff;&quot;&gt;빅데이터 세상&lt;/span&gt;&amp;nbsp;파트는그동안 빅데이터는 어떻게 발전해 왔고, 앞으로 어떻게 변화할 것이며 현재 빅데이터 기술에 대해서 거시적인 관점으로 내용을 적고 장밋빛 미래를 제시하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20221117_205050669.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;125&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5Am32/btrRtVmaRg4/Nt7Ud9qGCPBINN0nfWM9U1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5Am32/btrRtVmaRg4/Nt7Ud9qGCPBINN0nfWM9U1/img.png&quot; data-alt=&quot;책의 4가지 파트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5Am32/btrRtVmaRg4/Nt7Ud9qGCPBINN0nfWM9U1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5Am32%2FbtrRtVmaRg4%2FNt7Ud9qGCPBINN0nfWM9U1%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;800&quot; height=&quot;125&quot; data-filename=&quot;edited_KakaoTalk_20221117_205050669.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;125&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;책의 4가지 파트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빅데이터의 탄생 과정부터 지금에 이르기까지 과정을 지켜봐온 저로서는 매우 잘 알고 있는 내용이지만, 빅데이터에 대한 용어의 정의부터 그동안 어떤 프로젝트가 있었으며, 빅데이터가 왜 중요한지 이해를 못하는 지금 취준생에게 간단하면서도 핵심적으로 짚어주는 파트입니다.&lt;/p&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;background-color: #333333; color: #ffffff;&quot;&gt;빅데이터 직무&lt;/span&gt;에서는 빅데이터 관련 직업들을 분류하고 정의하며 현업 전문가들의 인터뷰 및 취업준비생에게 가이드를 제시해 줍니다. 이는 제가 위에서 팀 동료들에게 말한 &quot;당신 직업을 디테일하게 정의내려보라&quot;라는 것과 비슷한 것인데요.&amp;nbsp;이 파트를 읽게 된다면 현업자는 자신의 직업명을 명확히 말을 할 수 있고, 취준생분들은 앞으로 어떤 직업을 하고 싶은지 가야할 길을 명확히 이해할 수 있는 것이죠.&lt;br /&gt;&lt;br /&gt;세번째 파트인 &lt;span style=&quot;background-color: #000000; color: #ffffff;&quot;&gt;빅데이터 지식&lt;/span&gt;은 빅데이터를 공부해야 하는 방법, 사이트, 도구(Tool), 언어(ex: python, java), 라이브러리(ex: Matplotlib), 프레임워크(ex: Scikit-learn, Tensorflow) 필요한 수학적인 지식등을 알려줍니다. 보통 도서에는 사이트 정보까지 알려주는 경우가 흔치 않은데 이 책에서 알려주는 지식은 회사의 사수 혹은 멘토가 부사수 및 멘티에게 알려주듯이 A to Z 형태로 자세히 알려주고 있습니다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;마지막 네번째 파트인 &lt;span style=&quot;background-color: #000000; color: #ffffff;&quot;&gt;&lt;b&gt;빅데이터 취업&lt;/b&gt;&lt;/span&gt;의 경우 어떻게 스펙(Spec)을 쌓아야 하는지 어떤 회사를 다녀야 하는지 등을 친절하고 자세하게 알려준다는 점입니다. 공부를 다 한 사람들은 그 다음 어떻게 스펙을 쌓아야 할지 선배나 알려줄 사람이 없을 경우 답답할 수 있는데요. 이 책의 마지막 장으로 그런 부분을 말끔히 해소시켜 줍니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;도서의 대상&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;결국 이 도서의 핵심 대상은 빅데이터 관련 직업으로 꿈을 꾸는 학생들 혹은 빅데이터로 전직을 원하는 개발자나 기획자와 같은 경력자들입니다. 하지만 저는 오히려 이 책을 보면서 다른 관점으로 생각을 하게 되었습니다. 우선 팀을 꾸리고 있는 입장으로 주먹구구식의 운영이 아니라, 보다 해야할 일을 직업별로 응집하여 멤버들에게 업무를 부여하고 앞으로 트렌드에 대해서도 이해하게 된 케이스 인 것 같습니다.&lt;br /&gt;&lt;br /&gt;그리고 빅데이터 팀과 자주 작업을 하는 현업자 분들 혹은 기획자, PM 분들은 한번 정도 읽으면 정말 유익한 책이라 생각합니다. 그래야 빅데이터 현업자들이 어떤 고민을 하고 있고 어떻게 문제를 처리하는지 이해를 할 수 있기 때문입니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;제가 근무하는 팀을 전담하는 인프라 연구원의 경우 저희 때문에 파이썬 뿐만 아니라 딥러닝과 머신러닝을 별도로 공부하신분이 있는데요. 그래서 프로그램 설치 요청을 하게 될 경우 정말 알아서 저희의 참여 없이 프로그램을 깔끔히 처리해 주시고, MongoDB를 Replicaset으로 운영하게 되었을 때 에러가 발생하면 원인을 파악하여 알려주기까지 할 정도로 인프라 연구원 분이 어느새 빅데이터 엔지니어, 머신러닝 엔지니어의 업무를 도와주고 있는 것을 보면서 내가 관계된 업무에 대해서 공부를 하는 것이 얼마나 중요한지 깨달을 수 있었던 것 같습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;물론 작은 회사의 경우 한두사람이 위와 같은 업무를 모두 전담하는 경우가 대다수겠지만, 위 인프라 연구원분이 공부를 한 것처럼 빅데이터에 조금이라도 관여가 되어 있고 업무를 이해하고 싶다면 정말 좋은 도서라 생각합니다. 이렇게 저희 회사처럼 업무가 철저히 분담이 되어 있는 곳이라면, 팀별로 한권 정도 구매해 놓으면 좋을 것 같습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;도서의 장점&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;책은 약 400페이지 정도로 빅데이터 관련 도서의 경우 시간이 꽤 걸릴 수 있으나, 이 책의 경우 최대한 어려운 말들은 배제하여 1시간당 꽤 많은 페이지를 읽을 수 있습니다. 물론 제가 현업자이기 때문에 내용을 쉽게 이해할 수 있어서 그럴지도 모르지만 어려운 용어를 최소화 하여 내용이 쉽고, 자세하게 가이드를 해주기 때문이기에 좀 더 읽기 수월합니다.&lt;br /&gt;&lt;br /&gt;그리고 이 책의 저자는 국내에서 손꼽히는 데이터마이닝 전문가입니다. 교재에서는 No.1 데이터마이닝 전문가로 나와있지만, 사실 이건 전국의 모든 데이터마이닝 전문가가 모여서 서열을 나눈 것이 아니니 No.1이라는 말에는 동의하기 힘들지만 직함으로 봤을 땐 우리나라에서 3손가락 안에 드는 전문가라는 것은 확실한 것 같습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;615&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Zf5na/btrRvITXNKz/J9kJnnxb7iRyT1aYpxAKZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Zf5na/btrRvITXNKz/J9kJnnxb7iRyT1aYpxAKZk/img.png&quot; data-alt=&quot;조성준 저자 분의 경력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Zf5na/btrRvITXNKz/J9kJnnxb7iRyT1aYpxAKZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZf5na%2FbtrRvITXNKz%2FJ9kJnnxb7iRyT1aYpxAKZk%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;884&quot; height=&quot;615&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;615&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;조성준 저자 분의 경력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;사실 국내 인공지능 및 빅데이터는 미국에 비해 2년 가까이 뒤쳐졌기 때문에 대부분 해외의 전문가 및 빅 테크 기업들이 어떻게 하는 것을 주시하는 경향이 있으며, 이 저자분은 교수와 센터장에 가깝다고 하지만 숨은 고수분들 중 상당수가 큰 기업에 CTO로 재직하거나, 이미 미국 빅테크 기업에서 한자리 하시는 분들이 꽤 되기 때문입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;저는 개인적으로 저자분의 얘기보다 이 책의 구성이 매우 좋고 가장 큰 강점은 현업자들의 인터뷰 였던 것 같습니다. 아무리 훌륭한 분이라도 모든 프로젝트를 다 경험해 본적이 없습니다. 특히, 데이터마이닝과 같은 경우 하나의 프로젝트에 정말 많은 시간을 할애해야 하기 때문에 내가 경험해보지 못한 사고와 문제점이 분명 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이 글을 쓰고 있는 저 역시도 텍스트 마이닝만 2009년부터 시작하여 데이터 분석 프로젝트들을 합치면 100개가 넘겼으며 십몇년간 청사, 대기업, 은행 그리고 대학교에서 근무를 하였습니다. 하지만 매번 새로운 프로젝트와 새로운 시도를 해야 했으며 인공지능이 본격화되는 2015년이 넘어가는 순간부터는 스킬까지도 새로운 것을 시도했던 것 같습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;즉, 매번 다른 프로젝트를 한다는 것은 내가 아직 경험해보지 못한 프로젝트가 무궁무진하게 쌓여있다는 뜻이고, 또 그만큼 시행착오를 해야 한다는 것이며 과거의 생각이 지금은 틀릴 수도 있습니다. 이런 내 생각을 보충하기 위해서는 권위가 있거나 경력이 풍부하고 성과를 이룬 경력자들과 다양한 토론과 의견을 듣는 것이 제일 중요할텐데요.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20221117_204440629.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/be219g/btrRvIGpOEQ/3EbFeDIL8OHukekuiwrYPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/be219g/btrRvIGpOEQ/3EbFeDIL8OHukekuiwrYPk/img.png&quot; data-alt=&quot;경력자들의 인터뷰&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/be219g/btrRvIGpOEQ/3EbFeDIL8OHukekuiwrYPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbe219g%2FbtrRvIGpOEQ%2F3EbFeDIL8OHukekuiwrYPk%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;800&quot; height=&quot;632&quot; data-filename=&quot;edited_KakaoTalk_20221117_204440629.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;경력자들의 인터뷰&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이 책은 직무별로 경력자들의 인터뷰를 하는 방식이 들어있어서 매우 유익하고, 취준생뿐만 아니라 경력자가 보기에도 충분히 의미있는 내용을 담고 있다 생각합니다. 저는 빅데이터와 같이 데이터에 관련된 업무에서 가장 중요한 것은 창조적인 생각이 가장 중요하다고 생각하는데요. 내가 겪지 못한 부족한 생각을 창조적인 생각을 가진 다른 이의 인터뷰를 들으면서 채우는 것은 매우 중요한 내용이라 생각합니다.&lt;br /&gt;&lt;br /&gt;게다가 신입이라면 인터뷰를 잘 하는게 중요할텐데 유연한 사고를 가지지 못한다면 현업자들의 질문 공세에 어버버하다가 탈락하는 경우가 많기 때문입니다. 그러니 간접적인 경험을 가지고 그 인터뷰의 내용을 숙지를 해주는 도서가 있다는 것에서 정말 훌륭한 가이드 북이라 생각합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해당 도서는 길벗 출판사에게 도서를 증정받아 리뷰를 작성한 포스팅이며,&lt;br /&gt;도서 이외에 어떤 금품을 지급 받은 적이 없는 순수한 리뷰입니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 도서 리뷰</category>
      <category>빅데이터</category>
      <category>빅데이터커리어</category>
      <category>커리어</category>
      <category>커리어가이드북</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/797</guid>
      <comments>https://needjarvis.tistory.com/797#entry797comment</comments>
      <pubDate>Thu, 17 Nov 2022 21:30:03 +0900</pubDate>
    </item>
    <item>
      <title>SK C&amp;amp;C 데이터 센터 화재, 카카오만 욕먹는 이유</title>
      <link>https://needjarvis.tistory.com/796</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;한국의 실리콘 밸리인 판교의 SK C&amp;amp;C 데이터 센터에서 화재가 발생하여, 수많은 서비스의 장애가 발생하였습니다. 그런데 유독 카카오가 더 큰 장애가 발생하였고, 유독 큰 욕을 먹고 있는데 이 이유에 대해서 알아보도록 해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;카카오만_욕먹는_이유.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dldmW1/btrO0ICrNVp/NHivF5LdSHujtcBvmbS7kK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dldmW1/btrO0ICrNVp/NHivF5LdSHujtcBvmbS7kK/img.jpg&quot; data-alt=&quot;SK C&amp;amp;amp;C 데이터 센터 화재, 카카오만 욕먹는 이유&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dldmW1/btrO0ICrNVp/NHivF5LdSHujtcBvmbS7kK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdldmW1%2FbtrO0ICrNVp%2FNHivF5LdSHujtcBvmbS7kK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;SK C&amp;amp;C 데이터 센터 화재&amp;amp;#44; 카카오만 욕먹는 이유&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;483&quot; data-filename=&quot;카카오만_욕먹는_이유.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SK C&amp;amp;C 데이터 센터 화재, 카카오만 욕먹는 이유&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;중앙 집중화&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카카오의 가장 큰 문제는 바로 중요한 서비스를 모두 한 데이터 센터에 몰아 넣었다는 것입니다. 전원에 문제가 발생하여 다시 전원을 복구하였으면 모든 서비스가 이상없이 돌아야 하는데 지금 쓰고 있는 티스토리(Tistory)의 경우 아직도 모바일로 페이지를 리다이렉트 시킬 정도입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpWUg4/btrOYIwXv7A/o3NJ5W3uW1kZIktwEhkkK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpWUg4/btrOYIwXv7A/o3NJ5W3uW1kZIktwEhkkK1/img.png&quot; data-alt=&quot;모바일 버전으로 강제 리다이렉트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpWUg4/btrOYIwXv7A/o3NJ5W3uW1kZIktwEhkkK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpWUg4%2FbtrOYIwXv7A%2Fo3NJ5W3uW1kZIktwEhkkK1%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; alt=&quot;모바일 버전으로 강제 리다이렉트&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;287&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;287&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모바일 버전으로 강제 리다이렉트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 데이터의 상당수가 유실되었거나 DR(Disaster Recovery) 즉, 장애 복구 대응이 부족해서 절차가 없다는 것입니다. 보통 카카오같은 서비스는 장애가 발생하였을 경우 서비스를 다른 데이터 센터로 돌려서 문제가 없게 해야 합니다. 그러나 며칠이 지나도 완벽하게 복구가 안되었다는 것은 데이터 센터에 데이터들을 분산 저장하지 않았다는 것이 되는 것이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 모든 카카오 서비스의 메인을 판교 데이터 센터에 몰았다는 것은 얼마나 카카오가 재난에 대응을 하지 못하였는지 알 수 있는 대목이기도 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;카카오 부사장 양현서 발언&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 사건이 발생하면서 카카오 부사장의 실언도 상당히 논란이 되고 있습니다.&amp;nbsp;양현서 부사장의 경우 &quot;화재&quot;라는 것이 예상할 수 없는 사고라고 하였는데 데이터센터에서 화재를 예상하지 못하면 도대체 무엇을 예상할 수 있을까요? 한반도에 전쟁은 준비했는데 화재를 예상 못할까요? 수만대의 컴퓨터가 모여 있는데 어떻게 화재를 예상하지 못했을까요?&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;793&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzFp0c/btrO0HKgCfI/Q6aDLrJnIsdJXKUq3Zzm31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzFp0c/btrO0HKgCfI/Q6aDLrJnIsdJXKUq3Zzm31/img.png&quot; data-alt=&quot;양현서 부사장의 실언&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzFp0c/btrO0HKgCfI/Q6aDLrJnIsdJXKUq3Zzm31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzFp0c%2FbtrO0HKgCfI%2FQ6aDLrJnIsdJXKUq3Zzm31%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; alt=&quot;카카오 부사장의 뇌절 실언&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;793&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;793&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;양현서 부사장의 실언&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니 화재를 넘어서서 지진이 발생했다고 가정해보겠습니다. 도대체 무엇이 달라질 수 있을까요? 조그마한 회사라면 이런 사태가 발생했을 때 사람들이 다 이해할 수 있습니다. 돈이 없어서 서버를 확충할 수 없으니 이중화 같은 것은 지금 시기에는 불가능하다 이해할 수 있죠. 하지만 카카오는 돈을 버는 회사고 적자 회사가 아닙니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수많은 개발자들에게 보너스 줄 돈은 있고, 수많은 기업들을 상장 시켜서 돈을 벌순 있지만 데이터 센터는 확충하지 못한다는 것일까요?&amp;nbsp;게다가 32000대라는 것도 비싼 서버도 아니고, 수많은 서버들을 연결하는 빅데이터 구조일 것이기 때문에 비싼 서버도 아닐 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카카오는 예상못하고 다른 회사는 예상하나요? 어떻게 이런 전국민적인 서비스를 지닌 카카오가 스타트업 마인드로 회사를 운영하고 있는지 충격적입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;성장만 추구한 회사의 몰락&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 카카오는 그동안 수많은 기회가 있었으면서, 오로지 성장과 돈을 쫓아간 결과가 이거라는 것입니다. 양적으로만 성장했고 질적으로 성공할 마음은 &quot;에이~ 우린 아니겠지~&quot;라는 생각으로 가다보니 이런 일이 벌어진 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 카카오 사태로 인해서 수많은 기업들은 비상이 걸리 겁니다. 즉, 하나의 데이터센터에서 화재가 발생하였을 때 서비스가 아무런 문제 없이 혹은 있더라도 아주 잠깐으로 데이터 유실 없이 갈 수 있는지 정부에서도 감독을 할 것이 분명하고, 기업들도 인프라에 돈을 쏟기 위해서 많은 자금을 들일 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 카카오와 같이 큰 기업일 경우 ISMS와 같이 Fault Tolerance(내고장성) 검사를 할 것으로 예상됩니다. 작년인가 올초에는 카카오페이의 CEO가 주식시장에 찬물을 끼얹더니 이번에는 IT 회사에 찬물을 끼얹네요. 저 역시 티스토리가 이제 불안해서 워드프레스와 같은 다른 블로그를 해야 할지 고민이 되는 요며칠입니다.&lt;/p&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>IT/IT news</category>
      <category>KAKAO</category>
      <category>데이터센터화재</category>
      <category>카카오</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/796</guid>
      <comments>https://needjarvis.tistory.com/796#entry796comment</comments>
      <pubDate>Tue, 18 Oct 2022 20:41:12 +0900</pubDate>
    </item>
    <item>
      <title>엘라스틱서치 수집기, 비츠(Beats) 이해하기</title>
      <link>https://needjarvis.tistory.com/795</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;비츠(Beats)는 컴퓨터, 네트워크, 앱과 같은 데이터를 전송하는 경량 데이터 전달자이다. Beats인 이유는 비츠라는 어플리케이션 하나로 구성된 것이 아니라 상황에 맞게 다양한 비트(Beat)가 있기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;엘라스틱_비츠.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVXttE/btrOtJpo0Xa/22DEctNsa1Y1bHQKUNQQWk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVXttE/btrOtJpo0Xa/22DEctNsa1Y1bHQKUNQQWk/img.jpg&quot; data-alt=&quot;[ELK Stack] 엘라스틱서치 수집기, 비츠(Beats) 이해하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVXttE/btrOtJpo0Xa/22DEctNsa1Y1bHQKUNQQWk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVXttE%2FbtrOtJpo0Xa%2F22DEctNsa1Y1bHQKUNQQWk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;엘라스틱서치 수집기&amp;amp;#44; 비츠 이해하기 메인 이미지&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;484&quot; data-filename=&quot;엘라스틱_비츠.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ELK Stack] 엘라스틱서치 수집기, 비츠(Beats) 이해하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;로그스태시(Logstash)와 비교&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엘라스틱서치에 데이터를 전달해주는 역할로는 로그스태시(Logstash)도 존재하는데 로그스태시는 다양한 소스에서 데이터를 수집하는 커다란 데이터 전송 솔루션이라 본다면 비츠는 로그스태시에 비해 차지하는 공간이 작고, 더 적은 리소스를 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 비츠는 수집해야 하는 서버에 에이전트를 설치하는 식이라 목적은 같지만 사용하는 방식이 완전 다르다 할 수 있다.&amp;nbsp;아래는 엘라스틱서치에서 설명하는 로그스태시와 비츠의 비교내용이다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;Beats는 서버에 에이전트로 설치하여 특정 유형의 운영 데이터를 Elasticsearch로 보내는 경량 데이터 배송업체입니다. Beats는 차지하는 공간이 작고 Logstash보다 적은 시스템 리소스를 사용합니다. Logstash는 더 큰 공간을 차지하지만 다양한 소스에서 데이터를 수집, 강화 및 변환하기 위한 광범위한 입력, 필터 및 출력 플러그인을 제공합니다.&lt;/blockquote&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;b&gt;비츠 구성&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1885&quot; data-origin-height=&quot;870&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/L7VDO/btrOrSUw5IY/G3uYHZCDi6o4XkXwJR33yK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/L7VDO/btrOrSUw5IY/G3uYHZCDi6o4XkXwJR33yK/img.png&quot; data-alt=&quot;비츠 구성도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/L7VDO/btrOrSUw5IY/G3uYHZCDi6o4XkXwJR33yK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FL7VDO%2FbtrOrSUw5IY%2FG3uYHZCDi6o4XkXwJR33yK%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; alt=&quot;비츠 구성도&quot; loading=&quot;lazy&quot; width=&quot;1885&quot; height=&quot;870&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1885&quot; data-origin-height=&quot;870&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;비츠 구성도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 비츠의 구성도를 보면 파일비트(Filebeat), 메트릭비트(Metricbeat), 패킷비트(Packetbeat), 윈로그비트(Winlogbeat)가 각자 수집한 데이터를 엘라스틱서치에 전송한 다음 키바나는 엘라스틱서치에서 데이터를 가져와 데이터 시각화를 하는 것을 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;libbeat&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNLIei/btrOwB4TxzW/okfnxkJ3DJeLseFmj98GQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNLIei/btrOwB4TxzW/okfnxkJ3DJeLseFmj98GQK/img.png&quot; data-alt=&quot;libbeat 구성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNLIei/btrOwB4TxzW/okfnxkJ3DJeLseFmj98GQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNLIei%2FbtrOwB4TxzW%2FokfnxkJ3DJeLseFmj98GQK%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; alt=&quot;libbeat 구성&quot; loading=&quot;lazy&quot; width=&quot;929&quot; height=&quot;385&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;libbeat 구성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트는 libbeat라는 라이브러리를 이용하여 주요 비트 뿐만 아니라 나만의 다양한 비트들을 만들 수 있고, 오직 나만의 비트도 만들 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;주요 비트와 다양한 비트들&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주요 비트는 엘라스틱 내부의 다운로드 페이지에서 정식으로 릴리즈 되는 것을 꼽았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;주요비트 목록&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;윈로그비트(Winlogbeat)&lt;/li&gt;
&lt;li&gt;패킷비트(Packetbeat)&amp;nbsp;&lt;/li&gt;
&lt;li&gt;메트릭비트(Metricbeat)&lt;/li&gt;
&lt;li&gt;하트비트(Heartbeat)&lt;/li&gt;
&lt;li&gt;펑션비트(Functionbeat)&lt;/li&gt;
&lt;li&gt;파일비트(Filebeat)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;그외 다양한 비트들 [1]&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 434px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; width: 13.7209%;&quot;&gt;&lt;span&gt;비트&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 86.1628%;&quot;&gt;&lt;span&gt;비트 내용&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;height: 20px; width: 13.7209%;&quot;&gt;&lt;span&gt;amazonbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 20px; width: 86.1628%;&quot;&gt;지정된 Amazon 제품에서 데이터를 읽습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;apachebeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;Apache HTTPD 서버 상태에서 상태를 읽습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;apexbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;APEX 툴킷을 통해 Java 응용프로그램에서 구성 가능한 상황별 데이터 및 메트릭을 추출합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;browserbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;브라우저 기록(Chrome, Firefox 및 Safari)을 읽고 Elastic 출력으로 전송합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;cborbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;cbor 인코딩된 파일(특히 로그 파일)에서 읽습니다. 추가: CBOR 인코딩 디코더&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 10px;&quot;&gt;
&lt;td style=&quot;height: 10px; width: 13.7209%;&quot;&gt;&lt;span&gt;cloudflarebeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 10px; width: 86.1628%;&quot;&gt;Cloudflare Enterprise 로그 공유 API에서 로그 항목을 인덱싱합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 10px;&quot;&gt;
&lt;td style=&quot;height: 10px; width: 13.7209%;&quot;&gt;&lt;span&gt;cloudfrontbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 10px; width: 86.1628%;&quot;&gt;Amazon&amp;nbsp;Web&amp;nbsp;Services&amp;nbsp;CloudFront에서&amp;nbsp;로그&amp;nbsp;이벤트를&amp;nbsp;읽습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;discobeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;디스코드에서 메세지를 읽고 엘라스틱서치에서 인덱싱합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;dockbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;&lt;span&gt;docker 컨테이너 통계를 읽고 엘라스틱서치에서 인덱싱합니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;elasticbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;엘라스틱서치 클러스터에서 상태를 읽고 엘라스틱서치에서 인덱싱합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;etherbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;이더리움 호환 블록체인에서 블록을 읽고 엘라스틱서치에 색인을 생성합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;githubbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;&lt;span&gt;깃허브 레파지토리 활동을 쉽게 모니터링합니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;kafkabeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;카프카 토픽에서 데이터를 읽습니다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;krakenbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;크라켄 암호화폐 거래소에서 각 거래에 대한 정보를 수집합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 34px;&quot;&gt;
&lt;td style=&quot;height: 34px; width: 13.7209%;&quot;&gt;&lt;span&gt;protologbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 34px; width: 86.1628%;&quot;&gt;UDP&amp;nbsp;또는&amp;nbsp;TCP를&amp;nbsp;통해&amp;nbsp;구조화&amp;nbsp;및&amp;nbsp;구조화되지&amp;nbsp;않은&amp;nbsp;로그를&amp;nbsp;허용합니다.&amp;nbsp;syslog&amp;nbsp;메시지&amp;nbsp;또는&amp;nbsp;GELF&amp;nbsp;형식&amp;nbsp;메시지를&amp;nbsp;수신하는&amp;nbsp;데&amp;nbsp;사용할&amp;nbsp;수도&amp;nbsp;있습니다.&amp;nbsp;(udplogbeat의&amp;nbsp;후속&amp;nbsp;제품으로&amp;nbsp;사용&amp;nbsp;예정)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;pubsubbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;Google Cloud Pub/Sub에서 데이터를 읽습니다&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;redditbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;하나 또는 여러 하위 레딧의 새로운 레딧 제출물을 수집합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;rsbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;&lt;span&gt;redis 느린 로그를 엘라스틱서치로 전송하고 키바나에서 분석합니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;servicebeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;&lt;span&gt;엘라스틱서치에 서비스 상태 보내기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;springbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&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;수집합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 34px;&quot;&gt;
&lt;td style=&quot;height: 34px; width: 13.7209%;&quot;&gt;&lt;span&gt;springboot2beat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 34px; width: 86.1628%;&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;mircometer.io 메트릭 파사드를 활용하여 웹 채널을 통해 Spring Boot 2 웹 앱의 모든 메트릭 엔드포인트를 쿼리하고 누적합니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;terminalbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;외부&amp;nbsp;명령을&amp;nbsp;실행하고&amp;nbsp;동일한&amp;nbsp;명령의&amp;nbsp;stdout을&amp;nbsp;Elasticsearch/Logstash로&amp;nbsp;전달합니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px; width: 13.7209%;&quot;&gt;&lt;span&gt;twitterbeat&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 17px; width: 86.1628%;&quot;&gt;&lt;span&gt;지정된 화면 이름에 대한 트윗을 읽습니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&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;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;a href=&quot;https://www.elastic.co/kr/blog/build-your-own-beat&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;나만의 Beat 만들기&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>빅데이터 및 DB/검색엔진, 엘라스틱 스택</category>
      <category>BEATs</category>
      <category>ElasticSearch</category>
      <category>비츠</category>
      <category>엘라스틱서치</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/795</guid>
      <comments>https://needjarvis.tistory.com/795#entry795comment</comments>
      <pubDate>Thu, 13 Oct 2022 14:50:52 +0900</pubDate>
    </item>
    <item>
      <title>[도서리뷰] 케라스 창시자에게 배우는 딥러닝 개정 2판</title>
      <link>https://needjarvis.tistory.com/794</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;저는 개인적으로 딥러닝 프레임워크 중에서 케라스(Keras)를 많이 선호합니다. 딥러닝을 텐서플로우로 시작하였고, 다소 어려웠던 텐서플로우 초기 버전에서 텐서플로우 2.0부터는 케라스를 기본으로 하여 텐서플로우도 이제 많은 사람들이 쉽게 딥러닝을 다룰 수 있게 도와줬기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런 고마운 케라스라는 존재를 만든 창시자 분이 직접 도서를 집필하였는데요. 1판의 경우 2018년에 나와서 많은 2019년 ~ 2020년에 대규모 변화가 있었던 텐서플로우의 비해 약간 늦은 감이 있어 현재 시점으로는 보기에 힘들 수 있는데요. 개정 2판이 나오면서 도서 역시 현재 버전에 맞게 다양하게 바뀌었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;양장본&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;20221012_153525.jpg&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;3000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpw7gj/btrOmsPA1u5/HC1tfB1hkQ9xaG1dZdLHUK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpw7gj/btrOmsPA1u5/HC1tfB1hkQ9xaG1dZdLHUK/img.jpg&quot; data-alt=&quot;양장으로 된 도서&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpw7gj/btrOmsPA1u5/HC1tfB1hkQ9xaG1dZdLHUK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcpw7gj%2FbtrOmsPA1u5%2FHC1tfB1hkQ9xaG1dZdLHUK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;케라스 창시자에게 배우는 딥러닝&amp;amp;#44; 양장본&quot; loading=&quot;lazy&quot; width=&quot;4000&quot; height=&quot;3000&quot; data-filename=&quot;20221012_153525.jpg&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;3000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;양장으로 된 도서&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 도서는 양장으로 되어 있어서 책 받침대에 놓거나 그냥 보기에도 상당히 편합니다. 저는 양장으로 된 도서는 무조건 사모으고 싶은 충동을 느끼는데 케라스의 창시자가 알려주는 책이며 내용도 상당히 방대하여 케라스를 전문적으로 다루려는 혹은 다루고 있는 많은 엔지니어분들이 바이블 형태로 보기에 정말 좋은 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;도서 내용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도서를 읽은 소감으로 말을 하자면, 바이블 수준의 도서이다 보니 하나부터 열까지 모든 것을 알려주려는 저자의 노력이 보입니다. 머신러닝을 오래 하였고, 다양한 도서를 봤었는데 &quot;이것까지 알려준다고?&quot;라는 생각이 들 정도의 책이었다고 해야 할까요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;399&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vIHws/btrOrdiInJI/rknsOyvXbYWuBKxPZZmlr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vIHws/btrOrdiInJI/rknsOyvXbYWuBKxPZZmlr1/img.png&quot; data-alt=&quot;케라스 창시자, 프랑소와 숄레&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vIHws/btrOrdiInJI/rknsOyvXbYWuBKxPZZmlr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvIHws%2FbtrOrdiInJI%2FrknsOyvXbYWuBKxPZZmlr1%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; alt=&quot;프랑소와 숄레&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;399&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;399&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;케라스 창시자, 프랑소와 숄레&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 이 책을 한권만 마스터해도 케라스 책 몇 권을 본 효과는 날 것이라 자부할 수 있는 것 같습니다. 게다가 잘못된 지식을 전달하는 저자들도 있었는데 창시자의 말이기 때문에 잘못된 지식이 나올 가능성은 제로에 수렴하니, 말을 검증하거나 왜 이렇게 말을 하지?라는 생각 없이 지식을 교정하면서 습득을 하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;제가 이렇게 말을 하는 이유는 책이 다소 어려울 수도 있습니다. 용어를 정확히 알려주려는 것과 어려운 수학적인 공식을&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;최소화하면서&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;독자들에게 머신러닝을 이해시키는 부분이 초반부에 상당히 많이 나옵니다. 그렇기 때문에 책의 초반부는 약간 어려울 수 있지만, 이해를 한다면 중요한 지식을 습득할 수 있다고 생각합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;20221012_153840.jpg&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;3000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kOUuu/btrOmsWn715/aoLLvKzNqqJZlDDCkSQKX1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kOUuu/btrOmsWn715/aoLLvKzNqqJZlDDCkSQKX1/img.jpg&quot; data-alt=&quot;텐서 연산을 설명하려는 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kOUuu/btrOmsWn715/aoLLvKzNqqJZlDDCkSQKX1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkOUuu%2FbtrOmsWn715%2FaoLLvKzNqqJZlDDCkSQKX1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;텐서 연산 설명 부분&quot; loading=&quot;lazy&quot; width=&quot;4000&quot; height=&quot;3000&quot; data-filename=&quot;20221012_153840.jpg&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;3000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;텐서 연산을 설명하려는 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 페이지는 책의 일부를 찍은 것인데요. 개발자의 사고가 아니라 창시자의 사고다 보니 하나부터 열까지 설명을 하려는 모습이 이렇게 보입니다. 그러다 보니 완전 이쪽을 모르는 분이 보기에는 다소 어려울 수 있을 텐데요. 그렇다고 그런 분들에게 비추하는 책은 아닙니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;20221012_153906.jpg&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;3000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bH3sTI/btrOo7KFvVW/khjmXwoHJyyaQr8jXXaa9k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bH3sTI/btrOo7KFvVW/khjmXwoHJyyaQr8jXXaa9k/img.jpg&quot; data-alt=&quot;목차&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bH3sTI/btrOo7KFvVW/khjmXwoHJyyaQr8jXXaa9k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH3sTI%2FbtrOo7KFvVW%2FkhjmXwoHJyyaQr8jXXaa9k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; alt=&quot;케라스 도서 목차&quot; loading=&quot;lazy&quot; width=&quot;4000&quot; height=&quot;3000&quot; data-filename=&quot;20221012_153906.jpg&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;3000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;목차&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 이해가 안 되시는 부분이 있다면 과감히 넘어가시고, 이해가 쉬워지는 부분부터 봐도 무방하기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개발 환경&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 책에 있는 예제는 현재 github에 모두 공개가 되어 있고, 구글 코랩(Google Colab)으로 진행할 수 있지만 회사에서의 사용하는 제 데탑 컴퓨터가 고성능의 GPU가 깔려 있기 때문에 많은 예제들을 회사 컴퓨터와 집에 있는 데탑으로 병행하여 진행해 보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;CPU : Intel(R) Core(TM) i7-9700 CPU @ 3.00 GHz&lt;br /&gt;Memory : 32GB&lt;br /&gt;GPU : NVIDIA TITAN RTX 24GB&lt;/blockquote&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;b&gt;책의 평점&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;방대함(알참) : 10점&lt;br /&gt;책의 구성 : 10점&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 책의 내용에 대해서는 케라스를 쓰는 사람에게 이보다 좋은 책은 없다고 생각합니다. 이 책만큼 좋은 케라스 도서는 개별적인 포커스를 둔(ex: 자연어 처리) 책 정도이지 케라스를 전반적으로 습득하기에는 이 책만 읽어도 충분할 정도로 난이도가 어느 정도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무 쉬우면 책은 술술 읽힐지 모르나 남는 게 없지만, 이 책은 적당히 난이도가 있으면서도 많은 사람들을 포용하려는 노력도 보입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;독자 수준별 읽어야 할 방법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;머신러닝 생초보&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머신러닝 생초보의 경우 책이 너무 어려워서 &quot;아 머신러닝은 나랑 안 맞는구나&quot;라는 생각을 할지 모를 텐데요. 이해가 진짜 죽어도 안 되는 부분은 일단 넘어가고 쉬운 부분부터 하시는 것을 추천드립니다. 아니면 뭔지 모르고 그냥 따라 해 보는 것도 좋을 거라 생각합니다. 그렇게 한 바퀴를 돌고 머신러닝이 어떤 것인지 감이 오면, 다시 처음부터 읽어서 좀 더 어려운 부분을 습득하고 머신러닝 예제를 자기 것으로 할 수 있게 예제를 살짝 바꿔보면서 하는 방법도 좋습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;머신러닝 중급자 이상&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머신러닝을 어느 정도 하였고, 소스를 충분히 이해를 하신 분들이라면 머신러닝의 코드보다는 작동 원리나 저자의 철학 등을 이해해보는 것도 좋다고 생각합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;책의 한줄 평&lt;/b&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;어려우면서 쉬운 케라스 바이블&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 한줄 평을 어려우면서 쉬운 케라스 바이블로 정한 이유는 책이 설명하고자 하는 것들은 케라스를 처음 접하는 사람들에게는 비교적 어려운 주제일 수 있으나, 이를 그림과 자세한 설명으로 쉽게 풀이해준다는 것입니다. 그래서 딥러닝을 잘 모르는 분들은 몸에서 거부를 할 수 있으나, 막상 보면 설명을 매우 잘하는 1타 강사같은 느낌으로 책을 읽으실 수 있을 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;해당 도서는 길벗 출판사에게 도서를 증정받아 리뷰를 작성한 포스팅으로 책을 받은 후 약 3주 정도 직접 예제 등을 수행하면서 작성한 포스팅입니다. 저의 경우 도서의 전반적인 구성이 마음에 들어 회사 동료들에게 추천하거나 회사에서 도서를 몇 권 구비하여, 동료들이 볼 수 있게 책꽂이에 놓을 예정입니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT 도서 리뷰</category>
      <category>IT도서</category>
      <category>keras</category>
      <category>도서리뷰</category>
      <category>케라스</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/794</guid>
      <comments>https://needjarvis.tistory.com/794#entry794comment</comments>
      <pubDate>Wed, 12 Oct 2022 16:32:45 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] 날짜 더하기, 빼기 함수 (DATE_ADD, DATE_SUB) 이해하기</title>
      <link>https://needjarvis.tistory.com/793</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL(MariaDB 포함)에서 날짜값을 더하거나 뺄 때 사용하는 함수는 DATE_ADD와 DATE_SUB가 있다. 이 함수를 사용해서 현재일보다 7일 전, 한달 전과 같은 데이터를 가지고 오거나 시한이 있는 컨텐츠의 경우 마감일을 지정한다든지 하는 로직등을 구현할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;MySQL_날짜더하기_빼기.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4U2LV/btrOeROFXlp/waVUm99rkwxSCk2U3g5zYk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4U2LV/btrOeROFXlp/waVUm99rkwxSCk2U3g5zYk/img.jpg&quot; data-alt=&quot;[MySQL] 날짜 더하기, 빼기 함수 (DATE_ADD, DATE_SUB) 이해하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4U2LV/btrOeROFXlp/waVUm99rkwxSCk2U3g5zYk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4U2LV%2FbtrOeROFXlp%2FwaVUm99rkwxSCk2U3g5zYk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;484&quot; data-filename=&quot;MySQL_날짜더하기_빼기.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[MySQL] 날짜 더하기, 빼기 함수 (DATE_ADD, DATE_SUB) 이해하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;DATE_ADD 및 DATE_SUB 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1665451126470&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DATE_ADD(date, INTERVAL value interval_type)
DATE_SUB(date, INTERVAL value interval_type)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;날짜를 더하거나 빼는 방법은 메소드만 다를 뿐 사용 방법은 동일하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;첫번째 인자인 date는 수정해야 할 대상 날짜값이다.&lt;/li&gt;
&lt;li&gt;두번째 인자인 value는 더하거나 뺄 시간 값이고, interval_type는 시간 유형이다.&lt;/li&gt;
&lt;/ul&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;b&gt;시간 유형&lt;/b&gt;&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 173px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;유형&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;MICROSECOND&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;마이크로 초, 즉 백만분의 1초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;SECOND&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;MINUTE&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;분&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;HOUR&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;시&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;DAY&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;일&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;WEEK&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;주&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;MONTH&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;달&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;QUARTER&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;분기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;YEAR&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;년도&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 시간 유형은 조합을 해서 좀 더 디테일한 날짜값을 조절할 수 있다. 예를 들어 7일 5시간 후와 같은 복잡한 시간 값도 위의 시간 유형을 조합해서 만들 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;DATE_ADD 및 DATE_SUB 예제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 시간은 2022년 10월 11일 오전 10시라고 가정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;현재 시간에 0.5초 더하기 및 빼기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1665452522435&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval 500000 MICROSECOND);
// 2022-10-11 10:00:00.500

select date_sub(now(), interval 500000 MICROSECOND);
// 2022-10-11 09:59:59.500&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;b&gt;현재 시간에서 5초 더하기 및 빼기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1665453118684&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval 5 SECOND);
// 2022-10-11 10:00:05

select date_sub(now(), interval 5 SECOND);
// 2022-10-06 10:00:00&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;b&gt;현재 시간에 10분 더하기 및 빼기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1665453185403&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval 10 MINUTE);
// 2022-10-11 10:10:00

select date_sub(now(), interval 10 MINUTE);
// 2022-10-11 09:50:00&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;b&gt;현재 시간에 1시간 더하기 및 빼기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1665460534184&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval 1 HOUR);
// 2022-10-11 11:00:00

select date_sub(now(), interval 1 HOUR);
// 2022-10-11 09:00:00&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;b&gt;현재 시간에 5일 더하기 및 빼기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1665460552153&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval 5 DAY);
// 2022-10-16 10:00:00

select date_sub(now(), interval 5 DAY);
// 2022-10-06 10:00:00&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;b&gt;현재 시간에 2달 더하기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1665460963116&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval 2 MONTH);
// 2022-12-11 10:00:00

select date_sub(now(), interval 2 MONTH);
// 2022-08-11 10:00:00&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;b&gt;현재 시간에 1분기(3개월) 더하기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1665461043023&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval 1 QUARTER);
// 2023-01-11 10:00:00

select date_sub(now(), interval 1 QUARTER);
// 2022-07-11 10:00:00&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;b&gt;현재 시간에 10년 더하기&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1665461102393&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval 10 YEAR);
// 2032-10-11 10:00:00

select date_sub(now(), interval 10 YEAR);
// 2012-10-11 10:00:00&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;위에서 설명한 것처럼 10시 10분 뒤와 같이 디테일한 설정들도 유형의 조합을 통해서 제공하고 있다. 다만 조합의 경우 아무렇게나 조합을 만드는 것이 아니라 정해진 규칙이 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;시간 유형 조합&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;조합 매개변수&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;조합 명칭&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;형식&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;SECOND_MICROSECOND&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;초 마이크로초&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;초.마이크로초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;MINUTE_MICROSECOND&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;분 마이크로초&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;분:초.마이크로초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;MINUTE_SECOND&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;분 초&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;분:초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;HOUR_MICROSECOND&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;시간 마이크로초&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;시간:분:초.마이크로초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;HOUR_SECOND&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;시간 초&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;시간:분:초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;HOUR_MINUTE&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;시간 분&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;시간:분&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;DAY_MICROSECOND&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;일 마이크로초&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;일 시간:분:초.마이크로초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;DAY_SECOND&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;일 초&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;일 시간:분:초&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;DAY_MINUTE&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;일 분&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;일 시간:분&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;DAY_HOUR&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;일 시간&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;일 시간&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;YEAR_MONTH&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;년 월&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;년-월&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 위의 매개변수와 같이 조합의 경우 최대 값과 최소값을 조합하여 매개변수가 만들어지는 것을 확인할 수 있다. 예를 들어 5시간 10분 52초와 같은 경우, 사이에 껴 있는 분(Minute)이 아닌 시(Hour)와 초(Second)가 최대와 최소값이니 HOUR_SECOND와 같은 조합이 만들어진다. 이 패턴을 이해한다면, 위의 매개변수를 외우지 않아도 충분히 활용할 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;시간 유형 조합 예시&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;DAY_HOUR&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시) 5일 2시간을 더하기&lt;/p&gt;
&lt;pre id=&quot;code_1665461668867&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval '5 2' DAY_HOUR);
// 2022-10-16 12:00:00&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;b&gt;HOUR_SECOND&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시) 2시간 10분 5초를 더하기&lt;/p&gt;
&lt;pre id=&quot;code_1665461757050&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select date_add(now(), interval '2:10:5' HOUR_SECOND);
// 2022-10-11 12:10:05&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 시간 유형 조합의 경우 디테일한 시간을 추가 혹은 뺄 수 있기 때문에 보다 유용하게 날짜값을 계산할 수 있게 될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;연관 포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[MySQL] date_format 설정 (날짜 포맷 변경)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1665462517020&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;[MySQL] date_format 설정 (날짜 포맷 변경)&quot; data-og-description=&quot;MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/748&quot; data-og-url=&quot;https://needjarvis.tistory.com/748&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dCyQ4N/hyP6zEzKy2/F79besa2QXrT6bX4HG1aBK/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/A2Wqr/hyP6sZJznJ/UibxgvRODTl2rkGyuQiPsK/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/bmFyGZ/hyP6voCWvl/Eso5lrjtDCzBwiRTgEJNh0/img.jpg?width=860&amp;amp;height=573&amp;amp;face=0_0_860_573&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/748&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dCyQ4N/hyP6zEzKy2/F79besa2QXrT6bX4HG1aBK/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/A2Wqr/hyP6sZJznJ/UibxgvRODTl2rkGyuQiPsK/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/bmFyGZ/hyP6voCWvl/Eso5lrjtDCzBwiRTgEJNh0/img.jpg?width=860&amp;amp;height=573&amp;amp;face=0_0_860_573');&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;[MySQL] date_format 설정 (날짜 포맷 변경)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.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;</description>
      <category>빅데이터 및 DB/MySQL</category>
      <category>data_add</category>
      <category>data_sub</category>
      <category>mariadb</category>
      <category>MySQL</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/793</guid>
      <comments>https://needjarvis.tistory.com/793#entry793comment</comments>
      <pubDate>Tue, 11 Oct 2022 13:29:11 +0900</pubDate>
    </item>
    <item>
      <title>키보드 연속으로 눌러질 경우(채터링) 대처법</title>
      <link>https://needjarvis.tistory.com/792</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;집에 컴퓨터와 노트북도 많다보니 키보드도 워낙 많은데 메인으로 사용하고 있는 키보드는 스카이디지털의 NKEY라는 키보드를 사용하고 있습니다. 컴퓨터 덕후들은 많이 아는 키보드고 저 역시 만족하면서 사용 중인데 동일한 키보드를 2개나 구입해서 세컨 컴도 같은 제품으로 사용 중일 정도로 만족하는 제품입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OY5He/btrNB50LtXQ/ekVjIfBlS4mppvTbzHKN10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OY5He/btrNB50LtXQ/ekVjIfBlS4mppvTbzHKN10/img.png&quot; data-alt=&quot;스카이디지탈 NKEY K2-SE 화이트 LED 축교환 매크로 기계식 (갈축)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OY5He/btrNB50LtXQ/ekVjIfBlS4mppvTbzHKN10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOY5He%2FbtrNB50LtXQ%2FekVjIfBlS4mppvTbzHKN10%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;236&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;236&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스카이디지탈 NKEY K2-SE 화이트 LED 축교환 매크로 기계식 (갈축)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6만원 정도의 가격으로 산 가성비 있는 기계식 키보드인데 어느날부턴가 키 하나가 잘 안눌리거나 여러번 눌러지는 현상이 발생했습니다. 이게 저도 모르게 의식을 못하고 있던 것인지 어느날부터 오타가 많이 늘었다 단순히 생각했지만 해당 증상이 심해지기 시작했고, 언젠가부터 오타율이 너무 심하거나 게임을 할 때에도 지장이 발생했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이와 같은 현상을 채터링 현상(Chattering)이라 하는데 키보드가 입력되었을 때 진동으로 인해서 신호가 여러번 들어가는 일종의 잡음과 같은 현상이라 보면 됩니다. 이를 해결하기 위해서는 물리적인 해결부터 소프트웨어적인 해결(펌웨어, 레지스트리, 채터링 방지 프로그램) 등이 존재합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;키보드 청소&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 제 키의 경우 A 키가 늦게 눌리거나 여러번 눌리는 현상입니다. 아래의 영상은 A키를 일정하게 누르는 것을 캡쳐한 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/432453827&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bJ7TCZ/hyPYXTDpmE/3Fy2QPkI20Bfj0sWNMGKn0/img.jpg?width=640&amp;amp;height=360&amp;amp;face=0_0_640_360,https://scrap.kakaocdn.net/dn/PBcWR/hyPY8HBvNA/JcKUxs8joHVSxeKs0o8f30/img.jpg?width=640&amp;amp;height=360&amp;amp;face=0_0_640_360&quot; data-video-width=&quot;640&quot; data-video-height=&quot;360&quot; data-video-origin-width=&quot;640&quot; data-video-origin-height=&quot;360&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-play-service=&quot;daum_tistory&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/432453827?service=daum_tistory&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;a키를 연속으로 누른 경우&lt;/figcaption&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;영상을 보면 알겠지만 중간중간 A키가 눌러지는 것이 늦게 반응이 오거나 2번씩 눌러지는 현상이 발생하였습니다.&amp;nbsp;우선 키보드에 이상이 있으면 첫번째 청소를 하는 것인데 고양이의 털이 키보드로 많이 들어가는 경우가 많아서 털로 인한 문제일 수 있다 판단하여 동봉된 키캡 리무버를 활용하여 주변 키캡을 모두 빼내었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20221003_161417846_01.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;477&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bl5hM8/btrNANMGBvZ/TN0yZ7QTkl12BMkzMkk4H0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bl5hM8/btrNANMGBvZ/TN0yZ7QTkl12BMkzMkk4H0/img.png&quot; data-alt=&quot;키보드 하단에 있는 키캡 리무버&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bl5hM8/btrNANMGBvZ/TN0yZ7QTkl12BMkzMkk4H0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbl5hM8%2FbtrNANMGBvZ%2FTN0yZ7QTkl12BMkzMkk4H0%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;800&quot; height=&quot;477&quot; data-filename=&quot;edited_KakaoTalk_20221003_161417846_01.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;키보드 하단에 있는 키캡 리무버&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20221003_161417846_03.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;859&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dPUEYh/btrNxfiV8DJ/0P0E7eKKih60TM7zR24Buk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dPUEYh/btrNxfiV8DJ/0P0E7eKKih60TM7zR24Buk/img.png&quot; data-alt=&quot;키보드 키캡 분해&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dPUEYh/btrNxfiV8DJ/0P0E7eKKih60TM7zR24Buk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdPUEYh%2FbtrNxfiV8DJ%2F0P0E7eKKih60TM7zR24Buk%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;1440&quot; height=&quot;859&quot; data-filename=&quot;edited_KakaoTalk_20221003_161417846_03.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;859&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;키보드 키캡 분해&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A주변의 키를 모두 분해한 후, 테이프를 이용해서 먼지를 제거하였으며 고양이 털들을 대부분 제거한 후 키캡이 제거된 상태에서 키를 테스트 해보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/432454037&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/hy1qj/hyP0ELFuBj/Wm3Ty1AnBruvCcTmt1fPY0/img.jpg?width=640&amp;amp;height=360&amp;amp;face=0_0_640_360,https://scrap.kakaocdn.net/dn/haeu4/hyP0x6RUss/6w2jbujYPR4H6xIcH7lGG1/img.jpg?width=640&amp;amp;height=360&amp;amp;face=0_0_640_360&quot; data-video-width=&quot;640&quot; data-video-height=&quot;360&quot; data-video-origin-width=&quot;640&quot; data-video-origin-height=&quot;360&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-play-service=&quot;daum_tistory&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/432454037?service=daum_tistory&quot; width=&quot;640&quot; height=&quot;360&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;청소 후 테스트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확실히 두번씩 눌러지는 경우가 체감으로 약 반 정도 줄어들었습니다만, 아직도 간헐적으로 발생하는 것이 보이다보니 (지금 이 포스팅을 쓰는 중에도 확실히 발생은 하고 있습니다) 2번째 해결 방법으로 전환해 보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;키보드 설정&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나 키보드에 이런 문제를 막기 위한 설정이 있을까 싶어서, 키보드 설정을 보니 반복키 설정이 있었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1029&quot; data-origin-height=&quot;582&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vSgmP/btrNwEb6NgY/kbDFdgftJL8AjbDcxnGhwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vSgmP/btrNwEb6NgY/kbDFdgftJL8AjbDcxnGhwK/img.png&quot; data-alt=&quot;필터 키&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vSgmP/btrNwEb6NgY/kbDFdgftJL8AjbDcxnGhwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvSgmP%2FbtrNwEb6NgY%2FkbDFdgftJL8AjbDcxnGhwK%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;1029&quot; height=&quot;582&quot; data-origin-width=&quot;1029&quot; data-origin-height=&quot;582&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;필터 키&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 설정이 끔으로 되어 있다보니, 켬으로 설정을 변경 한 후 System Tray아이콘을 보니 새로운 아이콘이 생겼습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;160&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n25pK/btrNxeEorvY/JkASVkkhVdfBS26D0rAoqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n25pK/btrNxeEorvY/JkASVkkhVdfBS26D0rAoqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n25pK/btrNxeEorvY/JkASVkkhVdfBS26D0rAoqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn25pK%2FbtrNxeEorvY%2FJkASVkkhVdfBS26D0rAoqk%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;160&quot; height=&quot;120&quot; data-origin-width=&quot;160&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신규로 생성된 아이콘을 실행하니 필터키 설정이라는 아이콘이 생성되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;634&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfQ4s0/btrNwGnwZwY/AM8TzmfM1v8smFPijAlyW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfQ4s0/btrNwGnwZwY/AM8TzmfM1v8smFPijAlyW0/img.png&quot; data-alt=&quot;필터 키 설정 창&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfQ4s0/btrNwGnwZwY/AM8TzmfM1v8smFPijAlyW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfQ4s0%2FbtrNwGnwZwY%2FAM8TzmfM1v8smFPijAlyW0%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;1125&quot; height=&quot;634&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;634&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;필터 키 설정 창&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 해당 내용을 보면 필터 옵션의 반복 키 및 느린 키 켜기 라는 옵션이 있는데 해당 박스를 체크한 후 활성화 된 &quot;반복 키 및 느린 키 설정&quot;을 클릭하면 설정 창으로 넘어가게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo1fOG/btrNB5NauGD/JtOEEfWHKdT4OVjnwCcXr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo1fOG/btrNB5NauGD/JtOEEfWHKdT4OVjnwCcXr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo1fOG/btrNB5NauGD/JtOEEfWHKdT4OVjnwCcXr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo1fOG%2FbtrNB5NauGD%2FJtOEEfWHKdT4OVjnwCcXr1%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;702&quot; height=&quot;437&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 설정 창을 보면 인식 속도 자체가 빠르지 않습니다. 반복키는 막을지 언정 빠르게 타이핑하는데에 문제가 발생할 수 있다 생각되어(저는 한글 타이핑이 약 800타, 영문의 경우도 400타 정도의 속도가 나오기 때문에 이것도 리스크가 큽니다) 결국 구글링을 추가로 해보니 레지스트리로 설정을 하는 방법이 있었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레지스트리를 설정하기 위해선 검색창에 &quot;레지스트리 편집기&quot; 혹은 regedit을 입력합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;758&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJSS0S/btrNwEb7lJ6/knRSV97mIQuutDB8zw0ujK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJSS0S/btrNwEb7lJ6/knRSV97mIQuutDB8zw0ujK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJSS0S/btrNwEb7lJ6/knRSV97mIQuutDB8zw0ujK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJSS0S%2FbtrNwEb7lJ6%2FknRSV97mIQuutDB8zw0ujK%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;758&quot; height=&quot;412&quot; data-origin-width=&quot;758&quot; data-origin-height=&quot;412&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;그리고 HKEY_CURRENT_USER &amp;gt; Control Panel &amp;gt; Accessibility &amp;gt; Keyboard Response에 들어가면 위와 같이 설정값들이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 설정을 보자면, 대부분 값이 0으로 되어있는 것을 알 수 있습니다. 즉 키보드에서 입력된 그대로를 전달한다라고 보면 될 것이죠. 우리가 필요한 건 짧게 반복되는 것을 막는 것이기 때문에 필요한 설정만 보면 되는데 일단 한가지 바로 BounceTime만 보면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 값은 하나의 값이 입력 된 후 같은 값이 특정 시간안에 연속으로 발생할 경우 무시를 하는 것이기 때문에 우리가 원하는 채터링을 소프트웨어적인 방법으로 방지할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;443&quot; data-origin-height=&quot;190&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1fW6I/btrNEwDEDN8/vMmO9k53DOKS8OJyOeJ061/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1fW6I/btrNEwDEDN8/vMmO9k53DOKS8OJyOeJ061/img.png&quot; data-alt=&quot;50ms로 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1fW6I/btrNEwDEDN8/vMmO9k53DOKS8OJyOeJ061/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1fW6I%2FbtrNEwDEDN8%2FvMmO9k53DOKS8OJyOeJ061%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;443&quot; height=&quot;190&quot; data-origin-width=&quot;443&quot; data-origin-height=&quot;190&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;50ms로 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;값 데이터의 경우 자신의 타이핑 속도 등을 고려해서 하면 되며 값은 ms를 기준으로 합니다. 1초는 1000ms이기 때문에 자신이 생각하는 적절한 ms를 입력하면 좋을 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dz6mhq/btrNwCSTBLX/c6Gu2HWYTPdSQkPL58Muq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dz6mhq/btrNwCSTBLX/c6Gu2HWYTPdSQkPL58Muq0/img.png&quot; data-alt=&quot;최종 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dz6mhq/btrNwCSTBLX/c6Gu2HWYTPdSQkPL58Muq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdz6mhq%2FbtrNwCSTBLX%2Fc6Gu2HWYTPdSQkPL58Muq0%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;514&quot; height=&quot;242&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;최종 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레지스트리를 수정했다면 최종적으로 재부팅을 통해서 반영합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;알코올로 제거&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 외국에서는 어떻게 제거하는지 궁금해서 유튜브로 검색을 하여 보았는데 알코올로 제거를 하는 영상이 있었습니다. 집에 알코올이 없다보니 이 방법은 아직 시도하지 않는 방법인데 알코올로 채터링 문제가 해결이 가능 한 것으로 보입니단.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 미세하게나마 채터링 증상이 있기 때문에 한번 기회가 된다면 시도를 하고 싶은데 알코올로 제거하는 영상은 아래의 유튜브 영상을 참고하면 될 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=OBCrspzAIG4&quot;&gt;https://www.youtube.com/watch?v=OBCrspzAIG4&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=OBCrspzAIG4&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/Ldr79/hyPY6XmtTJ/MVXqD2ZBkHqJy9OuKk4VrK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=882_154_1124_418&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/OBCrspzAIG4&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 해당 영상의 댓글들을 보니 많은 분들이 동일한 방식으로 해결을 했다는 리플들이 많은 것을 보면, 정말 효과가 직빵인 것 같네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1304&quot; data-origin-height=&quot;737&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFPqs3/btrNwFWw6Ia/iS9CmXXgjCaKxYYOzyHtuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFPqs3/btrNwFWw6Ia/iS9CmXXgjCaKxYYOzyHtuK/img.png&quot; data-alt=&quot;해당 영상의 댓글들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFPqs3/btrNwFWw6Ia/iS9CmXXgjCaKxYYOzyHtuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFPqs3%2FbtrNwFWw6Ia%2FiS9CmXXgjCaKxYYOzyHtuK%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;1304&quot; height=&quot;737&quot; data-origin-width=&quot;1304&quot; data-origin-height=&quot;737&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;해당 영상의 댓글들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 영상에서 사용한 알코올은 이소프로필 알코올로 소독을 하거나 전자제품을 소독할 때에도 사용하는 알코올입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Tg4iB/btrNxeRTLxA/cpawwWh3Qv4waD3h6QMZ80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Tg4iB/btrNxeRTLxA/cpawwWh3Qv4waD3h6QMZ80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Tg4iB/btrNxeRTLxA/cpawwWh3Qv4waD3h6QMZ80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTg4iB%2FbtrNxeRTLxA%2FcpawwWh3Qv4waD3h6QMZ80%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;339&quot; height=&quot;104&quot; data-origin-width=&quot;339&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;497&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3SFfB/btrNDVcuBxn/0qQ8VqaUR5KoPnKOR7zgY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3SFfB/btrNDVcuBxn/0qQ8VqaUR5KoPnKOR7zgY0/img.png&quot; data-alt=&quot;순도 99% 이소프로필 알콜&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3SFfB/btrNDVcuBxn/0qQ8VqaUR5KoPnKOR7zgY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3SFfB%2FbtrNDVcuBxn%2F0qQ8VqaUR5KoPnKOR7zgY0%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;558&quot; height=&quot;497&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;497&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;순도 99% 이소프로필 알콜&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠팡에서도 이소프로필 99% 알코올로 검색하면 많이 나오기는 합니다만 위험할 수 있는 제품이니 조심해서 사용하는 것이 좋겠습니다. 그리고 잘못할 경우 전자제품이 망가질 수도 있다고 하니 사망선고 직전의 키보드일때만 사용하는 것이 좋을 것 같습니다.&amp;nbsp;현재 제 케이스의 경우 키보드가 예전보다 많이 완화돼서 일단은 그냥 써볼 생각입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/IT Tip</category>
      <category>Chattering</category>
      <category>기계식키보드</category>
      <category>이중입력</category>
      <category>채터링</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/792</guid>
      <comments>https://needjarvis.tistory.com/792#entry792comment</comments>
      <pubDate>Mon, 3 Oct 2022 17:36:52 +0900</pubDate>
    </item>
    <item>
      <title>갤럭시 z플립4 사용 후기(장점) 및 비추천 대상</title>
      <link>https://needjarvis.tistory.com/791</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;저는 10년동안 안드로이드 폰 1개, 아이폰 1개를 꾸준히 2개씩 사용 중이고 최근에는 갤럭시 노트10, 아이폰 SE2를 조합해서 사용 중이었습니다. 노트10이 2년을 넘겨서, 휴대폰의 기기변경을 하려고 아이폰 14와 갤럭시 폴드 or z플립 시리즈 중 고민을 하다가 z플립4를 고르게 되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 z플립4를 고르게 된 이유는 어느새부턴가 아이폰에 대한 감정이 점차 사라지는 모습을 느끼게 되었고, 아이폰의 초창기 모습보다 삼성전자 갤럭시(Galaxy)의 끊임없는 도전에 박수를 보내고 싶은 것도 강했고 현재 환율을 고려했을 때 아이폰의 매력이 상당히 떨어지는 것이 크기도 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP4vuR/btrNwo0Adj6/hbYzT49IPWzBXrE3SckHIk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP4vuR/btrNwo0Adj6/hbYzT49IPWzBXrE3SckHIk/img.jpg&quot; data-alt=&quot;아이폰의 M자 탈모를 볼때마다 정나미가 떨어질 정도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP4vuR/btrNwo0Adj6/hbYzT49IPWzBXrE3SckHIk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP4vuR%2FbtrNwo0Adj6%2FhbYzT49IPWzBXrE3SckHIk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;660&quot; height=&quot;388&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아이폰의 M자 탈모를 볼때마다 정나미가 떨어질 정도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서는 가격대 등을 떠나서 z플립4의 장점에 대해서 알려드리고, 그리고 사용해야 할 대상(즉 대상이 아니면 사용하는 것을 비추천)에 대해서 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;z플립4 장점&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;휴대성과 이동성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 z플립4의 가장 큰 장점은 손으로 들고 이동을 할 때, 꽉 쥐어진 상태로 이동을 할 수 있다는 점입니다. 바(Bar) 형태의 폰들보다 접힌 플립의 그립감이 훨씬 좋고 이동하기에 용이합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;바형태의 그립&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_KakaoTalk_20221001_174828356.jpg&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;439&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KVVIp/btrNvyQmwFf/mABfriYcMfYgXABgmE1MU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KVVIp/btrNvyQmwFf/mABfriYcMfYgXABgmE1MU0/img.png&quot; data-alt=&quot;바형의 그립&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KVVIp/btrNvyQmwFf/mABfriYcMfYgXABgmE1MU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKVVIp%2FbtrNvyQmwFf%2FmABfriYcMfYgXABgmE1MU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;439&quot; data-filename=&quot;edited_edited_KakaoTalk_20221001_174828356.jpg&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;439&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;바형의 그립&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바형태의 폰들은 옆을 손으로 잡고 이동을 해야 하며, 폰 액정에 자잘하게 여러가지가 묻혀질 수 있습니다만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;갤럭시z플립 그립&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;z플립4_그립.jpg&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;335&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qiuZU/btrNzJbxSx9/ouPmKtQopeAqj76IaQyLb0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qiuZU/btrNzJbxSx9/ouPmKtQopeAqj76IaQyLb0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qiuZU/btrNzJbxSx9/ouPmKtQopeAqj76IaQyLb0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqiuZU%2FbtrNzJbxSx9%2FouPmKtQopeAqj76IaQyLb0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;892&quot; height=&quot;335&quot; data-filename=&quot;z플립4_그립.jpg&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;335&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;z플립은 이렇게 액정을 접은 상태로 다닐 수 있기 때문에 액정에 여러가지 묻혀지는 것이 적어지고 한손에 꽉 쥐어질 수 있기 때문에 휴대성과 이동성이 매우 용이해집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;알림에 대한 인지&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 오히려 바 형태일 때에는 여러가지 알림이나 이런 것들을 인지하기 더 힘들었지만 z플립의 경우 닫힌 상태에서는 최대한 알림을 보려고 하기 때문에 어떤 메세지가 왔는지 파악하기가 수월 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;z플립_알림보기.gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciaYfn/btrNzEVD3Ip/ir5pICKC0i3WGjhlExk4B0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciaYfn/btrNzEVD3Ip/ir5pICKC0i3WGjhlExk4B0/img.gif&quot; data-alt=&quot;z플립 알림보기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciaYfn/btrNzEVD3Ip/ir5pICKC0i3WGjhlExk4B0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/ciaYfn/btrNzEVD3Ip/ir5pICKC0i3WGjhlExk4B0/img.gif&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;600&quot; height=&quot;338&quot; data-filename=&quot;z플립_알림보기.gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;z플립 알림보기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 폰의 경우 알림을 보기 위해서도 한번 휴대폰의 잠금을 풀어야 하는 액션이 필요하지만, z플립은 그런 거 없이 그자리에서 알림을 확인할 수 있기 때문에 수고가 덜한 느낌이고, 플립 앞면 액정으로 알림을 보는데 문제가 전혀 없었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;원하면 바 형태로&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플립 방식이 귀찮으면 그냥 바(Bar) 방식으로 사용해도 됩니다. 액정을 닫아서 사용한 것도 본인의 선택이고 그냥 바로 사용하고 싶으면 마치 갤럭시 노트를 쓰는 것과 같은 방식으로 사용이 가능합니다. 그러니 플립이 귀찮다 말하는 것이 솔직히 이해가 되지 않네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;삼성페이&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 갤럭시 폰들의 장점이겠지만, 누가 뭐라고 해도 삼성페이 입니다. 게다가 플립모드 일때 삼성페이 인지가 훨씬 잘 되는 느낌이 있어서 확실히 전에 쓰던 노트10보다 삼성페이 인식이 훨씬 빠릅니다. z플립4는 플립모드 일때에도 삼성페이( 이 기능은 z플립3보다 추가되었습니다)를 사용할 수 있어서 정말 좋습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;시원한 세로 크기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 간혹 세로 크기가 중요한 앱들이 종종 있습니다. 예를 들어 쇼츠를 본다거나 세로 크기가 기니깐 앱 2개를 실행해서 상단에는 영상을 보거나, 하단에는 네이버나 다른 뉴스 기사를 볼 수 있는 장점이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;522&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qNwtQ/btrNwkKCQy2/okFCroPNSZsaPasmgRdVF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qNwtQ/btrNwkKCQy2/okFCroPNSZsaPasmgRdVF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qNwtQ/btrNwkKCQy2/okFCroPNSZsaPasmgRdVF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqNwtQ%2FbtrNwkKCQy2%2FokFCroPNSZsaPasmgRdVF1%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;1059&quot; height=&quot;522&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 갤럭시의 경우 사용자가 원한다면 다 들어줄게~ 라는 이미지가 강하다보니 내가 원하는 방식으로 앱 형태의 크기를 조절하고 자유롭게 이동이 가능해서 상당히 유용합니다. 그런데 이게 액정의 길이가 길다보니 여러 개의 앱을 한화면에서 사용하는 분할 윈도우, 멀티 윈도우에 정말 유용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;최적화된 셀카&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Z플립의 광고를 보면 셀카에 대한 설명이 많이 나옵니다 그만큼 셀카를 찍기에 정말 좋다는 건데요. 저는 사실 셀카를 찍지 않기 때문에 이 기능에 대해서는 체감이 되지 않으나, 닫힌 상태에서도 쉽게 셀카를 찍을 수 있는 퀵샷 기능이라든지&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;563&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zku1D/btrNvwSA5Kt/RbfEUvW84aVuOuuqzK9dVK/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zku1D/btrNvwSA5Kt/RbfEUvW84aVuOuuqzK9dVK/img.gif&quot; data-alt=&quot;https://news.samsung.com/kr/체험기-가지각색-갤럭시-z-플립4-활용법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zku1D/btrNvwSA5Kt/RbfEUvW84aVuOuuqzK9dVK/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/zku1D/btrNvwSA5Kt/RbfEUvW84aVuOuuqzK9dVK/img.gif&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;1000&quot; height=&quot;563&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;563&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://news.samsung.com/kr/체험기-가지각색-갤럭시-z-플립4-활용법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각도를 조절해서 다리가 길어보이게끔 사진을 찍을 수 있다든지의 장점이 있습니다. 갤럭시z플립4가 왜 여성들에게 그토록 인기가 많은지 이러한 기능들을 보면 알 수 있는 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;563&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5QVDs/btrNvPqRf28/w3287gYCe67cfWaA8aDKQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5QVDs/btrNvPqRf28/w3287gYCe67cfWaA8aDKQ0/img.png&quot; data-alt=&quot;https://news.samsung.com/kr/체험기-가지각색-갤럭시-z-플립4-활용법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5QVDs/btrNvPqRf28/w3287gYCe67cfWaA8aDKQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5QVDs%2FbtrNvPqRf28%2Fw3287gYCe67cfWaA8aDKQ0%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;1000&quot; height=&quot;563&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;563&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://news.samsung.com/kr/체험기-가지각색-갤럭시-z-플립4-활용법&lt;/figcaption&gt;
&lt;/figure&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;b&gt;누워서 영상 보기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 ASMR을 듣고 자는 버릇이 있습니다. 불면증이 심한데 빗소리를 들으면 잠이 매우 잘 와서 아이패드를 세운 상태로 빗소리 ASMR을 틀고 자곤 했는데요. 갤럭시z 플립4를 쓰면서 휴대폰으로 영상을 틀고 자는 버릇이 생겼습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비록 아이패드에 비해 작은 액정이지만 영상을 볼 수 있고 세워놓고 충전을 할 수 있기 때문에 아이폰에서는 할 수 없는 유용한 기능인 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;그립톡을 붙이고 무선 충전&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 폰은 불가능하다는 그립톡과 함께 무선 충전이 되는 유일한 제품이 바로 갤럭시 z플립4입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cklbDb/btrNzKn0K1R/WMOSMWZ6goDIUZg0jd2rhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cklbDb/btrNzKn0K1R/WMOSMWZ6goDIUZg0jd2rhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cklbDb/btrNzKn0K1R/WMOSMWZ6goDIUZg0jd2rhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcklbDb%2FbtrNzKn0K1R%2FWMOSMWZ6goDIUZg0jd2rhK%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;505&quot; height=&quot;270&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플립의 상단 뒷부분에 그립톡을 붙이면 충전하는데 지장이 전혀 없습니다. 충전을 할 때 아랫 부분만 충전기에 닿으면 되기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20221001_183856992.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1081&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7xTJi/btrNzJ3HMWF/mQGxeYk8fKwzrbsWybnhuK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7xTJi/btrNzJ3HMWF/mQGxeYk8fKwzrbsWybnhuK/img.jpg&quot; data-alt=&quot;무선 충전&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7xTJi/btrNzJ3HMWF/mQGxeYk8fKwzrbsWybnhuK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7xTJi%2FbtrNzJ3HMWF%2FmQGxeYk8fKwzrbsWybnhuK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1081&quot; data-filename=&quot;KakaoTalk_20221001_183856992.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1081&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;무선 충전&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;거치대 + 충전까지&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무선 충전 방식을 사용하지 않더라도 거치대를 끼면서 충전을 하는 느낌을 자체적으로 제공해 줄 수 있는데요. 바로 휴대폰을 접은 상태로 세워놓고, 충전기에 연결을 하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;충전중_사용.gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qddng/btrNu7MhN5M/iW7IGmL6htujf3ZpGfxrG1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qddng/btrNu7MhN5M/iW7IGmL6htujf3ZpGfxrG1/img.gif&quot; data-alt=&quot;충전중 유튜브 뮤직을 자유롭게 듣는 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qddng/btrNu7MhN5M/iW7IGmL6htujf3ZpGfxrG1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/qddng/btrNu7MhN5M/iW7IGmL6htujf3ZpGfxrG1/img.gif&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;600&quot; height=&quot;338&quot; data-filename=&quot;충전중_사용.gif&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;충전중 유튜브 뮤직을 자유롭게 듣는 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 회사에서 이렇게 켜놓고 유튜브 뮤직을 들으면서 일을 하다보니 정말 너무 편리하다는 생각이 강합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Z플립을 사용하면 안되는 대상&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 간혹 인터넷에서 Z플립 자체를 쓰면 안되는 사람들이 Z플립을 쓰는 것을 많이 보는데요. 어떤 사용자가 Z플립에 특화되지 않았는지 보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;게임 매니아&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Z플립4가 최신 폰이라고 게임에 좋은 폰이라 생각하시는 분이 있습니다. 게임은 계속 Bar를 열어놓고 사용을 하는 것이기 때문에 Z플립의 장점이 반감이 되며 Z플립이 갤럭시 시리즈보다 사양이 낮기 때문에 게임을 많이 하는 사람들이 사용하기에는 적절치 않습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;279&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baQMOT/btrNAyHE7LN/MW7lGqlwyOncsi9tuvsRKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baQMOT/btrNAyHE7LN/MW7lGqlwyOncsi9tuvsRKk/img.png&quot; data-alt=&quot;8GB라는 비교적 낮은 RAM&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baQMOT/btrNAyHE7LN/MW7lGqlwyOncsi9tuvsRKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaQMOT%2FbtrNAyHE7LN%2FMW7lGqlwyOncsi9tuvsRKk%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;790&quot; height=&quot;279&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;279&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;8GB라는 비교적 낮은 RAM&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 이 폰과 바꾸기 전인 갤럭시 노트10의 경우 오히려 z플립4보다 메모리가 높은데요. z플립의 사용층이 어떤지 잘 보여주는 스펙이라 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;314&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKIKSc/btrNxdEeTUt/15ViNJlrBruZAXiwZtA8Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKIKSc/btrNxdEeTUt/15ViNJlrBruZAXiwZtA8Gk/img.png&quot; data-alt=&quot;갤럭시 노트10&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKIKSc/btrNxdEeTUt/15ViNJlrBruZAXiwZtA8Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKIKSc%2FbtrNxdEeTUt%2F15ViNJlrBruZAXiwZtA8Gk%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;714&quot; height=&quot;314&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;314&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;갤럭시 노트10&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 사양을 많이 타지 않고, 가끔씩 들어와서 명령을 던지고 또 한참 안쓰는 방식의 시뮬레이션 형태라면 상관 없겠지만 고사양의 집중을 하는 게임과는 상극이라 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;24시간 쉴새없이 챗하는 사람&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉴새없이 카톡으로 대화를 하고, 휴대폰을 계속 쳐다보는 사용자는 당연히 z플립과 상극입니다. 챗을 하려면 플립을 열어야 하고 플립의 장점이 사라지게 되어 있기 때문인데요. 이런 사용자는 일반 갤럭시나 아이폰을 사용하는 것이 훨씬 좋다고 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 종합을 해보자면 Z플립4의 경우 헤비한 유저들은 사는 것을 좀 피할 필요가 있습니다. 헤비하지 않으면 휴대성부터 시작해서 다양한 장점이 있으며 무엇보다 정말 이쁩니다. 그리고 Z플립의 다양한 기능들을 숙지하셔서 최대한 많이 사용하는 것이 좋을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 Z플립을 추천하지 않는 가장 큰 이유중 하나로 배터리를 드는 분들 많았는데요. 저는 배터리에 대해서 크게 불편한 점을 느끼지 못했습니다. 일단 충전 자체가 빨리 되었으며, 충전을 하는데 불편함이 없고 게임 등을 하지 않는 헤비 유저가 아니기 때문에 배터리에 대한 압박이 별로 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러니 내가 하루에 배터리 때문에 고생을 하는 헤비유저라면 살 경우 힘들어 하실 수 있으니 참고하면 좋을 것 같네요.&lt;/p&gt;</description>
      <category>IT/IT 제품리뷰</category>
      <category>GALAXY</category>
      <category>Z플립</category>
      <category>Z플립4</category>
      <category>갤럭시</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/791</guid>
      <comments>https://needjarvis.tistory.com/791#entry791comment</comments>
      <pubDate>Sat, 1 Oct 2022 18:58:55 +0900</pubDate>
    </item>
    <item>
      <title>[데이터분석] 파이썬(Python) 산점도(Scatter) 사용하기</title>
      <link>https://needjarvis.tistory.com/790</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;산점도(Scatter)는 공간 데이터에서 분포를 알아야 할 때 유용하게 사용될 수 있다. 대표적으로 지리적 데이터인 부동산 데이터로 전국에 있는 인구 분포나 지역별 집값 등을 알기에도 유용하다. 본 포스팅은 미국의 지리 데이터세트인 캘리포니아 주택 가격 Data Set을 사용하여 산점도를 구하는 시각화(Visualization) 기법을 알아보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;파이썬_산점도.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjrQyT/btrM36ZjHFk/O28RYu96MsKYySMpcFA3kK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjrQyT/btrM36ZjHFk/O28RYu96MsKYySMpcFA3kK/img.jpg&quot; data-alt=&quot;[데이터분석] 파이썬(Python) 산점도(Scatter) 사용하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjrQyT/btrM36ZjHFk/O28RYu96MsKYySMpcFA3kK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjrQyT%2FbtrM36ZjHFk%2FO28RYu96MsKYySMpcFA3kK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;450&quot; data-filename=&quot;파이썬_산점도.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[데이터분석] 파이썬(Python) 산점도(Scatter) 사용하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;데이터 준비&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Housing 데이터 로드&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import os
import tarfile
import urllib.request as urllib
import pandas as pd

data_url = &quot;https://raw.githubusercontent.com/ageron/handson-ml2/master/datasets/housing/housing.tgz&quot;
data_path = os.path.join(&quot;datasets&quot;, &quot;housing&quot;)

# 외부 url을 호출하여, housing data를 저장한다
def fetch_housing_data():
    os.makedirs(data_path, exist_ok=True)
    tgz_path = os.path.join(data_path, &quot;housing.tgz&quot;)

    urllib.urlretrieve(data_url, tgz_path)
    housing_tgz = tarfile.open(tgz_path)
    housing_tgz.extractall(path=data_path)
    housing_tgz.close()


# housing 데이터를 판다스 형태로 읽는다
def load_housing_data():
    csv_path = os.path.join(data_path, &quot;housing.csv&quot;)
    return pd.read_csv(csv_path)


fetch_housing_data()
housing = load_housing_data()

print(housing.info())
print(housing.head())&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;&lt;b&gt;중간 데이터 결과&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1664125225654&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;class 'pandas.core.frame.DataFrame'&amp;gt;
RangeIndex: 20640 entries, 0 to 20639
Data columns (total 10 columns):
 #   Column              Non-Null Count  Dtype  
---  ------              --------------  -----  
 0   longitude           20640 non-null  float64
 1   latitude            20640 non-null  float64
 2   housing_median_age  20640 non-null  float64
 3   total_rooms         20640 non-null  float64
 4   total_bedrooms      20433 non-null  float64
 5   population          20640 non-null  float64
 6   households          20640 non-null  float64
 7   median_income       20640 non-null  float64
 8   median_house_value  20640 non-null  float64
 9   ocean_proximity     20640 non-null  object 
dtypes: float64(9), object(1)
memory usage: 1.6+ MB
None
   longitude  latitude  ...  median_house_value  ocean_proximity
0    -122.23     37.88  ...            452600.0         NEAR BAY
1    -122.22     37.86  ...            358500.0         NEAR BAY
2    -122.24     37.85  ...            352100.0         NEAR BAY
3    -122.25     37.85  ...            341300.0         NEAR BAY
4    -122.25     37.85  ...            342200.0         NEAR BAY

[5 rows x 10 columns]&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;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;산점도(Scatter) 구하기&lt;/b&gt;&lt;/h2&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;# 산점도 시작
import matplotlib.pyplot as plt

housing.plot(kind='scatter', x='longitude', y='latitude')
plt.show()&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;판다스로 읽은 housing 데이터셋에 scatter를 사용한다고 설정을 하고 x 좌표에는 경도(longitude) 데이터를 사용하고 y 좌표에는 위도(latitude)를 사용한다고 세팅한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;scatter_01.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9Ru8C/btrMZEoRjVm/vh3QNn8BIHvyFFDGrP1B7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9Ru8C/btrMZEoRjVm/vh3QNn8BIHvyFFDGrP1B7K/img.png&quot; data-alt=&quot;산점도 출력 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9Ru8C/btrMZEoRjVm/vh3QNn8BIHvyFFDGrP1B7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9Ru8C%2FbtrMZEoRjVm%2Fvh3QNn8BIHvyFFDGrP1B7K%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;640&quot; height=&quot;480&quot; data-filename=&quot;scatter_01.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;480&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;산점도 출력 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 산점도를 보면 캘리포니아의 모습이 나타나게 된 것을 알 수 있다. 아래 지도는 실제 캘리포니아 지도이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;910&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IapjY/btrMUFbNKH0/kgq4KIOURVJOoyUkB6EFW1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IapjY/btrMUFbNKH0/kgq4KIOURVJOoyUkB6EFW1/img.jpg&quot; data-alt=&quot;캘리포니아 지도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IapjY/btrMUFbNKH0/kgq4KIOURVJOoyUkB6EFW1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIapjY%2FbtrMUFbNKH0%2Fkgq4KIOURVJOoyUkB6EFW1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;910&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;910&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;캘리포니아 지도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;캘리포니아의 지도 모습처럼 위도, 경도의 데이터를 뿌렸지만 현재 데이터로는 데이터 분포만 알 수 있고, 점이 모두 진하기 때문에 밀집에 대해서 알기 힘이 들 수 있다. 이를 위해 색상에 대한 투명도를 설정하여 밀집이 심한 구역과 덜 심한 구역을 알 수 있게 alpha 옵션을 추가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;투명도로 밀집 시각화&lt;/b&gt;&lt;/h2&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;housing.plot(kind='scatter', x='longitude', y='latitude', alpha=0.1)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_alpha_옵션.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k0Rvx/btrM4RVikaB/0p3r7lmHzOkMFgogo69DNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k0Rvx/btrM4RVikaB/0p3r7lmHzOkMFgogo69DNk/img.png&quot; data-alt=&quot;Alpha 0.1 (좌), Alpha 0.5 (우)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k0Rvx/btrM4RVikaB/0p3r7lmHzOkMFgogo69DNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk0Rvx%2FbtrM4RVikaB%2F0p3r7lmHzOkMFgogo69DNk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;450&quot; data-filename=&quot;edited_alpha_옵션.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Alpha 0.1 (좌), Alpha 0.5 (우)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;alpha의 값이 커질수록 더욱 짙은 점이 나타나게 되는데 데이터의 구분이 힘들어지기 힘들기 때문에 alpha를 0.1로 한다. 아래는 alpha 0.1과 0.5의 비교이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;색상으로 가격 파악&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1단계로는 단순히 동일한 크기의 점을 이용하여 분포를 알 수 있었고, 2단계로 투명도를 적용하여 밀집이 심한 곳에 대해서는 좀 더 진한 색상이 나오게 하였다. 이 데이터만으로 한 눈에 어느 지역에 사람들이 많이 거주하는지 알게 되었지만, 한가지 집값까지는 알기 힘들다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 밀집 지역이 집값과 상관관계가 있을지 모르지만, 다른 인사이트가 나올 수 있기 때문에 주택 가격을 색상으로 출력해보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;housing.plot(kind='scatter', x='longitude', y='latitude', alpha=0.1,
            s=housing['population']/100, label='population', figsize=(10,7),
             c='median_house_value', cmap=plt.get_cmap('jet'), colorbar=True)&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;&lt;b&gt;최종 옵션 설명&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;옵션&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 34.0117%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 34.0117%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;비고&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;kind&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;차트의 종류&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;x&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;x 좌표 값&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;y&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;y 좌표 값&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;alpha&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;산점도의 투명화&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;s&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;값의 크기에 따른 원의 크기&lt;/td&gt;
&lt;td&gt;인구를 원의 크기로 설정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;label&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;그래프 제목&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;figsize&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;산점도의 가로, 세로 크기&lt;/td&gt;
&lt;td&gt;가로 10, 세로 7의 지도 크기&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;c&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;색상&lt;/td&gt;
&lt;td&gt;여기서는 가격으로 색상&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; height: 17px; text-align: center;&quot;&gt;&lt;b&gt;cmap&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;컬러맵&lt;/td&gt;
&lt;td&gt;jet라는 컬러맵 사용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 31.9767%; text-align: center;&quot;&gt;&lt;b&gt;colorbar&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;컬러바&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 결과로 나온 그림을 보면 해안가에 가까울 수록 가격(붉은색에 가까움)이 오르는 것을 알 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_캘리포니아_가격.png&quot; data-origin-width=&quot;842&quot; data-origin-height=&quot;597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bynBKn/btrM0oMX30b/7i68jrfUL3XDGQtNkN1gak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bynBKn/btrM0oMX30b/7i68jrfUL3XDGQtNkN1gak/img.png&quot; data-alt=&quot;캘리포니아 지역의 인구 밀집과 부동산 가격&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bynBKn/btrM0oMX30b/7i68jrfUL3XDGQtNkN1gak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbynBKn%2FbtrM0oMX30b%2F7i68jrfUL3XDGQtNkN1gak%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;842&quot; height=&quot;597&quot; data-filename=&quot;edited_캘리포니아_가격.png&quot; data-origin-width=&quot;842&quot; data-origin-height=&quot;597&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;캘리포니아 지역의 인구 밀집과 부동산 가격&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 산점도로 데이터를 설정하게 되면, 캘리포니아 지역의 경우 해안가에 가까울수록 가격이 비싸다는 것을 알 수 있으며 어느 지역에 인구가 밀집되어 있는지 한눈에 쉽게 파악할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;연관 포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/707&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Visualization] Python 히스토그램(histogram) 사용하기&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1664127469066&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;[Visualization] Python 히스토그램(histogram) 사용하기&quot; data-og-description=&quot;데이터 분석을 해야 하거나 할 줄 아는 사람이라면 처음에 데이터의 형태를 파악해야 할텐데 히스토그램(Histogram)은 데이터의 분포도를 볼 때 매우 유용한 통계 시각화 기법이다. 원래 통계 기법&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/707&quot; data-og-url=&quot;https://needjarvis.tistory.com/707&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/buZKtl/hyPT0W45jP/u2WxlsP2zJN46bnfRAV0C0/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/c1pegQ/hyPVmK0JP2/C2GRMo4GTlMRVberoW3af0/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/xmWvC/hyPT0itU5c/tbpqHkxSRybUoMUU8imP9K/img.png?width=1920&amp;amp;height=963&amp;amp;face=0_0_1920_963&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/707&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/707&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/buZKtl/hyPT0W45jP/u2WxlsP2zJN46bnfRAV0C0/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/c1pegQ/hyPVmK0JP2/C2GRMo4GTlMRVberoW3af0/img.png?width=800&amp;amp;height=401&amp;amp;face=0_0_800_401,https://scrap.kakaocdn.net/dn/xmWvC/hyPT0itU5c/tbpqHkxSRybUoMUU8imP9K/img.png?width=1920&amp;amp;height=963&amp;amp;face=0_0_1920_963');&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;[Visualization] Python 히스토그램(histogram) 사용하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;데이터 분석을 해야 하거나 할 줄 아는 사람이라면 처음에 데이터의 형태를 파악해야 할텐데 히스토그램(Histogram)은 데이터의 분포도를 볼 때 매우 유용한 통계 시각화 기법이다. 원래 통계 기법&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.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;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] matplotlib - &lt;a href=&quot;https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.plot.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;matplotlib.pyplot.plot&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] Hands-On Machine Learning with Scikit-learn, Keras &amp;amp; TensorFlow&lt;/p&gt;</description>
      <category>인공지능 및 데이터과학/데이터분석 &amp;amp; 통계</category>
      <category>scatter</category>
      <category>Visualization</category>
      <category>그래프</category>
      <category>산점도</category>
      <category>시각화</category>
      <category>파이썬</category>
      <category>판다스</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/790</guid>
      <comments>https://needjarvis.tistory.com/790#entry790comment</comments>
      <pubDate>Mon, 26 Sep 2022 02:41:41 +0900</pubDate>
    </item>
    <item>
      <title>한성컴퓨터, 32인치 1500R 커브드 게이밍 리얼 75 모니터, TFG32F07V 조립 및 2달 사용후기</title>
      <link>https://needjarvis.tistory.com/789</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;나에게 한성컴퓨터란 맥북과 비슷한 디자인을 만들어서 일명 인민맥북을 만들어내는 업체 그 이상 그 이하도 아니었다.&amp;nbsp;맥북과 같은 디자인으로 가성비 있는 제품을 만들어내는 업체지만, 나는 이런 류의 제품들을 좋아하지 않기 때문이기도 하고 맥북을 사용하는 이유가 감성이 아니라 실생활에 유용해서(사실 리눅스) 쓰기 때문에 더더욱 한성컴퓨터와 나는 접점이 없을거라 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpWIhJ/btrMZC42uhZ/8hhgojqnDK0JWvrWjHR8A0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpWIhJ/btrMZC42uhZ/8hhgojqnDK0JWvrWjHR8A0/img.jpg&quot; data-alt=&quot;한성컴퓨터의 일명 인민에어 제품들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpWIhJ/btrMZC42uhZ/8hhgojqnDK0JWvrWjHR8A0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpWIhJ%2FbtrMZC42uhZ%2F8hhgojqnDK0JWvrWjHR8A0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;320&quot; data-origin-width=&quot;500&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;한성컴퓨터의 일명 인민에어 제품들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다가 어느날 동료가 텐키리스의 키보드를 사용하고 있었는데 디자인이 이뻐서 물어보니 한성컴퓨터의 키보드라고 하였다. 게다가 가격은 무려 약 15만원에 호가하는 제품이라고 하였는데 내 상식선에서 한성컴퓨터의 키보드가 15만원이나 하는 것이 이해가 되지 않았다 심지어 키보드를 주력으로 만들던 업체도 아니니깐 말이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이마트에서 저렴하게 구입한 커브드 모니터를 차에 싣고 가야 하는 일이 있었는데 모니터를 내리고 문을 닫는 순간 차문에 모니터 끝쪽이 끼고 말았고, 액정이 완전 파손되고 말았다. 그렇게 사망 선고를 내리고 시무룩해진 상태에서 그래도 모니터는 필요했기에 쿠팡으로 모니터를 검색하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 저렴한 모니터를 와사비망고 제품을 자주 사용하였고, 여태까지 약 4종류의 와사비망고 모니터를 세컨 용으로 사용하였는데 이번에도 와사비망고 제품을 찾고 있던 와중 더이상 제품들이 보이지 않았다. 알고보니 와사비 망고 회사가 폐업을 하였던 것...&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;&lt;b&gt;대체제 발견, 한성컴퓨터&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다가 한성컴퓨터의 모니터들이 쿠팡에 많이 올라져 있으며 심지어 평점도 꽤 높은 수준을 유지하였다. 그리고 가격은 와사비망고에서 느꼈던 가성비가 느껴졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;576&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAZRQz/btrMXHMq3Si/hYxuADnJClM0ei2yUOyUxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAZRQz/btrMXHMq3Si/hYxuADnJClM0ei2yUOyUxk/img.png&quot; data-alt=&quot;진짜 말도 안되는 가격들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAZRQz/btrMXHMq3Si/hYxuADnJClM0ei2yUOyUxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAZRQz%2FbtrMXHMq3Si%2FhYxuADnJClM0ei2yUOyUxk%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;1071&quot; height=&quot;576&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;진짜 말도 안되는 가격들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;27인지 커브드 모니터가 159,000원이고, 32인치는 약 20만원에 판매하고 있었다. 심지어 제품의 평점을 보면 대부분 상당히 높은 점수를 유지하고 있는데 이렇게 점수가 높다는 것은 단기간에 망가지지 않았다는 방증이다. 그래서, 내 생애 처음으로 올해 7월 10일 한성컴퓨터의 모니터를 주문하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7utCL/btrMUlcZ9X5/eyVrUZm0PZOauP4rckPYc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7utCL/btrMUlcZ9X5/eyVrUZm0PZOauP4rckPYc0/img.png&quot; data-alt=&quot;7월 10일 주문한 한성컴퓨터 모니터&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7utCL/btrMUlcZ9X5/eyVrUZm0PZOauP4rckPYc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7utCL%2FbtrMUlcZ9X5%2FeyVrUZm0PZOauP4rckPYc0%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;793&quot; height=&quot;260&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;7월 10일 주문한 한성컴퓨터 모니터&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 작은 방 하나를 PC방으로 이용하고 있는데 여기에 작은 모니터를 옮기고 서재로 쓰고 있는 방에 추가로 한성컴퓨터의 모니터를 하나 더 사기로 해서, 9월 23일 주문하였고 어제 와서 조립을 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20220925_015243520.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRdvEH/btrMUfjGVow/ch8F47rPkJZbeWHklZZaYk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRdvEH/btrMUfjGVow/ch8F47rPkJZbeWHklZZaYk/img.jpg&quot; data-alt=&quot;나의 PC방&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRdvEH/btrMUfjGVow/ch8F47rPkJZbeWHklZZaYk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRdvEH%2FbtrMUfjGVow%2Fch8F47rPkJZbeWHklZZaYk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20220925_015243520.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;나의 PC방&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 어제 주문하였다는 주문 내역&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lUXcL/btrMT4ihI19/Ee00LS7kswy8ZWVLgSF3I1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lUXcL/btrMT4ihI19/Ee00LS7kswy8ZWVLgSF3I1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lUXcL/btrMT4ihI19/Ee00LS7kswy8ZWVLgSF3I1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlUXcL%2FbtrMT4ihI19%2FEe00LS7kswy8ZWVLgSF3I1%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;787&quot; height=&quot;380&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 이 포스팅은 한성컴퓨터 커브드 모니터 동일한 제품을 2대 구입한 사람의 후기 포스팅인 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;한성컴퓨터 모니터 개봉&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20220925_015243520_09.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rrC23/btrMU5UT248/seT8eiG35vRRLiIgalk6jk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rrC23/btrMU5UT248/seT8eiG35vRRLiIgalk6jk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rrC23/btrMU5UT248/seT8eiG35vRRLiIgalk6jk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrrC23%2FbtrMU5UT248%2FseT8eiG35vRRLiIgalk6jk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20220925_015243520_09.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20220925_015243520_08.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kYgj4/btrMVdrLq7q/tW2fp8XE4k7hHdycIYXgu1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kYgj4/btrMVdrLq7q/tW2fp8XE4k7hHdycIYXgu1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kYgj4/btrMVdrLq7q/tW2fp8XE4k7hHdycIYXgu1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkYgj4%2FbtrMVdrLq7q%2FtW2fp8XE4k7hHdycIYXgu1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20220925_015243520_08.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20220925_015243520_07.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP2xry/btrMWRBMka1/TLyQOwHCBowCgRKxnMWBS1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP2xry/btrMWRBMka1/TLyQOwHCBowCgRKxnMWBS1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP2xry/btrMWRBMka1/TLyQOwHCBowCgRKxnMWBS1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP2xry%2FbtrMWRBMka1%2FTLyQOwHCBowCgRKxnMWBS1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20220925_015243520_07.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&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;개봉을 하면, 이렇게 전원 케이블 1개, HDMI 케이블 1개, 나사 4개, 벽걸이용 나사 4개(? 벽걸이를 쓴적이 없어서 모르겠음), 그리고 붉은색 플라스틱의 용도는 모르겠다 케이블선을 정리하는 역할인지 모르겠고, 모니터 스탠드 받침 1개, 스탠드 기둥 1개 마지막으로 설명서 한개로 되어 있다. 참고로 전원 케이블의 크기가 약 1m 정도밖에 안되어 보이니 긴 전원 케이블이 필요하면 별도로 사야 될 듯 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;모니터 조립 방법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 제품의 한가지 아쉬운 점은 &quot;드라이버&quot;가 필요하다는 고지가 필요하다는 것이다. 여태까지 수많은 모니터를 사서 조립하고 썼지만, 몇몇개는 드라이버가 필요하지 않거나 자체적으로 제공을 해줬는데 이 제품은 드라이버가 필수라는 말을 하지 않았다.&amp;nbsp;그러다보니 첫제품을 샀던 당시 드라이버가 없어서, 다음날 다이소에서 샀던 기억이 있는데 조그만한 드라이버를 자체적으로 제공을 하던가 아니면, 묶음으로 파는 것도 하나의 방법일 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 해당 모니터의 조립에 대한 설명이 부실하다. 예를 들어 일반적으로 제품에 대한 설명을 할 때 하나하나 이 제품의 명칭은 무엇이고 몇개가 들어있다라는 식의 설명이 들어가 있는데 설명서에는 모니터, 나사, 스탠드 이런식으로 성의없게 써있다. 수많은 설명서를 봐왔지만 이렇게 무성의한 설명서는 처음인 것 같았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20220925_015243520_06.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9iE5V/btrM0m8RfJV/R7k2I0KrgjrXBa0zKPTZ5K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9iE5V/btrM0m8RfJV/R7k2I0KrgjrXBa0zKPTZ5K/img.jpg&quot; data-alt=&quot;필요한 드라이버&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9iE5V/btrM0m8RfJV/R7k2I0KrgjrXBa0zKPTZ5K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9iE5V%2FbtrM0m8RfJV%2FR7k2I0KrgjrXBa0zKPTZ5K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20220925_015243520_06.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;필요한 드라이버&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모니터를 조립하기 위해서는 위와 같이 크기가 큰 드라이버가 필요하다.&amp;nbsp;우선 스탠드 기둥과 스탠드 받침을 동봉한 나사 1개로 고정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20220925_015243520_05.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bx8v5Y/btrMVtOM8Jw/ko4YJjvgD8SQnkjr7fHGX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx8v5Y/btrMVtOM8Jw/ko4YJjvgD8SQnkjr7fHGX1/img.png&quot; data-alt=&quot;중앙에 고정한 나사&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx8v5Y/btrMVtOM8Jw/ko4YJjvgD8SQnkjr7fHGX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx8v5Y%2FbtrMVtOM8Jw%2Fko4YJjvgD8SQnkjr7fHGX1%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;1440&quot; height=&quot;1080&quot; data-filename=&quot;edited_KakaoTalk_20220925_015243520_05.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;중앙에 고정한 나사&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20220925_015243520_03.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgprga/btrMXHyU6a0/owKKI0YIQgMf95zIR4zaX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgprga/btrMXHyU6a0/owKKI0YIQgMf95zIR4zaX0/img.jpg&quot; data-alt=&quot;위에 고정한 나사&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgprga/btrMXHyU6a0/owKKI0YIQgMf95zIR4zaX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcgprga%2FbtrMXHyU6a0%2FowKKI0YIQgMf95zIR4zaX0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20220925_015243520_03.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;위에 고정한 나사&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 모니터 뒷면에 있는 브라켓을 떼어 낸 후, 방금 조립한 스탠드를 위와 같이 2군데에 나사를 돌려 고정 시킨다. (여기까지 총 3개의 나사 사용, 한개는 스페어용도)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_20220925_015243520_02.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8XG65/btrMTVFKduX/c4fPtk9j5HzygVENKpLGD1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8XG65/btrMTVFKduX/c4fPtk9j5HzygVENKpLGD1/img.jpg&quot; data-alt=&quot;고정된 브라켓&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8XG65/btrMTVFKduX/c4fPtk9j5HzygVENKpLGD1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8XG65%2FbtrMTVFKduX%2Fc4fPtk9j5HzygVENKpLGD1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1440&quot; height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20220925_015243520_02.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;고정된 브라켓&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스탠드와 브라켓 고정시켰다면 브라켓을 다시 모니터에 부착한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;모니터 최종 화면 및 2달 사용 후기&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20220925_015243520_01.jpg&quot; data-origin-width=&quot;1421&quot; data-origin-height=&quot;831&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJdHjp/btrMUwFrvlZ/b07kWOeLsRBKZm8PKF7XsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJdHjp/btrMUwFrvlZ/b07kWOeLsRBKZm8PKF7XsK/img.png&quot; data-alt=&quot;모니터 실제 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJdHjp/btrMUwFrvlZ/b07kWOeLsRBKZm8PKF7XsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJdHjp%2FbtrMUwFrvlZ%2Fb07kWOeLsRBKZm8PKF7XsK%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;1421&quot; height=&quot;831&quot; data-filename=&quot;edited_KakaoTalk_20220925_015243520_01.jpg&quot; data-origin-width=&quot;1421&quot; data-origin-height=&quot;831&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모니터 실제 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 화면은 방금 조립한 모니터를 서재에 있는 노트북에 연결한 화면이다. 참고로 왼쪽에 있는 노트북의 크기는 15.6인치 게이밍 노트북이니 어느정도 크기일지 알 수 있을 것이다. 기존에 서재에는 24인치 모니터가 있었는데 역시 모니터가 커야 제맛인 듯 하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 노트북는 모니터 뒷면에 HDMI 케이블을 끼거나 전원 케이블을 끼기가 상당히 불편하다는 점이다. 그러니 컴퓨터에 배치하기 전에 미리 HDMI 케이블과 전원 케이블을 낀 상태로 옮기는 것이 좋다. 옮긴 후에 끼기가 상당히 불편하니 참고 하도록 한다. 게다가 커브드니깐 모니터를 다루기가 상당히 조심스러운 점도 알아야 될 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2달 사용하고 이 제품의 느낀 점은 일단 이 모니터는 자체적으로 소리가 나지 않는다. 뭐 이 부분은 제품을 자세히 조사해봤다면 다들 알테니 넘어가고, 혹시나 모니터에 스피커 기능이 있을거라 생각하신 분들은 별도로 스피커를 주문하는 것이 좋다.&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;그리고 이 제품의 단점은 HDMI 케이블이 하나밖에 연결이 되지 않다보니, 2군데에서 동시에 HDMI 케이블을 껴서 사용하는 방식이 안된다는 점이다. HDMI 케이블을 끼기가 상당히 힘든 상태다보니 만약 예를 들어 컴퓨터와 IPTV와 같은 것을 동시에 연결해서 보려고 한다면 이 부분이 번거로울 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 내용들을 제외하고 이 제품을 비추해야 할 이유는 전혀 없을 것 같다. 일단 2달이 넘는 시간 동안 고장이 나지 않고 잘 사용하였으며, 모니터에 반점이 생기지도 않았고 제품도 튼튼하게 잘 만든 것 같다. 사실 내가 와사비망고를 샀던 이유는 제품이 튼튼해서라기 보다 싼 맛에 샀던 것이고 한성컴퓨터는 회사 자체적으로 매출액과 영업이익이 꾸준히 잘 나가고 있는 중견 기업이다보니 A/S에 대한 걱정도 없고 상위호환이라 생각한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 2달 사용해본 후기로 이 제품에 대한 평가는 10점 만점에 10점을 주지 않을 이유는 없을 것 같다.&amp;nbsp;참고로 이번 한성컴퓨터 모니터의 만족감으로 나머지 키보드나 주변기기들을 한성컴퓨터 제품으로 알아보는 중일 정도로 브랜드에 대한 만족감이 높다.&lt;/p&gt;</description>
      <category>IT/IT 제품리뷰</category>
      <category>모니터</category>
      <category>사용후기</category>
      <category>제품추천</category>
      <category>커브드모니터</category>
      <category>한성컴퓨터</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/789</guid>
      <comments>https://needjarvis.tistory.com/789#entry789comment</comments>
      <pubDate>Sun, 25 Sep 2022 02:40:20 +0900</pubDate>
    </item>
    <item>
      <title>이더리움 머지(The Merge) 적용과 프로젝트 정리 (서지, 버지, 퍼지, 스플러지)</title>
      <link>https://needjarvis.tistory.com/788</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;드디어 비탈릭의 염원이기도 했던 길고 긴 이더리움(Ethereum) 머지(Merge)가 적용 되었다. 이번에 진행한 머지 작업으로 인해 2.0으로 전환된 것으로 생각하는 분들이 많은데 앞으로 일정(대규모 프로젝트)과 이더리움의 미래 그리고 이더리움 이로 인해서 있을 파장들에 대해서 정리를 해보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;이더리움_머지_프로젝트정리.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KgBip/btrMJP44V0k/9i0piK40xMiqzUDe83caAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KgBip/btrMJP44V0k/9i0piK40xMiqzUDe83caAK/img.png&quot; data-alt=&quot;이더리움 머지(The Merge) 적용과 프로젝트 정리 (서지, 버지, 퍼지, 스플러지)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KgBip/btrMJP44V0k/9i0piK40xMiqzUDe83caAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKgBip%2FbtrMJP44V0k%2F9i0piK40xMiqzUDe83caAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;이더리움_머지_프로젝트정리.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이더리움 머지(The Merge) 적용과 프로젝트 정리 (서지, 버지, 퍼지, 스플러지)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;머지의 의미&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;머지(Merge)라는 용어는 병합을 뜻한다. 이번 머지로 인해서 이더리움은 작업 증명(Proof of Work, PoW)에서 지분 증명(Proof of Stake, PoS)로 전환을 하였는데 병합이 무슨 소린가? 싶을 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1239&quot; data-origin-height=&quot;528&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2bhJN/btrMI3CEjem/U8ZiKWoPyviPfkzSBdsVu0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2bhJN/btrMI3CEjem/U8ZiKWoPyviPfkzSBdsVu0/img.jpg&quot; data-alt=&quot;이더리움 일정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2bhJN/btrMI3CEjem/U8ZiKWoPyviPfkzSBdsVu0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2bhJN%2FbtrMI3CEjem%2FU8ZiKWoPyviPfkzSBdsVu0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1239&quot; height=&quot;528&quot; data-origin-width=&quot;1239&quot; data-origin-height=&quot;528&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이더리움 일정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림을 보면, 그동안 이더리움은 작업 증명에서 지분 증명으로 가기 위해서 별도의 체인을 생성했었는데 그것이 바로 비콘 체인(Beacon Chain)이다. 그리고 이더리움이 이 비콘 체인과 병합을 하면서 지분 증명으로 완전히 전환이 된 것이다.&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;&lt;b&gt;PoS로 가면 확장성이 생기나?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이더리움이 2.0으로 가기 위해서는 여러가지 문제를 해결해야 하는데 그 중 가장 핵심이 바로 PoW에서 PoS로 전환을 하는 것이었다. 즉 이번 PoS 작업으로 인해서 이더리움은 인프라를 다져놓기 시작했다라고 이해를 하면 된다. 하지만 많은 사람들이 2.0으로 완전히 전환되었다 오해를 하는 사람들이 존재하는데 아직 확장성 부분을 적용하진 못했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dahG8J/btrMG3X2kT5/KSxVOxcPKHdMh7BUX5Buwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dahG8J/btrMG3X2kT5/KSxVOxcPKHdMh7BUX5Buwk/img.png&quot; data-alt=&quot;머지가 이더리움 에코시스템을 위한 것임을 보여주는 부테린의 트윗&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dahG8J/btrMG3X2kT5/KSxVOxcPKHdMh7BUX5Buwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdahG8J%2FbtrMG3X2kT5%2FKSxVOxcPKHdMh7BUX5Buwk%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;606&quot; height=&quot;411&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;머지가 이더리움 에코시스템을 위한 것임을 보여주는 부테린의 트윗&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;워낙 거대한 부분들이기 때문에 이더리움처럼 조심스럽고 큰 체인들은 그런 중요한 작업들을 버그 없이 진행을 해야 한다. 즉, PoS 전환 이후 문제점이 있는지 확인을 해야 하고 PoS를 좀 더 개선을 하고 확장성 문제는 차차 잡으면 되기 때문이다.&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;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;PoS의 장점&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지분 증명이 도대체 어떤 장점이 있기에 비탈릭은 왜 그동안 PoS를 위해서 이토록 달려왔을 까? 우선, 비트코인의 재앙이라 불리는 엄청난 전기세가 급격히(약 99.9%) 줄어들게 된다. 물론 PoS를 위해서도 디바이스가 필요하지만, 비트코인과 같이 채굴기가 필요하지 않고, 사양이 낮은 컴퓨터로도 채굴이 가능해지는 장점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;935&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o6CNr/btrMINGTEkF/vkSKjKoGLDOD9dn3HBIZ2k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o6CNr/btrMINGTEkF/vkSKjKoGLDOD9dn3HBIZ2k/img.jpg&quot; data-alt=&quot;나라별 비트코인 채굴 비용&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o6CNr/btrMINGTEkF/vkSKjKoGLDOD9dn3HBIZ2k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo6CNr%2FbtrMINGTEkF%2FvkSKjKoGLDOD9dn3HBIZ2k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;664&quot; height=&quot;935&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;935&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;나라별 비트코인 채굴 비용&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업증명의 경우 문제를 맞춰야 하는 계산 시간이 필요한데 지분증명은 검증만 제대로 한다면 문제를 맞출 필요가 없기 때문이다. 이로 인해 채굴장이 필요하지 않으며, 가상화 기술을 활용하여 디바이스를 늘리는 작업등을 통해서 노드를 대량으로 늘릴 수 도 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 가장 큰 장점은 전기세가 줄어든 만큼 1년에 발행하는 추가 공급량이 줄어든다. 이더리움은 비트코인(비트코인은 2100만개 발행한다)과 다르게 발행량이 무한대였으며, 1년에 &lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;490만 이더리움이 새로 발행 되었지만 지분증명으로 변경되는 이후 부터 공급량이 58만4000이더리움으로 약 88% 넘게 줄어든다.&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;background-color: #ffffff; color: #3c3e40;&quot;&gt;즉, 시장에 풀리는 이더리움이 1년에 약 450만개 줄어들기 때문에 사실상 엄청난 호재임에 분명하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이더리움의 대규모 패치 일정&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이더리움은 진정한 2.0을 구현하기 위해서 머지(The Merge) 이후 &lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;서지(The Surge), 버지(The Verge), 퍼지(The Purge), 스플러지(The Splurge)와&lt;/span&gt;&amp;nbsp;같은 대규모 작업들이 예정되어 있으며 이 작업들이 모두 끝나야 진정한 2.0이라 할 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;1322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUmIPP/btrMKmBxx9p/Q3x2o6iyzZcKRlGQb41o9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUmIPP/btrMKmBxx9p/Q3x2o6iyzZcKRlGQb41o9k/img.png&quot; data-alt=&quot;Source, milesdeutscher&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUmIPP/btrMKmBxx9p/Q3x2o6iyzZcKRlGQb41o9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUmIPP%2FbtrMKmBxx9p%2FQ3x2o6iyzZcKRlGQb41o9k%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;1196&quot; height=&quot;1322&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;1322&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Source, milesdeutscher&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각각의 프로젝트들은 별도의 포스팅으로 다뤄야 할 만큼 지각 변동을 일으킬 내용들이기에 여기서는 간단하게 개념 정도로만 이해해보도록 한다. (사실 아직 모든 걸 조사하지 못했다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8177628756262013&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;서지(The Surge)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1014&quot; data-origin-height=&quot;212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8Ht44/btrMJmaX3Te/QgdcJ08lPv93FKfWZ8XBCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8Ht44/btrMJmaX3Te/QgdcJ08lPv93FKfWZ8XBCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8Ht44/btrMJmaX3Te/QgdcJ08lPv93FKfWZ8XBCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8Ht44%2FbtrMJmaX3Te%2FQgdcJ08lPv93FKfWZ8XBCk%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;1014&quot; height=&quot;212&quot; data-origin-width=&quot;1014&quot; data-origin-height=&quot;212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이더리움의 사실상 2.0의 대미는 바로 서지(The Surge)라고 할 수 있다. 자칭 수많은 이더리움 킬러라고 불리던 플랫폼 코인들이 늘상 이더리움의 확장성을 기반으로 자신들의 코인이 훨씬 뛰어나다 자화자찬을 했기 때문이다. 서지는 위 그림처럼 샤딩(sharding)에 관련된 작업이다. 샤딩은 이론상 이더리움이 무한대의 확장성을 가지게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이는 빅데이터 시대를 만든 하둡(Hadoop)이 무한대로 처리를 한다는 개념과 유사한데, 샤딩은 메인 체인을 여러개로 분할하여 처리를 하게 되는 개념이다. 그리고 수많은 플랫폼 코인들이 샤딩을 할 예정이라며, 확장성이 백만 TPS에 달한다 말하는 것과 같다. 이더리움이 서지 프로젝트를 성공하게 되면, 사실상 기존 플랫폼 코인들의 위기라 생각되며 블록체인의 새로운 세상이 열릴 것이라 생각한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 샤딩이라는 기술이 만드는 것은 쉽지만, 수많은 가지 체인들을 다시 병합하는 과정에서 문제가 많이 발생하게 된다. 이 부분이 쉽지 않기 때문에 그동안 블록체인들이 샤딩을 쉽게 구현해내지 못했던 것이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;버지(The Verge)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1019&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/srqKF/btrMIw6sMmx/kklTIwzgptDg5WU0DZKEr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/srqKF/btrMIw6sMmx/kklTIwzgptDg5WU0DZKEr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/srqKF/btrMIw6sMmx/kklTIwzgptDg5WU0DZKEr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsrqKF%2FbtrMIw6sMmx%2FkklTIwzgptDg5WU0DZKEr0%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;1019&quot; height=&quot;194&quot; data-origin-width=&quot;1019&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;버지 프로젝트는 머클 트리(&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;머클트리에 궁금한 경우 아래 링크 참조)&lt;/span&gt;로 되어 있는 검증을 버클 트리(Verkle Tree)로 변경을 하는 작업이다. 머클 트리는 강력한 검증 능력을 지녔지만 효율성이 떨어지는 단점을 지녔다.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/634&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;블록체인 검증기술, 머클트리, 머클루트 - 모두의 블록체인 #7&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1663759729194&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;블록체인 검증기술, 머클트리, 머클루트 - 모두의 블록체인 #7&quot; data-og-description=&quot;머클트리(merkle tree), 머클루트(merkle root), 머클해시(merkle hash), 해시트리(hash tree) 다 비슷한 용어로 약간의 차이점만 있을 뿐 모두가 뜻하는 바는 동일하다. 우리가 암호화폐에 투자를 하거나 블록&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/634&quot; data-og-url=&quot;https://needjarvis.tistory.com/634&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oE4RW/hyPS0gEVgv/9PplAvAq2vN0NouvFDM1m1/img.png?width=800&amp;amp;height=450&amp;amp;face=210_97_270_162,https://scrap.kakaocdn.net/dn/WRde8/hyPReHCDys/Fw8HQ1BkUoraBpckngopA1/img.png?width=800&amp;amp;height=450&amp;amp;face=210_97_270_162,https://scrap.kakaocdn.net/dn/b3qGOL/hyPSZvhLr3/DZzpHx56GFfrcpr8MMxT6k/img.png?width=1397&amp;amp;height=577&amp;amp;face=0_0_1397_577&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/634&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/634&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oE4RW/hyPS0gEVgv/9PplAvAq2vN0NouvFDM1m1/img.png?width=800&amp;amp;height=450&amp;amp;face=210_97_270_162,https://scrap.kakaocdn.net/dn/WRde8/hyPReHCDys/Fw8HQ1BkUoraBpckngopA1/img.png?width=800&amp;amp;height=450&amp;amp;face=210_97_270_162,https://scrap.kakaocdn.net/dn/b3qGOL/hyPSZvhLr3/DZzpHx56GFfrcpr8MMxT6k/img.png?width=1397&amp;amp;height=577&amp;amp;face=0_0_1397_577');&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;블록체인 검증기술, 머클트리, 머클루트 - 모두의 블록체인 #7&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;머클트리(merkle tree), 머클루트(merkle root), 머클해시(merkle hash), 해시트리(hash tree) 다 비슷한 용어로 약간의 차이점만 있을 뿐 모두가 뜻하는 바는 동일하다. 우리가 암호화폐에 투자를 하거나 블록&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.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;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;버클트리는 머클트리와 동일한 기능을 하지만, 내부 알고리즘 효율적인 트리를 말한다. 비탈릭은 &quot;머클트리에 비해 대량의 데이터를 넣을 수 있고, &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;데이터의 단일 조각 대한 짧은 증명(증인)을 만들 수 있으며, 증명 크기에 있어 머클트리보다 훨씬 더 효율적&quot;이라며 버클 트리를 찬양 했으며, &quot;증명 크기는 이상적인 머클트리에 비해 6-8배, 이더리움이 현재 사용하는 hexary Patricia 트리 대비 20-30배 이상 감소할 수 있다&quot;고 덧붙일 정도이다.&lt;/span&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;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;퍼지(The Purge)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;299&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGpva0/btrMDEqFV3e/H6kch56hgE94mvsEX3DTi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGpva0/btrMDEqFV3e/H6kch56hgE94mvsEX3DTi0/img.png&quot; data-alt=&quot;퍼지(The Purge)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGpva0/btrMDEqFV3e/H6kch56hgE94mvsEX3DTi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGpva0%2FbtrMDEqFV3e%2FH6kch56hgE94mvsEX3DTi0%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;1024&quot; height=&quot;299&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;299&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;퍼지(The Purge)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;퍼지는 오래된 데이터를 삭제하는 프로젝트이다. 이더리움이 확장성을 가지게 되면 이더리움의 Gas비는 급격히 줄어들 것이고, 수많은 Dapp들이 이더리움으로 붙게 될 것이다. 문제는 이렇게 되면 하나의 블록안에 엄청나게 많은 데이터가 쌓이며 검증에 필요한 데이터가 기하급수적으로 늘어나게 된다.&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;결국 속도와 확장성을 잡는다 하더라도 블록의 크기가 너무 커져서 시스템에 문제가 발생할 수 있는 것이다. 이를 위해서 핵심이 되는 체인들은 SSD와 같은 하드에 저장을 하는 것을 진행하면서, 오래된 예전 데이터는 HDD와 같은 저렴한 장치에 저장을 하여 데이터의 저장 계층을 만드는 작업을 진행하게 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;스플러지(The Spluge)&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1009&quot; data-origin-height=&quot;254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RwsJT/btrMG4ioZHT/dKkba12IIBMJfNLweT9LpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RwsJT/btrMG4ioZHT/dKkba12IIBMJfNLweT9LpK/img.png&quot; data-alt=&quot;스플러지(The Spluge)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RwsJT/btrMG4ioZHT/dKkba12IIBMJfNLweT9LpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRwsJT%2FbtrMG4ioZHT%2FdKkba12IIBMJfNLweT9LpK%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;1009&quot; height=&quot;254&quot; data-origin-width=&quot;1009&quot; data-origin-height=&quot;254&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스플러지(The Spluge)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;마지막으로 스플러지는 네트워크의 효율성을 올려주는 작업이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;이더리움 2.0 전환과 기존 코인의 주의성&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;이더리움이 언제 2.0을 마무리 할 수 있을지 모르겠다. 사실 이번 머지의 경우도 내가 기억하기로는 적어도 2년 정도 딜레이가 된 것으로 기억이 된다. 그동안 수많은 반대파들로 인해서 늘상 패치를 미루다가 이제 드디어 채굴 세력을 정리하게 되면서 앞으로 이더리움은 무조건 성공을 해야만 되는 문제가 남아있다.&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;background-color: #ffffff; color: #3c3e40;&quot;&gt;채굴 세력은 이더리움의 가격을 방어해주는 존재이기 때문에 이 세력이 빠진다는 것은 그만큼 이더리움에게는 큰 리스크이다. 하지만 이번 전환으로 인해서 이더리움 체인을 쓰는 수많은 코인들이 생겨날 수 있고, 2017년에 불었던 수많은 이더리움 기반 프로젝트들의 열풍이 재현될 수도 있을 것이다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;참고자료&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;[1] Understanding The Merge, Surge, Verge, Purge, And Splurge&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;[2] 코인리더스, 비탈릭 부테린 &quot;버클트리, 이더리움 확장성 업그레이드의 중요한 부분&quot;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3e40;&quot;&gt;[3] 이코노미스트, 이더리움&amp;nbsp;급락,&amp;nbsp;&amp;lsquo;머지&amp;rsquo;가&amp;nbsp;끝&amp;nbsp;아니다&amp;hellip;서지&amp;middot;버지&amp;middot;퍼지&amp;middot;스플러지&amp;nbsp;남아&lt;/span&gt;&lt;/p&gt;</description>
      <category>암호화폐 및 블록체인/암호화폐 파고들기</category>
      <category>ethereum</category>
      <category>Merge</category>
      <category>머지</category>
      <category>버지</category>
      <category>블록체인</category>
      <category>서지</category>
      <category>스플러지</category>
      <category>암호화폐</category>
      <category>이더리움</category>
      <category>퍼지</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/788</guid>
      <comments>https://needjarvis.tistory.com/788#entry788comment</comments>
      <pubDate>Wed, 21 Sep 2022 20:58:40 +0900</pubDate>
    </item>
    <item>
      <title>[Flutter] 다트(Dart)의 변수 및 타입 설명</title>
      <link>https://needjarvis.tistory.com/787</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;플러터(Flutter)의 개발 언어인 다트(Dart)는 다양한 플랫폼에서 동작을 해야 하기 때문에 매우 심플하고 강력한 변수 타입들을 제공하고 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;다트_변수_타입설명.png&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OsbXH/btrLNqthhqt/DY9UbksankN6ROmAz68Dz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OsbXH/btrLNqthhqt/DY9UbksankN6ROmAz68Dz0/img.png&quot; data-alt=&quot;[Flutter] 다트(Dart)의 변수 및 타입 설명&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OsbXH/btrLNqthhqt/DY9UbksankN6ROmAz68Dz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOsbXH%2FbtrLNqthhqt%2FDY9UbksankN6ROmAz68Dz0%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;860&quot; height=&quot;484&quot; data-filename=&quot;다트_변수_타입설명.png&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Flutter] 다트(Dart)의 변수 및 타입 설명&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;다트의 기본 타입&lt;/b&gt;&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style14&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;기본 타입&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;예시&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;int&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;정수형&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;365&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;double&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;실수형&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;3.141592&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;String&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;문자열&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;홍길동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 33.3333%; text-align: center;&quot;&gt;&lt;b&gt;bool&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;참 또는 거짓 (불리언 타입)&lt;/td&gt;
&lt;td style=&quot;width: 33.3333%;&quot;&gt;false&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다트의 기본 타입은 4가지로 다른 언어(ex: Java, C, C++)에서 사용되는 Float이나 Long, unsigned와 같은 타입들은 제공하지 않고 있습니다. 다른 언어들이 다양한 타입을 제공했던 이유는 하드웨어(Hardware)의 사양이 지금과 달리 부족했던 시대에는 메모리의 최적화가 중요했기 때문인데 지금은 자원이 부족한 경우가 없기 때문에 세세한 타입은 제공하지 않고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 예를 들어 자바 개발자의 경우 int라고 생각하면 4 byte의 메모리를 할당할 것이라 생각할 수 있지만, 실질적으로는 long 타입과 동일하다고 보시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;다트의 기본 타입 예시&lt;/b&gt;&lt;/h2&gt;
&lt;pre class=&quot;dart&quot;&gt;&lt;code&gt;void main(List&amp;lt;String&amp;gt; arguments) {
  int a = 100;
  String name = '홍길동';
  double pi = 3.14;
  bool isTrue = false;

  print('a의 값은? $a');
  print('이름은? $name');
  print('파이 값은? $pi');
  print('참인가? $isTrue');
}
&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;&lt;b&gt;예시결과&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;a의 값은? 100 &lt;br /&gt;이름은? 홍길동 &lt;br /&gt;파이 값은? 3.14 &lt;br /&gt;참인가? false&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;타입 추론&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다트는 타입을 직접 명시하지 않아도, 타입을 추론하는 기능이 내장되어 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662990522848&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;void main(List&amp;lt;String&amp;gt; arguments) {
  var a = 100;
  var name = '홍길동';
  var pi = 3.14;
  var isTrue = false;

  print('a의 값은? $a');
  print('이름은? $name');
  print('파이 값은? $pi');
  print('참인가? $isTrue');
}&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;즉 위와 같이 int, String과 같은 타입을 지정하지 않고 var를 사용해도 타입을 직접 입력하는 것과 동일한 결과를 보여줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662990542264&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;a의 값은? 100
이름은? 홍길동
파이 값은? 3.14
참인가? false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 var를 파이썬(Python)같은 어떤 값이든 자유자재로 대입하는 타입이라 생각하시면 안되는데요. a에 숫자값이 세팅되어 있는 상태에서 다른 형태의 값을 세팅을 하게 되면 에러를 발생합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class=&quot;angelscript&quot;&gt;&lt;code&gt;void main(List&amp;lt;String&amp;gt; arguments) {
  var a = 100;
  a = 1000;
  a = 3.14;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 위와 같은 코드에서, 첫번째 1000을 대입할 때에는 에러가 발생하지 않으나, 두번째 실수값인 3.14를 대입하게 되면 에러가 발생합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;타입 추론 에러&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1662991461793&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;bin/dart.dart:6:7: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
  a = 3.14;&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;한마디로 추론이라는 말처럼 var를 쓰는 것은 값을 이해해서 DART 언어가 알아서 int 인지, String 인지를 알아서 선언하는 것과 같습니다. 개인적으로 var를 쓰는 것은 아무런 이득이 없다 생각해서, 저 같으면 평생 이런 타입을 쓰지 않겠지만, 다른 사람들이 사용하는 코드를 이해하는 것도 중요하기 때문에 이런것이 있다 정도를 이해하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;동적 타입&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타입 추론에 var만 있는 것이 아닙니다. dynamic이라는 타입을 사용할 수 있는데요. 이 타입을 사용하게 되면 궁극적으로 var + @로 값을 자유자재로 대입이 가능한 변수처럼 만들게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정확히 dynamic은 타입을 추론하는게 아니라 어떤 타입이든 받아들인다라고 생각하시면 되니, 기존 파이썬의 변수와 유사한 모양이라 생각하시면 되겠네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;동적 타입 예시&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;dart&quot;&gt;&lt;code&gt;void main(List&amp;lt;String&amp;gt; arguments) {
  dynamic a = 100;
  a = 1000;
  print(a);

  a = 3.14;
  print(a);
}&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;&lt;b&gt;동적 타입 결과&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1662991712166&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;1000
3.14&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;b&gt;숫자형&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바나 C와 같은 오래된 언어들은 다양한 숫자 타입을 지원하고 있습니다.&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;정수형으로 생각하면, byte, short, int, long, unsigned 실수형으로 float, double 등이 있죠. 하지만 다트는 정수형은 int로 통일, 실수형은 double로 통일을 하면서 사용하고 있는데요. 이와 같이 숫자형은 아래와 같은 구조로 되어 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9OELi/btrL0TGFu0d/xJQlUVssRam0B1yV8dDTj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9OELi/btrL0TGFu0d/xJQlUVssRam0B1yV8dDTj0/img.png&quot; data-alt=&quot;다트의 숫자형&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9OELi/btrL0TGFu0d/xJQlUVssRam0B1yV8dDTj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9OELi%2FbtrL0TGFu0d%2FxJQlUVssRam0B1yV8dDTj0%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;747&quot; height=&quot;361&quot; data-origin-width=&quot;747&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다트의 숫자형&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, int와 double 사이는 서로 자식간의 관계이기 때문에 호환이 되지 않지만 그 위에 num이라는 부모 객체가 있는 것을 볼 수 있는데요. int와 double을 자유자재로 바꾸는 방법으로 dynamic도 존재하지만, num을 사용해도 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;숫자형 자유변환 예시&lt;/b&gt;&lt;/h3&gt;
&lt;pre class=&quot;dart&quot;&gt;&lt;code&gt;void main(List&amp;lt;String&amp;gt; arguments) {
  dynamic a = 100;
  dynamic b = 3.14;
  dynamic c = a + b;
  print(c);

  num na = 100;
  num nb = 3.14;
  num nc = na + nb;
  print(nc);
}&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;즉, 숫자형의 경우 dynamic 뿐만 아니라 num을 사용해도 된다는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662992036219&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;103.14
103.14&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;dynamic이 있는데 왜 num을 지원하는가 생각하실 수 있는데요. 변수라는 것이 너무 이것저것 받아들이게 된다면 어떤 값이 들어올지 몰라 문제가 발생할 수 있습니다. 예를 들어, 계산기를 만드는데 숫자 이외에 문자값이 들어와 버린다면 사실 그 앞단계에서 에러가 발생해야 되지만, dynamic으로 하는 경우 데이터를 받아들이는 단계에서는 에러가 발생하지 않는 문제가 있는 것이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;되도록이면, 타입을 직접 지정하는 것이 Best 겠지만, 숫자와 실수형이 오갈 수 있는 값이라면 num을 선언하는 것이 바람직 할 것입니다.&lt;/p&gt;</description>
      <category>App Dev/Flutter 및 DART</category>
      <category>DART</category>
      <category>Flutter</category>
      <category>다트</category>
      <category>다트변수</category>
      <category>플러터</category>
      <category>플러터변수</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/787</guid>
      <comments>https://needjarvis.tistory.com/787#entry787comment</comments>
      <pubDate>Mon, 12 Sep 2022 23:18:23 +0900</pubDate>
    </item>
    <item>
      <title>몽고DB(MongoDB) 소멸 주기(Time to Live, TTL) Java 예시</title>
      <link>https://needjarvis.tistory.com/786</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;몽고DB(MongoDB)는 자체적으로 소멸 주기 혹은 생명주기라고 하는 TTL(Time to Live) 인덱스 기능이 내장되어 있습니다. 예를 들어 로그 데이터와 같이 일반적인 데이터와 달리 중요도가 적은 경우 Info, Warning, Error 처럼 중요도에 따라 데이터 자동 삭제 시기를 설정할 수 있고, 혹은 특정 주기마다 무조건 삭제를 할 수 있는 기능을 제공합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;몽고DB_소멸주기.png&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEydSM/btrLtLKGKS7/B7KsN0dig8uanXaHZj5BH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEydSM/btrLtLKGKS7/B7KsN0dig8uanXaHZj5BH0/img.png&quot; data-alt=&quot;[MongoDB] 몽고DB 소멸 주기(Time to Live, TTL) Java 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEydSM/btrLtLKGKS7/B7KsN0dig8uanXaHZj5BH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEydSM%2FbtrLtLKGKS7%2FB7KsN0dig8uanXaHZj5BH0%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;860&quot; height=&quot;484&quot; data-filename=&quot;몽고DB_소멸주기.png&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[MongoDB] 몽고DB 소멸 주기(Time to Live, TTL) Java 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;TTL의 구현방법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TTL은 날짜값에 Index를 걸고, expireAfter 속성을 추가적으로 걸면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터의 날짜값이 각각 아래와 같다고 가정을 해보겠습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1662431356273&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;A-&amp;gt; 2022년 9월 5일 오후 5시 40분
B-&amp;gt; 2022년 9월 6일 오전 10시 10분
C-&amp;gt; 2022년 9월 5일 오후 7시 20분&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; 현재 시간이 2022년 9월 5일 오후 9시 27분이라고 가정한다면, expireAfter 속성을 걸게 된 경우 A,C의 값을 삭제할 수 있게 됩니다. 다만 초까지 모두 정확하게 지켜서 삭제를 하지는 못하고, 삭제는 몽고DB 내부의 루프타임이 있어서 약 60초 후에 삭제가 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;만료된 문서를 제거하는 백그라운드 작업은 60초마다 실행됩니다 . 결과적으로 문서는 문서 만료와 백그라운드 작업 실행 사이의 기간 동안 컬렉션에 남아 있을 수 있습니다. MongoDB는 색인이 완료된 후 0~60초 후에 문서 삭제를 시작합니다.&lt;br /&gt;&lt;br /&gt;https://www.mongodb.com/docs/manual/core/index-ttl/&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;주기별 삭제 예시&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주기별 삭제는 말그대로 데이터가 들어간 후, 일정 주기마다 데이터를 삭제하는 것을 말합니다. 예를 들어, 데이터가 저장 된 후 1시간 후에 삭제를 시키는 등의 작업을 해야 할 경우, 아래의 예제를 참고하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래의 예시는 데이터 저장 후, 5분 후에 삭제를 하는 예시입니다.&lt;/p&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;TtlService.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1662431095521&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.tistory.needjarvis.service;

import com.tistory.needjarvis.dao.TtlDAO;

/**
 * Time to live service
 *
 * @author Steele
 * @since 2022.09.06
 */
public class TtlService {

    public void insert() {
        TtlDAO ttlDAO = new TtlDAO();
        long resultCount = ttlDAO.setTestData();
        System.out.println(&quot;insert count-&amp;gt;&quot; + resultCount);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TtlDAO.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1662431132224&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.tistory.needjarvis.dao;

import com.mongodb.*;
import java.util.Date;


/**
 * Time to live 설정
 *
 * @author Steele
 * @since 2022.09.06
 */
public class TtlDAO {

    final String dbNm = &quot;test&quot;;

    public long setTestData() {
        long count = 0;
        String collectionNm = &quot;ttl&quot;;

        try {
            MongoClient mongo = new MongoClient(&quot;localhost&quot;, 27017);
            DB db = mongo.getDB(dbNm);

            DBCollection collection = db.getCollection(collectionNm);

            DBObject keyObj = new BasicDBObject();
            keyObj.put(&quot;createdAt&quot;, 1);

            DBObject valueObj = new BasicDBObject();
            valueObj.put(&quot;expireAfterSeconds&quot;, 300);    // 5분

            collection.createIndex(keyObj, valueObj);
            DBObject item = createTtlData();
            collection.insert(item);
        } catch(Exception e) {
            e.printStackTrace();
            return -1;
        }

        return count;
    }


    private DBObject createTtlData() {
        BasicDBObjectBuilder docBuilder = BasicDBObjectBuilder.start();

        docBuilder.append(&quot;title&quot;, &quot;[World Now] 성서에나 나올 홍수 파키스탄 비상사태&quot;);
        docBuilder.append(&quot;contents&quot;, &quot;홍수로 불어난 물길 한가운데 있는 바위에 한 소년이 고립됐습니다. &quot; +
                &quot;                               거센 물살이 금방이라도 덮칠 듯 위협하는 상황. 파키스탄 군용 헬기가 접근해 이...&quot;);
        docBuilder.append(&quot;createdAt&quot;, new Date());

        return docBuilder.get();
    }
}&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;위의 로직을 보면 기존 몽고DB의 insert와 다를바 없지만, 한가지 인덱스가 차이가 나는 것을 알 수 있고, 데이터에 new Date()로 현재 날짜값을 저장하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1662434993636&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DBObject keyObj = new BasicDBObject();
keyObj.put(&quot;createdAt&quot;, 1);

DBObject valueObj = new BasicDBObject();
valueObj.put(&quot;expireAfterSeconds&quot;, 300);    // 5분&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;즉 데이터의 날짜값은 현재 시간으로 저장을 하기 때문에, 데이터가 저장이 되자마자 만료가 되며, 날짜값에 인덱스를 걸었는데 expireAfterSeconds 키에 300이라는 값을 지정하고 색인을 걸었습니다. 해석을 하자면 날짜값이 만료가 될 경우(new Date를 하니 데이터가 저장되자마자 만료가 됩니다) 300초 후에 삭제를 하겠다라는 것이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 저장한 후 1시간 후에 삭제를 원할 경우, expireAfterSeconds, 3600으로 하면 1시간 후에 삭제가 하는 것이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;코드 실행&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드를 실행하면, 아래와 같이 데이터가 저장이 된 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;372&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEjS9a/btrLu853lMe/eFITdxkM3eHdXWNPKlUgik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEjS9a/btrLu853lMe/eFITdxkM3eHdXWNPKlUgik/img.png&quot; data-alt=&quot;데이터가 저장 된 후&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEjS9a/btrLu853lMe/eFITdxkM3eHdXWNPKlUgik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEjS9a%2FbtrLu853lMe%2FeFITdxkM3eHdXWNPKlUgik%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;1003&quot; height=&quot;372&quot; data-origin-width=&quot;1003&quot; data-origin-height=&quot;372&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;데이터가 저장 된 후&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;약 5분 후에 아래와 같이 데이터가 없어진 것을 알 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;381&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCHqiU/btrLukFXfPC/9KfeCHQCd7QizOfO0nifYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCHqiU/btrLukFXfPC/9KfeCHQCd7QizOfO0nifYK/img.png&quot; data-alt=&quot;데이터가 삭제 된 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCHqiU/btrLukFXfPC/9KfeCHQCd7QizOfO0nifYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCHqiU%2FbtrLukFXfPC%2F9KfeCHQCd7QizOfO0nifYK%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;790&quot; height=&quot;381&quot; data-origin-width=&quot;790&quot; data-origin-height=&quot;381&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;데이터가 삭제 된 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;특정 시간 삭제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 특정 시간이 되면 삭제를 하는 것을 만들어 보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;TtlDAO.java&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1662435657019&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.tistory.needjarvis.dao;

import com.mongodb.*;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;


/**
 * Time to live 설정
 *
 * @author Steele
 * @since 2022.09.06
 */
public class TtlDAO {

    final String dbNm = &quot;test&quot;;

    public long setTestData() {
        long count = 0;
        String collectionNm = &quot;ttl&quot;;

        try {
            MongoClient mongo = new MongoClient(&quot;localhost&quot;, 27017);
            DB db = mongo.getDB(dbNm);

            DBCollection collection = db.getCollection(collectionNm);

            DBObject keyObj = new BasicDBObject();
            keyObj.put(&quot;createdAt&quot;, 1);

            DBObject valueObj = new BasicDBObject();
            valueObj.put(&quot;expireAfterSeconds&quot;, 0);    // 즉시 삭제

            collection.createIndex(keyObj, valueObj);

            for(int i = 0; i &amp;lt; 5; i++) {
                DBObject item = createTtlData(i, i+1);
                collection.insert(item);
            }
        } catch(Exception e) {
            e.printStackTrace();
            return -1;
        }

        return count;
    }


    private DBObject createTtlData(int no, int minute) {
        BasicDBObjectBuilder docBuilder = BasicDBObjectBuilder.start();

        docBuilder.append(&quot;no&quot;, no);
        docBuilder.append(&quot;title&quot;, &quot;[World Now] 성서에나 나올 홍수 파키스탄 비상사태&quot;);
        docBuilder.append(&quot;contents&quot;, &quot;홍수로 불어난 물길 한가운데 있는 바위에 한 소년이 고립됐습니다. &quot; +
                &quot;                               거센 물살이 금방이라도 덮칠 듯 위협하는 상황. 파키스탄 군용 헬기가 접근해 이...&quot;);
        docBuilder.append(&quot;createdAt&quot;, toDate(LocalDateTime.now().plusMinutes(minute)));

        return docBuilder.get();
    }


    private Date toDate(LocalDateTime ldt) {
        return Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant());
    }
}&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;테스트용 데이터에 no 컬럼을 추가하였고, createdAt 컬럼에는 현재값보다 1분씩 더 뒤에 있는 값으로 데이터를 저장하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;코드실행&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드를 실행하면 아래와 같이 5개의 데이터가 저장되었으며, no는 0~4번까지 그리고 createdAt의 값이 1분씩 차이가 나는 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPzORB/btrLwIlEI2b/8sfm7y0QhBOBC1d0CXKoZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPzORB/btrLwIlEI2b/8sfm7y0QhBOBC1d0CXKoZk/img.png&quot; data-alt=&quot;1분씩 추가된 데이터&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPzORB/btrLwIlEI2b/8sfm7y0QhBOBC1d0CXKoZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPzORB%2FbtrLwIlEI2b%2F8sfm7y0QhBOBC1d0CXKoZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;821&quot; height=&quot;625&quot; data-origin-width=&quot;821&quot; data-origin-height=&quot;625&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;1분씩 추가된 데이터&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 넣은 후, 1분이 지나게 되면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;755&quot; data-origin-height=&quot;589&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4mPbD/btrLx0Gknht/RfY88cXykXjtKzkokgfQik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4mPbD/btrLx0Gknht/RfY88cXykXjtKzkokgfQik/img.png&quot; data-alt=&quot;no가 0인 데이터가 삭제된 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4mPbD/btrLx0Gknht/RfY88cXykXjtKzkokgfQik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4mPbD%2FbtrLx0Gknht%2FRfY88cXykXjtKzkokgfQik%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;755&quot; height=&quot;589&quot; data-origin-width=&quot;755&quot; data-origin-height=&quot;589&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;no가 0인 데이터가 삭제된 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 createdAt이 만료된 것들이 하나씩 삭제가 되는 것을 확인 할 수 있습니다.&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>빅데이터 및 DB/몽고DB(MongoDB)</category>
      <category>MongoDB</category>
      <category>TTL</category>
      <category>기간삭제</category>
      <category>만료삭제</category>
      <category>몽고DB</category>
      <category>자동삭제</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/786</guid>
      <comments>https://needjarvis.tistory.com/786#entry786comment</comments>
      <pubDate>Tue, 6 Sep 2022 12:51:10 +0900</pubDate>
    </item>
    <item>
      <title>인터넷 연결 및 지연 체크하기 (Ping 테스트)</title>
      <link>https://needjarvis.tistory.com/785</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 인터넷을 할 때에는 잘 알지 못하겠지만, 게임을 할 때에는 중간중간 지연되는 것은 상당한 장애가 되거나 특정 콘텐츠 자체를 할 수 없을 경우가 발생한다. 이럴땐 서비스의 문제인지 내가 문제인지 알기 위해서 핑테스트라는 것을 할 수 있는데 핑 테스트를 하는 방법을 알아보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;인터넷연결_지연체크_핑테스트.png&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dHQMse/btrKURRaYzS/FbWGF37AQIkMk2ZKEZPbC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dHQMse/btrKURRaYzS/FbWGF37AQIkMk2ZKEZPbC1/img.png&quot; data-alt=&quot;인터넷 연결 및 지연 체크하기(Ping 테스트)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dHQMse/btrKURRaYzS/FbWGF37AQIkMk2ZKEZPbC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdHQMse%2FbtrKURRaYzS%2FFbWGF37AQIkMk2ZKEZPbC1%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;570&quot; height=&quot;411&quot; data-filename=&quot;인터넷연결_지연체크_핑테스트.png&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;인터넷 연결 및 지연 체크하기(Ping 테스트)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Ipconfig 확인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 검색 창에 cmd를 입력하면, 커맨드(명령 프롬프트) 창이 보이는데 커맨드 창을 실행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ooBN9/btrKUuPhQCf/MaZqBfR4UfOcyJMIqN6nc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ooBN9/btrKUuPhQCf/MaZqBfR4UfOcyJMIqN6nc0/img.png&quot; data-alt=&quot;커맨드 창&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ooBN9/btrKUuPhQCf/MaZqBfR4UfOcyJMIqN6nc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FooBN9%2FbtrKUuPhQCf%2FMaZqBfR4UfOcyJMIqN6nc0%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;600&quot; height=&quot;474&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;커맨드 창&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;커맨드 창을 실행한 후 아래와 같이 명령어를 입력한다.&lt;/p&gt;
&lt;pre id=&quot;code_1661780478880&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ipconfig -all&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;ip는 인터넷 프로토콜(Internet Protocol)의 약자로 인터넷 관련된 정보를 확인할 수 있다. 아래는 중요한 정보가 담겨져 있기 때문에 정보를 숨긴채 캡쳐를 한 내용이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;549&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t9OFt/btrKTo3ju1Y/cQ7kbpsq3qtK96YkBAThO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t9OFt/btrKTo3ju1Y/cQ7kbpsq3qtK96YkBAThO1/img.png&quot; data-alt=&quot;ipconfig -all을 실행한 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t9OFt/btrKTo3ju1Y/cQ7kbpsq3qtK96YkBAThO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft9OFt%2FbtrKTo3ju1Y%2FcQ7kbpsq3qtK96YkBAThO1%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;979&quot; height=&quot;549&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;549&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ipconfig -all을 실행한 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 인터넷이 잘 되고 있는지 궁금하면, DNS 서버에 핑을 날려보도록 해보자. DNS는 인터넷 주소를 IP 주소로 변경시켜주는 정보를 담는 곳으로 인터넷 서비스 업체마다 DNS가 다르게 세팅이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 사용중인 DNS 서버는 164.124.101.2로 해당 DNS를 관리하는 ISP 업체는 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;LG (데이콤)&lt;br /&gt;ns.dacom.co.kr 164.124.101.2&lt;br /&gt;ns2.dacom.co.kr 203.248.240.31&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 내가 어떤 회선을 쓰는지에 따라 다르지만 일단 인터넷이 잘되는지 체크하기 위해서 DNS의 아이피에 인터넷 Ping을 쏴보도록 해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;핑 테스트&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핑 테스트를 하는 방법은 아래와 같이 Ping + 특정 아이피를 입력하는 것이다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661780859334&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ping [아이피 주소]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 4번정도 요청을 던지고 받으며, 통계를 내주게 된다. 아래는 DNS에 핑을 쏜 결과이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661781001191&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;gt;ping 164.124.101.2

Ping 164.124.101.2 32바이트 데이터 사용:
요청 시간이 만료되었습니다.
164.124.101.2의 응답: 바이트=32 시간=11ms TTL=245
164.124.101.2의 응답: 바이트=32 시간=11ms TTL=245
164.124.101.2의 응답: 바이트=32 시간=10ms TTL=245

164.124.101.2에 대한 Ping 통계:
    패킷: 보냄 = 4, 받음 = 3, 손실 = 1 (25% 손실),
왕복 시간(밀리초):
    최소 = 10ms, 최대 = 11ms, 평균 = 10ms&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보면 시작하자마자, 요청 시간이 만료되었습니다. 라고 나오며, 보냄 = 4, 받음 = 3, 손실 = 1 (25% 손실)이 뜨고 있으며 평균적으로는 10~11ms 정도로 처리를 하고 있다. 즉 현재 내 상태는 주고 받는것만 정상적으로 되면 큰 문제가 없지만, 중간중간 완전 손실이 나고 있는 상태이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금은 심하게 회선이 이상해서 4번만에 잡혔지만, 인터넷이 간헐적으로 끊기는 경우가 있는데 이때 인터넷 업체에 전화를 해도 증거가 없기 때문에 그냥 모뎀을 껐다 키라는 말만 한다. 이럴 땐 증거를 잡아야 하는데 아래와 같이 핑 테스트를 계속 하는 옵션이 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1661781173239&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ping -t [아이피 주소]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로는 위와 같이 -t를 해서 인터넷을 체크하는 경우가 많은데 아래는 -t를 해서 나온 지연 상태의 결과이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJ48FY/btrKVxLENns/OS0JAcVgRZsIKkBKNb69z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJ48FY/btrKVxLENns/OS0JAcVgRZsIKkBKNb69z1/img.png&quot; data-alt=&quot;중간에 ping이 한번 튀었다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJ48FY/btrKVxLENns/OS0JAcVgRZsIKkBKNb69z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ48FY%2FbtrKVxLENns%2FOS0JAcVgRZsIKkBKNb69z1%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;979&quot; height=&quot;512&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;중간에 ping이 한번 튀었다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 핑이 자주 튀어서 아무것도 할 수 없을 경우, 인터넷 망을 갈아타고 싶더라도 현재 수많은 이동통신사 측에서 꼼수로 해약 사유에 핑에 대한 언급이 없다. 하지만, 심각한 장애가 지속적으로 발생할 경우 충분한 해약 사유가 될 것이다. 만약에 해약을 해주지 않을 경우 인터넷 기사를 계속 불러서 괴롭히는 수밖에 없으며, 상담원이 버거울 정도로 논리정연하게 핑에 대한 얘기를 하게 되면 위약금 없이 해약이 가능한 케이스가 꽤 많다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핑이 튀는 케이스는 일반적으로 비대칭형 인터넷 서비스를 쓰는 케이스가 많은데 SK 브로드밴드와 LG U+ 모두 비대칭형 서비스를 사용중이기에 KT를 쓰는 것을 권유하고 싶다.&lt;/p&gt;</description>
      <category>IT/IT Tip</category>
      <category>KT</category>
      <category>LGU+</category>
      <category>Ping</category>
      <category>SK</category>
      <category>비대칭형</category>
      <category>핑테스트</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/785</guid>
      <comments>https://needjarvis.tistory.com/785#entry785comment</comments>
      <pubDate>Mon, 29 Aug 2022 23:11:50 +0900</pubDate>
    </item>
    <item>
      <title>[iPad] 아이패드에서 아이폰 전화 연동 해제하기</title>
      <link>https://needjarvis.tistory.com/784</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;미니 아이패드(iPad)와 일반 아이패드를 둘다 보유중이고, 아이폰까지 있다보니 전화가 한번 오면 온 곳에서 전화가 울리는 소리가 들리고, 회사에 있을 경우 전화 벨소리가 너무 시끄럽게 나서 눈치가 보일때가 있다. 어차피 아이패드로 전화를 안 받으니 전화 연동을 해제하는 방법을 찾아보기로 하였다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;아이패드_아이폰_전화연동_해제.png&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFKSM5/btrKIzceZbV/slEVDqtFgT14xxNmWe6D1K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFKSM5/btrKIzceZbV/slEVDqtFgT14xxNmWe6D1K/img.png&quot; data-alt=&quot;[iPad] 아이패드에서 아이폰 전화 연동 해제하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFKSM5/btrKIzceZbV/slEVDqtFgT14xxNmWe6D1K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFKSM5%2FbtrKIzceZbV%2FslEVDqtFgT14xxNmWe6D1K%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;860&quot; height=&quot;469&quot; data-filename=&quot;아이패드_아이폰_전화연동_해제.png&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;469&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[iPad] 아이패드에서 아이폰 전화 연동 해제하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;아이패드 설정&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아이패드의 설정 앱을 켠 후, FaceTime 설정을 들어간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_20220827_205211579.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;837&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsGjWy/btrKMonvgkO/hzNgToHyx8XL3k0L551mHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsGjWy/btrKMonvgkO/hzNgToHyx8XL3k0L551mHk/img.png&quot; data-alt=&quot;FaceTime 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsGjWy/btrKMonvgkO/hzNgToHyx8XL3k0L551mHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsGjWy%2FbtrKMonvgkO%2FhzNgToHyx8XL3k0L551mHk%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;1440&quot; height=&quot;837&quot; data-filename=&quot;edited_KakaoTalk_20220827_205211579.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;837&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;FaceTime 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FaceTime 설정창에서 iPhone 통화가 허용되어 있을텐데 위와 같이 해제를 한다. iPhone 통화를 보면 다음과 같이 적혀 있다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;iPhone이 근처에 있고 Wi-Fi에 연결되어 있는 경우, iPhone 셀룰러 계정을 사용하여 전화를 걸거나 받을 수 있습니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 허용을 해제하는 경우 전화를 걸어도 더이상 아이패드에서 응답이 안오게 된다.&lt;/p&gt;</description>
      <category>IT/IT Tip</category>
      <category>아이패드</category>
      <category>아이폰연동해제</category>
      <category>전화해제</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/784</guid>
      <comments>https://needjarvis.tistory.com/784#entry784comment</comments>
      <pubDate>Sat, 27 Aug 2022 20:58:39 +0900</pubDate>
    </item>
    <item>
      <title>[크롬] 시크릿 모드로 다운로드, 타사 쿠키 설정으로 안되는 경우</title>
      <link>https://needjarvis.tistory.com/783</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;PC방, 숙박업소 등 1회성으로 구글을 사용하기에 가장 편리한 방법은 시크릿 모드로 하는 방법입니다. 하지만 구글 드라이브에 저장된 파일을 다운로드 시도할 경우 아래와 같이 쿠키 문제로 다운로드가 안됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SQlxd/btrKkSReWmr/KBPMK8IVnTh5CKObuaLey1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SQlxd/btrKkSReWmr/KBPMK8IVnTh5CKObuaLey1/img.png&quot; data-alt=&quot;타사 쿠키 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SQlxd/btrKkSReWmr/KBPMK8IVnTh5CKObuaLey1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSQlxd%2FbtrKkSReWmr%2FKBPMK8IVnTh5CKObuaLey1%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;599&quot; height=&quot;90&quot; data-origin-width=&quot;599&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;타사 쿠키 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글에서는 공용 PC를 사용할 때에는 시크릿 모드로 하라고 하면서, 정작 구글 드라이브의 파일을 다운로드 못하는 것이 어불성설인 것 같지만, 문제의 원인과 해결책을 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;문제의 원인&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 해결책을 찾기에 앞서 &lt;u&gt;&lt;b&gt;타사 쿠키&lt;/b&gt;&lt;/u&gt;에 대해서 알아볼 필요가 있습니다. &lt;b&gt;쿠키(Cookie)&lt;/b&gt;라는 것은 웹사이트 혹은 웹을 이용하는 프로그램에서 데이터를 브라우저에 저장하여, 사이트를 원활하게 하기 위함인데 다른 사이트의 쿠키를 모두 허용할 경우 보안상에 문제가 발생하기에 일반적으로는 동일 도메인의 쿠키만 허용하는 것이 원칙입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1uyBU/btrKhlsWf4C/4CEx6K5A4eg2kPUN8bkmjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1uyBU/btrKhlsWf4C/4CEx6K5A4eg2kPUN8bkmjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1uyBU/btrKhlsWf4C/4CEx6K5A4eg2kPUN8bkmjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1uyBU%2FbtrKhlsWf4C%2F4CEx6K5A4eg2kPUN8bkmjk%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;871&quot; height=&quot;505&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠키는 이와 같이 지정된 사이트만 접근하는 것이 일반적이지만, 사용자가 특정 사이트에 접근을 해야 할 경우 설정을 통하여 사용을 할 수 있게 되는데 시크릿 모드에서도 타사 쿠키를 사용하는 것을 허용할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 문제의 원인을 알았으니 시크릿 모드에서 &quot;타사 쿠키&quot; 즉 타사에서 만든 브라우저 저장소에 접근 허용을 해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;시크릿 모드 타사 쿠키 사용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시크릿 모드의 브라우저에서 주소창 왼쪽에 있는 자물쇠 아이콘을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;770&quot; data-origin-height=&quot;472&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clj5y1/btrKhSY4PQ9/SJTDL4yX3B2qzGkHyDqZq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clj5y1/btrKhSY4PQ9/SJTDL4yX3B2qzGkHyDqZq0/img.png&quot; data-alt=&quot;자물쇠 아이콘&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clj5y1/btrKhSY4PQ9/SJTDL4yX3B2qzGkHyDqZq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fclj5y1%2FbtrKhSY4PQ9%2FSJTDL4yX3B2qzGkHyDqZq0%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;770&quot; height=&quot;472&quot; data-origin-width=&quot;770&quot; data-origin-height=&quot;472&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;자물쇠 아이콘&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 위와 같이 드롭다운 메뉴가 밑에 뜨며 메뉴들은&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;이 사이트는 보안 연결(Https)이 사용되었습니다.&lt;/li&gt;
&lt;li&gt;쿠키&lt;/li&gt;
&lt;li&gt;사이트 설정&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 3개가 있고, 이중 2번째 메뉴인 쿠키를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;517&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oJL9a/btrKloPVnPV/dYDgd8KsaWEOZG9kwS30ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oJL9a/btrKloPVnPV/dYDgd8KsaWEOZG9kwS30ik/img.png&quot; data-alt=&quot;쿠키 창&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oJL9a/btrKloPVnPV/dYDgd8KsaWEOZG9kwS30ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoJL9a%2FbtrKloPVnPV%2FdYDgd8KsaWEOZG9kwS30ik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;448&quot; height=&quot;517&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;517&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;쿠키 창&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;사용 중인 쿠키 &lt;/b&gt;창이 뜨면 위와 같이 허용 탭과 차단 탭이 보이는데 허용은 문제가 없는 것이니, 차단 탭을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;449&quot; data-origin-height=&quot;521&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xFNEE/btrKkR5XL4p/bOCWcOhbKW3KjbMCTid2gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xFNEE/btrKkR5XL4p/bOCWcOhbKW3KjbMCTid2gk/img.png&quot; data-alt=&quot;차단 탭&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xFNEE/btrKkR5XL4p/bOCWcOhbKW3KjbMCTid2gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxFNEE%2FbtrKkR5XL4p%2FbOCWcOhbKW3KjbMCTid2gk%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;449&quot; height=&quot;521&quot; data-origin-width=&quot;449&quot; data-origin-height=&quot;521&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;차단 탭&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차단 쿠키를 보면, 도메인이 google.com이 아니라 googleusercontent.com으로 되어 있는 것을 볼 수 있습니다. 쿠키의 경우 도메인이 같다면 당연히 사용이 가능한데 이와 같이 google.com이 아니기 때문에 시크릿 브라우저에서는 차단을 한 것입니다. 이제 이유를 알았으니, 허용을 선택하고, 브라우저를 리프레쉬하면, 다운로드가 받아질 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1010&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vlRkt/btrKmFp73QU/rQHTZ4HnMaliLTKDVykPe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vlRkt/btrKmFp73QU/rQHTZ4HnMaliLTKDVykPe0/img.png&quot; data-alt=&quot;다운로드가 된 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vlRkt/btrKmFp73QU/rQHTZ4HnMaliLTKDVykPe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvlRkt%2FbtrKmFp73QU%2FrQHTZ4HnMaliLTKDVykPe0%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;1010&quot; height=&quot;568&quot; data-origin-width=&quot;1010&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다운로드가 된 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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>IT/IT Tip</category>
      <category>구글드라이브</category>
      <category>시크릿모드</category>
      <category>쿠키허용</category>
      <category>타사쿠키</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/783</guid>
      <comments>https://needjarvis.tistory.com/783#entry783comment</comments>
      <pubDate>Tue, 23 Aug 2022 11:26:29 +0900</pubDate>
    </item>
    <item>
      <title>아이폰 사진, HEIC 설정을 JPEG(JPG)로 변경하기</title>
      <link>https://needjarvis.tistory.com/782</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 컴퓨터에서는 아이폰에 있는 사진을 포스팅으로 올릴 때, 카카오톡으로 먼저 보내고 옮겼기 때문에 HEIC의 불편함을 딱히 느끼지 못하였습니다만, 맥북으로 포스팅을 하려고 하니 에어드랍(AirDrop)을 사용하여 HEIC의 불편함을 느끼게 되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론, 맥북도 카톡이 되니 카톡으로 보낸 후, 사진을 올려도 상관이 없지만 갓드랍이 있는데 카톡을 써야 할 이유가 없어서 용량의 압박이 있을 순 있지만, JPG 설정으로 변경해보았습니다.&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;&lt;b&gt;아이폰 JPG 설정 변경&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아이폰에서 설정 메뉴로 들어갑니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2022-08-14-04-09-56.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsAEaI/btrJAHXZNtw/QoJNYEzkvk1RK3UcUvK1F0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsAEaI/btrJAHXZNtw/QoJNYEzkvk1RK3UcUvK1F0/img.png&quot; data-alt=&quot;설정메뉴&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsAEaI/btrJAHXZNtw/QoJNYEzkvk1RK3UcUvK1F0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsAEaI%2FbtrJAHXZNtw%2FQoJNYEzkvk1RK3UcUvK1F0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;889&quot; data-filename=&quot;KakaoTalk_Photo_2022-08-14-04-09-56.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;설정메뉴&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정 창에서 카메라 설정을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2022-08-14-04-10-03.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LcKBh/btrJELko5dX/9xi6hsPtUdUipklqr3Wf0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LcKBh/btrJELko5dX/9xi6hsPtUdUipklqr3Wf0K/img.png&quot; data-alt=&quot;카메라 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LcKBh/btrJELko5dX/9xi6hsPtUdUipklqr3Wf0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLcKBh%2FbtrJELko5dX%2F9xi6hsPtUdUipklqr3Wf0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;889&quot; data-filename=&quot;KakaoTalk_Photo_2022-08-14-04-10-03.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;카메라 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 포맷, 비디오 녹화, 슬로모션 녹화 등등 다양한 설정이 나오는데 최상단에 위치한 포맷을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_Photo_2022-08-14-04-10-09.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;664&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7OG12/btrJD4R3sZe/2G4cHKk5ZM6kksxuzRkDv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7OG12/btrJD4R3sZe/2G4cHKk5ZM6kksxuzRkDv0/img.png&quot; data-alt=&quot;포맷 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7OG12/btrJD4R3sZe/2G4cHKk5ZM6kksxuzRkDv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7OG12%2FbtrJD4R3sZe%2F2G4cHKk5ZM6kksxuzRkDv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;889&quot; data-filename=&quot;edited_KakaoTalk_Photo_2022-08-14-04-10-09.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;664&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;포맷 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존의 설정은 고효율성으로 되어 있을텐데요. 위와 같이 높은 호환성으로 변경을 합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;파일 크기를 줄이려면 사진 및 비디오를 고효율성 HEIF/HEVC 포맷으로 캡처하십시오. '높은 호환성'은 항상 JPEG/H.264를 사용하지만 4K - 60fps 및 1080p - 240fps는 고효율성이 필요합니다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 내용을 읽어보면 높은 호환성을 써야 할 필요성이 있다면 써야 겠지만 고효율성을 쓰는 것이 좋으며, 4K - 60fps 및 1080p - 240fps는 고효율성으로 해야 한다라는 것입니다.&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;즉 저처럼 포스팅을 올리는 사람이 아니라면, 고효율성을 찍는 것이 낫겠지만 사진을 찍는 이유 중 상당수가 포스팅에 있다면 높은 호환성이 더 맞을거라 생각합니다. 사실 이 모든 것은 티스토리가 HEIF를 지원하면 되는 것인데 언제쯤 지원이 될지는 모르겠네요. 위와 같이 설정을 하였다면 이제 HEIC로 찍히지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;JPEG로 찍힌 사진&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_IMG_5510.JPG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yNdBW/btrJBKNN3yn/558osipYUl1aJrVfTUFkn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yNdBW/btrJBKNN3yn/558osipYUl1aJrVfTUFkn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yNdBW/btrJBKNN3yn/558osipYUl1aJrVfTUFkn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyNdBW%2FbtrJBKNN3yn%2F558osipYUl1aJrVfTUFkn0%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;800&quot; height=&quot;600&quot; data-filename=&quot;edited_IMG_5510.JPG&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 포스팅하고 있는 화면을 사진으로 찍었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2022-08-14 오전 4.16.46.png&quot; data-origin-width=&quot;2064&quot; data-origin-height=&quot;642&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/diwGGk/btrJBml760p/lITOK4OrgOnc5QgsnRTT6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/diwGGk/btrJBml760p/lITOK4OrgOnc5QgsnRTT6k/img.png&quot; data-alt=&quot;용량 차이&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/diwGGk/btrJBml760p/lITOK4OrgOnc5QgsnRTT6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdiwGGk%2FbtrJBml760p%2FlITOK4OrgOnc5QgsnRTT6k%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;2064&quot; height=&quot;642&quot; data-filename=&quot;edited_스크린샷 2022-08-14 오전 4.16.46.png&quot; data-origin-width=&quot;2064&quot; data-origin-height=&quot;642&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;용량 차이&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하단의 IMG_5506.HEIC 등을 보면 평균 1~2MB 정도 되는데 컴퓨터를 찍은 사진을 보면 4.1MB로 용량이 약 2~4배 늘어난 것을 확인할 수 있습니다.&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>IT/IT Tip</category>
      <category>HEIC</category>
      <category>JPEG</category>
      <category>JPG</category>
      <category>아이폰</category>
      <category>카메라설정</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/782</guid>
      <comments>https://needjarvis.tistory.com/782#entry782comment</comments>
      <pubDate>Sun, 14 Aug 2022 04:22:14 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] 뷰(View) 생성 이유 및 뷰 생성,수정,삭제,조회</title>
      <link>https://needjarvis.tistory.com/781</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;뷰(View)의 생성 목적&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뷰(View)는 관리 측면과 사용성 편의, 유지 보수, 보안 등을 위해서 사용하는 기법이다. 쿼리(Query)가 복잡할 경우 이를 프로그램으로 구현하게 되면 유지보수가 잘 안될 수도 있고, 초급 개발자의 경우 실수를 범할 수 있다. 게다가 쿼리 및 테이블을 공개해야 할 경우 보안 측면에서 문제가 발생할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;mysql_view.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcBSfJ/btrJAHXwQM7/fENJQSC6BHGxkmQ29jsfG0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcBSfJ/btrJAHXwQM7/fENJQSC6BHGxkmQ29jsfG0/img.jpg&quot; data-alt=&quot;[MySQL] 뷰(View) 생성 이유 및 뷰 생성,수정,삭제,조회&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcBSfJ/btrJAHXwQM7/fENJQSC6BHGxkmQ29jsfG0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcBSfJ%2FbtrJAHXwQM7%2FfENJQSC6BHGxkmQ29jsfG0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;484&quot; data-filename=&quot;mysql_view.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[MySQL] 뷰(View) 생성 이유 및 뷰 생성,수정,삭제,조회&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 뷰는 어떤 하나의 목적으로 사용하는 것이 아니라, 편의성, 보안성, 유지 보수 등의 다양한 이유로 인해서 사용하는 것이라 생각하면 된다. 즉 위 내용을 간단히 정리하자면 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;편의성&lt;/b&gt; : 복잡한 쿼리를 단축 시켜 놓기 때문에 개발을 보다 쉽게 진행할 수 있다&lt;/li&gt;
&lt;li&gt;&lt;b&gt;보안성 &lt;/b&gt;: 테이블 명칭과 컬럼 명칭을 숨길 수 있기 때문에 보안성이 뛰어나다&lt;/li&gt;
&lt;li&gt;&lt;b&gt;유지보수성 &lt;/b&gt;: 코드가 단축되기 때문에 유지보수에 유리하다&lt;/li&gt;
&lt;/ul&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;b&gt;뷰(View) 생성 방법&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1660306953626&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE VIEW 뷰명칭 AS
SELECT 필드1, 필드2, ...
FROM 테이블
WHERE 조건&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쉽게 생각하면 뷰는 위에 보다시피, Select 쿼리 위에 create view [뷰명칭] as를 넣으면 된다. 그럼 이해를 쉽게 돕기 위해 예제를 참고해 보도록 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;882&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AP9V4/btrJC5Jqw7p/mRKakKAbt2THLVLPJQuX31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AP9V4/btrJC5Jqw7p/mRKakKAbt2THLVLPJQuX31/img.png&quot; data-alt=&quot;간단한 유니온 쿼리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AP9V4/btrJC5Jqw7p/mRKakKAbt2THLVLPJQuX31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAP9V4%2FbtrJC5Jqw7p%2FmRKakKAbt2THLVLPJQuX31%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;882&quot; height=&quot;336&quot; data-origin-width=&quot;882&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;간단한 유니온 쿼리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 화면은 구조가 간단한 테이블 2개를 유니온 하여 보여주고 있다. 이 유니온으로 완성된 쿼리를 뷰(View)를 사용하여 테이블을 숨기고 보다 심플하게 바꿔보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;예제 뷰 생성&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1660308427536&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;create view content_vw as 
select title, content, 'CONTENT' as category
from content_tbl
union all
select title, contents as content, 'NEWS' as category
from news_tbl&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;쿼리에 이상이 없다면 아래와 같이 DbTool에 있는 Views 항목에 View가 만들어진 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;59&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YPkRQ/btrJBl0OxyO/eytUI4vGBouwy7LigcfkUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YPkRQ/btrJBl0OxyO/eytUI4vGBouwy7LigcfkUK/img.png&quot; data-alt=&quot;view 생성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YPkRQ/btrJBl0OxyO/eytUI4vGBouwy7LigcfkUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYPkRQ%2FbtrJBl0OxyO%2FeytUI4vGBouwy7LigcfkUK%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;261&quot; height=&quot;59&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;59&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;view 생성&lt;/figcaption&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;&lt;b&gt;생성 결과&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nVSk3/btrJABDnChN/PkrxRY0QpFinMkeiVySAd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nVSk3/btrJABDnChN/PkrxRY0QpFinMkeiVySAd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nVSk3/btrJABDnChN/PkrxRY0QpFinMkeiVySAd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnVSk3%2FbtrJABDnChN%2FPkrxRY0QpFinMkeiVySAd1%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;1092&quot; height=&quot;277&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;277&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;생성된 뷰는 언제든지 수정할 수 삭제할 수 있다. 일단 만들어진 뷰를 확인해보면 테이블의 데이터를 기반으로 자동으로 Data Type이 지정된 것을 볼 수 있다. category라는 컬럼은 문자열을 출력하는 컬럼이다보니, 테이블에 없지만 뷰는 자동으로 가장 큰 문자열 크기로 Data Type이 지정되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;뷰(View) 조회&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만들어진 뷰는 언제든지 테이블처럼 쓸 수 있으며 테이블의 결과를 조회하는 방식과 동일하다.&lt;/p&gt;
&lt;pre id=&quot;code_1660308870719&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 컬럼1, 컬럼2 ... 컬럼n
FROM 뷰이름
WHERE 조건절&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;&lt;b&gt;뷰(View) 조회 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1105&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cd1p59/btrJABpK9q4/Ae83KgKYl2lqdAiJOYauN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cd1p59/btrJABpK9q4/Ae83KgKYl2lqdAiJOYauN0/img.png&quot; data-alt=&quot;뷰 조회 결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cd1p59/btrJABpK9q4/Ae83KgKYl2lqdAiJOYauN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcd1p59%2FbtrJABpK9q4%2FAe83KgKYl2lqdAiJOYauN0%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;1105&quot; height=&quot;459&quot; data-origin-width=&quot;1105&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;뷰 조회 결과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;뷰(View) 수정&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1660309074216&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ALTER VIEW 뷰이름 AS
SELECT 컬럼1, 컬럼2, ...
FROM 테이블&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뷰 수정 방식은 CREATE 대신 ALTER만 사용하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;503&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDFmeG/btrJApwmuDc/DKKktvIEZamQVhfTKP87S1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDFmeG/btrJApwmuDc/DKKktvIEZamQVhfTKP87S1/img.png&quot; data-alt=&quot;alter 구문&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDFmeG/btrJApwmuDc/DKKktvIEZamQVhfTKP87S1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDFmeG%2FbtrJApwmuDc%2FDKKktvIEZamQVhfTKP87S1%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;847&quot; height=&quot;503&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;503&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;alter 구문&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 화면은 content_vw에서 category 컬럼을 alter로 제거한 것의 캡쳐 화면이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;338&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCsdHt/btrJAJnu4eG/WLNM2OM7DLVNoyb0STkHP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCsdHt/btrJAJnu4eG/WLNM2OM7DLVNoyb0STkHP0/img.png&quot; data-alt=&quot;카테고리가 사라진 결과 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCsdHt/btrJAJnu4eG/WLNM2OM7DLVNoyb0STkHP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCsdHt%2FbtrJAJnu4eG%2FWLNM2OM7DLVNoyb0STkHP0%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;1086&quot; height=&quot;338&quot; data-origin-width=&quot;1086&quot; data-origin-height=&quot;338&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;카테고리가 사라진 결과 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;category 컬럼이 사라진 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;뷰(View) 삭제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뷰를 더이상 사용하지 않을 경우, 아래와 같은 명령어로 삭제할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1660309529090&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;DROP VIEW 뷰이름&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zJ1ON/btrJBGjg3lb/n1lxAf6EZltDYko1LCsYP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zJ1ON/btrJBGjg3lb/n1lxAf6EZltDYko1LCsYP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zJ1ON/btrJBGjg3lb/n1lxAf6EZltDYko1LCsYP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzJ1ON%2FbtrJBGjg3lb%2Fn1lxAf6EZltDYko1LCsYP1%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;558&quot; height=&quot;222&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;222&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;drop view content_vw로 성공적으로 view가 삭제된 화면이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;189&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWG29N/btrJAIB9CKP/BcOUFt8r73rPqz42kB6QbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWG29N/btrJAIB9CKP/BcOUFt8r73rPqz42kB6QbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWG29N/btrJAIB9CKP/BcOUFt8r73rPqz42kB6QbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWG29N%2FbtrJAIB9CKP%2FBcOUFt8r73rPqz42kB6QbK%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;554&quot; height=&quot;189&quot; data-origin-width=&quot;554&quot; data-origin-height=&quot;189&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;삭제가 되었는데 위와 같이 select를 날릴 시 SQL Error [1146] [42S02]: (conn=18) Table [뷰이름] doesn't exist 에러가 발생하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;MySQL 관련 포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/778&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[MySQL] Union으로 테이블 합치기&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660310045486&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;[MySQL] Union으로 테이블 합치기&quot; data-og-description=&quot;포스팅에 앞서 MySQL과 MariaDB는 사실상 동일한 DB이기 때문에 본 포스팅은 MariaDB에서도 적용됩니다. UNION의 개념 우리가 하나의 쿼리안에 다양한 테이블의 정보를 담기 위해서는 서브쿼리와 조인(J&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/778&quot; data-og-url=&quot;https://needjarvis.tistory.com/778&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cMxou8/hyPq5Jqihv/EKzDm1bvT1uvaBvYqbd8TK/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/fp6ju/hyPpxU7pKl/kgMxDRppM8cuHgujtlucX1/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/mS9s6/hyPpAK3Uca/kZ4iXFemsWVXyeDKsL60K0/img.png?width=1390&amp;amp;height=437&amp;amp;face=0_0_1390_437&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/778&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/778&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cMxou8/hyPq5Jqihv/EKzDm1bvT1uvaBvYqbd8TK/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/fp6ju/hyPpxU7pKl/kgMxDRppM8cuHgujtlucX1/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/mS9s6/hyPpAK3Uca/kZ4iXFemsWVXyeDKsL60K0/img.png?width=1390&amp;amp;height=437&amp;amp;face=0_0_1390_437');&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;[MySQL] Union으로 테이블 합치기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;포스팅에 앞서 MySQL과 MariaDB는 사실상 동일한 DB이기 때문에 본 포스팅은 MariaDB에서도 적용됩니다. UNION의 개념 우리가 하나의 쿼리안에 다양한 테이블의 정보를 담기 위해서는 서브쿼리와 조인(J&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/746&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[MySQL] group_concat 사용법 모음 (문자열 구분자 묶음)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660310062487&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;[MySQL] group_concat 사용법 모음 (문자열 구분자 묶음)&quot; data-og-description=&quot;여러개의 Row로 되어 있는 데이터를 한개의 값으로 묶어서 가지고 오고 싶을 경우, MySQL(혹은 MariaDB)에서는 Group_Concat을 사용하여 처리할 수 있다. 실행 예시 테이블 생성 CREATE TABLE &amp;#96;stock&amp;#96; ( &amp;#96;stock_i..&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/746&quot; data-og-url=&quot;https://needjarvis.tistory.com/746&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/yyxOC/hyPqUnBsTS/sus17zqO0fyXTkY5ul8JLk/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/cWoRwl/hyPq4Rh2Qu/YhJP7WgYkubH1O3xLlElM0/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/co1hkY/hyPq0BlLvk/rj4R14JX4WVXkobdd36D90/img.jpg?width=860&amp;amp;height=484&amp;amp;face=0_0_860_484&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/746&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/746&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/yyxOC/hyPqUnBsTS/sus17zqO0fyXTkY5ul8JLk/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/cWoRwl/hyPq4Rh2Qu/YhJP7WgYkubH1O3xLlElM0/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/co1hkY/hyPq0BlLvk/rj4R14JX4WVXkobdd36D90/img.jpg?width=860&amp;amp;height=484&amp;amp;face=0_0_860_484');&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;[MySQL] group_concat 사용법 모음 (문자열 구분자 묶음)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;여러개의 Row로 되어 있는 데이터를 한개의 값으로 묶어서 가지고 오고 싶을 경우, MySQL(혹은 MariaDB)에서는 Group_Concat을 사용하여 처리할 수 있다. 실행 예시 테이블 생성 CREATE TABLE `stock` ( `stock_i..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[MySQL] date_format 설정 (날짜 포맷 변경)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660310078130&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;[MySQL] date_format 설정 (날짜 포맷 변경)&quot; data-og-description=&quot;MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/748&quot; data-og-url=&quot;https://needjarvis.tistory.com/748&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dMp3AM/hyPq3EQkw8/KIeoEOPsSRFY3XvkFZjJB0/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/bsUrhd/hyPq5JqjdZ/NfKmo5AkRhBYRIOJNcSqj0/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/DiJNa/hyPq3x4PeI/PXCq6hroXJrk07DjKXDaNk/img.jpg?width=860&amp;amp;height=573&amp;amp;face=0_0_860_573&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/748&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dMp3AM/hyPq3EQkw8/KIeoEOPsSRFY3XvkFZjJB0/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/bsUrhd/hyPq5JqjdZ/NfKmo5AkRhBYRIOJNcSqj0/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/DiJNa/hyPq3x4PeI/PXCq6hroXJrk07DjKXDaNk/img.jpg?width=860&amp;amp;height=573&amp;amp;face=0_0_860_573');&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;[MySQL] date_format 설정 (날짜 포맷 변경)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.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;</description>
      <category>빅데이터 및 DB/MySQL</category>
      <category>mariadb</category>
      <category>MySQL</category>
      <category>view</category>
      <category>뷰삭제</category>
      <category>뷰생성</category>
      <category>뷰수정</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/781</guid>
      <comments>https://needjarvis.tistory.com/781#entry781comment</comments>
      <pubDate>Fri, 12 Aug 2022 22:14:58 +0900</pubDate>
    </item>
    <item>
      <title>과적합을 해결하는 드롭아웃(Dropout)과 사용법</title>
      <link>https://needjarvis.tistory.com/780</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;머신러닝 그중에 신경망은 딥러닝(Deep Learning) 시대로 넘어오고나서 빅데이터의 등장, GPU, 딥러닝 프레임워크(ex: tensorflow, torch 등), 옵티마이저 등등으로 인해 엄청난 발전을 이루게 되었다. 하지만, 양이 있으면 음도 있는 법 모든 시스템이 딥러닝에 적합한 것은 아니었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히, 데이터가 풍부하지 못하거나 너무 많은 특징(Feature)를 가지고 있는 시스템의 경우 과적합(Overfitting) 이라는 문제가 발생하였는데 이 문제는 학습 데이터에 지나치게 학습되어 실제 운영 데이터에 제대로 된 결과를 보여주지 못하는 문제였다.&lt;/p&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;그리고 이번에 소개할 드롭아웃(Dropout)은 딥러닝 코드에 간단히 설정만 하여 과적합을 어느정도 해소할 수 있는 개념이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;dropout.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkvOUZ/btrJryyhTRV/UpeSHkrzhpmuJaHs2qQQoK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkvOUZ/btrJryyhTRV/UpeSHkrzhpmuJaHs2qQQoK/img.jpg&quot; data-alt=&quot;과적합을 해결하는 드롭아웃(Dropout)과 사용법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkvOUZ/btrJryyhTRV/UpeSHkrzhpmuJaHs2qQQoK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkvOUZ%2FbtrJryyhTRV%2FUpeSHkrzhpmuJaHs2qQQoK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;484&quot; data-filename=&quot;dropout.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;과적합을 해결하는 드롭아웃(Dropout)과 사용법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;드롭아웃(Dropout)의 이해하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적절한 이성을 소개시켜주는 앱을 딥러닝으로 만들고 있다고 해보자. 그러나 우리에게 누가 누구를 좋아하는지에 대한 데이터가 10,000건 정도밖에 없다고 가정을 해보자. 그리고 데이터가 충분치 않기 때문에 이 데이터를 모조리 학습(Training)에 사용했다고 가정을 해보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;누군가를 좋아하는데 사용할 값으로 눈의 모양, 코의 모양, 얼굴 모양, 입의 모양, 피부색, 키, 몸무게, 연봉, 학력 등등이 있을 것이고, 이 값들을 조합하면 총 10만가지가 나온다고 할 경우, 한 사람의 행동 값을 어떤 사람에게 추천할 것이고 너무 Fit한 데이터로 인해서 예상치 못한 결과를 추천하게 될 수도 있다.&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;물론 이 케이스가 맞을수도 있고 틀릴 수도 있지만 이렇게 과적합 된 문제는 예측하지 못한 이상한 결과를 내뱉을 수 있다는 것이 문제다. 아래는 Underfitted, Good Fit, Overfitted 관련된 그래프로 과적합의 모형이 얼마나 이상한지를 알 수 있다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H6XA0/btrJp0oK4gH/COSefYmKfM5ca3jMZrxNS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H6XA0/btrJp0oK4gH/COSefYmKfM5ca3jMZrxNS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H6XA0/btrJp0oK4gH/COSefYmKfM5ca3jMZrxNS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH6XA0%2FbtrJp0oK4gH%2FCOSefYmKfM5ca3jMZrxNS1%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;1125&quot; height=&quot;391&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;391&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;드롭아웃은 학습할 때 특징의 일부를 날려버린다. Overfit을 감소 시켜 준다. 예를 들어, A라는 사람이 어떤 여성의 총 10가지의 특징을 보고 좋아했다고 한다면, 학습을 할 때 4가지 정도를 날려버린다는 것이다. 그게 얼굴 모형이 될수도 있고, 코 모양이 될 수도 있고 되도록이면 안 날리는 것이 중요하겠지만, 제대로 된 학습 모형을 만들기 위해서 오버핏한 데이터의 일부를 날려버린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면, 데이터가 느슨해지기 때문에 다양한 케이스에 모델이 대응을 할 수 있게 된다. 내부적으로는 정확도는 떨어지겠지만 더 많은 데이터를 학습한 것과 같은 효과가 나타나게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;텐서플로우(Tensorflow), 케라스(Keras) 예시&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1660120335129&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;model = tf.keras.models.Sequential()
model.add(keras.layers.Dense(N_HIDDEN,
                             input_shape=(RESHAPED,),
                             name='dense_layer', activation='relu'))
model.add(keras.layers.Dropout(0.3))
model.add(keras.layers.Dense(N_HIDDEN,
                             name='dense_layer_2', activation='relu'))
model.add(keras.layers.Dropout(0.3))
model.add(keras.layers.Dense(NB_CLASSES,
                             name='dense_layer_3', activation='softmax'))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;드롭아웃을 추가하는 것은 매우 간단하다. 레이어 사이에 위와 같이 Dropout layer를 추가하면 되기 때문이다. 비율은 삭제할 노드의 비율이며, 노드는 무작위로 삭제한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;파이토치(Pytorch) 예시&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1660120853120&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;self.layers = nn.Sequential(
nn.Flatten(),
nn.Linear(14 * 14 * 1, 32),
nn.Dropout(p=0.25),
nn.ReLU(),
nn.Linear(32, 16),
nn.Dropout(p=0.25),
nn.ReLU(),
nn.Linear(16, 5)
)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이토치 역시, 케라스와 사용방법이 유사하다. 중간에 Dropout(p=0.25)와 같이 무작위로 0을 만들 확률을 넣어주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능 및 데이터과학/인공지능 기술</category>
      <category>Dropout</category>
      <category>드랍아웃</category>
      <category>드롭아웃</category>
      <category>딥러닝</category>
      <category>케라스</category>
      <category>파이토치</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/780</guid>
      <comments>https://needjarvis.tistory.com/780#entry780comment</comments>
      <pubDate>Wed, 10 Aug 2022 18:40:43 +0900</pubDate>
    </item>
    <item>
      <title>애플페이를 대신하는 애플워치 결제, 연속 적립 이벤트</title>
      <link>https://needjarvis.tistory.com/779</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아이폰을 사용하는 사람들에게 한가지를 준다고 한다면 뭘 받고 싶어할까? 그건 아마도 &quot;삼성페이&quot;가 아닐까 싶다. 삼성페이가 내장된 갤럭시폰을 사용하게되면, 휴대폰 하나로 일상을 살아갈 수 있을 정도이기 때문에 삶의 질의 엄청 크게 개선이 된다. 매년 아이폰 유저들은 &quot;애플페이&quot;의 지원 발표를 기달리고 있지만, 애플에게 대한민국이란 삼성공화국이며 실제 아이폰을 쓰는 유저들이 많은 편이 아니라서 애플 페이를 지원해줄 가능성이 현재로선 매우 적어보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러다보니 최근 들어서 많은 업체들이 삼성페이를 간접적으로 아이폰에 할 수 있는 다양한 방식을 지원하고 있는데 장비를 개별적으로 구매해야 하는 금전적인 부분과 번거로움이 있기 때문에 그냥 카드 케이스를 쓰고 말지 하는 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;애플워치_페이결제.jpg&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7qoqc/btrJhjO5vII/abt2GC72N4LyBoGkfuM3tK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7qoqc/btrJhjO5vII/abt2GC72N4LyBoGkfuM3tK/img.jpg&quot; data-alt=&quot;[애플 워치] 애플페이를 대신하는 애플워치 결제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7qoqc/btrJhjO5vII/abt2GC72N4LyBoGkfuM3tK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7qoqc%2FbtrJhjO5vII%2Fabt2GC72N4LyBoGkfuM3tK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;852&quot; height=&quot;300&quot; data-filename=&quot;애플워치_페이결제.jpg&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[애플 워치] 애플페이를 대신하는 애플워치 결제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;애플 워치 결제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 최근 네이버페이를 비롯하여 카카오페이 등에서 휴대폰을 이용한 결제 시스템을 만들어서 눈길을 끌고 있다. 바로 애플워치에서 해당 페이를 불러내면 QR 코드가 생성되는데 이걸로 결제를 하면 되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실, 카카오페이를 불러서 바코드(Barcode)로 결제하는 방법이 이미 존재하지만, 갤럭시 폰들이 휴대폰으로 띡~ 하니 결제하는 모습에 부러움을 샀다면 애플워치로 결제를 하면 뭔가 &quot;간지&quot;가 나기 때문에 차츰 많은 업체들과 제휴를 늘릴 것으로 보인다. 물론 교통수단의 티머니 같은 것은 아직까지는 불가능하지만 말이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결제를 할 때 조금 더 있어 보일려면 애플워치를 켜고, 앱이름(ex: 네이버페이)을 외쳐서 앱을 띄운 후, 네이버페이(혹은 카카오페이) OR 등록된 카드들을 선택하면 QR 코드가 생기면서 결제를 진행할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;kakaotv&quot; data-video-url=&quot;https://tv.kakao.com/v/431049256&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/cr1qrI/hyPmhSpAzV/KUEK8zVT1lrIM5BhFWKkNK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/7bQqL/hyPl7WArsx/whJf6bpg8oHHpaukR92km0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-play-service=&quot;daum_tistory&quot;&gt;&lt;iframe src=&quot;https://play-tv.kakao.com/embed/player/cliplink/431049256?service=daum_tistory&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;애플워치로 네이버페이 띄우기&lt;/figcaption&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;영상에서 QR코드 나오는 부분은 혹시 몰라서 중지를 시켰다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;포인트 2배 뽑기 영상&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 네이버페이로 결제를 하면 &lt;span style=&quot;background-color: #ffffff; color: #a5a5a5;&quot;&gt;[현장결제]포인트뽑기-페이앱 한번 더 혜택 &lt;/span&gt;이벤트로 포인트 2배 뽑는 것을 주게 되는데 1만원 조금 넘게 결제하였는데 대박 포인트가 나와버렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;435&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brzFDh/btrJcENXAg1/JmE5Skyo90zVMrJnpg4SKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brzFDh/btrJcENXAg1/JmE5Skyo90zVMrJnpg4SKk/img.png&quot; data-alt=&quot;대박 포인트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brzFDh/btrJcENXAg1/JmE5Skyo90zVMrJnpg4SKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrzFDh%2FbtrJcENXAg1%2FJmE5Skyo90zVMrJnpg4SKk%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;600&quot; height=&quot;435&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;대박 포인트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;442&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sx3bu/btrJeq9KevO/RDin4oIXDjJsumkKHZNY9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sx3bu/btrJeq9KevO/RDin4oIXDjJsumkKHZNY9K/img.png&quot; data-alt=&quot;한번 더 뽑게 해준다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sx3bu/btrJeq9KevO/RDin4oIXDjJsumkKHZNY9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fsx3bu%2FbtrJeq9KevO%2FRDin4oIXDjJsumkKHZNY9K%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;595&quot; height=&quot;442&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;442&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;한번 더 뽑게 해준다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 아래와 같이 최종적으로 2420원이 포인트가 축적되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;456&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kPlqS/btrJikUwKVG/4KzkkiPxwpXKNuGOXliKtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kPlqS/btrJikUwKVG/4KzkkiPxwpXKNuGOXliKtk/img.png&quot; data-alt=&quot;네이버페이 내역&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kPlqS/btrJikUwKVG/4KzkkiPxwpXKNuGOXliKtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkPlqS%2FbtrJikUwKVG%2F4KzkkiPxwpXKNuGOXliKtk%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;943&quot; height=&quot;456&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;456&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;네이버페이 내역&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금은 이벤트 기간이라 이렇게 엄청나게(이날 최대 20% 포인트를 받았다) 많이 주는것으로 보이며, 이벤트가 끝나면 이런 혜택은 당연히 사라지니 현재로서는 최대한 네이버페이를 사용하는 것이 맞을 것 같다. (카드 혜택이 엄청 크신 분들은 카드 사용하시면 될테고)&lt;/p&gt;</description>
      <category>IT/IT Tip</category>
      <category>20%적립</category>
      <category>네이버페이</category>
      <category>애플워치</category>
      <category>이벤트</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/779</guid>
      <comments>https://needjarvis.tistory.com/779#entry779comment</comments>
      <pubDate>Mon, 8 Aug 2022 22:49:27 +0900</pubDate>
    </item>
    <item>
      <title>[MySQL] Union으로 테이블 합치기</title>
      <link>https://needjarvis.tistory.com/778</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;포스팅에 앞서 MySQL과 MariaDB는 사실상 동일한 DB이기 때문에 본 포스팅은 MariaDB에서도 적용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;mysql_유니온_테이블합치기.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oo9qR/btrI12A5qIt/b2qqo2hWK1KqBFshKwdo4K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oo9qR/btrI12A5qIt/b2qqo2hWK1KqBFshKwdo4K/img.jpg&quot; data-alt=&quot;[MySQL] Union으로 테이블 합치기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oo9qR/btrI12A5qIt/b2qqo2hWK1KqBFshKwdo4K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foo9qR%2FbtrI12A5qIt%2Fb2qqo2hWK1KqBFshKwdo4K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;450&quot; data-filename=&quot;mysql_유니온_테이블합치기.jpg&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[MySQL] Union으로 테이블 합치기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;UNION의 개념&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리가 하나의 쿼리안에 다양한 테이블의 정보를 담기 위해서는 서브쿼리와 조인(Join)등의 방식으로 데이터를 표현하곤 합니다. 하지만 다른 테이블이지만 각각의 테이블의 내용을 동일한 컬럼에 담아서 표현하고 싶을 경우 어떻게 해야 할까요? 바로 이럴때 사용하는 것이 유니온(UNION) 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;데이터 예시&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1390&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJ5EOb/btrI6dBAXvz/zd1TW2pG9aya5Y6L2bNdiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJ5EOb/btrI6dBAXvz/zd1TW2pG9aya5Y6L2bNdiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJ5EOb/btrI6dBAXvz/zd1TW2pG9aya5Y6L2bNdiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ5EOb%2FbtrI6dBAXvz%2Fzd1TW2pG9aya5Y6L2bNdiK%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;1390&quot; height=&quot;437&quot; data-origin-width=&quot;1390&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유니온의 사용법을 알려드리기 위해 비슷한 구조의 테이블을 2개 만들었습니다. 하나는 블로그의 정보를 넣으려고 하는 content_tbl이고, 다른 하나는 뉴스의 정보를 넣으려고 하는 news_tbl입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;UNION 명령어&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 둘의 데이터를 한번에 하나의 쿼리로 표현하는 방법은 UNION을 쓰면 되는데요. 바로 아래와 같이 간단하게 유니온 명령어를 테이블 쿼리간에 넣어주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1659861033201&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT 필드1,... 필드N
FROM 테이블이름
UNION
SELECT 필드1,... 필드N
FROM 테이블이름&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;사용법이 매우 간단합니다. 다만 여기서 알아두셔야 하는 것은 테이블에서 호출하는 필드들의 순서와 유형이 비슷해야 된다는 것입니다. 만약 형(ex: 하나는 문자열, 하나는 숫자형)이 다르다면, 좀 더 범용적인 형태(ex: 숫자를 문자로)로 형변환을 시켜주게 될 경우 사용이 가능해집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;UNION 실습&lt;/b&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1659861223234&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;select title, content
from content_tbl
union
select title, contents
from news_tbl&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 실습을 위해 위와 같이 콘텐츠 테이블을 먼저 호출하였고, 두번째는 뉴스 테이블을 호출하였습니다. 여기서 둘간의 필드 타입이 동일하지는 않지만, 궁극적으로 텍스트이다보니 별다른 문제 없이 UNION이 출력되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;305&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DHeW8/btrI3uxuII3/RcI1bA43n0C2rDv6KNhO21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DHeW8/btrI3uxuII3/RcI1bA43n0C2rDv6KNhO21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DHeW8/btrI3uxuII3/RcI1bA43n0C2rDv6KNhO21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDHeW8%2FbtrI3uxuII3%2FRcI1bA43n0C2rDv6KNhO21%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;1262&quot; height=&quot;305&quot; data-origin-width=&quot;1262&quot; data-origin-height=&quot;305&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;UNION은 여러개의 테이블을 합쳐서 출력을 하는 거지만, 여기서 테이블은 같은 테이블을 동시에 호출할 수도 있습니다. 하지만 UNION의 경우 아래와 같이 동일한 테이블 2개를 합쳐도 한개의 결과만 나오게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;770&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZZ7MJ/btrI7MqBD3N/ICdpFxZF69EjQpKwuvMNwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZZ7MJ/btrI7MqBD3N/ICdpFxZF69EjQpKwuvMNwK/img.png&quot; data-alt=&quot;UNION으로 중복제거&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZZ7MJ/btrI7MqBD3N/ICdpFxZF69EjQpKwuvMNwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZZ7MJ%2FbtrI7MqBD3N%2FICdpFxZF69EjQpKwuvMNwK%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;770&quot; height=&quot;328&quot; data-origin-width=&quot;770&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;UNION으로 중복제거&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 된 이유는 UNION은 내부적으로 중복된 데이터를 출력하지 않기 때문입니다. 보편적으로 중복된 데이터를 출력하지 않는 것은 문제가 없을법 하지만, 중복된 데이터도 필요한 케이스도 분명 있을 것입니다. 예를 들어 학습을 위해서 데이터를 Select 하였는데 데이터가 중복처리되어 삭제가 된다면 자주 등장한다는 사실을 알기 힘들게 될 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;UNION ALL&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이럴 때 쓰는 것이 UNION 우측에 ALL을 추가하면 됩니다. 그러면 중복된 데이터도 모두 호출되어 데이터 유실을 방지합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWEtn7/btrI2Vam6of/W06KQnmUHOTPtoeVN6Jk90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWEtn7/btrI2Vam6of/W06KQnmUHOTPtoeVN6Jk90/img.png&quot; data-alt=&quot;UNION ALL을 하여 중복된 데이터도 표현된 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWEtn7/btrI2Vam6of/W06KQnmUHOTPtoeVN6Jk90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWEtn7%2FbtrI2Vam6of%2FW06KQnmUHOTPtoeVN6Jk90%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;814&quot; height=&quot;348&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;348&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;UNION ALL을 하여 중복된 데이터도 표현된 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 데이터 중복이 필요 없을 경우 UNION, 데이터 중복 조차 필요한 경우 UNION ALL을 써야 하는 것은 중요한 내용이니 꼭 기억하셔야 됩니다. 데이터 유실의 경우 알기가 상당히 힘들고, 초급자 분들은 UNION과 UNION ALL의 차이를 알지 못해서 그냥 UNION을 사용하는 케이스가 많기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;MySQL 포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/746&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[MySQL] group_concat 사용법 모음 (문자열 구분자 묶음)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1659861687475&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;[MySQL] group_concat 사용법 모음 (문자열 구분자 묶음)&quot; data-og-description=&quot;여러개의 Row로 되어 있는 데이터를 한개의 값으로 묶어서 가지고 오고 싶을 경우, MySQL(혹은 MariaDB)에서는 Group_Concat을 사용하여 처리할 수 있다. 실행 예시 테이블 생성 CREATE TABLE &amp;#96;stock&amp;#96; ( &amp;#96;stock_i..&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/746&quot; data-og-url=&quot;https://needjarvis.tistory.com/746&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cfpxEF/hyPmcbjP5d/pLDG2j1ZsINOmcz6K5iW91/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/c2N169/hyPmdg0iBA/Vx25gGIsyHKBwGJSvBoV21/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/kcnIX/hyPmjBwe7o/nrYlYAJf5iRReHxvWxBxm0/img.jpg?width=860&amp;amp;height=484&amp;amp;face=0_0_860_484&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/746&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/746&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cfpxEF/hyPmcbjP5d/pLDG2j1ZsINOmcz6K5iW91/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/c2N169/hyPmdg0iBA/Vx25gGIsyHKBwGJSvBoV21/img.jpg?width=800&amp;amp;height=450&amp;amp;face=0_0_800_450,https://scrap.kakaocdn.net/dn/kcnIX/hyPmjBwe7o/nrYlYAJf5iRReHxvWxBxm0/img.jpg?width=860&amp;amp;height=484&amp;amp;face=0_0_860_484');&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;[MySQL] group_concat 사용법 모음 (문자열 구분자 묶음)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;여러개의 Row로 되어 있는 데이터를 한개의 값으로 묶어서 가지고 오고 싶을 경우, MySQL(혹은 MariaDB)에서는 Group_Concat을 사용하여 처리할 수 있다. 실행 예시 테이블 생성 CREATE TABLE `stock` ( `stock_i..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[MySQL] date_format 설정 (날짜 포맷 변경)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1659861708069&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;[MySQL] date_format 설정 (날짜 포맷 변경)&quot; data-og-description=&quot;MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/748&quot; data-og-url=&quot;https://needjarvis.tistory.com/748&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dtemCB/hyPmkf7rAv/tqEhBNFrsrNCAIECP0lD00/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/Etv5D/hyPmj2z14l/KM4WSSvj6KhqBuPmHnBldK/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/O2Xg0/hyPkDn5hzw/so6X9OfakQSKjtS0DPqJa0/img.jpg?width=860&amp;amp;height=573&amp;amp;face=0_0_860_573&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/748&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/748&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dtemCB/hyPmkf7rAv/tqEhBNFrsrNCAIECP0lD00/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/Etv5D/hyPmj2z14l/KM4WSSvj6KhqBuPmHnBldK/img.jpg?width=800&amp;amp;height=533&amp;amp;face=0_0_800_533,https://scrap.kakaocdn.net/dn/O2Xg0/hyPkDn5hzw/so6X9OfakQSKjtS0DPqJa0/img.jpg?width=860&amp;amp;height=573&amp;amp;face=0_0_860_573');&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;[MySQL] date_format 설정 (날짜 포맷 변경)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MySQL에서는 date_format으로 날짜값을 문자열로 변경하는 포맷을 지원해 준다. 아마 DBMS로 개발을 하는 웹개발자라면 한번씩은 꼭 써보게 되는 기능일텐데, 오늘은 date_format의 포맷 설정값들과 예시&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.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;</description>
      <category>빅데이터 및 DB/MySQL</category>
      <category>mariadb</category>
      <category>MySQL</category>
      <category>union</category>
      <category>union all</category>
      <category>유니온</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/778</guid>
      <comments>https://needjarvis.tistory.com/778#entry778comment</comments>
      <pubDate>Sun, 7 Aug 2022 17:45:10 +0900</pubDate>
    </item>
    <item>
      <title>[Redis] 레디스 윈도우(Windows)에 설치하기</title>
      <link>https://needjarvis.tistory.com/777</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;레디스(Redis) 제품은 무료 버전인 커뮤니티(Community) 버전과 상용 버전인 엔터프라이즈(Enterprise) 버전이 존재합니다. 해당 포스팅은 무료 버전인 커뮤니티 버전을 다운로드 받고 설치한 후, 작동이 되는지 간단히 사용해보는 것까지 진행을 해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;레디스_윈도우즈_설치.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cRUvxo/btrINLMMaMS/D1qNv7v0TVHuCKlCEuAGzK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cRUvxo/btrINLMMaMS/D1qNv7v0TVHuCKlCEuAGzK/img.jpg&quot; data-alt=&quot;[Redis] 레디스 윈도우(Windows)에 설치하기&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cRUvxo/btrINLMMaMS/D1qNv7v0TVHuCKlCEuAGzK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcRUvxo%2FbtrINLMMaMS%2FD1qNv7v0TVHuCKlCEuAGzK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;562&quot; data-filename=&quot;레디스_윈도우즈_설치.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Redis] 레디스 윈도우(Windows)에 설치하기&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;레디스 다운로드&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://redis.io/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://redis.io/download/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1659504242477&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;Download&quot; data-og-description=&quot;Redis You can download the last Redis source files here. For additional options, see the Redis downloads section below. Stable (7.0) Redis 7.0 includes several new user-facing features, significant performance optimizations, and many other improvements. It&quot; data-og-host=&quot;redis.io&quot; data-og-source-url=&quot;https://redis.io/download/&quot; data-og-url=&quot;https://redis.io/download/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://redis.io/download/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://redis.io/download/&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;Download&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Redis You can download the last Redis source files here. For additional options, see the Redis downloads section below. Stable (7.0) Redis 7.0 includes several new user-facing features, significant performance optimizations, and many other improvements. It&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;redis.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 레디스 다운로드 링크를 클릭하면, 아래와 같이 레디스를 다운로드 할 수 있는 링크들이 나옵니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1457&quot; data-origin-height=&quot;801&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3URlA/btrIO3GyuAK/J2wx1eC5XhntINqtYqMjl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3URlA/btrIO3GyuAK/J2wx1eC5XhntINqtYqMjl0/img.png&quot; data-alt=&quot;레디스 다운로드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3URlA/btrIO3GyuAK/J2wx1eC5XhntINqtYqMjl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3URlA%2FbtrIO3GyuAK%2FJ2wx1eC5XhntINqtYqMjl0%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;1457&quot; height=&quot;801&quot; data-origin-width=&quot;1457&quot; data-origin-height=&quot;801&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;레디스 다운로드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Unstable 버전의 경우, 최신 버전의 레디스가 포함되어 있지만 다양한 실험적인 기능들이 어떻게 문제가 발생될 지 모르기 때문에 Latest Stable, 즉 최신 안정화 버전을 선택해서 다운로드 받습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 윈도우에서 설치를 하고 싶은 경우 해당 사이트에서 다운로드를 받아봤자 실행이 되지 않습니다. 레디스는 오픈소스이고, 동일한 오픈소스 OS인 Linux에서 가장 최적화되어 있는 프로젝트입니다. 하지만, 윈도우에서도 레디스를 설치할 수 있는데 아래의 github에서 받으시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/microsoftarchive/redis&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/microsoftarchive/redis&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1659504679225&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - microsoftarchive/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many dif&quot; data-og-description=&quot;Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - GitHub - microsoftarc...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/microsoftarchive/redis&quot; data-og-url=&quot;https://github.com/microsoftarchive/redis&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jRov7/hyPjgZjP7p/cDp7ZMkkWDI03xKbkKjAHk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/microsoftarchive/redis&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/microsoftarchive/redis&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jRov7/hyPjgZjP7p/cDp7ZMkkWDI03xKbkKjAHk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - microsoftarchive/redis: Redis is an in-memory database that persists on disk. The data model is key-value, but many dif&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - GitHub - microsoftarc...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 해당 깃허브를 보면 알겠지만, 2016년 이후로 더이상 서비스를 지원하지 않고 있으니 참고하도록 합니다. 아래의 문구를 보면, Memurai라는 사이트에서 윈도우용 레디스를 만드는 것 같으니 혹시 여유가 있으면 해당 사이트로 가서 레디스를 테스트 해보는 것도 좋을 것 같네요.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;This project is no longer being actively maintained. If you are looking for a Windows version of Redis, you may want to check out Memurai. Please note that Microsoft is not officially endorsing this product in any way.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거두절미하고 위 깃헙(Github)에 있는 윈도우용의 레디스를 설치하려면, 아래와 같이 3.2.100 버전(2016년 7월) 이 가장 최신 버전입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1165&quot; data-origin-height=&quot;587&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BSpaU/btrIPXzodUz/k1WkpKrRsAxWkpuAhz5e21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BSpaU/btrIPXzodUz/k1WkpKrRsAxWkpuAhz5e21/img.png&quot; data-alt=&quot;윈도우 레디스 릴리즈 최신버전&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BSpaU/btrIPXzodUz/k1WkpKrRsAxWkpuAhz5e21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBSpaU%2FbtrIPXzodUz%2Fk1WkpKrRsAxWkpuAhz5e21%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;1165&quot; height=&quot;587&quot; data-origin-width=&quot;1165&quot; data-origin-height=&quot;587&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;윈도우 레디스 릴리즈 최신버전&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;릴리즈 버전이 어디있는지 찾기 힘들다면, 아래의 링크를 들어가면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/microsoftarchive/redis/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/microsoftarchive/redis/releases&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1659506712448&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;Releases &amp;middot; microsoftarchive/redis&quot; data-og-description=&quot;Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redis&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/microsoftarchive/redis/releases&quot; data-og-url=&quot;https://github.com/microsoftarchive/redis/releases&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/MDL9y/hyPjnRIkvw/pOswq6SuUK40x1a8Fq4QxK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/microsoftarchive/redis/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/microsoftarchive/redis/releases&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/MDL9y/hyPjnRIkvw/pOswq6SuUK40x1a8Fq4QxK/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Releases &amp;middot; microsoftarchive/redis&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redis&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 링크의 3.2.100 릴리즈의 Assets를 펼쳐서 나오는 Redis-x64-3.2.100.msi를 클릭하여, 설치관리자를 사용한 설치를 진행하도록 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;레디스 설치&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHUVH8/btrIPXlStk0/TUBQtYkcShh5CCW1Lsh1Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHUVH8/btrIPXlStk0/TUBQtYkcShh5CCW1Lsh1Q0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHUVH8/btrIPXlStk0/TUBQtYkcShh5CCW1Lsh1Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHUVH8%2FbtrIPXlStk0%2FTUBQtYkcShh5CCW1Lsh1Q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;387&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&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;초기 Welcome 화면에서는 고민하지 말고, Next를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beb9RV/btrIMCCXEvu/X18P05SsbdkPnVAbIfhCKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beb9RV/btrIMCCXEvu/X18P05SsbdkPnVAbIfhCKk/img.png&quot; data-alt=&quot;라이센스 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beb9RV/btrIMCCXEvu/X18P05SsbdkPnVAbIfhCKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbeb9RV%2FbtrIMCCXEvu%2FX18P05SsbdkPnVAbIfhCKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;387&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;라이센스 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 사용자를 위한 라이센스 부분은 &quot;I accept the terms in the License Agreement&quot;를 체크하고, Next를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3IwrE/btrINudDtyQ/0WOWk1BU298lZGUDoKgtgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3IwrE/btrINudDtyQ/0WOWk1BU298lZGUDoKgtgk/img.png&quot; data-alt=&quot;폴더와 환경설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3IwrE/btrINudDtyQ/0WOWk1BU298lZGUDoKgtgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3IwrE%2FbtrINudDtyQ%2F0WOWk1BU298lZGUDoKgtgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;387&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;폴더와 환경설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폴더 설정하는 부분의 디폴트 설정은 C:\Program Files\Redis 일 것이나 본인이 원하는 공간에 레디스를 설치한 후, 하단의 Add the Redis installation folder to the PATH environment variable 환경설정 부분은 체크를 해주고, Next를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcnxii/btrIOv4pFEr/9VoLOf9ifRjjk41UwLpoj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcnxii/btrIOv4pFEr/9VoLOf9ifRjjk41UwLpoj1/img.png&quot; data-alt=&quot;포트번호 선택&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcnxii/btrIOv4pFEr/9VoLOf9ifRjjk41UwLpoj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbcnxii%2FbtrIOv4pFEr%2F9VoLOf9ifRjjk41UwLpoj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;387&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;포트번호 선택&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포트(Port)번호와 윈도우 방화벽(Windows Firewall)에 예외처리를 할 것인지의 여부인데 별다른 설정을 건드리지 말고 Next를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdiCs2/btrIPXTK3gY/fK0sgrkJ9sdLYVkbw6rW4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdiCs2/btrIPXTK3gY/fK0sgrkJ9sdLYVkbw6rW4K/img.png&quot; data-alt=&quot;메모리 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdiCs2/btrIPXTK3gY/fK0sgrkJ9sdLYVkbw6rW4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdiCs2%2FbtrIPXTK3gY%2FfK0sgrkJ9sdLYVkbw6rW4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;387&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;메모리 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레디스에서 사용할 최대 메모리 설정을 할 수 있는데 기본 설정은 100MB로 이는 너무 적은 메모리이기에 여기서는 1024MB로 수치를 올렸습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bK3prZ/btrISPnjT17/NVjByufexK3h5YZ4VpCmU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bK3prZ/btrISPnjT17/NVjByufexK3h5YZ4VpCmU0/img.png&quot; data-alt=&quot;레디스를 설치한다&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bK3prZ/btrISPnjT17/NVjByufexK3h5YZ4VpCmU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbK3prZ%2FbtrISPnjT17%2FNVjByufexK3h5YZ4VpCmU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;387&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;레디스를 설치한다&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 설정을 완료하면 레디스를 설치하기 시작하며, 설치가 모두 완료 되었다면 지정된 폴더에 파일들이 생긴 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;레디스 시작&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레디스를 위와 같이 설치를 끝 맞췄으면, 윈도우에서는 자동으로 서비스에 등록을 하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;574&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctIeu0/btrISOPvkiK/F1gJ9q3AFXFTYhxYVHjdGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctIeu0/btrISOPvkiK/F1gJ9q3AFXFTYhxYVHjdGK/img.png&quot; data-alt=&quot;레디스가 서비스에 등록된 상태&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctIeu0/btrISOPvkiK/F1gJ9q3AFXFTYhxYVHjdGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctIeu0%2FbtrISOPvkiK%2FF1gJ9q3AFXFTYhxYVHjdGK%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;574&quot; height=&quot;112&quot; data-origin-width=&quot;574&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;레디스가 서비스에 등록된 상태&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우를 시작하면 자동으로 시작을 하기 때문에 서비스를 다음과 같이 변경합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;535&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bDTbbh/btrIO1IPdjk/nFwjUTcqkEfrtEumAU79G1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bDTbbh/btrIO1IPdjk/nFwjUTcqkEfrtEumAU79G1/img.png&quot; data-alt=&quot;레디스 수동설정 변경&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bDTbbh/btrIO1IPdjk/nFwjUTcqkEfrtEumAU79G1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDTbbh%2FbtrIO1IPdjk%2FnFwjUTcqkEfrtEumAU79G1%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;472&quot; height=&quot;535&quot; data-origin-width=&quot;472&quot; data-origin-height=&quot;535&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;레디스 수동설정 변경&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무튼 레디스가 시작이 된 상태이니, 이제 cli(&lt;span style=&quot;background-color: #ffffff; color: #202124;&quot;&gt;command-line interface, 명령줄라인 인터페이스)&lt;/span&gt;를 이용하여 해당 서버에 접근을 해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;845&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSvi6h/btrIOQ1ngjF/9d8K1orGbmevJ7zyOTYS6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSvi6h/btrIOQ1ngjF/9d8K1orGbmevJ7zyOTYS6K/img.png&quot; data-alt=&quot;인포 명령&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSvi6h/btrIOQ1ngjF/9d8K1orGbmevJ7zyOTYS6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSvi6h%2FbtrIOQ1ngjF%2F9d8K1orGbmevJ7zyOTYS6K%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;693&quot; height=&quot;845&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;845&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;인포 명령&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 내용은 redis-cli로 레디스 서버에 접속 한 후, info 명령어로 레디스의 상태를 확인해 보았습니다. 레디스의 서버가 어떤 상태로 구동중인지 메모리는 어떤지 쉽게 알아보기 편리하기에 자주 사용할 수 있지만, 참고만 해두시면 좋을 것 같네요.&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;다음 포스팅은 cli로 데이터를 저장하고 가져오는 것을 테스트 해보고, 옵션들에 대해서 설명해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;a href=&quot;https://github.com/microsoftarchive/redis&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/microsoftarchive/redis&lt;/a&gt;&lt;/p&gt;</description>
      <category>빅데이터 및 DB/레디스(Redis)</category>
      <category>nosql</category>
      <category>redis</category>
      <category>레디스</category>
      <category>빅데이터</category>
      <category>인메모리DB</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/777</guid>
      <comments>https://needjarvis.tistory.com/777#entry777comment</comments>
      <pubDate>Wed, 3 Aug 2022 15:45:15 +0900</pubDate>
    </item>
    <item>
      <title>[Redis] 레디스의 특징 및 제품 유형</title>
      <link>https://needjarvis.tistory.com/776</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;레디스(Redis)의 개요&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레디스(Remote Directory System, Redis)는 비정형 데이터를 저장하고 관리하기 위한 키-밸류(Key-Value) 데이터베이스로 오픈소스 기반의 비관계형 데이터베이스 관리 시스템입니다. Key-Value 데이터베이스이기 때문에 NoSQL로 분류되며,&amp;nbsp; 2015년부터는 RedisLab co.에서 만들어진 상용 버전과 누구나 무료로 사용할 수 있는 오픈소스 버전으로 나뉘어져 있습니다.&lt;span style=&quot;background-color: #ffffff; color: #202122;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;레디스_특징.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t3tOY/btrIOwIuuxw/H1Jwny5XL8JGp61gfOGys1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t3tOY/btrIOwIuuxw/H1Jwny5XL8JGp61gfOGys1/img.jpg&quot; data-alt=&quot;[Redis] 레디스의 특징 및 제품 유형&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t3tOY/btrIOwIuuxw/H1Jwny5XL8JGp61gfOGys1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft3tOY%2FbtrIOwIuuxw%2FH1Jwny5XL8JGp61gfOGys1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;499&quot; data-filename=&quot;레디스_특징.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Redis] 레디스의 특징 및 제품 유형&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레디스의 역사는 2009년 Antirez라는 별명을 사용한 Salvatore Sanfilippo(2020년에 현재는 Redis에서 물러난 상태)에 의해서 처음 만들어졌습니다. 그는 이탈리아 스타트업의 확장성을 개선하기 위해서 실시간 웹 로그 분석기를 개발하게 되었고 Redis 프로젝트가 시작하게 되었습니다.&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;Salvatore_Sanfilippo.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;763&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cx1Kw/btrIJVWZSly/kYiJ5viC8fBH6wTSRK1fp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cx1Kw/btrIJVWZSly/kYiJ5viC8fBH6wTSRK1fp1/img.png&quot; data-alt=&quot;Salvatore Sanfilippo&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cx1Kw/btrIJVWZSly/kYiJ5viC8fBH6wTSRK1fp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCx1Kw%2FbtrIJVWZSly%2FkYiJ5viC8fBH6wTSRK1fp1%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;300&quot; height=&quot;421&quot; data-filename=&quot;Salvatore_Sanfilippo.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Salvatore Sanfilippo&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성공적으로 프로젝트를 진행하면서 그는 소스를 오픈소스화 시키기로 하였고, Redis는 Instagram과 Github 등에서 채택하기도 했습니다. (현재는 셀수없는 수많은 회사들이 Redis를 사용하고 있습니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;레디스의 특징&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;키밸류(KeyValue)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 레디스는 Key-Value 형태의 NoSQL 진형의 대표적인 DB중 하나입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;인메모리(In Memory) 기반&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 레디스를 쓰는 가장 핵심적인 이유가 바로 인메모리 기반이라는 것입니다. 메모리에 데이터를 처리 및 저장하는 기술을 사용하게 되면서 빠른 속도(Read/Write)를 처리해야 하는 경우 레디스를 쓰는 경우가 많습니다. 반대로 메모리 기반이기 때문에 H/W를 많이 타게 되며, 많은 용량을 처리하기에는 한계가 있어서 적합하지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;디스크 저장 가능&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인메모리라고 해서 데이터가 휘발성으로 무조건 날라가는 것은 아닙니다. Dump 파일과 AOF(Append Of File) 방식으로 메모리에 있는 데이터를 디스크로 내릴 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;데이터 분산/복제&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Master/Slave Replication 기능을 통해서 데이터 분산 및 복제 기능을 제공하고 Query Off Loading 기능을 통해 마스터(Master)는 읽기와 저장 모두를 슬레이브(Slave)는 읽기(Read)만 수행할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;수평 확장(Scale Out)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파티셔닝(Partitioning)으로 동적인 수평 확장(Scale Out)이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;데이터 생명주기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Expriation 기능을 사용하여 일정 시간이 지났을 때 메모리 상에서 데이터를 삭제시킬 수 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이처럼 레디스는 메모리에 저장하기 때문에 데이터의 분실 위험이 있으며, 중요하거나 주된 업무에서는 사용하기가 힘들며 캐싱(Caching) 기능이 필요하거나 적은 데이터를 빠르게 주고 받아야 되는 경우 등에 사용하기 적합합니다. 즉 보편적으로는 메인 DB를 보좌하는 세컨더리 DB로 사용하는 경우가 많습니다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;제품의 유형&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레디스는 오픈소스로 시작을 하였지만, 현재는 엄연히 회사가 있으며 레디스를 상용으로 판매하여 다양한 기능을 추가한 버전도 존재합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;커뮤니티 에디션(Community Edition)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 커뮤니티 에디션은 오픈소스 라이센스를 기반으로 하는 버전으로 별도의 비용이 들지 않고, 무료로 사용을 할 수 있습니다. 다만 커뮤니티 버전을 사용하기 위해서는 의무사항들이 존재하며 이를 지키지 않을 경우 문제가 발생할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;엔터프라이즈 에디션(Enterprise Edition)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엔터프라이즈 에디션은 커뮤니티 에디션 + @ 버전이라 생각하면 됩니다. 기본적으로 커뮤니티 에디션은 레디스에서 문제가 발생하게 될 경우 회사는 그 어떠한 책임도 지지 않습니다. 엔터프라이즈 에디션의 경우 다양한 기술적인 문제가 발생할 경우 회사가 책임을 지고 기술 지원 및 유지보수 작업도 수행해 줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;535&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cycheF/btrIKnlsjTD/L4uUfDd4kG8VmDJ3PZifP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cycheF/btrIKnlsjTD/L4uUfDd4kG8VmDJ3PZifP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cycheF/btrIKnlsjTD/L4uUfDd4kG8VmDJ3PZifP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcycheF%2FbtrIKnlsjTD%2FL4uUfDd4kG8VmDJ3PZifP0%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;1289&quot; height=&quot;535&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;535&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거기에 레디스를 서포트하는 수많은 기능들이 추가되는데 대표적으로 사용자 관리, 권한 등을 설정하여 제공이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;a href=&quot;https://en.wikipedia.org/wiki/Redis&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://en.wikipedia.org/wiki/Redis&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] &lt;a href=&quot;https://redis.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://redis.io/&lt;/a&gt;&lt;/p&gt;</description>
      <category>빅데이터 및 DB/레디스(Redis)</category>
      <category>DB</category>
      <category>nosql</category>
      <category>redis</category>
      <category>데이터베이스</category>
      <category>레디스</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/776</guid>
      <comments>https://needjarvis.tistory.com/776#entry776comment</comments>
      <pubDate>Wed, 3 Aug 2022 02:16:42 +0900</pubDate>
    </item>
    <item>
      <title>NoSQL과 구글 빅테이블(Google BigTable) - ADP #10</title>
      <link>https://needjarvis.tistory.com/775</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;NoSQL 개요&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;NoSQL 개념&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NoSQL은 키(Key)와 값(Value)의 형태로 자료를 저장하고, 빠르게 조회할 수 있는 자료 구조를 제공하는 저장소이다. 일반적인 DB인 RDBMS의 경우 조인(Join)을 수행할 수 있지만, NoSQL은 DB의 특성에 따라 Join 연산을 지원하거나 복잡한 Join을 지원하지 않으며 일반적으로 대용량 데이터와 대규모 확장성을 지원한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NoSQL은 원래 non-SQL(비 SQL) 혹은 non-relational(비 관계형)라는 의미로 쓰였으나, NoSQL DB에서 SQL을 지원하는 경우가 속속 등장하면서 현재는 Not only SQL이라고 말하기도 한다. [2]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;708&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1DMQe/btrH74NEUEO/qffiGXk7vnWJRbzHSrxLU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1DMQe/btrH74NEUEO/qffiGXk7vnWJRbzHSrxLU0/img.png&quot; data-alt=&quot;https://medium.com/google-cloud/getting-started-with-bigtable-on-gcp-adfb896e0b26&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1DMQe/btrH74NEUEO/qffiGXk7vnWJRbzHSrxLU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1DMQe%2FbtrH74NEUEO%2FqffiGXk7vnWJRbzHSrxLU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;506&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;708&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://medium.com/google-cloud/getting-started-with-bigtable-on-gcp-adfb896e0b26&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NoSQL의 경우 4가지 대표 유형의 DB가 존재하는데 키-값(KeyValue), 컬럼 기반(Column Based), 그래프(Graph DB), 문서(Document) 유형이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;NoSQL의 유형들과 예시&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;617&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dKOWNv/btrIdx8KAWf/TFS4OH1bgPwQkNMj2a5S5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dKOWNv/btrIdx8KAWf/TFS4OH1bgPwQkNMj2a5S5k/img.png&quot; data-alt=&quot;NoSQL Types and examples [2]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dKOWNv/btrIdx8KAWf/TFS4OH1bgPwQkNMj2a5S5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdKOWNv%2FbtrIdx8KAWf%2FTFS4OH1bgPwQkNMj2a5S5k%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;929&quot; height=&quot;617&quot; data-origin-width=&quot;929&quot; data-origin-height=&quot;617&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;NoSQL Types and examples [2]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;구글 빅테이블(Google BigTable)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 구글 자체적으로 대용량 데이터를 저장하기 위해 만든 것(2004년 시작)이 빅테이블이라는 분산 데이터 관리 저장소를 개발하였고, AppEngine이라는 플랫폼 서비스에서 사용하는 저장소이기도 하다. 구글 애널리틱스(Google Analytics), 웹 인덱싱(Web Indexing), 맵리듀스(Map Reduce)와 같은 여러 Google 어플리케이션에서 사용 된다. 현재는 클라우드 빅테이블이라는 명칭으로 서비스가 되고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;614&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HaPi3/btrH75eKCif/RkKjIxy4kZKxy0NSVibrb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HaPi3/btrH75eKCif/RkKjIxy4kZKxy0NSVibrb0/img.png&quot; data-alt=&quot;https://cloud.google.com/bigtable?hl=ko&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HaPi3/btrH75eKCif/RkKjIxy4kZKxy0NSVibrb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHaPi3%2FbtrH75eKCif%2FRkKjIxy4kZKxy0NSVibrb0%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;1488&quot; height=&quot;614&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;614&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://cloud.google.com/bigtable?hl=ko&lt;/figcaption&gt;
&lt;/figure&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;b&gt;데이터 모델&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다차원 정렬 해시맵(multi-dimension sorted hash map)을 파티션하여 분산 저장하는 저장소이며, 테이블 내의 모든 데이터는 row-key와 column-family로 이루어져 있다. column-family는 다시 column-key와 value, timestamp 형태로 저장이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;292&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V03bS/btrH5eiXEZW/oIQbxkvGKDynPmtZAfTbik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V03bS/btrH5eiXEZW/oIQbxkvGKDynPmtZAfTbik/img.png&quot; data-alt=&quot;https://medium.com/google-cloud/getting-started-with-bigtable-on-gcp-adfb896e0b26&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V03bS/btrH5eiXEZW/oIQbxkvGKDynPmtZAfTbik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV03bS%2FbtrH5eiXEZW%2FoIQbxkvGKDynPmtZAfTbik%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;700&quot; height=&quot;292&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;292&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://medium.com/google-cloud/getting-started-with-bigtable-on-gcp-adfb896e0b26&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동일한 column-key에 타임스탬프가 다른 여러 버전이 존재할 수 있기에 하나의 데이터의 키 값 또는 정렬 기준은 &quot;rowkey + columnkey + timestamp&quot;가 된다. 파티션은 row-key를 이용하고, 분리된 파티션을 Tablet이라 하며, 한 Tablet은 100~200MB 정도이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;페일오버(Fail Over)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 노드에서 장애가 발생하면 마스터 노드는 장애가 발생한 테블릿(Tablet)을 다른 노드로 재할당 시킨다. 할당 후 인덱스 파일, 데이터 파일 등을 이용하여 초기화 작업 수행 후 서비스를 수행한다.&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;구글 빅데이블은 공유 디스크(Shared Disk) 방식을 사용하고 있어, 모든 노드가 데이터, 인덱스 파일을 공유한다. SPOF(Single Point Of Failure)는 마스터로 분산 락(lock) 서비스를 제공하는 Chubby를 이용해 마스터를 모니터링 후 마스터 장애 발생시 다른 노드에 마스터 역할을 수행하도록 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnfV0v/btrH6IjR2u9/V7BDYrRr5ou7TbGHUpqBrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnfV0v/btrH6IjR2u9/V7BDYrRr5ou7TbGHUpqBrK/img.png&quot; data-alt=&quot;Bigtable Architecture&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnfV0v/btrH6IjR2u9/V7BDYrRr5ou7TbGHUpqBrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnfV0v%2FbtrH6IjR2u9%2FV7BDYrRr5ou7TbGHUpqBrK%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;746&quot; height=&quot;470&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Bigtable Architecture&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 Chubby는 Fault-Tolerance 구조이기 때문에 절대로 장애가 발생하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;AppEngine&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AppEngine은 사용자에게 직접 빅테이블의 API를 공개하지 않고 추상 계층을 두고 있으며, API에 대한 추상화뿐만 아니라 데이터 모델에 대해서도 추상화되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 테이블을 생성할 경우 빅테이블의 테이블로 생성하지 않고 특정 테이블의 한 영역만을 차지하며, 별도의 사용자 정의 인덱스(index)를 제공하지 않고, 사용자의 질의(Query, 쿼리)를 분석하여 자동으로 인덱스를 생성한다.&amp;nbsp;빅테이블 자체는 외부에 공개되지 않았으며, 비슷한 기능을 수행하는 솔루션으로 아파치 오픈소스인 HBase가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmr9Cz/btrIcHjFMPM/bYkGTR1VpQLGMEWND84UTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmr9Cz/btrIcHjFMPM/bYkGTR1VpQLGMEWND84UTk/img.png&quot; data-alt=&quot;HBase&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmr9Cz/btrIcHjFMPM/bYkGTR1VpQLGMEWND84UTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcmr9Cz%2FbtrIcHjFMPM%2FbYkGTR1VpQLGMEWND84UTk%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;807&quot; height=&quot;388&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;HBase&lt;/figcaption&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;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] 데이터 분석 전문가 가이드 교재&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] &lt;a href=&quot;https://en.wikipedia.org/wiki/NoSQL&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://en.wikipedia.org/wiki/NoSQL&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[3] &lt;a href=&quot;https://en.wikipedia.org/wiki/Bigtable&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://en.wikipedia.org/wiki/Bigtable&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;연관포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/774&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;데이터베이스 클러스터(Database Cluster) - ADP #9&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658737800461&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;데이터베이스 클러스터(Database Cluster) - ADP #9&quot; data-og-description=&quot;데이터베이스 클러스터의 개요 개념 - 데이터를 통합할 때 성능 향상과 가용성을 높이기 위해 DB 차원의 파티셔닝(Partitioning) 또는 클러스터링(Clustering)을 이용한다. - 파티셔닝은 용량이 큰 테이&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/774&quot; data-og-url=&quot;https://needjarvis.tistory.com/774&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/0GqA0/hyPdflCmsp/CvkIyk2ujkmQ9ZJSXeqaxk/img.png?width=800&amp;amp;height=518&amp;amp;face=0_0_800_518,https://scrap.kakaocdn.net/dn/baIRvA/hyPdaR8RDn/tb4MFoOprx1R38AhePhKok/img.png?width=800&amp;amp;height=518&amp;amp;face=0_0_800_518,https://scrap.kakaocdn.net/dn/cXHSAN/hyPbPWmHao/oOTZKoT2yd7kHrskeAG9aK/img.png?width=871&amp;amp;height=565&amp;amp;face=0_0_871_565&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/774&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/774&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/0GqA0/hyPdflCmsp/CvkIyk2ujkmQ9ZJSXeqaxk/img.png?width=800&amp;amp;height=518&amp;amp;face=0_0_800_518,https://scrap.kakaocdn.net/dn/baIRvA/hyPdaR8RDn/tb4MFoOprx1R38AhePhKok/img.png?width=800&amp;amp;height=518&amp;amp;face=0_0_800_518,https://scrap.kakaocdn.net/dn/cXHSAN/hyPbPWmHao/oOTZKoT2yd7kHrskeAG9aK/img.png?width=871&amp;amp;height=565&amp;amp;face=0_0_871_565');&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;데이터베이스 클러스터(Database Cluster) - ADP #9&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;데이터베이스 클러스터의 개요 개념 - 데이터를 통합할 때 성능 향상과 가용성을 높이기 위해 DB 차원의 파티셔닝(Partitioning) 또는 클러스터링(Clustering)을 이용한다. - 파티셔닝은 용량이 큰 테이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.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;</description>
      <category>IT 자격증/데이터 분석 전문가(ADP)</category>
      <category>ADP</category>
      <category>BigTable</category>
      <category>HBase</category>
      <category>nosql</category>
      <category>데이터분석전문가</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/775</guid>
      <comments>https://needjarvis.tistory.com/775#entry775comment</comments>
      <pubDate>Mon, 25 Jul 2022 17:38:18 +0900</pubDate>
    </item>
    <item>
      <title>데이터베이스 클러스터(Database Cluster) - ADP #9</title>
      <link>https://needjarvis.tistory.com/774</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;데이터베이스 클러스터의 개요&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;개념&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 데이터를 통합할 때 성능 향상과 가용성을 높이기 위해 DB 차원의 파티셔닝(Partitioning)&amp;nbsp; 또는 클러스터링(Clustering)을 이용한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 파티셔닝은 용량이 큰 테이블이나 인덱스를 관리하기 쉬운 단위로 분리하는 방법이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 클러스터링은 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 방법으로, 자주 같이 사용되는 데이터를 같은 위치에 저장시키는 기법이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 파티션 사이의 병렬 처리를 통해 빠른 검색 및 처리 성능 얻음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 성능의 선형적인 증가 효과&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 특정 파티션의 장애가 발생하더라도 서비스가 중단되지 않는 고가용성(High Availability, HA) 확보&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;파티셔닝의 종류&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파티셔닝은 DB 구성 형태에 따라 단일 서버 내의 파티셔닝과 다중 서버 사이의 파티셔닝으로 구분되며, 리소스 공유 관점으로는 공유 디스크(Shared Disk)와 무공유(Shared Nothing)로 구분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;무공유(Shared Nothing)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 DB 인스턴스는 자신이 관리하는 데이터&amp;nbsp; 파일을 자신의 로컬 디스크에 저장하며, 노드간 공유하지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkXmem/btrHId4sR2Z/fkAeC18WiJkL4r6TJgSugK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkXmem/btrHId4sR2Z/fkAeC18WiJkL4r6TJgSugK/img.png&quot; data-alt=&quot;무공유(Shared Nothing)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkXmem/btrHId4sR2Z/fkAeC18WiJkL4r6TJgSugK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkXmem%2FbtrHId4sR2Z%2FfkAeC18WiJkL4r6TJgSugK%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;687&quot; height=&quot;443&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;무공유(Shared Nothing)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개별 인스턴스와 노드는 완전히 분리된 데이터의 서브 집합에 대한 소유권을 가지며, 각 데이터는 소유권을 가진 인스턴스가 처리한다. 무공유 구조는 노드 확장에 제한이 없지만, 노드에 장애가 발생할 경우를 대비해 별도의 장애허용성(폴트톨러런스, Fault-Tolerance)를 구성해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Oracle RAC(Real Application Cluster)를 제외한 대부분의 DB 클러스터가 무공유 방식을 채택하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;공유 디스크(Shared Disk)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 파일은 논리적으로 모든 데이터베이스 인스턴스 노드들과 공유하며, 각 인스턴스들은 모든 데이터에 접근 가능하다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pPPWE/btrHEdqPcWU/eXkSVx2C5eqKaQHUwkRww1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pPPWE/btrHEdqPcWU/eXkSVx2C5eqKaQHUwkRww1/img.png&quot; data-alt=&quot;공유 디스크(Shared Disk)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pPPWE/btrHEdqPcWU/eXkSVx2C5eqKaQHUwkRww1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpPPWE%2FbtrHEdqPcWU%2FeXkSVx2C5eqKaQHUwkRww1%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;871&quot; height=&quot;565&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;공유 디스크(Shared Disk)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 공유하려면 SAN(Storage Area Network) 같은 공유 디스크가 필요하며, 모든 노드가 수정 가능하기에 동기화 작업을 위한 별도의 커뮤니케이션 채널 필요&lt;/p&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&gt;높은 수준의 장애허용성(Fault-Tolerance)을 제공한다.&lt;span&gt; 다만 클러스터가 커지게 될 경우 디스크 영역에서 병목 현상이 발생하는 문제가 존재한다. Oracle Rac이 공유 디스크 방식을 이용하고 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 잡지마 본문광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;7859814085&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;데이터베이스별 파티셔닝&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Oracle RAC 데이터베이스 서버&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오라클(Oracle) RAC 데이터베이스 서버는 클러스터의 모든 노드에서 실행되며, 데이터는 공유 스토리지에 저장된다. 응용 프로그램은 특정 노드가 아니라 RAC 클러스터에 연결하며, RAC은 클러스터의 모든 노드에 로드를 고르게 분산한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;474&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfRQm8/btrHIHEhwft/ueh3kv88FpDisfkTyu0DR0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfRQm8/btrHIHEhwft/ueh3kv88FpDisfkTyu0DR0/img.gif&quot; data-alt=&quot;https://docs.oracle.com/database/121/RACAD/GUID-D04AA2A7-2E68-4C5C-BD6E-36C62427B98E.htm#RACAD7270&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfRQm8/btrHIHEhwft/ueh3kv88FpDisfkTyu0DR0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bfRQm8/btrHIHEhwft/ueh3kv88FpDisfkTyu0DR0/img.gif&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;471&quot; height=&quot;474&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;474&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://docs.oracle.com/database/121/RACAD/GUID-D04AA2A7-2E68-4C5C-BD6E-36C62427B98E.htm#RACAD7270&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;가용성&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떤 노드가 장애를 일으키면 나머지 노드에서 문제 없이 계속 실행된다. 장애 노드에 연결된 사용자는 다른 노드에 다시 연결되어 클러스터의 나머지 노드에 분산된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;확장성&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가 처리 성능이 필요할 경우, 새 노드를 클러스터에 쉽게 추가할 수 있으며, 추가 될 경우 노드간 균형을 위해 로드가 다시 분산된다. Oracle 10g R2 RAC은 클러스터 내에 최대 100개 노드를 지원한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;비용 절감&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저가형 상용 하드웨어(CPU 4개 미만)의 클러스터에서도 고가의 SMP 시스템만큼 효율적으로 응용 프로그램을 실행하여 하드웨어 비용 절감 가능 (ex: 4CPU의 16노드 클러스터를 사용하면 동급 성능의 64CPU SMP 시스템에 비해 비용을 크게 절감 가능)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;IBM DB2 ICE(Integrated Cluster Environment)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DB2는 CPU,메모리,디스크를 파티션별로 독립적으로 운영하는 무공유 방식의 클러스터링을 지원한다. 애플리케이션은 분산된 DB를 하나의 데이터베이스(Single View Database)로 보게 되며, 어느 파티션에 존재하는지 알 필요가 없다.&amp;nbsp;데이터와 사용자가 증가하면 기존 시스템에 노드를 추가하고 데이터를 재분배하여 시스템의 성능과 용량을 일정하게 유지한다.&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;DB2는 파티셔닝을 어떻게 하느냐에 따라 성능의 차이가 발생할 수 있으며, 노드에 장애 발생시 별도의 장애복구(Failover) 매커니즘을 추가해야 한다. DB2는 이러한 문제를 극복하기 위해 공유 디스크 방식을 사용하는데 평상시에는 특정 노드에 의해서만 서비스되지만, 장애 상황이 발생하면 다른 노드가 해당 디스크에 접근하여 처리하는 방식으로 가용성을 보장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 잡지마 본문광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;7859814085&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;마이크로소프트(Microsoft) SQL Server&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL Server는 연합(Federated) 데이터베이스 형태로 여러 노드에 확장할 수 있는 기능을 제공한다. 연합 DB는 디스크 등을 공유하지 않는 독립된 서버에서 실행되는 서로 다른 DB들 간의 논리적인 결합이며, 네트워크를 이용하여 연결된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물리적으로 분산된 각 노드에 테이블을 생성한 후 데이터를 수평적으로 분할된다. 모든 파티션에 대해 union all을 이용하여 논리적인 뷰(View)를 구성하는 방식으로 싱글 뷰를 제공한다. SQL Server에서는 이러한 뷰를 DVP(Distributed Partitioned View)라 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cd8RBA/btrHEepRyZg/i6Qrv4ylXkyfWEas9AiAk1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cd8RBA/btrHEepRyZg/i6Qrv4ylXkyfWEas9AiAk1/img.jpg&quot; data-alt=&quot;SQL Server의 Active- Standby&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cd8RBA/btrHEepRyZg/i6Qrv4ylXkyfWEas9AiAk1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcd8RBA%2FbtrHEepRyZg%2Fi6Qrv4ylXkyfWEas9AiAk1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;556&quot; height=&quot;211&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;SQL Server의 Active- Standby&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전역 스키마(Global Schema) 정보가 없기에 모든 노드를 액세스 해야 하는 단점이 있고, 노드가 많거나 추가/삭제의 경우 파티션을 새로해야 하는 문제가 존재하며, failover에 대해서는 별도로 구성해야 한다. SQL Server는 Active-Active가 아닌 Active-Standby 방법을 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;MySQL&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL 클러스터는 무공유 구조에서 메모리(최근에는 디스크도 제공) 기반 데이터베이스의 클러스터링을 지원하며, 특정한 HW 및 SW를 요구하지 않고 병렬 서버 구조로 확장이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blVxWM/btrHJcjxizb/ek3N8dutoukrJLbZVlDMBK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blVxWM/btrHJcjxizb/ek3N8dutoukrJLbZVlDMBK/img.jpg&quot; data-alt=&quot;https://nadeepoornima.medium.com/configuring-mysql-ndb-cluster-by-using-docker-and-pointing-with-wso2-apim-263ab6ec0bbd&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blVxWM/btrHJcjxizb/ek3N8dutoukrJLbZVlDMBK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblVxWM%2FbtrHJcjxizb%2Fek3N8dutoukrJLbZVlDMBK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;536&quot; data-origin-width=&quot;505&quot; data-origin-height=&quot;536&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://nadeepoornima.medium.com/configuring-mysql-ndb-cluster-by-using-docker-and-pointing-with-wso2-apim-263ab6ec0bbd&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL 클러스터는 관리 노드(Management Node), 데이터 노드(NDB Node), MySQL 노드로 구성되며 아래와 같은 역할을 수행한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 83px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;노드&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;역할&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;관리 노드&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;- 클러스터를 관리하는 노드로 클러스터 시작과 재구성 시에서만 관여&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;데이터 노드&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 20px;&quot;&gt;- 클러스터의 데이터를 저장&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 23px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 23px;&quot;&gt;MySQL 노드&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 23px;&quot;&gt;- 클러스터 데이터에 접근을 지원&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL 클러스터는 가용성을 높이기 위해 데이터를 다른 노드에 복제한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;MySQL 클러스터 구성 시 제한 사항&lt;/b&gt;&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;파티셔닝은 LINEAR KEY 파티셔닝만 사용 가능&lt;/li&gt;
&lt;li&gt;클러스터 참여 노드 수는 255로 제한, 데이터 노드는 최대 48개까지만 가능&lt;/li&gt;
&lt;li&gt;트랜잭션 수행 중 롤백을 지원하지 않으므로, 작업 수행 중 문제 발생 시, 전체 트랜잭션 이전으로 롤백&lt;/li&gt;
&lt;li&gt;메모리 부족 문제로 여러 개의 트랜잭션으로 분리해 처리하는 것이 좋음(ex: Delete from ~ limit ~)&lt;/li&gt;
&lt;li&gt;Column 명 길이는 31자, DB와 테이블명 길이는 122까지로 제한, 메타데이터(속성정보)는 2만 320개까지만 가능&lt;/li&gt;
&lt;li&gt;클러스터내 최대 테이블 수는 2만 320개&lt;/li&gt;
&lt;li&gt;운영 중에 노드를 추가/삭제할 수 없음&lt;/li&gt;
&lt;/ol&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;b&gt;연관 포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/756&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;분산 파일 시스템 (Distributed File System) - ADP #8&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/755&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;대용량 비정형 데이터 처리 - ADP #7&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/754&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;데이터 연계 및 통합 기법 - ADP #6&lt;/a&gt;&lt;/p&gt;</description>
      <category>IT 자격증/데이터 분석 전문가(ADP)</category>
      <category>DB2</category>
      <category>MySQL</category>
      <category>OracleRac</category>
      <category>SQLServer</category>
      <category>클러스터링</category>
      <category>파티셔닝</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/774</guid>
      <comments>https://needjarvis.tistory.com/774#entry774comment</comments>
      <pubDate>Tue, 19 Jul 2022 15:36:28 +0900</pubDate>
    </item>
    <item>
      <title>크롬(Chrome) 확장 프로그램 오프라인 옮기기</title>
      <link>https://needjarvis.tistory.com/773</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오프라인에서 크롬을 써야 할 경우 확장 프로그램을 설치되지 않아 불편할 수 있습니다(ex: UTF-8 보기, JSON Viewer 기능 등) 이런 상황을 위해 크롬에서는 확장 프로그램을 옮기는 기능을 지원합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;확장 프로그램 옮기기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확장 프로그램의 경우, Manifest 문제가 많을 수 있어서 CRX를 만들어서 옮기는 것이 가장 깔끔합니다. CRX를 만드는 방법은 아래 포스팅을 확인하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/772&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://needjarvis.tistory.com/772&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658136222543&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;구글 크롬(Chrome)에서 CRX 다운로드 하는 방법&quot; data-og-description=&quot;확장 프로그램을 인터넷이 안되는 곳에 옮기는 과정이 참 쉽지 않습니다. 사실 CRX만 있으면 모든 것이 해결이 되는 문제라 CRX을 어디서 받는가 봤더니, 아래와 같은 사이트에서 CRX를 제공하고 &quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/772&quot; data-og-url=&quot;https://needjarvis.tistory.com/772&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/q79Gx/hyO8Rx38yn/WHrV6TvWfHTBrraN63xZuk/img.png?width=800&amp;amp;height=423&amp;amp;face=0_0_800_423,https://scrap.kakaocdn.net/dn/4Imzr/hyO8W0rGF3/bakddcpeZFz3olXVw8S4z1/img.png?width=800&amp;amp;height=423&amp;amp;face=0_0_800_423,https://scrap.kakaocdn.net/dn/penIJ/hyO7uxKD2Y/CkI1Zw33KrbHZSmKCb5YI1/img.png?width=1256&amp;amp;height=665&amp;amp;face=0_0_1256_665&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/772&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/772&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/q79Gx/hyO8Rx38yn/WHrV6TvWfHTBrraN63xZuk/img.png?width=800&amp;amp;height=423&amp;amp;face=0_0_800_423,https://scrap.kakaocdn.net/dn/4Imzr/hyO8W0rGF3/bakddcpeZFz3olXVw8S4z1/img.png?width=800&amp;amp;height=423&amp;amp;face=0_0_800_423,https://scrap.kakaocdn.net/dn/penIJ/hyO7uxKD2Y/CkI1Zw33KrbHZSmKCb5YI1/img.png?width=1256&amp;amp;height=665&amp;amp;face=0_0_1256_665');&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;구글 크롬(Chrome)에서 CRX 다운로드 하는 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;확장 프로그램을 인터넷이 안되는 곳에 옮기는 과정이 참 쉽지 않습니다. 사실 CRX만 있으면 모든 것이 해결이 되는 문제라 CRX을 어디서 받는가 봤더니, 아래와 같은 사이트에서 CRX를 제공하고&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.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;b&gt;확장팩 설치&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CRX 파일을 만들었다면, 이제 확장팩을 설치하는 방법은 다음과 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;334&quot; data-origin-height=&quot;269&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ce4mvD/btrHzpSwN9D/xzn1W4KtQ0pjmJVLdijN9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ce4mvD/btrHzpSwN9D/xzn1W4KtQ0pjmJVLdijN9K/img.png&quot; data-alt=&quot;확장 프로그램 관리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ce4mvD/btrHzpSwN9D/xzn1W4KtQ0pjmJVLdijN9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fce4mvD%2FbtrHzpSwN9D%2Fxzn1W4KtQ0pjmJVLdijN9K%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;334&quot; height=&quot;269&quot; data-origin-width=&quot;334&quot; data-origin-height=&quot;269&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;확장 프로그램 관리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 확장 프로그램 관리로 이동을 합니다. 우측 상단에서 아이콘을 선택하는 방법도 있고, URL을 직접 입력하여 가는 방법도 있는데 URL은 아래의 경로를 참고해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;chrome://extensions/&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확장 프로그램 관리를 갔으면, 우측 상단에 개발자 모드를 ON 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1221&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beSZYQ/btrHEzFJZdO/tAN7dlP5IQlL1oGXNxjONK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beSZYQ/btrHEzFJZdO/tAN7dlP5IQlL1oGXNxjONK/img.png&quot; data-alt=&quot;개발자 모드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beSZYQ/btrHEzFJZdO/tAN7dlP5IQlL1oGXNxjONK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeSZYQ%2FbtrHEzFJZdO%2FtAN7dlP5IQlL1oGXNxjONK%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;1221&quot; height=&quot;127&quot; data-origin-width=&quot;1221&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;개발자 모드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 CRX 파일을 드래그 해서, 해당 영역으로 옮깁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;310&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TtrpB/btrHCX1NKI1/9asjsL57g4GnYvODwEnX1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TtrpB/btrHCX1NKI1/9asjsL57g4GnYvODwEnX1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TtrpB/btrHCX1NKI1/9asjsL57g4GnYvODwEnX1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTtrpB%2FbtrHCX1NKI1%2F9asjsL57g4GnYvODwEnX1k%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;875&quot; height=&quot;310&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;310&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;CRX를 드래그 하면 위와 같이 확장 프로그램을 추가하겠다는 박스가 뜨게 됩니다. &quot;확장 프로그램 추가&quot;를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;366&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSgZmN/btrHzpdW3eN/VVjO9KQHZ9RQw27A5Boyf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSgZmN/btrHzpdW3eN/VVjO9KQHZ9RQw27A5Boyf1/img.png&quot; data-alt=&quot;확장 프로그램 추가 완료&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSgZmN/btrHzpdW3eN/VVjO9KQHZ9RQw27A5Boyf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSgZmN%2FbtrHzpdW3eN%2FVVjO9KQHZ9RQw27A5Boyf1%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;751&quot; height=&quot;366&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;366&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;확장 프로그램 추가 완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 위와 같이 확장 프로그램이 성공적으로 추가 된 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/IT Tip</category>
      <category>CRX</category>
      <category>Extensions</category>
      <category>구글확장</category>
      <category>확장프로그램</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/773</guid>
      <comments>https://needjarvis.tistory.com/773#entry773comment</comments>
      <pubDate>Mon, 18 Jul 2022 18:32:20 +0900</pubDate>
    </item>
    <item>
      <title>구글 크롬(Chrome)에서 확장팩 CRX 다운로드 하는 방법</title>
      <link>https://needjarvis.tistory.com/772</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;확장 프로그램을 인터넷이 안되는 곳에 옮기는 과정이 참 쉽지 않습니다. 사실 CRX만 있으면 모든 것이 해결이 되는 문제라 CRX을 어디서 받는가 봤더니, 아래와 같은 사이트에서 CRX를 제공하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://crxextractor.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://crxextractor.com/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658134569653&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;Get .CRX Chrome Extension file, it's source code and download .CRX to your computer.&quot; data-og-description=&quot;Turn any Chrome extension into white box. Learn from code, debug and pentest it! Hey, stranger!   Take a look at the special page Just download chrome extension!. This article uncovers a number of extremely useful Chrome Extensions to download. There is&quot; data-og-host=&quot;crxextractor.com&quot; data-og-source-url=&quot;https://crxextractor.com/&quot; data-og-url=&quot;https://crxextractor.com/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://crxextractor.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://crxextractor.com/&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;Get .CRX Chrome Extension file, it's source code and download .CRX to your computer.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Turn any Chrome extension into white box. Learn from code, debug and pentest it! Hey, stranger!   Take a look at the special page Just download chrome extension!. This article uncovers a number of extremely useful Chrome Extensions to download. There is&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;crxextractor.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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;665&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zLOS2/btrHDdi0LVO/cIKYKXshG8c8J4wvMtokt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zLOS2/btrHDdi0LVO/cIKYKXshG8c8J4wvMtokt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zLOS2/btrHDdi0LVO/cIKYKXshG8c8J4wvMtokt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzLOS2%2FbtrHDdi0LVO%2FcIKYKXshG8c8J4wvMtokt1%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;1256&quot; height=&quot;665&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;665&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;위 사이트에서 START FOR Free를 선택하면, URL을 입력하는 칸이 나오는데 아래와 같이 확장 프로그램의 상세 페이지 URL을 입력하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAv7o1/btrHDjQViUr/wcD8rowVxTGwbaVrPbQvEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAv7o1/btrHDjQViUr/wcD8rowVxTGwbaVrPbQvEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAv7o1/btrHDjQViUr/wcD8rowVxTGwbaVrPbQvEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAv7o1%2FbtrHDjQViUr%2FwcD8rowVxTGwbaVrPbQvEk%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;1137&quot; height=&quot;441&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;441&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;웹스토어의 확장 프로그램 URL을 복사하여, 아래의 URL 공간에 붙여넣기를 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;435&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U63uj/btrHzpSuz4r/0K1EVHqO4Vz8XT8ki4g8E1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U63uj/btrHzpSuz4r/0K1EVHqO4Vz8XT8ki4g8E1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U63uj/btrHzpSuz4r/0K1EVHqO4Vz8XT8ki4g8E1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU63uj%2FbtrHzpSuz4r%2F0K1EVHqO4Vz8XT8ki4g8E1%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;853&quot; height=&quot;435&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL을 붙여넣기 하였다면, DOWNLOAD 버튼을 클릭하게 될 경우 GET .CRX 버튼으로 변환이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpR0Ok/btrHDcLaiA3/Hltjzw6AB2Uf3OhwOXruek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpR0Ok/btrHDcLaiA3/Hltjzw6AB2Uf3OhwOXruek/img.png&quot; data-alt=&quot;GET .CRX로 버튼 변환&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpR0Ok/btrHDcLaiA3/Hltjzw6AB2Uf3OhwOXruek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpR0Ok%2FbtrHDcLaiA3%2FHltjzw6AB2Uf3OhwOXruek%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;492&quot; height=&quot;289&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GET .CRX로 버튼 변환&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 버튼을 선택하면 CRX 파일이 다운로드 받아지게 되며, 아래와 같이 경고가 뜨면 &quot;계속&quot;을 선택하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;69&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doAvHY/btrHCYl5pNM/oaKAx3h3DLiKcXS05ofS91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doAvHY/btrHCYl5pNM/oaKAx3h3DLiKcXS05ofS91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doAvHY/btrHCYl5pNM/oaKAx3h3DLiKcXS05ofS91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoAvHY%2FbtrHCYl5pNM%2FoaKAx3h3DLiKcXS05ofS91%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;487&quot; height=&quot;69&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;69&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;그러면 아래처럼 CRX 파일을 성공적으로 받아진 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;31&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EO5mH/btrHCxWo4Ct/B10ce4feFf12Xy2AYjkFH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EO5mH/btrHCxWo4Ct/B10ce4feFf12Xy2AYjkFH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EO5mH/btrHCxWo4Ct/B10ce4feFf12Xy2AYjkFH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEO5mH%2FbtrHCxWo4Ct%2FB10ce4feFf12Xy2AYjkFH0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;708&quot; height=&quot;31&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;31&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;CRX를 모두 받았다면, 이제 원하는 컴퓨터의 크롬에 해당 CRX를 로드하면 됩니다. CRX를 어떻게 로드해야 할지 고민이라면 하단 포스팅을 확인하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/773&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;크롬(Chrome) 확장 프로그램 오프라인 옮기기&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1658136873379&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;크롬(Chrome) 확장 프로그램 오프라인 옮기기&quot; data-og-description=&quot;오프라인에서 크롬을 써야 할 경우 확장 프로그램을 설치되지 않아 불편할 수 있습니다(ex: UTF-8 보기, JSON Viewer 기능 등) 이런 상황을 위해 크롬에서는 확장 프로그램을 옮기는 기능을 지원합니&quot; data-og-host=&quot;needjarvis.tistory.com&quot; data-og-source-url=&quot;https://needjarvis.tistory.com/773&quot; data-og-url=&quot;https://needjarvis.tistory.com/773&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bzL4qN/hyO7FTy9y5/qJpGhWZrYauxMuw5YQfRC0/img.png?width=751&amp;amp;height=366&amp;amp;face=0_0_751_366,https://scrap.kakaocdn.net/dn/KPOwZ/hyO8O2pUPb/yMFuZqopGz8KhP5s7ncuV0/img.png?width=751&amp;amp;height=366&amp;amp;face=0_0_751_366,https://scrap.kakaocdn.net/dn/cFptlE/hyO7xBeTfc/RAmJfKnq1myBu0bz6fhOXK/img.png?width=751&amp;amp;height=366&amp;amp;face=0_0_751_366&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/773&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://needjarvis.tistory.com/773&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bzL4qN/hyO7FTy9y5/qJpGhWZrYauxMuw5YQfRC0/img.png?width=751&amp;amp;height=366&amp;amp;face=0_0_751_366,https://scrap.kakaocdn.net/dn/KPOwZ/hyO8O2pUPb/yMFuZqopGz8KhP5s7ncuV0/img.png?width=751&amp;amp;height=366&amp;amp;face=0_0_751_366,https://scrap.kakaocdn.net/dn/cFptlE/hyO7xBeTfc/RAmJfKnq1myBu0bz6fhOXK/img.png?width=751&amp;amp;height=366&amp;amp;face=0_0_751_366');&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;크롬(Chrome) 확장 프로그램 오프라인 옮기기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;오프라인에서 크롬을 써야 할 경우 확장 프로그램을 설치되지 않아 불편할 수 있습니다(ex: UTF-8 보기, JSON Viewer 기능 등) 이런 상황을 위해 크롬에서는 확장 프로그램을 옮기는 기능을 지원합니&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;needjarvis.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;</description>
      <category>IT/IT Tip</category>
      <category>CRX</category>
      <category>크롬확장프로그램</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/772</guid>
      <comments>https://needjarvis.tistory.com/772#entry772comment</comments>
      <pubDate>Mon, 18 Jul 2022 18:22:03 +0900</pubDate>
    </item>
    <item>
      <title>[Spring boot] 스프링부트, Mybatis 세팅 및 샘플 예시</title>
      <link>https://needjarvis.tistory.com/771</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마이바티스(MyBatis) 개요&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마이바티스(Mybatis)는 2001년 클린턴 비긴이 만든 아이바티스(ibatis) 프로젝트의 3.0에서 포크된 프로젝트로 아파치 라이센스(Apache License) 2.0에 따라 배포되는 무료 소프트웨어[1]이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MyBatis(ibatis 포함)의 특징은 기존 ORM 프레임워크와 달리 Java 개체를 데이터베이스 테이블에 매핑하지 않고, Java 메소드를 SQL에 매핑한다[2]. 그러다보니 자바 소스는 매우 간결해지고, 핵심은 SQL문을 포함한 XML 코드에 모두 포함이 되어 있다. 국내의 대형 SI들과 함께 단체로 개발을 할 때, Mybatis를 사용하는 가장 큰 이유는 바로 SQL문이 독립되어 유지보수가 편리해지고, 개발자 수준별로 코드를 분리할 수 있기가 용이하기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이처럼 국내 SI업체를 포함하여 국가 표준인 전자정부프레임워크(eGovFramework)에서는 MyBatis를 Java 프로젝트의 표준으로 사용하고 있지만, 세팅 및 오류가 발생할 경우 에러를 잡는게 쉽지 않으며, SI를 경험해보지 못한 개발자의 경우 복잡한 RDB 사용이 익숙하지 않기 때문에 간단한 언어를 선호하며, RDB 사용을 최소화하고, 마이크로 아키텍쳐(Micro Architecture)가 트렌드인&amp;nbsp; 최근 개발자들에게는 관심사가 멀어지고 있는 추세이긴 하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스프링부트_mybatis_세팅.jpg&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxHPIC/btrFHILqLKn/sdw2vNyqmE0IGLHLK6YASK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxHPIC/btrFHILqLKn/sdw2vNyqmE0IGLHLK6YASK/img.jpg&quot; data-alt=&quot;[Spring boot] 스프링부트, Mybatis 세팅 및 샘플 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxHPIC/btrFHILqLKn/sdw2vNyqmE0IGLHLK6YASK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxHPIC%2FbtrFHILqLKn%2Fsdw2vNyqmE0IGLHLK6YASK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;500&quot; data-filename=&quot;스프링부트_mybatis_세팅.jpg&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Spring boot] 스프링부트, Mybatis 세팅 및 샘플 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;스프링부트 프로젝트 생성&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링 스타터 프로젝트(Spring Start Project)를 사용하여, 스프링 프로젝트를 생성한다. 여기서는 Maven으로 설명하고 있으니, 그레이들(Gradle)일 경우 본인 설정에 맞게 변경하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEWY9X/btrFFOZDwg1/5lp8S3jnsFOQk8ZwOoMIek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEWY9X/btrFFOZDwg1/5lp8S3jnsFOQk8ZwOoMIek/img.png&quot; data-alt=&quot;스프링 프로젝트 생성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEWY9X/btrFFOZDwg1/5lp8S3jnsFOQk8ZwOoMIek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEWY9X%2FbtrFFOZDwg1%2F5lp8S3jnsFOQk8ZwOoMIek%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;553&quot; height=&quot;732&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스프링 프로젝트 생성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트를 설정했으면, 사용할 디펜던시(Dependencies)들을 아래와 같이 설정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnB7gC/btrFE58VpVM/GksiUty4WgYRRC92nSkgbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnB7gC/btrFE58VpVM/GksiUty4WgYRRC92nSkgbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnB7gC/btrFE58VpVM/GksiUty4WgYRRC92nSkgbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnB7gC%2FbtrFE58VpVM%2FGksiUty4WgYRRC92nSkgbK%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;553&quot; height=&quot;732&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;여기서는 롬복(Lombok)을 추가적으로 설정하였지만 롬복을 사용하지 않을 경우 제외하며, 웹으로 개발하지 않을 경우 Spring Web도 제외한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXq7kt/btrFEWdm9bc/drkJjiNAnRkY3oQoLTrZ9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXq7kt/btrFEWdm9bc/drkJjiNAnRkY3oQoLTrZ9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXq7kt/btrFEWdm9bc/drkJjiNAnRkY3oQoLTrZ9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXq7kt%2FbtrFEWdm9bc%2FdrkJjiNAnRkY3oQoLTrZ9K%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;553&quot; height=&quot;732&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;732&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;설정이 완료하였으면, Finish를 눌러서 프로젝트를 생성한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;스프링부트 초기 세팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트를 생성하였으면, 이제 추가적으로 세팅 작업을 진행해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;application.properties&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1656058438800&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

## MySQL
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/my_place
spring.datasource.username=root
spring.datasource.password=needjarvis
spring.datasource.driver-class-name: com.mysql.cj.jdbc.Driver

# mybatis
mybatis.mapper-locations=classpath:mybatis/mapper/**/**.xml&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;위 DB 설정의 경우 당연히 필자의 설정이기 때문에 자신에게 맞게 url과 username, password를 변경한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;spring.mvc.view의 경우, 웹개발을 하기 위한 설정이며 웹개발이 아니라 JSON으로 전송하는 API가 목적이라 한다면 당연히 해당 설정은 사용하지 않아도 상관 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;mapper 폴더 생성&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cL9fSo/btrFE4WwOrS/etKnVo4MGlVAUjMsUQCMBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cL9fSo/btrFE4WwOrS/etKnVo4MGlVAUjMsUQCMBk/img.png&quot; data-alt=&quot;mapper 폴더 생성&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cL9fSo/btrFE4WwOrS/etKnVo4MGlVAUjMsUQCMBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcL9fSo%2FbtrFE4WwOrS%2FetKnVo4MGlVAUjMsUQCMBk%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;285&quot; height=&quot;248&quot; data-origin-width=&quot;285&quot; data-origin-height=&quot;248&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;mapper 폴더 생성&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;src/main/resources로 가서, mybatis 폴더와 하위 폴더로 mapper 폴더를 생성한다. 이 폴더에는 앞으로 SQL 문이 담겨져 있는 mapper xml 코드가 담겨져 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;pom.xml&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1656058862174&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;mysql&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;mysql-connector-java&amp;lt;/artifactId&amp;gt;
&amp;lt;/dependency&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 포스팅에서는 mysql을 DB로 사용하기 때문에 mysql-connector-java를 pom.xml에 추가로 dependency를 설정하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 초기 세팅을 완료하였다면 이제 본격적으로 코드를 채워 넣도록 해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;조회(Select) 예시&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세팅이 제대로 되었는지 확인을 위해서 조회 예제를 진행해보도록 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;280&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FX0um/btrFEuBsZmY/j4BMsbWCiE6vlh6Bn2gzkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FX0um/btrFEuBsZmY/j4BMsbWCiE6vlh6Bn2gzkK/img.png&quot; data-alt=&quot;테이블 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FX0um/btrFEuBsZmY/j4BMsbWCiE6vlh6Bn2gzkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFX0um%2FbtrFEuBsZmY%2Fj4BMsbWCiE6vlh6Bn2gzkK%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;757&quot; height=&quot;280&quot; data-origin-width=&quot;757&quot; data-origin-height=&quot;280&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;테이블 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트는 뉴스를 랜덤으로 2개를 지정하여, news 테이블(table)에 저장을 하였고 뉴스제목(title), 기자(journalist), 등록일(reg_dt), 신문사(publisher)라는 4개의 컬럼이 존재한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;NewsEntity.java&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 데이터를 저장할 객체를 생성한다. 본 포스팅에서는 롬복을 사용하였기 때문에 getter, setter를 만들지 않았는데 롬복을 사용하지 않을 경우 직접 getter &amp;amp; setter를 생성하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1656059599635&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package dev.zeronelab.mybatis.vo;

import lombok.Data;

@Data
public class NewsEntity {
	private String title;
	private String journalist;
	private String publisher;
	private String reg_dt;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;INewsDAO.java (인터페이스)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뉴스의 SQL 코드와 매핑되는 껍데기 메소드를 인터페이스(interface)로 생성하며, 인터페이스에 Mapper라는 어노테이션을 지정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1656059668697&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package dev.zeronelab.mybatis.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import dev.zeronelab.mybatis.vo.NewsEntity;

@Mapper
public interface INewsDAO {
	public List&amp;lt;NewsEntity&amp;gt; listNews();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;NewsController.java&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조회를 실행 할, NewsController를 아래와 같이 생성한다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1656059737908&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package dev.zeronelab.mybatis.web;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import dev.zeronelab.mybatis.dao.INewsDAO;
import dev.zeronelab.mybatis.vo.NewsEntity;


@Controller
public class NewsController {

	private Logger logger = LoggerFactory.getLogger(NewsController.class);
	
	@Autowired
	private INewsDAO newDAO;
	
	@RequestMapping(&quot;/news&quot;)
	public @ResponseBody Map&amp;lt;String, Object&amp;gt; news() throws Exception {
		Map&amp;lt;String, Object&amp;gt; rtnObj = new HashMap&amp;lt;&amp;gt; ();
		
		List&amp;lt;NewsEntity&amp;gt; newsList = newDAO.listNews();
		logger.info(&quot;news-&amp;gt;&quot; + newsList.toString());
		
		rtnObj.put(&quot;news_list&quot;, newsList);
		return rtnObj;
	}	
}&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;&lt;b&gt;News.xml&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 핵심이 되는 SQL 문과 설정이 담겨져 있는 News.xml&amp;nbsp; 매퍼 코드를 생성한다.&lt;/p&gt;
&lt;pre id=&quot;code_1656059098855&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;!DOCTYPE mapper
	PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
	&quot;http://mybatis.org/dtd/mybatis-3-mapper.dtd&quot;&amp;gt;
	
&amp;lt;mapper namespace=&quot;dev.zeronelab.mybatis.dao.INewsDAO&quot;&amp;gt;
	
	&amp;lt;!-- 뉴스 조회 --&amp;gt;
	&amp;lt;select id=&quot;listNews&quot; resultType=&quot;dev.zeronelab.mybatis.vo.NewsEntity&quot;&amp;gt;
		select title, journalist, publisher, reg_dt from news
	&amp;lt;/select&amp;gt;	
&amp;lt;/mapper&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mapper namespace는 이 매퍼코드와 1:1 매핑을 시킬 객체를 지정하며(INewsDAO), INewsDAO에 있는 listNews 메소드명과 동일한 이름(id)을 가진 select를 생성한다.&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;resultType의 경우 결과를 어떤 Entity로 받을 것인지를 나타내며, 여기서는 News만을 위한 NewsEntity 클래스가 있기에 해당 클래스를 지정한다.&amp;nbsp;그리고 select xml안에는 결과를 조회할 쿼리를 지정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;조회 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 설정이 완료되었다면 아래와 같이 localhost:8080/news를 호출하여, 뉴스 결과를 뿌려보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wn4JT/btrFFZGRhB9/mFIFwNO9qc2qBxqhR1tRK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wn4JT/btrFFZGRhB9/mFIFwNO9qc2qBxqhR1tRK1/img.png&quot; data-alt=&quot;News 조회 결과 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wn4JT/btrFFZGRhB9/mFIFwNO9qc2qBxqhR1tRK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwn4JT%2FbtrFFZGRhB9%2FmFIFwNO9qc2qBxqhR1tRK1%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;779&quot; height=&quot;524&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;News 조회 결과 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과가 정상적으로 나오는 것을 확인하였다. 다음 포스팅에서는 Mybatis의 다양한 예제를 통해서 조회(select), 삽입(insert), 갱신(update)를 알아보도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;a href=&quot;https://blog.mybatis.org/p/about.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.mybatis.org/p/about.html&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[2] &lt;a href=&quot;https://en.wikipedia.org/wiki/MyBatis&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://en.wikipedia.org/wiki/MyBatis&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;연관 포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/752&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Spring boot] 스프링부트 jdbcTemplate 세팅 및 예제&lt;/a&gt;&lt;/p&gt;</description>
      <category>프로그램언어/스프링(Spring)</category>
      <category>ibatis</category>
      <category>jpa</category>
      <category>mybatis</category>
      <category>Spring</category>
      <category>spring boot</category>
      <category>마이바티스</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/771</guid>
      <comments>https://needjarvis.tistory.com/771#entry771comment</comments>
      <pubDate>Fri, 24 Jun 2022 20:25:55 +0900</pubDate>
    </item>
    <item>
      <title>스테픈(StepN)의 죽음의 소용돌이(Death Spiral)</title>
      <link>https://needjarvis.tistory.com/770</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;스테픈의 경우 죽음의 소용돌이를 지금 한참 겪고 있고, 어느정도 안정화되는 단계가 될지 기로에 서 있는 상태라 생각합니다. 그럼 스테픈의 죽음의 소용돌이가 무엇인지 이것이 폰지사기랑 어떻게 다른지 알아보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;719&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9WvPj/btrE5hiAFLr/9DSszDy0nMWGefENKCJYKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9WvPj/btrE5hiAFLr/9DSszDy0nMWGefENKCJYKK/img.png&quot; data-alt=&quot;스테픈(StepN)의 죽음의 소용돌이(Death Spiral)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9WvPj/btrE5hiAFLr/9DSszDy0nMWGefENKCJYKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9WvPj%2FbtrE5hiAFLr%2F9DSszDy0nMWGefENKCJYKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;719&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;719&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스테픈(StepN)의 죽음의 소용돌이(Death Spiral)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;NFT 신발 가격 하락&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스테픈은 게임이다보니 암호화폐 설계가 꽤나 복잡하게 되어 있습니다. 문제는 이렇게 복잡하게 되어 있다면 예상치 못한 문제가 발생할 수 있다는 것입니다. 서브 프라임 모기지 사태가 복잡한 파생 모기지 상품으로 무너졌듯, 화폐 설계가 복잡하면 사이드 이펙이 발생하게 되는 것이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1859&quot; data-origin-height=&quot;966&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clZ07i/btrE8OzfRQ5/tb9kk3hE5rpZbs82oY51ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clZ07i/btrE8OzfRQ5/tb9kk3hE5rpZbs82oY51ck/img.png&quot; data-alt=&quot;스테픈의 NFT 가격 하락의 모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clZ07i/btrE8OzfRQ5/tb9kk3hE5rpZbs82oY51ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclZ07i%2FbtrE8OzfRQ5%2Ftb9kk3hE5rpZbs82oY51ck%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;1859&quot; height=&quot;966&quot; data-origin-width=&quot;1859&quot; data-origin-height=&quot;966&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스테픈의 NFT 가격 하락의 모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 스크린 샷은 제가 스테픈을 시작한 후, 신발 NFT의 마켓 가격을 일정 기간마다 스크린샷으로 찍은 것입니다. Default가 Lowest Price이기 때문에 쉽게 가장 싼 가격을 찍은것이라 볼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제일 왼쪽이 신발을 산 후, 다음 날의 모습 두번째가 사용한지 3일 후, 세번째는 사용한 지 9일 후의 모습입니다. 제가 처음 스테픈을 시작 했을 때 11.2 Sol에 샀는데 당시 솔라나가 약 55000원 정도 했었으니 약 60만원 정도에 매수를 한 것이죠. 나름 싸게 샀다고 생각했는데 에너지를 채우고 있는 다음날에 마켓을 보면서 놀라지 않을 수 없었습니다. 무려 40% 하락한 7.x 솔라나가 된 것이었죠.&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;사고 나서 다음날 20만원이 날라간 셈인데 저는 폰지사기 구조라 한 켤레만 샀는데 많은 사람들이 여러 켤레를 사다보니 이거 3켤레로 시작했으면 손해가 꽤 심했겠다 생각을 했습니다. 그리고 보다시피 시간이 지나면서 요구하는 솔라나가 계속 줄어들고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;GST 가격 하락&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 솔라나 가격이 하락이 된다는 것은 크게 중요하지 않습니다. 핵심은 GST를 얼마나 버는가라고 볼 수 있는 것이죠. 솔라나가 초기 투입비라고 생각하면 GST는 매출액이라 볼 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1518&quot; data-origin-height=&quot;961&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qbBLS/btrE8RClVKM/K73Ij2f2JCzEtkfYSQMGQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qbBLS/btrE8RClVKM/K73Ij2f2JCzEtkfYSQMGQ1/img.png&quot; data-alt=&quot;GST 가격 하락 차트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qbBLS/btrE8RClVKM/K73Ij2f2JCzEtkfYSQMGQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqbBLS%2FbtrE8RClVKM%2FK73Ij2f2JCzEtkfYSQMGQ1%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;1518&quot; height=&quot;961&quot; data-origin-width=&quot;1518&quot; data-origin-height=&quot;961&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;GST 가격 하락 차트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 위 차트를 보다시피 GST 가격도 하락하고 있습니다. 물론 최근 13일 들어서 저점을 찍고 살짝 반등하면서 비트코인과 다른 무빙을 보여주고 있습니다만 GST 하나당 0.22$ 정도로 약 300원 정도를 유지하고 있습니다. 보통 신발 한켤레로 10GST 정도를 얻을 수 있으니, 하루에 3000원 정도 얻을 수 있는 것이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 이게 한달전에는 2.96$로 약 3500원 정도를 코인 한개당 얻을 수 있었습니다. 그러니 지금 스테픈을 하는 사람들이 얼마나 우울증이 심해졌는지 가격 차트만 보더라도 쉽게 납득이 가능할 것 같습니다. 당시 이 분들은 스테픈으로 하루 알바비를 벌 정도였으니 말이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;죽음의 소용돌이&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스테픈 신발 싸진거 알고 있고, GST 가격이 내려간 것을 알고 있는데 여기서 죽음의 소용돌이가 무슨 문제냐 할 수 있습니다. 사실 스테픈은 그동안 멘징이 끝난 사람들이 마치 공장처럼 돈을 계속 찍어내고 시장가에 팔아대면서 가격이 내려가는 문제가 발생하고 있었는데 여기서 +@로 악재가 하나 더 있었던 것이죠. 그것이 바로 구조의 문제입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;927&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RjSSU/btrE9SnTGcT/syfvtQXAGvZDsu4PUwl840/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RjSSU/btrE9SnTGcT/syfvtQXAGvZDsu4PUwl840/img.png&quot; data-alt=&quot;죽음의 소용돌이 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RjSSU/btrE9SnTGcT/syfvtQXAGvZDsu4PUwl840/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRjSSU%2FbtrE9SnTGcT%2FsyfvtQXAGvZDsu4PUwl840%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;1228&quot; height=&quot;927&quot; data-origin-width=&quot;1228&quot; data-origin-height=&quot;927&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;죽음의 소용돌이 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 스타트는 멘징이 늘어나면서 매도자가 우위에 서면서, 신발 갯수를 늘리려던 사람들마저 매도로 돌아가는 상황입니다. 이렇게 폰지사기 구조의 전형적인 구조로 돌아가게 되면 당연히 GST는 계속 시장가에 던질 수 있게 됩니다. 문제는 GST의 가격이 계속 내려가면 무슨 문제가 발생할까요? 당연히 GST를 벌어주는 신발가격이 내려가게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신발을 사는 사람들은 당연히 멘징 기간(원금 회수기간)이 얼만지를 계산하게 됩니다. 스테픈을 시작한 후 1년동안 꾸준히 해야 멘징이 된다면 하는 사람들이 당연히 거의 없을 것입니다. 그렇기 때문에 GST의 가격하락은 신발 가격이 낮춰지는 현상이 발생하게 되면서 신발 한켤레당 필요한 솔라나가 점점 줄어들게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;막상 신발 가격이 내려가면 또 어떤 문제가 발생하냐면 GST의 기대치가 또 낮춰지게 됩니다. 신발 가격이 내려간 것을 보면서 하루 빨리 멘징을 해야 겠구나라는 생각에 GST를 계속 시장가에 팔아버리게 됩니다. 또 그러면 신발 가격이 낮춰지고 신발 가격이 낮춰지면서 GST는 또 떨어지고...이런 악순환이 계속 발생하게 되어 버립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;죽음의 소용돌이는 어디가 끝?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 스테픈은 테라와 루나와는 다른 구조이긴 합니다. 테라를 살리기 위해서 루나의 발행량을 늘려버려서 루나의 가치를 극심하게 떨어트렸지만, 스테픈은 기본적으로 &quot;게임&quot;이며 특정 가격 이하로 내려가면 하는 사람들이 늘어날 수 있는 구조를 가지고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;역설적으로 비싸면 하는 사람이 줄어들지만 가격이 싸면 한번 해볼까?라는 사람들이 늘어날 수 있는 구조로 되어 있죠. 그러다보니 어느정도 하락을 하게 되면, GST의 가격이 더이상 하락을 하다가 멈추게 되는 현상이 발생할 수 있는데 저는 러프하게 생각해서 신발 한켤레에 1솔라나까지 떨어질 수 있다라고 생각을 했고 이를 기반으로 신발 한켤레로 하루에 벌 수 있는 돈이 천원 정도로 생각을 하게 된 것이죠.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;싸네_한번_해볼까.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czCqn4/btrE6yjGaM8/MUWyFyqdb49tBzK8ebYWd0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czCqn4/btrE6yjGaM8/MUWyFyqdb49tBzK8ebYWd0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czCqn4/btrE6yjGaM8/MUWyFyqdb49tBzK8ebYWd0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczCqn4%2FbtrE6yjGaM8%2FMUWyFyqdb49tBzK8ebYWd0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;860&quot; height=&quot;512&quot; data-filename=&quot;싸네_한번_해볼까.jpg&quot; data-origin-width=&quot;860&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 솔라나가 4만원이니, 4만원으로 하루에 천원을 번다면 소소하게 봤을 땐 꽤나 괜찮다고 생각을 했고 신발을 여러 켤레 늘리며 보석과 언커먼 신발 등으로 중간중간 큰 수익을 버는 구조로 한다면 하루에 몇만원씩 벌수도 있기 때문에 이정도의 수준이 된다면 폰지사기도 끝이나고, 회사가 운영을 계속 하고 유저가 늘어날 수 있다면 GMT 채굴에 포커스로 전환해서 게임이 유지가 될 수 있다 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 지금 신발도 약 10만원이면 살 수 있는 가격이기 때문에 호기심으로 해도 충분할 수 있는 가격이며 현재 가격을 유지해준다면 약 2달정도 꾸준히 했을 경우 충분히 멘징할 수 있는 가격이라 나쁘지 않다 생각합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;관련 포스팅&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/757&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;운동 보상과 NFT의 만남, 스테픈(STEPN, GMT/GST) 코인&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/761&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[StepN] 스테픈의 폰지사기 가능성&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/764&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;스테픈(StepN) 하락 원인 및 폰지사기&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://needjarvis.tistory.com/767&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;스테픈(StepN)과 같이 쓰면 좋은 Move2Earn 앱, 메디패스(Medipass)&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>암호화폐 및 블록체인/문제 및 이슈</category>
      <category>STEPN</category>
      <category>스테픈</category>
      <category>암호화폐</category>
      <category>죽음의소용돌이</category>
      <category>폰지사기</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/770</guid>
      <comments>https://needjarvis.tistory.com/770#entry770comment</comments>
      <pubDate>Sun, 19 Jun 2022 03:20:19 +0900</pubDate>
    </item>
    <item>
      <title>[이더리움] 셀시우스(celsius) 위기, 디파이 종말?</title>
      <link>https://needjarvis.tistory.com/769</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;최근 들어, 테라(terra) 및 루나(luna) 사태를 기억할 것이다. 테라는 디파이(Defi)에 특화된 코인으로 스테이킹을 하면 20% 수익을 준다는 것을 기반으로 많은 투자자들의 자금이 쏠리기도 했었다. 게다가 알고리즘이긴 하지만, 스테이블 코인(Stable coin)이니 많은 사람들이 지금과 같은 상황을 전혀 예상하지 못했을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;루나 사태 이후, 암호화폐에 대한 스탠스가 확실히 이전같지 않다. 예전에는 투자를 하지 않을때에는 테더와 같은 스테이블 코인으로 변환한 후 시장을 관망하는 경우가 많았다. 게다가 시장이 큰 폭으로 하락을 할 때에는 테더가 약 10% 가까이 올라가는 경우가 있을 정도로 관망 + @의 수익을 내기도 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 이제 사람들은 스테이블 코인이 몰락할 수 있다는 생각을 한다는 것이다. 스테이블 코인은 달러 기반의 실물이 있어야 발행이 가능한 구조이다. 즉, 가격이 오르는 경우는 어쩔수 없겠지만 달러보다 낮은 가격은 확실히 오버이다. 낮은 가격일 경우 스테이블 코인을 사서 달러로 바꾸면 되기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1251&quot; data-origin-height=&quot;834&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kMV6Q/btrESjtc7le/Rwq4CiDLWebdl23PAKYE70/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kMV6Q/btrESjtc7le/Rwq4CiDLWebdl23PAKYE70/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kMV6Q/btrESjtc7le/Rwq4CiDLWebdl23PAKYE70/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkMV6Q%2FbtrESjtc7le%2FRwq4CiDLWebdl23PAKYE70%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1251&quot; height=&quot;834&quot; data-origin-width=&quot;1251&quot; data-origin-height=&quot;834&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;문제는 과연 수많은 스테이블 코인들이 1:1로 실물 화폐가 있는가?라는 것이다. 몇년 전 암호화폐는 일명 테더(Tether) 사태로 엄청난 큰 하락을 겪은 적이 있었다. 당시 테더는 사기코인이고, 달러가 없이 마구잡이로 발행하여 비트코인을 올리는 역할을 했다는 것이었다. 이러한 소문이 퍼지면서 테더발 공포장이 열릴거라는 말이 많았고, 이제 앞으로 비트코인이 올라가는 일은 없을 것이다라는 FUD들이 퍼지기 시작했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다행히 SEC에서 큰 탈 없이 넘어가면서, 다시 안도 랠리가 이루어지기 시작했었다. 그러나 이번 사건들은 테더와 확실히 다른 모습이다. 바로 안전하지 않는 디파이(Defi) 상품들이 줄줄이 무너지고 있는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2017년 불장이 비트코인의 시카고 상품거래소(Chicago Mercantile Exchange, CME) 상장과 이더리움 Dapp 열풍으로 큰 상승을 보여준 것이라면, 2020~21년 장은 마찬가지로 비트코인과 수많은 플랫폼 코인들의 Defi와 NFT 기반 프로젝트로 새로운 가능성을 보여주며 암호화폐 불장을 만들어냈다. 하지만 마치 2018년 수많은 Dapp들이 사라지듯 이번에도 2021년 수많은 프로젝트들이 무너지며, 최악의 장을 만들지 않을까 노심초사 하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;셀시우스(Celsius) 리스크&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셀시우스는 이더리움 기반의 디파이 프로젝트로 암호화폐 대출 플랫폼이며, 현재 제 2의 루나 사태로 퍼져가는 중이다. 미국 5월 CPI가 40년만에 역대치를 찍으면서 주식시장 및 암호화폐 시장에 큰 충격을 준 상태에서 셀시우스의 리스크는 가뜩이나 안 좋은 투심에 하방으로 사람들의 시선이 모아지고 있으며, 수많은 트레이더들이 숏으로 암호화폐 시장을 공격하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1767&quot; data-origin-height=&quot;960&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/005Dh/btrEUiNq28z/4KKioBxVwucAGYzkkkyDN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/005Dh/btrEUiNq28z/4KKioBxVwucAGYzkkkyDN1/img.png&quot; data-alt=&quot;https://celsius.network/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/005Dh/btrEUiNq28z/4KKioBxVwucAGYzkkkyDN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F005Dh%2FbtrEUiNq28z%2F4KKioBxVwucAGYzkkkyDN1%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;1767&quot; height=&quot;960&quot; data-origin-width=&quot;1767&quot; data-origin-height=&quot;960&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://celsius.network/&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셀시우스는 이더리움 2.0 스테이킹 솔루션 회사인 스테이크 하운드(Stakehound)의 개인 키를 잃어버려 최소 35,000 ETH의 손실이 발생한 것으로 알려졌지만, 이 사실을 고객에게 알린 적이 없었으며 1년이 지나 이 사실을 알리게 되면서 투자자들은 점점 불안하고 있다. 하지만 대다수는 셀시우스가 어떤 업체인지 모르기 때문에 이 사태에 대해서 잘 알아보도록 해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;!-- 자비스 반응형 광고 --&gt; &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;PoW에서 PoS로 이더리움 2.0&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이더리움은 PoW(Proof of Work)로 태어난 화폐지만, PoW의 가장 큰 문제점인 느린 처리 속도와 비싼 수수료(Gas Fee)로 늘 골칫거리였다. 그래서 이더리움은 2.0을 발표하면서 PoW 대신 PoS(Proof of Stake) 방식으로 전환하고자 하였다.&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;PoW는 컴퓨터의 자원을 사용하여 채굴을 하여 돈을 벌게 되어 노드를 유지하기 때문에 대형 채굴장에 의해서 돌아가게 된다. 하지만 PoS의 경우, 스테이킹한 이더리움을 기반으로 노드를 유지하게 되는데 연 평균 4.2%라는 이자를 기반으로 많은 사람들이 이더리움을 얻으려고 했지만, 문제는 필요 예치 개수가 32개로 개인이 부담하기에는 너무 큰 규모이기 때문에 많은 사람들이 연합을 해서 이더리움을 예치하고자 하였는데 바로 이 서비스를 제공하는 것중 하나가 리도 파이낸스(Lido Finance)이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1399&quot; data-origin-height=&quot;615&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnfQDw/btrER6Hvaz6/RwcH62Vj74N5bEXsd3uFV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnfQDw/btrER6Hvaz6/RwcH62Vj74N5bEXsd3uFV0/img.png&quot; data-alt=&quot;https://lido.fi/&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnfQDw/btrER6Hvaz6/RwcH62Vj74N5bEXsd3uFV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnfQDw%2FbtrER6Hvaz6%2FRwcH62Vj74N5bEXsd3uFV0%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;1399&quot; height=&quot;615&quot; data-origin-width=&quot;1399&quot; data-origin-height=&quot;615&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;https://lido.fi/&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리도 파이낸스는 개인들이 예치를 하게 되면, stETH를 지급을 해주며, 이는 이더리움 2.0 업그레이드가 된 이후 이더리움과 1:1 교환을 해주는 증서이다. 여기까지보면 리도 파이낸스는 아무런 문제가 없는데 문제는 여기서부터 셀시우스에게로 넘어가게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;셀시우스는 리도 파이낸스에서 주는 stETH를 담보로 70%를 빌려주는 사업을 진행하였다. 이를 현실로 생각하면, 오래된 집에 재건축 건물이 들어서게 되어 있어서 내 오래된 집과 재건축이 들어서면 입주를 할 수 있는 권리증과 교환을 했다고 해보도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 어느 업체에서 권리증을 맡기면 해당 권리의 70% 수준의 대출을 해주겠다고 한 것이다. 이더리움을 스테이킹 하는 순간 이를 기반으로 자본을 굴릴 수 없기 때문에 많은 사람들이 셀시우스에 stETH를 맡기게 되었다.&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;&lt;b&gt;드러나는 셀시우스 위기와 이더리움 폭락&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암호화폐 폭락장이 시작이 되자, 많은 이용자들이 이더리움을 인출하기 위해 셀시우스에게 인출 요청을 하였지만, 셀시우스는 이미 35000개의 ETH를 분실한 전력이 있으며 그동안 채굴 사업이나 약세장으로 인한 손실등이 겹쳐 이들의 요청을 들어줄 수 없게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 단순히 셀시우스의 폭락이면 그나마 하나의 디파이가 망했구나 생각할 수 있지만, 이 리스크가 그대로 이더리움에게 전염될 수 있다는 점이다. 셀시우스가 뱅크런할 수 있다는 위기감이 전해지면서 돈을 꺼내려하지 않던 많은 사람들이 불안감에 더더욱 인출을 하려고 할 것이고, 이는 이더리움 기반의 디파이 프로젝트인 셀시우스에게 100% 리스크로 작용하게 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;!-- 자비스 반응형 광고 --&gt; &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사람들은 그동안 매도하지 않던 이더리움이 시장에 나올 것을 두려워해 이더리움을 던지게 될 것이고, 이더리움 프로젝트의 붕괴라는 겹겹의 악재가 이더리움이 금일 가장 많이 빠지는 암호화폐 중 하나로 기록되게 된 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1199&quot; data-origin-height=&quot;648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ngZuK/btrETBGwYK1/RHJDacknwmHvapy1BnZOe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ngZuK/btrETBGwYK1/RHJDacknwmHvapy1BnZOe1/img.png&quot; data-alt=&quot;가장 많이 빠진 이더리움(Ethereum)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ngZuK/btrETBGwYK1/RHJDacknwmHvapy1BnZOe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FngZuK%2FbtrETBGwYK1%2FRHJDacknwmHvapy1BnZOe1%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;1199&quot; height=&quot;648&quot; data-origin-width=&quot;1199&quot; data-origin-height=&quot;648&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;가장 많이 빠진 이더리움(Ethereum)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만 이는 이더리움의 문제가 아니라 이더리움을 기반으로 한 암호화폐의 문제이기 때문에 테라와 루나 사태와 동일시 해야 할 이유는 없다. 서브 프라임 모기지 사태가 잘못된 대출과 예상치 못한 상품의 설계로 인해서 무너져 내린 것이지, 집이 잘못한 것이 아닌것과 동일하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테라와 루나는 페깅이 된 코인이기 때문에 어느 한쪽이 잘못된 경우 둘이 자멸을 하는 것이 당연하지만 셀시우스 사태는 그냥 셀시우스라는 수많은 프로젝트 중 하나가 망한 것 뿐이다. 이번 사태는 2018년 이후의 수많은 악재(테더 사태, 바이낸스 해킹 등)에 비하면 새발의 피 수준으로 지금 암호화폐를 흔드는 것은 셀시우스만이 아니라, 미국의 물가지수인 CPI가 다시 고점을 갱신하는 것과 달러 가격이 계속 올라가는 것 그리고 금리 인상이 유력해지기 때문에 대피를 하는 것이라 생각하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 제발 금융권에서는 잘 알지도 못하면서 암호화폐 붕괴가 셀시우스 때문에 무너졌다느니 하지좀 말았으면 좋겠다. 테라 사태의 경우 테라의 가격을 방어하기 위해서 루나 재단에서 비트코인을 팔았기 때문에 무너진 것은 맞지만 셀시우스는 전혀 다른 케이스이기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;560&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cprBMA/btrEUhAZGxa/uHTdzZtB3TzQBCWfGeK8O0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cprBMA/btrEUhAZGxa/uHTdzZtB3TzQBCWfGeK8O0/img.png&quot; data-alt=&quot;게임스탑 차트&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cprBMA/btrEUhAZGxa/uHTdzZtB3TzQBCWfGeK8O0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcprBMA%2FbtrEUhAZGxa%2FuHTdzZtB3TzQBCWfGeK8O0%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;850&quot; height=&quot;560&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;560&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;게임스탑 차트&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지들 주식 무너지는 것이나 관심을 좀 갖지, 왜 남의 동네 암호화폐보고 역시 사기라고 하느니 하는지 모르겠다. 암호화폐가 아무리 변동성이 심해도 게임스탑같은 변동성은 있던적도 없었고 위와 같은 차트를 만든적도 없었다. 게다가 넷플릭스는 1/3 토막 이상 나면서 비트코인 가격은 어떻다느니.. 하여간 주식방송 볼 때마다 아무것도 모르는 문과생 애널리스트들은 제발 암호화폐 관련된 내용을 얘기하지 말았으면 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &amp;ldquo;셀시우스,&amp;nbsp;1년간&amp;nbsp;800억원&amp;nbsp;손실&amp;nbsp;숨겼다&amp;hellip;돈&amp;nbsp;빌려&amp;nbsp;고객인출&amp;nbsp;대응&amp;rdquo;&amp;nbsp;폭로, &lt;a href=&quot;https://www.blockmedia.co.kr/archives/231514&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.blockmedia.co.kr/archives/231514&lt;/a&gt;&lt;/p&gt;</description>
      <category>암호화폐 및 블록체인/암호화폐 칼럼</category>
      <category>리도</category>
      <category>셀시우스</category>
      <category>이더리움</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/769</guid>
      <comments>https://needjarvis.tistory.com/769#entry769comment</comments>
      <pubDate>Wed, 15 Jun 2022 18:53:07 +0900</pubDate>
    </item>
    <item>
      <title>웹 크롤링(Crawling)과 스크래핑(Scraping) 차이</title>
      <link>https://needjarvis.tistory.com/768</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;오래전부터 한국의 IT 분야에서는 크롤러(Crawler)를 일반적으로 크롤링(Crawling)과 스크래핑(Scraping)을 모두 포괄하는 의미로 사용이 되었으나 최근 들어, 크롤링과 스크래핑을 분리해서 사용하는 경우가 많고, 실질적으로 프로젝트를 할 땐 크롤링보단 스크래핑을 더 많이 하기에 이제는 확실히 분리해야 될 것 같아서 용어를 정리해보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;웹 크롤링(Web Crawling)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 크롤링은 크롤러(Crawler)라는 봇(bot)을 이용하여 페이지의 정보를 인덱싱하는 것인데 주로 검색엔진이 사용하는 경우가 많다. 사실 웹크롤러와 웹 스크래핑이 둘다 사용하는 경우는 우리가 보통 어떤 사이트의 게시물을 크롤링할 때 특정 게시물이 신규로 등장했는지 여부를 확인하기 위해서 게시물 리스트의 정보를 크롤링하는 경우가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;501&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/74hmW/btrD3Q0niew/tmSbZ6RNv7YCn0Bz6nKV40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/74hmW/btrD3Q0niew/tmSbZ6RNv7YCn0Bz6nKV40/img.png&quot; data-alt=&quot;인벤 게시물 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/74hmW/btrD3Q0niew/tmSbZ6RNv7YCn0Bz6nKV40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F74hmW%2FbtrD3Q0niew%2FtmSbZ6RNv7YCn0Bz6nKV40%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;798&quot; height=&quot;501&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;501&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;인벤 게시물 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 인벤의 게시물 정보가 있을 경우, 신규로 등록된 게시물과 게시물의 링크(Link) 정보를 가져와야 될 경우가 있다. 이런 기능을 크롤링이라고 한다. 한마디로 게시물의 정보를 가져오기 위한 데이터 식별 정보로 생각하면 되며 &lt;b&gt;인덱싱(Indexing)&lt;/b&gt; 한다는 개념으로 이해해도 무방할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;웹스크래핑(Web Scraping)&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 스크래핑은 웹크롤러로 페이지의 정보를 얻고, 해당 페이지안으로 들어가서 구역별로 데이터를 추출하는 것이다. 마찬가지로 인벤 게시물을 예로 들면, 인벤 게시물의 내용을 구역별로 컬럼화하여 데이터를 추출하는 것이 스크래핑이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;426&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EzKIT/btrD1sRV3at/pojI6qL2PnTt4X9RX4dCu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EzKIT/btrD1sRV3at/pojI6qL2PnTt4X9RX4dCu1/img.png&quot; data-alt=&quot;스크래핑 관점 화면&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EzKIT/btrD1sRV3at/pojI6qL2PnTt4X9RX4dCu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEzKIT%2FbtrD1sRV3at%2FpojI6qL2PnTt4X9RX4dCu1%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;807&quot; height=&quot;426&quot; data-origin-width=&quot;807&quot; data-origin-height=&quot;426&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스크래핑 관점 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 게시물 스샷을 보면, 스크래핑은 어떤 관점이 있는지 네모박스로 구역을 지정하였는데 스크래핑은 위와 같이 데이터를 컬럼(Column)으로 분리하여 추출하며, 이를 DB에 저장하여 마치, 해당 게시물이 우리가 보유한 DB에도 있는 것 같은 효과를 만들어 낸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 스크래핑의 경우, HTML의 Tag 정보를 이용해서 데이터를 추출하게 되며, 이렇게 Tag 정보를 추출하는 기능을 스크래퍼라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;크롤링와 스크래핑의 문제점&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;해당 사이트와 협력을 하지 않는 상태라면, 무단으로 데이터를 수집하는 문제가 있다.&lt;/li&gt;
&lt;li&gt;해당 사이트에서 언제든지 크롤러와 스크래퍼가 접근을 못하게 막을 수 있다.&lt;/li&gt;
&lt;li&gt;사이트의 구조가 변경되는 경우 크롤러와 스크래퍼가 작동되지 않는다.&lt;/li&gt;
&lt;li&gt;너무 잦은 데이터를 수집할 경우, 해당 사이트에서 개별적으로 IP를 차단시킬 수 있다.&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;참고자료&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[1] &lt;a href=&quot;https://brightdata.com/blog/guest-post/web-crawling-vs-web-scraping?kw=&amp;amp;cpn=14745430544&amp;amp;cam=aw_all_products-all_geos-search_dsa_blog-kw_en-desktop_blog-guest-post__592559539377&amp;amp;utm_term=&amp;amp;utm_campaign=all_products-all_geos-search_dsa_blog-kw_en-desktop&amp;amp;utm_source=adwords&amp;amp;utm_medium=ppc&amp;amp;utm_content=blog-guest-post&amp;amp;hsa_acc=1393175403&amp;amp;hsa_cam=14745430544&amp;amp;hsa_grp=136943772193&amp;amp;hsa_ad=592559539377&amp;amp;hsa_src=g&amp;amp;hsa_tgt=dsa-1649388330944&amp;amp;hsa_kw=&amp;amp;hsa_mt=&amp;amp;hsa_net=adwords&amp;amp;hsa_ver=3&amp;amp;cq_src=google_ads&amp;amp;cq_cmp=14745430544&amp;amp;cq_term=&amp;amp;cq_plac=&amp;amp;cq_net=g&amp;amp;cq_plt=gp&amp;amp;gclid=CjwKCAjwy_aUBhACEiwA2IHHQFW1y7DKyUnyU5H7Rt0Fv7O0Mg79BI5BBP4NocY0M6mVWNVcbzM9PhoC_X8QAvD_BwE&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;bright data - What&amp;nbsp;Is&amp;nbsp;The&amp;nbsp;Difference&amp;nbsp;Between&amp;nbsp;Web&amp;nbsp;Crawling&amp;nbsp;And&amp;nbsp;Web&amp;nbsp;Scraping?&lt;/a&gt;&lt;/p&gt;</description>
      <category>IT/IT 용어</category>
      <category>스크래퍼</category>
      <category>스크래핑</category>
      <category>웹스크래핑</category>
      <category>웹크롤러</category>
      <category>크롤러</category>
      <category>크롤링</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/768</guid>
      <comments>https://needjarvis.tistory.com/768#entry768comment</comments>
      <pubDate>Tue, 7 Jun 2022 09:36:44 +0900</pubDate>
    </item>
    <item>
      <title>스테픈(StepN)과 같이 쓰면 좋은 Move2Earn 앱, 메디패스(Medipass)</title>
      <link>https://needjarvis.tistory.com/767</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;많은 스테픈 유저분들이 스테픈과 캐시워크 등으로 GST, GMT와 같은 암호화폐나 혹은 원화를 열심히 채굴하고 있을 겁니다. 스테픈의 경우 많은 돈을 벌 수 있지만 반대로 많은 손해를 볼 수 있는 단점이 있고, 캐시워크의 경우 너무 귀찮은 것과 동시에 주는 돈도 너무 적습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 둘 사이에 있는 앱으로 저는 메디블록(Medibloc)에서 만든 메디패스(Medipass) 앱을 추천해 드립니다. 캐시워크처럼 불편하지 않으면서도 매수 편리하게 암호화폐를 채굴할 수 있으며 캐시워크보다 더욱 많은 돈을 주기도 하며, 암호화폐 역시 크게 오를 경우, 꽤 높은 수익률을 자랑할 수 있기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메디패스의 경우 걸음수만 채워지면 코인을 주며, 출석체크를 해도 코인을 줍니다. 저같은 경우 어제 200 메디를 받아서, 출금 조건에 부합하여 업비트 계좌로 출금하였는데 그 내역을 보여드리도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스테픈과_같이_사용하면_좋은_암호화폐_M2E앱.png&quot; data-origin-width=&quot;1237&quot; data-origin-height=&quot;463&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biUBZo/btrDUV1rLwi/jYuOFGpDQdOsW1EVNEewsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biUBZo/btrDUV1rLwi/jYuOFGpDQdOsW1EVNEewsK/img.png&quot; data-alt=&quot;스테픈(StepN)과 같이 쓰면 좋은 Move2Earn 앱&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biUBZo/btrDUV1rLwi/jYuOFGpDQdOsW1EVNEewsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiUBZo%2FbtrDUV1rLwi%2FjYuOFGpDQdOsW1EVNEewsK%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;1237&quot; height=&quot;463&quot; data-filename=&quot;스테픈과_같이_사용하면_좋은_암호화폐_M2E앱.png&quot; data-origin-width=&quot;1237&quot; data-origin-height=&quot;463&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스테픈(StepN)과 같이 쓰면 좋은 Move2Earn 앱&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;200개 메디(Med)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어제는 처음으로 출석 보상으로 5개가 나왔습니다. 늘 1개씩만 나오다가 200개 넘기고 나서 5개를 받았습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_5325.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LYpNH/btrDWhWgYfz/qF74shyXZvtEMa7FKnn6g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LYpNH/btrDWhWgYfz/qF74shyXZvtEMa7FKnn6g0/img.png&quot; data-alt=&quot;5 MED 획득&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LYpNH/btrDWhWgYfz/qF74shyXZvtEMa7FKnn6g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLYpNH%2FbtrDWhWgYfz%2FqF74shyXZvtEMa7FKnn6g0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;711&quot; data-filename=&quot;IMG_5325.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;5 MED 획득&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로 더 걸어서, 209 MED를 채웠습니다. (보상 5, 걸음 보상 4)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_5327.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FmTeF/btrDVDermOl/ajlkXlhj1LGCIUB4JZIqQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FmTeF/btrDVDermOl/ajlkXlhj1LGCIUB4JZIqQk/img.png&quot; data-alt=&quot;현재 MED 개수&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FmTeF/btrDVDermOl/ajlkXlhj1LGCIUB4JZIqQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFmTeF%2FbtrDVDermOl%2FajlkXlhj1LGCIUB4JZIqQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;711&quot; data-filename=&quot;IMG_5327.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;현재 MED 개수&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 출금할 수 있는 수량이 모아진 MED 코인을 제 업비트 계정에 있는 메디 계좌로 보내는 것을 보여드리겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 자비스 반응형 광고 --&gt;
&lt;div&gt;&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-client=&quot;ca-pub-8177628756262013&quot; data-ad-slot=&quot;3290013689&quot; data-ad-format=&quot;auto&quot; data-full-width-responsive=&quot;true&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&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;b&gt;업비트로 출금&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_5328.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buVsZO/btrDWjfs8xl/At7xdc42KZ3fODkC7FFLU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buVsZO/btrDWjfs8xl/At7xdc42KZ3fODkC7FFLU0/img.png&quot; data-alt=&quot;출금이 활성화&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buVsZO/btrDWjfs8xl/At7xdc42KZ3fODkC7FFLU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuVsZO%2FbtrDWjfs8xl%2FAt7xdc42KZ3fODkC7FFLU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;711&quot; data-filename=&quot;IMG_5328.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출금이 활성화&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더보기 -&amp;gt; 내 MED로 가면 위와 같이 보유한 MED 코인이 나오며, 출금을 할 수 있는 수량이 채워지면 &quot;출금&quot; 버튼이 활성화 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_5329.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsDycG/btrDUupyV2C/qhSU7QofKkRWv57KmKxidK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsDycG/btrDUupyV2C/qhSU7QofKkRWv57KmKxidK/img.png&quot; data-alt=&quot;수량 설정&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsDycG/btrDUupyV2C/qhSU7QofKkRWv57KmKxidK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsDycG%2FbtrDUupyV2C%2FqhSU7QofKkRWv57KmKxidK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;711&quot; data-filename=&quot;IMG_5329.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;수량 설정&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입금할 메디 수량을 선택합니다. 이때 전송 수수료가 1 MED가 들어갑니다 참고해 주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;942&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/okUUK/btrDUWlBKbg/ckI1lIdlr9y6SSlFLtj490/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/okUUK/btrDUWlBKbg/ckI1lIdlr9y6SSlFLtj490/img.png&quot; data-alt=&quot;입금 주소 입력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/okUUK/btrDUWlBKbg/ckI1lIdlr9y6SSlFLtj490/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FokUUK%2FbtrDUWlBKbg%2FckI1lIdlr9y6SSlFLtj490%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;502&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;942&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입금 주소 입력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수량까지 모두 설정했으면, 입금 주소와 입금 메모를 쓰는 란이 나옵니다. 이제 업비트로 가서 보유하신 메디의 입금 주소를 확인합니다. 없을 경우 입금 주소를 생성하시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;업비트_입금하기.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi8qG0/btrDWhWlcvB/qKBhpgkbeEkN8IGQupTBZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi8qG0/btrDWhWlcvB/qKBhpgkbeEkN8IGQupTBZk/img.png&quot; data-alt=&quot;업비트 입금 주소&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi8qG0/btrDWhWlcvB/qKBhpgkbeEkN8IGQupTBZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi8qG0%2FbtrDWhWlcvB%2FqKBhpgkbeEkN8IGQupTBZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;711&quot; data-filename=&quot;업비트_입금하기.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;업비트 입금 주소&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 메디의 입금 주소를 확인합니다. 업비트의 경우 입금주소와 입금메모(MEMO) 모두가 필요하니 꼭 빼놓지 말고 입력하시기 바랍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;송금할_지갑주소_입력.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bw4Qpp/btrDTrs8gOX/KFRmQtqtNrudwoKGSsz3AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bw4Qpp/btrDTrs8gOX/KFRmQtqtNrudwoKGSsz3AK/img.png&quot; data-alt=&quot;송금할 지갑 주소 입력&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bw4Qpp/btrDTrs8gOX/KFRmQtqtNrudwoKGSsz3AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw4Qpp%2FbtrDTrs8gOX%2FKFRmQtqtNrudwoKGSsz3AK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;711&quot; data-filename=&quot;송금할_지갑주소_입력.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;송금할 지갑 주소 입력&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;업비트에서 복사한 지갑 주소와 입금 메모를 복사하여 붙여넣고 다음을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;출금_정보_확인.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c58IiJ/btrDUC8IBSU/vzwJxhgKMLmb5LXwbhBqF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c58IiJ/btrDUC8IBSU/vzwJxhgKMLmb5LXwbhBqF1/img.png&quot; data-alt=&quot;출금정보 확인&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c58IiJ/btrDUC8IBSU/vzwJxhgKMLmb5LXwbhBqF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc58IiJ%2FbtrDUC8IBSU%2FvzwJxhgKMLmb5LXwbhBqF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;711&quot; data-filename=&quot;출금_정보_확인.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;출금정보 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 출금을 묻습니다. 확인하시고 맞을 경우 이대로 출금을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;입금_완료.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c752id/btrDVj8mz5W/FUbBzbFk6UKUwAUA8QACtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c752id/btrDVj8mz5W/FUbBzbFk6UKUwAUA8QACtK/img.png&quot; data-alt=&quot;입금 완료&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c752id/btrDVj8mz5W/FUbBzbFk6UKUwAUA8QACtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc752id%2FbtrDVj8mz5W%2FFUbBzbFk6UKUwAUA8QACtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;711&quot; data-filename=&quot;입금_완료.PNG&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;1334&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;입금 완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;약 5분 정도가 지나니 업비트에서 위와 같이 입금이 정상적으로 들어온 것을 확인하실 수 있습니다. 200메디가 얼마 안되는 금액이지만, 그래도 현재가 기준으로 약 7571원을 벌었고, 하루에 7개 정도를 획득할 수 있기 때문에 한달에 210개 이상의 메디 획득이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스테픈과 같이 사용할 경우 공짜로 코인을 얻을 수 있으니 사용하면 좋을 것입니다. 참고로 메디의 경우는 코인 가격이 크게 오를 수도 있고, 최고점 가격 기반으로 계산하면, 300원대를 찍은적도 있기 때문에 코인을 모와놓고 높은 가격이 형성될 때 팔면, 한달에 200 x 300 = 6만원 정도를 벌을 수도 있습니다. (물론 가격이 안오르면 못벌겠죠)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;메디패스 링크&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;추천인 코드 : UQW2N0&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;a style=&quot;letter-spacing: 0px;&quot; href=&quot;https://medipass-home.onelink.me/AccU?pid=User_invite&amp;amp;c=UQW2N0&amp;amp;af_click_lookback=7d&amp;amp;af_dp=medipass%3A%2F%2Fgo%3D10&quot;&gt;https://medipass-home.onelink.me/AccU?pid=User_invite&amp;amp;c=UQW2N0&amp;amp;af_click_lookback=7d&amp;amp;af_dp=medipass%3A%2F%2Fgo%3D10&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1654247053433&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;메디패스ㅣ돈이 되는 건강생활&quot; data-og-description=&quot;&quot; data-og-host=&quot;medipass-home.onelink.me&quot; data-og-source-url=&quot;https://medipass-home.onelink.me/AccU?pid=User_invite&amp;amp;c=UQW2N0&amp;amp;af_click_lookback=7d&amp;amp;af_dp=medipass%3A%2F%2Fgo%3D10&quot; data-og-url=&quot;https://medipass-home.onelink.me/AccU?pid=User_invite&amp;amp;c=UQW2N0&amp;amp;af_click_lookback=7d&amp;amp;af_dp=medipass%3A%2F%2Fgo%3D10&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fjylu/hyOCNEEdzM/bUAcJdnUKW9ttovoG6orDk/img.jpg?width=240&amp;amp;height=240&amp;amp;face=0_0_240_240&quot;&gt;&lt;a href=&quot;https://medipass-home.onelink.me/AccU?pid=User_invite&amp;amp;c=UQW2N0&amp;amp;af_click_lookback=7d&amp;amp;af_dp=medipass%3A%2F%2Fgo%3D10&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://medipass-home.onelink.me/AccU?pid=User_invite&amp;amp;c=UQW2N0&amp;amp;af_click_lookback=7d&amp;amp;af_dp=medipass%3A%2F%2Fgo%3D10&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fjylu/hyOCNEEdzM/bUAcJdnUKW9ttovoG6orDk/img.jpg?width=240&amp;amp;height=240&amp;amp;face=0_0_240_240');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;메디패스ㅣ돈이 되는 건강생활&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;medipass-home.onelink.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>암호화폐 및 블록체인/문제 및 이슈</category>
      <category>MED</category>
      <category>MediBloc</category>
      <category>STEPN</category>
      <category>메디블록</category>
      <category>메디패스</category>
      <category>스테픈</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/767</guid>
      <comments>https://needjarvis.tistory.com/767#entry767comment</comments>
      <pubDate>Fri, 3 Jun 2022 18:14:46 +0900</pubDate>
    </item>
    <item>
      <title>스테픈(StepN) 짝풍 앱, 코인워크(coinwalk) 우리가 중국이가?</title>
      <link>https://needjarvis.tistory.com/766</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;스테픈이 정말로 핫하긴 핫한 것 같다. 진짜 살다살다 중국앱을 한국에서 그대로 표절하는 일이 벌어졌다. 그러나 상도가 있지 이정도로 노골적으로 베끼는건 우리가 무슨 중국인가? 그리고 하필 베낀 앱이 중국 앱이냐...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;스테픈 화면&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스테픈_화면.jpg&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;374&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/edZGcG/btrDyFDzj3U/H3cuQzygzimpvsiZexooo0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/edZGcG/btrDyFDzj3U/H3cuQzygzimpvsiZexooo0/img.jpg&quot; data-alt=&quot;스테픈 화면 캡쳐&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/edZGcG/btrDyFDzj3U/H3cuQzygzimpvsiZexooo0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FedZGcG%2FbtrDyFDzj3U%2FH3cuQzygzimpvsiZexooo0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;630&quot; height=&quot;374&quot; data-filename=&quot;스테픈_화면.jpg&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;374&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스테픈 화면 캡쳐&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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;&lt;b&gt;코인워크&lt;/b&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;612&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqUpte/btrDthc5Xy5/wpXkUllF7F34Dj75Wnhjt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqUpte/btrDthc5Xy5/wpXkUllF7F34Dj75Wnhjt0/img.png&quot; data-alt=&quot;코인워크 홈페이지 캡쳐&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqUpte/btrDthc5Xy5/wpXkUllF7F34Dj75Wnhjt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqUpte%2FbtrDthc5Xy5%2FwpXkUllF7F34Dj75Wnhjt0%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;923&quot; height=&quot;612&quot; data-origin-width=&quot;923&quot; data-origin-height=&quot;612&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;코인워크 홈페이지 캡쳐&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;진짜 노골적으로 베낀 수준인데 이렇게 앱 만들어서 성공하는 것도 쪽팔리고, 그냥 나오는것 자체가 개 쪽팔리다. 이따위로 만들어 놓고, 네이버 제페토랑 연동한다느니 어쩌느니 말이 많은데.... 진짜 평생 놀림감 당할 것으로 예상되며 이런 앱을 보고 중국에서 한국을 얼마나 욕할지도 예상이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하긴 한국 사람들은 동네에 무슨 가게가 뜨면 그대로 똑같은 가게를 건너편에 오픈하는 사람들이니 그 민족 특성이 어디가겠냐만, UI를 다르게 하든지 아니면 다른 아이디어로 하든지, 신발 디자인부터 폰트 느낌까지 똑같은데 이렇게 만들거면 디자이너를 교체하든지 기획자를 바꾸든지 아이디어가 안나오면 좀 비싼 돈 주고 창의적인 기획자 및 디자이너를 좀 영입해라. 이 따위로 만들어 놓고 몇천억 벌려고 하는 거잖아.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 이렇게 말을 해도 돈이 된다면 할 사람은 하게 될텐데, 그것이 가장 큰 문제라 생각한다. 그동안 한국 암호화폐 시장을 보면 도움을 주는 것보다 시장에 악재를 주는 경우가 훨씬 많았는데 코인워크 자체가 암호화폐 시장에 악재이고, 또다른 거품이고 이 따위로 만드는 한국 암호화폐 업체는 그냥 없어지는 것이 훨씬 나은 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 쪽팔리니깐 이따위 앱 홍보하는 유튜버들이랑 블로거들은 제발 홍보좀 하지 말아라. 짝퉁 광고 하는 꼴인데 진짜 상도가 있는거지.. 에휴...&lt;/p&gt;</description>
      <category>암호화폐 및 블록체인/문제 및 이슈</category>
      <category>m2e</category>
      <category>Move2Earn</category>
      <category>STEPN</category>
      <category>스테픈</category>
      <category>코인워크</category>
      <author>Steve Jang</author>
      <guid isPermaLink="true">https://needjarvis.tistory.com/766</guid>
      <comments>https://needjarvis.tistory.com/766#entry766comment</comments>
      <pubDate>Mon, 30 May 2022 15:42:04 +0900</pubDate>
    </item>
  </channel>
</rss>