<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>유아마루</title>
    <link>https://urmaru.tistory.com/</link>
    <description>유아마루 블로그는 IT 관련 분석과 다양한 이슈 및 일상에 도움이 되는 정보를 다루고 있습니다.</description>
    <language>ko</language>
    <pubDate>Wed, 27 May 2026 17:22:49 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>유아마루</managingEditor>
    <image>
      <title>유아마루</title>
      <url>https://tistory1.daumcdn.net/tistory/4303171/attach/2b1cda3d2b194381bb0124208f12be3b</url>
      <link>https://urmaru.tistory.com</link>
    </image>
    <item>
      <title>펄어비스 도깨비(DokeV) 분석과 메타버스(Metaverse)</title>
      <link>https://urmaru.tistory.com/11</link>
      <description>&lt;center&gt;&lt;/center&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;주가 대폭 상승, 펄어비스 신작 '도깨비'(DokeV)&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지난 8월 26일 독일에서 개최된 게임축제이자 매년 게임업계의 관심이 쏠리는 게임스컴 2021 행사에서 국내 게임회사인 펄어비스(PEARL ABYSS)는 '도깨비(DokeV)'라는 이름의 최신작 트레일러를 공개하였습니다. 도깨비는 공개와 동시에 유럽 최대 게임전시회인 게임스컴 2021에서 가장 화제작으로 부상한 게임이 되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선, 그 화제의 트레일러를 감상해봅시다.&lt;/p&gt;
&lt;center&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/FaRbQHlegaM&quot; width=&quot;1320&quot; height=&quot;582&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;&lt;/center&gt;&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&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;이렇듯 트레일러 공개만으로도 세계적으로 많은 기대감을 얻게 된 펄어비스는 트레일러 공개 직후 주가가 대폭 치솟기까지 하였습니다. 영상을 공개하기 전 4 ~ 5만 원대 주가가 거래일 기준 3일 간 연속으로 상승세를 이어가며 급기야 10만 원을 넘기며 신고가를 경신했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;587&quot; data-filename=&quot;펄어비스 도깨비 주가_pearl abyss_dokev.JPG&quot; width=&quot;400&quot; height=&quot;395&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sZgeu/btrd0GoAcuy/cHgOVjiBKuKK00QacYNMPk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sZgeu/btrd0GoAcuy/cHgOVjiBKuKK00QacYNMPk/img.jpg&quot; data-alt=&quot;펄어비스 주식 차트 (출처 : 네이버)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sZgeu/btrd0GoAcuy/cHgOVjiBKuKK00QacYNMPk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsZgeu%2Fbtrd0GoAcuy%2FcHgOVjiBKuKK00QacYNMPk%2Fimg.jpg&quot; data-origin-width=&quot;594&quot; data-origin-height=&quot;587&quot; data-filename=&quot;펄어비스 도깨비 주가_pearl abyss_dokev.JPG&quot; width=&quot;400&quot; height=&quot;395&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;펄어비스 주식 차트 (출처 : 네이버)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt; 주가 상승 원인&lt;/b&gt;&lt;/h4&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;펄어비스의 이번 주가 상승은 신작 출시가 아닌 트레일러 영상 공개만으로 이루어낸 변화라는 점에서 굉장히 이례적인 사례입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;또한, 펄어비스는 온라인 MMORPG인 '검은 사막'이라는 게임으로 국내외에 잘 알려져 있고 검은 사막이라는 IP를 크게 성공시키며 유명세를 얻게 된 게임사입니다. 검은 사막은 펄어비스가 자체 개발한 엔진으로 자유도가 높고 다양한 캐릭터와 특유의 화려한 액션성으로 국내뿐만 아니라 해외에서도 인정받으며 PC, 모바일, 콘솔 플랫폼까지 글로벌 서비스 중입니다. 그리고 이러한 검은 사막 IP의 후속작인 '붉은 사막'을 앞서 공개하였고 국내외 모두 붉은 사막이라는 게임에만 이목이 집중되고 있었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;하지만 게임스컴 2021에서 펄어비스가 발표한 신작은 '도깨비(DokeV)'.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;붉은 사막 공개 당시만으로도 한국 게임사의 희망이라는 별명을 얻었지만 도깨비 트레일러 영상 공개로 인해 상당한 시너지 효과가 일어난 것입니다.&lt;/p&gt;
&lt;p 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;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 기발하고 참신한 설정&amp;nbsp; &amp;amp; 익숙한 시스템&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&quot;도깨비 수집 오픈월드 액션 어드벤처&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;펄어비스에서 정의한 '도깨비(DokeV)'라는 게임의 장르입니다. 귀여운 어린이 캐릭터가 마치 누구나 어릴 적 상상하던 모습으로 우산을 타고 하늘을 날며, 뿅망치를 휘두르고 물총을 쏘며 전투를 하는 모습은 도깨비만의 특징입니다. 도깨비들을 수집하고 함께 싸우며 어린이 캐릭터로 조작하는 게임 플레이 영상은 그동안 중세 유럽을 배경으로 하는, 검과 방패, 용과 마법들이 등장하는 천편일률적인 게임 추세와는 전혀 다른 모습이었습니다. 또한 그래픽톤과 연출성, 도깨비들의 개성이나 자유롭게 움직이는 이동 방식 등 기발한 아이디어들이 돋보였습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;하지만 세부적으로 살펴보면 게이머들에게는 영상 속에서 몇 가지 친숙한 장면들을 보게 됩니다. 높은 자유도와 함께 맵을 활보하는 모습은 해외의 높은 자유도로 유명한 게임 'GTA(Grand Theft Auto)'와 유사해 보였습니다. 이 때문에 해외에서는 이미 영상이 공개된 이후 'GTA for kids'라는 별명을 붙이기도 하였습니다. 실제로 펄어비스의 도깨비 개발진도 인터뷰에서 오픈 월드 게임의 대명사로서 GTA를 언급하기도 했습니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kHkNV/btrd1eZlkHi/kDJ1MrZ09qnWaOhTESXKoK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kHkNV/btrd1eZlkHi/kDJ1MrZ09qnWaOhTESXKoK/img.jpg&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;522&quot; data-filename=&quot;도깨비 GTA_Dokev.jpg&quot; width=&quot;460&quot; style=&quot;width: 49.1709%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kHkNV/btrd1eZlkHi/kDJ1MrZ09qnWaOhTESXKoK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkHkNV%2Fbtrd1eZlkHi%2FkDJ1MrZ09qnWaOhTESXKoK%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;930&quot; height=&quot;522&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQae9M/btrd64H7mlv/ykElNeQjCM3vNIG0YUYrU0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQae9M/btrd64H7mlv/ykElNeQjCM3vNIG0YUYrU0/img.jpg&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;454&quot; data-filename=&quot;GTA 도깨비_Grand Theft auto_Dokev.jpg&quot; width=&quot;400&quot; style=&quot;width: 49.6663%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQae9M/btrd64H7mlv/ykElNeQjCM3vNIG0YUYrU0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQae9M%2Fbtrd64H7mlv%2FykElNeQjCM3vNIG0YUYrU0%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;817&quot; height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;도깨비(왼쪽)와 GTA(오른쪽) 플레이 화면&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&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;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- &lt;b&gt;한국의, 한국에 의한, 한국을 위한 게임&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;도깨비(DokeV)는 펄어비스의 글로벌 도전작이기도 하지만 우리나라의 고유문화를 게임 속에 많이 녹인 것으로 보입니다. 공개된 트레일러 영상을 자세히 보면 우리나라에서 볼 수 있는 한옥이나 해태상, 둘레길이나 연날리기, 조선시대 국왕을 코스프레한 것처럼 보이는 익선관과 곤룡포까지 한국인이라면 너무나도 익숙한 장면들로 가득 채워져 있습니다. 이것들을 토속적인 느낌이 아닌 세련되고 트렌디한 느낌으로 표현했기 때문에 국내는 물론 해외 유저들에게도 '코리안 이스터에그(Korean Easter Egg)'라며 게임의 매력을 느끼게 해 주었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;* 이스터에그 : 영화나 책, DVD, 비디오 게임 등에 숨겨져 있는 메시지 혹은 기능&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5ESzF/btrd5jrX2FJ/jpl8Krdong3SUJSR28k7r0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5ESzF/btrd5jrX2FJ/jpl8Krdong3SUJSR28k7r0/img.jpg&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;409&quot; data-filename=&quot;도깨비 가로수 지지대.JPG&quot; style=&quot;width: 54.4868%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5ESzF/btrd5jrX2FJ/jpl8Krdong3SUJSR28k7r0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5ESzF%2Fbtrd5jrX2FJ%2Fjpl8Krdong3SUJSR28k7r0%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;693&quot; height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EbxrH/btrd5jFs6dj/kb0LPblGUy0tDgvPAZQiV0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EbxrH/btrd5jFs6dj/kb0LPblGUy0tDgvPAZQiV0/img.jpg&quot; data-origin-width=&quot;662&quot; data-origin-height=&quot;480&quot; data-filename=&quot;도깨비 갓 봉황.JPG&quot; style=&quot;width: 44.3504%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EbxrH/btrd5jFs6dj/kb0LPblGUy0tDgvPAZQiV0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEbxrH%2Fbtrd5jFs6dj%2Fkb0LPblGUy0tDgvPAZQiV0%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;662&quot; height=&quot;480&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mID4I/btrd5kYIT0b/qkyJI5mfxGuajwkRFF8p7K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mID4I/btrd5kYIT0b/qkyJI5mfxGuajwkRFF8p7K/img.jpg&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;570&quot; data-filename=&quot;도깨비 곤룡포 익선관.JPG&quot; style=&quot;width: 40.9417%; margin-right: 10px; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mID4I/btrd5kYIT0b/qkyJI5mfxGuajwkRFF8p7K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmID4I%2Fbtrd5kYIT0b%2FqkyJI5mfxGuajwkRFF8p7K%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;697&quot; height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8fOQw/btrd1yjj2Ou/28mwwictbobY912Uqujkq0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8fOQw/btrd1yjj2Ou/28mwwictbobY912Uqujkq0/img.jpg&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;576&quot; data-filename=&quot;도깨비 해태_Dokev_unicorn-lion.JPG&quot; style=&quot;width: 57.8955%; margin-top: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8fOQw/btrd1yjj2Ou/28mwwictbobY912Uqujkq0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8fOQw%2Fbtrd1yjj2Ou%2F28mwwictbobY912Uqujkq0%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;996&quot; height=&quot;576&quot;/&gt;&lt;/span&gt;&lt;/div&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;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 퀄리티와 정체성&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;4분 남짓한 트레일러 영상은 매우 높은 퀄리티인 점에서만이 아닌 실제 플레이 영상이라는 점에서 매우 높은 기대감을 가지게 해 주었습니다. 이는 같은 날 출시한 NC소프트의 '블레이드 &amp;amp; 소울 2'라는 게임과 대조되면서 더욱 극명하게 느껴지게 되었습니다. NC소프트는 이날 펄어비스와는 반대로 게임성은 기존 게임들과 동일하며 수익모델은 확률성 게임의 BM(Business model)을 그대로 채용하여 게임의 정체성을 망치기까지 했다는 평가를 받았습니다. 이러한 최악의 혹평을 받으며 NC소프트는 이틀간 주가가 무려 20% 이상 폭락하였습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;아이들이 상상하는 세계를 게임에서 구현하는 것이 개발 방향이라는 점. 그리고 트레일러 영상을 본 사람들도 '어린아이들이 밖에서 놀 때 상상하던 세계를 구현한 것 같다'라는 생각이 들게하였다는 점이 게임의 정체성을 잘 살린 대표적인 예시일 것 같습니다. 거기에 놀라울 정도로 디테일하고 밝은 고퀄리티의 그래픽과 움직임은 영상을 보는 내내 입가에 미소를 짓게 하였습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; 메타버스(Metaverse)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;도깨비(DokeV)의 게임플레이 공개 영상에서 나오는 플레이어블 캐릭터는 대부분 어른이 아닌 아이들로 등장하며 메타버스와 같은 상호작용 방식의 멀티플레이를 구현할 것으로 보이고 있습니다. 실제로 개발진 인터뷰에서 메타버스적인 요소를 언급하였는데, 아주 높은 수준의 그래픽 품질과 이것을 기반으로 한 자연스러운 NPC의 AI 및 상호작용 등이 다른 메타버스 플랫폼과는 차별화되는 요소일 것이라고 밝혔습니다. 그렇다면 메타버스란 무엇일까요?&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;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 메타버스란&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;메타버스(Metaverse)는 초월이라는 뜻의 '메타(meta)'와 현실세계를 뜻하는 '유니버스(universe)'를 합성한 용어입니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;이는 기존에 잘 알려져 있는 가상현실보다 확장된 개념으로 해석할 수 있습니다. 생각해보면 현재, COVID-19(코로나-19 바이러스)로 사회적 거리두기가 강화되면서 비대면 방식의 온라인 모임은 이제 일상이 되어버렸습니다. 이러한 상황에서 급부상하는 것이 메타버스입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;현실을 옮겨 놓은 가상현실 세계인 메타버스 내에서 자신의 아바타를 통해 직접 물건을 만들어 팔거나, 가상현실에서 통용되는 가상화폐로 쇼핑도 하고, 심지어 공연까지 보러 갈 수도 있는 곳이 바로 메타버스입니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 기존 활용 사례&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;메타버스 개념은 낯선듯 하지만 의외로 가까운 곳에서 찾아볼 수 있습니다. 메타버스 개념을 영화화한 사례로 1999년 개봉한 영화 '매트릭스', 2009년 개봉한 영화 '아바타', 2018년 각종 캐릭터들이 출연해 화제가 되었던 영화 '레디 플레이어 원'이 있습니다. 이 영화들의 공통점은 메타버스의 세계관에서는 사이버 세계가 메인이 되고 오프라인을 사이드로 취급합니다. 즉, 온라인에서 로그아웃(Logout)하여 현실로 돌아온다는 개념보다는 현실을 로그아웃하고 사이버 세계로(Log-in)하는 것입니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;또한, 미국 대통령 선거 당신 조 바이든은 닌텐도의 유명 IP인 '동물의 숲'이라는 게임(가상현실)에서 선거 캠페인을 하였고, 코로나19 여파로 인해 메타버스에서 아바타 하객들과 결혼식을 올린 사례도 있습니다. 메타버스 안에서 콘서트나 공연을 열기도 하는데 2021년 9월에 제페토에서 열린 국내 아이돌 그룹 블랙핑크의 팬사인회에는 약 5,000만 명이라는 동시 접속자 기록을 세우기도 하였습니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;이러한 메타버스의 시장규모 또한 빠르게 성장하고 있으며 국내의 정부 기관에서도 메타버스 서비스와 블록체인 기술을 결합하여 가상세계를 구현하는 계획을 세웠습니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>게임</category>
      <category>DokeV</category>
      <category>GAMES</category>
      <category>GTAkids</category>
      <category>Meta</category>
      <category>METAVERSE</category>
      <category>PEARLABYSS</category>
      <category>Universe</category>
      <category>도깨비</category>
      <category>메타버스</category>
      <category>펄어비스</category>
      <author>유아마루</author>
      <guid isPermaLink="true">https://urmaru.tistory.com/11</guid>
      <comments>https://urmaru.tistory.com/11#entry11comment</comments>
      <pubDate>Sun, 5 Sep 2021 02:35:28 +0900</pubDate>
    </item>
    <item>
      <title>Node.js 설치 및 개발 환경 설정 방법</title>
      <link>https://urmaru.tistory.com/9</link>
      <description>&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense responsive&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;반응형&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-format=&quot;auto&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;노드(Node.js) 설치하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우 운영체제에서 노드를 설치하는 방법에 대해 알아보겠습니다.&amp;nbsp; 윈도우(Windows)와 맥(Mac)은 GUI를 사용하므로 웹 브라우저를 통해 설치합니다. 리눅스는 터미널을 통해 접속하므로 터미널로 설치해야합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드js_Node.js.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1175&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qnv4U/btqNZN5ZC7m/xvvk2Ps09x1ynffkOpjzn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qnv4U/btqNZN5ZC7m/xvvk2Ps09x1ynffkOpjzn0/img.png&quot; data-alt=&quot;node.js&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qnv4U/btqNZN5ZC7m/xvvk2Ps09x1ynffkOpjzn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqnv4U%2FbtqNZN5ZC7m%2Fxvvk2Ps09x1ynffkOpjzn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;1175&quot; data-filename=&quot;노드js_Node.js.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1175&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;node.js&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt; 노드 설치&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;1. 노드 공식 사이트(https://nodejs.org)에 접속합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 공식 사이트_nodejs_homepage.JPG&quot; data-origin-width=&quot;1030&quot; data-origin-height=&quot;850&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2sUxA/btqNU2KQfyi/nLUCkKHKFyNEvvRCukkwd0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2sUxA/btqNU2KQfyi/nLUCkKHKFyNEvvRCukkwd0/img.jpg&quot; data-alt=&quot;노드 공식 사이트(nodejs.org)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2sUxA/btqNU2KQfyi/nLUCkKHKFyNEvvRCukkwd0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2sUxA%2FbtqNU2KQfyi%2FnLUCkKHKFyNEvvRCukkwd0%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;450&quot; height=&quot;850&quot; data-filename=&quot;노드 공식 사이트_nodejs_homepage.JPG&quot; data-origin-width=&quot;1030&quot; data-origin-height=&quot;850&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노드 공식 사이트(nodejs.org)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;2. LTS와 Current 버전 중 Current 버전을 설치합니다. (화면 중앙 오른쪽 버튼)&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;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #9d9d9d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;LTS vs Current (LTS와 Current 버전의 차이)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- LTS&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;기업을 위한 버전으로 3년 동안 지원합니다. 짝수 버전만 LTS 버전으로 포함되며 서버를 안정적으로 운영해야 하는 경우 추천합니다. 하지만 최신 기능을 사용하지 못할 가능성이 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- Current&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;단어의 뜻 그대로 최신 버전으로써 최신 기능을 모두 포함합니다. 실험적으로 추가된 기능들이 있어 예상하지 못한 에러가 발생할 가능성이 있습니다. 새로운 기능에 대해 알거나 서버에 신기능이 필요한 경우, 학습이 목적인 경우 사용하기에 적합합니다. 짝수 버전이 LTS가 되는 것을 감안하여 Current 버전일 때부터 사용하는 것이 좋습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 홀수 버전&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;노드에서는 버전을 6개월마다 1씩 올립니다. 버전은 최초 1부터 현재&lt;span style=&quot;color: #333333;&quot;&gt;(2020년 11월)&lt;/span&gt; 기준 15 버전이며 이전에 14, 13 버전들도 있었습니다. 그러나 홀수 버전은 LTS를 지원하지 않고 15버전이 나오면 14 버전은 사라지는 방식입니다. 추후에 버전이 높아져서 16버전이 나오게 된다면 15버전이 LTS가 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;3. 내려받은 파일을 실행하여 Setup을 진행합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_셋업_nodejs_setup.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crV08G/btqNVBsG3F6/T1N7nnzmfjrKT6a26k2ST0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crV08G/btqNVBsG3F6/T1N7nnzmfjrKT6a26k2ST0/img.jpg&quot; data-alt=&quot;Node.js Setup Wizard(노드 설치 마법사)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crV08G/btqNVBsG3F6/T1N7nnzmfjrKT6a26k2ST0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrV08G%2FbtqNVBsG3F6%2FT1N7nnzmfjrKT6a26k2ST0%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;400&quot; height=&quot;387&quot; data-filename=&quot;노드 설치_셋업_nodejs_setup.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Node.js Setup Wizard(노드 설치 마법사)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;4. &lt;b&gt;Next&lt;/b&gt;를 눌러 다음으로 넘어가고 라이선스 동의 화면이 나오면 체크박스에 체크 후 &lt;b&gt;Next&lt;/b&gt; 버튼을 눌러줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_셋업_2_nodejs_setup_2.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b91kxQ/btqNWg2DoKG/8iCzhWv05wZoApkWHyI3XK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b91kxQ/btqNWg2DoKG/8iCzhWv05wZoApkWHyI3XK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b91kxQ/btqNWg2DoKG/8iCzhWv05wZoApkWHyI3XK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb91kxQ%2FbtqNWg2DoKG%2F8iCzhWv05wZoApkWHyI3XK%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;400&quot; height=&quot;387&quot; data-filename=&quot;노드 설치_셋업_2_nodejs_setup_2.jpg&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;size14&quot;&gt;5. Node.js 설치 경로를 지정합니다. (&lt;span style=&quot;color: #0593d3;&quot;&gt;기본 경로 그대로 사용하는 것을 추천&lt;/span&gt;)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_셋업_3_nodejs_setup_3.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nbBDv/btqNZMzfz3J/cI3UhqRsuo1fZRlIkX0gp1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nbBDv/btqNZMzfz3J/cI3UhqRsuo1fZRlIkX0gp1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nbBDv/btqNZMzfz3J/cI3UhqRsuo1fZRlIkX0gp1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnbBDv%2FbtqNZMzfz3J%2FcI3UhqRsuo1fZRlIkX0gp1%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;400&quot; height=&quot;387&quot; data-filename=&quot;노드 설치_셋업_3_nodejs_setup_3.jpg&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;size14&quot;&gt;6. 설치할 프로그램을 확인 후 &lt;b&gt;Next&lt;/b&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 data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;Node.js runtime&lt;/b&gt; : 노드 런타임&lt;/li&gt;
&lt;li data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;npm package manager&lt;/b&gt; : 노드 패키지 관리자&lt;/li&gt;
&lt;li data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;Online documentation shortcuts&lt;/b&gt; : 온라인 문서 바로가기&lt;/li&gt;
&lt;li data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;Add to PATH&lt;/b&gt; : 시스템 환경 변수에 추가(명령 프롬프트에서 노드 명령어 사용 가능)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_셋업_4_nodejs_setup_4.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bftpY4/btqNU2jOELf/adY6rHPe8lk5rPNI0Iy6H0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bftpY4/btqNU2jOELf/adY6rHPe8lk5rPNI0Iy6H0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bftpY4/btqNU2jOELf/adY6rHPe8lk5rPNI0Iy6H0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbftpY4%2FbtqNU2jOELf%2FadY6rHPe8lk5rPNI0Iy6H0%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;400&quot; height=&quot;387&quot; data-filename=&quot;노드 설치_셋업_4_nodejs_setup_4.jpg&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;size14&quot;&gt;7. Tools for Native Modules&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;u&gt;Automatically install the necessary tools. 에 체크&lt;/u&gt;하고 &lt;b&gt;Next&lt;/b&gt;버튼을 누르고, &lt;b&gt;Install&lt;/b&gt; 버튼을 클릭하여 설치를 진행합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_셋업_5_nodejs_setup_5.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dd0LYd/btqNYwcmsTZ/2WJcCcFDXEI6Mie8rm7yK1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dd0LYd/btqNYwcmsTZ/2WJcCcFDXEI6Mie8rm7yK1/img.jpg&quot; data-alt=&quot;Tools for Native Modules(Node.js)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dd0LYd/btqNYwcmsTZ/2WJcCcFDXEI6Mie8rm7yK1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdd0LYd%2FbtqNYwcmsTZ%2F2WJcCcFDXEI6Mie8rm7yK1%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;400&quot; height=&quot;387&quot; data-filename=&quot;노드 설치_셋업_5_nodejs_setup_5.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Tools for Native Modules(Node.js)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;8. &lt;span style=&quot;color: #006dd7;&quot;&gt;사용자 계정 컨트롤 알림창&lt;/span&gt;이 나오면 &lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&quot;예&quot;&lt;/b&gt;&lt;/span&gt;를 클릭하여 설치를 진행하고 설치 완료 후 &lt;b&gt;Finish&lt;/b&gt; 버튼을 눌러 설치를 마칩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_셋업_6_nodejs_setup_6.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r9bQl/btqNXdK7rzE/IPpJqyXbkz6uOKiEUpCya0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r9bQl/btqNXdK7rzE/IPpJqyXbkz6uOKiEUpCya0/img.jpg&quot; data-alt=&quot;Node.js 설치 완료&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r9bQl/btqNXdK7rzE/IPpJqyXbkz6uOKiEUpCya0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr9bQl%2FbtqNXdK7rzE%2FIPpJqyXbkz6uOKiEUpCya0%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;400&quot; height=&quot;387&quot; data-filename=&quot;노드 설치_셋업_6_nodejs_setup_6.jpg&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Node.js 설치 완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;9. 설치가 완료되면 &lt;b&gt;Install Additional Tools for Node.js(추가 도구 설치)&lt;/b&gt; 화면이 나타납니다. 아무 키나 눌러 설치를 진행하면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_셋업_7_nodejs_setup_7.jpg&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2jyQd/btqNYxh4gOj/kmtiF7pUKK8qRAOpSIBKm1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2jyQd/btqNYxh4gOj/kmtiF7pUKK8qRAOpSIBKm1/img.jpg&quot; data-alt=&quot;Install Additional Tools for Node.js&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2jyQd/btqNYxh4gOj/kmtiF7pUKK8qRAOpSIBKm1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2jyQd%2FbtqNYxh4gOj%2FkmtiF7pUKK8qRAOpSIBKm1%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;750&quot; height=&quot;512&quot; data-filename=&quot;노드 설치_셋업_7_nodejs_setup_7.jpg&quot; data-origin-width=&quot;979&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Install Additional Tools for Node.js&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;10. 아무 키나 누르면 &lt;b&gt;파워셸 창&lt;/b&gt;이 뜨는데, 여기서도 &lt;span style=&quot;color: #0593d3;&quot;&gt;사용자 계정 컨트롤 창&lt;/span&gt;이 뜨는 경우 &lt;b&gt;&quot;예&quot;&lt;/b&gt; 버튼을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_파워셸_nodejs_PowerShell.jpg&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;409&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s5Zja/btqNWEa866l/parQGdvtDyNlbqT5oO8Ekk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s5Zja/btqNWEa866l/parQGdvtDyNlbqT5oO8Ekk/img.jpg&quot; data-alt=&quot;파워셸(PowerShell)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s5Zja/btqNWEa866l/parQGdvtDyNlbqT5oO8Ekk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs5Zja%2FbtqNWEa866l%2FparQGdvtDyNlbqT5oO8Ekk%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;700&quot; height=&quot;409&quot; data-filename=&quot;노드 설치_파워셸_nodejs_PowerShell.jpg&quot; data-origin-width=&quot;847&quot; data-origin-height=&quot;409&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;파워셸(PowerShell)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;11. 잠시 기다린 후 설치가 완료되면 Type ENTER to exit: 라고 표시됩니다. 엔터 키를 눌러 종료합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드 설치_파워셸_nodejs_PowerShell_2.jpg&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xEtGc/btqNXF8vGLS/lWZGqLH2sJQeiumhoAbXKk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xEtGc/btqNXF8vGLS/lWZGqLH2sJQeiumhoAbXKk/img.jpg&quot; data-alt=&quot;파워셸(PowerShell)&amp;amp;nbsp;설치완료&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xEtGc/btqNXF8vGLS/lWZGqLH2sJQeiumhoAbXKk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxEtGc%2FbtqNXF8vGLS%2FlWZGqLH2sJQeiumhoAbXKk%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;489&quot; data-filename=&quot;노드 설치_파워셸_nodejs_PowerShell_2.jpg&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;파워셸(PowerShell)&amp;nbsp;설치완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&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;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; Node.js &lt;/span&gt;&lt;/span&gt;설치 확인&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설치가 정상적으로 완료되었는지 확인하는 방법을 알아보겠습니다. 먼저 키보드 왼쪽 하단에 있는 &lt;b&gt;윈도우 버튼&lt;/b&gt;과 &lt;b&gt;S&lt;/b&gt;를 눌러 &quot;&lt;b&gt;cmd&lt;/b&gt;&quot;라고 입력하면 &lt;b&gt;명령 프롬프트&lt;/b&gt;를 실행할 수 있습니다. 또는 &lt;b&gt;윈도우 버튼 + R&lt;/b&gt; 을 누르고 &quot;&lt;b&gt;cmd&lt;/b&gt;&quot;를 입력한 뒤 엔터를 누르면 명령 프롬프트가 실행됩니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;node -v&lt;/b&gt; 명령어를 입력하여 노드 버전을 확인함으로써 노드가 올바르게 설치되었는지 확인합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드_Node.js_명령 프롬프트_cmd.jpg&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;349&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OA81c/btqNWEPK7Km/ROGmGy8nGpZ2UoKBykt9jk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OA81c/btqNWEPK7Km/ROGmGy8nGpZ2UoKBykt9jk/img.jpg&quot; data-alt=&quot;명령 프롬프트(cmd.exe)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OA81c/btqNWEPK7Km/ROGmGy8nGpZ2UoKBykt9jk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOA81c%2FbtqNWEPK7Km%2FROGmGy8nGpZ2UoKBykt9jk%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;564&quot; height=&quot;349&quot; data-filename=&quot;노드_Node.js_명령 프롬프트_cmd.jpg&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;349&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;명령 프롬프트(cmd.exe)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;노드 패키지 매니저(npm)&lt;/b&gt;이 제대로 설치되었는지 확인합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;명령 프롬프트 창에서 &lt;b&gt;npm -v&lt;/b&gt;를 입력합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-filename=&quot;노드_Node.js_명령 프롬프트_cmd_2.jpg&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;349&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z0RKU/btqNVAtLT8s/zc9zUpalDmHql2ftNGsT1k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z0RKU/btqNVAtLT8s/zc9zUpalDmHql2ftNGsT1k/img.jpg&quot; data-alt=&quot;노드 패키지 매니저(npm) 버전 확인&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z0RKU/btqNVAtLT8s/zc9zUpalDmHql2ftNGsT1k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz0RKU%2FbtqNVAtLT8s%2Fzc9zUpalDmHql2ftNGsT1k%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;564&quot; height=&quot;349&quot; data-filename=&quot;노드_Node.js_명령 프롬프트_cmd_2.jpg&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;349&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;노드 패키지 매니저(npm) 버전 확인&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;npm 버전이 명령 프롬프트 창에 위와 같이 나온다면 설치가 정상적으로 완료된 것입니다. (설치하는 시점에 따라 버전 숫자는 달라질 수 있습니다.) 그러나 &lt;span style=&quot;color: #ee2323;&quot;&gt;버전 숫자가 나오지 않고 다른 에러 메시지가 나온다면 다시 처음부터 설치를 진행해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <category>node.js</category>
      <category>Node.js설치방법</category>
      <category>nodejs</category>
      <category>노드</category>
      <category>노드js</category>
      <category>노드js설치</category>
      <category>노드설치</category>
      <author>유아마루</author>
      <guid isPermaLink="true">https://urmaru.tistory.com/9</guid>
      <comments>https://urmaru.tistory.com/9#entry9comment</comments>
      <pubDate>Sat, 21 Nov 2020 19:46:34 +0900</pubDate>
    </item>
    <item>
      <title>Node.js 개념 이해</title>
      <link>https://urmaru.tistory.com/8</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Node.js&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Node.js&lt;/b&gt;는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임입니다. 노드가 무엇인지 알기 위해 노드 공식 사이트에 게시된 설명을 인용하였습니다. 노드를 통해 다양한 자바스크립트 애플리케이션을 실행할 수 있지만, 노드는 서버 애플리케이션을 실행하는 데 가장 많이 사용합니다. 노드는 자바스크립트 프로그램이 서버로서 기능하기 위한 도구를 제공하므로 서버 역할을 수행할 수 있습니다. 트위스티드, 펄로 만든 객체 환경 및 루비로 만든 이벤트 머신과 비슷하게 사용됩니다. 일부 CommonJS 사양이 구현되고 대화형 테스트를 위한 REPL 환경이 포함됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;노드js_Node.js.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1175&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yFiCb/btqM5fYl8zR/LzlNzHKNtxwVgdmPgowkBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yFiCb/btqM5fYl8zR/LzlNzHKNtxwVgdmPgowkBK/img.png&quot; data-alt=&quot;Node.js&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yFiCb/btqM5fYl8zR/LzlNzHKNtxwVgdmPgowkBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyFiCb%2FbtqM5fYl8zR%2FLzlNzHKNtxwVgdmPgowkBK%2Fimg.png&quot; data-filename=&quot;노드js_Node.js.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1175&quot; width=&quot;400&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Node.js&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;노드는 자바스크립트 런타임입니다. &lt;/span&gt;런타임은 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 의미하므로 노드는 자바스크립트 프로그램을 컴퓨터에서 실행할 수 있습니다. 노드를 자바스크립트 실행기라고 이해해도 무방합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;기존에는 자바스크립트 프로그램을 웹 브라우저 위에서만 실행할 수 있었습니다. 브라우저는 자바스크립트 런타임을 내장하고 있으므로 자바스크립트 코드를 실행가능합니다.&amp;nbsp;브라우저가 아닌 다른 환경에서 자바스크립트를 실행하기 위한 여러 시도가 있었지만, 자바스크립트의 실행 속도 문제로 인해 해결되지 않았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;하지만 2008년에 구글이 V8 엔진을 사용하여 크롬을 출시하였고 당시 V8 엔진은 다른 자바스크립트 엔진과 달리 매우 빠르며 오픈 소스로 코드를 공개했습니다. 속도 문제가 해결되어 2009년 V8 엔진 기반의 노드 프로젝트가 시작되었습니다.&lt;/span&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;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt; 구조&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드는 V8과 더불어 libuv라는 라이브러리를 사용합니다. V8과 libuy는 C와 C++로 구현되어 있습니다. 자바스크립트 코드는 노드가 V8과 libuv에 연결해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;libuy 라이브러리는 노드의 특성인 이벤트 기반, 논 블로킹 I/O 모델을 구현하고 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Node.js_내부 구조_1.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;720&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHT7Un/btqNbwD2xnF/se46dbryu44X9Y17U310iK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHT7Un/btqNbwD2xnF/se46dbryu44X9Y17U310iK/img.jpg&quot; data-alt=&quot;Node.js 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHT7Un/btqNbwD2xnF/se46dbryu44X9Y17U310iK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHT7Un%2FbtqNbwD2xnF%2Fse46dbryu44X9Y17U310iK%2Fimg.jpg&quot; data-filename=&quot;Node.js_내부 구조_1.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;720&quot; width=&quot;500&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Node.js 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&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;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;특징&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 이벤트 기반(Event-driven)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;이벤트 기반(event-driven)&lt;/b&gt;이란 이벤트가 발생할 때 미리 지정한 작업을 수행하는 것입니다. 클릭이나 네트워크 요청 등이&amp;nbsp;이벤트에&amp;nbsp;해당합니다. 이벤트 기반 시스템에서는 특정 이벤트가 발생할 때 무엇을 할지 미리 등록합니다. 이것을 이벤트 리스너(event listener)에 콜백(callback) 함수를 등록한다고 표현합니다. 리스너란 말 그대로 '듣고 있는 것'으로, 이벤트가 발생되는 것을 기다리는 것이라고 생각하면 됩니다. 또한 콜백이란 말 그대로 '부르고 난 뒤'로, 이벤트가 발생한 다음 수행되는 동작을 의미합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;버튼을 클릭할 때 알림창을 띄우도록 설정하는 것을 예로 들면 클릭 이벤트 리스너에 알림창을 띄우는 콜백 함수를 등록해두면 클릭 이벤트가 발생할 때마다 콜백 함수가 실행되어 알림창이 뜨는 것입니다.&amp;nbsp;노드도 이벤트 기반 방식으로 동작하므로, 이벤트가 발생하면 이벤트 리스너에 등록해둔 콜백 함수를 호출합니다. 발생한 이벤트가 없거나 발생했던 이벤트를 다 처리하면, 노드는 다시 다음 이벤트가 발생할 때까지 대기합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이벤트 기반 시스템에서는&amp;nbsp;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;이벤트 루프&lt;/b&gt;(event loop)&lt;/span&gt;라는 것이 존재합니다. 여러 이벤트가 발생했을 때 어떤 순서로 콜백 함수를 호출할지를 이벤트 루프가 판단합니다. 노드는 자바스크립트 코드의 맨 위부터 한 줄씩 실행합니다. 함수 호출 부분을 발견하면 호출한 함수를 호출 스택(call stack)에 넣고 다음 코드를 확인하여 호출 스택을 쌓아갑니다. 함수는 실행되는 동안 호출 스택에 머물러 있고 실행이 완료되면 호출 스택에서 지워집니다. 컨텍스트(global context)까지 모두 실행이 완료되면 호출 스택은 비워지게 됩니다. 컨텍스트는 함수가 호출되었을 때 생성되는 환경을 의미합니다. 자바스크립트 코드가 실행되면 기본적으로 글로벌 컨텍스트 안에서 수행된다고 보면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;▶&amp;nbsp;&lt;b&gt;이벤트 루프(event-loop)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 이벤트 발생 시 호출할 콜백 함수들을 관리&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 호출된 콜백 함수의 실행 순서를 결정&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;- 노드가 실행 종료될 때까지 이벤트 처리를 위한 작업을 반복(loop)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 논 블로킹 I/O 모델(Non Blocking I/O model)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이벤트 루프를 활용하면 작업 시간이 긴 것도 효율적으로 처리할 수 있는데, 작업에는 동시에 실행가능 한 작업과 드렇지 않은 작업이 있습니다. 기본적으로 자바스크립트 상에서 돌아가는 것은 동시에 실행될 수 없지만 I/O 작업은 동시에 처리가 가능합니다.&amp;nbsp; I/O란 입력(Input)과 출력(Output)을 의미합니다. 파일 읽기, 쓰기, 폴더 생성이나 네트워크 요청 등이 I/O의 대표적인 예시입니다. 이 때, 논 블로킹 방식으로 처리하는 것이 노드입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;논 블로킹이란 이전 작업이 완료될 때까지 대기하는 것이 아니라 다음 작업을 바로 수행하는 것입니다. 반대로 블로킹이란 이전 작업이 반드시 끝나야 다음 작업을 수행하는 것을 의미합니다. 논 블로킹으로 수행하기 위해서는 작업들이 모두 동시에 처리될 수 있는 작업이어야 합니다. 노드는 이러한 I/O 작업들을 백그라운드에서 동시에 처리하여 시간을 절약합니다. 이러한 작업 순서는 성능을 크게 좌우합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 싱글 스레드(Single-thread)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;싱글 스레드란 스레드가 하나뿐이라는 것을 의미합니다. 스레드는 프로세스 내에서 실행되는 흐름의 한 단위이고 프로세스는 스레드를 여러 개 생성하여 여러 작업들을 동시에 처리합니다. 스레드는 부모 프로세스의 자원을 공유하고 같은 주소의 메모리에 접근이 가능하여 데이터를 공유할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;노드를 실행하면 프로세스가 하나 생성되는데 그 프로세스에서 스레드를 생성할 때 내부적으로는 스레드를 여러 개 생성합니다. 하지만 직접 제어가 가능한 것은 스레드 하나뿐이기 때문에 노드가 싱글 스레드라고 하는 것입니다. 하나의 스레드만 제어가 가능하므로 많은 요청이 오면 하나씩 처리하고 논 블로킹 방식을 이용하여 대기 시간을 줄입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;span style=&quot;background-color: #ef5369;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;b&gt;노드가 싱글 스레드로 동작하지 않는 경우&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;스레드풀(Thread Pool) : 노드가 암호화, 파일 입출력, 압축 등 특정 동작 수행 시 스스로 멀티 스레드를 사용.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;워커 스레드(Worker Thread) : 노드에서 멀티 스레드를 사용할 수 있게 된 기능으로 직접 다수의 스레드를 제어 가능. CPU 작업이 많은 경우 워커 스레드를 사용하며 노드 12 버전에서 안정화된 기능.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>IT</category>
      <category>node.js</category>
      <category>nodejs</category>
      <category>노드js</category>
      <category>논블로킹</category>
      <category>스레드풀</category>
      <category>싱글스레드</category>
      <category>워커스레드</category>
      <author>유아마루</author>
      <guid isPermaLink="true">https://urmaru.tistory.com/8</guid>
      <comments>https://urmaru.tistory.com/8#entry8comment</comments>
      <pubDate>Tue, 17 Nov 2020 10:45:41 +0900</pubDate>
    </item>
    <item>
      <title>웹 소켓(WebSocket) 개념 이해</title>
      <link>https://urmaru.tistory.com/7</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;웹 소켓(WebSocket)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 소켓은 TCP 기반 소켓 API를 대체하기 위해 HTML5 사양의 TCP Connection에 처음 참조되었습니다. 2008년 6월 마이클 카터가 일련의 논의를 주도하여 웹 소켓이라는 프로토콜의 첫 번째 버전을 만들었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;websocket_웹소켓.JPG&quot; data-origin-width=&quot;439&quot; data-origin-height=&quot;211&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVTDc7/btqMApTOK2x/a26hJAfvAYi6mLxgz8bKX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVTDc7/btqMApTOK2x/a26hJAfvAYi6mLxgz8bKX0/img.jpg&quot; data-alt=&quot;웹소켓 커넥션(WebSocket Connection)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVTDc7/btqMApTOK2x/a26hJAfvAYi6mLxgz8bKX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVTDc7%2FbtqMApTOK2x%2Fa26hJAfvAYi6mLxgz8bKX0%2Fimg.jpg&quot; data-filename=&quot;websocket_웹소켓.JPG&quot; data-origin-width=&quot;439&quot; data-origin-height=&quot;211&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;웹소켓 커넥션(WebSocket Connection)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;b&gt;WebSocket&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;웹 소켓은 TCP 연결에 완전한 이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜입니다. 웹 소켓 프로토콜은 2011 IETF에 의해 RFC 6455에서 표준화되었으며 현재 웹입니다. IDL의 웹 소켓 API는 W3C에 의해 표준화되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;웹 소켓은 HTTP와 다릅니다. 두 프로토콜은 모두 OSI 모델의 7번째 계층에 있으며, TCP의 4번째 계층에 의존하고 있지만 &quot;RFCAcording to 6455, 웹 소켓은 HTTP 포트 80 및 443 이상으로 실행되도록 설계되었으며 HTTP 프록시 및 중간 계층을 지원하도록 설계되어 HTTP 프로토콜과 호환됩니다. 호환성을 달성하기 위해, 웹 소켓 핸드 셰이크는 HTTP 업그레이드 헤더를 사용하여 HTTP 프로토콜 내의 웹 소켓 프로토콜로 변경됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;websocket handshake_웹소켓_핸드셰이크.JPG&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;379&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lr9Al/btqMzDLwaA7/kBW2c9f82d72V7lzkxu15K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lr9Al/btqMzDLwaA7/kBW2c9f82d72V7lzkxu15K/img.jpg&quot; data-alt=&quot;웹소켓 핸드셰이크(WebSocket Handshake)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lr9Al/btqMzDLwaA7/kBW2c9f82d72V7lzkxu15K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLr9Al%2FbtqMzDLwaA7%2FkBW2c9f82d72V7lzkxu15K%2Fimg.jpg&quot; data-filename=&quot;websocket handshake_웹소켓_핸드셰이크.JPG&quot; data-origin-width=&quot;369&quot; data-origin-height=&quot;379&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;웹소켓 핸드셰이크(WebSocket Handshake)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;웹 소켓 프로토콜은 웹 브라우저(또는 다른 클라이언트 애플리케이션)와 웹 서버 간의 통신을 허용하며, HTTP 풀과 같은 반 이중 모드에 비해 서버와의 실시간 데이터 전송을 쉽게 합니다. 이는 클라이언트가 요청하는 것이 아니라 서버가 클라이언트에 콘텐츠를 전송할 수 있는 표준화된 방법을 제공함으로써 가능해졌습니다. 또한, 연결이 유지되면 메시지를 통해 앞뒤로 이동할 수 있으며, 이러한 방식으로 클라이언트와 서버 간에 양방향 대화가 발생할 수 있습니다. 통신은 TCP 포트 80(443 TLS 암호화 연결용)을 통해 이루어지며 방화벽을 통해 웹이 아닌 인터넷 연결을 차단하는 여러 환경에서 유용합니다. 간단한 양방향 브라우저 서버 통신은 혜성 등 스톱 갭 기술을 사용하여 비표준 방식으로 작동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;대부분 브라우저는 Google Chrome, Microsoft Edge, Internet Explorer, Firefox, Safari 및 Opera를 포함한 프로토콜을 지원합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;WebSocket 특징&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;HTTP와 달리 웹 소켓은 완전한 이중 통신을 사용하여 웹 소켓이 TCP에서 메시지를 스트리밍 할 수 있습니다. TCP는 메시지의 상속 개념 없이 바이트 스트림을 처리합니다. 웹 소켓 이전에는 포트 80의 완전한 이중 통신이 혜성 채널을 사용하여 실행 가능했습니다. 그러나 혜성 구현은 사소한 것이 아니며 TCP 핸드 셰이크 및 HTTP 헤더 로드로 인해 작은 메시지에서 비효율적입니다. 웹 소켓 프로토콜은 웹의 보안 문제를 손상하지 않고 이 문제를 해결하는 것을 목표로 합니다. 웹 소켓 프로토콜 사양은 Ws(WebSocket), ws(Websocket Secure)의 두 가지 새로운 통합 리소스 식별자 (URI) 체계를 기반으로 하며 이들은 각각 암호화되지 않은 연결 및 암호화된 연결에 사용됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&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: #9d9d9d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;프로토콜 핸드셰이크(Protocol Handshake)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;웹 소켓을 연결하기 위해 클라이언트는 웹 소켓 핸드 셰이크 요청을 전송하고, 이렇게 함으로써 서버는 다음 예에서 보기 위해 웹 소켓 핸드 셰이크 응답을 반환합니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;GET / HTTP&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;/1.1 &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Host:&lt;/span&gt; server.example.com&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Upgrade:&lt;/span&gt; Websocket&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Connection:&lt;/span&gt; Upgrade&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Sec-WebSocket-Key:&lt;/span&gt; pCHJOMbDk5FzXkb9GIhXsw==&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Sec-WebSocket-Protocol:&lt;/span&gt; chat, superchat&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Sec-WebSocket-Version:&lt;/span&gt; 13&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Origin:&lt;/span&gt; http://MY IP or DNS&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&amp;lt;클라이언트 요청&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;HTTP&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;/1.1 101 Web Socket Protocol&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Upgrade:&lt;/span&gt; Websocket&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Connection:&lt;/span&gt; Upgrade&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Sec-WebSocket-Key:&lt;/span&gt; pXHGOMaDE5fzX4b1GwhLMwk=&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Sec-WebSocket-Protocol:&lt;/span&gt; chat&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&amp;lt;서버 응답&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;프록시 경유&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;웹 소켓 프로토콜 클라이언트 구현에서는 사용자 에이전트가 대상 호스트와 포트에 연결할 때 프록시를 사용하도록 구성되었는지 확인하려고 합니다. 만약 그렇다면 HTTPConfigure 영구 터널은 HTTP CONNECT 메소드를 사용하여 구성합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;웹 소켓 프로토콜 자체는 프록시 서버와 방화벽을 인식하지 않고 HTTP 호환 핸드셰이크 기능을 제공하여 HTTP 서버가 웹 소켓 게이트웨이 또는 서버와 기본 HTTP 및 HTTPS 포트(80 및 443)를 공유할 수 있게 합니다. 웹 소켓 프로토콜은 웹 소켓과 웹 소켓의 안전 연결을 나타내기 위해 각각 ws:// 및 ws:// 이니셜을 정의합니다. 이 두 가지 방식은 HTTP 업그레이드 메커니즘을 사용하여 웹 소켓 프로토콜로 업그레이드하며 일부 프록시 서버는 투명하고 웹 소켓과 잘 작동합니다. 다른 것들은 제대로 작동하지 못하고 연결되지 않습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;경우에 따라 추가 프록시 구성이 필요하며 웹 소켓을 지원하기 위해 특정 프록시 서버로의 업그레이드가 필요할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;암호화되지 않은 웹 소켓 트래픽이 웹 소켓을 지원하지 않는 명시적 또는 투명한 프록시 서버를 통과하면 연결이 실패할 가능성이 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;암호화된 웹 소켓 연결을 사용할 때, HTTP는 브라우저가 명시적은 프록시 서버를 사용하도록 구성되었는지 확인하기 위해 전송 계층 보안(TLS)을 사용하는 데 사용됩니다. 이때 HTTP CONNECT 명령이 발급되었는지 보증하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <category>web</category>
      <category>websocket</category>
      <category>웹개발</category>
      <category>웹소켓</category>
      <category>응용계층프로토콜</category>
      <category>프로토콜</category>
      <category>핸드셰이크</category>
      <author>유아마루</author>
      <guid isPermaLink="true">https://urmaru.tistory.com/7</guid>
      <comments>https://urmaru.tistory.com/7#entry7comment</comments>
      <pubDate>Thu, 5 Nov 2020 01:07:22 +0900</pubDate>
    </item>
    <item>
      <title>인터넷 영역 네트워크(Internet Area Network) 클라우드 개념 이해</title>
      <link>https://urmaru.tistory.com/6</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;인터넷 영역 네트워크(IAN)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷 영역 네트워크(IAN)는 클라우드 환경에서 음성과 데이터 앤드 포인트를 IP를 통해 연결하는 통신 네트워크의 개념으로, 기존 로컬 네트워크(LAN), WAN(Wide Area Network), 또는 PSTN(Public Switched Telephone Network)의 개념입니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;Internet Area Network_Cloud_IAN_클라우드.gif&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;256&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lB6H9/btqMn4Jq00U/C6DYJXojBe7sal0QIFi8Z1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lB6H9/btqMn4Jq00U/C6DYJXojBe7sal0QIFi8Z1/img.gif&quot; data-alt=&quot;IAN 클라우드 컴퓨팅&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lB6H9/btqMn4Jq00U/C6DYJXojBe7sal0QIFi8Z1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/lB6H9/btqMn4Jq00U/C6DYJXojBe7sal0QIFi8Z1/img.gif&quot; data-filename=&quot;Internet Area Network_Cloud_IAN_클라우드.gif&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;256&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;IAN 클라우드 컴퓨팅&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt; IAN(Internet Area Network)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;이 IAN은 미래의 네트워킹 모델로서 지지자들에 의해 공공 인터넷을 통해 앤드 포인트를 안전하게 연결하여 물리적 위치에 있을 수 없으며 정보와 데이터를 통신하고 교환할 수 있도록 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;국가 경계를 넘는 광역, 지역, 통신망 등 광역을 지원하는 네트워크인 가정, 학교, 컴퓨터실, 사무실 건물, WAN 등 제한된 영역에서 컴퓨터를 상호 연결하는 LAN과 달리 IAN은 애플리케이션과 통신 서비스가 가상화돼 네트워크의 지리적 프로파일을 완전히 제거합니다. 앤드 포인트는 인터넷을 통한 광대역 연결을 통해서만 연결해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;관리 서비스 제공업체가 클라우드에 주최하는 IAN 플랫폼은 인터넷 연결을 통해 언제 어디서나 안전한 정보 접근을 사용자에게 제공합니다. 기업의 경우 IT 및 통신비용을 절감하고 데이터 손실 및 재난 다운 타임을 방지하며, 직원의 생산성을 향상하고 통신비용을 절감하여 투자자원의 이익을 실현하는 호스트 모델이 구현됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;IAN 유래&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;IAN은 클라우드 컴퓨팅의 부상에 뿌리를 두고 있으며, 기본 개념은 1950년대로 거슬러 올라갑니다. 대형 메인 프레임이 학계에서 사용 가능해지면 얇은 클라이언트 및 터미널 컴퓨터를 통해 접근할 수 있습니다. 메인 프레임을 사는 데 비용이 많이 들었습니다. 따라서 많은 사용자가 CPU 시간을 공유할 수 있을 뿐만 아니라 여러 단말기와 컴퓨터에 대한 물리적 접근을 공유할 수 있게 함으로써 업계에서 시간 공유라고 알려진 비활성 기간이 제거되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;1960년대 후반, 대학과 실험실에서 컴퓨터 수요와 사용이 증가함에 따라 컴퓨터 시스템 간의 고속 상호 연결을 제공할 필요가 있었습니다. 로렌스 방사선 연구소의 1970년 보고서는 &quot;문어&quot; 네트워크의 성장을 자세히 설명했으며 상황에 대한 좋은 지식을 얻을 수 있었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;컴퓨터가 인기를 끌면서 과학자들과 기술자들은 더 많은 사용자가 시간 공유를 통해 대규모 계산력을 사용하는 방법을 모색했고, CPU 우선순위와 최종 사용자 효율성을 가진 인프라, 플랫폼 및 애플리케이션을 최적으로 사용하는 알고리즘을 실험했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;존 매카시는 1960년대에 &quot;컴퓨팅은 언젠가 공공사업으로 조직될 수 있다&quot;라고 주장했습니다. &quot;클라우드 컴퓨팅의 거의 모든 현대적 특징(유틸리티, 온라인 및 무한 공급의 환상으로 제공되는 탄력성의 제공), 전기 산업과의 비교, 공공, 민간, 정부와 지역사회의 형태 사용은 더글러스 파크 힐의 1966년 저서 &quot;컴퓨터 유틸리티의 도전&quot;에서 철저히 탐구되었습니다. 다른 학자들은 클라우드 컴퓨팅의 뿌리가 1950년대로 거슬러 올라간다는 것을 보여주었는데, 그 당시 과학자 허브 그로 쉬(그로시 법칙의 저자)는 전 세계 15대 정도의 대형 데이터 센터가 그에 의해 움직이는 멍청한 터미널에서 운영되리라 추측했습니다. 이러한 강력한 컴퓨터의 비용 때문에 많은 기업과 다른 회사들이 GEISCO, IBM 자회사 The Service Bureau Corporation(SBC, 1957년 설립), Tymshare, National CSS, Dial Data를 사용할 수 있었습니다. 컴퓨팅 기능은 볼트와 같은 여러 조직을 통해 시간 공유를 통해 활용될 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;서비스에 대한 점점 더 의미론적 데이터를 통해 문서 기반 인터넷의 개발은 &quot;동적 웹&quot;으로 묘사되었습니다. 이 기여는 모델 기반 응용 프로그램의 개념, 특히 구현의 세부 사항을 설명하기 위한 더 나은 메타 데이터의 필요성에 초점을 맞춥니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;현재 하드웨어 가상화, 서비스 지향 아키텍처, 자율성, 유틸리티 컴퓨팅, 하드웨어 가상화, 저비용 컴퓨터 및 스토리지 장치의 광범위한 채택으로 클라우드 컴퓨팅이 크게 성장했습니다. 가상 세계와 피어 투 피어 아키텍처는 IAN의 개념을 위한 길을 닦았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;iAreaNet은 클라우드가 널리 배치된 상업 형태로 존재하기 전에 오프사이트 데이터의 보존 및 방재에 집중하기 위해 1999년 James CEO로 임명되었습니다. 이후 iAreaOffice는 비즈니스 커뮤니케이션을 위한 전통적인 LAN, WAN 또는 전화 시스템의 필요성을 없애고 IAN 개념을 사용화하기 위한 특허를 지급하는 등 기업에 일련의 기술 솔루션을 제공하기 위해 강력한 인프라 개발에 상당한 투자를 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9d9d9d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;b&gt;클라우드 데이터베이스(Cloud Database)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;클라우드 데이터베이스는 일반적으로 클라우드 컴퓨팅 플랫폼에서 실행되는 데이터베이스이며 데이터베이스에 대한 접근은 서비스로 제공됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;데이터베이스 서비스는 데이터베이스 확장 및 높은 가용성을 관리합니다. 데이터베이스 서비스는 기본 소프트웨어 스택을 사용자에게 투명하게 합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;b&gt;▶ 아키텍처 및 공통 특성&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-ke-size=&quot;size14&quot;&gt;대부분의 데이터베이스 서비스는 최종 사용자가 데이터베이스 인스턴스를 제공하고 구성하기 위해 사용할 수 있는 웹 기반 콘솔을 제공합니다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size14&quot;&gt;데이터베이스 서비스는 서비스 API를 사용하여 기본 데이터베이스 인스턴스를 제어하는 데이터베이스 관리 구성 요소로 구성됩니다. 서비스 API는 최종 사용자에게 게시되어 사용자가 데이터베이스 인스턴스에서 유지보수 및 스케일링 작업을 수행할 수 있게 합니다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size14&quot;&gt;일반적으로 소프트웨어 스택 기본값에는 운영 체제, 데이터베이스 및 데이터베이스를 관리하는 데 사용되는 타사 소프트웨어가 포함됩니다. 서비스 제공자는 기본 소프트웨어 스택을 설치, 패치 및 업데이트하고 데이터베이스의 전반적인 건강 및 성능을 보장할 책임이 있습니다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size14&quot;&gt;공급 업체마다 확장이 다릅니다. 일부는 자동 스케일링을 제공하고 일부는 API를 사용하여 확장할 수 있지만, 자동으로 스케일링하지는 않습니다.&lt;/li&gt;
&lt;li data-ke-size=&quot;size14&quot;&gt;일반적으로 특정 수준의 높은 가용성(99.9%)의 약속이 있으며, 이는 데이터 및 오류 인스턴스를 다른 데이터베이스 인스턴스로 복제함으로써 달성됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9d9d9d;&quot;&gt;&amp;nbsp;&lt;/span&gt; &lt;b&gt;클라우드 스토리지(Cloud Storage)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;클라우드 스토리지는 디지털 데이터가 &quot;클라우드&quot;에 있는 논리 풀에 저장된 컴퓨터 데이터 스토리지의 모델입니다. 물리적 스토리지는 여러 서버(때로는 여러 위치에서)에 걸쳐 있으며, 물리적 환경은 일반적으로 호스팅 회사가 소유하고 관리합니다. 이러한 클라우드 스토리지 공급자는 사용 가능한 데이터에 접근하고 물리적 환경을 보호하고 실행할 책임이 있습니다. 사용자 및 조직은 사용자, 조직 또는 응용 프로그램 데이터를 저장하기 위해 공급자로부터 스토리지 용량을 구매하거나 임대합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;클라우드 스토리지 서비스는 연결된 클라우드 컴퓨팅 서비스, 웹 서비스 애플리케이션 프로그래밍 인터페이스(API), 클라우드 데스크톱 스토리지, 클라우드 스토리지 게이트웨이 또는 웹 기반 콘텐츠 관리 시스템과 같은 API를 사용하여 애플리케이션을 통해 접근할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <category>cloud</category>
      <category>Ian</category>
      <category>네트워크</category>
      <category>인터넷영역네트워크</category>
      <category>클라우드</category>
      <author>유아마루</author>
      <guid isPermaLink="true">https://urmaru.tistory.com/6</guid>
      <comments>https://urmaru.tistory.com/6#entry6comment</comments>
      <pubDate>Mon, 2 Nov 2020 23:15:31 +0900</pubDate>
    </item>
    <item>
      <title>가상사설망 VPN 개념 이해</title>
      <link>https://urmaru.tistory.com/3</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;VPN(Virtual Private Network)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상사설망(VPN)은 전용회선이 아닌 인터넷망과 같은 공중망을 활용하고 터널링 기술을 이용해 전용회선처럼 사용할 수 있는 서비스로 암호화 통신을 제공하여 재택 또는 이동근무자가 사내 시스템에 접속하거나 원격지에서 사설망 서비스를 제공받을 수 있는 기술입니다. 모바일 환경에서 가장 많이 사용되는 보안 서비스 기술이며 OSI동작 기준 SSL, IPSec, L2 VPN 등 종류가 다양합니다. 공중망으로 사설망 서비스가 가능하여 전용성을 구축하는 것보다 비용이 저렴하지만 성능이나 내부망 침입 등 보안 사고의 위험도 있습니다. 최근 클라우드가 각광받으면서 클라우드 기술을 제공하는 업체와 기업 간 네트워크 연동 시 전용선 서비스 수준의 보안을 제공하는 클라우드 VPN이 주목받고 있습니다.&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;span style=&quot;background-color: #9d9d9d;&quot;&gt;&amp;nbsp;&lt;/span&gt; VPN이란 무엇인가&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 네트워크의 종류 (Public Network / Private Network)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;VPN에 대해 알아보기 전에 우선 네트워크의 종류에 대해 알아보자. 네트워크를 분류하는 데는 여러 기준이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;가장 쉬운 예로는 유선 네트워크와 무선 네트워크로 매체의 종류에 따라 나눌 수 있고, 이더넷과 ATM 등 전송기술에 따라 나눌 수도 있습니다. 그리고 &lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;공용 네트워크&lt;span style=&quot;color: #333333;&quot;&gt;(Public Network)&lt;/span&gt;&lt;/b&gt;와 &lt;/span&gt;&lt;b&gt;전용 네트워크(Private Network)&lt;/b&gt;로 구분하여 사용용도에 따라 나눌 수도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;여기서 공용 네트워크는 공인 IP로 구성되고 방화벽이나 보안장치가 없으면 어떤 상대와도 통신이 가능한 네트워크를 말합니다. 따라서 허가를 받지 않아도 무단 접속이 가능하여 해킹 등 위험성이 있습니다. 반대로, 전용 네트워크는 특정한 조직 내에서만 통신을 할 수 있고 외부로부터 단절되어 보안성이 높은 서비스를 제공합니다. 그러나 연결해야하는 거리가 멀어질수록 비용이 많이 필요한 전용회선을 사용해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;VPN은 이러한 공용 네트워크를 &lt;span style=&quot;color: #006dd7;&quot;&gt;터널링&lt;/span&gt; 기술을 통해 가상의 전용 네트워크로 구현하는 것을 말합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; 가상 사설망 VPN : Virtual Private Network&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;VPN은 인터넷을 사용해 특정 사이트의 개별망들을 터널링과 보안을 통해 암호화된 패킷이나 경로를 구성해 전용 네트워크처럼 안전한 통신을 제공하는 가상 네트워크 기술입니다. 상대적으로 저렴한 인터넷 회선으로 전용회선처럼 사용할 수 있는 기술이라고 보면 됩니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #9d9d9d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt; 터널링(tunneling)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;터널링&lt;/span&gt;이란 송신자와 수신자 간의 데이터를 프로토콜로 캡슐화하여 전송하는 기술로 PPTP, L2TP, IPSec, MPLS 등의 프로토콜이 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;하위층 통신 규약 패킷을 상위층 통신규약으로 캡슐화하는 것으로 송수신자 간의 전송 통로에 터널링 프로토콜을 제공하여 일종의 파이프를 구성, 사설망과 같이 보안성이 있는 통신기술을 제공하는 VPN 구현의 핵심이 되는 기술입니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;터널링(Tunneling).JPG&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;313&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bn0AuT/btqLJVsfkxR/KbwksI44pCcRCFSbpYBVO1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bn0AuT/btqLJVsfkxR/KbwksI44pCcRCFSbpYBVO1/img.jpg&quot; data-alt=&quot;&amp;amp;amp;lt;터널링(tunneling) 원리&amp;amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bn0AuT/btqLJVsfkxR/KbwksI44pCcRCFSbpYBVO1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn0AuT%2FbtqLJVsfkxR%2FKbwksI44pCcRCFSbpYBVO1%2Fimg.jpg&quot; data-filename=&quot;터널링(Tunneling).JPG&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;313&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;터널링(tunneling) 원리&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;페이로드란 터널링 되는 IP 패킷 데이터를 말하고 송신 측에서 페이로드를 암호화합니다. 여기에 인증 및 새로운 IP 헤더를 붙여 전송합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;수신 측에서 수신된 패킷 IP 헤더를 통해 패킷 인증을 하고 페이로드를 분리하여 복호화한 뒤 다시 내부망에서 정상 IP 패킷으로 전송합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p 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;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;▶&lt;/b&gt; &lt;b&gt;터널링 프로토콜의 종류&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- PPTP (Point-to-Point Tunnrling Protocol)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;PPP(Point to Point Protocol)의 패킷을 IP 패킷으로 캡슐화하여 IP 네트워크에서 전송하기 위한 터널링&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;IP, IPX, NetBEUI 페이로드를 암호화, IP 헤더로 캡슐화하여 전송&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;터널의 유지보수 관리를 위해 TCP 연결 사용&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;모바일 유저가 홈서버에 접속할 때 사용하기에 유용함&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;윈도우 NT 서버이며 별도의 PPTP 지원 S/W 사용&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- L2F (Layer 2 Forwarding)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;외부의 ISP 장비에서 접근 서버의 터널 서버로 L2F 터널을 생성시키는 프로토콜&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;원격 사용자의 홈페이지에서 주소를 할당하고 게이트웨이에서 사용자 인증&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;하나의 터널에 여러 연결을 지원&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- L2TP (Layer 2 Tunneling Protocol)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;L2F 기반 PPTP와 호환성을 위한 프로토콜 표준&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;IPSec 기반의 패킷 암호화 기술로 IP, IPX, Apple Talk Protocol 지원 가능&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- IPSec&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;IP 계층 보안을 목적으로 IETF에서 표준화한 세 계층의 터널링 프로토콜&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;네트워크 상의 IP 레이어에서의 보안을 중점으로 IP 데이터그램의 인증과 무결성, 기밀성을 제공&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;암호화된 패킷은 네트워크 장비의 내부 변경 없이 IP 네트워크로 라우팅 가능&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;IPv6에서 기본적으로 포함하고 있으며 IPv4에서도 보안을 목적으로 사용&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt; VPN 주요 기능 및 특징&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 데이터 원본 인증 (Data Source Authentication)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;요청한 수신인에 의해 각 데이터가 원본인지를 확인&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 데이터 무결성 (Data Integrity)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;데이터 전송 중 제3자의 고의적 파괴나 오류에 의해 변환되지 않았다는 것을 보장&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 데이터 기밀성(Data Confidentiality)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;암호화를 이용하여 메시지의 내용을 은폐&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 재전송 공격 방지&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;AH(Authentication Header)에 일련번호를 부여하여 재전송 공격을 방지(IPSec 기반)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <category>VPN</category>
      <category>VPN개념</category>
      <category>가상</category>
      <category>가상사설망</category>
      <category>네트워크</category>
      <category>사설망</category>
      <category>원격</category>
      <author>유아마루</author>
      <guid isPermaLink="true">https://urmaru.tistory.com/3</guid>
      <comments>https://urmaru.tistory.com/3#entry3comment</comments>
      <pubDate>Sat, 31 Oct 2020 21:21:43 +0900</pubDate>
    </item>
    <item>
      <title>데이터그램 전송 계층 보안 DTLS 개념 이해</title>
      <link>https://urmaru.tistory.com/5</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;데이터그램 전송 계층 보안 DTLS(Datagram Transmission Layer Security)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DTLS(Datagram Transmission Layer Security)는 도청, 변조 또는 메시지 위조를 방지하기 위해 고안된 방식으로 통신함으로써 데이터 그램 기반 애플리케이션에 대한 보안을 제공하는 통신 프로토콜입니다. DTLS 프로토콜은 경향 지향 전송 계층 보안(TLS) 프로토콜에 기초하며 유사한 보안 보장을 제공하기 위한 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DTLS 프로토콜 데이터 그램은 기본 전송의 의미들을 저장합니다. 애플리케이션은 경향 프로토콜과 관련된 지연을 겪지 않지만 UDP를 사용하므로 애플리케이션은 패킷 재배열, 데이터 그램 손실 및 데이터 그램 네트워크 패킷 크기보다 더 큰 데이터를 처리해야 합니다. DTLS는 TCP가 아닌 UDP를 사용하기 때문에 VPN 터널을 만드는 데 사용될 때 'TCP 용해 문제'를 피합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;447&quot; data-origin-height=&quot;346&quot; data-filename=&quot;DTLS_데이터그램 전송 계층 보안.JPG&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byJgbv/btqMaDKONyi/hwiV3x8d0ceJcDBK1uAurK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byJgbv/btqMaDKONyi/hwiV3x8d0ceJcDBK1uAurK/img.jpg&quot; data-alt=&quot;DTLS(데이터그램 전송 계층 보안)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byJgbv/btqMaDKONyi/hwiV3x8d0ceJcDBK1uAurK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyJgbv%2FbtqMaDKONyi%2FhwiV3x8d0ceJcDBK1uAurK%2Fimg.jpg&quot; data-origin-width=&quot;447&quot; data-origin-height=&quot;346&quot; data-filename=&quot;DTLS_데이터그램 전송 계층 보안.JPG&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DTLS(데이터그램 전송 계층 보안)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt; DTLS&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;TLS는 네트워크 트래픽을 보장하기 위해 가장 널리 배치된 프로토콜입니다. IMAP 및 POP와 같은 웹 트래픽 보호 및 전자 메일 프로토콜에 널리 사용됩니다. TLS의 주요 장점은 투명한 연결 지향 채널을 제공하는 것입니다. 따라서 응용 계층과 전송 계층 사이에 TLS를 삽입함으로써 응용 프로토콜을 쉽게 확보할 수 있습니다. 그러나 TLS는 신뢰할 수 있는 전송 채널, 즉 일반적으로 TCP를 통해 실행되어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;따라서 신뢰할 수 없는 데이터 그램 트래픽을 보장하는 데 사용할 수 없습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;그러나 UDP 전송을 이용한 응용 계층 프로토콜은 지난 몇 년 동안 설계되었습니다. 세션 개시 프로토콜(SIP) 및 전자 게임 프로토콜과 같은 프로토콜은 특히 점점 더 인기를 끌고 있습니다. 이러한 애플리케이션의 설계자들은 다양한 불만족스러운 선택에 직면해 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;첫째, IPsec를 사용할 수 있습니다. 그러나 몇 가지 이유로 여러 응용 프로그램에만 적합합니다. 둘째, 사용자 지정 응용 프로그램 계층에 대한 보안 프로토콜을 설계할 수 있습니다. 예를 들어, SIP는 트래픽을 보장하기 위해 S/MIME의 하위 집합을 사용합니다. 그러나 애플리케이션 계층 보안 프로토콜은 일반적으로 우수한 보안 속성(ex. MIME의 S/end-to-end 보안)을 제공하기 위해 사용되지만, 일반적으로 TLS를 통해 프로토콜을 실행하는 데 필요한 비교적 작은 노력과는 달리 설계에 많은 노력이 필요합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;종종 클라이언트 / 서버 응용 프로그램을 확보하는 가장 바람직한 방법은 TLS를 사용하는 것입니다. 그러나 데이터 그램 의미론에 대한 요구 사항은 TLS의 사용을 자동으로 금지합니다. 따라서 보안 프로토콜을 기술하고 코드와 인프라의 재사용을 극대화하기 위해 TLS와 유사하게 설계된 DTLS(Datagram Transport Layer)가 제안되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;DTLS 1.0은 TLS 1.1을 기반으로 하며 DTLS 1.2는 TLS 1.2를 기반으로 합니다. DTLS 1.1은 없습니다. 버전 번호를 건너뛰어 TLS와 버전 번호를 조화시킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&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;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;DTLS 특징&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 손실에 민감한 메시징&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;TLS(TLS 레코드 계층이라고 함)의 트래픽 암호화 계층에서 손실 마취 메시지는 레코드와 독립적이지 않으며, 두 유형의 레코드 사이에는 의존성이 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;1. 암호화 컨텍스트(CBC state, stram cryptographic keystream)는 상기 레코드들 사이에 체인화됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;2. 반 재생 및 메시지 재주문 보호는 시퀀스 번호를 포함하는 MAC에 의해 제공되지만 시퀀스 번호는 레코드에 동봉됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;이 두 가지 문제에 대한 해결책은 IPsec ESPEasy이며 ESP에서 잘 알려져 있습니다. TLS 1.1은 이미 TLS 레코드에 명시적인 CBC 상태를 추가하였습니다. DTLS는 명시적 시퀀스 번호를 추가하기 위해 메커니즘을 빌립니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 핸드 셰이크에 대한 신뢰성 제공&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;TLS 핸드 셰이크는 잠금 단계 암호 셰이크 입니다. 메시지는 정의된 순서로 보내고 받아야 하며 다른 주문은 오류입니다. 분명히 이것은 메시지의 재주문 또는 손실과 호환될 수 없습니다. 또한 TLS 핸드 셰이크 메시지는 주어진 데이터 그램보다 잠재적으로 커 단편화 문제를 유발합니다. DTLS는 이 두 가지 문제에 대한 해결책을 제공합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 패킷 손실&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;DTLS는 패킷 손실을 처리하기 위해 간단한 재전송 타이머를 사용합니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;DTLS_데이터그램 전송 계층 보안_2.JPG&quot; data-origin-width=&quot;636&quot; data-origin-height=&quot;373&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b05n1L/btqL9rw9pnk/iZwPE20Skp5tKjFyXCVd21/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b05n1L/btqL9rw9pnk/iZwPE20Skp5tKjFyXCVd21/img.jpg&quot; data-alt=&quot;DTLS 패킷 손실 처리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b05n1L/btqL9rw9pnk/iZwPE20Skp5tKjFyXCVd21/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb05n1L%2FbtqL9rw9pnk%2FiZwPE20Skp5tKjFyXCVd21%2Fimg.jpg&quot; data-filename=&quot;DTLS_데이터그램 전송 계층 보안_2.JPG&quot; data-origin-width=&quot;636&quot; data-origin-height=&quot;373&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DTLS 패킷 손실 처리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;클라이언트가 Client Hello 메시지를 보내는 경우 Hello Verify Request가 나타날 것으로 예상합니다. 그러나 서버의 메시지가 손실되면 클라이언트는 Client Hello 또는 Client Verify Request가 분실되고 분개했다는 것을 알고 있습니다. 서버가 재전송을 수신하면 재전송할 것임을 알고 서버는 재전송 타이머를 유지하고 타이머가 만료되면 재전송합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 재주문&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;DTLS에서 각 핸드 셰이크 메시지는 핸드 셰이크 내에서 특정 시퀀스 번호를 할당받습니다. 피어가 핸드 셰이크 메시지를 수신하면 메시지가 다음 메시지인지 아닌지를 신속하게 결정할 수 있습니다. 그렇다면 해당 메시지가 처리됩니다. 그렇지 않은 경우 이전 메시지가 모두 수신되면 이후 처리를 위해 대기열에 배치합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 메시지 크기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;TLS와 DTLS에 대한 핸드 셰이크 메시지는 상당히 클 수 있습니다.(이론적으로 최대 2^24-1바이트, 실제로는 많은 킬로바이트) 이와는 대조적으로, 단편화가 바람직하지 않으면 UDP 데이터그램은 종종 1500바이트로 제한됩니다. 이러한 한계를 보완하기 위해 DTLS 핸드셰이크 메시지는 여러 개의 DTLS 레코드에 대해 단편화될 수 있으며, 각 DTLS 핸드셰이크 메시지는 짧은 오프셋과 짧은 길이를 모두 포함하고 있습니다. 따라서, 핸드셰이크 메시지의 모든 바이트를 소유한 수신자는 원래의 조각되지 않은 메시지를 재조립할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 재생 검출&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;DTLS는 레코드 재생 탐지를 선택적으로 지원합니다. 사용된 기술은 수신된 레코드의 비트맵 윈도를 유지함으로써 IPsec AH / ESP와 같습니다. 너무 오래되어 창에 맞지 않는 레코드와 이전 레코드는 조용히 폐기됩니다. 패킷 복제는 반드시 악의적인 것은 아니지만, 라우팅 오류로 인해 재생 탐지가 선택 사항입니다. 응용 프로그램은 중복된 패킷을 탐지하고 데이터 전송 전략을 변경할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <category>DTLS</category>
      <category>TLS</category>
      <category>데이터그램</category>
      <category>데이터그램 전송 계층 보안</category>
      <category>보안</category>
      <author>유아마루</author>
      <guid isPermaLink="true">https://urmaru.tistory.com/5</guid>
      <comments>https://urmaru.tistory.com/5#entry5comment</comments>
      <pubDate>Fri, 30 Oct 2020 12:43:25 +0900</pubDate>
    </item>
    <item>
      <title>보안 소켓 계층 SSL / 전송 계층 보안 TLS 개념 이해</title>
      <link>https://urmaru.tistory.com/1</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;SSL(Secure Socket Layer)/TLS(Transport Layer Security)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SSL/TLS는 인터넷망에서 안전한 통신을 위해 개발된 보안 프로토콜로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안 서비스(기밀성, 무결성, 인증)를 제공합니다. (IETF에서 SSL 3.1을 TLS 1.0으로 표준화)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TLS 레코드 프로토콜, TLS 핸드 셰이크 프로토콜로 구성되며&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;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt; SSL&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;보안 소켓 계층(SSL, Secure Socket Layer)이라고 하며 네트워크상에 존재하는 어떤 위협들로부터 데이터를 보호하는 프로토콜입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;SSL은 Netscape에서 WWW(World Wide Web)를 이용하여 안전한 통신을 보장하기 위해 개발하였으며, TCP/IP계층 상위에서 동작합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;SSL을 사용하여 클라이언트와 서버 간의 데이터를 암호화하거나 인증함으로써 중요 데이터를 보호하는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;웹 브라우저에서 URL이 &lt;u&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;https://&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;로 시작하는 경우 자물쇠 표시가 있을 텐데 이것이 SSL 통신이 암호화되어 데이터가 보호되고 있음을 나타내는 것입니다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;208&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0J7Pe/btqLDO2rcV7/eGjXHJiUX4xSWfeDf3ail0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0J7Pe/btqLDO2rcV7/eGjXHJiUX4xSWfeDf3ail0/img.png&quot; data-alt=&quot;&amp;amp;amp;lt; SSL 여부를 알 수 있는 웹 브라우저의 자물쇠 표시 &amp;amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0J7Pe/btqLDO2rcV7/eGjXHJiUX4xSWfeDf3ail0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0J7Pe%2FbtqLDO2rcV7%2FeGjXHJiUX4xSWfeDf3ail0%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;208&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt; SSL 여부를 알 수 있는 웹 브라우저의 자물쇠 표시 &amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;TLS&lt;/h4&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;전송 계층 보안(Transport Layer Security)이라고 하며 SSL이 일반적으로 사용되면서 이를 표준화할 필요가 있었고 SSL 3.0을 기준으로 IETF(Internet Engineering Task Force)의 Transport Area에서 표준화(1996년)한 보안 프로토콜입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;- SSL 3.1이 TLS 1.0으로 표준화&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #9d9d9d;&quot;&gt; &amp;nbsp;&lt;/span&gt; &lt;b&gt;그렇다면 SSL/TLS 프로토콜의 구조와 목적은 무엇일까요?&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 160px;&quot; border=&quot;1&quot; data-ke-style=&quot;style12&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 100px;&quot;&gt;
&lt;td style=&quot;width: 21.783%; text-align: center; height: 100px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;TLS 핸드 셰이크 &lt;br /&gt;프로토콜 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(TLS Handshake Protocol)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25.8526%; text-align: center; height: 100px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;TLS 암호 규격 &lt;br /&gt;프로토콜 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(TLS Change Clipher Spec Protocol)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 21.7831%; text-align: center; height: 100px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;TLS 경보 &lt;br /&gt;프로토콜&lt;br /&gt;(TLS Alert Protocol)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 10.6202%; text-align: center; height: 100px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Ftp&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 11.5504%; text-align: center; height: 100px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Telnet&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 8.41094%; text-align: center; height: 100px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTTP&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 100%; text-align: center; height: 20px;&quot; colspan=&quot;6&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;TLS 기록 프로토콜 (TLS Record Protocol)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 100%; text-align: center; height: 20px;&quot; colspan=&quot;6&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;TLP&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 100%; text-align: center; height: 20px;&quot; colspan=&quot;6&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;IP&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&amp;lt;TLS 프로토콜 스택&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- TLS Handshake Protocol&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;보안 인수 결정, 인증, 서술, 에러 조건 보고를 위한 세 가지 하위 프로토콜로 구성&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서버-클라이언트 간 데이터 전송 전 인증할 수 있도록 사용할 암호 알고리즘을 결정하고 키 분배 작업을 수행&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- TLS Record Protocol&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;상위계층 데이터 캡슐화를 위해 암호화 및 복호화, 검증, 압축 및 해제, 패킷의 분할 및 재결합 담당&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;TCP에 위치하며 데이터에 대한 기밀성과 무결성 인증의 보안 서비스를 제공&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;핸드 셰이크 과정 중 블록 암호 알고리즘이 결정되고 비밀키를 이용해 송수신되는 자료의 암호화 및 복호화를 수행&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;▶ TLS 프로토콜의 구현 목적&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1. 효율성 (efficiency) : 세션 캐싱(chaching) 기능 제공&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2. 확장성 (extensibility) : 구성 방식이 모듈화 되어 새로운 보안 알고리즘 추가 가능&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3. 호환성 (interoperability) : 표준 인터페이스 제공으로 인한 쉬운 암호화 통신 구현 가능, 서로 다른 OS 버전 간 통신 가능&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;4. 보안서비스 (security) : 서버-클라이언트 교환 데이터에 기밀성, 무결성, 사용자 인증 제공&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;center&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: block; text-align: center;&quot; data-ad-layout=&quot;in-article&quot; data-ad-format=&quot;fluid&quot; data-ad-client=&quot;ca-pub-5069872430611367&quot; data-ad-slot=&quot;2192944453&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/center&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;SSL/TLS Handshake protocol 과정&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;SSL TLS handshake protocol.JPG&quot; data-origin-width=&quot;516&quot; data-origin-height=&quot;473&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nWQPg/btqLGYhZAdq/yJ5gcGuDclsftKqB6tAfR0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nWQPg/btqLGYhZAdq/yJ5gcGuDclsftKqB6tAfR0/img.jpg&quot; data-alt=&quot;&amp;amp;amp;lt;SSL/TLS Handshake 상호인증 세션 형성 절차&amp;amp;amp;gt;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nWQPg/btqLGYhZAdq/yJ5gcGuDclsftKqB6tAfR0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnWQPg%2FbtqLGYhZAdq%2FyJ5gcGuDclsftKqB6tAfR0%2Fimg.jpg&quot; data-filename=&quot;SSL TLS handshake protocol.JPG&quot; data-origin-width=&quot;516&quot; data-origin-height=&quot;473&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;&amp;lt;SSL/TLS Handshake 상호인증 세션 형성 절차&amp;gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 세션키 교환(1~5)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서버에서 서버 인증서와 공개키를 클라이언트로 발송&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;클라이언트는 인증서를 검증 후 데이터 통신 시 암호화를 위해 암호화용 세션 키를 생성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;생성된 세션키를 서버 공개키로 암호화하여 암호화된 세션 키를 서버로 전송&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;서버는 사설키를 이용하여 세션 키 복호화&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;- 데이터 암호화 교환(6~7)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;세션 키를 이용해 전송할 데이터 암호화, 전송받은 암호 데이터 복호화&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT</category>
      <category>It</category>
      <category>SSL</category>
      <category>TLS</category>
      <category>네트워크</category>
      <category>보안</category>
      <category>인터넷보안</category>
      <category>정보보안</category>
      <author>유아마루</author>
      <guid isPermaLink="true">https://urmaru.tistory.com/1</guid>
      <comments>https://urmaru.tistory.com/1#entry1comment</comments>
      <pubDate>Sat, 24 Oct 2020 21:51:43 +0900</pubDate>
    </item>
  </channel>
</rss>