<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>HEROJOON 블로그(히로블)</title>
    <link>https://herojoon-dev.tistory.com/</link>
    <description>궁금한거 있을때마다 공부하는 곳</description>
    <language>ko</language>
    <pubDate>Tue, 14 Apr 2026 15:58:06 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>herojoon</managingEditor>
    <item>
      <title>Windows 11에 Docker Desktop 설치하기_2024.11</title>
      <link>https://herojoon-dev.tistory.com/254</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;Windows 11에 Docker Desktop 설치하기&lt;/li&gt;&lt;li&gt;Docker 사용해보기&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;오랜만에 Docker설치하려고 하니 Docker 설치 UI가 바뀌어 2024.11.05 기준 다시 정리해보았습니다.&lt;br&gt;이번 정리에는 Docker 이미지 사용 예제도 함께 추가했습니다.&lt;br&gt;이전 Docker 설치 포스팅은 아래와 같습니다.&lt;br&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/120?category=964211&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://herojoon-dev.tistory.com/120?category=964211&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;windows 11에 docker 설치하기 (wsl2 이슈 해결)&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;0.요약 저의 설치 환경: Windows 11 1) windows에 docker를 설치합니다. 2) windows10, 11에서 docker를 사용하려면 wsl2로 업데이트가 필요하고, ubuntu를 설치해야 한대서 함께 설치합니다. 3) windows에 설치한 docke&quot; data-og-host=&quot;herojoon-dev.tistory.com&quot; data-og-source-url=&quot;https://herojoon-dev.tistory.com/120?category=964211&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fFDkV/hyXwi8zUiB/2nEW2tCBlkg7rDBLIDKjLK/img.png?width=800&amp;amp;height=582&amp;amp;face=0_0_800_582,https://scrap.kakaocdn.net/dn/Ck9Ca/hyXwvUnB1C/kDznQD6KHmOCREtqe41OB0/img.png?width=800&amp;amp;height=582&amp;amp;face=0_0_800_582,https://scrap.kakaocdn.net/dn/btYEQT/hyXwonpY0V/956bEsQIzynUK9IvUKtHtk/img.png?width=1456&amp;amp;height=849&amp;amp;face=0_0_1456_849&quot; data-og-url=&quot;https://herojoon-dev.tistory.com/120&quot;&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/120&quot; target=&quot;_blank&quot; data-source-url=&quot;https://herojoon-dev.tistory.com/120?category=964211&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fFDkV/hyXwi8zUiB/2nEW2tCBlkg7rDBLIDKjLK/img.png?width=800&amp;amp;height=582&amp;amp;face=0_0_800_582,https://scrap.kakaocdn.net/dn/Ck9Ca/hyXwvUnB1C/kDznQD6KHmOCREtqe41OB0/img.png?width=800&amp;amp;height=582&amp;amp;face=0_0_800_582,https://scrap.kakaocdn.net/dn/btYEQT/hyXwonpY0V/956bEsQIzynUK9IvUKtHtk/img.png?width=1456&amp;amp;height=849&amp;amp;face=0_0_1456_849')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;windows 11에 docker 설치하기 (wsl2 이슈 해결)&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;0.요약 저의 설치 환경: Windows 11 1) windows에 docker를 설치합니다. 2) windows10, 11에서 docker를 사용하려면 wsl2로 업데이트가 필요하고, ubuntu를 설치해야 한대서 함께 설치합니다. 3) windows에 설치한 docke&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;herojoon-dev.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Windows 11에 Docker Desktop 설치하기&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1-1. Windows용 Docker Desktop 설치 파일을 다운로드&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Desktop 설치 URL: &lt;a href=&quot;https://docs.docker.com/get-started/get-docker/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://docs.docker.com/get-started/get-docker/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Get Docker&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Download and install Docker on the platform of your choice, including Mac, Linux, or Windows.&quot; data-og-host=&quot;docs.docker.com&quot; data-og-source-url=&quot;https://docs.docker.com/get-started/get-docker/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bxB3po/hyXwk6mfVy/80hyyBE8p1MRV0brgqclZk/img.jpg?width=2400&amp;amp;height=1260&amp;amp;face=0_0_2400_1260&quot; data-og-url=&quot;https://docs.docker.com/get-started/get-docker/&quot;&gt;&lt;a href=&quot;https://docs.docker.com/get-started/get-docker/&quot; target=&quot;_blank&quot; data-source-url=&quot;https://docs.docker.com/get-started/get-docker/&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bxB3po/hyXwk6mfVy/80hyyBE8p1MRV0brgqclZk/img.jpg?width=2400&amp;amp;height=1260&amp;amp;face=0_0_2400_1260')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Get Docker&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;Download and install Docker on the platform of your choice, including Mac, Linux, or Windows.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;docs.docker.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1817&quot; data-origin-height=&quot;1279&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oPC8S/btsKygdIBzO/iukHKAhyjVVesYTQkQkql1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oPC8S/btsKygdIBzO/iukHKAhyjVVesYTQkQkql1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oPC8S/btsKygdIBzO/iukHKAhyjVVesYTQkQkql1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoPC8S%2FbtsKygdIBzO%2FiukHKAhyjVVesYTQkQkql1%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;1817&quot; height=&quot;1279&quot; data-origin-width=&quot;1817&quot; data-origin-height=&quot;1279&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Beta 버전이 있긴하지만 안정성 있게 [Docker Desktop for Windows - x86_64]를 다운로드 받겠습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1460&quot; data-origin-height=&quot;982&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oI35G/btsKzdUN6ig/VAEkxbNJkDqVFepi3kxgb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oI35G/btsKzdUN6ig/VAEkxbNJkDqVFepi3kxgb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oI35G/btsKzdUN6ig/VAEkxbNJkDqVFepi3kxgb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoI35G%2FbtsKzdUN6ig%2FVAEkxbNJkDqVFepi3kxgb1%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;1460&quot; height=&quot;982&quot; data-origin-width=&quot;1460&quot; data-origin-height=&quot;982&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1-2. Docker Desktop 설치하기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드 받은 설치파일을 더블클릭하여 설치 진행해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;178&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmEfPa/btsKyqAEnac/s0oyRSkjL1q1KCvKVKUqK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmEfPa/btsKyqAEnac/s0oyRSkjL1q1KCvKVKUqK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmEfPa/btsKyqAEnac/s0oyRSkjL1q1KCvKVKUqK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmEfPa%2FbtsKyqAEnac%2Fs0oyRSkjL1q1KCvKVKUqK0%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;151&quot; height=&quot;187&quot; data-origin-width=&quot;178&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1050&quot; data-origin-height=&quot;724&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/67SbC/btsKzAaTUgp/2jTeq7K5NElmaScyS5aKL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/67SbC/btsKzAaTUgp/2jTeq7K5NElmaScyS5aKL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/67SbC/btsKzAaTUgp/2jTeq7K5NElmaScyS5aKL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F67SbC%2FbtsKzAaTUgp%2F2jTeq7K5NElmaScyS5aKL1%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;666&quot; height=&quot;459&quot; data-origin-width=&quot;1050&quot; data-origin-height=&quot;724&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1051&quot; data-origin-height=&quot;724&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRtPSZ/btsKzcIlPHH/7YkS3Fktn8CBHsKny5HskK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRtPSZ/btsKzcIlPHH/7YkS3Fktn8CBHsKny5HskK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRtPSZ/btsKzcIlPHH/7YkS3Fktn8CBHsKny5HskK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRtPSZ%2FbtsKzcIlPHH%2F7YkS3Fktn8CBHsKny5HskK%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;663&quot; height=&quot;457&quot; data-origin-width=&quot;1051&quot; data-origin-height=&quot;724&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;[Add shortcut to desktop]을 체크한 후 [OK]를 클릭합니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;727&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9qrfl/btsKzUGNshL/hCwKFlMkVXAn9QLmBEVqmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9qrfl/btsKzUGNshL/hCwKFlMkVXAn9QLmBEVqmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9qrfl/btsKzUGNshL/hCwKFlMkVXAn9QLmBEVqmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9qrfl%2FbtsKzUGNshL%2FhCwKFlMkVXAn9QLmBEVqmK%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;658&quot; height=&quot;453&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;727&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;[Close ans restart]를 클릭하여 컴퓨터를 재부팅해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1048&quot; data-origin-height=&quot;723&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgEkaY/btsKyGpCjII/DLuwC48yQKjv2SmchosbKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgEkaY/btsKyGpCjII/DLuwC48yQKjv2SmchosbKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgEkaY/btsKyGpCjII/DLuwC48yQKjv2SmchosbKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgEkaY%2FbtsKyGpCjII%2FDLuwC48yQKjv2SmchosbKk%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;1048&quot; height=&quot;723&quot; data-origin-width=&quot;1048&quot; data-origin-height=&quot;723&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;[Add shortcut to desktop]을 체크했기 때문에 Docker Desktop 설치 환료 후 바탕화면에 아이콘이 생성됩니다.&lt;br&gt;아이콘을 더블클릭 해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;143&quot; data-origin-height=&quot;160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFXrmd/btsKzr6a2P4/8fBVe5YizPCullEkf6Mon1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFXrmd/btsKzr6a2P4/8fBVe5YizPCullEkf6Mon1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFXrmd/btsKzr6a2P4/8fBVe5YizPCullEkf6Mon1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFXrmd%2FbtsKzr6a2P4%2F8fBVe5YizPCullEkf6Mon1%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;132&quot; height=&quot;148&quot; data-origin-width=&quot;143&quot; data-origin-height=&quot;160&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Docker 약관에 대한 내용입니다. [Accept]를 클릭해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;739&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7ApNP/btsKxqnqxQS/bJRiWJaEdskr4hsIJ29J01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7ApNP/btsKxqnqxQS/bJRiWJaEdskr4hsIJ29J01/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7ApNP/btsKxqnqxQS/bJRiWJaEdskr4hsIJ29J01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7ApNP%2FbtsKxqnqxQS%2FbJRiWJaEdskr4hsIJ29J01%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;715&quot; height=&quot;445&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;739&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;자동 셋팅된 설치를 하기 위해 [Use recommended settings]를 선택 후 [Finish] 클릭해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;877&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/deYwlM/btsKyobMJ8H/xDf1yca7NaNEeIXXvHB06k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/deYwlM/btsKyobMJ8H/xDf1yca7NaNEeIXXvHB06k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/deYwlM/btsKyobMJ8H/xDf1yca7NaNEeIXXvHB06k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdeYwlM%2FbtsKyobMJ8H%2FxDf1yca7NaNEeIXXvHB06k%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;723&quot; height=&quot;658&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;877&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;현재 당장 중요하지 않는 내용이므로 [Skip] 해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1891&quot; data-origin-height=&quot;1069&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IVLii/btsKzMhPHXc/FkftQWTzYRwIkMwKwHPgL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IVLii/btsKzMhPHXc/FkftQWTzYRwIkMwKwHPgL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IVLii/btsKzMhPHXc/FkftQWTzYRwIkMwKwHPgL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIVLii%2FbtsKzMhPHXc%2FFkftQWTzYRwIkMwKwHPgL0%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;717&quot; height=&quot;405&quot; data-origin-width=&quot;1891&quot; data-origin-height=&quot;1069&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;현재 당장 중요하지 않는 내용이므로 [Skip] 해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1893&quot; data-origin-height=&quot;1068&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SAEGL/btsKxV8HJC3/h1Cd07Px577iKgkRSp6mC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SAEGL/btsKxV8HJC3/h1Cd07Px577iKgkRSp6mC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SAEGL/btsKxV8HJC3/h1Cd07Px577iKgkRSp6mC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSAEGL%2FbtsKxV8HJC3%2Fh1Cd07Px577iKgkRSp6mC0%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;723&quot; height=&quot;408&quot; data-origin-width=&quot;1893&quot; data-origin-height=&quot;1068&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;현재 당장 중요하지 않는 내용이므로 [Skip] 해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1896&quot; data-origin-height=&quot;1069&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1Br3p/btsKyfliLOX/Fxt1EDT2fJNQdFbL37rFdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1Br3p/btsKyfliLOX/Fxt1EDT2fJNQdFbL37rFdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1Br3p/btsKyfliLOX/Fxt1EDT2fJNQdFbL37rFdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1Br3p%2FbtsKyfliLOX%2FFxt1EDT2fJNQdFbL37rFdk%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;1896&quot; height=&quot;1069&quot; data-origin-width=&quot;1896&quot; data-origin-height=&quot;1069&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Docker Desktop이 실행됩니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1898&quot; data-origin-height=&quot;1069&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYRcOv/btsKzeGbc8s/LJJppRsOxYKAk8w1giG3Fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYRcOv/btsKzeGbc8s/LJJppRsOxYKAk8w1giG3Fk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYRcOv/btsKzeGbc8s/LJJppRsOxYKAk8w1giG3Fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYRcOv%2FbtsKzeGbc8s%2FLJJppRsOxYKAk8w1giG3Fk%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;743&quot; height=&quot;418&quot; data-origin-width=&quot;1898&quot; data-origin-height=&quot;1069&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Docker Desktop 설치가 정상적으로 완료되었습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1895&quot; data-origin-height=&quot;1072&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c4fCSF/btsKyIuflzz/9tm16WuTT1WDxmoSuH1se0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c4fCSF/btsKyIuflzz/9tm16WuTT1WDxmoSuH1se0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c4fCSF/btsKyIuflzz/9tm16WuTT1WDxmoSuH1se0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4fCSF%2FbtsKyIuflzz%2F9tm16WuTT1WDxmoSuH1se0%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;756&quot; height=&quot;428&quot; data-origin-width=&quot;1895&quot; data-origin-height=&quot;1072&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1-3. Docker Command 설치여부 확인&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Desktop을 설치하면 Docker Command 명령어도 사용할 수 있습니다.&lt;br&gt;Docker Command 명령어 사용이 가능한지 여부를 확인하기 위해&lt;br&gt;Windows 검색창에 cmd 입력하여 명령 프롬프트 창을 열어줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;60&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bamiTR/btsKzUfJnnF/bmLpNVm4raMYg08B7mIJ51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bamiTR/btsKzUfJnnF/bmLpNVm4raMYg08B7mIJ51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bamiTR/btsKzUfJnnF/bmLpNVm4raMYg08B7mIJ51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbamiTR%2FbtsKzUfJnnF%2FbmLpNVm4raMYg08B7mIJ51%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;299&quot; height=&quot;52&quot; data-origin-width=&quot;345&quot; data-origin-height=&quot;60&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;197&quot; data-origin-height=&quot;83&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8KGB0/btsKzcBFNUu/AiIwfYMkUMQbbk8nrf8HDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8KGB0/btsKzcBFNUu/AiIwfYMkUMQbbk8nrf8HDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8KGB0/btsKzcBFNUu/AiIwfYMkUMQbbk8nrf8HDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8KGB0%2FbtsKzcBFNUu%2FAiIwfYMkUMQbbk8nrf8HDk%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;197&quot; height=&quot;83&quot; data-origin-width=&quot;197&quot; data-origin-height=&quot;83&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;명령 프롬프트 창을 열어서 docker를 입력해줍니다.&lt;br&gt;아래 Docker 명령어에 대한 가이드가 출력되면 Docker가 정상 설치 된 것이며&lt;br&gt;Docker Command 명령어가 사용 가능한 상태라는 것입니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1097&quot; data-origin-height=&quot;1128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNS4pB/btsKyJNpHDz/aNQvNEcyWKi35OVfVqH0x1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNS4pB/btsKyJNpHDz/aNQvNEcyWKi35OVfVqH0x1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNS4pB/btsKyJNpHDz/aNQvNEcyWKi35OVfVqH0x1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNS4pB%2FbtsKyJNpHDz%2FaNQvNEcyWKi35OVfVqH0x1%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;707&quot; height=&quot;727&quot; data-origin-width=&quot;1097&quot; data-origin-height=&quot;1128&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Docker Desktop 설치 완료.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. Docker 사용해보기&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Hub에서 Docker 이미지를 다운로드 받아 Container 실행하는 예제를 해보겠습니다.&lt;br&gt;- Docker Hub URL: &lt;a href=&quot;https://hub.docker.com/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://hub.docker.com/&lt;/span&gt;&lt;/a&gt;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;Docker Hub(도커 허브)&lt;/b&gt;: Docker 이미지 저장소&lt;/li&gt;&lt;li&gt;&lt;b&gt;Docker Image(도커 이미지)&lt;/b&gt;: 애플리케이션 실행에 필요한 모든 것(애플리케이션 구성 파일, 라이브러리, 설정 정보 등)을 포함한 소프트웨어 패키지입니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Docker Container(도커 컨테이너)&lt;/b&gt;: Docker 이미지를 기반으로 실행되는 독립적인 애플리케이션 환경입니다.&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2-1. Docker Desktop에서 Terminal 기능 활성화 하기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Desktop에서 Terminal 기능을 제공해주는데 꼭 이걸 쓰지 않더라도 cmd를 이용해 명령 프롬프트창을 사용하셔도 됩니다. 여기서는 Docker Desktop에서 제공하는 기능이니까 한번 써보겠습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1893&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TyKTd/btsKAfxaY4Q/EPnLDV2f2Nuhb4nxknXyRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TyKTd/btsKAfxaY4Q/EPnLDV2f2Nuhb4nxknXyRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TyKTd/btsKAfxaY4Q/EPnLDV2f2Nuhb4nxknXyRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTyKTd%2FbtsKAfxaY4Q%2FEPnLDV2f2Nuhb4nxknXyRk%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;1893&quot; height=&quot;1080&quot; data-origin-width=&quot;1893&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;원하는 명령어 인터페이스를 선택해 사용할 수 있습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1663&quot; data-origin-height=&quot;1079&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nQwiN/btsKyjuG9gi/z0KoNfGrzvKYv9kXNwUIoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nQwiN/btsKyjuG9gi/z0KoNfGrzvKYv9kXNwUIoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nQwiN/btsKyjuG9gi/z0KoNfGrzvKYv9kXNwUIoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnQwiN%2FbtsKyjuG9gi%2Fz0KoNfGrzvKYv9kXNwUIoK%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;1663&quot; height=&quot;1079&quot; data-origin-width=&quot;1663&quot; data-origin-height=&quot;1079&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2-2. Docker 이미지를 다운로드 받아 Container 실행해보기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;저는 Docker Hub에서 Tomcat 이미지를 다운로드 받아 Container로 띄우는 예제를 진행해보겠습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-2-1. Docker Hub에서 Tomcat 이미지를 다운로드&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1756&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tgWNF/btsKyZI33GT/j8EsqU5EmJRQkiNHTqofj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tgWNF/btsKyZI33GT/j8EsqU5EmJRQkiNHTqofj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tgWNF/btsKyZI33GT/j8EsqU5EmJRQkiNHTqofj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtgWNF%2FbtsKyZI33GT%2Fj8EsqU5EmJRQkiNHTqofj0%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;1756&quot; height=&quot;680&quot; data-origin-width=&quot;1756&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1615&quot; data-origin-height=&quot;726&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nINYp/btsKzIT7Sas/JqaztcjeQEcHT7GwJs5OFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nINYp/btsKzIT7Sas/JqaztcjeQEcHT7GwJs5OFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nINYp/btsKzIT7Sas/JqaztcjeQEcHT7GwJs5OFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnINYp%2FbtsKzIT7Sas%2FJqaztcjeQEcHT7GwJs5OFk%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;1615&quot; height=&quot;726&quot; data-origin-width=&quot;1615&quot; data-origin-height=&quot;726&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OeDOB/btsKyIA1llh/WEGyVdHcX9BXbhHPDHGej0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OeDOB/btsKyIA1llh/WEGyVdHcX9BXbhHPDHGej0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OeDOB/btsKyIA1llh/WEGyVdHcX9BXbhHPDHGej0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOeDOB%2FbtsKyIA1llh%2FWEGyVdHcX9BXbhHPDHGej0%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;1368&quot; height=&quot;218&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;377&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPQcpQ/btsKziVj2Yc/Fbj0M2agp3OCwFSyssWGqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPQcpQ/btsKziVj2Yc/Fbj0M2agp3OCwFSyssWGqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPQcpQ/btsKziVj2Yc/Fbj0M2agp3OCwFSyssWGqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPQcpQ%2FbtsKziVj2Yc%2FFbj0M2agp3OCwFSyssWGqk%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;1368&quot; height=&quot;377&quot; data-origin-width=&quot;1368&quot; data-origin-height=&quot;377&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;806&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8xKYk/btsKysSF0Hp/TvRiYpeepCw0AtZn6OTcIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8xKYk/btsKysSF0Hp/TvRiYpeepCw0AtZn6OTcIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8xKYk/btsKysSF0Hp/TvRiYpeepCw0AtZn6OTcIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8xKYk%2FbtsKysSF0Hp%2FTvRiYpeepCw0AtZn6OTcIk%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;1744&quot; height=&quot;806&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;806&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;2-2-2. Tomcat 이미지 실행&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;806&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbrIbC/btsKykUEkXb/YRX8xQSi9o9RcuKmY1aRS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbrIbC/btsKykUEkXb/YRX8xQSi9o9RcuKmY1aRS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbrIbC/btsKykUEkXb/YRX8xQSi9o9RcuKmY1aRS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbrIbC%2FbtsKykUEkXb%2FYRX8xQSi9o9RcuKmY1aRS0%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;1744&quot; height=&quot;806&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;806&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;940&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cX0ALi/btsKyC1HWh0/cod1mTERtjpnsuangSKZC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cX0ALi/btsKyC1HWh0/cod1mTERtjpnsuangSKZC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cX0ALi/btsKyC1HWh0/cod1mTERtjpnsuangSKZC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcX0ALi%2FbtsKyC1HWh0%2Fcod1mTERtjpnsuangSKZC1%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;519&quot; height=&quot;599&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;940&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgbPa7/btsKzkMU39X/LnthYUupcyNvFKVcSKHKy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgbPa7/btsKzkMU39X/LnthYUupcyNvFKVcSKHKy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgbPa7/btsKzkMU39X/LnthYUupcyNvFKVcSKHKy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgbPa7%2FbtsKzkMU39X%2FLnthYUupcyNvFKVcSKHKy1%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;1744&quot; height=&quot;1032&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-2-3. Tomcat 예제 페이지 위치 이동 및 Container Restart&lt;/b&gt;&lt;br&gt;&lt;b&gt;&amp;lt;Tomcat이란?&amp;gt;&lt;/b&gt;&lt;br&gt;Tomcat은 아파치 소프트웨어 재단에서 개발한 동적 웹을 구동할 수 있도록 해주는 웹 서버 &amp;amp; 서블릿 컨테이너입니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;&amp;lt;지금 해야 할 것&amp;gt;&lt;/b&gt;&lt;br&gt;Tomcat은 기본적으로 웹페이지가 정상적으로 띄워졌는지 알 수 있도록 예제 웹 리소스를 제공해주는데&lt;br&gt;해당 예제 웹 리소스의 위치는 tomcat/webapp/ 위치에 존재합니다.&lt;br&gt;Docker의 Tomcat이미지는 tomcat/webapp/ 위치에 데이터가 존재하지 않고 tomcat/webapp.dist/에 예제 웹 리소스가 들어있습니다.&lt;br&gt;그렇기 때문에 tomcat/webapp.dist/의 예제 웹 리소스를 tomcat/webapp/ 위치로 복사하여 넣어주어야 합니다.&lt;br&gt;Tomcat은 웹 리소스의 기본 위치가 tomcat/webapp/이기 때문입니다.&lt;br&gt;복사하여 넣어준 후 Tomcat Container를 Restart(재구동) 해주면 반영됩니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;[Containers] - [tomcat 이미지] - [Exec]에 복사 명령어를 실행해줍니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;// Tomcat 이미지에서는 위치가 아래와 같습니다.
cp -R /usr/local/tomcat/webapps.dist/** /usr/local/tomcat/webapps/&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1742&quot; data-origin-height=&quot;525&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bT5bFF/btsKzyKUGdZ/tQ6U4Mb5aGyhEX2LKzAVDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bT5bFF/btsKzyKUGdZ/tQ6U4Mb5aGyhEX2LKzAVDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bT5bFF/btsKzyKUGdZ/tQ6U4Mb5aGyhEX2LKzAVDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbT5bFF%2FbtsKzyKUGdZ%2FtQ6U4Mb5aGyhEX2LKzAVDk%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;1742&quot; height=&quot;525&quot; data-origin-width=&quot;1742&quot; data-origin-height=&quot;525&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;[Containers] - [tomcat 이미지] - [Files]를 보시면 wepapps.dist/의 리소스가 webapps/로 잘 복사되었습니다.&lt;br&gt;restart 아이콘 버튼을 클릭하여 Tomcat Container를 재구동해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1209&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nsV0M/btsKyJUcAoK/fN5Ndg8ZEytMzQhVV1c640/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nsV0M/btsKyJUcAoK/fN5Ndg8ZEytMzQhVV1c640/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nsV0M/btsKyJUcAoK/fN5Ndg8ZEytMzQhVV1c640/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnsV0M%2FbtsKyJUcAoK%2FfN5Ndg8ZEytMzQhVV1c640%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;1744&quot; height=&quot;1209&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1209&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-2-4. Tomcat Container가 정상적으로 띄워졌는지 Tomcat 예제 페이지 호출해보기&lt;/b&gt;&lt;br&gt;브라우저에 http://localhost:8080를 입력하여 Tomcat 기본화면에 접속해줍니다.&lt;br&gt;화면에 webapps/에 있는 리소스 정보가 잘 노출된 것을 확인할 수 있습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1980&quot; data-origin-height=&quot;1160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmQ07u/btsKzGotzDa/2yvvVjNVCf4n55pCxhW7I1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmQ07u/btsKzGotzDa/2yvvVjNVCf4n55pCxhW7I1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmQ07u/btsKzGotzDa/2yvvVjNVCf4n55pCxhW7I1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmQ07u%2FbtsKzGotzDa%2F2yvvVjNVCf4n55pCxhW7I1%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;1980&quot; height=&quot;1160&quot; data-origin-width=&quot;1980&quot; data-origin-height=&quot;1160&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;Docker를 이용하여 이미지를 받고, 이미지로 Container를 띄우는 예제까지 완료하였습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;감사합니다.&lt;/p&gt;</description>
      <category>Docker</category>
      <category>docker container 띄우기</category>
      <category>docker desktop 사용해보기</category>
      <category>Docker Desktop 설치</category>
      <category>docker image란</category>
      <category>docker tomcat 실행</category>
      <category>docker 사용해보기</category>
      <category>docker 이미지 예제</category>
      <category>windows11 docker desktop 설치</category>
      <category>windows11 docker 설치</category>
      <category>도커 사용 예제</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/254</guid>
      <comments>https://herojoon-dev.tistory.com/254#entry254comment</comments>
      <pubDate>Tue, 5 Nov 2024 21:30:22 +0900</pubDate>
    </item>
    <item>
      <title>요약을 간편하게 해주는 LilysAI 사용해보기</title>
      <link>https://herojoon-dev.tistory.com/251</link>
      <description>&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;목표&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;LilysAI를 이용하여 요약 기능 사용해보기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1359&quot; data-origin-height=&quot;693&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YpbdA/btsKyxSvIIO/IZP7BSCVdwN81deYjvQkh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YpbdA/btsKyxSvIIO/IZP7BSCVdwN81deYjvQkh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YpbdA/btsKyxSvIIO/IZP7BSCVdwN81deYjvQkh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYpbdA%2FbtsKyxSvIIO%2FIZP7BSCVdwN81deYjvQkh0%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;831&quot; height=&quot;424&quot; data-origin-width=&quot;1359&quot; data-origin-height=&quot;693&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;LilysAI란&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt; &lt;b&gt;●&amp;nbsp;&lt;/b&gt; LilysAI란?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;LilysAI&lt;/b&gt;는&amp;nbsp;&lt;u&gt;&lt;b&gt;요약 기능을 간편하게 제공해주는 생산성 도구&lt;/b&gt;&lt;/u&gt;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. 요약 기능 제공&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;영상,&amp;nbsp;웹사이트,&amp;nbsp;PDF,&amp;nbsp;녹음,&amp;nbsp;텍스트&lt;/b&gt;&amp;nbsp;등 &lt;b&gt;다양한 종류의 요약 기능&lt;/b&gt;을 제공합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;검색&amp;nbsp;기능&lt;/b&gt;을 이용하여 &lt;b&gt;검색된 내용을 바로 요약&lt;/b&gt;할 수도 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2. 부가 기능 제공&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LilysAI는 &lt;b&gt;12개국 이상의 사용 언어를 지원&lt;/b&gt;하고 &lt;b&gt;요약 결과 완료 알림&lt;/b&gt;, &lt;b&gt;요약 내용에 스크린샷 포함 여부&lt;/b&gt;등의 부가적인 기능을 지원합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3. 결과물 공유 및 복사 기능 제공&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;무료&amp;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&gt;LilysAI는 결과물 화면 그대로 &lt;b&gt;링크를 생성하여 공유&lt;/b&gt;가 가능합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;복사 기능을 이용&lt;/b&gt;하여 생성한 내용을 다른 곳에 사용 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&amp;lt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;유료&lt;/span&gt;&amp;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&gt;내보내기 기능을 이용하여 &lt;b&gt;요약, 스크립트, 타임스탬프, 블로그 글&lt;/b&gt;&amp;nbsp;타입의 컨텐츠를 &lt;b&gt;PDF, DOCX, JSON, MARKDOWN&lt;/b&gt; 형식의 문서로 생성 가능합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt; ●&amp;nbsp; LilysAI 요금 정보&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Lilys AI는 회원가입 후&amp;nbsp;&lt;u&gt;&lt;b&gt;무료&lt;/b&gt;&lt;/u&gt;로 사용할 수 있으며&amp;nbsp;&lt;u&gt;&lt;b&gt;향상된 일부 기능은 결제 후 사용&lt;/b&gt;&lt;/u&gt;&amp;nbsp;가능합니다. (2024.10.31 기준)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- LilysAI 요금 정보: &lt;a href=&quot;https://lilys.ai/pricing&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://lilys.ai/pricing&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt; ●&amp;nbsp;제가 느낀 LilysAI의 장점입니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;요약 결과물을 다양한 형식으로 제공&lt;/b&gt;해주어&amp;nbsp;&lt;b&gt;시간을 아끼고 필요한 정보만 추출&lt;/b&gt;할 수 있어&amp;nbsp;&lt;b&gt;생산성 향상에 도움&lt;/b&gt;이 될 것 같습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;단순하면서&amp;nbsp;직관적인 UI를 제공&lt;/b&gt;해주고&amp;nbsp;&lt;b&gt;요약 결과물에 대해서도&amp;nbsp;시각적으로 파악하기 쉽도록 노출&lt;/b&gt;해준다는 점입니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저는 종종 유튜브 영상 요약을 위해 사용하려 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;허나&amp;nbsp;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;u&gt;&lt;b&gt;개인적인 중요 데이터나 사내 데이터의 경우 보안 규정을 확인 하시고 사용하시기 바랍니다.&lt;/b&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;LilysAI는 단기간 동안 많은 유저를 유입시킬만큼 성장성 있는 생산성 도구라 생각합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- LilysAI Docs: &lt;a href=&quot;https://slashpage.com/lilys&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://slashpage.com/lilys&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;앞으로도 다양한 기능을 보여주되 개인적인 바램은 지금처럼 복잡하지 않고 단순한 편의 UI/UX를 유지했으면 하는 바램입니다. 저는 이 부분이 꽤 맘에 들었거든요.  &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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;*지극히 개인적인 내용의 포스팅입니다. 수정 필요한 부분 있으면 언제든지 댓글 부탁드립니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;할 것 요약&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. LilysAI 회원가입 &amp;amp; 로그인&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2. 영상 요약해보기&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3. 웹사이트 요약해보기&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4. 검색기능 사용해보기&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;5. LilysAI 설정해보기&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;6. 결과물 공유 및 복사 사용하기&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;해보기&lt;/span&gt;&lt;/h2&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;1. &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;LilysAI&amp;nbsp;&lt;/span&gt; 회원가입 &amp;amp; 로그인&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- LilysAI 웹사이트 URL: &lt;a href=&quot;https://lilys.ai/&quot;&gt;https://lilys.ai/&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_blob&quot; data-origin-width=&quot;1719&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5RUTX/btsKuTb1p8A/GmUduyF9f0lJo1Cff8oU6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5RUTX/btsKuTb1p8A/GmUduyF9f0lJo1Cff8oU6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5RUTX/btsKuTb1p8A/GmUduyF9f0lJo1Cff8oU6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5RUTX%2FbtsKuTb1p8A%2FGmUduyF9f0lJo1Cff8oU6k%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;1719&quot; height=&quot;704&quot; data-filename=&quot;edited_edited_edited_blob&quot; data-origin-width=&quot;1719&quot; data-origin-height=&quot;704&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;834&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba6xTo/btsKwNVuEru/NXArIHOK7CKjEyqKIbUQ10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba6xTo/btsKwNVuEru/NXArIHOK7CKjEyqKIbUQ10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba6xTo/btsKwNVuEru/NXArIHOK7CKjEyqKIbUQ10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba6xTo%2FbtsKwNVuEru%2FNXArIHOK7CKjEyqKIbUQ10%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;425&quot; height=&quot;588&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;603&quot; data-origin-height=&quot;834&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #000000;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2. 영상 요약해보기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;요약할 유튜브 영상
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Zapier로 비즈니즈를 자동화 하는 법:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=j2apSjEdbC0&amp;amp;list=PL92i2pwHWQy8_cBGvPhyy0RK0PCY3jRTs&quot;&gt;https://www.youtube.com/watch?v=j2apSjEdbC0&amp;amp;list=PL92i2pwHWQy8_cBGvPhyy0RK0PCY3jRTs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2-1. 화면 중앙 [영상] 클릭 -&amp;gt; 유튜브 URL 입력 -&amp;gt; 화살표 버튼을 클릭하여 &lt;u&gt;영상 요약 시작&lt;/u&gt;합니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1115&quot; data-origin-height=&quot;435&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cj1Rt9/btsKvqUZioh/7nvmIoMZ1cfCI1VrCA1rNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cj1Rt9/btsKvqUZioh/7nvmIoMZ1cfCI1VrCA1rNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cj1Rt9/btsKvqUZioh/7nvmIoMZ1cfCI1VrCA1rNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcj1Rt9%2FbtsKvqUZioh%2F7nvmIoMZ1cfCI1VrCA1rNK%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;707&quot; height=&quot;276&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1115&quot; data-origin-height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2-2. LilysAI가 다양한 요약 결과물들을 생성해줍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Lilys AI의&amp;nbsp;다양한&amp;nbsp;요약&amp;nbsp;결과물들은&amp;nbsp;영상의&amp;nbsp;주요&amp;nbsp;정보에&amp;nbsp;빠르게&amp;nbsp;접근하도록&amp;nbsp;돕고,&amp;nbsp;각기&amp;nbsp;다른&amp;nbsp;형식으로&amp;nbsp;활용할&amp;nbsp;수&amp;nbsp;있는&amp;nbsp;옵션을&amp;nbsp;제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;요약 노트 (Summary Notes)&lt;/b&gt;: &lt;b&gt;영상의 주요 내용이 간략하게 정리된 노트&lt;/b&gt;입니다. LilysAI는 문맥을 반영해 주제별로 적절하게 나누어 요약해 주기 때문에, &lt;b&gt;내용을 빠르게 이해하고 중요한 부분을 빠짐없이 파악&lt;/b&gt;할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;스크립트 (Script)&lt;/b&gt;: &lt;b&gt;요약된 스크립트 형식&lt;/b&gt;으로, 영상의 전체 대사나 핵심 부분이 텍스트로 변환됩니다. 이 기능은 &lt;b&gt;원본 내용을 텍스트로 저장&lt;/b&gt;하고 &lt;b&gt;필요한 부분을 복기하거나 인용할 때 유용&lt;/b&gt;합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;타임스탬프 (Timestamp)&lt;/b&gt;: 요약된 &lt;b&gt;주요 내용에 각 타임스탬프를 추가&lt;/b&gt;해, &lt;b&gt;필요한 부분을 영상에서 바로 찾아 볼 수 있도록 도와줍니다&lt;/b&gt;. &lt;b&gt;특정 주제나 발언 부분을 빠르게 찾을 때 유용&lt;/b&gt;합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;블로그 글 (Blog Post)&lt;/b&gt;: 영상의 &lt;b&gt;내용을 블로그 형식으로 재구성&lt;/b&gt;하여, &lt;b&gt;정리된 내용을 읽기 쉽게 제공&lt;/b&gt;합니다. 이는 블로그나 기사 스타일로 더 자세하게 설명된 형식을 원하는 사용자에게 적합합니다​.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2-2-1. 영상 요약노트&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;영상에 대한 내용을 간략하게 정리해줍니다. 내용을 빠르게 이해하고 중요한 부분 파악에 용이합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;1113&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY6lXC/btsKwNaagYN/hJqpY1TsJdGqSUGckBkgak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY6lXC/btsKwNaagYN/hJqpY1TsJdGqSUGckBkgak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY6lXC/btsKwNaagYN/hJqpY1TsJdGqSUGckBkgak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY6lXC%2FbtsKwNaagYN%2FhJqpY1TsJdGqSUGckBkgak%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;2182&quot; height=&quot;1113&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;1113&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2178&quot; data-origin-height=&quot;1389&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p0O9N/btsKvZP3ffd/LflMbJqilP8VneGIyeKfL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p0O9N/btsKvZP3ffd/LflMbJqilP8VneGIyeKfL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p0O9N/btsKvZP3ffd/LflMbJqilP8VneGIyeKfL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp0O9N%2FbtsKvZP3ffd%2FLflMbJqilP8VneGIyeKfL0%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;2178&quot; height=&quot;1389&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2178&quot; data-origin-height=&quot;1389&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2179&quot; data-origin-height=&quot;1389&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/85LOT/btsKxigyR0L/cOfqRaK4mPBXJd1QdtDkdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/85LOT/btsKxigyR0L/cOfqRaK4mPBXJd1QdtDkdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/85LOT/btsKxigyR0L/cOfqRaK4mPBXJd1QdtDkdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F85LOT%2FbtsKxigyR0L%2FcOfqRaK4mPBXJd1QdtDkdK%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;2179&quot; height=&quot;1389&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2179&quot; data-origin-height=&quot;1389&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오른쪽 [스크랩 버튼]을 클릭하면 정리된 [용어 목록]도 한 눈에 볼 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2172&quot; data-origin-height=&quot;1391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/veGxr/btsKvpoabHD/hzL3iigHJVQb7pwuIQFDKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/veGxr/btsKvpoabHD/hzL3iigHJVQb7pwuIQFDKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/veGxr/btsKvpoabHD/hzL3iigHJVQb7pwuIQFDKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FveGxr%2FbtsKvpoabHD%2FhzL3iigHJVQb7pwuIQFDKK%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;2172&quot; height=&quot;1391&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2172&quot; data-origin-height=&quot;1391&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2-2-2. 영상 스크립트&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;영상의 원본 내용을 스크립트로 작성해줍니다. 많은 영상 내용 중 필요한 부분을 찾을 때 용이합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;스크립트의 [번역하기] 버튼을 클릭하여 한글로 스크립트 변환을 할 수도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2178&quot; data-origin-height=&quot;1367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/obFm0/btsKxp0VqVk/UwZu5oQ3Oe3LckYRWbAcYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/obFm0/btsKxp0VqVk/UwZu5oQ3Oe3LckYRWbAcYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/obFm0/btsKxp0VqVk/UwZu5oQ3Oe3LckYRWbAcYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FobFm0%2FbtsKxp0VqVk%2FUwZu5oQ3Oe3LckYRWbAcYK%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;2178&quot; height=&quot;1367&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2178&quot; data-origin-height=&quot;1367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;1379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DaNd5/btsKxkepgCj/67JwZyfB5145eYGDAOrvn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DaNd5/btsKxkepgCj/67JwZyfB5145eYGDAOrvn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DaNd5/btsKxkepgCj/67JwZyfB5145eYGDAOrvn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDaNd5%2FbtsKxkepgCj%2F67JwZyfB5145eYGDAOrvn1%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;2182&quot; height=&quot;1379&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;1379&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2-2-3. 타임스탬프&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;요약 내용과 타임스탬프를 함께 정리해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;타임스탬프로 영상과 내용을 함께 볼 수 있어, 영상에서 필요한 내용을 찾아보기 쉽습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2163&quot; data-origin-height=&quot;1377&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dO1eU3/btsKvW6UTEb/AUEki91UukRe5dSgbz33Ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dO1eU3/btsKvW6UTEb/AUEki91UukRe5dSgbz33Ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dO1eU3/btsKvW6UTEb/AUEki91UukRe5dSgbz33Ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdO1eU3%2FbtsKvW6UTEb%2FAUEki91UukRe5dSgbz33Ik%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;2163&quot; height=&quot;1377&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2163&quot; data-origin-height=&quot;1377&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2-2-4. 블로그 글&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;읽기 쉬운 블로그 형식으로 내용을 구성해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;1375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqhHXN/btsKwPsga3x/hcmjokRUWCeYn01g91gif0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqhHXN/btsKwPsga3x/hcmjokRUWCeYn01g91gif0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqhHXN/btsKwPsga3x/hcmjokRUWCeYn01g91gif0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqhHXN%2FbtsKwPsga3x%2FhcmjokRUWCeYn01g91gif0%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;2182&quot; height=&quot;1375&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;1375&quot;/&gt;&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3. 웹사이트 요약해보기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;요약할 웹사이트 페이지&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;삼성전자 주식 정보: &lt;a href=&quot;https://finance.naver.com/item/main.naver?code=005930&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://finance.naver.com/item/main.naver?code=005930&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1481&quot; data-origin-height=&quot;1360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRHem7/btsKwp8L2OP/UmOA0uFN3Gu0O5wKYj9uZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRHem7/btsKwp8L2OP/UmOA0uFN3Gu0O5wKYj9uZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRHem7/btsKwp8L2OP/UmOA0uFN3Gu0O5wKYj9uZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRHem7%2FbtsKwp8L2OP%2FUmOA0uFN3Gu0O5wKYj9uZK%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;1481&quot; height=&quot;1360&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1481&quot; data-origin-height=&quot;1360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3-1. 화면 중앙 [웹사이트] 클릭 -&amp;gt; 웹사이트 URL 입력 -&amp;gt; 화살표 버튼을 클릭하여 &lt;u&gt;웹사이트&lt;/u&gt;&lt;u&gt;&amp;nbsp;요약 시작&lt;/u&gt;합니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RrdzJ/btsKw6Aw3M9/5LKvLFo1cAx8WaSyKVJxkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RrdzJ/btsKw6Aw3M9/5LKvLFo1cAx8WaSyKVJxkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RrdzJ/btsKw6Aw3M9/5LKvLFo1cAx8WaSyKVJxkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRrdzJ%2FbtsKw6Aw3M9%2F5LKvLFo1cAx8WaSyKVJxkk%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;670&quot; height=&quot;265&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1127&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2179&quot; data-origin-height=&quot;1361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nYEdi/btsKwxk79xh/5gFWzySGum5X6IAAGU5kS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nYEdi/btsKwxk79xh/5gFWzySGum5X6IAAGU5kS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nYEdi/btsKwxk79xh/5gFWzySGum5X6IAAGU5kS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnYEdi%2FbtsKwxk79xh%2F5gFWzySGum5X6IAAGU5kS1%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;2179&quot; height=&quot;1361&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2179&quot; data-origin-height=&quot;1361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3-2. 웹사이트의 내용을 보기 쉽도록 요약해줍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1115&quot; data-origin-height=&quot;1361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbERrY/btsKwOUq71a/neMFsMZpMx0kl0YFYAbEH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbERrY/btsKwOUq71a/neMFsMZpMx0kl0YFYAbEH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbERrY/btsKwOUq71a/neMFsMZpMx0kl0YFYAbEH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbERrY%2FbtsKwOUq71a%2FneMFsMZpMx0kl0YFYAbEH1%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;716&quot; height=&quot;874&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1115&quot; data-origin-height=&quot;1361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3-3. 웹사이트 내용 중 일부만 요약하고 싶을 경우 아래처럼 요약할 내용 드래그 후 [선택부분 요약]을 클릭하시면 됩니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;1361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYNNwm/btsKuUB05cS/2KIi2AyrUaCgWlSol9KGKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYNNwm/btsKuUB05cS/2KIi2AyrUaCgWlSol9KGKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYNNwm/btsKuUB05cS/2KIi2AyrUaCgWlSol9KGKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYNNwm%2FbtsKuUB05cS%2F2KIi2AyrUaCgWlSol9KGKk%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;674&quot; height=&quot;1361&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;1361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3-4. 요약된 내용을 보여줍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;1364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8ZN98/btsKwp8L2Ly/EGRMA1eShEhtDE4kVCUL3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8ZN98/btsKwp8L2Ly/EGRMA1eShEhtDE4kVCUL3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8ZN98/btsKwp8L2Ly/EGRMA1eShEhtDE4kVCUL3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8ZN98%2FbtsKwp8L2Ly%2FEGRMA1eShEhtDE4kVCUL3K%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;608&quot; height=&quot;826&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;1004&quot; data-origin-height=&quot;1364&quot;/&gt;&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;4. 검색기능 사용해보기&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;원하는 검색 내용을 입력하면 내용에 대한 서치와 함께 요약도 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2170&quot; data-origin-height=&quot;1376&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/deHsFX/btsKv62AlJf/n52lajPEhSIX13bLLJcCv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/deHsFX/btsKv62AlJf/n52lajPEhSIX13bLLJcCv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/deHsFX/btsKv62AlJf/n52lajPEhSIX13bLLJcCv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdeHsFX%2FbtsKv62AlJf%2Fn52lajPEhSIX13bLLJcCv1%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;2170&quot; height=&quot;1376&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;2170&quot; data-origin-height=&quot;1376&quot;/&gt;&lt;/span&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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5. LilysAI 설정해보기&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5-1. 설정화면 이동하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;왼쪽 하단에서 [계정 정보]를 클릭하여 [계정 설정 화면]을 열어줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3UfCY/btsKwnXlJdC/aps24YSH5zMRLGdKaU4DS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3UfCY/btsKwnXlJdC/aps24YSH5zMRLGdKaU4DS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3UfCY/btsKwnXlJdC/aps24YSH5zMRLGdKaU4DS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3UfCY%2FbtsKwnXlJdC%2Faps24YSH5zMRLGdKaU4DS1%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;280&quot; height=&quot;245&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;357&quot; data-origin-height=&quot;312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5-2. 요약 작업 완료 메일 설정하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[내 계정]을 클릭하여 LilysAI의 [요약 작업 완료 알림 설정]을 할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;LilysAI에서 사용하는 요약 기능이 완료될 때마다 이메일을 받을 것인지 여부를 선택할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대체로&amp;nbsp;요약이&amp;nbsp;신속하게&amp;nbsp;진행되지만,&amp;nbsp;요약하는&amp;nbsp;내용에&amp;nbsp;따라&amp;nbsp;다소&amp;nbsp;차이가&amp;nbsp;있을&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;그래서&amp;nbsp;요약&amp;nbsp;기능을&amp;nbsp;활성화한&amp;nbsp;후&amp;nbsp;다른&amp;nbsp;작업을&amp;nbsp;하다가&amp;nbsp;완료&amp;nbsp;시점에&amp;nbsp;이메일로&amp;nbsp;알림을&amp;nbsp;받는&amp;nbsp;기능은&amp;nbsp;꽤&amp;nbsp;유용한&amp;nbsp;것&amp;nbsp;같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;973&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RRNek/btsKuT4a3CA/b3JtKrTbKAMNoBMdVnS6k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RRNek/btsKuT4a3CA/b3JtKrTbKAMNoBMdVnS6k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RRNek/btsKuT4a3CA/b3JtKrTbKAMNoBMdVnS6k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRRNek%2FbtsKuT4a3CA%2Fb3JtKrTbKAMNoBMdVnS6k1%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;1477&quot; height=&quot;973&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;973&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5-3. 사용 언어 설정하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[언어 설정]을 클릭하여 LilysAI에서 사용할 주 사용 언어를 설정할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;LilysAI에서는 12개국 이상의 언어를 지원합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서비스 언어: LilysAI 서비스 기능에 대한 언어를 설정해줍니다.&lt;/li&gt;
&lt;li&gt;요약 노트 언어: 요약 결과물 언어를 설정해줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;905&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFypR2/btsKwqNeyb3/R2Vq7LhbadtjkmAk5Rdur0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFypR2/btsKwqNeyb3/R2Vq7LhbadtjkmAk5Rdur0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFypR2/btsKwqNeyb3/R2Vq7LhbadtjkmAk5Rdur0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFypR2%2FbtsKwqNeyb3%2FR2Vq7LhbadtjkmAk5Rdur0%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;1477&quot; height=&quot;905&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;905&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1472&quot; data-origin-height=&quot;899&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I4yqT/btsKvgdOTh7/U8Zc0ACe1fZkMCw2LKfXE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I4yqT/btsKvgdOTh7/U8Zc0ACe1fZkMCw2LKfXE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I4yqT/btsKvgdOTh7/U8Zc0ACe1fZkMCw2LKfXE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI4yqT%2FbtsKvgdOTh7%2FU8Zc0ACe1fZkMCw2LKfXE0%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;1472&quot; height=&quot;899&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1472&quot; data-origin-height=&quot;899&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5-4. 요약노트에 스크린샷 포함 설정하기&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;요약 노트에 스크린샷을 포함할 것인지 여부를 설정할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1473&quot; data-origin-height=&quot;903&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clha9f/btsKv4ReECd/vaEEzBUTgjwUrsslNM4vA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clha9f/btsKv4ReECd/vaEEzBUTgjwUrsslNM4vA0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clha9f/btsKv4ReECd/vaEEzBUTgjwUrsslNM4vA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fclha9f%2FbtsKv4ReECd%2FvaEEzBUTgjwUrsslNM4vA0%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;1473&quot; height=&quot;903&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1473&quot; data-origin-height=&quot;903&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; &lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;6. 결과물 공유 및 복사 사용하기&lt;/span&gt; &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;6-1. 결과물 공유하기&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #333333; text-align: start;&quot;&gt;[공유] - [공유] - [링크 공개하기]를 클릭하여 공유링크를 생성합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;575&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xfc6p/btsKwt4f3mi/kXsKTBdzdzWx46FcXzIGw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xfc6p/btsKwt4f3mi/kXsKTBdzdzWx46FcXzIGw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xfc6p/btsKwt4f3mi/kXsKTBdzdzWx46FcXzIGw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxfc6p%2FbtsKwt4f3mi%2FkXsKTBdzdzWx46FcXzIGw1%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;370&quot; height=&quot;328&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;575&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래처럼 링크가 생성됩니다. 복사하여 공유하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;1150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2xCBc/btsKvcWUoLg/wb1CfYRbs5DyPUeBiteNLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2xCBc/btsKvcWUoLg/wb1CfYRbs5DyPUeBiteNLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2xCBc/btsKvcWUoLg/wb1CfYRbs5DyPUeBiteNLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2xCBc%2FbtsKvcWUoLg%2Fwb1CfYRbs5DyPUeBiteNLK%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;357&quot; height=&quot;675&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;1150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공유된 링크로 접속하면 아래와 같이 결과물 그대로 화면이 보여집니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2548&quot; data-origin-height=&quot;1017&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SdC74/btsKvz5aZF6/bGbWGGiqJI6jsXhNkUcFlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SdC74/btsKvz5aZF6/bGbWGGiqJI6jsXhNkUcFlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SdC74/btsKvz5aZF6/bGbWGGiqJI6jsXhNkUcFlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSdC74%2FbtsKvz5aZF6%2FbGbWGGiqJI6jsXhNkUcFlk%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;2548&quot; height=&quot;1017&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2548&quot; data-origin-height=&quot;1017&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6-2. 내용 복사하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요약, 스크립트, 타임스탬프, 블로그 글 중 원하는 형식을 선택 후 [공유] - [복사]하여 사용하시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;782&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCEuNM/btsKw256NvU/AqpltLWE0aqViVRmQGQl81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCEuNM/btsKw256NvU/AqpltLWE0aqViVRmQGQl81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCEuNM/btsKw256NvU/AqpltLWE0aqViVRmQGQl81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCEuNM%2FbtsKw256NvU%2FAqpltLWE0aqViVRmQGQl81%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;2182&quot; height=&quot;782&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2182&quot; data-origin-height=&quot;782&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;끝.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;감사합니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>기타</category>
      <category>lilys ai</category>
      <category>lilysai란</category>
      <category>pdf 요약</category>
      <category>릴리스 AI</category>
      <category>영상 요약 ai</category>
      <category>영상 요약 서비스</category>
      <category>요약 ai 추천</category>
      <category>웹사이트 내용 추출</category>
      <category>유튜브 영상 요약</category>
      <category>텍스트 요약 기능</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/251</guid>
      <comments>https://herojoon-dev.tistory.com/251#entry251comment</comments>
      <pubDate>Sun, 3 Nov 2024 15:05:54 +0900</pubDate>
    </item>
    <item>
      <title>노코드 자동화 도구 n8n의 Self-Hosted 환경 설치하기</title>
      <link>https://herojoon-dev.tistory.com/248</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;n8n을 로컬 환경에 Self-hosted(직접 구축) 하기&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;n8n이란&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;● n8n이란?&lt;/b&gt;&lt;br&gt;N8N은&amp;nbsp;오픈소스&amp;nbsp;자동화&amp;nbsp;플랫폼입니다. &lt;br&gt;시각적인&amp;nbsp;워크플로우로&amp;nbsp;여러&amp;nbsp;단계의&amp;nbsp;작업을&amp;nbsp;지정할&amp;nbsp;수&amp;nbsp;있고&amp;nbsp;이러한&amp;nbsp;워크플로우&amp;nbsp;기능으로&amp;nbsp;코드&amp;nbsp;없이&amp;nbsp;노코드로&amp;nbsp;자동화&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있습니다. &lt;br&gt;또한&amp;nbsp;Slack,&amp;nbsp;Google,&amp;nbsp;Open&amp;nbsp;AI등&amp;nbsp;다양한&amp;nbsp;서비스들과&amp;nbsp;쉽게&amp;nbsp;통합하여&amp;nbsp;작업&amp;nbsp;수행이&amp;nbsp;가능합니다. &lt;br&gt;API&amp;nbsp;호출과&amp;nbsp;코드를&amp;nbsp;이용한&amp;nbsp;세부&amp;nbsp;작업도&amp;nbsp;가능하여&amp;nbsp;복잡한&amp;nbsp;자동화를&amp;nbsp;맞춤으로&amp;nbsp;쉽게&amp;nbsp;구축&amp;nbsp;가능합니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;- 공식 웹사이트 URL: &lt;a href=&quot;https://n8n.io/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://n8n.io/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;n8n.io - a powerful workflow automation tool&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;n8n is a free and source-available workflow automation tool&quot; data-og-host=&quot;n8n.io&quot; data-og-source-url=&quot;https://n8n.io/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/HfzS8/hyXsQZXety/uLKXlFkW9oxbtqRlyHVT60/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/LugDC/hyXsScl5wJ/NKo8aCs23cGpHrFIxF6FfK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot; data-og-url=&quot;https://n8n.io/&quot;&gt;&lt;a href=&quot;https://n8n.io/&quot; target=&quot;_blank&quot; data-source-url=&quot;https://n8n.io/&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/HfzS8/hyXsQZXety/uLKXlFkW9oxbtqRlyHVT60/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/LugDC/hyXsScl5wJ/NKo8aCs23cGpHrFIxF6FfK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;n8n.io - a powerful workflow automation tool&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;n8n is a free and source-available workflow automation tool&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;n8n.io&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;●&lt;/b&gt;&lt;b&gt; n8n으로 어떤것을 할 수 있을까?&lt;/b&gt;&lt;br&gt;N8N은 반복되는 작업의 &lt;b&gt;업무 자동화&lt;/b&gt;를&lt;b&gt; 여러 서비스와 연계하여 통합적으로 구축&lt;/b&gt;할 수 있습니다.&lt;br&gt;&lt;b&gt;고객 데이터를 수집하고 리포트를 작성&lt;/b&gt;해주는 일이나 cron과 SMS를 연동하여 &lt;b&gt;마케팅 알림 자동화&lt;/b&gt;를 구축할 수도 있습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt; ● 사람들은&amp;nbsp;n8n을 어떻게 발음하나요?&lt;/b&gt;&lt;br&gt;별거 아니지만 줄여져 있는 서비스는 대중적으로 어떻게 발음되는지 처음엔 생소합니다.&lt;br&gt;그래서 발음에 대해 정리했습니다. &lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;네이튼(n8n)이라고도 부르고&lt;/li&gt;&lt;li&gt;엔팔엔(n8n)이라고도 부르고&lt;/li&gt;&lt;li&gt;엔에잇엔(n8n)이라고도 부릅니다.&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;n8n을 사용하기 위한 방법&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; ● n8n 사용 환경 종류&lt;/b&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;&lt;li&gt;N8N 자체 클라우드 환경 사용 (&lt;b&gt;유료&lt;/b&gt;)&lt;/li&gt;&lt;li&gt;N8N Self-hosted(자체 환경 구축)하여 사용&lt;/li&gt;&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt; ● n8n Self-hosted(자체 환경 구축) 방법&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li&gt;개인 클라우드 플랫폼에 n8n 설치 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li&gt;AWS, Azure, Google Cloud 등&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;b&gt;로컬 환경에 n8n 설치&lt;/b&gt; 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li&gt;&lt;b&gt;Docker를 이용한 설치&lt;/b&gt;&lt;/li&gt; 
   &lt;li&gt;NPM을 이용한 설치&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;n8n Self-hosted 환경&lt;/h2&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;n8n Self-hosted 구축을 위한 나의 환경 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;설치 위치: 로컬 환경 (Windows 11)&lt;/li&gt; 
   &lt;li&gt;설치 방법: Docker를 이용한 설치&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기 요약&lt;/h2&gt;&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt; 
 &lt;li&gt;n8n Self-hosted 셋업하기 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li&gt;Docker 설치&lt;/li&gt; 
   &lt;li&gt;n8n용 Docker Volume(볼륨) 생성&lt;/li&gt; 
   &lt;li&gt;Docker로 n8n 이미지 다운로드 받아 n8n 실행하기&lt;/li&gt; 
   &lt;li&gt;Docker Desktop으로 n8n 이미지와 컨테이너 확인해보기&lt;/li&gt; 
   &lt;li&gt;Docker Desktop에서 n8n 컨테이너 종료하기&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;n8n Self-hosted 설정 추가하기 
  &lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
   &lt;li&gt;n8n 접속 도메인, 타임존 설정 추가하기 
    &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
     &lt;li&gt;n8n 작업 폴더 생성하기&lt;/li&gt; 
     &lt;li&gt;.env, docker-compose.yml 파일 생성하기&lt;/li&gt; 
     &lt;li&gt;docker-compose.yml파일을&amp;nbsp;이용하여&amp;nbsp;n8n&amp;nbsp;실행하기&lt;/li&gt; 
     &lt;li&gt;Docker&amp;nbsp;Desktop에서&amp;nbsp;n8n&amp;nbsp;접속&amp;nbsp;정보&amp;nbsp;확인하기&lt;/li&gt; 
     &lt;li&gt;로컬 호스트 파일 수정하기&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ol&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. n8n Self-hosted 셋업하기 &lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;- n8n Docker로 Self-hosted 설치하기 Docs URL: &lt;a href=&quot;https://docs.n8n.io/hosting/installation/docker/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://docs.n8n.io/hosting/installation/docker/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Docker | n8n Docs&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Hosting n8n Installation Docker Installation Docker offers the following advantages: Install n8n in a clean environment. Easier setup for your preferred database. Can avoid issues due to different operating systems, as Docker provides a consistent system. &quot; data-og-host=&quot;docs.n8n.io&quot; data-og-source-url=&quot;https://docs.n8n.io/hosting/installation/docker/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/yxFz4/hyXsScDs9g/nNik53vnXb4D4JmsRkK19K/img.png?width=1382&amp;amp;height=832&amp;amp;face=0_0_1382_832&quot; data-og-url=&quot;https://docs.n8n.io/hosting/installation/docker/&quot;&gt;&lt;a href=&quot;https://docs.n8n.io/hosting/installation/docker/&quot; target=&quot;_blank&quot; data-source-url=&quot;https://docs.n8n.io/hosting/installation/docker/&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/yxFz4/hyXsScDs9g/nNik53vnXb4D4JmsRkK19K/img.png?width=1382&amp;amp;height=832&amp;amp;face=0_0_1382_832')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Docker | n8n Docs&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;Hosting n8n Installation Docker Installation Docker offers the following advantages: Install n8n in a clean environment. Easier setup for your preferred database. Can avoid issues due to different operating systems, as Docker provides a consistent system. &lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;docs.n8n.io&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;1-1. Docker 설치&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker 설치는 아래 포스팅 참고 부탁드립니다.&lt;br&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/254&quot; target=&quot;_self&quot;&gt;&lt;span&gt;https://herojoon-dev.tistory.com/254&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Windows 11에 Docker Desktop 설치하기_2024.11&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;목표Windows 11에 Docker Desktop 설치하기Docker 사용해보기&amp;nbsp;오랜만에 Docker설치하려고 하니 Docker 설치 UI가 바뀌어 2024.11.05 기준 다시 정리해보았습니다.이번 정리에는 Docker 이미지 사용 예제도 함께 &quot; data-og-host=&quot;herojoon-dev.tistory.com&quot; data-og-source-url=&quot;https://herojoon-dev.tistory.com/254&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f52fr/hyXsXrxs7b/a9ZorP2YfFLUND8bMaEB2K/img.png?width=201&amp;amp;height=66&amp;amp;face=0_0_201_66,https://scrap.kakaocdn.net/dn/cKUwPR/hyXwmiPSpG/2C4698dqv1m3J5NfvmX9vK/img.png?width=201&amp;amp;height=66&amp;amp;face=0_0_201_66,https://scrap.kakaocdn.net/dn/KY1tr/hyXsW0qkFH/A1tMZIUHOjFU5LwUWMskak/img.png?width=1048&amp;amp;height=723&amp;amp;face=0_0_1048_723&quot; data-og-url=&quot;https://herojoon-dev.tistory.com/254&quot;&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/254&quot; target=&quot;_blank&quot; data-source-url=&quot;https://herojoon-dev.tistory.com/254&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f52fr/hyXsXrxs7b/a9ZorP2YfFLUND8bMaEB2K/img.png?width=201&amp;amp;height=66&amp;amp;face=0_0_201_66,https://scrap.kakaocdn.net/dn/cKUwPR/hyXwmiPSpG/2C4698dqv1m3J5NfvmX9vK/img.png?width=201&amp;amp;height=66&amp;amp;face=0_0_201_66,https://scrap.kakaocdn.net/dn/KY1tr/hyXsW0qkFH/A1tMZIUHOjFU5LwUWMskak/img.png?width=1048&amp;amp;height=723&amp;amp;face=0_0_1048_723')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Windows 11에 Docker Desktop 설치하기_2024.11&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;목표Windows 11에 Docker Desktop 설치하기Docker 사용해보기&amp;nbsp;오랜만에 Docker설치하려고 하니 Docker 설치 UI가 바뀌어 2024.11.05 기준 다시 정리해보았습니다.이번 정리에는 Docker 이미지 사용 예제도 함께 &lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;herojoon-dev.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1-2. n8n용 Docker Volume(볼륨) 생성&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Desktop 설치 뒤 Docker 명령어를 이용하여 n8n용 Docker Volume을 생성해줍니다.&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;Docker Volume이란?&lt;/b&gt; 컨테이너가 삭제되어도 데이터가 유지되도록 호스트에 저장 공간을 제공하는 기능&lt;/li&gt;&lt;/ul&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;// docker volume create [생성할 Docker Voulme이름]
// n8n_data라는 이름의 Docker Volume 생성
docker volume create n8n_data&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;731&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beDFdl/btsKADS4Q0X/7hgFgu9BYzbNKIhbUdaO2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beDFdl/btsKADS4Q0X/7hgFgu9BYzbNKIhbUdaO2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beDFdl/btsKADS4Q0X/7hgFgu9BYzbNKIhbUdaO2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeDFdl%2FbtsKADS4Q0X%2F7hgFgu9BYzbNKIhbUdaO2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;153&quot; data-origin-width=&quot;731&quot; data-origin-height=&quot;226&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Docker Voulme 생성 후 Docker Desktop의 Volumes 영역을 보시면 볼륨이 생성되어 있는 것을 확인 할 수 있습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1641&quot; data-origin-height=&quot;607&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cVjUJv/btsKAELbIyC/kKCYlJKjx6bQE4X9pWkUe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cVjUJv/btsKAELbIyC/kKCYlJKjx6bQE4X9pWkUe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cVjUJv/btsKAELbIyC/kKCYlJKjx6bQE4X9pWkUe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcVjUJv%2FbtsKAELbIyC%2FkKCYlJKjx6bQE4X9pWkUe0%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;1641&quot; height=&quot;607&quot; data-origin-width=&quot;1641&quot; data-origin-height=&quot;607&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1-3. Docker로 n8n 이미지 다운로드 받아 n8n 실행하기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker 명령어를 아래와 같이 입력해줍니다.&lt;br&gt;n8n 이미지를 다운로드하고, 다운로드 받은 n8n 이미지로 Container를 띄워주는 명령어입니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n&lt;/code&gt;&lt;/pre&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;n8n이 실행된 후 아래와 같이 접속 주소가 출력됩니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;889&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfgJRx/btsKzeHdt6W/CEuOMYObF7g1JaU7FfPAik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfgJRx/btsKzeHdt6W/CEuOMYObF7g1JaU7FfPAik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfgJRx/btsKzeHdt6W/CEuOMYObF7g1JaU7FfPAik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfgJRx%2FbtsKzeHdt6W%2FCEuOMYObF7g1JaU7FfPAik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;793&quot; height=&quot;589&quot; data-origin-width=&quot;1196&quot; data-origin-height=&quot;889&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;아래와 같은 화면이 보여집니다.&lt;br&gt;- n8n 접속 주소: http://localhost:5678&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;961&quot; data-origin-height=&quot;1075&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pcvut/btsKz5iebSN/ELFtYZBekg7MopSOtLPpTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pcvut/btsKz5iebSN/ELFtYZBekg7MopSOtLPpTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pcvut/btsKz5iebSN/ELFtYZBekg7MopSOtLPpTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpcvut%2FbtsKz5iebSN%2FELFtYZBekg7MopSOtLPpTk%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;575&quot; height=&quot;643&quot; data-origin-width=&quot;961&quot; data-origin-height=&quot;1075&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;로그인 정보 입력 후 [Next]를 클릭해줍니다.&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;Email&lt;/b&gt;: user@email.com&lt;/li&gt;&lt;li&gt;&lt;b&gt;First Name&lt;/b&gt;: joon&lt;/li&gt;&lt;li&gt;&lt;b&gt;Last Name&lt;/b&gt;: hero&lt;/li&gt;&lt;li&gt;&lt;b&gt;Password&lt;/b&gt;: Qwer1234&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;1054&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRtBVT/btsKA5n0haA/Yfkyn1QdlxO8zKn1NqY7Tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRtBVT/btsKA5n0haA/Yfkyn1QdlxO8zKn1NqY7Tk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRtBVT/btsKA5n0haA/Yfkyn1QdlxO8zKn1NqY7Tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRtBVT%2FbtsKA5n0haA%2FYfkyn1QdlxO8zKn1NqY7Tk%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;467&quot; height=&quot;699&quot; data-origin-width=&quot;704&quot; data-origin-height=&quot;1054&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;519&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8EJfA/btsKAKxEGAs/kRnK70ZvczYfWmWzhJUyNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8EJfA/btsKAKxEGAs/kRnK70ZvczYfWmWzhJUyNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8EJfA/btsKAKxEGAs/kRnK70ZvczYfWmWzhJUyNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8EJfA%2FbtsKAKxEGAs%2FkRnK70ZvczYfWmWzhJUyNk%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;458&quot; height=&quot;350&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;519&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;822&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pHVU8/btsKAuIOjvk/Y2kPS3rE352fMYoNAO0Rck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pHVU8/btsKAuIOjvk/Y2kPS3rE352fMYoNAO0Rck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pHVU8/btsKAuIOjvk/Y2kPS3rE352fMYoNAO0Rck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpHVU8%2FbtsKAuIOjvk%2FY2kPS3rE352fMYoNAO0Rck%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;445&quot; height=&quot;494&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;822&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;설치가 완료된 것을 확인할 수 있습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1422&quot; data-origin-height=&quot;1164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WttuW/btsKAFcgseL/ujZxlA5kZVkao8dmuN62E0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WttuW/btsKAFcgseL/ujZxlA5kZVkao8dmuN62E0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WttuW/btsKAFcgseL/ujZxlA5kZVkao8dmuN62E0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWttuW%2FbtsKAFcgseL%2FujZxlA5kZVkao8dmuN62E0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;793&quot; height=&quot;649&quot; data-origin-width=&quot;1422&quot; data-origin-height=&quot;1164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1-4. Docker&amp;nbsp;Desktop으로&amp;nbsp;이미지와&amp;nbsp;컨테이너&amp;nbsp;확인해보기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Desktop에서 [Images]를 보시면 n8n 이미지(docker.n8n.io/n8nio/n8n)가 잘 Pull된 것을 확인할 수 있습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2023&quot; data-origin-height=&quot;788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z7CDc/btsKBogylsp/fKBrRT5yubGM9aFFqy4Vwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z7CDc/btsKBogylsp/fKBrRT5yubGM9aFFqy4Vwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z7CDc/btsKBogylsp/fKBrRT5yubGM9aFFqy4Vwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz7CDc%2FbtsKBogylsp%2FfKBrRT5yubGM9aFFqy4Vwk%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;2023&quot; height=&quot;788&quot; data-origin-width=&quot;2023&quot; data-origin-height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Docker Desktop에서 [Containers]를 보시면 n8n 이미지가 실행된 n8n 컨테이너가 잘 실행된 것을 확인할 수 있습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2022&quot; data-origin-height=&quot;761&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3aJ2g/btsKBoU9U14/Bf991kc2LERxucv3aBe18K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3aJ2g/btsKBoU9U14/Bf991kc2LERxucv3aBe18K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3aJ2g/btsKBoU9U14/Bf991kc2LERxucv3aBe18K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3aJ2g%2FbtsKBoU9U14%2FBf991kc2LERxucv3aBe18K%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;2022&quot; height=&quot;761&quot; data-origin-width=&quot;2022&quot; data-origin-height=&quot;761&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1-5. Docker&amp;nbsp;Desktop에서&amp;nbsp;n8n&amp;nbsp;컨테이너&amp;nbsp;종료하기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;Docker Desktop에서 [Containers]에 있는 n8n 컨테이너를 [Actions]의 네모 아이콘을 클릭하여 종료시켜줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2022&quot; data-origin-height=&quot;761&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7zVAm/btsKA5O5oVg/R19QGssMITxbqdNlvWrKN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7zVAm/btsKA5O5oVg/R19QGssMITxbqdNlvWrKN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7zVAm/btsKA5O5oVg/R19QGssMITxbqdNlvWrKN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7zVAm%2FbtsKA5O5oVg%2FR19QGssMITxbqdNlvWrKN1%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;2022&quot; height=&quot;761&quot; data-origin-width=&quot;2022&quot; data-origin-height=&quot;761&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;컨테이너가 종료되면 [Containers]에서 해당 컨테이너가 사라집니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2012&quot; data-origin-height=&quot;958&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/To0x1/btsKBmbYaPi/iCQLzGpPV70lOoVjRVivi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/To0x1/btsKBmbYaPi/iCQLzGpPV70lOoVjRVivi1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/To0x1/btsKBmbYaPi/iCQLzGpPV70lOoVjRVivi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTo0x1%2FbtsKBmbYaPi%2FiCQLzGpPV70lOoVjRVivi1%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;2012&quot; height=&quot;958&quot; data-origin-width=&quot;2012&quot; data-origin-height=&quot;958&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr 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;2. n8n Self-hosted 설정 추가하기&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2-1. n8n&amp;nbsp;접속&amp;nbsp;도메인,&amp;nbsp;타임존&amp;nbsp;설정&amp;nbsp;추가하기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;n8n&lt;/b&gt;은 &lt;b&gt;여러 설정 정보를 수정하여 사용 가능하도록 기능을 제공&lt;/b&gt;해줍니다.&lt;br&gt;예를들어 위에서 띄운 n8n은 http://localhost:5678으로 접속됩니다. localhost로 보여지는 것을 내가 원하는 도메인으로 변경하고자 한다면 설정으로 가능합니다.&lt;br&gt;또한 n8n의 cron작업이나 로깅 시간등을 위해 사용되는 타임존도 변경할 수 있습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;이러한 &lt;b&gt;설정정보를 어떻게 지정&lt;/b&gt;할 수 있을까요?&lt;br&gt;&lt;b&gt;docker-compose.yml&lt;/b&gt;을 이용하여 설정정보를 정의하며 n8n을 실행시킬 수 있습니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt; 
 &lt;li&gt;&lt;b&gt;n8n docker-compose.yml URL&lt;/b&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;a href=&quot;https://docs.n8n.io/hosting/installation/server-setups/docker-compose/#6-create-env-file&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.n8n.io/hosting/installation/server-setups/docker-compose/#6-create-env-file&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;b&gt; n8n 타임존 Environment URL&lt;/b&gt; 
  &lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt; 
   &lt;li&gt;&lt;a href=&quot;https://docs.n8n.io/hosting/configuration/environment-variables/timezone-localization/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.n8n.io/hosting/configuration/environment-variables/timezone-localization/&lt;/a&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2-1-1. n8n 작업 폴더 생성하기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;저는 C:\devtool 위치 아래에 n8n이라는 폴더를 생성해주었습니다.&lt;br&gt;C:\devtool\n8n&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2-1-2. &lt;span style=&quot;color: #333333;&quot;&gt;.env,&amp;nbsp;&lt;/span&gt;docker-compose.yml 파일 생성하기&lt;/b&gt;&lt;/p&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;.env파일을 생성하기 위해 메모장에 아래와 같이 Environment를 입력해줍니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;# domain name
DOMAIN_NAME=selfhosted.com

# sub domain name
SUBDOMAIN=n8n

# timezone
GENERIC_TIMEZONE=Asia/Seoul&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;673&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGUMkn/btsKA68hJJn/NmKTtP3jVBH0FcpKujcnd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGUMkn/btsKA68hJJn/NmKTtP3jVBH0FcpKujcnd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGUMkn/btsKA68hJJn/NmKTtP3jVBH0FcpKujcnd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGUMkn%2FbtsKA68hJJn%2FNmKTtP3jVBH0FcpKujcnd0%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;458&quot; height=&quot;286&quot; data-origin-width=&quot;673&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;[파일] - [다른 이름으로 저장]을 클릭해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;685&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u8N49/btsKBgJNeIt/CyamLoCWANHPq3S95cYtJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u8N49/btsKBgJNeIt/CyamLoCWANHPq3S95cYtJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u8N49/btsKBgJNeIt/CyamLoCWANHPq3S95cYtJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu8N49%2FbtsKBgJNeIt%2FCyamLoCWANHPq3S95cYtJk%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;336&quot; height=&quot;455&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;685&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;아래처럼 입력 후 [저장]을 클릭합니다.&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;파일 이름: .env&lt;/li&gt;&lt;li&gt;파일 형식: 모든 파일&lt;/li&gt;&lt;li&gt;인코딩: UTF-8&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1251&quot; data-origin-height=&quot;773&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkiR5f/btsKz11aTaR/TI2L1KB0gEQtpUeID3ZxEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkiR5f/btsKz11aTaR/TI2L1KB0gEQtpUeID3ZxEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkiR5f/btsKz11aTaR/TI2L1KB0gEQtpUeID3ZxEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkiR5f%2FbtsKz11aTaR%2FTI2L1KB0gEQtpUeID3ZxEK%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;1251&quot; height=&quot;773&quot; data-origin-width=&quot;1251&quot; data-origin-height=&quot;773&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;n8n 작업 폴더에 .env파일이 생성됩니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OnLl9/btsKA9Rq0zv/HUgePcTlLc7Qm1RPuJfoQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OnLl9/btsKA9Rq0zv/HUgePcTlLc7Qm1RPuJfoQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OnLl9/btsKA9Rq0zv/HUgePcTlLc7Qm1RPuJfoQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOnLl9%2FbtsKA9Rq0zv%2FHUgePcTlLc7Qm1RPuJfoQk%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;116&quot; height=&quot;85&quot; data-origin-width=&quot;123&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;.env 파일 생성 끝.&lt;br&gt;&amp;nbsp;&lt;br&gt;docker-compose.yml파일을 생성하기 위해 메모장에 아래와 같이 내용을 입력해줍니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;version: &quot;3.7&quot;

services:
&amp;nbsp;&amp;nbsp;n8n:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;image: docker.n8n.io/n8nio/n8n
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;restart: always
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ports:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- &quot;80:80&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;environment:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- N8N_PORT=80
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- N8N_PROTOCOL=http
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- NODE_ENV=production
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- WEBHOOK_URL=http://${SUBDOMAIN}.${DOMAIN_NAME}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- GENERIC_TIMEZONE=${GENERIC_TIMEZONE}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- N8N_SECURE_COOKIE=false
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;env_file:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- .env
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;volumes:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- n8n_data:/home/node/.n8n
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
volumes:
&amp;nbsp;&amp;nbsp;n8n_data:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;external: true&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;872&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q4Uvc/btsKzT9UGYm/w5JCXQ247rKqxJwOfXlce1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q4Uvc/btsKzT9UGYm/w5JCXQ247rKqxJwOfXlce1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q4Uvc/btsKzT9UGYm/w5JCXQ247rKqxJwOfXlce1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq4Uvc%2FbtsKzT9UGYm%2Fw5JCXQ247rKqxJwOfXlce1%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;503&quot; height=&quot;632&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;872&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;[파일] - [다른 이름으로 저장]을 클릭해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;685&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oHFBU/btsKzkNYsSb/S4D6CRk3IhpbbXQYa1uGZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oHFBU/btsKzkNYsSb/S4D6CRk3IhpbbXQYa1uGZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oHFBU/btsKzkNYsSb/S4D6CRk3IhpbbXQYa1uGZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoHFBU%2FbtsKzkNYsSb%2FS4D6CRk3IhpbbXQYa1uGZk%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;336&quot; height=&quot;455&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;685&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;아래처럼 입력 후 [저장]을 클릭합니다.&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;파일 이름: docker-compose.yml&lt;/li&gt;&lt;li&gt;파일 형식: 모든 파일&lt;/li&gt;&lt;li&gt;인코딩: UTF-8&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1251&quot; data-origin-height=&quot;774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIpU6n/btsKzllNu1d/jLcaKX7TVLbLhAQWS8ugxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIpU6n/btsKzllNu1d/jLcaKX7TVLbLhAQWS8ugxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIpU6n/btsKzllNu1d/jLcaKX7TVLbLhAQWS8ugxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIpU6n%2FbtsKzllNu1d%2FjLcaKX7TVLbLhAQWS8ugxK%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;1251&quot; height=&quot;774&quot; data-origin-width=&quot;1251&quot; data-origin-height=&quot;774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;n8n 작업 폴더에 docker-compose.yml파일이 생성됩니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;253&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r7azm/btsKArZE4BJ/nf0ItL2XmqwnKIvzukHAy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r7azm/btsKArZE4BJ/nf0ItL2XmqwnKIvzukHAy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r7azm/btsKArZE4BJ/nf0ItL2XmqwnKIvzukHAy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr7azm%2FbtsKArZE4BJ%2Fnf0ItL2XmqwnKIvzukHAy0%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;194&quot; height=&quot;113&quot; data-origin-width=&quot;253&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;docker-compose.yml 파일 생성 끝.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-1-3. docker-compose.yml파일을 이용하여 n8n 실행하기&lt;/b&gt;&lt;br&gt;n8n 작업 폴더에서 cmd를 입력하여 명령 프롬프트 창을 열어줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;311&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v30Vc/btsKAYJoLSp/17IGhERNNv2G6NiitoNciK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v30Vc/btsKAYJoLSp/17IGhERNNv2G6NiitoNciK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v30Vc/btsKAYJoLSp/17IGhERNNv2G6NiitoNciK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv30Vc%2FbtsKAYJoLSp%2F17IGhERNNv2G6NiitoNciK%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;310&quot; height=&quot;240&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;311&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;명령 프롬프트에 docker-compose 실행 명령어를 입력해줍니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;docker-compose up -d&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;717&quot; data-origin-height=&quot;239&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzzecy/btsKBkSXd1Q/lTZG6kA4XcjGx5R8FfhzH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzzecy/btsKBkSXd1Q/lTZG6kA4XcjGx5R8FfhzH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzzecy/btsKBkSXd1Q/lTZG6kA4XcjGx5R8FfhzH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdzzecy%2FbtsKBkSXd1Q%2FlTZG6kA4XcjGx5R8FfhzH0%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;549&quot; height=&quot;183&quot; data-origin-width=&quot;717&quot; data-origin-height=&quot;239&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1727&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tOavV/btsKAvgEBWU/DQzpE7mL9h7pYtHhSg3Xb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tOavV/btsKAvgEBWU/DQzpE7mL9h7pYtHhSg3Xb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tOavV/btsKAvgEBWU/DQzpE7mL9h7pYtHhSg3Xb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtOavV%2FbtsKAvgEBWU%2FDQzpE7mL9h7pYtHhSg3Xb1%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;1727&quot; height=&quot;340&quot; data-origin-width=&quot;1727&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-1-4. Docker Desktop에서 n8n 접속 정보 확인하기&lt;/b&gt;&lt;br&gt;Docker Desktop에서 [Containers]를 보면 n8n이라는 이름의 컨테이너가 Status Running으로 잘 띄워진것을 확인할 수 있습니다. n8n 컨테이너를 클릭해줍니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2013&quot; data-origin-height=&quot;724&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxGxy1/btsKzUnrxmy/Dz6XPUtOOdiVjjPJOXEPM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxGxy1/btsKzUnrxmy/Dz6XPUtOOdiVjjPJOXEPM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxGxy1/btsKzUnrxmy/Dz6XPUtOOdiVjjPJOXEPM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxGxy1%2FbtsKzUnrxmy%2FDz6XPUtOOdiVjjPJOXEPM0%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;2013&quot; height=&quot;724&quot; data-origin-width=&quot;2013&quot; data-origin-height=&quot;724&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;n8n 컨테이너 로그에 접속정보를 확인할 수 있습니다.&lt;br&gt;- n8n 접속 정보: &lt;a href=&quot;http://n8n.selfhosted.com&quot; target=&quot;_self&quot;&gt;&lt;span&gt;http://n8n.selfhosted.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2016&quot; data-origin-height=&quot;728&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEykji/btsKABOvE6u/0oEOOkkFZsy9cIrHugiZU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEykji/btsKABOvE6u/0oEOOkkFZsy9cIrHugiZU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEykji/btsKABOvE6u/0oEOOkkFZsy9cIrHugiZU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEykji%2FbtsKABOvE6u%2F0oEOOkkFZsy9cIrHugiZU1%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;2016&quot; height=&quot;728&quot; data-origin-width=&quot;2016&quot; data-origin-height=&quot;728&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;그런데 접속정보 접근 시 사이트에 접근할 수 없다고 뜹니다.&lt;br&gt;그 이유는 로컬 호스트 파일을 수정해주어야 하기 때문입니다.&lt;br&gt;로컬 호스트 파일은 내 로컬 환경의 ip와 도메인 맵핑 정보를 관리해주는 파일입니다.&lt;br&gt;기본적으로 127.0.0.1에 localhost라는 이름의 도메인으로 매핑되어 있습니다.&lt;br&gt;그래서 loclhost가 아닌 &lt;a href=&quot;http://n8n.selfhosted.com&quot; target=&quot;_self&quot;&gt;&lt;span&gt;http://n8n.selfhosted.com&lt;/span&gt;&lt;/a&gt;으로 접근 시 접근되지 않습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;835&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/065Wa/btsKziikOsw/y17ThgKqf3FTFKWIQzkR8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/065Wa/btsKziikOsw/y17ThgKqf3FTFKWIQzkR8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/065Wa/btsKziikOsw/y17ThgKqf3FTFKWIQzkR8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F065Wa%2FbtsKziikOsw%2Fy17ThgKqf3FTFKWIQzkR8K%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;1101&quot; height=&quot;835&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;835&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-1-4. 로컬 호스트 파일 수정하기&lt;/b&gt;&lt;br&gt;- 로컬 호스트 파일 위치: C:\Windows\System32\drivers\etc&lt;br&gt;- 로컬 호스트 파일명: hosts&lt;br&gt;&amp;nbsp;&lt;br&gt;hosts파일을 관리자 권한으로 열어줍니다.&lt;br&gt;메모장이나 다른 editor 창으로 여시면됩니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgYtHE/btsKACNoH3V/5AhdMA8K0pX2Qr1ehAWEh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgYtHE/btsKACNoH3V/5AhdMA8K0pX2Qr1ehAWEh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgYtHE/btsKACNoH3V/5AhdMA8K0pX2Qr1ehAWEh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgYtHE%2FbtsKACNoH3V%2F5AhdMA8K0pX2Qr1ehAWEh1%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;362&quot; height=&quot;251&quot; data-origin-width=&quot;461&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;아래와 같이 입력 후 저장해줍니다.&lt;br&gt;#는 주석이기 때문에 앞에 #를 붙여주시면 안됩니다.&lt;/p&gt;&lt;pre data-ke-type=&quot;codeblock&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;127.0.0.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n8n.selfhosted.com&lt;/code&gt;&lt;/pre&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;135&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEXkSZ/btsKAgcMKZn/C5XZerHiWLvX8opvf1be70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEXkSZ/btsKAgcMKZn/C5XZerHiWLvX8opvf1be70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEXkSZ/btsKAgcMKZn/C5XZerHiWLvX8opvf1be70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEXkSZ%2FbtsKAgcMKZn%2FC5XZerHiWLvX8opvf1be70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;481&quot; height=&quot;94&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;135&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;다시 n8n 지정한 도메인으로 접속해줍니다.&lt;br&gt;로그인 정보는 위에서 가입한 정보를 입력하시면 되며, 만약 아래 화면이 아니라 가입 화면이 나오시면&lt;br&gt;다시 가입해주시면 됩니다. 로컬 환경 셋업이니 가입정보를 정확하게 입력하지 않으셔도 됩니다.&lt;br&gt;&lt;span style=&quot;color: #333333;&quot;&gt;- n8n 접속 정보:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://n8n.selfhosted.com&quot; target=&quot;_self&quot;&gt;&lt;span&gt;http://n8n.selfhosted.com&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;703&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cI7ZyL/btsKAu278WT/D2WZq2eMxAkUEn2Cj0I2hK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cI7ZyL/btsKAu278WT/D2WZq2eMxAkUEn2Cj0I2hK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cI7ZyL/btsKAu278WT/D2WZq2eMxAkUEn2Cj0I2hK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcI7ZyL%2FbtsKAu278WT%2FD2WZq2eMxAkUEn2Cj0I2hK%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;462&quot; height=&quot;531&quot; data-origin-width=&quot;612&quot; data-origin-height=&quot;703&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;1236&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/etAksz/btsKAtJTuor/F3y2uLw0jE7fOieO1DsnI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/etAksz/btsKAtJTuor/F3y2uLw0jE7fOieO1DsnI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/etAksz/btsKAtJTuor/F3y2uLw0jE7fOieO1DsnI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FetAksz%2FbtsKAtJTuor%2FF3y2uLw0jE7fOieO1DsnI1%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;1424&quot; height=&quot;1236&quot; data-origin-width=&quot;1424&quot; data-origin-height=&quot;1236&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;끝.&lt;br&gt;&amp;nbsp;&lt;br&gt;감사합니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기타</category>
      <category>n8n docker 설치</category>
      <category>n8n docker-compose</category>
      <category>n8n docker-compose로 띄우기</category>
      <category>n8n self hosted 설치방법</category>
      <category>n8n 도메인 변경 방법</category>
      <category>n8n 로컬 설치</category>
      <category>n8n 로컬 환경 설치</category>
      <category>n8n 설치</category>
      <category>n8n 시작하기</category>
      <category>n8n 타임존 변경</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/248</guid>
      <comments>https://herojoon-dev.tistory.com/248#entry248comment</comments>
      <pubDate>Thu, 31 Oct 2024 18:09:39 +0900</pubDate>
    </item>
    <item>
      <title>OpenAI의 API Key 발급하기 &amp;amp; 테스트 하기</title>
      <link>https://herojoon-dev.tistory.com/247</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;목표&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;OpenAI의 API Key를 발급해보고 발급된 API Key를 이용하여 간단한 테스트를 진행합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;OpenAI란&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;88&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bx89wx/btsKrBHm5NU/KwzXJ8UBbBkZua32MhGtrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx89wx/btsKrBHm5NU/KwzXJ8UBbBkZua32MhGtrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx89wx/btsKrBHm5NU/KwzXJ8UBbBkZua32MhGtrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx89wx%2FbtsKrBHm5NU%2FKwzXJ8UBbBkZua32MhGtrK%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;189&quot; height=&quot;88&quot; data-origin-width=&quot;256&quot; data-origin-height=&quot;88&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;● &lt;b&gt;OpenAI란?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;OpenAI는&amp;nbsp;인공지능과&amp;nbsp;머신러닝&amp;nbsp;모델,&amp;nbsp;특히&amp;nbsp;언어&amp;nbsp;모델(예:&amp;nbsp;GPT)을&amp;nbsp;개발하여&amp;nbsp;사용자가&amp;nbsp;텍스트&amp;nbsp;생성,&amp;nbsp;분석,&amp;nbsp;코드&amp;nbsp;작성&amp;nbsp;등&amp;nbsp;다양한&amp;nbsp;작업을&amp;nbsp;쉽게&amp;nbsp;수행할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;API와&amp;nbsp;도구를&amp;nbsp;제공하는&amp;nbsp;인공지능&amp;nbsp;연구소입니다. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;● &lt;b&gt;OpenAI의 API Key를 발급 받는 이유?&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;OpenAI&amp;nbsp;API&amp;nbsp;Key는&amp;nbsp;사용자&amp;nbsp;인증을&amp;nbsp;위해&amp;nbsp;발급되며,&amp;nbsp;이를&amp;nbsp;요청&amp;nbsp;헤더에&amp;nbsp;포함해&amp;nbsp;OpenAI의&amp;nbsp;다양한&amp;nbsp;AI&amp;nbsp;모델을&amp;nbsp;호출하고&amp;nbsp;활용할&amp;nbsp;수&amp;nbsp;있게&amp;nbsp;해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;할 것 요약&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;1. OpenAI 회원가입 or 로그인 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;2. OpenAI 결제수단 등록 및 결제 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;3. OpenAI의 API Key 발급 &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;4. Postman을 이용하여 발급받은 API Key 테스트&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;해보기&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;1. OpenAI 회원가입 or 로그인&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;아래 OpenAI 웹사이트에서 회원가입 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;- OpenAI 웹사이트 URL: &lt;a href=&quot;https://platform.openai.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://platform.openai.com/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;오른쪽 상단에서 회원가입 or 로그인 합니다.&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&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;신규 회원은 [Sign up] 회원가입 하시면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;기존 회원은 [Log in] 하시면 됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2024-10-31 105448.png&quot; data-origin-width=&quot;1463&quot; data-origin-height=&quot;610&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7xTdf/btsKqJF4G80/ZtlIpaIulnqWIMSQv3iC7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7xTdf/btsKqJF4G80/ZtlIpaIulnqWIMSQv3iC7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7xTdf/btsKqJF4G80/ZtlIpaIulnqWIMSQv3iC7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7xTdf%2FbtsKqJF4G80%2FZtlIpaIulnqWIMSQv3iC7k%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;1463&quot; height=&quot;610&quot; data-filename=&quot;edited_스크린샷 2024-10-31 105448.png&quot; data-origin-width=&quot;1463&quot; data-origin-height=&quot;610&quot;/&gt;&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2. OpenAI 결제수단 등록 및 결제&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;OpenAI는 &lt;u&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;유료&lt;/b&gt;&lt;/span&gt;&lt;/u&gt;입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;결제 수단을 등록하고 요금 결제한 뒤 사용 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저는 결제 수단을 등록하고 10달러를 결제한 뒤 테스트했습니다.&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2-1. 오른쪽 상단의 [톱니바퀴 도구 버튼] - [Billing] - [Add payment details]를 클릭하여 결제 수단 등록화면으로 이동합니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1454&quot; data-origin-height=&quot;695&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJPvy3/btsKqMQkeYd/akvFojoMfBR95DD5rEU0N0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJPvy3/btsKqMQkeYd/akvFojoMfBR95DD5rEU0N0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJPvy3/btsKqMQkeYd/akvFojoMfBR95DD5rEU0N0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJPvy3%2FbtsKqMQkeYd%2FakvFojoMfBR95DD5rEU0N0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1454&quot; height=&quot;695&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1454&quot; data-origin-height=&quot;695&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저는 개인 카드로 등록할 것이므로 [Individual]을 선택하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;977&quot; data-origin-height=&quot;799&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UDGzD/btsKqp19Rci/LPdHkBppaDtSLiSmmW3kdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UDGzD/btsKqp19Rci/LPdHkBppaDtSLiSmmW3kdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UDGzD/btsKqp19Rci/LPdHkBppaDtSLiSmmW3kdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUDGzD%2FbtsKqp19Rci%2FLPdHkBppaDtSLiSmmW3kdk%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;563&quot; height=&quot;460&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;977&quot; data-origin-height=&quot;799&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Tip) 결제 수단 등록 시 영문 주소 입력란이 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Naver의 영문 주소를 이용하시면 쉽게 영문 주소를 알 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;594&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byCTAC/btsKqovqPQd/0avGYY8McNVkVMrS6jeLQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byCTAC/btsKqovqPQd/0avGYY8McNVkVMrS6jeLQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byCTAC/btsKqovqPQd/0avGYY8McNVkVMrS6jeLQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyCTAC%2FbtsKqovqPQd%2F0avGYY8McNVkVMrS6jeLQ0%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;512&quot; height=&quot;296&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;594&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;2-2. 결제 수단 정보를 입력 한 뒤 결제 요금을 입력해줍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;저는 잠깐의 테스트 용도이므로 10달러를 입력하고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt; &lt;span style=&quot;color: #ee2323; text-align: start;&quot;&gt;★&lt;/span&gt;결제 요금이 자동 충전되지 않도록 [Would you like to set up automatic recharge?]를 &lt;u&gt;비활성화&lt;/u&gt; 했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;889&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ci5Y6Q/btsKpnddBxW/xhO4Pw17vUPI2jSZWKrW7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ci5Y6Q/btsKpnddBxW/xhO4Pw17vUPI2jSZWKrW7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ci5Y6Q/btsKpnddBxW/xhO4Pw17vUPI2jSZWKrW7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fci5Y6Q%2FbtsKpnddBxW%2FxhO4Pw17vUPI2jSZWKrW7K%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;477&quot; height=&quot;889&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;889&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;[Continue]를 클릭하시면 위에서 입력한 초기 결제 요금이 충전된 것을 확인하실 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;822&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ye5zm/btsKrhhYaoA/veHMSoNkLvlD9sZjKYKqf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ye5zm/btsKrhhYaoA/veHMSoNkLvlD9sZjKYKqf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ye5zm/btsKrhhYaoA/veHMSoNkLvlD9sZjKYKqf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fye5zm%2FbtsKrhhYaoA%2FveHMSoNkLvlD9sZjKYKqf0%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;669&quot; height=&quot;822&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;822&quot;/&gt;&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3. OpenAI의 API Key 발급 &lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3-1. OpenAI의 API Key 발급 화면으로 이동합니다.&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&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;OpenAI API Key 발급 화면 URL:&amp;nbsp;&lt;a href=&quot;https://platform.openai.com/api-keys&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://platform.openai.com/api-keys&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;위 URL로 바로 이동하시거나 아래처럼 [Dashboard] - [API Keys]로 이동하시면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1461&quot; data-origin-height=&quot;799&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bINaAp/btsKqZ9IggB/cWm58gtES2PpUZe4KHclp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bINaAp/btsKqZ9IggB/cWm58gtES2PpUZe4KHclp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bINaAp/btsKqZ9IggB/cWm58gtES2PpUZe4KHclp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbINaAp%2FbtsKqZ9IggB%2FcWm58gtES2PpUZe4KHclp0%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;1461&quot; height=&quot;799&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1461&quot; data-origin-height=&quot;799&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3-2. API Key발급을 위해 [Create new secret key]를 클릭해줍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;798&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MZ0VS/btsKpwnqpgI/zemj1rOKSBjAKESl4qeqUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MZ0VS/btsKpwnqpgI/zemj1rOKSBjAKESl4qeqUK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MZ0VS/btsKpwnqpgI/zemj1rOKSBjAKESl4qeqUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMZ0VS%2FbtsKpwnqpgI%2Fzemj1rOKSBjAKESl4qeqUK%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;1456&quot; height=&quot;798&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;798&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3-3. Name에 API Key를 구분할 수 있는 나만의 이름을 작성해줍니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;[Create secret key]를 클릭하여 API Key를 생성해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;765&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bd7cGt/btsKrapBJ8t/nzr0dFMpWNtpQxybk2Hyo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bd7cGt/btsKrapBJ8t/nzr0dFMpWNtpQxybk2Hyo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bd7cGt/btsKrapBJ8t/nzr0dFMpWNtpQxybk2Hyo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbd7cGt%2FbtsKrapBJ8t%2Fnzr0dFMpWNtpQxybk2Hyo0%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;497&quot; height=&quot;765&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;765&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;3-4. API Key가 정상적으로 발급되면 아래 팝업으로 보여집니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;★[Copy]버튼을 클릭하여 발급된 키를 별도 문서에 보관하셔야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;★해당 &lt;u&gt;API Key의 정보는 최초 1회만 보여지므로&lt;/u&gt; [Done]을 클릭하는 순간 다시 조회할 수 없습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;517&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PgRlv/btsKq10Lzqh/7H2QKjBgzmkj0ONjAynQBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PgRlv/btsKq10Lzqh/7H2QKjBgzmkj0ONjAynQBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PgRlv/btsKq10Lzqh/7H2QKjBgzmkj0ONjAynQBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPgRlv%2FbtsKq10Lzqh%2F7H2QKjBgzmkj0ONjAynQBK%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;523&quot; height=&quot;517&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;517&quot;/&gt;&lt;/span&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;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;4. Postman을 이용하여 발급받은 API Key 테스트&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;테스트는 Postman을 이용하여 진행했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Postman이 아니더라도 다른 API 테스트 도구를 사용하시면 됩니다.&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;4-1. 호출 정보를 위해 [Docs] - [Overview]를 클릭하면 OpenAI를 테스트 해볼 수 있는 예제가 보여집니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;아래 예제에 제공되는 library는 2024.10.31 기준으로 curl, node.js, python 세가지가 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;158&quot; data-origin-height=&quot;200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OK3Fy/btsKrwTxb3h/yqNnUrEJ0gKiK1EpF8wpa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OK3Fy/btsKrwTxb3h/yqNnUrEJ0gKiK1EpF8wpa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OK3Fy/btsKrwTxb3h/yqNnUrEJ0gKiK1EpF8wpa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOK3Fy%2FbtsKrwTxb3h%2FyqNnUrEJ0gKiK1EpF8wpa0%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;113&quot; height=&quot;143&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;158&quot; data-origin-height=&quot;200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Postman으로 API 테스트를 진행할 것이므로 curl을 선택해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1414&quot; data-origin-height=&quot;856&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqBVHD/btsKphxjg9b/Ih0xKx7d4vkbuHKjkhJ8T0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqBVHD/btsKphxjg9b/Ih0xKx7d4vkbuHKjkhJ8T0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqBVHD/btsKphxjg9b/Ih0xKx7d4vkbuHKjkhJ8T0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqBVHD%2FbtsKphxjg9b%2FIh0xKx7d4vkbuHKjkhJ8T0%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;1414&quot; height=&quot;856&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1414&quot; data-origin-height=&quot;856&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;위 curl의 예제를 보시면 API 호출 URL, Header정보, Body정보가 담겨 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;API 호출 URL은 Body가 담겨져 있으므로 Post method로 요청해야합니다.&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;4-2. OpenAI 호출 정보를 아래와 같이 Postman에 입력해줍니다.&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&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Method&lt;/b&gt;: Post&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;호출 URL&lt;/b&gt;: &lt;a href=&quot;https://api.openai.com/v1/chat/completions&quot;&gt;https://api.openai.com/v1/chat/completions&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Header&lt;/b&gt;: Authorization Bearer 발급받은 API Key 입력&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Body&lt;/b&gt;: row, JSON타입 선택. Json Body정보 입력. content는 원하는 질문값으로 입력하기.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;447&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4evmQ/btsKqWd4faY/P6rnLVVIpidJ3TzFbHZrY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4evmQ/btsKqWd4faY/P6rnLVVIpidJ3TzFbHZrY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4evmQ/btsKqWd4faY/P6rnLVVIpidJ3TzFbHZrY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4evmQ%2FbtsKqWd4faY%2FP6rnLVVIpidJ3TzFbHZrY1%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;1284&quot; height=&quot;447&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1284&quot; data-origin-height=&quot;447&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;[Send]를 클릭하면 아래와 같이 요청 내용에 대한 응답이 결과로 옵니다.&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&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt; 요청 내용&lt;/b&gt;: &quot;What's your hobby?&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;요청 내용에 대한 응답&lt;/b&gt;: &quot;I don't have hobbies like a human does. However, I am \&quot;interested\&quot; in tasks such as providing information, answering questions, and assisting with problem-solving. If there's something specific you'd like to know or discuss, feel free to ask!&quot;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1281&quot; data-origin-height=&quot;1060&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mJ2ZJ/btsKq1l9Hpg/IWhIsFEh4Xg4YiU0hX04dK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mJ2ZJ/btsKq1l9Hpg/IWhIsFEh4Xg4YiU0hX04dK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mJ2ZJ/btsKq1l9Hpg/IWhIsFEh4Xg4YiU0hX04dK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmJ2ZJ%2FbtsKq1l9Hpg%2FIWhIsFEh4Xg4YiU0hX04dK%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;1281&quot; height=&quot;1060&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1281&quot; data-origin-height=&quot;1060&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;끝.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;감사합니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>LLM</category>
      <category>opan ai curl 호출</category>
      <category>open ai api key 발급</category>
      <category>open ai api 호출</category>
      <category>open ai key create</category>
      <category>open ai postman</category>
      <category>open ai quick start</category>
      <category>open ai 결제</category>
      <category>open ai 사용해보기</category>
      <category>openai 키 발급</category>
      <category>openai 해보기</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/247</guid>
      <comments>https://herojoon-dev.tistory.com/247#entry247comment</comments>
      <pubDate>Thu, 31 Oct 2024 10:24:55 +0900</pubDate>
    </item>
    <item>
      <title>LangFlow 시작하기</title>
      <link>https://herojoon-dev.tistory.com/246</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;LangFlow을 간단히 사용하며 Prompt 개념 익히기&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt; LangFlow란&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;● LangFlow란?&lt;/b&gt;&lt;br&gt;LangChain 애플리케이션을 쉽게 개발할 수 있는 시각화 프레임워크입니다.&lt;br&gt;쉽게 얘기하면 외부 언어 모델을 이용하여 시각적인 GUI를 가지고 AI 애플리케이션을 쉽게 개발할 수 있도록 해주는 프레임워크입니다. API도 지원하여 커스터마이징이나 통합, 데이터 처리 분석 등 다양하게 사용 가능합니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;● &lt;/b&gt;&lt;b&gt;LangChain이란?&lt;/b&gt;&lt;br&gt;대형 언어 모델(LLM)을 기반으로 다양한 데이터와 Integration으로 애플리케이션을 쉽게 개발할 수 있도록 지원하는 프레임워크입니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt; ●&amp;nbsp;LangFlow의 장점&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;&lt;li&gt;&lt;b&gt;사용자 친화적인 인터페이스&lt;/b&gt;: 직관적인&amp;nbsp;시각적&amp;nbsp;인터페이스를&amp;nbsp;제공하여&amp;nbsp;사용자들이&amp;nbsp;복잡한&amp;nbsp;설정&amp;nbsp;없이도&amp;nbsp;쉽게&amp;nbsp;프로세스를&amp;nbsp;설계하고&amp;nbsp;관리할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;모듈화된 구성 요소&lt;/b&gt;: 다양한&amp;nbsp;구성&amp;nbsp;요소(프롬프트,&amp;nbsp;API&amp;nbsp;호출&amp;nbsp;등)를&amp;nbsp;모듈화하여&amp;nbsp;제공하므로&amp;nbsp;사용자가&amp;nbsp;필요에&amp;nbsp;따라&amp;nbsp;쉽게&amp;nbsp;조합하고&amp;nbsp;재사용할&amp;nbsp;수&amp;nbsp;있습니다.&amp;nbsp;이는&amp;nbsp;개발&amp;nbsp;시간을&amp;nbsp;단축하고&amp;nbsp;유연성을&amp;nbsp;높입니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;RAG 기능&lt;/b&gt;: LangFlow는&amp;nbsp;RAG&amp;nbsp;기능을&amp;nbsp;통해&amp;nbsp;사용자가&amp;nbsp;외부&amp;nbsp;데이터를&amp;nbsp;활용하여&amp;nbsp;모델의&amp;nbsp;응답을&amp;nbsp;향상시키는&amp;nbsp;데&amp;nbsp;도움을&amp;nbsp;줍니다.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;실시간 테스트와 디버깅&lt;/b&gt;: Playground와&amp;nbsp;같은&amp;nbsp;기능을&amp;nbsp;통해&amp;nbsp;사용자는&amp;nbsp;실시간으로&amp;nbsp;프롬프트와&amp;nbsp;모델의&amp;nbsp;응답을&amp;nbsp;테스트하고&amp;nbsp;조정할&amp;nbsp;수&amp;nbsp;있어,&amp;nbsp;최적의&amp;nbsp;결과를&amp;nbsp;쉽게&amp;nbsp;도출할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;다양한&amp;nbsp;모델&amp;nbsp;지원&lt;/b&gt;:&amp;nbsp;여러&amp;nbsp;언어&amp;nbsp;모델과&amp;nbsp;통합이&amp;nbsp;가능하여&amp;nbsp;사용자가&amp;nbsp;필요에&amp;nbsp;맞는&amp;nbsp;모델을&amp;nbsp;선택할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;할 것 요약&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;LangFlow&amp;nbsp;회원가입&amp;nbsp;or&amp;nbsp;로그인 &lt;br&gt;2.&amp;nbsp;LangFlow&amp;nbsp;시작하기 &lt;br&gt;3.&amp;nbsp;LangFlow의&amp;nbsp;[Basic&amp;nbsp;Prompting&amp;nbsp;(Hello,&amp;nbsp;World)]&amp;nbsp;템플릿&amp;nbsp;살펴보기&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. LangFlow 회원가입 or 로그인&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1-1. 아래 LangFlow 웹사이트로 이동합니다.&lt;/b&gt;&lt;br&gt;- LangFlow 웹사이트 URL: &lt;a href=&quot;https://www.langflow.org/&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://www.langflow.org/&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Langflow - Create your AI App!&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;LangFlow is a GUI for LangChain, designed with react-flow to provide an effortless way to experiment and prototype flows with drag-and-drop components and a chat box.&quot; data-og-host=&quot;www.langflow.org&quot; data-og-source-url=&quot;https://www.langflow.org/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/TYIaS/hyXs1lvJ10/ykAsjY7IhRBFLVDjjIbkw1/img.png?width=1176&amp;amp;height=849&amp;amp;face=0_0_1176_849,https://scrap.kakaocdn.net/dn/bOJT0d/hyXsXpSQgx/OBElT56jp5wHdj4mDnxTk1/img.png?width=1176&amp;amp;height=849&amp;amp;face=0_0_1176_849,https://scrap.kakaocdn.net/dn/bZ8GyR/hyXpoo9dhL/6kSztSZwiHo2miDtOTmbRk/img.png?width=1176&amp;amp;height=849&amp;amp;face=0_0_1176_849&quot; data-og-url=&quot;https://www.langflow.org/&quot;&gt;&lt;a href=&quot;https://www.langflow.org/&quot; target=&quot;_blank&quot; data-source-url=&quot;https://www.langflow.org/&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/TYIaS/hyXs1lvJ10/ykAsjY7IhRBFLVDjjIbkw1/img.png?width=1176&amp;amp;height=849&amp;amp;face=0_0_1176_849,https://scrap.kakaocdn.net/dn/bOJT0d/hyXsXpSQgx/OBElT56jp5wHdj4mDnxTk1/img.png?width=1176&amp;amp;height=849&amp;amp;face=0_0_1176_849,https://scrap.kakaocdn.net/dn/bZ8GyR/hyXpoo9dhL/6kSztSZwiHo2miDtOTmbRk/img.png?width=1176&amp;amp;height=849&amp;amp;face=0_0_1176_849')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Langflow - Create your AI App!&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;LangFlow is a GUI for LangChain, designed with react-flow to provide an effortless way to experiment and prototype flows with drag-and-drop components and a chat box.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;www.langflow.org&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;1-2. [Sign Up for Free]를 클릭하여 회원가입 or 로그인 화면으로 이동합니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1606&quot; data-origin-height=&quot;986&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p5Ki1/btsKrgKLLtG/OdH8WesVToaEEXQKPdo1V0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p5Ki1/btsKrgKLLtG/OdH8WesVToaEEXQKPdo1V0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p5Ki1/btsKrgKLLtG/OdH8WesVToaEEXQKPdo1V0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp5Ki1%2FbtsKrgKLLtG%2FOdH8WesVToaEEXQKPdo1V0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;787&quot; height=&quot;483&quot; data-origin-width=&quot;1606&quot; data-origin-height=&quot;986&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;1-3. 회원가입 or 로그인 합니다.&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;신규 회원은 아래 원하는 방식으로 회원가입 하시면 됩니다.&lt;/li&gt;&lt;li&gt;기존 회원은 [Sign In] 하시면 됩니다.&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;1321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GEyMy/btsKqQMwDpw/FWathDJbPTHWs8Vo7rhVb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GEyMy/btsKqQMwDpw/FWathDJbPTHWs8Vo7rhVb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GEyMy/btsKqQMwDpw/FWathDJbPTHWs8Vo7rhVb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGEyMy%2FbtsKqQMwDpw%2FFWathDJbPTHWs8Vo7rhVb1%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;532&quot; height=&quot;745&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;1321&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr 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;2. LangFlow 시작하기&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2-1. LangFlow를 사용해보기 위해서 [New Project]를 클릭합니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1641&quot; data-origin-height=&quot;891&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ndGiE/btsKrMvCI3Y/mMqnDBUymVsVAhG6AFMTs0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ndGiE/btsKrMvCI3Y/mMqnDBUymVsVAhG6AFMTs0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ndGiE/btsKrMvCI3Y/mMqnDBUymVsVAhG6AFMTs0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FndGiE%2FbtsKrMvCI3Y%2FmMqnDBUymVsVAhG6AFMTs0%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;1641&quot; height=&quot;891&quot; data-origin-width=&quot;1641&quot; data-origin-height=&quot;891&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-2. 아래 LangFlow에서 제공하는 템플릿 중 [Basic Prompting (Hello, World)]를 클릭합니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1588&quot; data-origin-height=&quot;1303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R4AIW/btsKp6id2Fc/BLyjlpLbDLUhWIKZbZha9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R4AIW/btsKp6id2Fc/BLyjlpLbDLUhWIKZbZha9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R4AIW/btsKp6id2Fc/BLyjlpLbDLUhWIKZbZha9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR4AIW%2FbtsKp6id2Fc%2FBLyjlpLbDLUhWIKZbZha9k%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;809&quot; height=&quot;664&quot; data-origin-width=&quot;1588&quot; data-origin-height=&quot;1303&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 템플릿은 가장 기본적인 Prompt 예제입니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;해당 템플릿에서는 OpenAI 언어모델을 이용하여 입력 사항에 대한 결과를 도출합니다.&lt;br&gt;OpenAI를 사용하기 때문에&amp;nbsp;&lt;b&gt;&lt;u&gt;사전에 OepnAI API Key를 발급&lt;/u&gt;&lt;/b&gt;받으셔야하며&amp;nbsp;&lt;b&gt;&lt;u&gt;&lt;span style=&quot;color: #EE2323;&quot;&gt;OpenAI API Key는 유료&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;입니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;- OpenAI API Key 발급 방법&lt;/b&gt;&lt;br&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/247&quot; target=&quot;_self&quot;&gt;&lt;span&gt;https://herojoon-dev.tistory.com/247&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;OpenAI의 API Key 발급하기 &amp;amp; 테스트 하기&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;목표OpenAI의 API Key를 발급해보고 발급된 API Key를 이용하여 간단한 테스트를 진행합니다.&amp;nbsp;OpenAI란● OpenAI란?OpenAI는&amp;nbsp;인공지능과&amp;nbsp;머신러닝&amp;nbsp;모델,&amp;nbsp;특히&amp;nbsp;언어&amp;nbsp;모델(예:&amp;nbsp;GPT)을&amp;nbsp;개발하여&amp;nbsp;사용자가&quot; data-og-host=&quot;herojoon-dev.tistory.com&quot; data-og-source-url=&quot;https://herojoon-dev.tistory.com/247&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ftdG2/hyXpD0ZHHA/HQc98ZuotXqrBThFe0a7DK/img.png?width=800&amp;amp;height=333&amp;amp;face=0_0_800_333,https://scrap.kakaocdn.net/dn/dGzMck/hyXpxTZEn2/MsLNB7mNWOYENN66y3NLrk/img.png?width=800&amp;amp;height=333&amp;amp;face=0_0_800_333,https://scrap.kakaocdn.net/dn/blVYuY/hyXsZgYG39/zS2X4mokw30xkQRKkKdmg1/img.png?width=1454&amp;amp;height=695&amp;amp;face=0_0_1454_695&quot; data-og-url=&quot;https://herojoon-dev.tistory.com/247&quot;&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/247&quot; target=&quot;_blank&quot; data-source-url=&quot;https://herojoon-dev.tistory.com/247&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ftdG2/hyXpD0ZHHA/HQc98ZuotXqrBThFe0a7DK/img.png?width=800&amp;amp;height=333&amp;amp;face=0_0_800_333,https://scrap.kakaocdn.net/dn/dGzMck/hyXpxTZEn2/MsLNB7mNWOYENN66y3NLrk/img.png?width=800&amp;amp;height=333&amp;amp;face=0_0_800_333,https://scrap.kakaocdn.net/dn/blVYuY/hyXsZgYG39/zS2X4mokw30xkQRKkKdmg1/img.png?width=1454&amp;amp;height=695&amp;amp;face=0_0_1454_695')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;OpenAI의 API Key 발급하기 &amp;amp; 테스트 하기&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;목표OpenAI의 API Key를 발급해보고 발급된 API Key를 이용하여 간단한 테스트를 진행합니다.&amp;nbsp;OpenAI란● OpenAI란?OpenAI는&amp;nbsp;인공지능과&amp;nbsp;머신러닝&amp;nbsp;모델,&amp;nbsp;특히&amp;nbsp;언어&amp;nbsp;모델(예:&amp;nbsp;GPT)을&amp;nbsp;개발하여&amp;nbsp;사용자가&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;herojoon-dev.tistory.com&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-3. 아래와 같은 화면이 나오게 됩니다.&lt;/b&gt;&lt;br&gt;&lt;b&gt;[Chat Input]&lt;/b&gt; -&amp;gt;&lt;b&gt; [Prompt]&lt;/b&gt; -&amp;gt; &lt;b&gt;[OpenAI]&lt;/b&gt; -&amp;gt; &lt;b&gt;[Chat Output]&lt;/b&gt; 으로 연결이 되어 있죠?&lt;br&gt;이것은 LangFlow를 구현하는 각각의 컴포넌트인데요. 어떤 것인지 간단히 살펴볼게요.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;&amp;lt;컴포넌트 설명&amp;gt;&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;Chat Input&lt;/b&gt;: 이 구성 요소는 채팅에서 사용자 입력을 수집합니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Prompt&lt;/b&gt;: 프롬프트는 언어 모델의 입력 역할을 하며, 프롬프트 템플릿을 사용하여 매개변수화 할 수 있고 작업의 방향성을 지시할 수 있습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;OpenAI&lt;/b&gt;: 결과 생성을 위한 언어 모델입니다. 언어 모델은 다양하지만 예제에서는 OpenAI를 사용하고 있습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Chat Output&lt;/b&gt;: 이&amp;nbsp;구성&amp;nbsp;요소는&amp;nbsp;채팅에&amp;nbsp;메시지를&amp;nbsp;보냅니다.&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2546&quot; data-origin-height=&quot;1386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v2Q5P/btsKraRmJH7/3zurOrUjDR3Y5mdyld49Ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v2Q5P/btsKraRmJH7/3zurOrUjDR3Y5mdyld49Ok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v2Q5P/btsKraRmJH7/3zurOrUjDR3Y5mdyld49Ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv2Q5P%2FbtsKraRmJH7%2F3zurOrUjDR3Y5mdyld49Ok%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;2546&quot; height=&quot;1386&quot; data-origin-width=&quot;2546&quot; data-origin-height=&quot;1386&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-4. 위 컴포넌트 중 [OpenAI]라고 쓰여진 언어 모델 컴포넌트에 OpenAI API Key를 등록해주어야 합니다.&lt;/b&gt;&lt;br&gt;등록하지 않으면 오류가 발생합니다.&lt;br&gt;[OpenAI Api Key]의 [지구본 모양 아이콘]을 클릭합니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;628&quot; data-origin-height=&quot;940&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AJgd8/btsKqKMqadm/Ka0bW6ncWlXGjrWtOpYOmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AJgd8/btsKqKMqadm/Ka0bW6ncWlXGjrWtOpYOmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AJgd8/btsKqKMqadm/Ka0bW6ncWlXGjrWtOpYOmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAJgd8%2FbtsKqKMqadm%2FKa0bW6ncWlXGjrWtOpYOmk%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;456&quot; height=&quot;683&quot; data-origin-width=&quot;628&quot; data-origin-height=&quot;940&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-5. [Add New Variable]을 클릭합니다. 새로운 변수 추가라는 뜻입니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;944&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F9zKw/btsKq953pZm/z4KIN6U6TCIX9pix9rUL11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F9zKw/btsKq953pZm/z4KIN6U6TCIX9pix9rUL11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F9zKw/btsKq953pZm/z4KIN6U6TCIX9pix9rUL11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF9zKw%2FbtsKq953pZm%2Fz4KIN6U6TCIX9pix9rUL11%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;459&quot; height=&quot;685&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;944&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-6. 아래 내용을 입력해줍니다.&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;Variable Name&lt;/b&gt;: 변수를 구분하기 위한 이름&lt;/li&gt;&lt;li&gt;&lt;b&gt;Type (optional)&lt;/b&gt;: API Key 값이기 때문에 보안을 위해 Credential 타입으로 지정하였습니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Value&lt;/b&gt;: 발급받은 OpenAI API Key를 입력합니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Apply To Fields (optional)&lt;/b&gt;: OpenAI API Key를 선택해줍니다. 검색으로 찾으면 더욱 빠르게 찾을 수 있습니다.&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;1055&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LVrRw/btsKrc9w9Vq/FxSe2qKe61HZUtuq2SCXD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LVrRw/btsKrc9w9Vq/FxSe2qKe61HZUtuq2SCXD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LVrRw/btsKrc9w9Vq/FxSe2qKe61HZUtuq2SCXD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLVrRw%2FbtsKrc9w9Vq%2FFxSe2qKe61HZUtuq2SCXD1%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;442&quot; height=&quot;586&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;1055&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-7. [Save Variable]을 클릭하여 OpenAI의 API Key를 저장해줍니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;814&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TRScZ/btsKrcuYHjz/EawFxcImP7HwlhO9PggZcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TRScZ/btsKrcuYHjz/EawFxcImP7HwlhO9PggZcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TRScZ/btsKrcuYHjz/EawFxcImP7HwlhO9PggZcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTRScZ%2FbtsKrcuYHjz%2FEawFxcImP7HwlhO9PggZcK%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;446&quot; height=&quot;458&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;814&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-8. OpenAI API Key가 정상적으로 등록되었다면 아래와 같이 저장된 변수 값이 보여집니다. 선택해줍니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;950&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0vWun/btsKrwGKc0n/tXbFWr2UEfoQRNDSEo8nH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0vWun/btsKrwGKc0n/tXbFWr2UEfoQRNDSEo8nH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0vWun/btsKrwGKc0n/tXbFWr2UEfoQRNDSEo8nH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0vWun%2FbtsKrwGKc0n%2FtXbFWr2UEfoQRNDSEo8nH0%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;430&quot; height=&quot;683&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;950&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;이렇게까지가 [&lt;span style=&quot;color: #211A14;&quot;&gt;Basic Prompting (Hello, World)&lt;/span&gt;]의 사용 준비과정이었습니다.&lt;br&gt;이제 테스트를 진행해보겠습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-9. 오른쪽 하단에 있는 [Playground]를 클릭하여 실행시켜줍니다.&lt;/b&gt;&lt;br&gt;&lt;b&gt;&amp;lt;Playground란? 이름이 Playground인 이유?&amp;gt;&lt;/b&gt;&lt;br&gt;Playground는 사용자가 만든 프롬프트 흐름을 실시간으로 테스트하고 디버그할 수 있는 인터페이스라고 합니다.&lt;br&gt;해당 버튼 이름이 왜 Playground일까 궁금했었는데 사용자가 다양한 설정을 실험하며 모델의 응답을 실시간으로 확인할 수 있는 테스트 공간을 제공한다는 의미로 지어진게 아닐까 싶습니다.&lt;br&gt;Playground의 사전적 의미는 운동장, 놀이터이므로 실컷 실험해라 하는 직관적 이름으로 지어진게 아닐까요.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;1009&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD3GR6/btsKr6HwnjA/8u4cepvAIeG4UuZVGRTm5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD3GR6/btsKr6HwnjA/8u4cepvAIeG4UuZVGRTm5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD3GR6/btsKr6HwnjA/8u4cepvAIeG4UuZVGRTm5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD3GR6%2FbtsKr6HwnjA%2F8u4cepvAIeG4UuZVGRTm5k%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;524&quot; height=&quot;496&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;1009&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;2-10. [Playground]를 클릭하여 테스트 공간으로 이동했습니다.&lt;/b&gt;&lt;br&gt;채팅창에 값을 입력하면 OpenAI를 통해 응답이 출력됩니다.&lt;br&gt;그런데 눈치채셨나요?&lt;br&gt;채팅창 응답 내용이 해적과 같이 익살스럽죠?&lt;br&gt;왜 그렇게 출력되는 것일까요? 그 이유는 아래에서 살펴보겠습니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1519&quot; data-origin-height=&quot;1145&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cM3Vpv/btsKrCtoC1z/RLUWtLpJdQhEe63LbKZpNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cM3Vpv/btsKrCtoC1z/RLUWtLpJdQhEe63LbKZpNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cM3Vpv/btsKrCtoC1z/RLUWtLpJdQhEe63LbKZpNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcM3Vpv%2FbtsKrCtoC1z%2FRLUWtLpJdQhEe63LbKZpNk%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;1519&quot; height=&quot;1145&quot; data-origin-width=&quot;1519&quot; data-origin-height=&quot;1145&quot;/&gt;&lt;/span&gt;&lt;/figure&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;3. LangFlow의 [Basic Prompting (Hello, World)] 템플릿 살펴보기&lt;/b&gt;&lt;/h4&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3-1. 각 컴포넌트들은 아래와 같은 역할을 합니다.&lt;/b&gt;&lt;/p&gt;&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;li&gt;&lt;b&gt;Chat Input&lt;/b&gt;: 채팅 입력값을 user_input 매개변수로 전달합니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Prompt&lt;/b&gt;: 매개변수 주입 값과 프롬프트의 지시 형식을 매핑하여 OpenAI로 입력합니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;OpenAI&lt;/b&gt;: OpenAI LLM을 사용하여 텍스트를 생성합니다.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Chat Output&lt;/b&gt;: OpenAI를 통해 생성된 결과 텍스트를 출력합니다.&lt;/li&gt;&lt;/ul&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2080&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ci2uCD/btsKrNIhVJh/fPP0cMKEhxN0NQRt2eeuu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ci2uCD/btsKrNIhVJh/fPP0cMKEhxN0NQRt2eeuu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ci2uCD/btsKrNIhVJh/fPP0cMKEhxN0NQRt2eeuu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fci2uCD%2FbtsKrNIhVJh%2FfPP0cMKEhxN0NQRt2eeuu1%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;2080&quot; height=&quot;722&quot; data-origin-width=&quot;2080&quot; data-origin-height=&quot;722&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;3-2. 위에서 채팅창 응답 내용이 해적과 같이 익살스럽게 작성된 이유는 Prompt에서 지시했기 때문인데요.&lt;/b&gt;&lt;br&gt;Prompt를 살펴볼까요?&lt;br&gt;Prompt 컴포넌트의 [Template]를 클릭합니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;609&quot; data-origin-height=&quot;654&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ORMaq/btsKqJGW0Nr/pJcGnPSzbZpnIMgJPD0TD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ORMaq/btsKqJGW0Nr/pJcGnPSzbZpnIMgJPD0TD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ORMaq/btsKqJGW0Nr/pJcGnPSzbZpnIMgJPD0TD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FORMaq%2FbtsKqJGW0Nr%2FpJcGnPSzbZpnIMgJPD0TD1%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;398&quot; height=&quot;427&quot; data-origin-width=&quot;609&quot; data-origin-height=&quot;654&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;Prompt는 언어 모델이 사용자 입력에 대한 응답을 생성할 때 필요한 지침을 제공하는 역할을 합니다.&lt;br&gt;현재 정의된 Prompt 내용을 살펴보면 Answer the user as if you were a pirate.는 사용자에게 해적처럼 응답해달라는 지시어입니다.&lt;br&gt;이&amp;nbsp;프롬프트에서&amp;nbsp;{user_input}은&amp;nbsp;사용자가&amp;nbsp;입력한&amp;nbsp;질문이나&amp;nbsp;텍스트를&amp;nbsp;나타내며,&amp;nbsp;모델은&amp;nbsp;이를&amp;nbsp;바탕으로&amp;nbsp;Answer&amp;nbsp;부분에&amp;nbsp;공식적인&amp;nbsp;어조로&amp;nbsp;답변을&amp;nbsp;작성하게&amp;nbsp;됩니다.&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1142&quot; data-origin-height=&quot;952&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z1WJa/btsKqApSAO9/sSMWvszNcEmE6uFBSNtk2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z1WJa/btsKqApSAO9/sSMWvszNcEmE6uFBSNtk2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z1WJa/btsKqApSAO9/sSMWvszNcEmE6uFBSNtk2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz1WJa%2FbtsKqApSAO9%2FsSMWvszNcEmE6uFBSNtk2k%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;672&quot; height=&quot;560&quot; data-origin-width=&quot;1142&quot; data-origin-height=&quot;952&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;3-3. 그럼 해적처럼 응답해달라는 부분을 다르게 변환하면 어떻게 될까요?&lt;/b&gt;&lt;br&gt;Answer the user as if you were a pirate. 부분을&lt;br&gt;Please respond to the user with an official tone. &quot;공식적인 어조로 사용자에게 응답해주세요.&quot;로 바꿔보겠습니다.&lt;br&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;3-4. 아래처럼 내용 변경 후 [Check &amp;amp; Save]를 클릭해줍니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1169&quot; data-origin-height=&quot;949&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Heah0/btsKqQzf72w/exrmWKPkfOesIT8CAUWHc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Heah0/btsKqQzf72w/exrmWKPkfOesIT8CAUWHc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Heah0/btsKqQzf72w/exrmWKPkfOesIT8CAUWHc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHeah0%2FbtsKqQzf72w%2FexrmWKPkfOesIT8CAUWHc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;568&quot; data-origin-width=&quot;1169&quot; data-origin-height=&quot;949&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;3-5. 다시 [Playground]를 클릭하여 채팅창에 입력값을 작성해보겠습니다.&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;1009&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bD3GR6/btsKr6HwnjA/8u4cepvAIeG4UuZVGRTm5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bD3GR6/btsKr6HwnjA/8u4cepvAIeG4UuZVGRTm5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bD3GR6/btsKr6HwnjA/8u4cepvAIeG4UuZVGRTm5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbD3GR6%2FbtsKr6HwnjA%2F8u4cepvAIeG4UuZVGRTm5k%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;524&quot; height=&quot;496&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;1009&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&lt;b&gt;3-6. 채팅창에 위에서 테스트했던 질문을 동일하게 입력해줍니다.&lt;/b&gt;&lt;br&gt;해적의 익살스런 말투가 정중한 어조로 바뀌어 응답된 것을 확인할 수 있습니다.&lt;br&gt;이것이 Prompt의 역할입니다.&lt;br&gt;언어 모델에서 원하는 결과를 도출하기 위해 지침을 지정하고 가이드하는 역할을 한다는 것을 알 수 있게 되었습니다.&amp;nbsp;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1062&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhvSvt/btsKrdtXVec/f6Mmzk3kKpM4T9zFuLXdk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhvSvt/btsKrdtXVec/f6Mmzk3kKpM4T9zFuLXdk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhvSvt/btsKrdtXVec/f6Mmzk3kKpM4T9zFuLXdk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhvSvt%2FbtsKrdtXVec%2Ff6Mmzk3kKpM4T9zFuLXdk1%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;569&quot; height=&quot;381&quot; data-origin-width=&quot;1062&quot; data-origin-height=&quot;712&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;Prompt 내용을 바꿔가면서 다시 테스트!&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1487&quot; data-origin-height=&quot;1112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9lcyF/btsKqvCdVZr/3GpjMuFGiviMqvy3x9UUU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9lcyF/btsKqvCdVZr/3GpjMuFGiviMqvy3x9UUU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9lcyF/btsKqvCdVZr/3GpjMuFGiviMqvy3x9UUU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9lcyF%2FbtsKqvCdVZr%2F3GpjMuFGiviMqvy3x9UUU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;721&quot; height=&quot;539&quot; data-origin-width=&quot;1487&quot; data-origin-height=&quot;1112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;끝.&lt;br&gt;&amp;nbsp;&lt;br&gt;오늘은 간단한 LangFlow 사용법을 알아보았습니다.&lt;br&gt;다음에는 LangFlow의 컴포넌트를 더욱 다양한 시나리오로 사용하는 포스팅을 진행할까 합니다.&lt;br&gt;감사합니다.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;- Input &amp;amp; Output 컴포넌트 &lt;a href=&quot;https://docs.langflow.org/components-io&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://docs.langflow.org/components-io&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Inputs &amp;amp; Outputs | Langflow Documentation&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.&quot; data-og-host=&quot;docs.langflow.org&quot; data-og-source-url=&quot;https://docs.langflow.org/components-io&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bOXGfJ/hyXsVllhCC/WgldNLwJl7NSU9HJS6B8e1/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/xV7S2/hyXptDZRpO/y2Q4DTUzOaeNxkQQa5GQ01/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/cF0Rbe/hyXsWLjSWy/2t4qpxjeEqsAW3IkznrpY1/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512&quot; data-og-url=&quot;https://docs.langflow.org/components-io&quot;&gt;&lt;a href=&quot;https://docs.langflow.org/components-io&quot; target=&quot;_blank&quot; data-source-url=&quot;https://docs.langflow.org/components-io&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bOXGfJ/hyXsVllhCC/WgldNLwJl7NSU9HJS6B8e1/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/xV7S2/hyXptDZRpO/y2Q4DTUzOaeNxkQQa5GQ01/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/cF0Rbe/hyXsWLjSWy/2t4qpxjeEqsAW3IkznrpY1/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Inputs &amp;amp; Outputs | Langflow Documentation&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;This category of components defines where data enters and exits your flow. They dynamically alter the Playground and can be renamed to facilitate building and maintaining your flows.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;docs.langflow.org&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;- Prompt 컴포넌트: &lt;a href=&quot;https://docs.langflow.org/components-prompts&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://docs.langflow.org/components-prompts&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Prompts | Langflow Documentation&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;A prompt serves as the input to a language model, comprising multiple components that can be parameterized using prompt templates.&quot; data-og-host=&quot;docs.langflow.org&quot; data-og-source-url=&quot;https://docs.langflow.org/components-prompts&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oMKGg/hyXsXQZzj2/PCJh7ngdJKVElt0MZYtxW0/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/n8QvD/hyXpCgEDIj/c597S2kkKvFCZOei9HsJ8K/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/CWA6k/hyXs071IsO/aWjak6nGelu3x8VeMTjYw0/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512&quot; data-og-url=&quot;https://docs.langflow.org/components-prompts&quot;&gt;&lt;a href=&quot;https://docs.langflow.org/components-prompts&quot; target=&quot;_blank&quot; data-source-url=&quot;https://docs.langflow.org/components-prompts&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oMKGg/hyXsXQZzj2/PCJh7ngdJKVElt0MZYtxW0/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/n8QvD/hyXpCgEDIj/c597S2kkKvFCZOei9HsJ8K/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/CWA6k/hyXs071IsO/aWjak6nGelu3x8VeMTjYw0/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Prompts | Langflow Documentation&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;A prompt serves as the input to a language model, comprising multiple components that can be parameterized using prompt templates.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;docs.langflow.org&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;- 모델 컴포넌트: &lt;a href=&quot;https://docs.langflow.org/components-models#openai&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://docs.langflow.org/components-models#openai&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Models | Langflow Documentation&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;Model components are used to generate text using language models. These components can be used to generate text for various tasks such as chatbots, content generation, and more.&quot; data-og-host=&quot;docs.langflow.org&quot; data-og-source-url=&quot;https://docs.langflow.org/components-models#openai&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cP64aI/hyXpqUQ0fa/ROzMnKQlwbC0QKgK9iphKk/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/mRT7J/hyXptRAc2b/LIko933krENxwli8x6ggcK/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/by72As/hyXppn6bC8/bWLcCPRonKdLMkOBlhbcNk/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512&quot; data-og-url=&quot;https://docs.langflow.org/components-models&quot;&gt;&lt;a href=&quot;https://docs.langflow.org/components-models&quot; target=&quot;_blank&quot; data-source-url=&quot;https://docs.langflow.org/components-models#openai&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cP64aI/hyXpqUQ0fa/ROzMnKQlwbC0QKgK9iphKk/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/mRT7J/hyXptRAc2b/LIko933krENxwli8x6ggcK/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/by72As/hyXppn6bC8/bWLcCPRonKdLMkOBlhbcNk/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Models | Langflow Documentation&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;Model components are used to generate text using language models. These components can be used to generate text for various tasks such as chatbots, content generation, and more.&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;docs.langflow.org&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br&gt;- Playground: &lt;a href=&quot;https://docs.langflow.org/workspace-playground&quot; target=&quot;_blank&quot;&gt;&lt;span&gt;https://docs.langflow.org/workspace-playground&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;figure data-ke-type=&quot;opengraph&quot; data-og-title=&quot;Playground | Langflow Documentation&quot; data-ke-align=&quot;alignCenter&quot; data-og-description=&quot;The&amp;nbsp;Playground&amp;nbsp;is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different out&quot; data-og-host=&quot;docs.langflow.org&quot; data-og-source-url=&quot;https://docs.langflow.org/workspace-playground&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/buCVT7/hyXsQRSo9n/OG7gKwLKbtTE76ZYwyvkw1/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/OpBBR/hyXs4o3wQR/wDlI6ue1a7LNvf4L2NFG70/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512&quot; data-og-url=&quot;https://docs.langflow.org/workspace-playground&quot;&gt;&lt;a href=&quot;https://docs.langflow.org/workspace-playground&quot; target=&quot;_blank&quot; data-source-url=&quot;https://docs.langflow.org/workspace-playground&quot;&gt;&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/buCVT7/hyXsQRSo9n/OG7gKwLKbtTE76ZYwyvkw1/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/OpBBR/hyXs4o3wQR/wDlI6ue1a7LNvf4L2NFG70/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512')&quot;&gt; &lt;/div&gt;&lt;div class=&quot;og-text&quot;&gt;&lt;p class=&quot;og-title&quot;&gt;Playground | Langflow Documentation&lt;/p&gt;&lt;p class=&quot;og-desc&quot;&gt;The&amp;nbsp;Playground&amp;nbsp;is a dynamic interface designed for real-time interaction with AIs, allowing users to chat, access memories and monitor inputs and outputs. Here, users can directly prototype and their models, making adjustments and observing different out&lt;/p&gt;&lt;p class=&quot;og-host&quot;&gt;docs.langflow.org&lt;/p&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>LLM</category>
      <category>LangChain</category>
      <category>langflow opanai</category>
      <category>langflow 시작하기</category>
      <category>langflow 예제</category>
      <category>langflow 템플릿</category>
      <category>langflow 해보기</category>
      <category>langflow란</category>
      <category>llm 기초</category>
      <category>openai 연동해보기</category>
      <category>프롬프트 엔지니어링</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/246</guid>
      <comments>https://herojoon-dev.tistory.com/246#entry246comment</comments>
      <pubDate>Thu, 31 Oct 2024 10:24:00 +0900</pubDate>
    </item>
    <item>
      <title>Java gRPC API를 사용하여 gRPC 통신 4가지 예제 만들어 보기</title>
      <link>https://herojoon-dev.tistory.com/217</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;gRPC란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gRPC는 Google Remote Procedure Call의 약자로, Google에서 개발한 고성능 오픈소스 범용 RPC 프레임워크입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;544&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk0gD2/btsIIml5TDM/fXYJCVuec0IqQ42I9KKUp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk0gD2/btsIIml5TDM/fXYJCVuec0IqQ42I9KKUp1/img.png&quot; data-alt=&quot;gRPC&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk0gD2/btsIIml5TDM/fXYJCVuec0IqQ42I9KKUp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk0gD2%2FbtsIIml5TDM%2FfXYJCVuec0IqQ42I9KKUp1%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;647&quot; height=&quot;407&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;gRPC&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;gRPC의 간단한 특징&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Protocol Buffers(Protobuf)를 인터페이스 정의 언어(IDL: Interface Definition Language)로 사용&lt;/li&gt;
&lt;li&gt;Protocol Buffers(Protobuf)는 다른 메시지 방식과 비교해 압축률이 좋고 빠른 속도의 장점을 제공&lt;/li&gt;
&lt;li&gt;다양한 프로그래밍 언어 지원 (.proto 파일을 다양한 언어의 소스파일로 생성 해줌)
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;지원 언어 참고 URL: &lt;a href=&quot;https://grpc.io/docs/languages/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://grpc.io/docs/languages/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;HTTP/2 기반 전송을 통한 양방향 스트리밍 지원&lt;/li&gt;
&lt;li&gt;SSL/TLS,&amp;nbsp; ALTS, Google을 이용한 토큰 인증 등 다양한 보안 지원
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;참고 URL: &lt;a href=&quot;https://grpc.io/docs/guides/auth/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://grpc.io/docs/guides/auth/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Stub이란?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Stub(스텁)은 gRPC에서 중요한 개념입니다. Stub Layer(스텁 레이어)는 Call Layer(호출 레이어)을 감싸는 Wrapper(래퍼)입니다.&lt;/li&gt;
&lt;li&gt;gRPC는 .proto파일을 컴파일하여 자동으로 Stub 클래스 코드를 생성해줍니다.&lt;/li&gt;
&lt;li&gt;Stub은 서버와 클라이언트가 통신하는데 사용됩니다.&lt;/li&gt;
&lt;li&gt;클라이언트가 원격 서버의 메서드를 호출할 때,&amp;nbsp;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;Stub은 호출하는 메서드의 인자들을 직렬화하여 네트워크 전송가능한 형태로 만들고(마샬링)&lt;/li&gt;
&lt;li&gt;Stub은 직렬화된 데이터를 gRPC 채널을 통해 서버로 전송합니다.&lt;/li&gt;
&lt;li&gt;서버로부터의&amp;nbsp;응답이&amp;nbsp;오면&amp;nbsp;Stub은&amp;nbsp;응답&amp;nbsp;데이터를&amp;nbsp;역직렬화하여(언마샬링)&amp;nbsp;클라이언트에&amp;nbsp;반환합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;RPC란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원격&amp;nbsp;프로시저&amp;nbsp;호출(Remote&amp;nbsp;Procedure&amp;nbsp;Call)로&amp;nbsp;원격지의&amp;nbsp;프로세스나&amp;nbsp;메서드를&amp;nbsp;호출하여&amp;nbsp;사용할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;해줍니다. &lt;br /&gt;프로세스&amp;nbsp;간&amp;nbsp;통신기술이라고&amp;nbsp;할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Protocol Buffers란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로토콜&amp;nbsp;버퍼는&amp;nbsp;구조화된&amp;nbsp;데이터를&amp;nbsp;직렬화하기&amp;nbsp;위한&amp;nbsp;Google의&amp;nbsp;언어&amp;nbsp;중립적,&amp;nbsp;플랫폼&amp;nbsp;중립적,&amp;nbsp;확장&amp;nbsp;가능한&amp;nbsp;메커니즘입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1722905696903&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// .proto파일 예시
syntax = &quot;proto3&quot;;

message SearchRequest {
  string query = 1;
  int32 page_number = 2;
  int32 results_per_page = 3;
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고 URL: &lt;a href=&quot;https://protobuf.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://protobuf.dev/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;gRPC와 REST 차이&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 185px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px; text-align: center;&quot;&gt;gRPC&lt;/td&gt;
&lt;td style=&quot;width: 30.4651%; height: 17px; text-align: center;&quot;&gt;REST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 17px;&quot;&gt;호출 방식&lt;/td&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px;&quot;&gt;클라이언트가&amp;nbsp;서버의&amp;nbsp;특정&amp;nbsp;함수를&amp;nbsp;직,간접적으로&amp;nbsp;호출하는&amp;nbsp;방식&lt;/td&gt;
&lt;td style=&quot;width: 30.4651%; height: 17px;&quot;&gt;클라이언트가&amp;nbsp;서버에&amp;nbsp;데이터나&amp;nbsp;행위를&amp;nbsp;요청하는&amp;nbsp;방식&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 17px;&quot;&gt;통신 프로토콜&lt;/td&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px;&quot;&gt;http/2.0&lt;br /&gt;- gRPC를 사용하기 위해서는 로드밸런서에서 http/2.0을 지원해야 합니다.&lt;/td&gt;
&lt;td style=&quot;width: 30.4651%; height: 17px;&quot;&gt;http/1.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 17px;&quot;&gt;데이터 형식&lt;/td&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px;&quot;&gt;.proto 데이터 형식 (Protocol Buffers)&lt;br /&gt;- 바이너리로 데이터 직렬화하여 사용&lt;/td&gt;
&lt;td style=&quot;width: 30.4651%; height: 17px;&quot;&gt;json, xml 데이터 형식 (주로 json)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;양방향 스트리밍&lt;/td&gt;
&lt;td style=&quot;width: 30.1163%; height: 20px;&quot;&gt;지원&lt;/td&gt;
&lt;td style=&quot;width: 30.4651%; height: 20px;&quot;&gt;지원하지 않음 (WebSocket을 사용하여 가능)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 60px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 60px;&quot;&gt;서비스 정의&lt;br /&gt;(Service Contract)&lt;br /&gt;- 클라이언트와 서버 간 통신에 대한 규약, 약속에 대한 정의, 문서&lt;/td&gt;
&lt;td style=&quot;width: 30.1163%; height: 60px;&quot;&gt;gRPC는 서비스를 정의하는 파일로 .proto를 사용해야 하며(강제), 정의한 .proto 파일을 컴파일하여 클라이언트와 서버의 소스코드를 자동 생성해줍니다. 정해진 규약을 사용해야하는 엄격함이 있습니다.&lt;/td&gt;
&lt;td style=&quot;width: 30.4651%; height: 60px;&quot;&gt;REST의 경우는 엄격한 규약이 강제로 정해져 있지 않습니다.(느슨함)&lt;br /&gt;REST의 경우는 한 예로 OpenAPI와 같은 도구를 이용하여 API문서를 작성하고 데이터에 대한 정의를 지정할 수 있습니다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 20px;&quot;&gt;브라우저 지원&lt;/td&gt;
&lt;td style=&quot;width: 30.1163%; height: 20px;&quot;&gt;지원하지 않음 (별도 Proxy 사용하면 됨)&lt;/td&gt;
&lt;td style=&quot;width: 30.4651%; height: 20px;&quot;&gt;지원&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 14.4186%; height: 17px;&quot;&gt;사용 예&lt;/td&gt;
&lt;td style=&quot;width: 30.1163%; height: 17px;&quot;&gt;저지연, 고성능 사용이 필요한 서비스 통신&lt;br /&gt;실시간 스트리밍&lt;br /&gt;&lt;br /&gt;ex) MSA 구조의 백엔드 서비스끼리의 통신&lt;/td&gt;
&lt;td style=&quot;width: 30.4651%; height: 17px;&quot;&gt;웹 통신&lt;br /&gt;ex) 프론트엔드와 백엔드 간 통신&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;gRPC 통신 간략 소개&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고 URL: &lt;a href=&quot;https://grpc.io/docs/what-is-grpc/core-concepts/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://grpc.io/docs/what-is-grpc/core-concepts/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;gRPC에서는 아래와 같이 4가지의 통신을 지원합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. Unary RPC (단항 RPC)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1722867403266&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 1.Unary RPC (단항 RPC)
rpc SayHello(HelloRequest) returns (HelloResponse);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. Server Streaming RPC (서버 스트리밍 RPC)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1722867458196&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 2. Server Streaming RPC (서버 스트리밍 RPC)
rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. Client Streaming RPC (클라이언트 스트리밍 RPC)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1722867480540&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 3. Client Streaming RPC (클라이언트 스트리밍 RPC)
rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. Bidirectional Streaming RPC (양방향 스트리밍 RPC)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1722867500427&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 4. Bidirectional Streaming RPC (양방향 스트리밍 RPC)
rpc BidiHello(stream HelloRequest) returns (stream HelloResponse);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;1537&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dnviVp/btsIUuKMvAa/T8xA46frFpeRTKCZg7wIwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dnviVp/btsIUuKMvAa/T8xA46frFpeRTKCZg7wIwK/img.png&quot; data-alt=&quot;gRPC 통신 4가지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dnviVp/btsIUuKMvAa/T8xA46frFpeRTKCZg7wIwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdnviVp%2FbtsIUuKMvAa%2FT8xA46frFpeRTKCZg7wIwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1137&quot; height=&quot;1537&quot; data-origin-width=&quot;1137&quot; data-origin-height=&quot;1537&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;gRPC 통신 4가지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Java를&amp;nbsp;이용한&amp;nbsp;gRPC&amp;nbsp;예제&amp;nbsp;구현&amp;nbsp;해보기&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;개발 환경&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Java 17&lt;/li&gt;
&lt;li&gt;Spring Boot 3.3.0&lt;/li&gt;
&lt;li&gt;Gradle 8.6&lt;/li&gt;
&lt;li&gt;Google ProtoBuffers (proto 3)&lt;/li&gt;
&lt;/ul&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;Java에서 gRPC를 사용하기 위한 조건&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JDK 7이상 지원
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;참고 URL: &lt;a href=&quot;https://grpc.io/docs/languages/java/quickstart/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://grpc.io/docs/languages/java/quickstart/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;Java에서 gRPC를 사용하기 요약&lt;/b&gt;&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;build.gradle에 gRPC 의존성 추가&lt;/li&gt;
&lt;li&gt;.proto파일 생성 (서비스 정의)&lt;/li&gt;
&lt;li&gt;Gradle Build하여 Protocol Buffer Complier로 Java 서버, 클라이언트 코드 생성&lt;/li&gt;
&lt;li&gt;Java&amp;nbsp;gRPC&amp;nbsp;API를&amp;nbsp;사용하여&amp;nbsp;gRPC&amp;nbsp;통신&amp;nbsp;4가지&amp;nbsp;예제&amp;nbsp;만들어&amp;nbsp;보기&amp;nbsp;(클라이언트,&amp;nbsp;서버)&lt;/li&gt;
&lt;li&gt;예제 실행해보기 ( 서버 애플리케이션 실행 후 클라이언트 애플리케이션 실행)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;예제 시나리오&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트에서 자기소개 하면 서버에서 인사와 질문 응답주기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chqa4S/btsIThySptS/OBafOqqFQzO2s1VrrfNzz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chqa4S/btsIThySptS/OBafOqqFQzO2s1VrrfNzz1/img.png&quot; data-alt=&quot;gRPC java 예제&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chqa4S/btsIThySptS/OBafOqqFQzO2s1VrrfNzz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fchqa4S%2FbtsIThySptS%2FOBafOqqFQzO2s1VrrfNzz1%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;689&quot; height=&quot;338&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;531&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;gRPC java 예제&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;build.gradle에 gRPC 의존성 추가&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고 URL: &lt;a href=&quot;https://github.com/grpc/grpc-java/tree/master&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/grpc/grpc-java/tree/master&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;build.gradle파일에 추가해줘야 하는 gRPC 코드&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1722839718702&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plugins {
    /* for gRPC */
    id 'com.google.protobuf' version '0.9.4'
}

/* for gRPC */
protobuf {
    protoc {
        artifact = &quot;com.google.protobuf:protoc:3.25.1&quot;
    }
    plugins {
        grpc {
            artifact = 'io.grpc:protoc-gen-grpc-java:1.64.0'
        }
    }
    generateProtoTasks {
        all()*.plugins {
            grpc {}
        }
    }
}

dependencies {
    /* for gRPC */
    runtimeOnly 'io.grpc:grpc-netty-shaded:1.64.0'
    implementation 'io.grpc:grpc-protobuf:1.64.0'
    implementation 'io.grpc:grpc-stub:1.64.0'
    compileOnly 'org.apache.tomcat:annotations-api:6.0.53' // necessary for Java 9+
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;build.gradle파일 전체 코드&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1722839616769&quot; class=&quot;properties&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;plugins {
    id 'java'
    id 'org.springframework.boot' version '3.3.0'
    id 'io.spring.dependency-management' version '1.1.5'

    /* for gRPC */
    id 'com.google.protobuf' version '0.9.4'
}

group = 'com.herojoon.grpc'
version = '0.0.1-SNAPSHOT'

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

/* for gRPC */
protobuf {
    protoc {
        artifact = &quot;com.google.protobuf:protoc:3.25.1&quot;
    }
    plugins {
        grpc {
            artifact = 'io.grpc:protoc-gen-grpc-java:1.64.0'
        }
    }
    generateProtoTasks {
        all()*.plugins {
            grpc {}
        }
    }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'

    /* for gRPC */
    runtimeOnly 'io.grpc:grpc-netty-shaded:1.64.0'
    implementation 'io.grpc:grpc-protobuf:1.64.0'
    implementation 'io.grpc:grpc-stub:1.64.0'
    compileOnly 'org.apache.tomcat:annotations-api:6.0.53' // necessary for Java 9+
}

tasks.named('test') {
    useJUnitPlatform()
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;.proto 파일 작성 (Google Protocol Buffers &quot;proto 3&quot;버전 사용)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고 URL: &lt;a href=&quot;https://grpc.io/docs/languages/java/generated-code/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://grpc.io/docs/languages/java/generated-code/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;hello.proto파일 코드&amp;gt;&lt;/p&gt;
&lt;pre id=&quot;code_1722848102802&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/*
gRPC 서비스 정의
1) .proto파일은 src/main/proto 경로 아래 작성해줍니다.
2) .proto파일 작성 후 build Task를 실행시켜줍니다.
3) .proto파일에 정의한 서비스에 대하여 Java언어로 소스코드가 자동 생성됩니다.
4) 생성된 자바 소스코드는 build/classes/generated/source/proto/main 아래 생성됩니다.
 */

// protocol buffurs의 버전을 명시해줍니다. gRPC에서는 주로 proto3을 사용합니다.
syntax = &quot;proto3&quot;;

/*
java_multiple_files (default value: false)
- false일 경우 .proto 파일로 생성될 클래스 파일이 하나로 생성됨
- true일 경우 .proto 파일로 생성될 클래스 파일이 나뉘어 생성됨
 */
option java_multiple_files = true;
option java_package = &quot;com.herojoon.grpc&quot;;  // .proto 파일로 생성될 클래스 파일이 위치할 패키지명
option java_outer_classname = &quot;HelloProto&quot;;  // .proto 파일로 생성될 클래스 파일명


/*
통신할 서비스를 정의합니다.
- gRPC 종류: https://grpc.io/docs/what-is-grpc/core-concepts/#rpc-life-cycle
 */
service Hello {
  rpc SayHello (HelloRequest) returns (HelloResponse);  // Unary RPC (단방향 RPC)
  rpc LotsOfReplies(HelloRequest) returns (stream HelloResponse);  // Server streaming RPC (서버 스트리밍 RPC)
  rpc LotsOfGreetings(stream HelloRequest) returns (HelloResponse);  // Client streaming RPC (클라이언트 스트리밍 RPC)
  rpc BidiHello(stream HelloRequest) returns (stream HelloResponse);  // Bidirectional streaming RPC (양방향 스트리밍 RPC)
}

/*
요청 메시지 정의 (클라이언트 -&amp;gt; 서버)
 */
message HelloRequest {
  string name = 1;      // 이름
  int32 age = 2;        // 나이
  string message = 3;   // 하고 싶은 말 메시지
}

/*
응답 메시지 정의 (서버 -&amp;gt; 클라이언트)
 */
message HelloResponse {
  string greeting_message = 1;  // 인사 메시지
  string question_message = 2;  // 질문 메시지
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;● proto 네이밍 컨벤션&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공식문서에서 proto3의 네이밍 컨벤션은 아래와 같습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;message는 UpperCamelCase (PascalCase)로 권장합니다.&lt;/li&gt;
&lt;li&gt;field는 SnakeCase로 작성을 권장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;b&gt; &lt;i&gt;네이밍 컨벤션(Naming&amp;nbsp;Convention)이란?&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;i&gt;개발에서 함수명이나 변수명, 파일명 등을 어떤식으로 표기할지에 대한 네이밍 표기 규칙입니다.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;i&gt;CamelCase와 SnakeCase는 네이밍 컨벤션의 종류를 뜻합니다.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;i&gt;CamelCase는 단어의 구분자를 대문자로 표시해주는 네이밍 표기법입니다.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;i&gt;CamelCase는 lowerCamelCase와 UpperCamelCase로 나뉘는데&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;i&gt;lowerCamelCase는 앞 글자가 소문자인 CamelCase를 뜻합니다. ex) helloGreetingReq&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;i&gt;UpperCamelCase는 앞 글자가 대문자인 CamelCase를 뜻한다. ex) HelloGreetingReq&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;i&gt;SnakeCase는 단어의 구분자를 언더바(_)로 표시해주는 네이밍 표기법입니다.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;i&gt;ex) hello_greeting_req&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; 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;color: #333333; text-align: start;&quot;&gt;●&lt;span&gt; .proto파일 생성 위치&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.proto파일은 /src/main/proto폴더 아래 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;246&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4xGUN/btsIUwaJ0jM/upZ4WJN91uO9sPyHPDmSe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4xGUN/btsIUwaJ0jM/upZ4WJN91uO9sPyHPDmSe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4xGUN/btsIUwaJ0jM/upZ4WJN91uO9sPyHPDmSe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4xGUN%2FbtsIUwaJ0jM%2FupZ4WJN91uO9sPyHPDmSe1%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;220&quot; height=&quot;136&quot; data-origin-width=&quot;246&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;●&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;.proto파일을 Java 서버, 클라이언트 코드로 생성&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Gradle Build 해주면 해당 위치에 있는 .proto파일을 java 코드로 변환해줍니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;gRPC는 Protocol Buffer Complier를 사용하여 .proto파일을 서버와 클라이언트 코드를 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;779&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rY008/btsIUKUb9Ca/T0KKaQjHD9KLPZNUaZMgz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rY008/btsIUKUb9Ca/T0KKaQjHD9KLPZNUaZMgz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rY008/btsIUKUb9Ca/T0KKaQjHD9KLPZNUaZMgz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrY008%2FbtsIUKUb9Ca%2FT0KKaQjHD9KLPZNUaZMgz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;334&quot; height=&quot;667&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;779&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.proto파일로 생성된 코드는 아래와 같이 project/build/generated/source/proto/main/ 아래로 코드가 생성됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IkzET/btsIWflpo2t/j5DLYNwrUZIDjSM9cvmI41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IkzET/btsIWflpo2t/j5DLYNwrUZIDjSM9cvmI41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IkzET/btsIWflpo2t/j5DLYNwrUZIDjSM9cvmI41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIkzET%2FbtsIWflpo2t%2Fj5DLYNwrUZIDjSM9cvmI41%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;477&quot; height=&quot;568&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Java gRPC API를 사용하여 gRPC 통신 4가지 예제 만들어 보기 (클라이언트, 서버)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;gRPC 공식 문서 예제 설명 참고 URL: &lt;a href=&quot;https://grpc.io/docs/languages/java/basics/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://grpc.io/docs/languages/java/basics/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;gRPC 공식 문서&lt;span&gt; &lt;/span&gt;&lt;/span&gt;예제 코드 참고 URL: &lt;a href=&quot;https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/routeguide&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/routeguide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: left;&quot;&gt;gRPC 공식 문서&lt;span&gt; &lt;/span&gt;&lt;/span&gt;예제 proto파일 참고 URL: &lt;a href=&quot;https://github.com/grpc/grpc-java/blob/master/examples/src/main/proto/route_guide.proto&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/grpc/grpc-java/blob/master/examples/src/main/proto/route_guide.proto&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예제 코드는 아래와 같이 만들었습니다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style15&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;예제 코드&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;예제 코드 설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;HelloGrpcClient.java&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;클라이언트 애플리케이션 Main&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;HelloGrpcClientCaller.java&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;클라이언트 동작 코드&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;HelloGrpcServer.java&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;서버 애플리케이션 Main&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;HelloGrpcServiceImpl.java&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;서버 동작 코드&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; ●&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;예제1. Unary RPC (단항 RPC)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;단항 RPC - 클라이언트 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1722869197058&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcClient.java
package com.herojoon.grpc.unary.client;

import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;

public class HelloGrpcClient {

    public static void main(String[] args) {
        // 스텁에 대한 gRPC 채널을 생성하고 연결하려는 서버 주소와 포트를 지정
        // 채널을 생성하려면 ManagedChannelBuilder를 사용합니다.
        ManagedChannel channel = ManagedChannelBuilder
                .forAddress(&quot;localhost&quot;, 8080)
                .usePlaintext()
                .build();

        HelloGrpcClientCaller helloGrpcClientCaller = new HelloGrpcClientCaller(channel);
        helloGrpcClientCaller.sendUnaryBlocking();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1722869254442&quot; class=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// HelloGrpcClientCaller.java
package com.herojoon.grpc.unary.client;

import com.herojoon.grpc.HelloGrpc;
import com.herojoon.grpc.HelloRequest;
import com.herojoon.grpc.HelloResponse;
import io.grpc.ManagedChannel;
import lombok.extern.slf4j.Slf4j;

/**
 * 클라이언트 동작 코드
 */
@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcClientCaller {

    private ManagedChannel channel;
    private HelloGrpc.HelloBlockingStub blockingStub;

    public HelloGrpcClientCaller(ManagedChannel chl) {
        channel = chl;
        blockingStub = HelloGrpc.newBlockingStub(channel);
    }

    public void sendUnaryBlocking() {
        log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Send Call&quot;);

        HelloResponse response = blockingStub.sayHello(HelloRequest.newBuilder()
                        .setName(&quot;herojoon&quot;)  // .proto에 정의한 request value
                        .setAge(10)  // .proto에 정의한 request value
                        .setMessage(&quot;Hello, Glad to meet you.&quot;)  // .proto에 정의한 request value
                        .build());

        log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Response Data =&amp;gt; [%s]&quot;.formatted(response));
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;단항 RPC - 서버 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1722869319550&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcServer.java
package com.herojoon.grpc.unary.server;

import io.grpc.Server;
import io.grpc.ServerBuilder;

import java.io.IOException;

public class HelloGrpcServer {

    public static void main(String[] args) throws IOException, InterruptedException {
        // 클라이언트 요청을 수신하는데 사용할 포트 지정
        Server grpcServer = ServerBuilder
                .forPort(8080)
                .addService(new HelloGrpcServiceImpl())  // 서비스 구현 클래스의 인스턴스를 생성하여 .addService() 메서드에 전달
                .build();

        grpcServer.start();
        grpcServer.awaitTermination();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1722869351165&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcServiceImpl.java
package com.herojoon.grpc.unary.server;

import com.herojoon.grpc.HelloGrpc;
import com.herojoon.grpc.HelloRequest;
import com.herojoon.grpc.HelloResponse;
import io.grpc.stub.StreamObserver;
import lombok.extern.slf4j.Slf4j;

/**
 * 서버 동작 코드 (클라이언트에서 요청을 받음)
 */
@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcServiceImpl extends HelloGrpc.HelloImplBase {

    // Unary RPC (단방향 RPC)
    @Override
    public void sayHello(HelloRequest request, StreamObserver&amp;lt;HelloResponse&amp;gt; responseObserver) {
        log.info(&quot;=== Get Request&quot;);
        log.info(&quot;=== Request Data =&amp;gt; [%s]&quot;.formatted(request));

        // 응답 데이터 셋업
        HelloResponse response = HelloResponse.newBuilder()
                .setGreetingMessage(&quot;Hello, %s&quot;.formatted(request.getName()))  // .proto에 정의한 response value
                .setQuestionMessage(&quot;What do you do for fun?&quot;)  // .proto에 정의한 response value
                .build();

        responseObserver.onNext(response);
        responseObserver.onCompleted();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; ● 예제2. Server Streaming RPC (서버 스트리밍 RPC)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;서버 스트리밍 RPC - 클라이언트 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1722869409231&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcClient.java
package com.herojoon.grpc.serverstreaming.client;

import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;

public class HelloGrpcClient {

    public static void main(String[] args) {
        // 스텁에 대한 gRPC 채널을 생성하고 연결하려는 서버 주소와 포트를 지정
        // 채널을 생성하려면 ManagedChannelBuilder를 사용합니다.
        ManagedChannel channel = ManagedChannelBuilder
                .forAddress(&quot;localhost&quot;, 8080)
                .usePlaintext()
                .build();

        HelloGrpcClientCaller helloGrpcClientCaller = new HelloGrpcClientCaller(channel);
        helloGrpcClientCaller.sendServerStreamingBlocking();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1722869434065&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcClientCaller.java
package com.herojoon.grpc.serverstreaming.client;

import com.herojoon.grpc.HelloGrpc;
import com.herojoon.grpc.HelloRequest;
import com.herojoon.grpc.HelloResponse;
import io.grpc.ManagedChannel;
import lombok.extern.slf4j.Slf4j;

import java.util.Iterator;

/**
 * 클라이언트 동작 코드
 */
@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcClientCaller {

    private ManagedChannel channel;
    private HelloGrpc.HelloBlockingStub blockingStub;
    
    // 생성한 채널로 stub 생성
    public HelloGrpcClientCaller(ManagedChannel chl) {
        channel = chl;
        blockingStub = HelloGrpc.newBlockingStub(channel);
    }

    public void sendServerStreamingBlocking() {
        log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Send Call&quot;);

        // 요청은 하나만 보내고, 여러 개의 응답을 받는다.
        Iterator&amp;lt;HelloResponse&amp;gt; helloResponseIterator = blockingStub.lotsOfReplies(HelloRequest.newBuilder()
                .setName(&quot;herojoon&quot;)  // .proto에 정의한 request value
                .setAge(10)  // .proto에 정의한 request value
                .setMessage(&quot;Hello, Glad to meet you.&quot;)  // .proto에 정의한 request value
                .build());

        // 응답 출력
        helloResponseIterator.forEachRemaining(helloResponse -&amp;gt; {
            log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Response Data =&amp;gt; [%s]&quot;.formatted(helloResponse));
        });
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;서버 스트리밍 RPC - 서버 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1722869472543&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcServer.java
package com.herojoon.grpc.serverstreaming.server;

import io.grpc.Server;
import io.grpc.ServerBuilder;

import java.io.IOException;

public class HelloGrpcServer {

    public static void main(String[] args) throws IOException, InterruptedException {
        // 클라이언트 요청을 수신하는데 사용할 포트 지정
        Server grpcServer = ServerBuilder
                .forPort(8080)
                .addService(new HelloGrpcServiceImpl())  // 서비스 구현 클래스의 인스턴스를 생성하여 .addService() 메서드에 전달
                .build();

        grpcServer.start();
        grpcServer.awaitTermination();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1722869496086&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcServiceImpl.java
package com.herojoon.grpc.serverstreaming.server;

import com.herojoon.grpc.HelloRequest;
import com.herojoon.grpc.HelloResponse;
import com.herojoon.grpc.HelloGrpc;
import io.grpc.stub.StreamObserver;
import lombok.extern.slf4j.Slf4j;

/**
 * 서버 동작 코드 (클라이언트에서 요청을 받음)
 */
@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcServiceImpl extends HelloGrpc.HelloImplBase {

    private String[] questionMessages = {
            &quot;What do you do for fun?&quot;,
            &quot;What kind of books do you like?&quot;,
            &quot;What kind of food do you like?&quot;,
            &quot;What is your favoite color?&quot;,
            &quot;What is your favoite sports?&quot;
    };

    // Server Streaming RPC (서버 스트리밍 RPC)
    @Override
    public void lotsOfReplies(HelloRequest request, StreamObserver&amp;lt;HelloResponse&amp;gt; responseObserver) {
        log.info(&quot;=== Get Request&quot;);
        log.info(&quot;=== Request Data =&amp;gt; [%s]&quot;.formatted(request));

        // 응답 데이터 셋업
        for (String questionMessage: questionMessages) {
            HelloResponse response = HelloResponse.newBuilder()
                    .setGreetingMessage(&quot;Hello, %s&quot;.formatted(request.getName()))  // .proto에 정의한 response value
                    .setQuestionMessage(questionMessage)  // .proto에 정의한 response value
                    .build();

            responseObserver.onNext(response);
        }

        responseObserver.onCompleted();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; ●&lt;span&gt; &lt;/span&gt;예제3. Client Streaming RPC (클라이언트 스트리밍 RPC)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;클라이언트 스트리밍 RPC - 클라이언트 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1722869532478&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcClient.java
package com.herojoon.grpc.clientstreaming.client;

import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;

public class HelloGrpcClient {

    public static void main(String[] args) throws InterruptedException {
        // 스텁에 대한 gRPC 채널을 생성하고 연결하려는 서버 주소와 포트를 지정
        // 채널을 생성하려면 ManagedChannelBuilder를 사용합니다.
        ManagedChannel channel = ManagedChannelBuilder
                .forAddress(&quot;localhost&quot;, 8080)
                .usePlaintext()
                .build();

        HelloGrpcClientCaller helloGrpcClientCaller = new HelloGrpcClientCaller(channel);
        helloGrpcClientCaller.sendClientStremingAsync();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1722869558879&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcClientCaller.java
package com.herojoon.grpc.clientstreaming.client;

import com.herojoon.grpc.HelloGrpc;
import com.herojoon.grpc.HelloRequest;
import com.herojoon.grpc.HelloResponse;
import io.grpc.ManagedChannel;
import io.grpc.Status;
import io.grpc.stub.StreamObserver;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

/**
 * 클라이언트 동작 코드
 */
@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcClientCaller {

    private ManagedChannel channel;
    private HelloGrpc.HelloStub asyncStub;

    private String[] names = {
            &quot;herojoon&quot;,
            &quot;yejin&quot;,
            &quot;jonghoon&quot;,
            &quot;sophia&quot;,
            &quot;woojin&quot;
    };

    private int minAge = 1;  // 1살 부터

    private int maxAge = 100;  // 100살 까지

    public HelloGrpcClientCaller(ManagedChannel chl) {
        channel = chl;
        asyncStub = HelloGrpc.newStub(channel);
    }

    public void sendClientStremingAsync() throws InterruptedException {
        log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Send Call&quot;);

        // 요청 데이터 목록 생성
        List&amp;lt;HelloRequest&amp;gt; helloRequestList = new ArrayList&amp;lt;&amp;gt;();
        for (String name: names) {
            helloRequestList.add(
                    HelloRequest.newBuilder()
                            .setName(name)  // .proto에 정의한 request value
                            .setAge(getRandomAge())  // .proto에 정의한 request value
                            .setMessage(&quot;Hello, Glad to meet you.&quot;)  // .proto에 정의한 request value
                            .build()
            );
        }

        final CountDownLatch finishLatch = new CountDownLatch(1);
        StreamObserver&amp;lt;HelloResponse&amp;gt; responseObserver = new StreamObserver&amp;lt;HelloResponse&amp;gt;() {
            @Override
            public void onNext(HelloResponse helloResponse) {
                // 서버 응답 출력
                log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Response Data =&amp;gt; [%s]&quot;.formatted(helloResponse));
            }

            @Override
            public void onError(Throwable t) {  // 스트림에서 종료 오류 발생 시 수신
                Status status = Status.fromThrowable(t);
                log.warn(&quot;&amp;gt;&amp;gt;&amp;gt; Warning =&amp;gt; [%s]&quot;.formatted(status));
                finishLatch.countDown();
            }

            @Override
            public void onCompleted() {  // 스트림이 성공적으로 완료되었다고 응답 받음
                log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Finished.&quot;);
                finishLatch.countDown();
            }
        };

        StreamObserver&amp;lt;HelloRequest&amp;gt; requestObserver = asyncStub.lotsOfGreetings(responseObserver);
        try {
            for (HelloRequest req: helloRequestList) {
                requestObserver.onNext(req);
                log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Req Name: &quot; + req.getName());

                Thread.sleep(1000);
                if (finishLatch.getCount() == 0) {  // 오류 발생 시 다음 코드를 전송하더라도 처리되지 않기 때문에 전송하지 않도록 처리
                    // RPC completed or errored before we finished sending.
                    // Sending further requests won't error, but they will just be thrown away.
                    log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Stop the next request&quot;);
                    return;
                }
            }
        } catch (RuntimeException e) {
            // Cancel RPC
            requestObserver.onError(e);
            throw e;
        }
        // Mark the end of requests
        requestObserver.onCompleted();

        // Receiving happens asynchronously
        finishLatch.await(1, TimeUnit.MINUTES);

        log.info(&quot;&amp;gt;&amp;gt;&amp;gt; End.&quot;);
    }

    // min 나이부터 max 나이까지 랜덤 값 return
    private int getRandomAge() {
        return (int) (Math.random() * (maxAge - minAge + 1)) + minAge;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;클라이언트 스트리밍 RPC - 서버 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1722869590266&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcServer.java
package com.herojoon.grpc.clientstreaming.server;

import io.grpc.Server;
import io.grpc.ServerBuilder;

import java.io.IOException;

public class HelloGrpcServer {

    public static void main(String[] args) throws IOException, InterruptedException {
        // 클라이언트 요청을 수신하는데 사용할 포트 지정
        Server grpcServer = ServerBuilder
                .forPort(8080)
                .addService(new HelloGrpcServiceImpl())  // 서비스 구현 클래스의 인스턴스를 생성하여 .addService() 메서드에 전달
                .build();

        grpcServer.start();
        grpcServer.awaitTermination();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1722869622020&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcServiceImpl.java
package com.herojoon.grpc.clientstreaming.server;

import com.herojoon.grpc.HelloGrpc;
import com.herojoon.grpc.HelloRequest;
import com.herojoon.grpc.HelloResponse;
import io.grpc.stub.StreamObserver;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;

/**
 * 서버 동작 코드 (클라이언트에서 요청을 받음)
 */
@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcServiceImpl extends HelloGrpc.HelloImplBase {

    // Client Streaming RPC (클라이언트 스트리밍 RPC)
    @Override
    public StreamObserver&amp;lt;HelloRequest&amp;gt; lotsOfGreetings(StreamObserver&amp;lt;HelloResponse&amp;gt; responseObserver) {
        return new StreamObserver&amp;lt;HelloRequest&amp;gt;() {

            List&amp;lt;String&amp;gt; nameList = new ArrayList&amp;lt;&amp;gt;();

            int i = 0;  // 강제 오류 발생 테스트를 위한 변수 (바로 오류를 발생시키지 않고 중간에 오류 발생시키기 위해 사용)

            // 요청 데이터에 대한 처리
            @Override
            public void onNext(HelloRequest helloRequest) {
                nameList.add(helloRequest.getName());  // 응답 시 전달을 위해 요청 데이터의 name 값을 nameList에 담는다.
                log.info(&quot;=== name is %s [age: %d]&quot;.formatted(helloRequest.getName(), helloRequest.getAge()));

                /* 강제 오류 발생 테스트를 위한 코드 START (오류 테스트 시 주석 해제하여 사용) */
                /*i++;
                if (i == 2) {
                    try {
                        throw new Exception(&quot;Error Error Error!!&quot;);
                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                }*/
                /* 강제 오류 발생 테스트를 위한 코드 END */
            }

            // 오류 처리
            @Override
            public void onError(Throwable t) {
                log.warn(&quot;=== Warning =&amp;gt; [%s]&quot;.formatted(t.getMessage()));
            }

            // 응답 전달
            @Override
            public void onCompleted() {
                responseObserver.onNext(HelloResponse.newBuilder()
                        .setGreetingMessage(&quot;Hello, [%s]&quot;.formatted(String.join(&quot;,&quot;, nameList)))
                        .setQuestionMessage(&quot;What do you do for fun?&quot;)
                        .build());

                responseObserver.onCompleted();
            }
        };
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; ●&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;예제4. Bidirectional Streaming RPC (양방향 스트리밍 RPC)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;양방향 스트리밍 RPC - 클라이언트 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1722869679608&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcClient.java
package com.herojoon.grpc.bidirectional.client;

import io.grpc.ManagedChannel;
import io.grpc.ManagedChannelBuilder;
import lombok.extern.slf4j.Slf4j;

@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcClient {

    public static void main(String[] args) throws InterruptedException {
        // 스텁에 대한 gRPC 채널을 생성하고 연결하려는 서버 주소와 포트를 지정
        // 채널을 생성하려면 ManagedChannelBuilder를 사용합니다.
        ManagedChannel channel = ManagedChannelBuilder
                .forAddress(&quot;localhost&quot;, 8080)
                .usePlaintext()
                .build();

        HelloGrpcClientCaller helloGrpcClientCaller = new HelloGrpcClientCaller(channel);
        helloGrpcClientCaller.sendBidirectionalStremingAsync();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1722869700041&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcClientCaller.java
package com.herojoon.grpc.bidirectional.client;

import com.herojoon.grpc.HelloGrpc;
import com.herojoon.grpc.HelloRequest;
import com.herojoon.grpc.HelloResponse;
import io.grpc.ManagedChannel;
import io.grpc.Status;
import io.grpc.stub.StreamObserver;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

/**
 * 클라이언트 동작 코드
 */
@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcClientCaller {

    private ManagedChannel channel;
    private HelloGrpc.HelloStub asyncStub;

    private String[] names = {
            &quot;herojoon&quot;,
            &quot;yejin&quot;,
            &quot;jonghoon&quot;,
            &quot;sophia&quot;,
            &quot;woojin&quot;
    };

    private int minAge = 1;  // 1살 부터

    private int maxAge = 100;  // 100살 까지

    public HelloGrpcClientCaller(ManagedChannel chl) {
        channel = chl;
        asyncStub = HelloGrpc.newStub(channel);
    }

    public void sendBidirectionalStremingAsync() throws InterruptedException {
        log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Send Call&quot;);

        // 요청 데이터 목록 생성
        List&amp;lt;HelloRequest&amp;gt; helloRequestList = new ArrayList&amp;lt;&amp;gt;();
        for (String name: names) {
            helloRequestList.add(
                    HelloRequest.newBuilder()
                            .setName(name)  // .proto에 정의한 request value
                            .setAge(getRandomAge())  // .proto에 정의한 request value
                            .setMessage(&quot;Hello, Glad to meet you.&quot;)  // .proto에 정의한 request value
                            .build()
            );
        }

        final CountDownLatch finishLatch = new CountDownLatch(1);
        StreamObserver&amp;lt;HelloResponse&amp;gt; responseObserver = new StreamObserver&amp;lt;HelloResponse&amp;gt;() {
            @Override
            public void onNext(HelloResponse helloResponse) {
                // 서버 응답 출력
                log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Response Data =&amp;gt; [%s]&quot;.formatted(helloResponse));
            }

            @Override
            public void onError(Throwable t) {  // 스트림에서 종료 오류 발생 시 수신
                Status status = Status.fromThrowable(t);
                log.warn(&quot;&amp;gt;&amp;gt;&amp;gt; Warning =&amp;gt; [%s]&quot;.formatted(status));
                finishLatch.countDown();
            }

            @Override
            public void onCompleted() {  // 스트림이 성공적으로 완료되었다고 응답 받음
                log.info(&quot;&amp;gt;&amp;gt;&amp;gt; Finished.&quot;);
                finishLatch.countDown();
            }
        };

        StreamObserver&amp;lt;HelloRequest&amp;gt; requestObserver = asyncStub.bidiHello(responseObserver);
        try {
            for (HelloRequest req: helloRequestList) {
                requestObserver.onNext(req);
            }
        } catch (RuntimeException e) {
            // Cancel RPC
            requestObserver.onError(e);
            throw e;
        }
        // Mark the end of requests
        requestObserver.onCompleted();

        // Receiving happens asynchronously
        finishLatch.await(1, TimeUnit.MINUTES);
    }

    // min 나이부터 max 나이까지 랜덤 값 return
    private int getRandomAge() {
        return (int) (Math.random() * (maxAge - minAge + 1)) + minAge;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;양방향 스트리밍 RPC - 서버 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1722869725689&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcServer.java
package com.herojoon.grpc.bidirectional.server;

import io.grpc.Server;
import io.grpc.ServerBuilder;

import java.io.IOException;

public class HelloGrpcServer {

    public static void main(String[] args) throws IOException, InterruptedException {
        // 클라이언트 요청을 수신하는데 사용할 포트 지정
        Server grpcServer = ServerBuilder
                .forPort(8080)
                .addService(new HelloGrpcServiceImpl())  // 서비스 구현 클래스의 인스턴스를 생성하여 .addService() 메서드에 전달
                .build();

        grpcServer.start();
        grpcServer.awaitTermination();
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1722869749411&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// HelloGrpcServiceImpl.java
package com.herojoon.grpc.bidirectional.server;

import com.herojoon.grpc.HelloGrpc;
import com.herojoon.grpc.HelloRequest;
import com.herojoon.grpc.HelloResponse;
import io.grpc.stub.StreamObserver;
import lombok.extern.slf4j.Slf4j;

/**
 * 서버 동작 코드 (클라이언트에서 요청을 받음)
 */
@Slf4j  // 로그를 사용하기 위해 추가
public class HelloGrpcServiceImpl extends HelloGrpc.HelloImplBase {

    // Bidirectional Streaming RPC (양방향 스트리밍 RPC)
    @Override
    public StreamObserver&amp;lt;HelloRequest&amp;gt; bidiHello(StreamObserver&amp;lt;HelloResponse&amp;gt; responseObserver) {
        return new StreamObserver&amp;lt;HelloRequest&amp;gt;() {
            @Override
            public void onNext(HelloRequest helloRequest) {
                log.info(&quot;=== name is %s&quot;.formatted(helloRequest.getName()));

                responseObserver.onNext(HelloResponse.newBuilder()
                        .setGreetingMessage(&quot;Hello, %s&quot;.formatted(helloRequest.getName()))
                        .setQuestionMessage(&quot;What do you do for fun?&quot;)
                        .build());
            }

            @Override
            public void onError(Throwable t) {
                log.warn(&quot;=== Warning =&amp;gt; [%s]&quot;.formatted(t.getMessage()));
            }

            @Override
            public void onCompleted() {
                responseObserver.onCompleted();
            }
        };
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;● 예제 실행해보기 ( 서버 애플리케이션 실행 후 클라이언트 애플리케이션 실행)&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;서버 애플리케이션 실행&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dtzvcX/btsIUtSO9uj/gyr7tWdSvLqB9BxIcDzS91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dtzvcX/btsIUtSO9uj/gyr7tWdSvLqB9BxIcDzS91/img.png&quot; data-alt=&quot;서버 애플리케이션 실행&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dtzvcX/btsIUtSO9uj/gyr7tWdSvLqB9BxIcDzS91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtzvcX%2FbtsIUtSO9uj%2Fgyr7tWdSvLqB9BxIcDzS91%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;591&quot; height=&quot;596&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;서버 애플리케이션 실행&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 애플리케이션의 main() task가 실행 완료되면 클라이언트 애플리케이션을 실행합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1334&quot; data-origin-height=&quot;373&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SNFwH/btsIVdaVMir/9aLlN4h1lYcEWgCZzGdbb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SNFwH/btsIVdaVMir/9aLlN4h1lYcEWgCZzGdbb1/img.png&quot; data-alt=&quot;서버 애플리케이션 실행 완료&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SNFwH/btsIVdaVMir/9aLlN4h1lYcEWgCZzGdbb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSNFwH%2FbtsIVdaVMir%2F9aLlN4h1lYcEWgCZzGdbb1%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;1334&quot; height=&quot;373&quot; data-origin-width=&quot;1334&quot; data-origin-height=&quot;373&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;서버 애플리케이션 실행 완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;클라이언트 애플리케이션 실행&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xddpE/btsIUCba8Yu/EYgYEpzIkKEfIljjn2cXkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xddpE/btsIUCba8Yu/EYgYEpzIkKEfIljjn2cXkK/img.png&quot; data-alt=&quot;클라이언트 애플리케이션 실행&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xddpE/btsIUCba8Yu/EYgYEpzIkKEfIljjn2cXkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxddpE%2FbtsIUCba8Yu%2FEYgYEpzIkKEfIljjn2cXkK%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;591&quot; height=&quot;481&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;클라이언트 애플리케이션 실행&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클라이언트 애플리케이션이 실행되며 클라이언트에서 서버로 요청 후 서버에서 응답을 전달해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2344&quot; data-origin-height=&quot;511&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YdVJY/btsIUVuHDSm/zxkv53jCOFMrNuUKCWVAAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YdVJY/btsIUVuHDSm/zxkv53jCOFMrNuUKCWVAAk/img.png&quot; data-alt=&quot;클라이언트 애플리케이션 실행 완료&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YdVJY/btsIUVuHDSm/zxkv53jCOFMrNuUKCWVAAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYdVJY%2FbtsIUVuHDSm%2Fzxkv53jCOFMrNuUKCWVAAk%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;2344&quot; height=&quot;511&quot; data-origin-width=&quot;2344&quot; data-origin-height=&quot;511&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;클라이언트 애플리케이션 실행 완료&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 애플리케이션에서도 클라이언트 요청을 받아 처리한 로그를 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2314&quot; data-origin-height=&quot;529&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdMULp/btsITvKEO7B/K6kMoTNXpcW2TlNfHcSmZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdMULp/btsITvKEO7B/K6kMoTNXpcW2TlNfHcSmZ1/img.png&quot; data-alt=&quot;서버 애플리케이션 로그&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdMULp/btsITvKEO7B/K6kMoTNXpcW2TlNfHcSmZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdMULp%2FbtsITvKEO7B%2FK6kMoTNXpcW2TlNfHcSmZ1%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;2314&quot; height=&quot;529&quot; data-origin-width=&quot;2314&quot; data-origin-height=&quot;529&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;서버 애플리케이션 로그&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 gRPC 예제에 나오는 Java CountDownLatch에 대해서는 아래 포스팅으로 작성해놓았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/216&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://herojoon-dev.tistory.com/216&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1722872576867&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Java CountDownLatch를 이용한 Thread 대기 예제&quot; data-og-description=&quot;목표Java에서 제공하는 CountDownLatch를 이해하고 CountDownLatch를 이용하여 Thread 대기 예제 해보기&amp;nbsp;이해하기CountDownLatch란?: CountDownLatch는 Java에서 일련의 스레드 작업이 끝난 후 다음 작업이 진행될 수&quot; data-og-host=&quot;herojoon-dev.tistory.com&quot; data-og-source-url=&quot;https://herojoon-dev.tistory.com/216&quot; data-og-url=&quot;https://herojoon-dev.tistory.com/216&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/psLSc/hyWKHPDzLM/O0acBpiazGW4JwXRqo7MeK/img.png?width=800&amp;amp;height=844&amp;amp;face=0_0_800_844,https://scrap.kakaocdn.net/dn/lKwTe/hyWKFEjrbm/8JYbrMLyXHZdgqkZa78XP0/img.png?width=800&amp;amp;height=844&amp;amp;face=0_0_800_844,https://scrap.kakaocdn.net/dn/bZUgyx/hyWKFjZUdk/s0H6pz2QRv1mHhADi7uG5K/img.png?width=954&amp;amp;height=1007&amp;amp;face=0_0_954_1007&quot;&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/216&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://herojoon-dev.tistory.com/216&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/psLSc/hyWKHPDzLM/O0acBpiazGW4JwXRqo7MeK/img.png?width=800&amp;amp;height=844&amp;amp;face=0_0_800_844,https://scrap.kakaocdn.net/dn/lKwTe/hyWKFEjrbm/8JYbrMLyXHZdgqkZa78XP0/img.png?width=800&amp;amp;height=844&amp;amp;face=0_0_800_844,https://scrap.kakaocdn.net/dn/bZUgyx/hyWKFjZUdk/s0H6pz2QRv1mHhADi7uG5K/img.png?width=954&amp;amp;height=1007&amp;amp;face=0_0_954_1007');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Java CountDownLatch를 이용한 Thread 대기 예제&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;목표Java에서 제공하는 CountDownLatch를 이해하고 CountDownLatch를 이용하여 Thread 대기 예제 해보기&amp;nbsp;이해하기CountDownLatch란?: CountDownLatch는 Java에서 일련의 스레드 작업이 끝난 후 다음 작업이 진행될 수&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;herojoon-dev.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend</category>
      <category>gRPC</category>
      <category>grpc java 서버 스트리밍 예제</category>
      <category>grpc java 양방향 스트리밍 예제</category>
      <category>grpc java 예제</category>
      <category>grpc java 코드</category>
      <category>grpc java 클라이언트 스트리밍 예제</category>
      <category>grpc java 해보기</category>
      <category>grpc rest 차이</category>
      <category>grpc 예제</category>
      <category>grpc란</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/217</guid>
      <comments>https://herojoon-dev.tistory.com/217#entry217comment</comments>
      <pubDate>Sun, 7 Jul 2024 23:21:55 +0900</pubDate>
    </item>
    <item>
      <title>Java CountDownLatch를 이용한 Thread 대기 예제</title>
      <link>https://herojoon-dev.tistory.com/216</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java에서 제공하는 CountDownLatch를 이해하고 CountDownLatch를 이용하여 Thread 대기 예제 해보기&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;이해하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;CountDownLatch란?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: CountDownLatch는 Java에서 일련의 스레드 작업이 끝난 후 다음 작업이 진행될 수 있도록 대기 기능을 제공해줍니다.&lt;br /&gt;멀티스레드 환경에서 어떠한 작업들이 수행 된 후 다른 작업이 수행될 수 있도록 하기 위하여 사용됩니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;latch의 영어사전 의미: 자물쇠, 걸쇠, 걸쇠를 걸다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;CountDownLatch 설명&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Java 1.5부터 제공된 기능입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;java.util.concurrent 패키지에 포함되어 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;다른 스레드에서 수행 중인 일련의 작업이 완료될 때까지 하나 이상의 스레드를 대기할 수 있도록 기능을 제공합니다.&lt;/span&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-style=&quot;style4&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;[대기 방법1] latch의 count가 모두 감소될 때까지 Thread를 계속 대기 시킬 수도 있고&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #456771; text-align: start;&quot;&gt;ex) 어떤 조건이 부합할 경우 countDownLatch.countDown()으로 count를 감소시켜 countDownLatch.await() 대기를 해제하는 방법&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;[대기 방법2] &lt;b&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;latch의&lt;/span&gt;&lt;/b&gt; count가 모두 감소될 때까지 Thread를 대기 시키되 최대 Max 시간만큼만 대기하게 할 수도 있습니다.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; text-align: start;&quot;&gt;ex) countDownLatch.await(2, TimeUnit.&lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; text-align: start;&quot;&gt;MINUTES); 처럼 대기 시간을 주어 정해진 시간이 끝나면 count가 모두 감소하지 않아도 await() 대기가 해제되는 방법&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;CountDownLatch Class 제공기능&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;● 생성자 (Construct)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CountDownLatch는 선언 시 전달받은 count로 초기화 됩니다.&lt;/li&gt;
&lt;li&gt;이&amp;nbsp;값은&amp;nbsp;꼭&amp;nbsp;Thread의&amp;nbsp;개수&amp;nbsp;값이&amp;nbsp;아니어도&amp;nbsp;되며&amp;nbsp;작업을&amp;nbsp;대기&amp;nbsp;시키기&amp;nbsp;위한&amp;nbsp;작업&amp;nbsp;count나&amp;nbsp;다음&amp;nbsp;작업&amp;nbsp;전에&amp;nbsp;호출되어야&amp;nbsp;하는&amp;nbsp;횟수의&amp;nbsp;의미로&amp;nbsp;보시면됩니다. &lt;br /&gt;ex) CountDownLatch countDownLatch = new CountDownLatch(5);&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;●&amp;nbsp;&lt;/b&gt;&lt;b&gt; 주요 메서드 (Methods)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;b&gt;await()&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #456771;&quot;&gt;CountDownLatch 생성자에 주입한 count가 0이 될 때까지 현재 스레드가 대기하도록 해줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;b&gt;await(long timeout, TimeUnit unit)&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;CountDownLatch 생성자에 주입한 &lt;/span&gt;count가 0이 될 때까지 현재 스레드가 대기하도록 해주되, 최대 정해진 시간까지만 대기하고 해당 시간까지 count가 0이 되지 않으면 대기를 해제합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;b&gt;countDown()&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;CountDownLatch 생성자에 주입한&amp;nbsp;&lt;/span&gt;count(latch의 개수)를 감소시켜줍니다. count가 0이되면 대기 중이던 모든 스레드를 해제합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #456771;&quot;&gt;&lt;b&gt;getCount()&lt;/b&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #456771;&quot;&gt;현재 latch의 개수를 반환해줍니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;●&amp;nbsp;&lt;/b&gt;&lt;b&gt; 개발 가이드 (Java 공부 시작하시는 분들은 참고하시면 좋을 것 같아 남겨놓습니다.)&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;CountDownLatch의 내부 동작 코드 Java Docs를 보시면 예제와 제공 메서드에 대한 설명이 적혀있습니다. &lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;보는 방법은 IntelliJ 기준으로 아래처럼 보시면 됩니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;CountDownLatch에 [Ctrl] +[마우스 클릭]&lt;/b&gt;하여 가이드 문서로 이동합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;아래와 같이 이동되며, 상단에 아래처럼 예제가 설명되어 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000;&quot;&gt;아래에는 Method에 대한 설명도 주석으로 명시되어 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;1007&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/el3bsU/btsIUmyBBM8/lB2mc9N4Do4Gei9Tjcphk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/el3bsU/btsIUmyBBM8/lB2mc9N4Do4Gei9Tjcphk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/el3bsU/btsIUmyBBM8/lB2mc9N4Do4Gei9Tjcphk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fel3bsU%2FbtsIUmyBBM8%2FlB2mc9N4Do4Gei9Tjcphk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;954&quot; height=&quot;1007&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;1007&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기 요약&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 예제 3개를 만들어보았습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예제1. 다른 Thread들의 작업이 완료될 때까지 기다렸다가 다음 작업 수행하기&lt;/li&gt;
&lt;li&gt;예제2. 다른 Thread들의 작업이 완료될 때까지 최대 Max시간만큼 기다렸다가 다음 작업 수행하기&lt;/li&gt;
&lt;li&gt;예제3. 여러 CountDownLatch를 이용해서 &quot;여러 Thread들이 모두 준비가 완료될 때까지 기다렸다가 Thread들 작업 로직 수행하기&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;●&lt;/b&gt;&lt;b&gt; 예제1. 다른 Thread들의 작업이 완료될 때까지 기다렸다가 다음 작업 수행하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;예제1 체크 포인트&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #a9b7c6;&quot;&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// await()에 시간을 지정하지 않음
countDownLatch.await();&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;&amp;lt;예제1 코드&amp;gt;&lt;/b&gt;&lt;br /&gt;아래 예제는 [threadCount만큼의 작업 스레드들]이 모두 생성 &amp;amp; 수행된 후 [Finish 로그 출력 작업]이 수행될 수 있도록 시나리오를 구성했습니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;threadCount만큼의 작업 스레드가 모두 완료되었는지 체크하기 위하여,&lt;br /&gt;CountDownLatch 선언시 Thread 개수 만큼 count를 생성자 주입하여 대기 count를 지정합니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;CountDownLatch를 이용하여 [작업 스레드들]이 모두 수행 완료될 때까지 [Finish 로그 출력 작업]이 대기할 수 있도록 [Finish 로그 출력 작업] 앞에 await()를 작성해줍니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;작업 스레드가 수행될 때마다 countDown()을 호출하여 latch의 count를 1씩 감소시켜줍니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;latch의 count가 0이 되면 대기상태가 풀리면서 await() 다음의 작업이 수행됩니다.&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;import java.util.concurrent.CountDownLatch;

public class Main {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void main(String[] args) throws InterruptedException {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 코드 실행
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;executeCode();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * CountDownLatch를 이용해서 &quot;다른 Thread들의 작업이 완료될 때까지 기다렸다가 다음 작업 수행하기&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void executeCode() throws InterruptedException {&amp;nbsp;&amp;nbsp;// countDownLatch의 await() 사용 시 InterrupedException을 선언해줘야함.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int threadCount = 5;&amp;nbsp;&amp;nbsp;// 생성할 Thread 개수
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CountDownLatch countDownLatch = new CountDownLatch(threadCount);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Java에서 가장 처음 실행되는 메소드는 Main 메소드이므로 가장 처름 표시되는 Thread는 Main Thread 임.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Main 메소드의 실행도 하나의 Thread 이기 때문.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Start] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// threadCount 개수 만큼 Thread 생성
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; threadCount; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Thread(new Worker(countDownLatch)).start();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// countDownLatch의 await()를 실행하여 다른 Thread들의 작업이 모두 끝날 때까지 기다림
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// countDownLatch의 await()가 대기가 해제되는 시점: countDownLatch의 countDown()이 실행되면서 countdownLatch 생성 시 선언했던 숫자가 0이 될 때
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;countDownLatch.await();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 이 부분에 Thread들의 작업이 완료된 후 원하는 작업 수행하기 (저는 로직 대신 아래 로그 출력함.)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 다른 Thread들의 작업이 모두 끝나면 await() 대기가 해제되면서 아래 로그가 출력됨
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Finish] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static class Worker implements Runnable {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private CountDownLatch countDownLatch;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Thread 동작 시 countDownLatch의 countDown()을 실행시켜주기 위해 생성자 주입
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Worker(CountDownLatch countDownLatch) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.countDownLatch = countDownLatch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void run() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Ongoing] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Thread run() 시점에 countDownLatch의 countDown()을 이용하여 countdownLatch 생성 시 선언했던 숫자 감소시킴
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;countDownLatch.countDown();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

/**
[결과]

#### [Start] Thread Name: main, Thread Id: 1
#### [Ongoing] Thread Name: Thread-0, Thread Id: 16
#### [Ongoing] Thread Name: Thread-1, Thread Id: 17
#### [Ongoing] Thread Name: Thread-2, Thread Id: 18
#### [Ongoing] Thread Name: Thread-3, Thread Id: 19
#### [Ongoing] Thread Name: Thread-4, Thread Id: 20
#### [Finish] Thread Name: main, Thread Id: 1
**/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;예제1 코드 실행 결과&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KuDVJ/btsISKtVr4D/WEUNrU31Pg9Bn9P77bMkZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KuDVJ/btsISKtVr4D/WEUNrU31Pg9Bn9P77bMkZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KuDVJ/btsISKtVr4D/WEUNrU31Pg9Bn9P77bMkZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKuDVJ%2FbtsISKtVr4D%2FWEUNrU31Pg9Bn9P77bMkZK%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;638&quot; height=&quot;238&quot; data-origin-width=&quot;638&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;● 예제2. 다른 Thread들의 작업이 완료될 때까지 최대 Max시간만큼 기다렸다가 다음 작업 수행하기&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;lt;예제2 체크 포인트&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #a9b7c6;&quot;&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// await()에 시간을 지정해줌
countDownLatch.await(3, TimeUnit.SECONDS);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;&amp;lt;예제2 코드&amp;gt;&lt;/b&gt;&lt;br /&gt;아래 예제는 [Finish 로그 출력 작업]이 [다른 스레드 작업들]을 Max시간만큼 대기했다가 수행될 수 있도록 시나리오를 구성했습니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;작업 스레드들의 수행 완료를 체크하기 위하여,&lt;br /&gt;CountDownLatch 선언시 Thread 개수 만큼 count를 생성자 주입하여 대기 count를 지정합니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;CountDownLatch를 이용하여 [작업 스레드들]이 모두 수행 완료될 때까지 [Finish 로그 출력 작업]이 대기할 수 있도록 [Finish 로그 출력 작업] 앞에 await()를 작성해줍니다.&lt;br /&gt;하지만 무한 대기가 아닌 정해진 시간만큼 대기할 수 있도록 await(3, TimeUnit.SECONDS)처럼 최대 대기 시간을 입력해줍니다. 예제에서는 3초 대기하도록 입력했습니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;작업 스레드가 수행될 때마다 countDown()을 호출하여 latch의 count를 1씩 감소시켜줍니다.&lt;br /&gt;여기서 위 await(3, TimeUnit.SECONDS)로 지정한 최대 대기 시간 3초가 지났을 경우 latch 대기가 해제되는지 확인을 위하여 작업 스레드 run() 실행 로직에 Thread.sleep(5000)이라는 5초 대기를 걸어줍니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;latch의 count가 0이 되기 전 최대 대기 시간이 지남으로써 latch의 대기상태가 풀리고 await() 다음의 작업이 수행됩니다.&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

public class Main {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void main(String[] args) throws InterruptedException {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 코드 실행
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;executeCode();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * CountDownLatch를 이용해서 &quot;다른 Thread들의 작업이 완료될 때까지 최대 Max시간만큼 기다렸다가 다음 작업 수행하기&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void executeCode() throws InterruptedException {&amp;nbsp;&amp;nbsp;// countDownLatch의 await() 사용 시 InterrupedException을 선언해줘야함.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int threadCount = 5;&amp;nbsp;&amp;nbsp;// 생성할 Thread 개수
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CountDownLatch countDownLatch = new CountDownLatch(threadCount);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Java에서 가장 처음 실행되는 메소드는 Main 메소드이므로 가장 처름 표시되는 Thread는 Main Thread 임.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Main 메소드의 실행도 하나의 Thread 이기 때문.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Start] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// threadCount 개수 만큼 Thread 생성
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; threadCount; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Thread(new Worker(countDownLatch)).start();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// countDownLatch의 await()를 실행하여 다른 Thread들의 작업이 모두 끝날 때까지 기다림
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// countDownLatch의 await()가 해제되는 시점: countDownLatch의 countDown()이 실행되면서 countdownLatch 생성 시 선언했던 숫자가 0이 될 때
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;countDownLatch.await(3, TimeUnit.SECONDS);&amp;nbsp;&amp;nbsp;// 3초

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 이 부분에 Thread들의 작업이 완료된 후 원하는 작업 수행하기 (저는 로직 대신 아래 로그 출력함.)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 다른 Thread들의 작업이 모두 끝나면 await() 대기가 해제되면서 아래 로그가 출력됨
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Finish] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static class Worker implements Runnable {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private CountDownLatch countDownLatch;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Thread 동작 시 countDownLatch의 countDown()을 실행시켜주기 위해 생성자 주입
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Worker(CountDownLatch countDownLatch) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.countDownLatch = countDownLatch;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void run() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;	// countDownLatch.await()에 3초를 Max 대기시간으로 주었으므로
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 해당 시간이 넘었을 때 latch가 해제되는지 확인을 위해 5초 동안 기다린 후 로직 실행
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.sleep(5000);&amp;nbsp;&amp;nbsp;// 5000의 뜻은 5초 대기 (1000 = 1초)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Ongoing] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (InterruptedException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw new RuntimeException(e);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Thread run() 시점에 countDownLatch의 countDown()을 이용하여 countdownLatch 생성 시 선언했던 숫자 감소시킴
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;countDownLatch.countDown();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

/**
[결과]

#### [Start] Thread Name: main, Thread Id: 1
#### [Finish] Thread Name: main, Thread Id: 1
#### [Ongoing] Thread Name: Thread-2, Thread Id: 18
#### [Ongoing] Thread Name: Thread-3, Thread Id: 19
#### [Ongoing] Thread Name: Thread-4, Thread Id: 20
#### [Ongoing] Thread Name: Thread-0, Thread Id: 16
#### [Ongoing] Thread Name: Thread-1, Thread Id: 17
**/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;&amp;lt;예제2 코드 실행 결과&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;636&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsRZF0/btsIUf7lcGJ/gPlKP3YURY5gZOyeey2dSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsRZF0/btsIUf7lcGJ/gPlKP3YURY5gZOyeey2dSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsRZF0/btsIUf7lcGJ/gPlKP3YURY5gZOyeey2dSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsRZF0%2FbtsIUf7lcGJ%2FgPlKP3YURY5gZOyeey2dSk%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;636&quot; height=&quot;240&quot; data-origin-width=&quot;636&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;b&gt;●&lt;/b&gt;&lt;b&gt; 예제3. 여러 CountDownLatch를 이용해서 &quot;다른 Thread들의 작업이 완료될 때까지 기다렸다가 다음 작업 수행하기&quot;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;예제3 체크 포인트&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #a9b7c6;&quot;&gt;
&lt;pre class=&quot;java&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// CountDownLatch를 여러개 사용
CountDownLatch startSignal = new CountDownLatch(threadCount);
CountDownLatch doneSignal = new CountDownLatch(threadCount);&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;&amp;lt;예제3 코드&amp;gt;&lt;/b&gt;&lt;br /&gt;아래 예제는 다수 CountDownLatch를 사용하여 여러 단계로 대기하며 동작들이 수행되도록 시나리오를 구성했습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;threadCount만큼 Thread가 모두 생성 &amp;amp; 준비 완료될 때까지 다음 작업 대기&lt;/li&gt;
&lt;li&gt;threadCount만큼 생성된 Thread의 로든 작업이 수행 완료될 때까지 다음 작업 대기&lt;/li&gt;
&lt;li&gt;위 작업들이 모두 완료되면 [Finish 로그 출력 작업] 수행&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;작업 스레드들의 생성 및 수행 완료를 체크하기 위하여,&lt;br /&gt;CountDownLatch 선언시 Thread 개수 만큼 count를 생성자 주입하여 대기 count를 지정합니다.&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;// 모든 작업 Thread가 작업할 준비가 되었을 때까지 기다려주는 역할
CountDownLatch startSignal = new CountDownLatch(threadCount);

// 모든 작업 Thread가 모두 수행되었는지 체크하는 역할
CountDownLatch doneSignal = new CountDownLatch(threadCount);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;작업 스레드가 생성(준비)될 때마다 countDown()을 호출하여 startSignal latch의 count를 1씩 감소시켜줍니다.&lt;br /&gt;이때, 모든 작업 스레드가 준비된 후 작업 스레드 로직이 수행되도록 startSignal latch를 await()로 대기시켜줍니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;위 startSignal latch의 대기가 해제되면 다음 작업을 수행해줍니다.&lt;br /&gt;작업 스레드가 수행될 때마다 countDown()을 호출하여&amp;nbsp; doneSignal latch의 count를 1씩 감소시켜줍니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;위 작업들이 모두 완료되면 doneSignal latch의 대기도 해제되면서 [Finish 로그 출력 작업] 수행됩니다.&lt;/p&gt;
&lt;pre class=&quot;java&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;java&quot;&gt;&lt;code&gt;import java.util.concurrent.CountDownLatch;

public class Main {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void main(String[] args) throws InterruptedException {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 코드 실행
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;executeCode();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/**
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; * 3. 여러 CountDownLatch를 이용해서 &quot;여러 Thread들이 모두 준비가 완료될 때까지 기다렸다가 Thread들 작업 로직 수행하기&quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static void executeCode() throws InterruptedException {&amp;nbsp;&amp;nbsp;// countDownLatch의 await() 사용 시 InterrupedException을 선언해줘야함.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int threadCount = 5;&amp;nbsp;&amp;nbsp;// 생성할 Thread 개수
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CountDownLatch startSignal = new CountDownLatch(threadCount);&amp;nbsp;&amp;nbsp;// 모든 작업 Thread가 작업할 준비가 되었을 때까지 기다려주는 역할 (모든 Thread가 생성되었는지 정확하게 확인하기 위해 threadCount를 초기값으로 넣어줌)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CountDownLatch doneSignal = new CountDownLatch(threadCount);&amp;nbsp;&amp;nbsp;// 모든 작업 Thread가 모두 동작되었는지 체크하는 역할

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Start] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i = 0; i &amp;lt; threadCount; ++i) { // create and start threads
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;new Thread(new Worker(startSignal, doneSignal)).start();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doneSignal.await();&amp;nbsp;&amp;nbsp;// 모든 Thread의 작업이 수행되었다면 await() 대기가 해제되면서 그 다음 로직 실행

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// 예제이기 때문에 별도 로직 대신 로그가 출력되게 함.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Finish] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public static class Worker implements Runnable {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private final CountDownLatch startSignal;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private final CountDownLatch doneSignal;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/*
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;startSignal: Thread가 모두 준비되었는지 체크하기 위해 생성자 주입
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doneSignal: Thread 동작 시 countDownLatch의 countDown()을 실행시켜주기 위해 생성자 주입
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public Worker(CountDownLatch startSignal, CountDownLatch doneSignal) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.startSignal = startSignal;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.doneSignal = doneSignal;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public void run() {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Start] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;startSignal.countDown();&amp;nbsp;&amp;nbsp;// 모든 Thread가 start()되었는지 체크하며 countDown()해줌.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;startSignal.await();&amp;nbsp;&amp;nbsp;// 모든 Thread가 start() 되었다면 await() 대기가 해제되면서 run()로직 실행.

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.out.println(&quot;#### [Ongoing] Thread Name: %s, Thread Id: %s&quot;.formatted(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Thread.currentThread().getName(), Thread.currentThread().getId()));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doneSignal.countDown();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} catch (InterruptedException e) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;throw new RuntimeException(e);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}

/**
[결과]

#### [Start] Thread Name: main, Thread Id: 1
#### [Start] Thread Name: Thread-0, Thread Id: 16
#### [Start] Thread Name: Thread-1, Thread Id: 17
#### [Start] Thread Name: Thread-2, Thread Id: 18
#### [Start] Thread Name: Thread-3, Thread Id: 19
#### [Start] Thread Name: Thread-4, Thread Id: 20
#### [Ongoing] Thread Name: Thread-4, Thread Id: 20
#### [Ongoing] Thread Name: Thread-2, Thread Id: 18
#### [Ongoing] Thread Name: Thread-0, Thread Id: 16
#### [Ongoing] Thread Name: Thread-1, Thread Id: 17
#### [Ongoing] Thread Name: Thread-3, Thread Id: 19
#### [Finish] Thread Name: main, Thread Id: 1
**/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;&amp;lt;예제3 코드 실행 결과&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r0BP7/btsITijnFul/u2QIWO5KndbI6pvJxNHVY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r0BP7/btsITijnFul/u2QIWO5KndbI6pvJxNHVY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r0BP7/btsITijnFul/u2QIWO5KndbI6pvJxNHVY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr0BP7%2FbtsITijnFul%2Fu2QIWO5KndbI6pvJxNHVY0%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;634&quot; height=&quot;405&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Backend</category>
      <category>CountDownLatch</category>
      <category>countdownlatch 예제</category>
      <category>java countdownlatch</category>
      <category>java multi thread</category>
      <category>java multi thread 동시성</category>
      <category>java 대기방법</category>
      <category>java 동시성 처리</category>
      <category>java 멀티스레드 대기</category>
      <category>자바 멀티 쓰레드 대기 방법</category>
      <category>자바 스레드 기다리기</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/216</guid>
      <comments>https://herojoon-dev.tistory.com/216#entry216comment</comments>
      <pubDate>Wed, 19 Jun 2024 16:42:55 +0900</pubDate>
    </item>
    <item>
      <title>Zookeeper란</title>
      <link>https://herojoon-dev.tistory.com/212</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Zookeeper란&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: Zookeeper는 Apache 재단에서 만든 &lt;b&gt;&lt;u&gt;분산 애플리케이션을 위한 중앙 집중식 고성능 조정 서비스&lt;/u&gt;&lt;/b&gt;입니다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Zookeeper 특징&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Zookeeper 공식 문서에 나와있는 Zookeeper의 특징은 아래와 같습니다.&lt;/p&gt;
&lt;hr 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;1. ZooKeeper is simple.&amp;nbsp; &lt;span style=&quot;color: #f89009;&quot;&gt;Zookeeper는 단순하다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주키퍼는 표준 파일시스템 기반과 유사한 트리 구조의 공유 계층적 데이터 모델을 제공합니다.
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;이 구조는 데이터 저장과 접근방식에 대해 직관적으로 이해 가능하게 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. ZooKeeper is replicated.&amp;nbsp; &lt;span style=&quot;color: #f89009;&quot;&gt;Zookeeper는 복제된다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주키퍼는 서비스 일관성과 안정성, 높은 가용성을 위해 리더 서버가 나머지 서버에 데이터와 상태 정보를 복제합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. ZooKeeper is ordered.&lt;/b&gt;&amp;nbsp; &lt;b&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;Zookeeper는 순서가 있다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주키퍼의 클라이언트 요청 작업은 순서대로 처리됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. ZooKeeper is fast.&amp;nbsp; &lt;span style=&quot;color: #f89009;&quot;&gt;Zookeeper는 빠르다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;주키퍼의 데이터는 메모리에 저장되기 때문에 디스크에서 읽는 것보다 높은 처리량과 낮은 대기 시간을 제공합니다.&lt;/li&gt;
&lt;li&gt;주키퍼의 리더-팔로워 아키텍처(Leader-Follower Architecture) 구조는 리더 서버에서만 읽기 처리를 하는 것이 아니라 리더 서버와 다른 서버에서도 읽기 처리를 가능하게 하기 때문에 읽기 속도가 빠릅니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Zookeeper 데이터 모델&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트리 구조의 공유 계층적 네임스페이스 구조를 제공합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5Ddeg/btsHIHKJGmk/KjROzD61aZc5YGmFhC9rvk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5Ddeg/btsHIHKJGmk/KjROzD61aZc5YGmFhC9rvk/img.jpg&quot; data-alt=&quot;zookeeper 데이터 모델&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5Ddeg/btsHIHKJGmk/KjROzD61aZc5YGmFhC9rvk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5Ddeg%2FbtsHIHKJGmk%2FKjROzD61aZc5YGmFhC9rvk%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;442&quot; height=&quot;253&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;zookeeper 데이터 모델&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;Znode(노드)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;주키퍼의 데이터 단위는 노드입니다. 데이터가 저장되는 단위입니다.&lt;/li&gt;
&lt;li&gt;주키퍼(Zookeeper) z + Node 해서 주키퍼는 데이터 단위를 znode로 부릅니다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Path(경로)&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;주키퍼의 데이터 모델은 단순합니다. /으로 데이터가 저장된 경로(위치)를 구분합니다.&lt;/li&gt;
&lt;li&gt;/(루트 경로) 아래로 파일 시스템의 디렉토리와 파일 구조와 유사하게 사용하면 됩니다.&lt;/li&gt;
&lt;li&gt;ex) /app/data&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Zookeeper znode 모드&lt;/h2&gt;
&lt;hr 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;&amp;lt;다양한 모드 지원&amp;gt;&lt;/b&gt;&lt;br /&gt;znode는 영구적이거나 임시적으로 저장할 수 있습니다.&lt;br /&gt;즉, znode는 영구적 저장, 임시적 저장의 모드를 지원합니다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;영구적으로 저장일 경우&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;znode는 영구적으로 저장되며 삭제를 원할 시 delete API를 호출하여 삭제할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;임시적 저장일 경우&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;znode는 임시적 성격으로 저장되며 znode를 생성한 클라이언트 연결이 끊어지거나 클라이언트에 장애가 발생할 경우 삭제됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;주키퍼는 znode의 저장 방식 외에 &lt;b&gt;&lt;u&gt;순차적 znode를 제공&lt;/u&gt;&lt;/b&gt;합니다.&lt;br /&gt;순차 znode는 유니크한 값을 갖는 순차적 정수가 할당되어 생성됩니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;b&gt;&amp;lt;요약&amp;gt;&lt;/b&gt;&lt;br /&gt;znode는 저장 방식과 순차 여부의 옵션을 제공하여&lt;br /&gt;영구 znode, 임시 znode, 영구 순차 znode, 임시 순차 znode 모드를 지원합니다.&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Zookeeper 아키텍처&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주키퍼의 서버 구성은 &lt;b&gt;단독 모드&lt;/b&gt;와 &lt;b&gt;쿼럼 모드&lt;/b&gt;를 지원합니다.&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;단독 모드&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;하나의 서버로 구성됩니다.&lt;/li&gt;
&lt;li&gt;주키퍼의 데이터와 상태가 복제되지 않습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1029&quot; data-origin-height=&quot;408&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9yrof/btsH0VQe8ST/Y4HfdTE75x2E2kUVFOoPfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9yrof/btsH0VQe8ST/Y4HfdTE75x2E2kUVFOoPfK/img.png&quot; data-alt=&quot;zookeeper_단일모드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9yrof/btsH0VQe8ST/Y4HfdTE75x2E2kUVFOoPfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9yrof%2FbtsH0VQe8ST%2FY4HfdTE75x2E2kUVFOoPfK%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;704&quot; height=&quot;408&quot; data-origin-width=&quot;1029&quot; data-origin-height=&quot;408&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;zookeeper_단일모드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;쿼럼 모드&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;여러 서버로 구성됩니다.&lt;/li&gt;
&lt;li&gt;앙상블이라고 부르는 서버 호스트그룹에서 서버의 데이터와 상태가 복제됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1088&quot; data-origin-height=&quot;1001&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMYNhY/btsH1hL9O1u/HwJdnFw7kF0tuYV6MkkLpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMYNhY/btsH1hL9O1u/HwJdnFw7kF0tuYV6MkkLpK/img.png&quot; data-alt=&quot;zookeeper_쿼럼모드&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMYNhY/btsH1hL9O1u/HwJdnFw7kF0tuYV6MkkLpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMYNhY%2FbtsH1hL9O1u%2FHwJdnFw7kF0tuYV6MkkLpK%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;1088&quot; height=&quot;1001&quot; data-origin-width=&quot;1088&quot; data-origin-height=&quot;1001&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;zookeeper_쿼럼모드&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Zookeeper 사용은 어디에?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주키퍼는 코디네이션 서비스(coordination service)입니다.&lt;br /&gt;코디네이션 서비스는 분산 서비스들이 중요한 구성 정보나 상태, 설정 정보를 저장하고 관리하는 용도로 사용되는 서비스를 뜻합니다. 주키퍼도 이러한 용도로 사용됩니다.&lt;br /&gt;주키퍼는 주요 정보들을 일관성 있게 제공하기 위해 리소스를 동기화하는데 이를 위해 분산락의 개념을 제공합니다.&lt;br /&gt;다수의 클라이언트 접근 시 클라이언트가 락의 순번을 획득하여 리소스 접근 후 락을 해제합니다.&lt;br /&gt;그리고 다른 클라이언트가 다음 락을 획득하여 리소스에 접근 후 락을 해제합니다.&lt;br /&gt;이런 방식으로 주키퍼는 리소스에 대한 다중 접근을 제거하여 리소스의 혼란을 방지합니다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;ex) 다른 언어의 서비스들이 공용적으로 사용하는 상태 데이터를 저장하는 용도로 사용됩니다.&lt;br /&gt;ex) 주키퍼는 kafka의 브로커를 조정하고 관리하는 용도로도 사용됩니다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Zookeeper API&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주키퍼의 디자인 목표는 쉬운 인터페이스를 제공하는 것도 있습니다.&lt;br /&gt;그래서 Zookeeper의 API는 단순한 형태로 지원됩니다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;create&amp;nbsp;: 트리의&amp;nbsp;특정&amp;nbsp;위치에&amp;nbsp;노드를&amp;nbsp;생성합니다.&lt;/li&gt;
&lt;li&gt;delete&amp;nbsp;: 노드를 삭제합니다.&lt;/li&gt;
&lt;li&gt;exists&amp;nbsp;: 노드가 특정 위치에 존재하는지 확인합니다.&lt;/li&gt;
&lt;li&gt;get data&amp;nbsp;: 노드의 데이터를 읽습니다.&lt;/li&gt;
&lt;li&gt;set data&amp;nbsp;: 노드에 데이터를 씁니다.&lt;/li&gt;
&lt;li&gt;get children&amp;nbsp;: 노드의 하위 목록을 검색합니다.&lt;/li&gt;
&lt;li&gt;sync&amp;nbsp;: 데이터가 전파되기를 기다립니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;참고 링크: &lt;a href=&quot;https://zookeeper.apache.org/doc/r3.9.2/zookeeperOver.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span&gt;https://zookeeper.apache.org/doc/r3.9.2/zookeeperOver.html&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <category>Backend</category>
      <category>znode mode</category>
      <category>zookeeper</category>
      <category>zookeeper api</category>
      <category>zookeeper mode</category>
      <category>zookeeper 사용 용도</category>
      <category>zookeeper란</category>
      <category>주키퍼</category>
      <category>주키퍼 개념</category>
      <category>주키퍼 아키텍처</category>
      <category>주키퍼 앙상블</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/212</guid>
      <comments>https://herojoon-dev.tistory.com/212#entry212comment</comments>
      <pubDate>Thu, 30 May 2024 17:29:07 +0900</pubDate>
    </item>
    <item>
      <title>Python 개발 툴 Pycharm 설치 방법</title>
      <link>https://herojoon-dev.tistory.com/211</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Pycharm이란?&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Python 개발 툴은 다양하게 있지만 그 중 가장 많이 사용하는 것이 Visual Studio Code와 Pycharm일 것입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pycharm은 Jetbrains사에서 제공하는 Python IDE 개발 툴로 여러가지 장점을 가진 툴입니다.&lt;/p&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;&amp;lt;Pycharm의 장점&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설치가 쉽다.&lt;/li&gt;
&lt;li&gt;다양한 Plugin을 제공한다.&lt;/li&gt;
&lt;li&gt;시각적인 툴 기능으로 코드 추적 및 디버 사용이 쉽다.&lt;/li&gt;
&lt;li&gt;코드 검사, 리펙터 등 개발을 위한 편의성을 제공한다.&lt;/li&gt;
&lt;li&gt;웹 개발, 데이터베이스와 같은 여러 개발 환경을 통합으로 구축하기 쉽다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Pycharm 설치 파일 다운로드&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;설치 파일 다운로드 링크: &lt;a href=&quot;https://www.jetbrains.com/pycharm/download/?section=windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.jetbrains.com/pycharm/download/?section=windows&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1713238689697&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Download PyCharm: The Python IDE for data science and web development by JetBrains&quot; data-og-description=&quot;Download the latest version of PyCharm for Windows, macOS or Linux.&quot; data-og-host=&quot;www.jetbrains.com&quot; data-og-source-url=&quot;https://www.jetbrains.com/pycharm/download/?section=windows&quot; data-og-url=&quot;https://www.jetbrains.com/pycharm/download/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/nvG2T/hyVPW1NxYA/KpDds5PytQMhqBRHhLn3l1/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot;&gt;&lt;a href=&quot;https://www.jetbrains.com/pycharm/download/?section=windows&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.jetbrains.com/pycharm/download/?section=windows&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/nvG2T/hyVPW1NxYA/KpDds5PytQMhqBRHhLn3l1/img.png?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Download PyCharm: The Python IDE for data science and web development by JetBrains&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Download the latest version of PyCharm for Windows, macOS or Linux.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.jetbrains.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;Pycharm 설치하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Pycharm은 유료, 무료 버전을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&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&gt;Pycharm 유료, 무료 버전 비교 링크: &lt;a href=&quot;https://www.jetbrains.com/ko-kr/products/compare/?product=pycharm&amp;amp;product=pycharm-ce&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.jetbrains.com/ko-kr/products/compare/?product=pycharm&amp;amp;product=pycharm-ce&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Pycharm Cummunity Edition을 다운로드 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01.png&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;1324&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XWAAf/btsGCtgR3Z4/qGbWiPXcjiZOYa1Sr8jKMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XWAAf/btsGCtgR3Z4/qGbWiPXcjiZOYa1Sr8jKMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XWAAf/btsGCtgR3Z4/qGbWiPXcjiZOYa1Sr8jKMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXWAAf%2FbtsGCtgR3Z4%2FqGbWiPXcjiZOYa1Sr8jKMK%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;646&quot; height=&quot;1151&quot; data-filename=&quot;edited_01.png&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;1324&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 다운로드 받은 설치 파일을 더블 클릭하여 설치를 진행해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02.png&quot; data-origin-width=&quot;154&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/17Qkd/btsGCbt18Gp/Lr3YMJWHcVsWkAK0U5dQ71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/17Qkd/btsGCbt18Gp/Lr3YMJWHcVsWkAK0U5dQ71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/17Qkd/btsGCbt18Gp/Lr3YMJWHcVsWkAK0U5dQ71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F17Qkd%2FbtsGCbt18Gp%2FLr3YMJWHcVsWkAK0U5dQ71%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;154&quot; height=&quot;207&quot; data-filename=&quot;edited_02.png&quot; data-origin-width=&quot;154&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 아래 부분을 모두 체크해준 뒤 [다음] 버튼을 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_03.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bak7KP/btsGFEnHfAL/Z8KqMXiHLLkXEn3wuWVA7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bak7KP/btsGFEnHfAL/Z8KqMXiHLLkXEn3wuWVA7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bak7KP/btsGFEnHfAL/Z8KqMXiHLLkXEn3wuWVA7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbak7KP%2FbtsGFEnHfAL%2FZ8KqMXiHLLkXEn3wuWVA7k%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;710&quot; height=&quot;457&quot; data-filename=&quot;edited_03.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_04.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nfyd7/btsGGcExCmf/PuhVMp49GxCiAMvJfWF3tK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nfyd7/btsGGcExCmf/PuhVMp49GxCiAMvJfWF3tK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nfyd7/btsGGcExCmf/PuhVMp49GxCiAMvJfWF3tK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNfyd7%2FbtsGGcExCmf%2FPuhVMp49GxCiAMvJfWF3tK%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;745&quot; height=&quot;480&quot; data-filename=&quot;edited_04.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. Pycharm을 설치하면 재부팅을 해주어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중요한 작업이 있다면 [나중에 재부팅 하겠습니다.]를 체크해주고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그게 아니라면 [지금 재부팅 하겠습니다.]를 체크하여 [마침]버튼을 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_05.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bM4mYz/btsGE4mTaBR/5PXSHx4JoMUAdggHL77Rj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bM4mYz/btsGE4mTaBR/5PXSHx4JoMUAdggHL77Rj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bM4mYz/btsGE4mTaBR/5PXSHx4JoMUAdggHL77Rj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbM4mYz%2FbtsGE4mTaBR%2F5PXSHx4JoMUAdggHL77Rj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;747&quot; height=&quot;479&quot; data-filename=&quot;edited_05.png&quot; data-origin-width=&quot;828&quot; data-origin-height=&quot;531&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 설치가 완료되면 바탕화면에 Pycharm 아이콘이 생성됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Pycharm 아이콘을 더블 클릭하여 프로그램을 실행해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_06.png&quot; data-origin-width=&quot;112&quot; data-origin-height=&quot;151&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk38b1/btsGFgtUVol/lJFbw85Qb1SwKlSlCWPaR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk38b1/btsGFgtUVol/lJFbw85Qb1SwKlSlCWPaR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk38b1/btsGFgtUVol/lJFbw85Qb1SwKlSlCWPaR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk38b1%2FbtsGFgtUVol%2FlJFbw85Qb1SwKlSlCWPaR0%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;112&quot; height=&quot;151&quot; data-filename=&quot;edited_06.png&quot; data-origin-width=&quot;112&quot; data-origin-height=&quot;151&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 아래 계약 약관에 동의해야 사용이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;약관 체크 후 [계속]을 클릭합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 이후 데이터를 전송하시겠습니까? 라는 문구가 나오면 이건 체크하지 않아도 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_07.png&quot; data-origin-width=&quot;874&quot; data-origin-height=&quot;671&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXxBiA/btsGFnfqN0S/ET4rdQ0hLGCGcsYIflWIXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXxBiA/btsGFnfqN0S/ET4rdQ0hLGCGcsYIflWIXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXxBiA/btsGFnfqN0S/ET4rdQ0hLGCGcsYIflWIXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXxBiA%2FbtsGFnfqN0S%2FET4rdQ0hLGCGcsYIflWIXk%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;650&quot; height=&quot;499&quot; data-filename=&quot;edited_07.png&quot; data-origin-width=&quot;874&quot; data-origin-height=&quot;671&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. [Projects] - [New Project]를 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_08.png&quot; data-origin-width=&quot;1173&quot; data-origin-height=&quot;957&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9mJu7/btsGFoL9vwp/KUtSuZJkk8yWMhT9MBklhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9mJu7/btsGFoL9vwp/KUtSuZJkk8yWMhT9MBklhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9mJu7/btsGFoL9vwp/KUtSuZJkk8yWMhT9MBklhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9mJu7%2FbtsGFoL9vwp%2FKUtSuZJkk8yWMhT9MBklhk%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;741&quot; height=&quot;605&quot; data-filename=&quot;edited_08.png&quot; data-origin-width=&quot;1173&quot; data-origin-height=&quot;957&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_09.png&quot; data-origin-width=&quot;2077&quot; data-origin-height=&quot;1454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5UJLF/btsGGbTaOoL/w5kZIW33syqeXA6b4xD6o1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5UJLF/btsGGbTaOoL/w5kZIW33syqeXA6b4xD6o1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5UJLF/btsGGbTaOoL/w5kZIW33syqeXA6b4xD6o1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5UJLF%2FbtsGGbTaOoL%2Fw5kZIW33syqeXA6b4xD6o1%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;2077&quot; height=&quot;1454&quot; data-filename=&quot;edited_09.png&quot; data-origin-width=&quot;2077&quot; data-origin-height=&quot;1454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. [Create a welcom script]를 체크해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것을 체크해주어야 생성되는 프로젝트에 기본 main.py 파일이 함께 생성됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_10.png&quot; data-origin-width=&quot;1176&quot; data-origin-height=&quot;961&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSK1VD/btsGCcl9GWq/06vlvA03woLphX01nH99fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSK1VD/btsGCcl9GWq/06vlvA03woLphX01nH99fK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSK1VD/btsGCcl9GWq/06vlvA03woLphX01nH99fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSK1VD%2FbtsGCcl9GWq%2F06vlvA03woLphX01nH99fK%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;1176&quot; height=&quot;961&quot; data-filename=&quot;edited_10.png&quot; data-origin-width=&quot;1176&quot; data-origin-height=&quot;961&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 아래처럼 프로젝트와 기본 main.py 파일이 생성됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽 위 삼각형의 Run(실행) 버튼을 클릭하여 실행해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1652&quot; data-origin-height=&quot;824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1PWy8/btsGCZfzT92/GHoTBdcva7iDB1vKyJwsCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1PWy8/btsGCZfzT92/GHoTBdcva7iDB1vKyJwsCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1PWy8/btsGCZfzT92/GHoTBdcva7iDB1vKyJwsCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1PWy8%2FbtsGCZfzT92%2FGHoTBdcva7iDB1vKyJwsCK%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;1652&quot; height=&quot;824&quot; data-origin-width=&quot;1652&quot; data-origin-height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10. Hi, Pycharm이 출력되면 정상적으로 설치 및 프로젝트가 동작한 것입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-04-16 141705.png&quot; data-origin-width=&quot;1641&quot; data-origin-height=&quot;1046&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GLpMt/btsGFnz5MuD/L2kdkw5cEC3PbYfAwE4Qf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GLpMt/btsGFnz5MuD/L2kdkw5cEC3PbYfAwE4Qf0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GLpMt/btsGFnz5MuD/L2kdkw5cEC3PbYfAwE4Qf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGLpMt%2FbtsGFnz5MuD%2FL2kdkw5cEC3PbYfAwE4Qf0%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;1641&quot; height=&quot;1046&quot; data-filename=&quot;스크린샷 2024-04-16 141705.png&quot; data-origin-width=&quot;1641&quot; data-origin-height=&quot;1046&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Python</category>
      <category>jetbrains pycharm 설치</category>
      <category>PyCharm 다운로드</category>
      <category>pycharm 무료 버전</category>
      <category>pycharm설치</category>
      <category>python ide 툴 추천</category>
      <category>python 개발툴 설치</category>
      <category>python 개발환경 셋팅</category>
      <category>python 무료 개발툴</category>
      <category>파이썬 개발툴 설치</category>
      <category>파이참 설치</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/211</guid>
      <comments>https://herojoon-dev.tistory.com/211#entry211comment</comments>
      <pubDate>Tue, 16 Apr 2024 13:02:51 +0900</pubDate>
    </item>
    <item>
      <title>Spring Boot 3.2.4 배포 시 애플리케이션 동작하지 않을 경우</title>
      <link>https://herojoon-dev.tistory.com/210</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;배포 환경이 Spring Boot 3.2.4에 해당하는 필수 스펙이 맞는지 확인해본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;Spring Boot 3.2.4 스펙 확인&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1712468242535&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Getting Started&quot; data-og-description=&quot;If you are getting started with Spring Boot, or &amp;ldquo;Spring&amp;rdquo; in general, start by reading this section. It answers the basic &amp;ldquo;what?&amp;rdquo;, &amp;ldquo;how?&amp;rdquo; and &amp;ldquo;why?&amp;rdquo; questions. It includes an introduction to Spring Boot, along with installation instructions.&quot; data-og-host=&quot;docs.spring.io&quot; data-og-source-url=&quot;https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html&quot; data-og-url=&quot;https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Getting Started&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;If you are getting started with Spring Boot, or &amp;ldquo;Spring&amp;rdquo; in general, start by reading this section. It answers the basic &amp;ldquo;what?&amp;rdquo;, &amp;ldquo;how?&amp;rdquo; and &amp;ldquo;why?&amp;rdquo; questions. It includes an introduction to Spring Boot, along with installation instructions.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.spring.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;해결&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;**Tomcat 사양이 10이상이어야 하는데 과거 버전으로 셋업되어 있어서 Tomcat 10 이상 설치하여 정상 동작 확인하였다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1416&quot; data-origin-height=&quot;919&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ty8vn/btsGrR1SZaT/UvQXKRYf9SQt7xIZLOIjaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ty8vn/btsGrR1SZaT/UvQXKRYf9SQt7xIZLOIjaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ty8vn/btsGrR1SZaT/UvQXKRYf9SQt7xIZLOIjaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fty8vn%2FbtsGrR1SZaT%2FUvQXKRYf9SQt7xIZLOIjaK%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;1416&quot; height=&quot;919&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1416&quot; data-origin-height=&quot;919&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Backend</category>
      <category>spring boot 3 tomcat error</category>
      <category>spring boot 3 tomcat 동작 안함</category>
      <category>spring boot 3.2 tomcat 버전</category>
      <category>spring boot 3.2 배포 시 실행안됨</category>
      <category>spring boot 3.2 버전 tomcat 구동 오류</category>
      <category>spring boot 3.2.3 tomcat 버전</category>
      <category>spring boot 3.2.4 tomcat 오류</category>
      <category>spring boot 3이상 tomcat</category>
      <category>spring boot 배포 사양 확인</category>
      <category>스프링부터 3이상 톰켓 버전</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/210</guid>
      <comments>https://herojoon-dev.tistory.com/210#entry210comment</comments>
      <pubDate>Sun, 7 Apr 2024 14:41:38 +0900</pubDate>
    </item>
    <item>
      <title>AWS EC2에 Redis 설치하기</title>
      <link>https://herojoon-dev.tistory.com/209</link>
      <description>&lt;pre id=&quot;code_1712467502631&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// AWS EC2에서는 기본적으로 apt-get이 아닌 yum을 사용합니다.

sudo yum update
// y/d/n에서 d를 선택합니다.

sudo yum install gcc make
// y를 선택합니다.

// redis 다운로드 합니다.
sudo wget http://download.redis.io/redis-stable.tar.gz 
// 다운로드한 redis 압축 해제합니다.
sudo tar xvzf redis-stable.tar.gz

// redis-stable 폴더 안으로 접근합니다.
cd redis-stable
// make 명령어를 이용하여 redis 파일을 실행 가능한 파일로 생성해줍니다.
// 참고로 make 명령어는 Makefile에 정의된 내용을 수행합니다.
sudo make

// redis-stable 폴더 안에서 redis.conf 설정 수정해주기
vim redis.conf

// 아래 부분들을 찾아서 아래처럼 변경해주시면 됩니다.
- bind 0.0.0.0
- daemonize yes
- logfile /var/log/redis_6379.log
- dir /var/redis/6379

// redis-stable 폴더 아래 src 폴더로 이동 (src 폴더 아래 redis 실행파일 존재)
cd redis-stable/src

// foreground로 실행하는 방법
./redis-server
./redis-cli

// background로 실행하는 방법 (*이 방법으로 실행시키는 것을 권장한다.)
./redis-server &amp;amp;
// redis-server를 실행시킨 후 redis-cli로 redis command 창을 열어 정상적으로 redis-server가 실행됐는지 확인한다.
./redis-cli
// ping이라고 입력했을 때 pong으로 응답이 출력된다면 정상적으로 실행된 것이다.&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Redis</category>
      <category>aws ec2 apt-get 안됨</category>
      <category>aws ec2 redis install</category>
      <category>aws ec2에 redis 설치</category>
      <category>aws ec2에 레디스 설치</category>
      <category>redis background 실행</category>
      <category>redis linux 설치</category>
      <category>redis 실행 명령어</category>
      <category>redis 실행 여부 확인</category>
      <category>redis-cli 사용</category>
      <category>redis.conf 설정</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/209</guid>
      <comments>https://herojoon-dev.tistory.com/209#entry209comment</comments>
      <pubDate>Sun, 7 Apr 2024 14:27:26 +0900</pubDate>
    </item>
    <item>
      <title>vue-loader-v15 Not Found 문제 해결</title>
      <link>https://herojoon-dev.tistory.com/208</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;문제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue-loader-v15 Not Found 오류가 출력되며 npm install, npm build 오류로 vue 프로젝트가 실행되지 않는 문제가 발생했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류명&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;563&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d4NkCr/btsFQyvOEdd/kijNfKPBZyPAZbFvt1Ud6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d4NkCr/btsFQyvOEdd/kijNfKPBZyPAZbFvt1Ud6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d4NkCr/btsFQyvOEdd/kijNfKPBZyPAZbFvt1Ud6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd4NkCr%2FbtsFQyvOEdd%2FkijNfKPBZyPAZbFvt1Ud6k%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;1456&quot; height=&quot;563&quot; data-origin-width=&quot;1456&quot; data-origin-height=&quot;563&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1710662809372&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm WARN old lockfile
npm WARN old lockfile The package-lock.json file was created with an old version of npm,
npm WARN old lockfile so supplemental metadata must be fetched from the registry.
npm WARN old lockfile
npm WARN old lockfile This is a one-time fix-up, please be patient...
npm WARN old lockfile
npm WARN old lockfile HttpErrorGeneral: 404 Not Found - GET https://registry.npmjs.org/@vue%2fvue-loader-v15 - Not found
npm WARN old lockfile     'x-fetch-attempts': [ '1' ],
npm WARN old lockfile     'x-local-cache-status': [ 'skip' ]
npm WARN old lockfile   },
npm WARN old lockfile   statusCode: 404,
npm WARN old lockfile   code: 'E404',
npm WARN old lockfile   method: 'GET',
npm WARN old lockfile   uri: 'https://registry.npmjs.org/@vue%2fvue-loader-v15',
npm WARN old lockfile   body: { error: 'Not found' },
npm WARN old lockfile   pkgid: '@vue/vue-loader-v15@15.10.0'
npm WARN old lockfile }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;원인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue-loader-v15 ^15.9.7 버전이 문제가 발생하여 registry에서 제거되었기 때문에 not found가 발생하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node: v18.13.0&lt;/li&gt;
&lt;li&gt;Vue: v3&lt;/li&gt;
&lt;li&gt;Vue-CLI: v5.0.8&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 실행하게 수정했는데, 버전이 좀 되어서 가능하다면 최신 버전으로 개발하는게 좋을 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. package-lock.json 파일에서 vue-loader 버전 변경해주기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710663084161&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;- 수정한 파일명: package-lock.json
{
	&quot;packages&quot;: {
		&quot;node_modules/@vue/cli-service&quot;: {
			&quot;dependencies&quot;: {
				// &quot;@vue/vue-loader-v15&quot;: &quot;npm:vue-loader@^15.9.7&quot;,  // 수정 전
				&quot;@vue/vue-loader-v15&quot;: &quot;npm:vue-loader@^15.11.1&quot;,  // 수정 후 (해결)

...



// 2. npm install 명령어 실행



// 3. package-lock.json 파일 수정 후 npm install 명령어를 실행해주면 아래 부분도 version이 동일하게 변경 적용 된다.
{
	&quot;packages&quot;: {
		&quot;node_modules/@vue/vue-loader-v15&quot;: {
      			&quot;name&quot;: &quot;vue-loader&quot;,
      			&quot;version&quot;: &quot;15.11.1&quot;,

...&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. npm install 명령어 실행하여 적용.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710663127215&quot; class=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;npm install&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. package-lock.json 파일 수정 후 npm install 명령어를 실행해주면 아래 부분도 version이 동일하게 변경 적용 된다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1710663192797&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
	&quot;packages&quot;: {
		&quot;node_modules/@vue/vue-loader-v15&quot;: {
      			&quot;name&quot;: &quot;vue-loader&quot;,
      			&quot;version&quot;: &quot;15.11.1&quot;,

...&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고 링크&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/vuejs/vue-cli/issues/7098&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/vuejs/vue-cli/issues/7098&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&amp;lt;추가적으로 함께 알면 좋은 것&amp;gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 Node 버전의 프로젝트를 관리 중이라면 nvm을 이용하여 Node 버전을 알맞게 바꿔주세요.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;nvm이란?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;node 버전을 관리해주는 기능입니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;windows nvm 설치 다운로드
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/coreybutler/nvm-windows?tab=readme-ov-file&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/coreybutler/nvm-windows?tab=readme-ov-file&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Linux nvm 설치 방법
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/113&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://herojoon-dev.tistory.com/113&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;nvm 명령어&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1710664015920&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// nvm 설치
// nvm install [설치할 node 버전]
nvm install 18.13.0

// 설치된 node 버전 확인
nvm list

// nvm 버전 선택
// nvm use [사용할 node 버전]
nvm use 18.13.0&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend</category>
      <category>https://registry.npmjs.org/@vue%2fvue-loader-v15 - Not found</category>
      <category>old lockfile HttpErrorGeneral: 404 Not Found - GET https://registry.npmjs.org/@vue%2fvue-loader-v15 - Not found</category>
      <category>vue loader error</category>
      <category>vue loader 찾지못하는 문제</category>
      <category>vue-loader 15 오류</category>
      <category>vue-loader-v15 error</category>
      <category>vue-loader-v15 Not Found</category>
      <category>vue-loader-v15 Not Found registry</category>
      <category>vue-loader-v15 Not Found 해결</category>
      <category>vue-loader-v15 registry error</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/208</guid>
      <comments>https://herojoon-dev.tistory.com/208#entry208comment</comments>
      <pubDate>Sun, 17 Mar 2024 17:29:05 +0900</pubDate>
    </item>
    <item>
      <title>Vue3 Port 변경하는 방법</title>
      <link>https://herojoon-dev.tistory.com/207</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;할 것&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vue3에서 port 변경해서 띄우기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Vue3&lt;/li&gt;
&lt;li&gt;Node v20.11.1&lt;/li&gt;
&lt;li&gt;NPM v10.2.4&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;요약&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 원하는 port로 애플리케이션 실행하는 명령어 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 만든 명령어 실행해보기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 프로젝트/package.json에 원하는 port의 명령어 만들어 주기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) Vue3는 package.json파일 &quot;scripts&quot; {} 란에 명령어를 직접 만들어 사용할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;scripts&quot;: {} 안에 --port 5000이라는 원하는 포트의 명령어를 추가하여 새로운 명령어를 만들어줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) &quot;serve-port&quot;:&amp;nbsp;&quot;vue-cli-service&amp;nbsp;serve&amp;nbsp;--port&amp;nbsp;5000&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설명) port 5000으로 실행 시킬 수 있는 명령어를 serve-port라는 명령어 이름으로 만들어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;**serve-port는 제가 임의로 정한 명령어 이름이므로 다른 이름으로 만드셔도 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;vue3_port변경.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qzUBy/btsFPcFgTek/4bhcdYLNyx13XvOym9r1xK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qzUBy/btsFPcFgTek/4bhcdYLNyx13XvOym9r1xK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qzUBy/btsFPcFgTek/4bhcdYLNyx13XvOym9r1xK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqzUBy%2FbtsFPcFgTek%2F4bhcdYLNyx13XvOym9r1xK%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;750&quot; height=&quot;401&quot; data-filename=&quot;vue3_port변경.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Frontend</category>
      <category>vue port 변경 방법</category>
      <category>vue port 변경 위치</category>
      <category>vue 포트 수정해서 띄우기</category>
      <category>vue3 port 3000으로 변경하기</category>
      <category>vue3 port 바꾸기</category>
      <category>vue3 port 변경</category>
      <category>vue3 명령어 만드는 위치</category>
      <category>vue3 명령어 만들기</category>
      <category>vue3 실행명령어 만들기</category>
      <category>뷰 포트 변경방법</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/207</guid>
      <comments>https://herojoon-dev.tistory.com/207#entry207comment</comments>
      <pubDate>Thu, 14 Mar 2024 23:19:25 +0900</pubDate>
    </item>
    <item>
      <title>Vue3 Component name &amp;quot;Button&amp;quot; should always be multi-word   에러 해결</title>
      <link>https://herojoon-dev.tistory.com/206</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Component name &quot;Button&quot; should always be multi-word&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류 상황&lt;/h2&gt;
&lt;pre id=&quot;code_1709831451801&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// main.js
import Button from 'primevue/button';
import Badge from 'primevue/badge';

const app = createApp(App)

// component를 추가하려고 할 때 에러 발생
app.component('Button', Button)
app.component('Badge', Badge)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Vue3&lt;/li&gt;
&lt;li&gt;Node v20.11.1&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background-color: #2b2b2b; color: #a9b7c6;&quot;&gt;
&lt;pre class=&quot;perl&quot;&gt;&lt;code&gt;&quot;devDependencies&quot;: {
  &quot;@babel/core&quot;: &quot;^7.12.16&quot;,
  &quot;@babel/eslint-parser&quot;: &quot;^7.12.16&quot;,
  &quot;@vue/cli-plugin-babel&quot;: &quot;~5.0.0&quot;,
  &quot;@vue/cli-plugin-eslint&quot;: &quot;~5.0.0&quot;,
  &quot;@vue/cli-service&quot;: &quot;~5.0.0&quot;,
  &quot;eslint&quot;: &quot;^7.32.0&quot;,
  &quot;eslint-plugin-vue&quot;: &quot;^8.0.3&quot;
},&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;원인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;eslint의 규칙으로 컴포넌트명을 여러 구성요소로(단어 조합하여) 이름을 지어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) Button (x)&amp;nbsp; /&amp;nbsp; BaseButton (○)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;작성 위치: 프로젝트/package.json&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ package.josn 수정 후&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;npm install로 package 정보를 최신화 한 뒤에 npm run serve 실행을 하여야 적용 됩니다. &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1709832097639&quot; class=&quot;actionscript&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;&quot;eslintConfig&quot;: {
    &quot;root&quot;: true,
    &quot;env&quot;: {
      &quot;node&quot;: true
    },
    &quot;extends&quot;: [
      &quot;plugin:vue/vue3-essential&quot;,
      &quot;eslint:recommended&quot;
    ],
    &quot;parserOptions&quot;: {
      &quot;parser&quot;: &quot;@babel/eslint-parser&quot;
    },
    &quot;rules&quot;: {}  // 이 부분에 vue/multi-word-component-names 설정을 넣어주면 됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;방법1&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vue/multi-word-component-names 에러 사항을 ignores(무시)할 이름을 작성해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1709832085011&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;eslintConfig&quot;: {
    &quot;root&quot;: true,
    &quot;env&quot;: {
      &quot;node&quot;: true
    },
    &quot;extends&quot;: [
      &quot;plugin:vue/vue3-essential&quot;,
      &quot;eslint:recommended&quot;
    ],
    &quot;parserOptions&quot;: {
      &quot;parser&quot;: &quot;@babel/eslint-parser&quot;
    },
    &quot;rules&quot;: {
      // [이 부분 시작] - 이 부분을 넣어줍니다.
      &quot;vue/multi-word-component-names&quot;: [&quot;error&quot;, {
        &quot;ignores&quot;: [&quot;Button&quot;, &quot;Badge&quot;]
      }]
      // [이 부분 끝]
    }
  },&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;방법2&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체적으로 vue/multi-word-component-names 체크를 하지 않는 설정이 없을까 해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;off&quot;, &quot;N&quot;, &quot;False&quot; 등 여러가지를 넣어봤는데 &quot;off&quot;로 할 경우 정상 동작되었습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1709832440464&quot; class=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;&quot;eslintConfig&quot;: {
    &quot;root&quot;: true,
    &quot;env&quot;: {
      &quot;node&quot;: true
    },
    &quot;extends&quot;: [
      &quot;plugin:vue/vue3-essential&quot;,
      &quot;eslint:recommended&quot;
    ],
    &quot;parserOptions&quot;: {
      &quot;parser&quot;: &quot;@babel/eslint-parser&quot;
    },
    &quot;rules&quot;: {
      // [이 부분 시작] - 이 부분을 넣어줍니다.
      &quot;vue/multi-word-component-names&quot;: &quot;off&quot;
      // [이 부분 끝]
    }
  },&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;방법3&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;전체적으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;vue/multi-word-component-names 체크를 하지 않는 설정이 없을까 해서&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&quot;off&quot;, &quot;N&quot;, &quot;False&quot; 등 여러가지를 넣어봤는데 0으로 할 경우 정상 동작되었습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1709832518411&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;eslintConfig&quot;: {
    &quot;root&quot;: true,
    &quot;env&quot;: {
      &quot;node&quot;: true
    },
    &quot;extends&quot;: [
      &quot;plugin:vue/vue3-essential&quot;,
      &quot;eslint:recommended&quot;
    ],
    &quot;parserOptions&quot;: {
      &quot;parser&quot;: &quot;@babel/eslint-parser&quot;
    },
    &quot;rules&quot;: {
      // [이 부분 시작] - 이 부분을 넣어줍니다.
      &quot;vue/multi-word-component-names&quot;: 0
      // [이 부분 끝]
    }
  },&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;참고&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://eslint.vuejs.org/rules/multi-word-component-names&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://eslint.vuejs.org/rules/multi-word-component-names&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1709832644392&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;vue/multi-word-component-names | eslint-plugin-vue&quot; data-og-description=&quot;&quot; data-og-host=&quot;eslint.vuejs.org&quot; data-og-source-url=&quot;https://eslint.vuejs.org/rules/multi-word-component-names&quot; data-og-url=&quot;https://eslint.vuejs.org/rules/multi-word-component-names&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://eslint.vuejs.org/rules/multi-word-component-names&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://eslint.vuejs.org/rules/multi-word-component-names&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;vue/multi-word-component-names | eslint-plugin-vue&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;eslint.vuejs.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend</category>
      <category>Component name &amp;quot;Button&amp;quot; should always be multi-word</category>
      <category>Component name should always be multi-word</category>
      <category>vue 3 특정 eslint 사용안함</category>
      <category>vue app.component error</category>
      <category>vue eslint multi-word-component-names error</category>
      <category>vue/multi-word-component-names 끄기</category>
      <category>vue/multi-word-component-names 동작안하게</category>
      <category>vue/multi-word-component-names 설정</category>
      <category>vue3 Component name &amp;quot;Button&amp;quot; should always be multi-word</category>
      <category>vue3 component 이름 에러</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/206</guid>
      <comments>https://herojoon-dev.tistory.com/206#entry206comment</comments>
      <pubDate>Fri, 8 Mar 2024 02:40:08 +0900</pubDate>
    </item>
    <item>
      <title>Vue3에서 AxiosError: Network Error 해결</title>
      <link>https://herojoon-dev.tistory.com/205</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류 사항&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vue3 프로젝트를 실행 시켰는데 잠시 후 아래 오류가 발생했습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1709818533688&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Uncaught runtime errors:
ERROR
Network Error
AxiosError: Network Error
    at XMLHttpRequest.handleError (webpack-internal:///./node_modules/axios/lib/adapters/xhr.js:160:14)
    at Axios.request (webpack-internal:///./node_modules/axios/lib/core/Axios.js:54:41)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-03-07 223300.png&quot; data-origin-width=&quot;1212&quot; data-origin-height=&quot;402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5cEbk/btsFAu2qr6y/ppNK7ADRlyCJ7kGzLAWrgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5cEbk/btsFAu2qr6y/ppNK7ADRlyCJ7kGzLAWrgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5cEbk/btsFAu2qr6y/ppNK7ADRlyCJ7kGzLAWrgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5cEbk%2FbtsFAu2qr6y%2FppNK7ADRlyCJ7kGzLAWrgK%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;1212&quot; height=&quot;402&quot; data-filename=&quot;스크린샷 2024-03-07 223300.png&quot; data-origin-width=&quot;1212&quot; data-origin-height=&quot;402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;Frontend&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node v20.11.1&lt;/li&gt;
&lt;li&gt;Vue3&lt;/li&gt;
&lt;li&gt;Vue3에 axios lib 사용 중&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;Backend&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Spring Boot 3&lt;/li&gt;
&lt;li&gt;Java 17&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;원인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;axios로 호출 한 Backend API에 CORS 설정을 해주어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CORS란 호출하는 곳과 호출 받는 서비스의 서비스 도메인이 다를 경우 발생합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;axios로 호출 한 Backend API에 CORS 설정을 해줍니다.&lt;/p&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;&amp;lt;방법1&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Backend 서비스의 Controller 코드 상단에 @CrossOrigin 를 붙여줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1709819502179&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@CrossOrigin  // cors 어노테이션을 붙여주세요.
@RestController
public class TestController {
...
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;방법2&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Cors Configuration 설정을 추가해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1709819402908&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * CORS 설정
 */
@Configuration
public class WebCorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping(&quot;/**&quot;)
                .allowedOrigins(&quot;*&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Frontend</category>
      <category>axios cross origin</category>
      <category>axios Network Error</category>
      <category>axios 오류</category>
      <category>axios 오류 해결</category>
      <category>AxiosError: Network Error</category>
      <category>CORS 해결</category>
      <category>frontend backend cors</category>
      <category>spring boot cors annotation</category>
      <category>spring boot cors 설정</category>
      <category>vue cors</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/205</guid>
      <comments>https://herojoon-dev.tistory.com/205#entry205comment</comments>
      <pubDate>Thu, 7 Mar 2024 22:53:42 +0900</pubDate>
    </item>
    <item>
      <title>IntelliJ 터미널에서 명령어가 동작하지 않을 경우 혹은 IntelliJ change powershell to cmd</title>
      <link>https://herojoon-dev.tistory.com/203</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows 11&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류 상황&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows 11에 Node.js를 설치하고 환경변수도 잘 적용되었고 cmd에 node 명령어가 정상 동작하는 것을 확인 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ를 열어서 IntelliJ 안에 있는 Terminal창에 node 명령어를 사용하려 할 경우 명령어 찾을 수 없다는 오류 발생.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(우선 IntelliJ 기본이 PowerShell로 되어 있어서 CMD로 바꾸려고 함.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결 방법&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. IntelliJ 재부팅&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. IntelliJ의 PowerShell을 CMD로 변경하기&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;- IntelliJ에서 Terminal에 명령 프롬프트를 변경하는 방법은 두 가지가 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;IntelliJ Terminal 명령 프롬프트 변경하는 첫번째 방법&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하단 Terminal 오른쪽 화살표 클릭 후 원하는 명령 프롬프트를 선택합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-02-18 235421.png&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ek8Q2E/btsE0qEQD7s/G7HLJakSdI5bDvK0DavDU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ek8Q2E/btsE0qEQD7s/G7HLJakSdI5bDvK0DavDU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ek8Q2E/btsE0qEQD7s/G7HLJakSdI5bDvK0DavDU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fek8Q2E%2FbtsE0qEQD7s%2FG7HLJakSdI5bDvK0DavDU0%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;444&quot; height=&quot;346&quot; data-filename=&quot;스크린샷 2024-02-18 235421.png&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;IntelliJ Terminal 명령 프롬프트 변경하는 두번째 방법&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Tools] - [Terminal] - [Application Settings] - [Shell path]에서 원하는 명령 프롬프트를 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Apply] - [OK] 클릭해서 설정을 적용합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-02-18 233159.png&quot; data-origin-width=&quot;1474&quot; data-origin-height=&quot;1090&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YcBwZ/btsEYQdfZCJ/W024W524Crt910nlqZqgK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YcBwZ/btsEYQdfZCJ/W024W524Crt910nlqZqgK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YcBwZ/btsEYQdfZCJ/W024W524Crt910nlqZqgK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYcBwZ%2FbtsEYQdfZCJ%2FW024W524Crt910nlqZqgK1%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;1474&quot; height=&quot;1090&quot; data-filename=&quot;스크린샷 2024-02-18 233159.png&quot; data-origin-width=&quot;1474&quot; data-origin-height=&quot;1090&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하단 Terminal 창에 기존 명령 프롬프트로 보여진다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽 +를 클릭하면 적용된 명령 프롬프트로 화면이 출력됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-02-18 234042.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccaPza/btsEYI7Arc2/JlYW5awyXpthwG4cVWLyKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccaPza/btsEYI7Arc2/JlYW5awyXpthwG4cVWLyKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccaPza/btsEYI7Arc2/JlYW5awyXpthwG4cVWLyKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccaPza%2FbtsEYI7Arc2%2FJlYW5awyXpthwG4cVWLyKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;574&quot; height=&quot;116&quot; data-filename=&quot;스크린샷 2024-02-18 234042.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 이렇게 하면 되야하는데 그래도 안되서 컴퓨터 재부팅 하니까 잘 동작하네요.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>기타</category>
      <category>IntelliJ change powershell to cmd</category>
      <category>intellij cmd to powershell</category>
      <category>intellij powershell to cmd</category>
      <category>intellij setting cmd</category>
      <category>intellij terminal 명령어 오류</category>
      <category>intellij terminal 명령어를 찾을 수 없습니다.</category>
      <category>intellij terminal 변경</category>
      <category>intellij에서 node 명령어 못찾을때</category>
      <category>intellj cmd 설정</category>
      <category>인텔리제이 터미널 cmd로 변경</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/203</guid>
      <comments>https://herojoon-dev.tistory.com/203#entry203comment</comments>
      <pubDate>Mon, 19 Feb 2024 00:15:16 +0900</pubDate>
    </item>
    <item>
      <title>IntelliJ 프로젝트 새 창으로 열기 설정</title>
      <link>https://herojoon-dev.tistory.com/202</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ 프로젝트 open할 때 새 창으로 열도록 설정하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[File] - [Settings] 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;1000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s2cCC/btsEFjUI6bg/kSbN1MjZE3B5OZB9PLq0P1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s2cCC/btsEFjUI6bg/kSbN1MjZE3B5OZB9PLq0P1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s2cCC/btsEFjUI6bg/kSbN1MjZE3B5OZB9PLq0P1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs2cCC%2FbtsEFjUI6bg%2FkSbN1MjZE3B5OZB9PLq0P1%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;392&quot; height=&quot;754&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;520&quot; data-origin-height=&quot;1000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Appearance &amp;amp; Behavior] - [Project] - [Reopen projects on startup] - [New window] 클릭.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1469&quot; data-origin-height=&quot;1082&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnrCpo/btsEGi11r4Q/zjbIdexD4KLKikD45Z0cX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnrCpo/btsEGi11r4Q/zjbIdexD4KLKikD45Z0cX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnrCpo/btsEGi11r4Q/zjbIdexD4KLKikD45Z0cX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnrCpo%2FbtsEGi11r4Q%2FzjbIdexD4KLKikD45Z0cX0%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;1469&quot; height=&quot;1082&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;1469&quot; data-origin-height=&quot;1082&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>기타</category>
      <category>intellij new window 설정</category>
      <category>intellij project open setting</category>
      <category>intellij project open 설정</category>
      <category>intellij project 새 창 설정</category>
      <category>intellij 새 창 설정</category>
      <category>IntelliJ 프로젝트 새 창으로 열기</category>
      <category>IntelliJ 프로젝트 새 창으로 열기 설정</category>
      <category>intellij 프로젝트 새창 설정</category>
      <category>intellij 프로젝트 열기 설정</category>
      <category>인텔리제이 새창열기</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/202</guid>
      <comments>https://herojoon-dev.tistory.com/202#entry202comment</comments>
      <pubDate>Mon, 12 Feb 2024 23:35:40 +0900</pubDate>
    </item>
    <item>
      <title>[구글 애드센스] 판매 대금 지급의 지연을 방지하고 정확한 금액이 세금으로 원천징수될 수 있도록 가능한 한 빨리 싱가포르 세금 정보를 제공해 주세요.</title>
      <link>https://herojoon-dev.tistory.com/201</link>
      <description>&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;lt;구글 애드센스에서 아래 팝업이 뜰 경우&amp;gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_구글 애드센스.png&quot; data-origin-width=&quot;1776&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZJWyU/btsD7mv6bHM/gEqjeZvetdfQr8ySibR5b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZJWyU/btsD7mv6bHM/gEqjeZvetdfQr8ySibR5b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZJWyU/btsD7mv6bHM/gEqjeZvetdfQr8ySibR5b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZJWyU%2FbtsD7mv6bHM%2FgEqjeZvetdfQr8ySibR5b0%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;1776&quot; height=&quot;436&quot; data-filename=&quot;edited_edited_edited_구글 애드센스.png&quot; data-origin-width=&quot;1776&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;lt;싱가포르 세금 정보 입력&amp;gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;싱가포르 세금정보 팝업이 왜 떴는지 알 수는 없으나 검색해보면 꽤 많은 분들이 떴고 해결 방법은 대략 두 가지로 나뉘더군요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;해결책1&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세금 면제를 모두 '아니오'라고 입력하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;해결책2&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세금 면제를 '예'로 입력 후 거주자 증명서를 제출하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 혹시나 세금이 이중으로 떼이지 않을까 하여 좀 더 귀찮지만 &amp;lt;해결책2&amp;gt;의 방법으로 하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이 방법들이 모두 정확한 것은 아니며 구글 애드센스 도움말에서도 정확한 설명을 찾을 수 없어 이렇게 해결한 것이니 좀 더 알아보고 더 정확한 방법으로 해결하시면 좋을 것 같습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02 구글 애드센스2.png&quot; data-origin-width=&quot;1772&quot; data-origin-height=&quot;1105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o983s/btsD2vn5p9o/KxIA8zs8Jm6KwCKqL5LwKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o983s/btsD2vn5p9o/KxIA8zs8Jm6KwCKqL5LwKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o983s/btsD2vn5p9o/KxIA8zs8Jm6KwCKqL5LwKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo983s%2FbtsD2vn5p9o%2FKxIA8zs8Jm6KwCKqL5LwKK%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;1772&quot; height=&quot;1105&quot; data-filename=&quot;edited_02 구글 애드센스2.png&quot; data-origin-width=&quot;1772&quot; data-origin-height=&quot;1105&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_03 구글 애드센스3.png&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;532&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1wHCy/btsD7noetp6/vT9XLtdZtXK6f3SVcHDFTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1wHCy/btsD7noetp6/vT9XLtdZtXK6f3SVcHDFTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1wHCy/btsD7noetp6/vT9XLtdZtXK6f3SVcHDFTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1wHCy%2FbtsD7noetp6%2FvT9XLtdZtXK6f3SVcHDFTK%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;636&quot; height=&quot;532&quot; data-filename=&quot;edited_03 구글 애드센스3.png&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;532&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한국과 싱가포르는 이중과세방지협약을 맺고 있는 국가로 한국과 싱가포르 두 곳에 중복으로 세금을 납부하지 않기 위해서는(싱가포르에 세금납부 0%로 해야한다면) 면제 대상 체크 후 홈텍스에서 거주자 증명서를 발급하여 구글 애드센스에 제출하면 된다고 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_04 구글 애드센스4_2.png&quot; data-origin-width=&quot;1539&quot; data-origin-height=&quot;2939&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLvFA9/btsD28lPNTS/U2efgkck9FdNAEzRZX9L8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLvFA9/btsD28lPNTS/U2efgkck9FdNAEzRZX9L8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLvFA9/btsD28lPNTS/U2efgkck9FdNAEzRZX9L8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLvFA9%2FbtsD28lPNTS%2FU2efgkck9FdNAEzRZX9L8K%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;1539&quot; height=&quot;2939&quot; data-filename=&quot;edited_04 구글 애드센스4_2.png&quot; data-origin-width=&quot;1539&quot; data-origin-height=&quot;2939&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_05 싱가포르 거주자증명서 등록_검토중.png&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;943&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bH2t4p/btsD4ERya8R/Jqj9t9qAyzlJlEw7KnEvM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bH2t4p/btsD4ERya8R/Jqj9t9qAyzlJlEw7KnEvM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bH2t4p/btsD4ERya8R/Jqj9t9qAyzlJlEw7KnEvM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH2t4p%2FbtsD4ERya8R%2FJqj9t9qAyzlJlEw7KnEvM0%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;1774&quot; height=&quot;943&quot; data-filename=&quot;edited_05 싱가포르 거주자증명서 등록_검토중.png&quot; data-origin-width=&quot;1774&quot; data-origin-height=&quot;943&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;저는 아래와 같이 거주자 증명서를 발급하여 제출하였고, 검토 중 이었다가 몇 일 뒤 싱가포르 관련 팝업은 더 이상 뜨지 않았습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;추후 구글 결제센터에서 싱가포르 세금 정보가 수락된 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_구글 싱가포르 세금정보 수락화면.png&quot; data-origin-width=&quot;2050&quot; data-origin-height=&quot;1169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/unAcu/btsEFO0icL6/R82RvItJ7YuSzOKJDA6sR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/unAcu/btsEFO0icL6/R82RvItJ7YuSzOKJDA6sR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/unAcu/btsEFO0icL6/R82RvItJ7YuSzOKJDA6sR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FunAcu%2FbtsEFO0icL6%2FR82RvItJ7YuSzOKJDA6sR1%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;2050&quot; height=&quot;1169&quot; data-filename=&quot;edited_구글 싱가포르 세금정보 수락화면.png&quot; data-origin-width=&quot;2050&quot; data-origin-height=&quot;1169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&amp;lt;거주자 증명서 발급 방법&amp;gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;- 온라인 발급처: &lt;a href=&quot;https://www.hometax.go.kr/websquare/websquare.html?w2xPath=/ui/pp/index_pp.xml&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;홈택스&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_10 거주자 증명서 신청방법1.png&quot; data-origin-width=&quot;1987&quot; data-origin-height=&quot;1224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfsabi/btsD0LLxqtq/XOCGr9a8s6p83b83FCe6Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfsabi/btsD0LLxqtq/XOCGr9a8s6p83b83FCe6Gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfsabi/btsD0LLxqtq/XOCGr9a8s6p83b83FCe6Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbfsabi%2FbtsD0LLxqtq%2FXOCGr9a8s6p83b83FCe6Gk%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;1987&quot; height=&quot;1224&quot; data-filename=&quot;edited_10 거주자 증명서 신청방법1.png&quot; data-origin-width=&quot;1987&quot; data-origin-height=&quot;1224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_11 거주자증명서 홈텍스.png&quot; data-origin-width=&quot;1957&quot; data-origin-height=&quot;801&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wXYSU/btsD3cVSysI/cfKhMXEC5PZoxEkkqaVZ60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wXYSU/btsD3cVSysI/cfKhMXEC5PZoxEkkqaVZ60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wXYSU/btsD3cVSysI/cfKhMXEC5PZoxEkkqaVZ60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwXYSU%2FbtsD3cVSysI%2FcfKhMXEC5PZoxEkkqaVZ60%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;1957&quot; height=&quot;801&quot; data-filename=&quot;edited_11 거주자증명서 홈텍스.png&quot; data-origin-width=&quot;1957&quot; data-origin-height=&quot;801&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간편인증을 하니 자동으로 개인정보를 가져와 표시되었고, 영문주소만 따로 입력해주었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 거주자임을 증명받고자하는 연도는 현재 연도로 입력하였습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_11-1 거주자 증명서 신청방법2.png&quot; data-origin-width=&quot;1476&quot; data-origin-height=&quot;1130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5jrGa/btsD4G2UJ1m/vTLBJMePdNk2MCPkrfJawK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5jrGa/btsD4G2UJ1m/vTLBJMePdNk2MCPkrfJawK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5jrGa/btsD4G2UJ1m/vTLBJMePdNk2MCPkrfJawK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5jrGa%2FbtsD4G2UJ1m%2FvTLBJMePdNk2MCPkrfJawK%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;1476&quot; height=&quot;1130&quot; data-filename=&quot;edited_11-1 거주자 증명서 신청방법2.png&quot; data-origin-width=&quot;1476&quot; data-origin-height=&quot;1130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_11-2 거주자 증명서 신청방법3.png&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;1037&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kMFEN/btsD3kGjyVv/kyUyL5KaRbvDhT5dty4Ph1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kMFEN/btsD3kGjyVv/kyUyL5KaRbvDhT5dty4Ph1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kMFEN/btsD3kGjyVv/kyUyL5KaRbvDhT5dty4Ph1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkMFEN%2FbtsD3kGjyVv%2FkyUyL5KaRbvDhT5dty4Ph1%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;1477&quot; height=&quot;1037&quot; data-filename=&quot;edited_11-2 거주자 증명서 신청방법3.png&quot; data-origin-width=&quot;1477&quot; data-origin-height=&quot;1037&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;발급대상국가는 [코드검색]에서 아래와 같이 검색하여 선택해주시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_11-3 거주자 증명서 신청방법4.png&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;809&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bePS3v/btsD2JsUyR5/SDnlqto4QMbBpkkmBkdjL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bePS3v/btsD2JsUyR5/SDnlqto4QMbBpkkmBkdjL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bePS3v/btsD2JsUyR5/SDnlqto4QMbBpkkmBkdjL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbePS3v%2FbtsD2JsUyR5%2FSDnlqto4QMbBpkkmBkdjL1%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;688&quot; height=&quot;465&quot; data-filename=&quot;edited_11-3 거주자 증명서 신청방법4.png&quot; data-origin-width=&quot;1198&quot; data-origin-height=&quot;809&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첨부서류는 별도 등록하지 않고 마무리했습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_11-4 거주자 증명서 신청방법5.png&quot; data-origin-width=&quot;1469&quot; data-origin-height=&quot;629&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1buJ8/btsD8w6oxw6/2paN7p2NzxCFfUVfcxAJTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1buJ8/btsD8w6oxw6/2paN7p2NzxCFfUVfcxAJTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1buJ8/btsD8w6oxw6/2paN7p2NzxCFfUVfcxAJTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1buJ8%2FbtsD8w6oxw6%2F2paN7p2NzxCFfUVfcxAJTK%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;1469&quot; height=&quot;629&quot; data-filename=&quot;edited_11-4 거주자 증명서 신청방법5.png&quot; data-origin-width=&quot;1469&quot; data-origin-height=&quot;629&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접수완료된 상태에서 하루쯤 지나니 출력 가능한 상태가 되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_13 거주자 증명서 신청.png&quot; data-origin-width=&quot;1468&quot; data-origin-height=&quot;495&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuZeGj/btsD09yMHlH/kGi15oEvk2qnIbqeFiMgV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuZeGj/btsD09yMHlH/kGi15oEvk2qnIbqeFiMgV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuZeGj/btsD09yMHlH/kGi15oEvk2qnIbqeFiMgV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuZeGj%2FbtsD09yMHlH%2FkGi15oEvk2qnIbqeFiMgV1%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;1468&quot; height=&quot;495&quot; data-filename=&quot;edited_13 거주자 증명서 신청.png&quot; data-origin-width=&quot;1468&quot; data-origin-height=&quot;495&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[출력]을 클릭해서 바로 PDF로 저장할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_12 거주자 증명서 발급.png&quot; data-origin-width=&quot;1467&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OIxks/btsD4jNGyk2/kHWvW3zv5RpsGKW6JLkwrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OIxks/btsD4jNGyk2/kHWvW3zv5RpsGKW6JLkwrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OIxks/btsD4jNGyk2/kHWvW3zv5RpsGKW6JLkwrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOIxks%2FbtsD4jNGyk2%2FkHWvW3zv5RpsGKW6JLkwrk%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;1467&quot; height=&quot;499&quot; data-filename=&quot;edited_12 거주자 증명서 발급.png&quot; data-origin-width=&quot;1467&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장된 PDF파일을 구글 애드센스 - 납세자 거주지 증명서 첨부란에 등록해주었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_14 거주자 증명서 출력.png&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;959&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQ6I6X/btsD4sRdyXl/v5a5T8ezojz9kJGAI9S1D0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQ6I6X/btsD4sRdyXl/v5a5T8ezojz9kJGAI9S1D0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQ6I6X/btsD4sRdyXl/v5a5T8ezojz9kJGAI9S1D0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQ6I6X%2FbtsD4sRdyXl%2Fv5a5T8ezojz9kJGAI9S1D0%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;350&quot; height=&quot;607&quot; data-filename=&quot;edited_14 거주자 증명서 출력.png&quot; data-origin-width=&quot;553&quot; data-origin-height=&quot;959&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>기타</category>
      <category>google adsense singapore</category>
      <category>구글 애드센스 싱가포르 팝업</category>
      <category>구글애드센스 싱가포르</category>
      <category>판매 대금 지급의 지연을 방지하고 정확한 금액이 세금으로 원천징수될 수 있도록 가능한 한 빨리 싱가포르 세금 정보를 제공해 주세요.</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/201</guid>
      <comments>https://herojoon-dev.tistory.com/201#entry201comment</comments>
      <pubDate>Sun, 28 Jan 2024 21:27:33 +0900</pubDate>
    </item>
    <item>
      <title>마켓플러스로 카페24에 네이버 스마트스토어 상품을 쉽게 옮기기</title>
      <link>https://herojoon-dev.tistory.com/200</link>
      <description>&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;네이버 스마트스토어 상품을 카페24로 쉽게 옮기기&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;간단 설명&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;카페24의 &quot;마켓플러스&quot; 기능을 이용하여 네이버의 스마트스토어 상품을 쉽게 옮길 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;할 것 요약&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;1. 카페24 마켓플러스에 네이버 스마트스토어 연동정보 등록하기&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;2. 상품 가져오기&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;3. 상품 등록 마무리&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;h4 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. 카페24 마켓플러스에 네이버 스마트스토어 연동정보 등록하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카페24 왼쪽 메뉴에서 [마켓플러스]를 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-1.png&quot; data-origin-width=&quot;289&quot; data-origin-height=&quot;964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJr3VY/btsDKL4iTj8/VYUqeB75lqoOHEa9knHMy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJr3VY/btsDKL4iTj8/VYUqeB75lqoOHEa9knHMy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJr3VY/btsDKL4iTj8/VYUqeB75lqoOHEa9knHMy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJr3VY%2FbtsDKL4iTj8%2FVYUqeB75lqoOHEa9knHMy0%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;229&quot; height=&quot;764&quot; data-filename=&quot;edited_01-1.png&quot; data-origin-width=&quot;289&quot; data-origin-height=&quot;964&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 마켓플러스 화면으로 이동됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-2.png&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFThLm/btsDHrTRuar/pwI473WDoR52NhvkLRjweK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFThLm/btsDHrTRuar/pwI473WDoR52NhvkLRjweK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFThLm/btsDHrTRuar/pwI473WDoR52NhvkLRjweK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFThLm%2FbtsDHrTRuar%2FpwI473WDoR52NhvkLRjweK%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;1630&quot; height=&quot;365&quot; data-filename=&quot;edited_01-2.png&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[기본] - [마켓계정관리]를 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-3.png&quot; data-origin-width=&quot;1014&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oyH5a/btsDGkm8oPk/pheRhUFxrogk1zbHNErlB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oyH5a/btsDGkm8oPk/pheRhUFxrogk1zbHNErlB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oyH5a/btsDGkm8oPk/pheRhUFxrogk1zbHNErlB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoyH5a%2FbtsDGkm8oPk%2FpheRhUFxrogk1zbHNErlB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1014&quot; height=&quot;371&quot; data-filename=&quot;edited_01-3.png&quot; data-origin-width=&quot;1014&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OFF를 클릭하여 스마트스토어 연동설정을 시작합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-4.png&quot; data-origin-width=&quot;1254&quot; data-origin-height=&quot;926&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBzA6F/btsDHrzuAxJ/mBmMBqiZ1xwxmJj3ArQb9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBzA6F/btsDHrzuAxJ/mBmMBqiZ1xwxmJj3ArQb9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBzA6F/btsDHrzuAxJ/mBmMBqiZ1xwxmJj3ArQb9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBzA6F%2FbtsDHrzuAxJ%2FmBmMBqiZ1xwxmJj3ArQb9K%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;1254&quot; height=&quot;926&quot; data-filename=&quot;edited_01-4.png&quot; data-origin-width=&quot;1254&quot; data-origin-height=&quot;926&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 화면이 나타나며 연동에 필요한 스마트스토어 정보를 입력해주시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-5.png&quot; data-origin-width=&quot;1543&quot; data-origin-height=&quot;985&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bAzlv3/btsDJTohy77/gBnyNXKXKiWJJJ9P3jky2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bAzlv3/btsDJTohy77/gBnyNXKXKiWJJJ9P3jky2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bAzlv3/btsDJTohy77/gBnyNXKXKiWJJJ9P3jky2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbAzlv3%2FbtsDJTohy77%2FgBnyNXKXKiWJJJ9P3jky2K%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;1543&quot; height=&quot;985&quot; data-filename=&quot;edited_01-5.png&quot; data-origin-width=&quot;1543&quot; data-origin-height=&quot;985&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 화면은 위 카페24 화면에 연동정보를 채우기 위해 필요한 네이버 스마트스토어의 연동정보 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-6.png&quot; data-origin-width=&quot;1646&quot; data-origin-height=&quot;1030&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dYVGND/btsDKzJzzIf/DhpDPUSbHI5nYkTt85te1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dYVGND/btsDKzJzzIf/DhpDPUSbHI5nYkTt85te1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dYVGND/btsDKzJzzIf/DhpDPUSbHI5nYkTt85te1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdYVGND%2FbtsDKzJzzIf%2FDhpDPUSbHI5nYkTt85te1k%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;1646&quot; height=&quot;1030&quot; data-filename=&quot;edited_01-6.png&quot; data-origin-width=&quot;1646&quot; data-origin-height=&quot;1030&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 네이버 스마트스토어 정보를 아래 카페24 화면에 등록해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;판매자ID와 스마트스토어 주소는 둘 다 스마트스토어 뒤의 주소를 작성해주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모두 작성 후 연동 정보가 올바른지 확인하기 위해 [인증하기] 버튼을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-7.png&quot; data-origin-width=&quot;1292&quot; data-origin-height=&quot;931&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oejHr/btsDGIgVSPn/RyIRQ2Zc4xyByF0NujvuoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oejHr/btsDGIgVSPn/RyIRQ2Zc4xyByF0NujvuoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oejHr/btsDGIgVSPn/RyIRQ2Zc4xyByF0NujvuoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoejHr%2FbtsDGIgVSPn%2FRyIRQ2Zc4xyByF0NujvuoK%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;1292&quot; height=&quot;931&quot; data-filename=&quot;edited_01-7.png&quot; data-origin-width=&quot;1292&quot; data-origin-height=&quot;931&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인증이 완료되면 아래와 같이 팝업이 보여집니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-8.png&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba364v/btsDLuH1ktq/aWpeq7RJgGX9Rp43aoscNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba364v/btsDLuH1ktq/aWpeq7RJgGX9Rp43aoscNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba364v/btsDLuH1ktq/aWpeq7RJgGX9Rp43aoscNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba364v%2FbtsDLuH1ktq%2FaWpeq7RJgGX9Rp43aoscNK%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;654&quot; height=&quot;208&quot; data-filename=&quot;edited_01-8.png&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 사항은 원하는데로 설정하셔도 되고 아래 그대로 두셔도 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 아래 그대로 두었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-9.png&quot; data-origin-width=&quot;1611&quot; data-origin-height=&quot;1084&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMQYKf/btsDJnC8gsM/DZQH8RJcSOfelGw3whekCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMQYKf/btsDJnC8gsM/DZQH8RJcSOfelGw3whekCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMQYKf/btsDJnC8gsM/DZQH8RJcSOfelGw3whekCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMQYKf%2FbtsDJnC8gsM%2FDZQH8RJcSOfelGw3whekCk%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;1611&quot; height=&quot;1084&quot; data-filename=&quot;edited_01-9.png&quot; data-origin-width=&quot;1611&quot; data-origin-height=&quot;1084&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필수 사항이므로 아래 개인정보 수집 동의를 체크해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 [저장]을 클릭해주시면 스마트스토어 연동이 완료됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_01-10.png&quot; data-origin-width=&quot;1444&quot; data-origin-height=&quot;664&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bldOSe/btsDGkHqKXs/TTF6fHvho3LbkmOIJltlSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bldOSe/btsDGkHqKXs/TTF6fHvho3LbkmOIJltlSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bldOSe/btsDGkHqKXs/TTF6fHvho3LbkmOIJltlSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbldOSe%2FbtsDGkHqKXs%2FTTF6fHvho3LbkmOIJltlSK%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;1444&quot; height=&quot;664&quot; data-filename=&quot;edited_edited_01-10.png&quot; data-origin-width=&quot;1444&quot; data-origin-height=&quot;664&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연동이 완료되면 아래와 같이 팝업이 보여집니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-11.png&quot; data-origin-width=&quot;657&quot; data-origin-height=&quot;212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/P6FP5/btsDJkGpkaZ/7QDHMD9D1RU5Aq1ssr2Of1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/P6FP5/btsDJkGpkaZ/7QDHMD9D1RU5Aq1ssr2Of1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/P6FP5/btsDJkGpkaZ/7QDHMD9D1RU5Aq1ssr2Of1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FP6FP5%2FbtsDJkGpkaZ%2F7QDHMD9D1RU5Aq1ssr2Of1%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;657&quot; height=&quot;212&quot; data-filename=&quot;edited_01-11.png&quot; data-origin-width=&quot;657&quot; data-origin-height=&quot;212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-12.png&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v3Ruo/btsDGqnkrvI/gNa37q5yAVjahaKjWKJoB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v3Ruo/btsDGqnkrvI/gNa37q5yAVjahaKjWKJoB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v3Ruo/btsDGqnkrvI/gNa37q5yAVjahaKjWKJoB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv3Ruo%2FbtsDGqnkrvI%2FgNa37q5yAVjahaKjWKJoB0%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;658&quot; height=&quot;238&quot; data-filename=&quot;edited_01-12.png&quot; data-origin-width=&quot;658&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스마트스토어가 나의마켓에 추가되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-13.png&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;583&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6A4cf/btsDJhJImbt/imsKcfJkGyeY3J73yfFjwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6A4cf/btsDJhJImbt/imsKcfJkGyeY3J73yfFjwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6A4cf/btsDJhJImbt/imsKcfJkGyeY3J73yfFjwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6A4cf%2FbtsDJhJImbt%2FimsKcfJkGyeY3J73yfFjwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;261&quot; height=&quot;583&quot; data-filename=&quot;edited_01-13.png&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;583&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 [나의마켓] 숫자를 클릭하시면 스마트스토어가 잘 연동된 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_01-14.png&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;716&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rHkyJ/btsDHrzuAzX/S4E1H9h5EOfSqdoikTBYPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rHkyJ/btsDHrzuAzX/S4E1H9h5EOfSqdoikTBYPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rHkyJ/btsDHrzuAzX/S4E1H9h5EOfSqdoikTBYPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrHkyJ%2FbtsDHrzuAzX%2FS4E1H9h5EOfSqdoikTBYPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1065&quot; height=&quot;716&quot; data-filename=&quot;edited_01-14.png&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;716&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 상품 가져오기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[상품] - [마켓상품가져오기]를 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02-1.png&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pJIKS/btsDJT2P5sr/RMFXSUbKpn3EM54pW3yRxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pJIKS/btsDJT2P5sr/RMFXSUbKpn3EM54pW3yRxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pJIKS/btsDJT2P5sr/RMFXSUbKpn3EM54pW3yRxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpJIKS%2FbtsDJT2P5sr%2FRMFXSUbKpn3EM54pW3yRxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;618&quot; height=&quot;422&quot; data-filename=&quot;edited_02-1.png&quot; data-origin-width=&quot;618&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;전체 상품 가져오기&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;전체 상품을 가져오기 위해서는 [전체 가져오기] 탭을 클릭해준 뒤 [마켓계정]을 체크해줍니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;아래에 [마켓상품 가져오기 후 새로운 상품으로 바로 등록합니다.] 부분은 체크하실 경우 바로 등록되므로 유의해서 원하시는 방향으로 체크해주세요.&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;&quot;저는 체크하지 않고 하는게 나은 것 같습니다. 상품 가져와서 하나씩 본 뒤에 카페24만의 카테고리로 설정해주고 디테일을 체크하려면 비체크가 나은 것 같지만 바쁘시거나 상품이 많으시면 체크하셔도 될 것 같습니다.&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 [가져오기] 버튼을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02-2.png&quot; data-origin-width=&quot;1613&quot; data-origin-height=&quot;986&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ddsN8W/btsDHtRDGj5/vKyOA1j0Z4bgmjgktepND0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ddsN8W/btsDHtRDGj5/vKyOA1j0Z4bgmjgktepND0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ddsN8W/btsDHtRDGj5/vKyOA1j0Z4bgmjgktepND0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FddsN8W%2FbtsDHtRDGj5%2FvKyOA1j0Z4bgmjgktepND0%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;1613&quot; height=&quot;986&quot; data-filename=&quot;edited_02-2.png&quot; data-origin-width=&quot;1613&quot; data-origin-height=&quot;986&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 둘 중 원하는 것을 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02-3.png&quot; data-origin-width=&quot;1343&quot; data-origin-height=&quot;971&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bb5DIK/btsDHrTRubq/ULfu46rZCybJZe8Eg1GR40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bb5DIK/btsDHrTRubq/ULfu46rZCybJZe8Eg1GR40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bb5DIK/btsDHrTRubq/ULfu46rZCybJZe8Eg1GR40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbb5DIK%2FbtsDHrTRubq%2FULfu46rZCybJZe8Eg1GR40%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;1343&quot; height=&quot;971&quot; data-filename=&quot;edited_02-3.png&quot; data-origin-width=&quot;1343&quot; data-origin-height=&quot;971&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상품 가져오기를 정상적으로 수행하였는지 결과 확인을 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[다음 단계로 이동합니다]를 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02-4.png&quot; data-origin-width=&quot;1552&quot; data-origin-height=&quot;979&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d82LPW/btsDGlzxUow/dWjaVkEsH6EuXHRhoTT12K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d82LPW/btsDGlzxUow/dWjaVkEsH6EuXHRhoTT12K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d82LPW/btsDGlzxUow/dWjaVkEsH6EuXHRhoTT12K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd82LPW%2FbtsDGlzxUow%2FdWjaVkEsH6EuXHRhoTT12K%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;1552&quot; height=&quot;979&quot; data-filename=&quot;edited_02-4.png&quot; data-origin-width=&quot;1552&quot; data-origin-height=&quot;979&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;아래 화면처럼 네이버 스마트스토어에서 가져온 상품들 목록을 바로 확인할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;상품을 살펴보고 필요없는 것은 카페24에 등록하기 전 삭제할 수도 있고, [매칭하기]를 이용하여 카페24의 특정 상품과 매칭하여 등록하거나 [새로운 상품으로 등록]을 이용하여 카페24에 신규 상품으로 등록할 수도 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;헷갈리는 분들은 [새로운 상품으로 등록]을 해주시면 편합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02-5.png&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;872&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mdcT7/btsDI9ypSgv/oE3lp4wjZhRX1kfFF7KcQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mdcT7/btsDI9ypSgv/oE3lp4wjZhRX1kfFF7KcQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mdcT7/btsDI9ypSgv/oE3lp4wjZhRX1kfFF7KcQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmdcT7%2FbtsDI9ypSgv%2FoE3lp4wjZhRX1kfFF7KcQK%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;1532&quot; height=&quot;872&quot; data-filename=&quot;edited_02-5.png&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;872&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;부분상품 가져오기&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;부분 상품을 가져오기 위해서는 [부분 가져오기] 탭을 클릭해준 뒤 네이버 스마트스토어의 상품번호를 하나씩 입력해줍니다. 등록 시 구분자는 쉼표(,)가 아닌 엔터(Enter)입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;입력 후 [가져오기] 버튼을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02-5.png&quot; data-origin-width=&quot;1465&quot; data-origin-height=&quot;995&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cE1RFJ/btsDJXw9JpZ/m7UU1QvKmZm8pS2fZWwHP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cE1RFJ/btsDJXw9JpZ/m7UU1QvKmZm8pS2fZWwHP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cE1RFJ/btsDJXw9JpZ/m7UU1QvKmZm8pS2fZWwHP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcE1RFJ%2FbtsDJXw9JpZ%2Fm7UU1QvKmZm8pS2fZWwHP1%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;1465&quot; height=&quot;995&quot; data-filename=&quot;edited_02-5.png&quot; data-origin-width=&quot;1465&quot; data-origin-height=&quot;995&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 마켓상품코드는 아래 네이버 스마트스토어의 상품번호를 입력해주시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_02-6.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;945&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dq9WYp/btsDJWyvnkL/Edj2DfnuilIDQq9kTKycnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dq9WYp/btsDJWyvnkL/Edj2DfnuilIDQq9kTKycnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dq9WYp/btsDJWyvnkL/Edj2DfnuilIDQq9kTKycnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdq9WYp%2FbtsDJWyvnkL%2FEdj2DfnuilIDQq9kTKycnK%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;826&quot; height=&quot;945&quot; data-filename=&quot;edited_02-6.png&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;945&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h4 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 상품 등록 마무리&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카페24에 네이버 스마트스토어에서 가져온 상품이 등록된 뒤에는 상품의 수정페이지에서 진열 여부, 상품분류 등 디테일한 부분을 한 번 더 체크하시기를 권장드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 스토어 플랫폼의 규격이 동일하진 않기에 체크하는게 좋더라구요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 카페24만의 카테고리나 상품명을 다르게 하고 싶으실 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용은 여기까지입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;읽어주셔서 감사합니다. 상품이 잘 옮겨지길 바랍니다.  &lt;/p&gt;</description>
      <category>기타</category>
      <category>네이버스마트스토어카페24로상품옮기기</category>
      <category>마켓플러스사용하는법</category>
      <category>마켓플러스에스마트스토어연동하기</category>
      <category>스마트스토어카페24상품이동</category>
      <category>스마트스토어판매자ID</category>
      <category>카페24스마트스토어상품옮기기</category>
      <category>카페24스마트스토어상품이동</category>
      <category>카페24스마트스토어연동</category>
      <category>카페24에상품연동하기</category>
      <category>카페24에스마트스토어상품연동하기</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/200</guid>
      <comments>https://herojoon-dev.tistory.com/200#entry200comment</comments>
      <pubDate>Sun, 21 Jan 2024 03:50:08 +0900</pubDate>
    </item>
    <item>
      <title>티스토리 블로그 여러개 생성하기</title>
      <link>https://herojoon-dev.tistory.com/199</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;티스토리 블로그 여러개 생성하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 티스토리 상단 오른쪽 닉네임 옆 아이콘을 클릭해줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;아래와 같은 화면이 펼쳐지면 [계정관리]를 클릭해줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_111.png&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;477&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQ8vFU/btsDJVl2nzQ/iqfrg6uy7T417Y119WiCD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQ8vFU/btsDJVl2nzQ/iqfrg6uy7T417Y119WiCD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQ8vFU/btsDJVl2nzQ/iqfrg6uy7T417Y119WiCD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQ8vFU%2FbtsDJVl2nzQ%2Fiqfrg6uy7T417Y119WiCD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;514&quot; height=&quot;477&quot; data-filename=&quot;edited_111.png&quot; data-origin-width=&quot;514&quot; data-origin-height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. [새 블로그 만들기]를 클릭합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_222.png&quot; data-origin-width=&quot;1756&quot; data-origin-height=&quot;1025&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TrThJ/btsDJBVoJje/nsdwos1irFTs9cQQSvyhNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TrThJ/btsDJBVoJje/nsdwos1irFTs9cQQSvyhNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TrThJ/btsDJBVoJje/nsdwos1irFTs9cQQSvyhNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTrThJ%2FbtsDJBVoJje%2Fnsdwos1irFTs9cQQSvyhNk%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;1756&quot; height=&quot;1025&quot; data-filename=&quot;edited_222.png&quot; data-origin-width=&quot;1756&quot; data-origin-height=&quot;1025&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 개설할 블로그의 내용 입력 후 [개설하기] 버튼을 클릭합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_333.png&quot; data-origin-width=&quot;1756&quot; data-origin-height=&quot;895&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYEiIk/btsDLJrCy5M/i1HwdC5dKGNUgmO058ZvPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYEiIk/btsDLJrCy5M/i1HwdC5dKGNUgmO058ZvPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYEiIk/btsDLJrCy5M/i1HwdC5dKGNUgmO058ZvPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYEiIk%2FbtsDLJrCy5M%2Fi1HwdC5dKGNUgmO058ZvPK%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;1756&quot; height=&quot;895&quot; data-filename=&quot;edited_333.png&quot; data-origin-width=&quot;1756&quot; data-origin-height=&quot;895&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>기타</category>
      <category>티스토리개설하기</category>
      <category>티스토리만들기버튼</category>
      <category>티스토리블로그생성하기</category>
      <category>티스토리블로그여러개만들기</category>
      <category>티스토리생성버튼</category>
      <category>티스토리여러개개설</category>
      <category>티스토리여러개만들기</category>
      <category>티스토리여러개생성하기</category>
      <category>티스토리한계정에여러개</category>
      <category>한계정에티스토리여러개만들기</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/199</guid>
      <comments>https://herojoon-dev.tistory.com/199#entry199comment</comments>
      <pubDate>Sun, 21 Jan 2024 01:19:04 +0900</pubDate>
    </item>
    <item>
      <title>티스토리 블로그 삭제하기</title>
      <link>https://herojoon-dev.tistory.com/198</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;티스토리 블로그 삭제하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. [설정 -&amp;gt; 관리 -&amp;gt; 블로그]로 이동합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_티스토리 블로그 삭제.png&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;1224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ykSUh/btsDGLdHDvY/6qbQY48mLQqTt2Dl5c6k10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ykSUh/btsDGLdHDvY/6qbQY48mLQqTt2Dl5c6k10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ykSUh/btsDGLdHDvY/6qbQY48mLQqTt2Dl5c6k10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FykSUh%2FbtsDGLdHDvY%2F6qbQY48mLQqTt2Dl5c6k10%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;512&quot; height=&quot;1224&quot; data-filename=&quot;edited_티스토리 블로그 삭제.png&quot; data-origin-width=&quot;677&quot; data-origin-height=&quot;1224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. [데이터 관리하기]를 클릭해줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;티스토리 블로그 삭제1.png&quot; data-origin-width=&quot;1755&quot; data-origin-height=&quot;943&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KTf5M/btsDJf58b7M/t9mzzFobZgONSZ1lzkkk81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KTf5M/btsDJf58b7M/t9mzzFobZgONSZ1lzkkk81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KTf5M/btsDJf58b7M/t9mzzFobZgONSZ1lzkkk81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKTf5M%2FbtsDJf58b7M%2Ft9mzzFobZgONSZ1lzkkk81%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;1755&quot; height=&quot;943&quot; data-filename=&quot;티스토리 블로그 삭제1.png&quot; data-origin-width=&quot;1755&quot; data-origin-height=&quot;943&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 아래 화면 중 블로그 폐쇄의 체크박스를 선택해줍니다. 그리고 [폐쇄하기] 버튼을 클릭해줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ 티스토리 블로그 폐쇄 전, 주요 데이터는 미리 백업해주세요.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_티스토리 블로그 삭제2.png&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;1100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9INcd/btsDJlefEwe/dNKjdJxUI1v0h77jOnyaC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9INcd/btsDJlefEwe/dNKjdJxUI1v0h77jOnyaC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9INcd/btsDJlefEwe/dNKjdJxUI1v0h77jOnyaC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9INcd%2FbtsDJlefEwe%2FdNKjdJxUI1v0h77jOnyaC0%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;1386&quot; height=&quot;1100&quot; data-filename=&quot;edited_티스토리 블로그 삭제2.png&quot; data-origin-width=&quot;1386&quot; data-origin-height=&quot;1100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 아래 팝업창이 나타나면 [확인]을 클릭합니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_티스토리 블로그 삭제3.png&quot; data-origin-width=&quot;534&quot; data-origin-height=&quot;379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OS6Mn/btsDJXDVBev/8doWu24Lv2k5mA4KpI1P60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OS6Mn/btsDJXDVBev/8doWu24Lv2k5mA4KpI1P60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OS6Mn/btsDJXDVBev/8doWu24Lv2k5mA4KpI1P60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOS6Mn%2FbtsDJXDVBev%2F8doWu24Lv2k5mA4KpI1P60%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;534&quot; height=&quot;379&quot; data-filename=&quot;edited_티스토리 블로그 삭제3.png&quot; data-origin-width=&quot;534&quot; data-origin-height=&quot;379&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 위 확인창 이메일주소로 정말 폐쇄할건지 묻는 메일이 옵니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이메일 안에서 [폐쇄하기] 버튼을 한번 더 눌러주시면 티스토리 블로그가 폐쇄됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>기타</category>
      <category>tistorydelete</category>
      <category>tistory블로그삭제하기</category>
      <category>티스토리블로그없애기</category>
      <category>티스토리블로그제거</category>
      <category>티스토리블로그하나제거</category>
      <category>티스토리삭제</category>
      <category>티스토리삭제하는방법</category>
      <category>티스토리제거</category>
      <category>티스토리지우는방법</category>
      <category>티스토리폐쇄</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/198</guid>
      <comments>https://herojoon-dev.tistory.com/198#entry198comment</comments>
      <pubDate>Sun, 21 Jan 2024 00:55:13 +0900</pubDate>
    </item>
    <item>
      <title>[카페24] 메타태그를 찾을 수 없거나, 네이버 검색로봇이 사이트 서버에 접근을 할 수 없습니다. 호스팅 또는 사이트 서버 관리자에게 확인 요청해 주세요. 해결</title>
      <link>https://herojoon-dev.tistory.com/197</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류명&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;메타태그를&amp;nbsp;찾을&amp;nbsp;수&amp;nbsp;없거나,&amp;nbsp;네이버&amp;nbsp;검색로봇이&amp;nbsp;사이트&amp;nbsp;서버에&amp;nbsp;접근을&amp;nbsp;할&amp;nbsp;수&amp;nbsp;없습니다.&amp;nbsp;호스팅&amp;nbsp;또는&amp;nbsp;사이트&amp;nbsp;서버&amp;nbsp;관리자에게&amp;nbsp;확인&amp;nbsp;요청해&amp;nbsp;주세요.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;네이버 서치 어드바이저 검색엔진에 사이트 등록 시, 소유자 확인 부분에서 위와 같은 오류가 발생할 때가 있습니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;카페24에 잘 등록했는데 위와 같은 오류가 계속 발생 시 검색엔진 태그를 Header와 Body에 함께 입력해서 설정해주시면 해결됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;카페24_1.png&quot; data-origin-width=&quot;282&quot; data-origin-height=&quot;1259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhCjJB/btsC1GKhczX/XYQZokkiKyftKCT093l2t1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhCjJB/btsC1GKhczX/XYQZokkiKyftKCT093l2t1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhCjJB/btsC1GKhczX/XYQZokkiKyftKCT093l2t1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhCjJB%2FbtsC1GKhczX%2FXYQZokkiKyftKCT093l2t1%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;232&quot; height=&quot;1036&quot; data-filename=&quot;카페24_1.png&quot; data-origin-width=&quot;282&quot; data-origin-height=&quot;1259&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;카페24_2.png&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;1257&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beshVb/btsCZ3MqeWh/u1e3WNlw6OhlYEv53Uilo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beshVb/btsCZ3MqeWh/u1e3WNlw6OhlYEv53Uilo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beshVb/btsCZ3MqeWh/u1e3WNlw6OhlYEv53Uilo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeshVb%2FbtsCZ3MqeWh%2Fu1e3WNlw6OhlYEv53Uilo1%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;323&quot; height=&quot;1134&quot; data-filename=&quot;카페24_2.png&quot; data-origin-width=&quot;358&quot; data-origin-height=&quot;1257&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 부분만 설정하지말고, 이 부분과 아래 과정을 함께 설정해주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;카페24_3.png&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;1066&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blflZ5/btsC6SCCetf/10wnItwy5iS8kxzSikX7iK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blflZ5/btsC6SCCetf/10wnItwy5iS8kxzSikX7iK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blflZ5/btsC6SCCetf/10wnItwy5iS8kxzSikX7iK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblflZ5%2FbtsC6SCCetf%2F10wnItwy5iS8kxzSikX7iK%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;1413&quot; height=&quot;1066&quot; data-filename=&quot;카페24_3.png&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;1066&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에 입력한 HTML태그를 아래 영역에도 입력해서 적용해주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;카페24_4.png&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;977&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bugh47/btsC6nJEQmT/TQZr5WrZYcyiAanenl9Ch1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bugh47/btsC6nJEQmT/TQZr5WrZYcyiAanenl9Ch1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bugh47/btsC6nJEQmT/TQZr5WrZYcyiAanenl9Ch1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbugh47%2FbtsC6nJEQmT%2FTQZr5WrZYcyiAanenl9Ch1%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;1413&quot; height=&quot;977&quot; data-filename=&quot;카페24_4.png&quot; data-origin-width=&quot;1413&quot; data-origin-height=&quot;977&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 네이버 서치 어드바이저에서 소유자 확인을 하면 정상으로 확인됩니다.&lt;/p&gt;</description>
      <category>기타</category>
      <category>네이버서치어드바이저 소유권확인 오류</category>
      <category>네이버서치어드바이저 소유자확인 오류</category>
      <category>메타태그를 찾을 수 없거나 네이버 검색로봇이 사이트 서버에 접근을 할 수 없습니다.</category>
      <category>메타태그를 찾을 수 없거나 네이버 검색로봇이 사이트 서버에 접근을 할 수 없습니다. 호스팅 또는 사이트 서버 관리자에게 확인 요청해 주세요.</category>
      <category>카페24 naver search advisor</category>
      <category>카페24 검색엔진 오류</category>
      <category>카페24 검색엔진등록</category>
      <category>카페24 네이버서치어드바이저 설정</category>
      <category>카페24 사이트 소유자확인 오류</category>
      <category>호스팅 또는 사이트 서버 관리자에게 확인 요청해 주세요.</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/197</guid>
      <comments>https://herojoon-dev.tistory.com/197#entry197comment</comments>
      <pubDate>Thu, 4 Jan 2024 16:05:40 +0900</pubDate>
    </item>
    <item>
      <title>IntelliJ에서 Java 21버전 + Spring Boot 3.2.1 프로젝트 구동 시 Cause: error: invalid source release: 21 오류 해결</title>
      <link>https://herojoon-dev.tistory.com/196</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류명&lt;/h2&gt;
&lt;pre id=&quot;code_1704298574493&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 잘못된 릴리즈 소스라는 오류가 출력됨.
Cause: error: invalid source release: 21&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류 상황&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IntelliJ에서 Java 21버전 + Spring Boot 3.2.1 프로젝트 구동 시 발생.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;원인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빌드 구성의 JVM 버전이 소스의 버전과 다르게 셋업되어 있어서 발생.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[File] - [Settings] 로 이동.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;solution.png&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;893&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doeYc4/btsC1p9bt9e/LtokNp1ppO05dSLjh3JUzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doeYc4/btsC1p9bt9e/LtokNp1ppO05dSLjh3JUzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doeYc4/btsC1p9bt9e/LtokNp1ppO05dSLjh3JUzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoeYc4%2FbtsC1p9bt9e%2FLtokNp1ppO05dSLjh3JUzk%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;518&quot; height=&quot;893&quot; data-filename=&quot;solution.png&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;893&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[Build, Execution, Deployment] - [Build Tools] - [Gradle] 화면 아래 [Gradle JVM]의 버전을 소스 JVM 버전과 동일하게 맞춰줌. -&amp;gt; [Apply] - [OK] 클릭하여 적용.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;solution2.png&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;1088&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCa51H/btsC4DZSbZh/vvNKhQ4gvq3GdNle4JLLD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCa51H/btsC4DZSbZh/vvNKhQ4gvq3GdNle4JLLD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCa51H/btsC4DZSbZh/vvNKhQ4gvq3GdNle4JLLD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCa51H%2FbtsC4DZSbZh%2FvvNKhQ4gvq3GdNle4JLLD0%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;1471&quot; height=&quot;1088&quot; data-filename=&quot;solution2.png&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;1088&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 실행하면 정상적으로 구동되는 것을 확인할 수 있음.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;solution3.png&quot; data-origin-width=&quot;2121&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Cysv1/btsC1IOtwyT/xFJfoUN8prKBhGt4VNDnH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Cysv1/btsC1IOtwyT/xFJfoUN8prKBhGt4VNDnH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Cysv1/btsC1IOtwyT/xFJfoUN8prKBhGt4VNDnH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCysv1%2FbtsC1IOtwyT%2FxFJfoUN8prKBhGt4VNDnH0%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;2121&quot; height=&quot;443&quot; data-filename=&quot;solution3.png&quot; data-origin-width=&quot;2121&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>기타</category>
      <category>Cause: error: invalid source release:</category>
      <category>Cause: error: invalid source release: 21</category>
      <category>Cause: error: invalid source release: 21 오류</category>
      <category>Cause: error: invalid source release: 21 해결</category>
      <category>error: invalid source release:</category>
      <category>intellij spring boot run error</category>
      <category>invalid source release:</category>
      <category>invalid source release: 21</category>
      <category>java 21 run error</category>
      <category>java spring boot run error</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/196</guid>
      <comments>https://herojoon-dev.tistory.com/196#entry196comment</comments>
      <pubDate>Thu, 4 Jan 2024 01:21:23 +0900</pubDate>
    </item>
    <item>
      <title>AWS EC2 키페어 분실했을 경우 새로운 키페어로 교체하기</title>
      <link>https://herojoon-dev.tistory.com/195</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS EC2 키페어 분실했을 경우 새로운 키페어로 교체하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;할 것 요약&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 분실된 기존 인스턴스의 이미지 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 새로운 키페어 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 분실된 기존 인스턴스의 이미지로 새로운 인스턴스 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 이미지로 새로운 인스턴스 생성하는 도중 새로운 키페어 등록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 기존 인스턴스 제거하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 새로운 키페어가 등록된 새로 생성한 인스턴스로 사용하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;778&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpGTjq/btsCJlfmS0Q/WyPJU4BmDkfeOgnjaOFjOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpGTjq/btsCJlfmS0Q/WyPJU4BmDkfeOgnjaOFjOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpGTjq/btsCJlfmS0Q/WyPJU4BmDkfeOgnjaOFjOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpGTjq%2FbtsCJlfmS0Q%2FWyPJU4BmDkfeOgnjaOFjOk%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;1362&quot; height=&quot;778&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;778&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;체크하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 개발용으로 생성한 인스턴스의 경우 아래 방법으로 키를 교체해도 되지만 Live서비스나 복잡한 설정이 되어 있는 인스턴스의 경우 다른 방법을 이용해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;※ AWS 기능에 기존 인스턴스 IP로 직접 입력하여 설정한 부분이 있다면 변경된 새 인스턴스의 IP로 모두 수정해주셔야 하기 때문에 오류 발생이 높을 것 같으면 다른 방법을 사용해주세요.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;1. 분실된 기존 인스턴스의 이미지 생성&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_01.png&quot; data-origin-width=&quot;1205&quot; data-origin-height=&quot;266&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6Antk/btsCDe8WkWM/npZANIkOQTw49WYrmPm8Ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6Antk/btsCDe8WkWM/npZANIkOQTw49WYrmPm8Ak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6Antk/btsCDe8WkWM/npZANIkOQTw49WYrmPm8Ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6Antk%2FbtsCDe8WkWM%2FnpZANIkOQTw49WYrmPm8Ak%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;1205&quot; height=&quot;266&quot; data-filename=&quot;edited_edited_01.png&quot; data-origin-width=&quot;1205&quot; data-origin-height=&quot;266&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_02.png&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cp2Pk8/btsCDeuj07a/AfcsWplHkTEyS0rR3slfAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cp2Pk8/btsCDeuj07a/AfcsWplHkTEyS0rR3slfAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cp2Pk8/btsCDeuj07a/AfcsWplHkTEyS0rR3slfAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcp2Pk8%2FbtsCDeuj07a%2FAfcsWplHkTEyS0rR3slfAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;261&quot; height=&quot;348&quot; data-filename=&quot;edited_edited_02.png&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;348&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이미지 생성할 인스턴스 체크 -&amp;gt; [작업] -&amp;gt; [이미지 및 템플릿] -&amp;gt; [이미지 생성] 버튼을 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_1.png&quot; data-origin-width=&quot;2179&quot; data-origin-height=&quot;492&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EZD42/btsCEJgKkmu/FBkU7jVksHxQ4cOC3kLkwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EZD42/btsCEJgKkmu/FBkU7jVksHxQ4cOC3kLkwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EZD42/btsCEJgKkmu/FBkU7jVksHxQ4cOC3kLkwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEZD42%2FbtsCEJgKkmu%2FFBkU7jVksHxQ4cOC3kLkwK%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;2179&quot; height=&quot;492&quot; data-filename=&quot;edited_1.png&quot; data-origin-width=&quot;2179&quot; data-origin-height=&quot;492&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;인스턴스 이미지명 입력 뒤 [이미지 생성] 버튼을 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_2.png&quot; data-origin-width=&quot;1570&quot; data-origin-height=&quot;1204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lqHX0/btsCCwIMzUY/rWzWqpYKClnKVJMcNQEAwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lqHX0/btsCCwIMzUY/rWzWqpYKClnKVJMcNQEAwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lqHX0/btsCCwIMzUY/rWzWqpYKClnKVJMcNQEAwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlqHX0%2FbtsCCwIMzUY%2FrWzWqpYKClnKVJMcNQEAwk%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;1570&quot; height=&quot;1204&quot; data-filename=&quot;edited_2.png&quot; data-origin-width=&quot;1570&quot; data-origin-height=&quot;1204&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래 메뉴에서 생성된 이미지 목록을 보실 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_3.png&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIGoc4/btsCOAvz6Ut/vBevbeMNKN3rxE4VM8dSM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIGoc4/btsCOAvz6Ut/vBevbeMNKN3rxE4VM8dSM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIGoc4/btsCOAvz6Ut/vBevbeMNKN3rxE4VM8dSM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIGoc4%2FbtsCOAvz6Ut%2FvBevbeMNKN3rxE4VM8dSM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;261&quot; height=&quot;604&quot; data-filename=&quot;edited_3.png&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이미지가 생성되는동안 상태가 [대기중]으로 표시됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_4.png&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFYHkJ/btsCIHv0RJa/3O6jFMUkBiknW4pJBoI4lK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFYHkJ/btsCIHv0RJa/3O6jFMUkBiknW4pJBoI4lK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFYHkJ/btsCIHv0RJa/3O6jFMUkBiknW4pJBoI4lK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFYHkJ%2FbtsCIHv0RJa%2F3O6jFMUkBiknW4pJBoI4lK%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;1692&quot; height=&quot;156&quot; data-filename=&quot;edited_4.png&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이미지가 생성 완료되면 [사용 가능]으로 표시됩니다. 이때부터 이미지로 인스턴스를 생성하실 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_5.png&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlBh3n/btsCLr0sUuJ/9OQbYb0CF4ZkeoY4qqawgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlBh3n/btsCLr0sUuJ/9OQbYb0CF4ZkeoY4qqawgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlBh3n/btsCLr0sUuJ/9OQbYb0CF4ZkeoY4qqawgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlBh3n%2FbtsCLr0sUuJ%2F9OQbYb0CF4ZkeoY4qqawgK%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;1692&quot; height=&quot;164&quot; data-filename=&quot;edited_5.png&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;2. 새로운 키페어 생성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 메뉴에서 키페어 생성이 가능합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_20.png&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;968&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVxavz/btsCIGYbsYr/fdOLJkK9FyOx4F6nKHygv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVxavz/btsCIGYbsYr/fdOLJkK9FyOx4F6nKHygv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVxavz/btsCIGYbsYr/fdOLJkK9FyOx4F6nKHygv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVxavz%2FbtsCIGYbsYr%2FfdOLJkK9FyOx4F6nKHygv0%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;258&quot; height=&quot;968&quot; data-filename=&quot;edited_20.png&quot; data-origin-width=&quot;258&quot; data-origin-height=&quot;968&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[키 페어 생성] 버튼을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_21.png&quot; data-origin-width=&quot;1174&quot; data-origin-height=&quot;91&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJ3flg/btsCAi45K3c/nzG7pf7IJikvAH6q4COZsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJ3flg/btsCAi45K3c/nzG7pf7IJikvAH6q4COZsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJ3flg/btsCAi45K3c/nzG7pf7IJikvAH6q4COZsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ3flg%2FbtsCAi45K3c%2FnzG7pf7IJikvAH6q4COZsk%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;1174&quot; height=&quot;91&quot; data-filename=&quot;edited_21.png&quot; data-origin-width=&quot;1174&quot; data-origin-height=&quot;91&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;키 페어명과 원하는 파일 형식을 선택 후 [키 페어 생성]버튼을 클릭합니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;.pem파일을 받아 .ppk로 변환하여 사용하는걸 권장하지만 급하거나 잘 모르겠으면 바로 사용 가능한 .ppk파일로 받아도 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_22.png&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;810&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNNrAG/btsCOCUtGbI/hNJ11R7mExBVmkeyt7hWKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNNrAG/btsCOCUtGbI/hNJ11R7mExBVmkeyt7hWKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNNrAG/btsCOCUtGbI/hNJ11R7mExBVmkeyt7hWKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNNrAG%2FbtsCOCUtGbI%2FhNJ11R7mExBVmkeyt7hWKk%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;932&quot; height=&quot;810&quot; data-filename=&quot;edited_22.png&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;810&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;키 페어가 생성되었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_23.png&quot; data-origin-width=&quot;1313&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmBjW3/btsCF7hpG63/2IeuzqIZ3NfVFw2ZeiOOO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmBjW3/btsCF7hpG63/2IeuzqIZ3NfVFw2ZeiOOO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmBjW3/btsCF7hpG63/2IeuzqIZ3NfVFw2ZeiOOO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmBjW3%2FbtsCF7hpG63%2F2IeuzqIZ3NfVFw2ZeiOOO1%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;1313&quot; height=&quot;159&quot; data-filename=&quot;edited_23.png&quot; data-origin-width=&quot;1313&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;키 페어가 생성되면서 최초 1회 자동으로 선택한 확자자명의 키가 자동 다운로드 됩니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;내 컴퓨터의 다운로드 폴더에 보시면 다운로드되어 있을 것입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;분실되지 않게 잘 보관해주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_24.png&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;154&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo9ctd/btsCKqOhGA0/nKSDdEz3YLhnYCD11foyWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo9ctd/btsCKqOhGA0/nKSDdEz3YLhnYCD11foyWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo9ctd/btsCKqOhGA0/nKSDdEz3YLhnYCD11foyWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo9ctd%2FbtsCKqOhGA0%2FnKSDdEz3YLhnYCD11foyWK%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;480&quot; height=&quot;154&quot; data-filename=&quot;edited_24.png&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;154&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;3. 분실된 기존 인스턴스의 이미지로 새로운 인스턴스 생성&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 메뉴로 돌아가 생성한 이미지로 새 인스턴스를 만들어보겠습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_3.png&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cb6SDC/btsCOFRdZBt/sIGcXKmufsk6k0JAAz9pk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cb6SDC/btsCOFRdZBt/sIGcXKmufsk6k0JAAz9pk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cb6SDC/btsCOFRdZBt/sIGcXKmufsk6k0JAAz9pk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcb6SDC%2FbtsCOFRdZBt%2FsIGcXKmufsk6k0JAAz9pk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;261&quot; height=&quot;604&quot; data-filename=&quot;edited_3.png&quot; data-origin-width=&quot;261&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이미지를 체크한 후 [AMI로 인스턴스 시작] 버튼을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_6.png&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRTB1j/btsCKqncSHm/bkFXuKda1DaEJNVwQufK5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRTB1j/btsCKqncSHm/bkFXuKda1DaEJNVwQufK5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRTB1j/btsCKqncSHm/bkFXuKda1DaEJNVwQufK5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRTB1j%2FbtsCKqncSHm%2FbkFXuKda1DaEJNVwQufK5K%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;1692&quot; height=&quot;164&quot; data-filename=&quot;edited_6.png&quot; data-origin-width=&quot;1692&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;생성할 인스턴스명을 입력합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_7.png&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ne3ub/btsCKPAu8w7/xAHqKvMhhF3r8mxSaw06K1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ne3ub/btsCKPAu8w7/xAHqKvMhhF3r8mxSaw06K1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ne3ub/btsCKPAu8w7/xAHqKvMhhF3r8mxSaw06K1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fne3ub%2FbtsCKPAu8w7%2FxAHqKvMhhF3r8mxSaw06K1%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;909&quot; height=&quot;618&quot; data-filename=&quot;edited_7.png&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;618&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;4. 이미지로 새로운 인스턴스 생성하는 도중 새로운 키페어 등록&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 생성한 새 키 페어를 선택해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_8.png&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2WWzt/btsCN7HbDDZ/vqdD4jHyQ9Lx0KflfgoTPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2WWzt/btsCN7HbDDZ/vqdD4jHyQ9Lx0KflfgoTPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2WWzt/btsCN7HbDDZ/vqdD4jHyQ9Lx0KflfgoTPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2WWzt%2FbtsCN7HbDDZ%2FvqdD4jHyQ9Lx0KflfgoTPK%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;909&quot; height=&quot;618&quot; data-filename=&quot;edited_8.png&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;618&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Tip) 인스턴스 생성 시 기존 인스턴스의 보안그룹과 동일하게 하기 위해 기존 인스턴스의 보안그룹과 동일하게 선택해줍니다. 기존 인스턴스의 보안그룹과 동일하게 적용해야 서비스에 영향이 없기 때문에 신경써주시면 나중에 편합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_9.png&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;555&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qvjJj/btsCEHwtAhW/97zNPhqjCsQYys3ZyVyn41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qvjJj/btsCEHwtAhW/97zNPhqjCsQYys3ZyVyn41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qvjJj/btsCEHwtAhW/97zNPhqjCsQYys3ZyVyn41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqvjJj%2FbtsCEHwtAhW%2F97zNPhqjCsQYys3ZyVyn41%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;909&quot; height=&quot;555&quot; data-filename=&quot;edited_9.png&quot; data-origin-width=&quot;909&quot; data-origin-height=&quot;555&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Tip) 만약 기본 설정으로 생성하셨다면 Instance 상세 -&amp;gt; [작업] -&amp;gt; [보안] -&amp;gt; [보안 그룹 변경]에서 변경 가능합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_30.png&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWaFRY/btsCG4E1rM8/BNOObKkAyh5ZN68WqgJXAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWaFRY/btsCG4E1rM8/BNOObKkAyh5ZN68WqgJXAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWaFRY/btsCG4E1rM8/BNOObKkAyh5ZN68WqgJXAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWaFRY%2FbtsCG4E1rM8%2FBNOObKkAyh5ZN68WqgJXAK%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;1141&quot; height=&quot;356&quot; data-filename=&quot;edited_30.png&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[인스턴스 시작] 버튼을 클릭해서 인스턴스를 생성해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_10.png&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;857&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dtxEY9/btsCKTbPHqN/XilMGQDrZmnjR0dzI6KcgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dtxEY9/btsCKTbPHqN/XilMGQDrZmnjR0dzI6KcgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dtxEY9/btsCKTbPHqN/XilMGQDrZmnjR0dzI6KcgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdtxEY9%2FbtsCKTbPHqN%2FXilMGQDrZmnjR0dzI6KcgK%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;434&quot; height=&quot;857&quot; data-filename=&quot;edited_10.png&quot; data-origin-width=&quot;434&quot; data-origin-height=&quot;857&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;인스턴스가 생성하면서 상태 검사가 [초기화]로 보입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_12.png&quot; data-origin-width=&quot;1286&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckyfY6/btsCMpahED3/DEsAsJ3cFm3uMug44Wf2UK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckyfY6/btsCMpahED3/DEsAsJ3cFm3uMug44Wf2UK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckyfY6/btsCMpahED3/DEsAsJ3cFm3uMug44Wf2UK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckyfY6%2FbtsCMpahED3%2FDEsAsJ3cFm3uMug44Wf2UK%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;1286&quot; height=&quot;166&quot; data-filename=&quot;edited_12.png&quot; data-origin-width=&quot;1286&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스의 상태 검사가 아래처럼 나오면 인스턴스 생성이 완료된 것입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_25.png&quot; data-origin-width=&quot;1313&quot; data-origin-height=&quot;159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3DXAV/btsCIEMND1W/vE7LDuYEUafDLyBbXFT5jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3DXAV/btsCIEMND1W/vE7LDuYEUafDLyBbXFT5jK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3DXAV/btsCIEMND1W/vE7LDuYEUafDLyBbXFT5jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3DXAV%2FbtsCIEMND1W%2FvE7LDuYEUafDLyBbXFT5jK%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;1313&quot; height=&quot;159&quot; data-filename=&quot;edited_25.png&quot; data-origin-width=&quot;1313&quot; data-origin-height=&quot;159&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;5. 기존 인스턴스 제거하기&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;새로 생성한 인스턴스가 정상적으로 접속하는지 확인하신 뒤 기존 인스턴스가 필요없다면 제거해줍니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;[인스턴스 중지]는 인스턴스를 사용하지않고 중지하는 것이고 [인스턴스 종료]는 제거하는 것입니다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;만약 중요한 경우 [인스턴스 중지]를 해주세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_31.png&quot; data-origin-width=&quot;1162&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t76jc/btsCEIPGWG0/HMDPSXNzzqLokTw3EmPmx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t76jc/btsCEIPGWG0/HMDPSXNzzqLokTw3EmPmx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t76jc/btsCEIPGWG0/HMDPSXNzzqLokTw3EmPmx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft76jc%2FbtsCEIPGWG0%2FHMDPSXNzzqLokTw3EmPmx0%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;1162&quot; height=&quot;222&quot; data-filename=&quot;edited_31.png&quot; data-origin-width=&quot;1162&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;6. 새로운 키페어가 등록된 인스턴스로 사용하기&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;새로운 키가 적용된 인스턴스를 사용하시면 됩니다.&lt;/p&gt;</description>
      <category>기타</category>
      <category>aws ec2 keypair</category>
      <category>aws ec2 인스턴스 키페어 위치</category>
      <category>aws ec2 키페어 교체하기</category>
      <category>aws ec2 키페어 생성</category>
      <category>aws ec2 키페어 없을때</category>
      <category>aws ec2 키페어 재생성</category>
      <category>aws 인스턴스 키페어 교체</category>
      <category>aws 인스턴스 키페어 변경</category>
      <category>aws 키페어 분실</category>
      <category>change aws ec2 keypair</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/195</guid>
      <comments>https://herojoon-dev.tistory.com/195#entry195comment</comments>
      <pubDate>Wed, 27 Dec 2023 22:51:15 +0900</pubDate>
    </item>
    <item>
      <title>Git 설치하기</title>
      <link>https://herojoon-dev.tistory.com/193</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows 10&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 아래 링크에 접근하여 Git 설치파일을 다운로드 해줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Git 다운로드 링크: &lt;a href=&quot;https://git-scm.com/downloads&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://git-scm.com/downloads&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_blob&quot; data-origin-width=&quot;1445&quot; data-origin-height=&quot;940&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kCEAB/btsBixhwlbV/WyovzG5TFZ2kFJwVjQAzF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kCEAB/btsBixhwlbV/WyovzG5TFZ2kFJwVjQAzF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kCEAB/btsBixhwlbV/WyovzG5TFZ2kFJwVjQAzF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkCEAB%2FbtsBixhwlbV%2FWyovzG5TFZ2kFJwVjQAzF1%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;1445&quot; height=&quot;940&quot; data-filename=&quot;edited_edited_edited_blob&quot; data-origin-width=&quot;1445&quot; data-origin-height=&quot;940&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_blob&quot; data-origin-width=&quot;1383&quot; data-origin-height=&quot;786&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKp4Y8/btsBlcXBClh/AbvWqkIhij9fZ9klszrDDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKp4Y8/btsBlcXBClh/AbvWqkIhij9fZ9klszrDDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKp4Y8/btsBlcXBClh/AbvWqkIhij9fZ9klszrDDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKp4Y8%2FbtsBlcXBClh%2FAbvWqkIhij9fZ9klszrDDK%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;1383&quot; height=&quot;786&quot; data-filename=&quot;edited_edited_edited_blob&quot; data-origin-width=&quot;1383&quot; data-origin-height=&quot;786&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. 다운로드 받은 Git 파일을 더블클릭하여 실행해줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;48&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z27Jq/btsBkkg8n06/lJ3MzKZWOeNTFefovKfXz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z27Jq/btsBkkg8n06/lJ3MzKZWOeNTFefovKfXz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z27Jq/btsBkkg8n06/lJ3MzKZWOeNTFefovKfXz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz27Jq%2FbtsBkkg8n06%2FlJ3MzKZWOeNTFefovKfXz0%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;200&quot; height=&quot;48&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;200&quot; data-origin-height=&quot;48&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. 아래 화면을 보고 따라 합니다. 원하는 설정으로 변경하셔도 됩니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;567&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eiiGuD/btsBjFzcOmR/1hSOxFwrpyh13v80bvstOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eiiGuD/btsBjFzcOmR/1hSOxFwrpyh13v80bvstOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eiiGuD/btsBjFzcOmR/1hSOxFwrpyh13v80bvstOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeiiGuD%2FbtsBjFzcOmR%2F1hSOxFwrpyh13v80bvstOK%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;744&quot; height=&quot;567&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;567&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7nsf2/btsBgxWFX0Q/ebHEKoWavTPQ364PyGK5FK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7nsf2/btsBgxWFX0Q/ebHEKoWavTPQ364PyGK5FK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7nsf2/btsBgxWFX0Q/ebHEKoWavTPQ364PyGK5FK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7nsf2%2FbtsBgxWFX0Q%2FebHEKoWavTPQ364PyGK5FK%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;742&quot; height=&quot;566&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;742&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZexuU/btsBlcJ4Gmv/KzghMVNtBFrU7TtauVW2fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZexuU/btsBlcJ4Gmv/KzghMVNtBFrU7TtauVW2fK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZexuU/btsBlcJ4Gmv/KzghMVNtBFrU7TtauVW2fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZexuU%2FbtsBlcJ4Gmv%2FKzghMVNtBFrU7TtauVW2fK%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;741&quot; height=&quot;566&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pJYbj/btsBiVh4xP7/jinz18HltWg5Ul2Dk73jKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pJYbj/btsBiVh4xP7/jinz18HltWg5Ul2Dk73jKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pJYbj/btsBiVh4xP7/jinz18HltWg5Ul2Dk73jKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpJYbj%2FbtsBiVh4xP7%2Fjinz18HltWg5Ul2Dk73jKk%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;744&quot; height=&quot;565&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Vlhyt/btsBgx98cb5/AwHUighVkaggeDLmeDkt21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Vlhyt/btsBgx98cb5/AwHUighVkaggeDLmeDkt21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Vlhyt/btsBgx98cb5/AwHUighVkaggeDLmeDkt21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVlhyt%2FbtsBgx98cb5%2FAwHUighVkaggeDLmeDkt21%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;743&quot; height=&quot;566&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 Branch를 main으로 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4IfQF/btsBo7nXnvh/PmI33ybmORTgSfkQH2AXXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4IfQF/btsBo7nXnvh/PmI33ybmORTgSfkQH2AXXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4IfQF/btsBo7nXnvh/PmI33ybmORTgSfkQH2AXXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4IfQF%2FbtsBo7nXnvh%2FPmI33ybmORTgSfkQH2AXXk%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;741&quot; height=&quot;565&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HT6a9/btsBjQN7kDl/Eoi7FekO3mrDdbOHZChSDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HT6a9/btsBjQN7kDl/Eoi7FekO3mrDdbOHZChSDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HT6a9/btsBjQN7kDl/Eoi7FekO3mrDdbOHZChSDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHT6a9%2FbtsBjQN7kDl%2FEoi7FekO3mrDdbOHZChSDk%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;743&quot; height=&quot;566&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bREZNS/btsBjCvJu0s/NSoItsomvPQ4P6N2nRQb20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bREZNS/btsBjCvJu0s/NSoItsomvPQ4P6N2nRQb20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bREZNS/btsBjCvJu0s/NSoItsomvPQ4P6N2nRQb20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbREZNS%2FbtsBjCvJu0s%2FNSoItsomvPQ4P6N2nRQb20%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;739&quot; height=&quot;564&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blKVUJ/btsBgJiA0DZ/gNgITKklHJQy6vixd9qmV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blKVUJ/btsBgJiA0DZ/gNgITKklHJQy6vixd9qmV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blKVUJ/btsBgJiA0DZ/gNgITKklHJQy6vixd9qmV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblKVUJ%2FbtsBgJiA0DZ%2FgNgITKklHJQy6vixd9qmV1%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;743&quot; height=&quot;562&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xNuKc/btsBkmziY4C/ppdSRkYeGviyHfSTAY4gT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xNuKc/btsBkmziY4C/ppdSRkYeGviyHfSTAY4gT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xNuKc/btsBkmziY4C/ppdSRkYeGviyHfSTAY4gT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxNuKc%2FbtsBkmziY4C%2FppdSRkYeGviyHfSTAY4gT1%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;739&quot; height=&quot;566&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows cmd 콘솔창을 사용합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/calaSX/btsBjOJwDsy/uFVXyGDRbPSDnTIeYqvJ2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/calaSX/btsBjOJwDsy/uFVXyGDRbPSDnTIeYqvJ2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/calaSX/btsBjOJwDsy/uFVXyGDRbPSDnTIeYqvJ2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcalaSX%2FbtsBjOJwDsy%2FuFVXyGDRbPSDnTIeYqvJ2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;746&quot; height=&quot;568&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;567&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxlpwN/btsBgKaKStn/KbnylNwRBWQKxa9Ke7zjb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxlpwN/btsBgKaKStn/KbnylNwRBWQKxa9Ke7zjb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxlpwN/btsBgKaKStn/KbnylNwRBWQKxa9Ke7zjb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxlpwN%2FbtsBgKaKStn%2FKbnylNwRBWQKxa9Ke7zjb0%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;744&quot; height=&quot;567&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;744&quot; data-origin-height=&quot;567&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자격증명을 사용합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;567&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZTn9D/btsBl7aK6Ot/KKGxnbo31TuB3QjKAeZSd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZTn9D/btsBl7aK6Ot/KKGxnbo31TuB3QjKAeZSd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZTn9D/btsBl7aK6Ot/KKGxnbo31TuB3QjKAeZSd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZTn9D%2FbtsBl7aK6Ot%2FKKGxnbo31TuB3QjKAeZSd1%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;741&quot; height=&quot;567&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;741&quot; data-origin-height=&quot;567&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Mi5Qr/btsBiQnHW4m/6QHPfZw4xYp63qsxgxlOWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Mi5Qr/btsBiQnHW4m/6QHPfZw4xYp63qsxgxlOWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Mi5Qr/btsBiQnHW4m/6QHPfZw4xYp63qsxgxlOWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMi5Qr%2FbtsBiQnHW4m%2F6QHPfZw4xYp63qsxgxlOWk%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;739&quot; height=&quot;565&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cboIrA/btsBkjWP5uS/C3higyQTvYZ133CduHtrhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cboIrA/btsBkjWP5uS/C3higyQTvYZ133CduHtrhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cboIrA/btsBkjWP5uS/C3higyQTvYZ133CduHtrhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcboIrA%2FbtsBkjWP5uS%2FC3higyQTvYZ133CduHtrhK%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;739&quot; height=&quot;564&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;739&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y6Mmf/btsBgzfP0Qt/ksvspV1pjnMjqVfWNHzOe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y6Mmf/btsBgzfP0Qt/ksvspV1pjnMjqVfWNHzOe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y6Mmf/btsBgzfP0Qt/ksvspV1pjnMjqVfWNHzOe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy6Mmf%2FbtsBgzfP0Qt%2FksvspV1pjnMjqVfWNHzOe1%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;743&quot; height=&quot;569&quot; data-filename=&quot;edited_edited_blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;569&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. Windows cmd창을 열어줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;1018&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FDbJ5/btsBfJ31lAH/k44LKLsRYa3EOyc4dVdh8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FDbJ5/btsBfJ31lAH/k44LKLsRYa3EOyc4dVdh8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FDbJ5/btsBfJ31lAH/k44LKLsRYa3EOyc4dVdh8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFDbJ5%2FbtsBfJ31lAH%2Fk44LKLsRYa3EOyc4dVdh8k%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;478&quot; height=&quot;1018&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;1018&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. cmd창에 git을 입력했을 때 아래처럼 git 명령어에 대한 설명이 나오면 git이 정상적으로 설치된 것입니다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1465&quot; data-origin-height=&quot;760&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nkgMM/btsBiQur8Kn/RjKXGY8Xg2zgL4PgKGvGr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nkgMM/btsBiQur8Kn/RjKXGY8Xg2zgL4PgKGvGr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nkgMM/btsBiQur8Kn/RjKXGY8Xg2zgL4PgKGvGr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnkgMM%2FbtsBiQur8Kn%2FRjKXGY8Xg2zgL4PgKGvGr0%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;1465&quot; height=&quot;760&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;1465&quot; data-origin-height=&quot;760&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;** Git을 PowerShell 등 Windows 전역에서 사용하고 싶다면 환경변수에 Git 경로를 추가해줍니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;Git 경로&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/INk5g/btsBiodXFgo/n0RBUVo3a40AxmftCQtOrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/INk5g/btsBiodXFgo/n0RBUVo3a40AxmftCQtOrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/INk5g/btsBiodXFgo/n0RBUVo3a40AxmftCQtOrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FINk5g%2FbtsBiodXFgo%2Fn0RBUVo3a40AxmftCQtOrK%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;478&quot; height=&quot;317&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;478&quot; data-origin-height=&quot;317&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;환경변수에 Git 경로 추가&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;1011&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBeGT3/btsBl7aK6OX/Watek18puDNZ4PICpfWYY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBeGT3/btsBl7aK6OX/Watek18puDNZ4PICpfWYY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBeGT3/btsBl7aK6OX/Watek18puDNZ4PICpfWYY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBeGT3%2FbtsBl7aK6OX%2FWatek18puDNZ4PICpfWYY1%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;467&quot; height=&quot;1011&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;467&quot; data-origin-height=&quot;1011&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;866&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dja5fX/btsBjQ1FMTw/bKVieetlywU8QQH4AggUxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dja5fX/btsBjQ1FMTw/bKVieetlywU8QQH4AggUxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dja5fX/btsBjQ1FMTw/bKVieetlywU8QQH4AggUxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdja5fX%2FbtsBjQ1FMTw%2FbKVieetlywU8QQH4AggUxK%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;674&quot; height=&quot;866&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;866&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;820&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crrRqf/btsBipqgOPm/8Kl1UzUOSitWguOCO4GE71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crrRqf/btsBipqgOPm/8Kl1UzUOSitWguOCO4GE71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crrRqf/btsBipqgOPm/8Kl1UzUOSitWguOCO4GE71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrrRqf%2FbtsBipqgOPm%2F8Kl1UzUOSitWguOCO4GE71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;820&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;820&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;818&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3BmdZ/btsBo8G96tt/9AgIquFBq1rY33eDrOwzj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3BmdZ/btsBo8G96tt/9AgIquFBq1rY33eDrOwzj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3BmdZ/btsBo8G96tt/9AgIquFBq1rY33eDrOwzj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3BmdZ%2FbtsBo8G96tt%2F9AgIquFBq1rY33eDrOwzj1%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;743&quot; height=&quot;818&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;818&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어는 프로그램을 한번 껐다 켜야 정상동작합니다.  &lt;/p&gt;</description>
      <category>Git</category>
      <category>Adjusting the name of the initial branch in new repositories</category>
      <category>Configuring the terminal emulator to user with Git bash</category>
      <category>git download</category>
      <category>git다운로드</category>
      <category>git설치</category>
      <category>git설치링크</category>
      <category>git설치확인</category>
      <category>windows git 환경변수</category>
      <category>winsdows git설치하기</category>
      <category>깃설치</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/193</guid>
      <comments>https://herojoon-dev.tistory.com/193#entry193comment</comments>
      <pubDate>Mon, 4 Dec 2023 05:14:59 +0900</pubDate>
    </item>
    <item>
      <title>컴퓨터가 먹통일 때 Windows 10 다시 설치하기</title>
      <link>https://herojoon-dev.tistory.com/191</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터가 먹통일 때 (BIOS 화면 나오고...) Windows 10을 다시 설치해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;준비물&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Windows 10 설치 USB를 만들 컴퓨터 (정상구동되는 컴퓨터)&lt;/li&gt;
&lt;li&gt;8GB 이상의 아무 USB (※ USB의 내용물을 모두 삭제한 빈 USB여야 합니다.)&lt;/li&gt;
&lt;li&gt;Windows 10을 설치할 컴퓨터 (컴퓨터가 정상적으로 동작되지 않아 다시 설치할 컴퓨터)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;할 거 요약&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Windows 10 설치 USB 만들기&lt;/li&gt;
&lt;li&gt;Windows 10 USB 설치파일 만들기&lt;/li&gt;
&lt;li&gt;Windows 10 USB로 설치하기&lt;/li&gt;
&lt;li&gt;Windows 10 설치 시 오류 대응&lt;/li&gt;
&lt;li&gt;설치용으로 썼던 USB 정상으로 되돌려놓기
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ESD-USB -&amp;gt; USB&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. Windows 10 설치 USB 만들기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1-1. Windows 10 설치 파일 다운로드 받기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Windows 10 설치 파일 링크: &lt;a href=&quot;https://www.microsoft.com/ko-kr/software-download/windows10&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.microsoft.com/ko-kr/software-download/windows10&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크로 이동하시면 마이크로소프트 Windows 10 설치 가이드 화면으로 이동됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;화면 아래에 [지금 도구 다운로드]를 클릭해서 Windows 10 설치 파일을 다운로드해주세요.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_다운로드링크.png&quot; data-origin-width=&quot;2029&quot; data-origin-height=&quot;1260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bl85nD/btsA9g0Lwpc/pkWvr66e5kB9Tj6Gf5StA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bl85nD/btsA9g0Lwpc/pkWvr66e5kB9Tj6Gf5StA1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bl85nD/btsA9g0Lwpc/pkWvr66e5kB9Tj6Gf5StA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbl85nD%2FbtsA9g0Lwpc%2FpkWvr66e5kB9Tj6Gf5StA1%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;2029&quot; height=&quot;1260&quot; data-filename=&quot;edited_edited_edited_다운로드링크.png&quot; data-origin-width=&quot;2029&quot; data-origin-height=&quot;1260&quot;/&gt;&lt;/span&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;h3 data-ke-size=&quot;size23&quot;&gt;2. Windows 10 USB 설치파일 만들기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-1. 정상구동되는 컴퓨터에 USB를 꽂습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-2. 위에서 다운로드 받은 Windows 10 설치파일을 더블클릭 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_스크린샷 2023-11-29 203944.png&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;45&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk339L/btsA4VDl6EF/mBfg4A9OqkzFukwBgYunS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk339L/btsA4VDl6EF/mBfg4A9OqkzFukwBgYunS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk339L/btsA4VDl6EF/mBfg4A9OqkzFukwBgYunS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk339L%2FbtsA4VDl6EF%2FmBfg4A9OqkzFukwBgYunS1%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;248&quot; height=&quot;45&quot; data-filename=&quot;edited_edited_edited_스크린샷 2023-11-29 203944.png&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;45&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2-3. 아래 순서대로 따라하세요.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_포맷단계1.png&quot; data-origin-width=&quot;995&quot; data-origin-height=&quot;860&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mGSdI/btsBcRMqUGo/B0vZIUEk9LAipW0Xo0Ddp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mGSdI/btsBcRMqUGo/B0vZIUEk9LAipW0Xo0Ddp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mGSdI/btsBcRMqUGo/B0vZIUEk9LAipW0Xo0Ddp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmGSdI%2FbtsBcRMqUGo%2FB0vZIUEk9LAipW0Xo0Ddp1%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;995&quot; height=&quot;860&quot; data-filename=&quot;edited_edited_edited_포맷단계1.png&quot; data-origin-width=&quot;995&quot; data-origin-height=&quot;860&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_포맷단계1-1.png&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;860&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KqokS/btsA8sAoN0i/4Ptt10k0WMKgViUnI0Wmpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KqokS/btsA8sAoN0i/4Ptt10k0WMKgViUnI0Wmpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KqokS/btsA8sAoN0i/4Ptt10k0WMKgViUnI0Wmpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKqokS%2FbtsA8sAoN0i%2F4Ptt10k0WMKgViUnI0Wmpk%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;994&quot; height=&quot;860&quot; data-filename=&quot;edited_edited_edited_포맷단계1-1.png&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;860&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_포맷단계2.png&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSUQty/btsBbKfWgq2/z65nTVP956GBgANAu7ycbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSUQty/btsBbKfWgq2/z65nTVP956GBgANAu7ycbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSUQty/btsBbKfWgq2/z65nTVP956GBgANAu7ycbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSUQty%2FbtsBbKfWgq2%2Fz65nTVP956GBgANAu7ycbk%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;993&quot; height=&quot;861&quot; data-filename=&quot;edited_edited_edited_포맷단계2.png&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_포맷단계3.png&quot; data-origin-width=&quot;995&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZqCs7/btsBc2tDVsV/c2RBDl2NwhDRXkxSKDtI7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZqCs7/btsBc2tDVsV/c2RBDl2NwhDRXkxSKDtI7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZqCs7/btsBc2tDVsV/c2RBDl2NwhDRXkxSKDtI7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZqCs7%2FbtsBc2tDVsV%2Fc2RBDl2NwhDRXkxSKDtI7k%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;995&quot; height=&quot;861&quot; data-filename=&quot;edited_edited_edited_포맷단계3.png&quot; data-origin-width=&quot;995&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_포맷단계5.png&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;858&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJ35SH/btsBbPO8t5V/yq8G1tSROd9UpaRjKnOqf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJ35SH/btsBbPO8t5V/yq8G1tSROd9UpaRjKnOqf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJ35SH/btsBbPO8t5V/yq8G1tSROd9UpaRjKnOqf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ35SH%2FbtsBbPO8t5V%2Fyq8G1tSROd9UpaRjKnOqf1%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;996&quot; height=&quot;858&quot; data-filename=&quot;edited_edited_edited_포맷단계5.png&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;858&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_포맷단계6.png&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k4Hdi/btsA8qWS0pq/EpXkzLgp7E7Km7qQxutO3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k4Hdi/btsA8qWS0pq/EpXkzLgp7E7Km7qQxutO3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k4Hdi/btsA8qWS0pq/EpXkzLgp7E7Km7qQxutO3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk4Hdi%2FbtsA8qWS0pq%2FEpXkzLgp7E7Km7qQxutO3k%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;994&quot; height=&quot;861&quot; data-filename=&quot;edited_edited_edited_포맷단계6.png&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_포맷단계6-2.png&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pTZkh/btsA6UjTPG8/bzxbPnPy0o8nAo0wIDROoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pTZkh/btsA6UjTPG8/bzxbPnPy0o8nAo0wIDROoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pTZkh/btsA6UjTPG8/bzxbPnPy0o8nAo0wIDROoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpTZkh%2FbtsA6UjTPG8%2FbzxbPnPy0o8nAo0wIDROoK%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;991&quot; height=&quot;861&quot; data-filename=&quot;edited_edited_edited_포맷단계6-2.png&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_edited_포맷단계7.png&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;859&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2EpQl/btsA4QPEGOu/fbkMhNKwYTJgtKUFoJu4Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2EpQl/btsA4QPEGOu/fbkMhNKwYTJgtKUFoJu4Kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2EpQl/btsA4QPEGOu/fbkMhNKwYTJgtKUFoJu4Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2EpQl%2FbtsA4QPEGOu%2FfbkMhNKwYTJgtKUFoJu4Kk%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;993&quot; height=&quot;859&quot; data-filename=&quot;edited_edited_edited_포맷단계7.png&quot; data-origin-width=&quot;993&quot; data-origin-height=&quot;859&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_edited_포맷단계_end.png&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;858&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIvUY0/btsA8teY4J5/OneqfXdbyd6k1VnQUwo6X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIvUY0/btsA8teY4J5/OneqfXdbyd6k1VnQUwo6X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIvUY0/btsA8teY4J5/OneqfXdbyd6k1VnQUwo6X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIvUY0%2FbtsA8teY4J5%2FOneqfXdbyd6k1VnQUwo6X1%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;996&quot; height=&quot;858&quot; data-filename=&quot;edited_edited_포맷단계_end.png&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;858&quot;/&gt;&lt;/span&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;h3 data-ke-size=&quot;size23&quot;&gt;3. Windows 10 USB로 설치하기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 부분은 사진을 찍지 못했네요 ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-1. Windows 10을 설치할 컴퓨터에 USB를 꽂습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-2. 컴퓨터를 구동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-3. 컴퓨터가 구동될 때 Delete 혹은 F2 키를 눌러 BIOS 설정 화면으로 진입합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-4. Boot 탭이 보이지 않는다면 톱니바퀴 설정 버튼을 찾아 클릭해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-5. Boot 탭 화면에 진입했다면 Boot Mode... 라는 문구를 찾습니다! Boot Mode를 UEFI로 수정해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-6. 바로 아래에 있는 Boot Option #1의 값을 UEFI USB 어쩌구로 설정해주세요. USB명이 나올 수도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-7.&amp;nbsp;나가기를 해서 설정 정보를 Save 하고 나옵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-8. 컴퓨터가 바로 부팅되거나 그렇지 않다면 다시 재부팅 해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-9. Windows 10 설치 화면이 나타납니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-10. Disk를 선택하여 윈도우 설치 진행 후 만약 윈도우 설치 화면이 동일하게 다시 나온다면 USB를 빼주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 Boot Option #1에서 USB를 설정했기 때문에 컴퓨터 구동(Boot) 시 계속 USB를 바라봐 Windows 설치를 하는 거니까 빼주시면 정상 구동됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-11. 설정 정보를 읽고 선택하여 진행해주세요. 헷갈리시면 모두 기본설정으로 하여 진행해주면 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-12. 추후 제품키 입력 팝업이 뜨면 아래에 [제품키없음]을 선택해서 나머지 진행해주시면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3-13. 추후 제품키를 구매하여 따로 인증해주시면 됩니다. (*컴퓨터 윈도우 검색창에 정품인증까지만 검색하시면 검색결과 맨 위에 윈도우 정품 인증 설정화면으로 이동할 수 있는 결과가 나옵니다. 클릭하셔서 이동 후 아래에 제품키등록을 클릭하여 입력해주시면 됩니다.)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. Windows 10 설치 시 오류 대응&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q. Windows 10을 USB에 설치파일로 만들려고 할 때 0x90002 오류 팝업이 발생한 경우&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. USB의 모든 파일을 제거하고 다시 설치하여 해결했습니다.&lt;/p&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;Q. Windows를 여러 번 설치 했는데 어떡하죠. &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. windows.old 파일을 제거해주세요.&lt;/p&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;Q. 선택한 디스크에 MBR 파티션이 있습니다. EFI 시스템에서는 GPT 디스크에만 Windows를 설치할 수 있습니다.... 오류 팝업이 뜬다면?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A. Shift + F10을 눌러 CMD 창을 열어줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CMD창에 아래 명령어를 입력해서 처리해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어 적용 완료 후 CMD창을 닫고 디스크에 윈도우 설치를 다시 시도합니다.&lt;/p&gt;
&lt;pre id=&quot;code_1701260749022&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 는 주석입니다. 설명글입니다.

# CMD창에 diskpart를 입력 후 Enter 해줍니다.
diskpart

# CMD창에 list disk를 입력 후 Enter 해줍니다. 화면에 디스크 정보가 출력됩니다.
list disk

# Windows 10을 설치할 주요 디스크번호를 보고 CMD창에 select disk 디스크번호 를 입력 후 Enter 해줍니다.
select disk 0
# 디스크번호 디스크가 선택한 디스크 입니다. 라고 내용이 출력됩니다. ex) 0 디스크가 선택한 디스크입니다.

# 디스크를 정리해줍니다.
clean

# gpt로 변경해줍니다.
convert gpt
# DiskPart에서 선택한 디스크를 GPT형식으로 변환했습니다. 라고 내용이 출력됩니다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;5. 설치용으로 썼던 USB 정상으로 되돌려놓기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 Windows 10 설치용으로 사용한 USB를 내컴퓨터에서 보면 ESD-USB로 변환되어 있을 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ESD-USB는 설치 지원을 위한 USB형식입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ESD-USB인 상태에서는 기존 USB처럼 사용할 수 없기 때문에 기존 USB로 변환하는 작업이 필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-1. 윈도우 검색창에 디스크관리를 입력하면 아래처럼 디스크관리 화면에 진입할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2023-11-29 213130.png&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;1214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buYMXj/btsBbJVCT0s/rbxvNQNC4jlzwy2FjG4nwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buYMXj/btsBbJVCT0s/rbxvNQNC4jlzwy2FjG4nwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buYMXj/btsBbJVCT0s/rbxvNQNC4jlzwy2FjG4nwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuYMXj%2FbtsBbJVCT0s%2FrbxvNQNC4jlzwy2FjG4nwK%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;470&quot; height=&quot;917&quot; data-filename=&quot;edited_스크린샷 2023-11-29 213130.png&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;1214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-2. USB 디스크 위에 마우스를 대고 오른쪽 클릭합니다. [속성]을 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_esd-usb 복구방법2.png&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;1194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NxcjB/btsBb5YsqbR/FJmXJgIkILQkBsP8vKxwy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NxcjB/btsBb5YsqbR/FJmXJgIkILQkBsP8vKxwy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NxcjB/btsBb5YsqbR/FJmXJgIkILQkBsP8vKxwy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNxcjB%2FbtsBb5YsqbR%2FFJmXJgIkILQkBsP8vKxwy1%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;1164&quot; height=&quot;1194&quot; data-filename=&quot;edited_esd-usb 복구방법2.png&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;1194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-3. [예(Y)]를 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_esd-usb 복구방법3.png&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;249&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/52llw/btsA7p40MVu/Tw5FLpwQ6WRk7lNwFrXIK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/52llw/btsA7p40MVu/Tw5FLpwQ6WRk7lNwFrXIK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/52llw/btsA7p40MVu/Tw5FLpwQ6WRk7lNwFrXIK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F52llw%2FbtsA7p40MVu%2FTw5FLpwQ6WRk7lNwFrXIK0%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;598&quot; height=&quot;249&quot; data-filename=&quot;edited_esd-usb 복구방법3.png&quot; data-origin-width=&quot;598&quot; data-origin-height=&quot;249&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-4. 아래 화면과 같이 표시됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_esd-usb 복구방법4.png&quot; data-origin-width=&quot;1122&quot; data-origin-height=&quot;889&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvl36I/btsA7MFRecc/gipFLsDSfftPxqb9byeVh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvl36I/btsA7MFRecc/gipFLsDSfftPxqb9byeVh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvl36I/btsA7MFRecc/gipFLsDSfftPxqb9byeVh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbvl36I%2FbtsA7MFRecc%2FgipFLsDSfftPxqb9byeVh0%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;1122&quot; height=&quot;889&quot; data-filename=&quot;edited_esd-usb 복구방법4.png&quot; data-origin-width=&quot;1122&quot; data-origin-height=&quot;889&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-5. &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;USB 디스크 위에 마우스를 대고 오른쪽 클릭합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;[새 단순 볼륨]을 클릭해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;esd-usb 복구방법5.png&quot; data-origin-width=&quot;1154&quot; data-origin-height=&quot;969&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bO4r7i/btsA4cZplM1/C9EfecCXTD2ulCk3c0dk31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bO4r7i/btsA4cZplM1/C9EfecCXTD2ulCk3c0dk31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bO4r7i/btsA4cZplM1/C9EfecCXTD2ulCk3c0dk31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbO4r7i%2FbtsA4cZplM1%2FC9EfecCXTD2ulCk3c0dk31%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;1154&quot; height=&quot;969&quot; data-filename=&quot;esd-usb 복구방법5.png&quot; data-origin-width=&quot;1154&quot; data-origin-height=&quot;969&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-6. [다음]을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_esd-usb 복구방법6.png&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;705&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bESPtB/btsA7QuJ3MX/sK9T6zuIruE0K3XUploPxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bESPtB/btsA7QuJ3MX/sK9T6zuIruE0K3XUploPxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bESPtB/btsA7QuJ3MX/sK9T6zuIruE0K3XUploPxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbESPtB%2FbtsA7QuJ3MX%2FsK9T6zuIruE0K3XUploPxk%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;864&quot; height=&quot;705&quot; data-filename=&quot;edited_esd-usb 복구방법6.png&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;705&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-7. [다음]을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_esd-usb 복구방법7.png&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;706&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkVrdc/btsBccccZ0X/PbmqD0PdQEabjuEF43d840/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkVrdc/btsBccccZ0X/PbmqD0PdQEabjuEF43d840/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkVrdc/btsBccccZ0X/PbmqD0PdQEabjuEF43d840/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkVrdc%2FbtsBccccZ0X%2FPbmqD0PdQEabjuEF43d840%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;865&quot; height=&quot;706&quot; data-filename=&quot;edited_esd-usb 복구방법7.png&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;706&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-8. [드라이브 문자 할당]을 선택해줍니다. 오른쪽 알파벳은 아무거나 상관없습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_esd-usb 복구방법8.png&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;703&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6tl4/btsA4TS7vne/xfsPKiT3B8zEaVX5FTVVB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6tl4/btsA4TS7vne/xfsPKiT3B8zEaVX5FTVVB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6tl4/btsA4TS7vne/xfsPKiT3B8zEaVX5FTVVB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6tl4%2FbtsA4TS7vne%2FxfsPKiT3B8zEaVX5FTVVB0%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;865&quot; height=&quot;703&quot; data-filename=&quot;edited_esd-usb 복구방법8.png&quot; data-origin-width=&quot;865&quot; data-origin-height=&quot;703&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-9. [이 볼륨을 다음 설정으로 포맷]을 선택해줍니다. 아래 사항으로 설정해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_esd-usb 복구방법9.png&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;705&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pXqwI/btsA4SfD7qU/6xRvSrUVs38Nb4M7DvKtTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pXqwI/btsA4SfD7qU/6xRvSrUVs38Nb4M7DvKtTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pXqwI/btsA4SfD7qU/6xRvSrUVs38Nb4M7DvKtTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpXqwI%2FbtsA4SfD7qU%2F6xRvSrUVs38Nb4M7DvKtTk%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;864&quot; height=&quot;705&quot; data-filename=&quot;edited_esd-usb 복구방법9.png&quot; data-origin-width=&quot;864&quot; data-origin-height=&quot;705&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5-10. 내컴퓨터로 다시 이동하면 USB가 정상적으로 변경된 것을 확인하실 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2023-11-29 192125.png&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uDWG5/btsBb7PuEoj/fkyAP0G7Fy5kwsY44zcyWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uDWG5/btsBb7PuEoj/fkyAP0G7Fy5kwsY44zcyWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uDWG5/btsBb7PuEoj/fkyAP0G7Fy5kwsY44zcyWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuDWG5%2FbtsBb7PuEoj%2FfkyAP0G7Fy5kwsY44zcyWK%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;1158&quot; height=&quot;450&quot; data-filename=&quot;edited_스크린샷 2023-11-29 192125.png&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 정상적인 USB로 돌아왔습니다!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;6. Windows 11로 변경하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;6-1. Windows 11 설치가 가능한 PC인지 호환 체크하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 구글 창에 Windows 11 다운로드를 검색합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 검색 결과 화면이 노출됩니다. Microsoft 공식몰의 Windows 11 다운로드 페이지로 이동합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 &lt;a href=&quot;https://www.microsoft.com/ko-kr/software-download/windows11&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.microsoft.com/ko-kr/software-download/windows11&lt;/a&gt; 링크로 이동합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;윈도우 11다운로드.png&quot; data-origin-width=&quot;1285&quot; data-origin-height=&quot;676&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmHIzN/btsBbEfJbyj/cOoiquTAY1teGuQT7qVSSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmHIzN/btsBbEfJbyj/cOoiquTAY1teGuQT7qVSSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmHIzN/btsBbEfJbyj/cOoiquTAY1teGuQT7qVSSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmHIzN%2FbtsBbEfJbyj%2FcOoiquTAY1teGuQT7qVSSK%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;1285&quot; height=&quot;676&quot; data-filename=&quot;윈도우 11다운로드.png&quot; data-origin-width=&quot;1285&quot; data-origin-height=&quot;676&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) [시작하기 전에]를 클릭하여 설명을 펼쳐주고 [Windows 11 장치 사양] 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-11-29 215339.png&quot; data-origin-width=&quot;1700&quot; data-origin-height=&quot;1207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNngHu/btsA5fBBcX8/7fAYKmTKNscaQEDZuIy4U1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNngHu/btsA5fBBcX8/7fAYKmTKNscaQEDZuIy4U1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNngHu/btsA5fBBcX8/7fAYKmTKNscaQEDZuIy4U1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNngHu%2FbtsA5fBBcX8%2F7fAYKmTKNscaQEDZuIy4U1%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;1700&quot; height=&quot;1207&quot; data-filename=&quot;스크린샷 2023-11-29 215339.png&quot; data-origin-width=&quot;1700&quot; data-origin-height=&quot;1207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) [PC 상태 검사 앱]을 클릭합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-11-29 215658.png&quot; data-origin-width=&quot;1560&quot; data-origin-height=&quot;1276&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lMmmG/btsBcZjnXZ7/r7bVEYtsTcYUqn4NPHK5u1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lMmmG/btsBcZjnXZ7/r7bVEYtsTcYUqn4NPHK5u1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lMmmG/btsBcZjnXZ7/r7bVEYtsTcYUqn4NPHK5u1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlMmmG%2FbtsBcZjnXZ7%2Fr7bVEYtsTcYUqn4NPHK5u1%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;1560&quot; height=&quot;1276&quot; data-filename=&quot;스크린샷 2023-11-29 215658.png&quot; data-origin-width=&quot;1560&quot; data-origin-height=&quot;1276&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 다운로드받은 PC 상태 검사 앱 실행파일을 설치하여 PC의 상태가 Windows 11을 지원하는지 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;6-2. Windows 11 설치하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows 11 다운로드 링크에서 [지금 다운로드]를 클릭하여 설치 파일을 받아준 후 설치해주시면 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-11-29 220128.png&quot; data-origin-width=&quot;2101&quot; data-origin-height=&quot;903&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OdolW/btsA5ggc7IS/KBkVqWQe160pH3N6IKfCs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OdolW/btsA5ggc7IS/KBkVqWQe160pH3N6IKfCs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OdolW/btsA5ggc7IS/KBkVqWQe160pH3N6IKfCs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOdolW%2FbtsA5ggc7IS%2FKBkVqWQe160pH3N6IKfCs1%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;2101&quot; height=&quot;903&quot; data-filename=&quot;스크린샷 2023-11-29 220128.png&quot; data-origin-width=&quot;2101&quot; data-origin-height=&quot;903&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>기타</category>
      <category>0x90002</category>
      <category>bios오류</category>
      <category>esd-usb되돌리기</category>
      <category>windows10설치</category>
      <category>windowsusb파일 만들기</category>
      <category>선택한 디스크에 MBR 파티션이 있습니다.</category>
      <category>윈도우10설치</category>
      <category>윈도우11설치</category>
      <category>윈도우usb설치파일</category>
      <category>윈도우설치</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/191</guid>
      <comments>https://herojoon-dev.tistory.com/191#entry191comment</comments>
      <pubDate>Wed, 29 Nov 2023 18:01:02 +0900</pubDate>
    </item>
    <item>
      <title>Notepad++ 중국어 zh-cn(간체) 깨짐</title>
      <link>https://herojoon-dev.tistory.com/187</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;OS: Windows 11&lt;/li&gt;
&lt;li&gt;Editor: Notepad++ v8.4.8 (64bit)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Notepad++에서 해외 언어셋 글자가 ㅁㅁ로 깨질 경우 아래 3가지 설정으로 해결하였습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;lt;해결 방법 3가지&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 인코딩 UTF-8로 설정하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &quot;전역 글꼴 사용&quot; 설정하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 폰트 바꿔주기 (D2Coding)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 인코딩 UTF-8로 설정하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인코딩 -&amp;gt; UTF-8 선택&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Hz4w1/btrZa3qNzSE/35lFagDUnigB8KERyywX6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hz4w1/btrZa3qNzSE/35lFagDUnigB8KERyywX6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hz4w1/btrZa3qNzSE/35lFagDUnigB8KERyywX6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHz4w1%2FbtrZa3qNzSE%2F35lFagDUnigB8KERyywX6K%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;469&quot; height=&quot;349&quot; data-origin-width=&quot;670&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. &quot;전역 글꼴 사용&quot; 설정하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정 -&amp;gt; 스타일 설정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1213&quot; data-origin-height=&quot;332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bynSFq/btrZchojdmd/Z6qSS11MN7rmfVudpbEkX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bynSFq/btrZchojdmd/Z6qSS11MN7rmfVudpbEkX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bynSFq/btrZchojdmd/Z6qSS11MN7rmfVudpbEkX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbynSFq%2FbtrZchojdmd%2FZ6qSS11MN7rmfVudpbEkX0%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;812&quot; height=&quot;222&quot; data-origin-width=&quot;1213&quot; data-origin-height=&quot;332&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전역 글꼴 사용 체크 -&amp;gt; 저장 후 닫기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1173&quot; data-origin-height=&quot;646&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0mwR4/btrZaubcpM0/K8hSlTxzCHTX4v5oNFQ8v1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0mwR4/btrZaubcpM0/K8hSlTxzCHTX4v5oNFQ8v1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0mwR4/btrZaubcpM0/K8hSlTxzCHTX4v5oNFQ8v1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0mwR4%2FbtrZaubcpM0%2FK8hSlTxzCHTX4v5oNFQ8v1%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;1173&quot; height=&quot;646&quot; data-origin-width=&quot;1173&quot; data-origin-height=&quot;646&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. 폰트 바꿔주기 (D2Coding)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 방법으로도 글자 깨짐이 계속된다면 글자 폰트를 바꿔줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 개발 가독성에도 좋고 글자 깨짐에도 좋은 D2Coding 폰트로 바꿔주었습니다.&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;&amp;lt;D2Coding 폰트 설치하기&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/186&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://herojoon-dev.tistory.com/186&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1676305146995&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;D2Coding 폰트 설치하기&quot; data-og-description=&quot;- 설치 환경: Windows 11 D2Coding Font Download 및 설치 방법 - &amp;quot;글자 깨짐 해결을 위해 설치&amp;quot; D2Coding Font Download URL: https://github.com/naver/d2codingfont GitHub - naver/d2codingfont: D2 Coding 글꼴 D2 Coding 글꼴. Contribute to n&quot; data-og-host=&quot;herojoon-dev.tistory.com&quot; data-og-source-url=&quot;https://herojoon-dev.tistory.com/186&quot; data-og-url=&quot;https://herojoon-dev.tistory.com/186&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/drH7jC/hyRBO0Yha8/Fsb9sTJNpWJKNfURKekbS0/img.png?width=800&amp;amp;height=667&amp;amp;face=0_0_800_667,https://scrap.kakaocdn.net/dn/oiUEM/hyRBLcagy9/tUKaXLAZDgTRhLdkFdc5r0/img.png?width=800&amp;amp;height=667&amp;amp;face=0_0_800_667,https://scrap.kakaocdn.net/dn/d2R6Wn/hyRBSWBWyg/eSaGkOmBHrjfZW5DTKsbZ1/img.png?width=1428&amp;amp;height=662&amp;amp;face=0_0_1428_662&quot;&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/186&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://herojoon-dev.tistory.com/186&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/drH7jC/hyRBO0Yha8/Fsb9sTJNpWJKNfURKekbS0/img.png?width=800&amp;amp;height=667&amp;amp;face=0_0_800_667,https://scrap.kakaocdn.net/dn/oiUEM/hyRBLcagy9/tUKaXLAZDgTRhLdkFdc5r0/img.png?width=800&amp;amp;height=667&amp;amp;face=0_0_800_667,https://scrap.kakaocdn.net/dn/d2R6Wn/hyRBSWBWyg/eSaGkOmBHrjfZW5DTKsbZ1/img.png?width=1428&amp;amp;height=662&amp;amp;face=0_0_1428_662');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;D2Coding 폰트 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;- 설치 환경: Windows 11 D2Coding Font Download 및 설치 방법 - &quot;글자 깨짐 해결을 위해 설치&quot; D2Coding Font Download URL: https://github.com/naver/d2codingfont GitHub - naver/d2codingfont: D2 Coding 글꼴 D2 Coding 글꼴. Contribute to n&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;herojoon-dev.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글꼴 이름을 D2Coding으로 선택 -&amp;gt; 저장 후 닫기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1169&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CHsqq/btrZewkU4wN/2NJmwwUHSnRoHRE5XsFRJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CHsqq/btrZewkU4wN/2NJmwwUHSnRoHRE5XsFRJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CHsqq/btrZewkU4wN/2NJmwwUHSnRoHRE5XsFRJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCHsqq%2FbtrZewkU4wN%2F2NJmwwUHSnRoHRE5XsFRJK%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;1169&quot; height=&quot;640&quot; data-origin-width=&quot;1169&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기타</category>
      <category>notepad ㅁ 깨짐</category>
      <category>notepad 중국어 깨짐</category>
      <category>notepad 폰트 변경</category>
      <category>notepad++ 글자 깨짐</category>
      <category>utf-8 ㅁㅁ 깨짐</category>
      <category>글자 깨짐 encoding</category>
      <category>글자 깨짐 폰트</category>
      <category>메모장 글자 깨짐</category>
      <category>언어 깨짐 해결</category>
      <category>중국어 깨짐 해결</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/187</guid>
      <comments>https://herojoon-dev.tistory.com/187#entry187comment</comments>
      <pubDate>Tue, 14 Feb 2023 01:29:33 +0900</pubDate>
    </item>
    <item>
      <title>D2Coding 폰트 설치하기</title>
      <link>https://herojoon-dev.tistory.com/186</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;- 설치 환경:&amp;nbsp; Windows 11&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;D2Coding Font Download 및 설치 방법&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;- &quot;글자 깨짐 해결을 위해 설치&quot;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;D2Coding Font Download URL:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://github.com/naver/d2codingfont&quot;&gt;https://github.com/naver/d2codingfont&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1676304319518&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - naver/d2codingfont: D2 Coding 글꼴&quot; data-og-description=&quot;D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/naver/d2codingfont&quot; data-og-url=&quot;https://github.com/naver/d2codingfont&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bkZHDl/hyRBN11MY7/GtfKRCS8fpHShsE4BKc451/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/naver/d2codingfont&quot; data-source-url=&quot;https://github.com/naver/d2codingfont&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bkZHDl/hyRBN11MY7/GtfKRCS8fpHShsE4BKc451/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - naver/d2codingfont: D2 Coding 글꼴&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;D2 Coding 글꼴. Contribute to naver/d2codingfont development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 다운로드의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Ver 1.3.2 (2018.06.01 배포)&lt;/b&gt;를 클릭하여 관련 페이지로 이동합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;942&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBPMem/btrZdd6XZmv/VQNXUTEIEyjA2xwDhbf6ek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBPMem/btrZdd6XZmv/VQNXUTEIEyjA2xwDhbf6ek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBPMem/btrZdd6XZmv/VQNXUTEIEyjA2xwDhbf6ek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBPMem%2FbtrZdd6XZmv%2FVQNXUTEIEyjA2xwDhbf6ek%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;1129&quot; height=&quot;942&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;942&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;D2Coding-Ver1.3.2-20180524.zip&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;압축파일을 다운로드 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1415&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2vSDJ/btrY7MiPeKX/l5tR5BRWNxKq1KrciMkXNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2vSDJ/btrY7MiPeKX/l5tR5BRWNxKq1KrciMkXNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2vSDJ/btrY7MiPeKX/l5tR5BRWNxKq1KrciMkXNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2vSDJ%2FbtrY7MiPeKX%2Fl5tR5BRWNxKq1KrciMkXNk%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;1415&quot; height=&quot;237&quot; data-origin-width=&quot;1415&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드 받은 압축파일을 압축해제 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;435&quot; data-origin-height=&quot;294&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhprfB/btrY8ihLstP/KIm8NAt0GkSIbEkkV5myV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhprfB/btrY8ihLstP/KIm8NAt0GkSIbEkkV5myV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhprfB/btrY8ihLstP/KIm8NAt0GkSIbEkkV5myV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhprfB%2FbtrY8ihLstP%2FKIm8NAt0GkSIbEkkV5myV0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;352&quot; height=&quot;238&quot; data-origin-width=&quot;435&quot; data-origin-height=&quot;294&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;D2CodingAll 폴더 안에 있는&lt;span&gt;&amp;nbsp;&lt;/span&gt;D2Coding-Ver1.3.2-20180524-all.ttc 파일 오른쪽 클릭 -&amp;gt; 설치를 클릭하여 D2Coding을 설치해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;649&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wb6wt/btrZehahtR4/nhkZnwvO3eFQMSFss2DXH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wb6wt/btrZehahtR4/nhkZnwvO3eFQMSFss2DXH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wb6wt/btrZehahtR4/nhkZnwvO3eFQMSFss2DXH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwb6wt%2FbtrZehahtR4%2FnhkZnwvO3eFQMSFss2DXH0%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;531&quot; height=&quot;469&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;649&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMDxZl/btrZcmQFF9t/1lcK2iKZ0XMUg34xsBuED0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMDxZl/btrZcmQFF9t/1lcK2iKZ0XMUg34xsBuED0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMDxZl/btrZcmQFF9t/1lcK2iKZ0XMUg34xsBuED0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMDxZl%2FbtrZcmQFF9t%2F1lcK2iKZ0XMUg34xsBuED0%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;369&quot; height=&quot;194&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;D2Coding 설치를 확인하기 위해서 메모장 혹은 설치 Editor를 재시작해줍니다.&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;&amp;lt;메모장에서 D2Coding 폰트 설치 확인하기&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모장 -&amp;gt; 편집 -&amp;gt; 글꼴&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;809&quot; data-origin-height=&quot;896&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xB6hm/btrZdfqbwhq/2vLbBaojI2BKCKIXLmP9d0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xB6hm/btrZdfqbwhq/2vLbBaojI2BKCKIXLmP9d0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xB6hm/btrZdfqbwhq/2vLbBaojI2BKCKIXLmP9d0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxB6hm%2FbtrZdfqbwhq%2F2vLbBaojI2BKCKIXLmP9d0%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;548&quot; height=&quot;607&quot; data-origin-width=&quot;809&quot; data-origin-height=&quot;896&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글꼴 목록의 SelectBox를 펼쳐보면 D2Coding이 노출됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1428&quot; data-origin-height=&quot;662&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vhKwE/btrZbPrYnIs/k5HyLDrtQtKfmPIP97ogK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vhKwE/btrZbPrYnIs/k5HyLDrtQtKfmPIP97ogK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vhKwE/btrZbPrYnIs/k5HyLDrtQtKfmPIP97ogK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvhKwE%2FbtrZbPrYnIs%2Fk5HyLDrtQtKfmPIP97ogK0%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;1428&quot; height=&quot;662&quot; data-origin-width=&quot;1428&quot; data-origin-height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&amp;lt;Notepad++에서 D2Coding 폰트 설치 확인하기&amp;gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Notepad++ -&amp;gt; 설정 -&amp;gt; 스타일 설정 -&amp;gt; 글꼴이름의 SelectBox를 펼쳐보면 D2Coding이 노출됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1403&quot; data-origin-height=&quot;847&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brkgwf/btrZddTq3Fh/y4HLe1XY0ekSnSMdbbJBc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brkgwf/btrZddTq3Fh/y4HLe1XY0ekSnSMdbbJBc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brkgwf/btrZddTq3Fh/y4HLe1XY0ekSnSMdbbJBc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbrkgwf%2FbtrZddTq3Fh%2Fy4HLe1XY0ekSnSMdbbJBc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1403&quot; height=&quot;847&quot; data-origin-width=&quot;1403&quot; data-origin-height=&quot;847&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;D2Coding 폰트 설치 끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기타</category>
      <category>d2coding download</category>
      <category>d2coding font</category>
      <category>d2coding notepad++</category>
      <category>d2coding windows</category>
      <category>d2coding 설치</category>
      <category>d2coding 설치 확인</category>
      <category>개발 폰트</category>
      <category>글자 ㅁ 깨짐</category>
      <category>글자 깨짐 폰트</category>
      <category>메모장 d2coding</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/186</guid>
      <comments>https://herojoon-dev.tistory.com/186#entry186comment</comments>
      <pubDate>Tue, 14 Feb 2023 01:17:58 +0900</pubDate>
    </item>
    <item>
      <title>[삼성 스마트폰 기준][Google 로그인] 403 오류: disallowed_useragent 오류 해결</title>
      <link>https://herojoon-dev.tistory.com/183</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;에러명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;403 오류: disallowed_useragent&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;에러 상황&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안드로이드 스마트폰, 태블릿에서&amp;nbsp; Google 로그인 인증할 경우 위 오류 발생합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 &lt;u&gt;&lt;b&gt;해결 예시는 삼성 스마트폰, 태블릿 기준으로 작성&lt;/b&gt;&lt;/u&gt;한 것이기 때문에 참고 부탁드립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정 -&amp;gt; 애플리케이션 -&amp;gt; 삼성 인터넷 -&amp;gt; 브라우저 앱을 Chrome으로 변경해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1719&quot; data-origin-height=&quot;1925&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boqcuX/btrXJhiV9nN/0bCIQ98eMuSZqn8Day0zTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boqcuX/btrXJhiV9nN/0bCIQ98eMuSZqn8Day0zTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boqcuX/btrXJhiV9nN/0bCIQ98eMuSZqn8Day0zTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboqcuX%2FbtrXJhiV9nN%2F0bCIQ98eMuSZqn8Day0zTK%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;680&quot; height=&quot;761&quot; data-origin-width=&quot;1719&quot; data-origin-height=&quot;1925&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1469&quot; data-origin-height=&quot;1937&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LiIFy/btrXJsdHRA3/T8lhYQammtGrdKKoWPY4ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LiIFy/btrXJsdHRA3/T8lhYQammtGrdKKoWPY4ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LiIFy/btrXJsdHRA3/T8lhYQammtGrdKKoWPY4ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLiIFy%2FbtrXJsdHRA3%2FT8lhYQammtGrdKKoWPY4ik%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;678&quot; height=&quot;894&quot; data-origin-width=&quot;1469&quot; data-origin-height=&quot;1937&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 참고 링크를 보면 Google 정책 변경으로 Chrome을 기본 브라우저 설정해야 한다고 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1311&quot; data-origin-height=&quot;623&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n3HyM/btrXInRsmA4/gOE2lApPU9WjMXKkGFFlv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n3HyM/btrXInRsmA4/gOE2lApPU9WjMXKkGFFlv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n3HyM/btrXInRsmA4/gOE2lApPU9WjMXKkGFFlv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn3HyM%2FbtrXInRsmA4%2FgOE2lApPU9WjMXKkGFFlv0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;807&quot; height=&quot;623&quot; data-origin-width=&quot;1311&quot; data-origin-height=&quot;623&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고: &lt;a href=&quot;https://support.microsoft.com/ko-kr/office/%EC%98%A4%EB%A5%98-403-%EB%98%90%EB%8A%94-disallowed-useragent-%EB%B0%8F-google-%EC%98%A4%EB%A5%98%EA%B0%80-%ED%91%9C%EC%8B%9C%EB%90%A9%EB%8B%88%EB%8B%A4-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94-9ffb0b43-2a8b-4d36-80b8-ad8e460fb786&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://support.microsoft.com/ko-kr/office/%EC%98%A4%EB%A5%98-403-%EB%98%90%EB%8A%94-disallowed-useragent-%EB%B0%8F-google-%EC%98%A4%EB%A5%98%EA%B0%80-%ED%91%9C%EC%8B%9C%EB%90%A9%EB%8B%88%EB%8B%A4-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94-9ffb0b43-2a8b-4d36-80b8-ad8e460fb786&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1675182284496&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;오류 403 또는 disallowed_useragent 및 Google 오류가 표시됩니다. 무엇인가요? - Microsoft 지원&quot; data-og-description=&quot;Google은 최근 계정 추가를 완료하기 위해 호환 가능한 브라우저를 설치해야 하는 변경 사항을 적용했습니다. Google Play 스토어로 이동하여 Chrome(Chrome이어야 함)을 다운로드하고 Chrome을 기본 브라&quot; data-og-host=&quot;support.microsoft.com&quot; data-og-source-url=&quot;https://support.microsoft.com/ko-kr/office/%EC%98%A4%EB%A5%98-403-%EB%98%90%EB%8A%94-disallowed-useragent-%EB%B0%8F-google-%EC%98%A4%EB%A5%98%EA%B0%80-%ED%91%9C%EC%8B%9C%EB%90%A9%EB%8B%88%EB%8B%A4-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94-9ffb0b43-2a8b-4d36-80b8-ad8e460fb786&quot; data-og-url=&quot;https://support.microsoft.com/ko-kr/office/%EC%98%A4%EB%A5%98-403-%EB%98%90%EB%8A%94-disallowed-useragent-%EB%B0%8F-google-%EC%98%A4%EB%A5%98%EA%B0%80-%ED%91%9C%EC%8B%9C%EB%90%A9%EB%8B%88%EB%8B%A4-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94-9ffb0b43-2a8b-4d36-80b8-ad8e460fb786&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://support.microsoft.com/ko-kr/office/%EC%98%A4%EB%A5%98-403-%EB%98%90%EB%8A%94-disallowed-useragent-%EB%B0%8F-google-%EC%98%A4%EB%A5%98%EA%B0%80-%ED%91%9C%EC%8B%9C%EB%90%A9%EB%8B%88%EB%8B%A4-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94-9ffb0b43-2a8b-4d36-80b8-ad8e460fb786&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://support.microsoft.com/ko-kr/office/%EC%98%A4%EB%A5%98-403-%EB%98%90%EB%8A%94-disallowed-useragent-%EB%B0%8F-google-%EC%98%A4%EB%A5%98%EA%B0%80-%ED%91%9C%EC%8B%9C%EB%90%A9%EB%8B%88%EB%8B%A4-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%EC%9A%94-9ffb0b43-2a8b-4d36-80b8-ad8e460fb786&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;오류 403 또는 disallowed_useragent 및 Google 오류가 표시됩니다. 무엇인가요? - Microsoft 지원&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Google은 최근 계정 추가를 완료하기 위해 호환 가능한 브라우저를 설치해야 하는 변경 사항을 적용했습니다. Google Play 스토어로 이동하여 Chrome(Chrome이어야 함)을 다운로드하고 Chrome을 기본 브라&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;support.microsoft.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>기타</category>
      <category>403 오류: disallowed_useragent</category>
      <category>403 오류: disallowed_useragent android</category>
      <category>403 오류: disallowed_useragent in tablet</category>
      <category>403 오류: disallowed_useragent mobile</category>
      <category>403 오류: disallowed_useragent 해결</category>
      <category>disallowed_useragent</category>
      <category>google 403 오류: disallowed_useragent</category>
      <category>google disallowed_useragent</category>
      <category>구글 로그인 403 오류: disallowed_useragent</category>
      <category>모바일 403 오류: disallowed_useragent</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/183</guid>
      <comments>https://herojoon-dev.tistory.com/183#entry183comment</comments>
      <pubDate>Wed, 1 Feb 2023 01:26:12 +0900</pubDate>
    </item>
    <item>
      <title>Figma의 Frame, Section 삭제하는 방법</title>
      <link>https://herojoon-dev.tistory.com/182</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Figma에서 Frame이나 Section 등 객체를 삭제하고 싶을 경우 삭제하는 방법&lt;/p&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;&amp;lt;방법 1&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Frame이나 Section 등 삭제하고자 하는 객체를 선택 후 키보드 Backspace를 눌러 삭제해준다.&lt;/p&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;&amp;lt;방법 2&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Frame이나 Section 등 삭제하고자 하는 객체를 선택 후 상단의 Main Menu -&amp;gt; Edit -&amp;gt; Delete를 클릭하여 삭제해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&quot;태블릿이나 모바일에서 피그마 웹 접속 시, 키보드를 이용해 삭제하는것이 어려우므로 해당 방법으로 삭제하면 좋다.&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1234&quot; data-origin-height=&quot;734&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bW5BFj/btrXIQMDrnz/Tka9XGCiSDMO0FiRo1ndu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bW5BFj/btrXIQMDrnz/Tka9XGCiSDMO0FiRo1ndu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bW5BFj/btrXIQMDrnz/Tka9XGCiSDMO0FiRo1ndu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbW5BFj%2FbtrXIQMDrnz%2FTka9XGCiSDMO0FiRo1ndu0%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;1234&quot; height=&quot;734&quot; data-origin-width=&quot;1234&quot; data-origin-height=&quot;734&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>기타</category>
      <category>figma delete</category>
      <category>figma delete frame</category>
      <category>figma delete in tablet</category>
      <category>figma delete section</category>
      <category>figma frame delete</category>
      <category>figma object delete</category>
      <category>figma remove in mobile</category>
      <category>figma 삭제</category>
      <category>figma 삭제 방법</category>
      <category>피그마 삭제하기</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/182</guid>
      <comments>https://herojoon-dev.tistory.com/182#entry182comment</comments>
      <pubDate>Wed, 1 Feb 2023 01:00:26 +0900</pubDate>
    </item>
    <item>
      <title>[Git] Windows에서 git init 취소하기</title>
      <link>https://herojoon-dev.tistory.com/181</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git init을 잘못 했을 경우 취소하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Windows에서는 git bash 창을 띄운 후 git init을 취소할 프로젝트 폴더로 이동해서 아래 명령어로 .git폴더를 제거해줍니다.&lt;/p&gt;
&lt;pre id=&quot;code_1675004505132&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 전체 폴더 및 파일 보기
ls -al

// git init 취소하기 (.git폴더 제거하기)
rm -rf .git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;338&quot; data-origin-height=&quot;362&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baF9XT/btrXuaK7Mfi/FqzTEBbyxBHp906SnMjaZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baF9XT/btrXuaK7Mfi/FqzTEBbyxBHp906SnMjaZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baF9XT/btrXuaK7Mfi/FqzTEBbyxBHp906SnMjaZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaF9XT%2FbtrXuaK7Mfi%2FFqzTEBbyxBHp906SnMjaZk%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;227&quot; height=&quot;243&quot; data-origin-width=&quot;338&quot; data-origin-height=&quot;362&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIL0RU/btrXrMRg8Nb/KRwvEiWDIIc1qVyEKPPucK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIL0RU/btrXrMRg8Nb/KRwvEiWDIIc1qVyEKPPucK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIL0RU/btrXrMRg8Nb/KRwvEiWDIIc1qVyEKPPucK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIL0RU%2FbtrXrMRg8Nb%2FKRwvEiWDIIc1qVyEKPPucK%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;769&quot; height=&quot;393&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Git</category>
      <category>git init</category>
      <category>git init cancel</category>
      <category>git init delete</category>
      <category>git init remove</category>
      <category>git init 되돌리기</category>
      <category>git init 오류날때</category>
      <category>git init 제거</category>
      <category>git init 취소</category>
      <category>windows git init 없애기</category>
      <category>windows git init 취소</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/181</guid>
      <comments>https://herojoon-dev.tistory.com/181#entry181comment</comments>
      <pubDate>Mon, 30 Jan 2023 00:15:51 +0900</pubDate>
    </item>
    <item>
      <title>Vue 3 프로젝트에 Router 설정하기</title>
      <link>https://herojoon-dev.tistory.com/180</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Vue 3 프로젝트에서 Router 설정하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;개발 환경&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Node: v18.13.0&lt;/li&gt;
&lt;li&gt;NPM: 8.19.3&lt;/li&gt;
&lt;li&gt;Vue CLI: v5.0.8&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 예시에서는 npm 패키지 매니저를 사용했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;할 거 요약&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1265&quot; data-origin-height=&quot;400&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXbt7O/btrXnjCxqgN/06tLZQ8kKyGp2YIx8KFC60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXbt7O/btrXnjCxqgN/06tLZQ8kKyGp2YIx8KFC60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXbt7O/btrXnjCxqgN/06tLZQ8kKyGp2YIx8KFC60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXbt7O%2FbtrXnjCxqgN%2F06tLZQ8kKyGp2YIx8KFC60%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;1265&quot; height=&quot;400&quot; data-origin-width=&quot;1265&quot; data-origin-height=&quot;400&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;Router&amp;nbsp;연결&amp;nbsp;테스트를&amp;nbsp;위한&amp;nbsp;테스트용&amp;nbsp;Component&amp;nbsp;생성하기 &lt;br /&gt;2. Vue 3 프로젝트에 vue-router npm 패키지 추가하기 &lt;br /&gt;3.&amp;nbsp;Router의&amp;nbsp;Path와&amp;nbsp;Component의&amp;nbsp;맵핑&amp;nbsp;정보&amp;nbsp;담을&amp;nbsp;router.js&amp;nbsp;생성하기 &lt;br /&gt;4.&amp;nbsp;router.js&amp;nbsp;파일이&amp;nbsp;전역에&amp;nbsp;동작할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;최상위에&amp;nbsp;import&amp;nbsp;하기 &lt;br /&gt;5.&amp;nbsp;router.js에&amp;nbsp;맵핑한&amp;nbsp;Path와&amp;nbsp;Component대로&amp;nbsp;페이지가&amp;nbsp;그려질&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;최상위&amp;nbsp;페이지에&amp;nbsp;적용하기 &lt;br /&gt;6.&amp;nbsp;Router&amp;nbsp;적용&amp;nbsp;테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Router 연결 테스트를 위한 테스트용 Component 생성하기&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;생성 위치: Vue 프로젝트/src/components/&lt;b&gt;TestComponent.vue&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RDZ4b/btrXooC5jI1/rhNM2cF56LoetLZKKnrPm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RDZ4b/btrXooC5jI1/rhNM2cF56LoetLZKKnrPm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RDZ4b/btrXooC5jI1/rhNM2cF56LoetLZKKnrPm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRDZ4b%2FbtrXooC5jI1%2FrhNM2cF56LoetLZKKnrPm0%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;296&quot; height=&quot;631&quot; data-origin-width=&quot;330&quot; data-origin-height=&quot;704&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;TestComponent.vue 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1674916873505&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;h2&amp;gt;Test Component&amp;lt;/h2&amp;gt;
    Test Page
  &amp;lt;/div&amp;gt;
&amp;lt;/template&amp;gt;

&amp;lt;script&amp;gt;
export default {
  name: &quot;TestComponent&quot;
}
&amp;lt;/script&amp;gt;

&amp;lt;style scoped&amp;gt;

&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. Vue 3 프로젝트에 vue-router npm 패키지 추가하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(npm이 아닌 yarn처럼 다른 패키지 매니저를 사용할 경우 해당 패키지 매니저의 vue-router를 추가해주면 됩니다.)&lt;/p&gt;
&lt;pre id=&quot;code_1674895517372&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// vue-router 추가하기
// npm i는 npm install 이라는 뜻
npm i vue-router@next

// 설치는 되었는데, 반영이 안되는 듯 하면 아래 명령어를 실행해줍니다.
// package.json에 정의된 npm 패키지 의존성을 사용 가능하도록 설치해줍니다.
// 아래 명령어 실행 시, Vue 프로젝트/node_modules 폴더에 npm 패키지 의존성 파일들을 설치해줍니다.
npm install&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;★ vue-router가 잘 추가되었는지 확인하는 방법&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;확인 위치: Vue 프로젝트/package.json&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;package.json파일에 vue-router가 표시되면 잘 추가된 것입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1022&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dCkxUQ/btrXo4xByg2/OpjpEV7l6spFgkKPcqzFO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dCkxUQ/btrXo4xByg2/OpjpEV7l6spFgkKPcqzFO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dCkxUQ/btrXo4xByg2/OpjpEV7l6spFgkKPcqzFO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdCkxUQ%2FbtrXo4xByg2%2FOpjpEV7l6spFgkKPcqzFO0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;820&quot; height=&quot;565&quot; data-origin-width=&quot;1022&quot; data-origin-height=&quot;704&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고, Vue 프로젝트/node_modules/&lt;b&gt;vue-router &lt;/b&gt;폴더가 존재해야 프로젝트에 잘 반영되어 사용 가능한 상태가 된 것입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;337&quot; data-origin-height=&quot;214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKpklU/btrXn545Im0/ga4halpohgkvNqePmEPas0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKpklU/btrXn545Im0/ga4halpohgkvNqePmEPas0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKpklU/btrXn545Im0/ga4halpohgkvNqePmEPas0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKpklU%2FbtrXn545Im0%2Fga4halpohgkvNqePmEPas0%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;307&quot; height=&quot;195&quot; data-origin-width=&quot;337&quot; data-origin-height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. Router의 Path와 Component의 맵핑 정보 담을&amp;nbsp;router.js 생성하기&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;생성 위치: Vue 프로젝트/src/&lt;b&gt;routers/router.js&amp;nbsp; &lt;/b&gt;(routers폴더 생성 후 아래에 router.js를 생성해줍니다.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5RDe2/btrXmIbEsPX/0aS0VTPvPtiKEPQ4SCt0aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5RDe2/btrXmIbEsPX/0aS0VTPvPtiKEPQ4SCt0aK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5RDe2/btrXmIbEsPX/0aS0VTPvPtiKEPQ4SCt0aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5RDe2%2FbtrXmIbEsPX%2F0aS0VTPvPtiKEPQ4SCt0aK%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;307&quot; height=&quot;657&quot; data-origin-width=&quot;329&quot; data-origin-height=&quot;704&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;routers/router.js 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1674917112899&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { createWebHistory, createRouter } from &quot;vue-router&quot;;
import HelloWorld from &quot;@/components/HelloWorld.vue&quot;;
import TestComponent from &quot;@/components/TestComponent.vue&quot;;

const routes = [
    {
        path: &quot;/&quot;,
        name: &quot;HelloWorld&quot;,
        component: HelloWorld,
    },
    {
        path: &quot;/test&quot;,  // TestComponent.vue로 이동할 Path
        name: &quot;TestComponent&quot;,  // router name
        component: TestComponent,  // Path로 이동될 Component
    },
];

const router = createRouter({
    history: createWebHistory(),
    routes,
});

export default router;&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. router.js 파일이 전역에 동작할 수 있도록 최상위에 import 하기&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적용 위치: Vue 프로젝트/src/&lt;b&gt;main.js&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcJFNp/btrXt80g1VG/RXq5BA6Lpm82soBJV1NW8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcJFNp/btrXt80g1VG/RXq5BA6Lpm82soBJV1NW8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcJFNp/btrXt80g1VG/RXq5BA6Lpm82soBJV1NW8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcJFNp%2FbtrXt80g1VG%2FRXq5BA6Lpm82soBJV1NW8K%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;299&quot; height=&quot;632&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;704&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;main.js 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1674918728532&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { createApp } from 'vue'
import App from './App.vue'
import routers from './routers'  // router import


// createApp(App).mount('#app')  &amp;lt;-- Vue 프로젝트 생성 시 존재하는 기본 코드 제거

// 위 createApp 코드 아래처럼 변경
const app = createApp(App)
app.use(routers)  // router 추가
app.mount('#app')&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5. router.js에 맵핑한 Path와 Component대로 페이지가 그려질 수 있도록 최상위 페이지에 적용하기&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;적용 위치: Vue 프로젝트/src/&lt;b&gt;App.vue&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;703&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYNSya/btrXmSFpEEi/hY6eNB894LBk0nznRFdcvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYNSya/btrXmSFpEEi/hY6eNB894LBk0nznRFdcvK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYNSya/btrXmSFpEEi/hY6eNB894LBk0nznRFdcvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYNSya%2FbtrXmSFpEEi%2FhY6eNB894LBk0nznRFdcvK%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;302&quot; height=&quot;638&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;703&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;App.vue 코드&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1674918766783&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;template&amp;gt;
&amp;lt;!--  &amp;lt;img alt=&quot;Vue logo&quot; src=&quot;./assets/logo.png&quot;&amp;gt;
  &amp;lt;HelloWorld msg=&quot;Welcome to Your Vue.js App&quot;/&amp;gt;--&amp;gt; &amp;lt;!-- Vue 프로젝트 생성 시 존재하는 기본 코드 제거 --&amp;gt;

  &amp;lt;router-view /&amp;gt; &amp;lt;!-- router.js 맵핑된 view 적용 코드 추가 --&amp;gt;
&amp;lt;/template&amp;gt;

&amp;lt;script&amp;gt;
// import HelloWorld from './components/HelloWorld.vue'  &amp;lt;-- Vue 프로젝트 생성 시 존재하는 기본 코드 제거

export default {
  name: 'App'
  /*components: {  &amp;lt;-- Vue 프로젝트 생성 시 존재하는 기본 코드 제거
    HelloWorld
  }*/
}
&amp;lt;/script&amp;gt;

&amp;lt;style&amp;gt;
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&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;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;6. Router 적용 테스트&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1674919197600&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// vue project 실행
npm run server

// 접속 주소: http://localhost:8080/test&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;routes.js에 설정한 &lt;b&gt;/test&lt;/b&gt; Path로 접속 시 &lt;b&gt;TestComponent.vue&lt;/b&gt; 화면이 잘 그려지는것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1781&quot; data-origin-height=&quot;773&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NxOsR/btrXtSiRPSn/Wd0cna7K7ar8rzydvsyzl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NxOsR/btrXtSiRPSn/Wd0cna7K7ar8rzydvsyzl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NxOsR/btrXtSiRPSn/Wd0cna7K7ar8rzydvsyzl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNxOsR%2FbtrXtSiRPSn%2FWd0cna7K7ar8rzydvsyzl1%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;1781&quot; height=&quot;773&quot; data-origin-width=&quot;1781&quot; data-origin-height=&quot;773&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고 링크: &lt;a href=&quot;https://www.vuemastery.com/blog/vue-router-a-tutorial-for-vue-3/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.vuemastery.com/blog/vue-router-a-tutorial-for-vue-3/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1674919964240&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Vue Router: A Tutorial for Vue 3 | Vue Mastery&quot; data-og-description=&quot;If you&amp;rsquo;re looking to learn the new Vue Router that uses Vue 3, you&amp;rsquo;re in the right place. Many things are the same in Vue 3 using Vue Router, but there are a few small differences from Vue 2.&quot; data-og-host=&quot;www.vuemastery.com&quot; data-og-source-url=&quot;https://www.vuemastery.com/blog/vue-router-a-tutorial-for-vue-3/&quot; data-og-url=&quot;https://www.vuemastery.com/blog/vue-router-a-tutorial-for-vue-3&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/lVkjQ/hyRq6z2OZq/tAlC2CX90XvDooqKOmr7mk/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/biAjpz/hyRrbg3bqj/MRMzOKBbEj65TA0PHTJiKk/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/bJYH2A/hyRq1ldyR2/AHUrM9kDoKIBOqxl2lClZ1/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://www.vuemastery.com/blog/vue-router-a-tutorial-for-vue-3/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.vuemastery.com/blog/vue-router-a-tutorial-for-vue-3/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/lVkjQ/hyRq6z2OZq/tAlC2CX90XvDooqKOmr7mk/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/biAjpz/hyRrbg3bqj/MRMzOKBbEj65TA0PHTJiKk/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080,https://scrap.kakaocdn.net/dn/bJYH2A/hyRq1ldyR2/AHUrM9kDoKIBOqxl2lClZ1/img.jpg?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Vue Router: A Tutorial for Vue 3 | Vue Mastery&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;If you&amp;rsquo;re looking to learn the new Vue Router that uses Vue 3, you&amp;rsquo;re in the right place. Many things are the same in Vue 3 using Vue Router, but there are a few small differences from Vue 2.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.vuemastery.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend</category>
      <category>vue router import</category>
      <category>vue router 사용</category>
      <category>vue router 추가</category>
      <category>vue-router</category>
      <category>vue3 router</category>
      <category>vue3 router view</category>
      <category>vue3 router.js</category>
      <category>vue3 vue-router</category>
      <category>vue3에 router 사용하기</category>
      <category>vue프로젝트에 router 사용</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/180</guid>
      <comments>https://herojoon-dev.tistory.com/180#entry180comment</comments>
      <pubDate>Sat, 28 Jan 2023 17:55:56 +0900</pubDate>
    </item>
    <item>
      <title>Mysql 여러 줄 Insert 하기</title>
      <link>https://herojoon-dev.tistory.com/178</link>
      <description>&lt;pre id=&quot;code_1674666441613&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- 단일 insert하기
INSERT INTO board (id, title, content, user, create_dt)
VALUES  (NULL, 'hello1', 'happy christmas!!1', 'herojoon', NOW());

-- 여러 줄 insert하기
INSERT INTO board (id, title, content, user, create_dt)
VALUES  (NULL, 'hello1', 'happy christmas!!1', 'herojoon', NOW()), 
		(NULL, 'hello2', 'happy christmas!!2', 'herojoon', NOW()), 
		(NULL, 'hello3', 'happy christmas!!3', 'herojoon', NOW());&lt;/code&gt;&lt;/pre&gt;</description>
      <category>DB</category>
      <category>INSERT</category>
      <category>insert multi row</category>
      <category>insert rows</category>
      <category>insert 여러개</category>
      <category>insert 여러줄</category>
      <category>mysql insert</category>
      <category>mysql insert multi row</category>
      <category>mysql insert multiple</category>
      <category>mysql multi row insert</category>
      <category>mysql multiple insert</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/178</guid>
      <comments>https://herojoon-dev.tistory.com/178#entry178comment</comments>
      <pubDate>Thu, 26 Jan 2023 02:09:56 +0900</pubDate>
    </item>
    <item>
      <title>Mysql 변수 사용하기</title>
      <link>https://herojoon-dev.tistory.com/177</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Mysql에서 변수 사용하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;@변수명 = 값;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예시&lt;/h2&gt;
&lt;pre id=&quot;code_1674665941549&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@title = 'hello';
@content = 'happy christmas!!';

INSERT INTO board (id, title, content, user, create_dt)
VALUES  (NULL, @title, @content, 'herojoon', NOW());

SET @boardId = SELECT LAST_INSERT_ID();

INSERT INTO reply (id, board_id, reply)
VALUES  (NULL, @boardId, 'first reply');&lt;/code&gt;&lt;/pre&gt;</description>
      <category>DB</category>
      <category>db 변수 사용하기</category>
      <category>insert id 넣기</category>
      <category>mysql @</category>
      <category>mysql 변수</category>
      <category>mysql 변수 예시</category>
      <category>mysql 변수 예제</category>
      <category>mysql 변수 정의</category>
      <category>sql 변수</category>
      <category>sql 변수 사용</category>
      <category>sql 변수 선언</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/177</guid>
      <comments>https://herojoon-dev.tistory.com/177#entry177comment</comments>
      <pubDate>Thu, 26 Jan 2023 02:02:00 +0900</pubDate>
    </item>
    <item>
      <title>Insert문 실행 후 PK ID 조회하기</title>
      <link>https://herojoon-dev.tistory.com/176</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;Insert문&amp;nbsp;실행&amp;nbsp;후&amp;nbsp;PK&amp;nbsp;ID&amp;nbsp;조회하기&lt;/h2&gt;
&lt;pre id=&quot;code_1674665511282&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- Insert Query의 ID 조회
SELECT LAST_INSERT_ID();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;예시&lt;/h2&gt;
&lt;pre id=&quot;code_1674665400394&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- Insert Query (Auto Increment 사용)
INSERT INTO board (id, title, content, user, create_dt)
VALUES  (NULL, 'hello', 'happy christmas!!', 'herojoon', NOW());

-- Insert Query의 ID 조회
SELECT LAST_INSERT_ID();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1674665410205&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* 
Insert Query
(Auto Increment 사용 중 해당 ID값을 입력하여 Insert하여도 
Insert Query문이 성공하며 아래 LAST_INSERT_ID 조회에서도 값이 잘 나옵니다.)
*/
INSERT INTO board (id, title, content, user, create_dt)
VALUES  (1, 'hello', 'happy christmas!!', 'herojoon', NOW());

-- Insert Query의 ID 조회
SELECT LAST_INSERT_ID();&lt;/code&gt;&lt;/pre&gt;</description>
      <category>DB</category>
      <category>insert id</category>
      <category>insert query id</category>
      <category>insert 실행 후 id</category>
      <category>insert 한 뒤 id 가져오기</category>
      <category>insert 후 id 조회하기</category>
      <category>last insert id</category>
      <category>mysql insert id 조회</category>
      <category>mysql insert id 조회하기</category>
      <category>mysql insert key 가져오기</category>
      <category>select last_insert_id();</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/176</guid>
      <comments>https://herojoon-dev.tistory.com/176#entry176comment</comments>
      <pubDate>Thu, 26 Jan 2023 01:54:02 +0900</pubDate>
    </item>
    <item>
      <title>Windows 액세스 권한이 부족하여 을(를) 제거할 수 없습니다. 해결</title>
      <link>https://herojoon-dev.tistory.com/175</link>
      <description>&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;문제 상황&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;Windows 10, Windows 11&lt;br&gt;[제어판] -&amp;gt; [프로그램 제어]에서 프로그램을 삭제하려고 할 때 아래와 같은 메시지 팝업이 나타나며 삭제되지 않습니다.&lt;br&gt;&lt;b&gt;- 메세지 팝업: &lt;span style=&quot;color: #EE2323;&quot;&gt;&quot;액세스 권한이 부족하여 을(를) 제거할 수 없습니다. 시스템 관리자에게 문의하십시오.&quot;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1747&quot; data-origin-height=&quot;796&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIgHS4/btrW0Ooy76F/dCdulhE1oJ6jvgARcDMbU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIgHS4/btrW0Ooy76F/dCdulhE1oJ6jvgARcDMbU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIgHS4/btrW0Ooy76F/dCdulhE1oJ6jvgARcDMbU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIgHS4%2FbtrW0Ooy76F%2FdCdulhE1oJ6jvgARcDMbU0%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;1747&quot; height=&quot;796&quot; data-origin-width=&quot;1747&quot; data-origin-height=&quot;796&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt; &lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;해결 방법&lt;/h2&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Windows 10일 경우&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;[Windows 아이콘] 클릭 -&amp;gt; [설정&quot;]검색 -&amp;gt; [앱] 클릭 -&amp;gt; 삭제하고자 하는 앱 선택 후 제거 버튼 클릭.&lt;br&gt; &lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Windows 11일 경우&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;[Windows 아이콘] 클릭 -&amp;gt; [설정] 검색 -&amp;gt; [앱] 클릭 -&amp;gt; [설치된 앱] 클릭 -&amp;gt; 삭제하고자 하는 앱 오른쪽의 [...] 클릭 -&amp;gt; [제거] 클릭&lt;/p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;70&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tssRU/btrWUGE4v7P/lPjJklOgBFntk4Welulbz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tssRU/btrWUGE4v7P/lPjJklOgBFntk4Welulbz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tssRU/btrWUGE4v7P/lPjJklOgBFntk4Welulbz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtssRU%2FbtrWUGE4v7P%2FlPjJklOgBFntk4Welulbz1%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;228&quot; height=&quot;52&quot; data-origin-width=&quot;307&quot; data-origin-height=&quot;70&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;371&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bazo8t/btrWSwv8AT9/f5tGPcQ3TlGPI7UUwgpSK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bazo8t/btrWSwv8AT9/f5tGPcQ3TlGPI7UUwgpSK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bazo8t/btrWSwv8AT9/f5tGPcQ3TlGPI7UUwgpSK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbazo8t%2FbtrWSwv8AT9%2Ff5tGPcQ3TlGPI7UUwgpSK0%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;258&quot; height=&quot;240&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;371&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;473&quot; data-origin-height=&quot;791&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vj7ra/btrW6q1uzRm/N3utAUzKrz1spb9zMnw7g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vj7ra/btrW6q1uzRm/N3utAUzKrz1spb9zMnw7g0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vj7ra/btrW6q1uzRm/N3utAUzKrz1spb9zMnw7g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvj7ra%2FbtrW6q1uzRm%2FN3utAUzKrz1spb9zMnw7g0%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;290&quot; height=&quot;485&quot; data-origin-width=&quot;473&quot; data-origin-height=&quot;791&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxeE6O/btrWX55ckGW/OAUdUIHkZGNke4jpLodhI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxeE6O/btrWX55ckGW/OAUdUIHkZGNke4jpLodhI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxeE6O/btrWX55ckGW/OAUdUIHkZGNke4jpLodhI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxeE6O%2FbtrWX55ckGW%2FOAUdUIHkZGNke4jpLodhI0%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;436&quot; height=&quot;319&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1399&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwsa84/btrW2ui2w1N/fH78qD7TvJH6K1E6fV9360/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwsa84/btrW2ui2w1N/fH78qD7TvJH6K1E6fV9360/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwsa84/btrW2ui2w1N/fH78qD7TvJH6K1E6fV9360/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbwsa84%2FbtrW2ui2w1N%2FfH78qD7TvJH6K1E6fV9360%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;828&quot; height=&quot;333&quot; data-origin-width=&quot;1399&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;</description>
      <category>기타</category>
      <category>windows 프로그램 제거 오류</category>
      <category>액세스 권한 부족하여</category>
      <category>액세스 권한 부족하여 삭제 안됨</category>
      <category>액세스 권한 부족하여 에러</category>
      <category>액세스 권한 부족하여 제거 안됨</category>
      <category>액세스 권한이 부족하여 을(를) 제거할 수 없습니다.</category>
      <category>엑세스 권한이 부족하여 제거할 수 없습니다</category>
      <category>제어판 프로그램 제거 오류</category>
      <category>프로그램 삭제 오류</category>
      <category>프로그램 제거 삭제 안됨</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/175</guid>
      <comments>https://herojoon-dev.tistory.com/175#entry175comment</comments>
      <pubDate>Tue, 24 Jan 2023 22:27:21 +0900</pubDate>
    </item>
    <item>
      <title>Mac 폴더 경로 복사하기</title>
      <link>https://herojoon-dev.tistory.com/172</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Mac에서 폴더 경로 복사하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폴더 창을 띄우고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;보기 - 경로 막대 보기&lt;/b&gt;&lt;/span&gt; 클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하면 폴더 창 하단에 경로 막대가 표시됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2342&quot; data-origin-height=&quot;1128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY8Nn9/btrWoqiwZ2H/zkaD2Zkzb4tJcX7TpGlqMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY8Nn9/btrWoqiwZ2H/zkaD2Zkzb4tJcX7TpGlqMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY8Nn9/btrWoqiwZ2H/zkaD2Zkzb4tJcX7TpGlqMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY8Nn9%2FbtrWoqiwZ2H%2FzkaD2Zkzb4tJcX7TpGlqMK%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;2342&quot; height=&quot;1128&quot; data-origin-width=&quot;2342&quot; data-origin-height=&quot;1128&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;폴더 - 오른쪽 클릭 - '폴더명'의 경로 이름 복사&lt;/b&gt;&lt;/span&gt; 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1832&quot; data-origin-height=&quot;1291&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1y1PN/btrWrIa4nE3/08hBfQWycND3XSeyCRTw4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1y1PN/btrWrIa4nE3/08hBfQWycND3XSeyCRTw4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1y1PN/btrWrIa4nE3/08hBfQWycND3XSeyCRTw4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1y1PN%2FbtrWrIa4nE3%2F08hBfQWycND3XSeyCRTw4K%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;1832&quot; height=&quot;1291&quot; data-origin-width=&quot;1832&quot; data-origin-height=&quot;1291&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;복사된 주소 ex) /Users/herojoon/projects&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Mac</category>
      <category>mac file path</category>
      <category>mac folder dir</category>
      <category>mac folder location</category>
      <category>mac folder path copy</category>
      <category>mac folder 경로 복사</category>
      <category>mac path copy</category>
      <category>mac 폴더 경로</category>
      <category>mac 폴더 경로 조회</category>
      <category>mac 폴더 위치 복사</category>
      <category>맥 폴더 경로 얻기</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/172</guid>
      <comments>https://herojoon-dev.tistory.com/172#entry172comment</comments>
      <pubDate>Tue, 17 Jan 2023 02:58:51 +0900</pubDate>
    </item>
    <item>
      <title>Mac에서 특정 포트 확인 및 종료</title>
      <link>https://herojoon-dev.tistory.com/171</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673883055810&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Mac에서 특정 포트의 프로세스 찾기
// ex) sudo lsof -i :6379
sudo lsof -i :{포트}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673883148001&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Mac에서 프로세스 종료하기
// ex) sudo kill -9 40360
// PID = 프로세스ID
sudo kill -9 {PID}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Mac</category>
      <category>linux process kill</category>
      <category>linux 프로세스 종료</category>
      <category>mac find port</category>
      <category>mac kill process</category>
      <category>mac lsof</category>
      <category>mac pid 종료</category>
      <category>mac port 찾기</category>
      <category>mac process kill</category>
      <category>mac 특정 포트 조회</category>
      <category>mac 포트 종료</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/171</guid>
      <comments>https://herojoon-dev.tistory.com/171#entry171comment</comments>
      <pubDate>Tue, 17 Jan 2023 00:35:40 +0900</pubDate>
    </item>
    <item>
      <title>Mac에서 Redis(레디스) 설치하기</title>
      <link>https://herojoon-dev.tistory.com/170</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;목표&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Mac OS에서 Redis 설치하기&lt;/li&gt;
&lt;li&gt;Mac OS에서 Redis 실행&lt;/li&gt;
&lt;li&gt;Redis&amp;nbsp;실행&amp;nbsp;상태&amp;nbsp;확인&lt;/li&gt;
&lt;li&gt;Redis&amp;nbsp;CLI를&amp;nbsp;이용해서&amp;nbsp;Redis&amp;nbsp;사용해보기&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;해보기&lt;/span&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;1. Mac OS에서 Redis 설치&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1673877746973&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Homebrew(Mac OS용 패키지 관리자) 설치 여부 확인
brew --version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1326&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCBgHd/btrWq30Tl0r/PosbCoRK97Su8xBUStaxz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCBgHd/btrWq30Tl0r/PosbCoRK97Su8xBUStaxz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCBgHd/btrWq30Tl0r/PosbCoRK97Su8xBUStaxz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCBgHd%2FbtrWq30Tl0r%2FPosbCoRK97Su8xBUStaxz0%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;736&quot; height=&quot;83&quot; data-origin-width=&quot;1326&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673877180822&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis 설치
brew install redis

// redis 설치 제거 (설치한 redis를 제거하고 싶으시다면 아래 명령어 실행)
brew uninstall redis&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1673877796199&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis 설치 확인
redis-server --version&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1421&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qa2Bs/btrWppjkSQW/u9gqZGbuZkpmTLyF8FDM8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qa2Bs/btrWppjkSQW/u9gqZGbuZkpmTLyF8FDM8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qa2Bs/btrWppjkSQW/u9gqZGbuZkpmTLyF8FDM8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQa2Bs%2FbtrWppjkSQW%2Fu9gqZGbuZkpmTLyF8FDM8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1421&quot; height=&quot;73&quot; data-origin-width=&quot;1421&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Mac OS에서 Redis 실행&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;2-1. Foreground로 실행하기 (Mac OS에 Redis가 정상적으로 설치되었는지 띄워보는 용도로 사용하면 될 것 같습니다.)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;: Foreground로 실행하면 프로세스가 실행하는 동안 터미널에서 다른 작업을 할 수 없습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;터미널에서 명령어를 통해 입,출력을 주고받는데 Foreground로 실행할 경우 명령 처리가 끝날 때까지 다른 작업을 수행할 수 없습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1673878468475&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis foreground로 실행
redis-server&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3023&quot; data-origin-height=&quot;980&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wMqkh/btrWopw4wOR/WDq6gkBBMM87kKeANHgO4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wMqkh/btrWopw4wOR/WDq6gkBBMM87kKeANHgO4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wMqkh/btrWopw4wOR/WDq6gkBBMM87kKeANHgO4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwMqkh%2FbtrWopw4wOR%2FWDq6gkBBMM87kKeANHgO4K%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;3023&quot; height=&quot;980&quot; data-origin-width=&quot;3023&quot; data-origin-height=&quot;980&quot;/&gt;&lt;/span&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: #ee2323;&quot;&gt;※ 위 명령어 실행 시 아래와 같은 오류가 발생했다면 redis port인 6379가 이미 실행되고 있다는 것이므로 포트를 종료하고 다시 위 명령어를 실행해주면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;lt;오류명&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;# Warning: Could not create server TCP listening socket *:6379: bind: Address already in use&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;# Failed listening on port 6379 (TCP), aborting.&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://herojoon-dev.tistory.com/171&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&quot;Mac에서 포트 확인 및 종료 바로가기&quot;&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&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: #f89009;&quot;&gt;&lt;b&gt;2-2. Background로 실행하기 (실제 Redis를 사용할 경우에는 Background 명령어로 실행해줍니다.)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;: Background로 실행할 경우 터미널에서 명령처리가 수행될 동안 다른 프로세스를 함께 수행할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;ex) Application을 Background(&amp;amp;)로 수행하면서 원하는 파일을 찾거나 로그를 볼 수 있음.&lt;/p&gt;
&lt;pre id=&quot;code_1673878730921&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis background로 실행
brew services start redis

// redis background로 재실행
brew services restart redis

// redis background로 중지
brew services stop redis&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1111&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yT4y4/btrWtfGb7eM/6OGkdB4Ek3hTreFbMazz81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yT4y4/btrWtfGb7eM/6OGkdB4Ek3hTreFbMazz81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yT4y4/btrWtfGb7eM/6OGkdB4Ek3hTreFbMazz81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyT4y4%2FbtrWtfGb7eM%2F6OGkdB4Ek3hTreFbMazz81%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;685&quot; height=&quot;47&quot; data-origin-width=&quot;1111&quot; data-origin-height=&quot;76&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1111&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kxrxC/btrWmm8p9hH/kVjJhDFFZTrebbYcFX9nYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kxrxC/btrWmm8p9hH/kVjJhDFFZTrebbYcFX9nYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kxrxC/btrWmm8p9hH/kVjJhDFFZTrebbYcFX9nYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkxrxC%2FbtrWmm8p9hH%2FkVjJhDFFZTrebbYcFX9nYk%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;685&quot; height=&quot;152&quot; data-origin-width=&quot;1111&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1109&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xaM8w/btrWq8Vm45I/p3hqCVbPh78kzqAjkLDaO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xaM8w/btrWq8Vm45I/p3hqCVbPh78kzqAjkLDaO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xaM8w/btrWq8Vm45I/p3hqCVbPh78kzqAjkLDaO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxaM8w%2FbtrWq8Vm45I%2Fp3hqCVbPh78kzqAjkLDaO1%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;684&quot; height=&quot;70&quot; data-origin-width=&quot;1109&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;3. Redis 실행 상태 확인&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1673878994604&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis 실행 상태 확인
brew services info redis&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;256&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5lUTb/btrWqCCFobx/0rXI2wtIEb8DLOuwSudAg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5lUTb/btrWqCCFobx/0rXI2wtIEb8DLOuwSudAg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5lUTb/btrWqCCFobx/0rXI2wtIEb8DLOuwSudAg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5lUTb%2FbtrWqCCFobx%2F0rXI2wtIEb8DLOuwSudAg0%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;559&quot; height=&quot;163&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;256&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;4. Redis CLI를 이용해서 Redis 사용해보기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Redis CLI(Command Line Interface)는 레디스 명령어 라인 인터페이스입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;즉, Redis를 사용하기 위해 제공되는 Redis 명령어입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;해당 명령어를 이용하여 Redis에 값을 쓰고, 조회하고, 삭제할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1673880059554&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis-cli 사용
redis-cli&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;77&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oqJnL/btrWnodTk74/PBoqltDsOmNivnO3Z1iKaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oqJnL/btrWnodTk74/PBoqltDsOmNivnO3Z1iKaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oqJnL/btrWnodTk74/PBoqltDsOmNivnO3Z1iKaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoqJnL%2FbtrWnodTk74%2FPBoqltDsOmNivnO3Z1iKaK%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;385&quot; height=&quot;49&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;77&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673880171273&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis 데이터 생성, 수정(같은 Key값이 존재하면 데이터만 업데이트됨.)
// ex) set mykey, myvalue
set {key} {value}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8WGz3/btrWqqvwMdj/50VGh5QP66ri02vS7YBS9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8WGz3/btrWqqvwMdj/50VGh5QP66ri02vS7YBS9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8WGz3/btrWqqvwMdj/50VGh5QP66ri02vS7YBS9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8WGz3%2FbtrWqqvwMdj%2F50VGh5QP66ri02vS7YBS9K%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;386&quot; height=&quot;48&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;76&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;74&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bs2f1U/btrWnnszVJJ/aHXrOkW8BovfXnz7aeu9z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bs2f1U/btrWnnszVJJ/aHXrOkW8BovfXnz7aeu9z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bs2f1U/btrWnnszVJJ/aHXrOkW8BovfXnz7aeu9z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbs2f1U%2FbtrWnnszVJJ%2FaHXrOkW8BovfXnz7aeu9z1%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;307&quot; height=&quot;47&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;74&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673886677297&quot; class=&quot;javascript&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis 데이터 조회
// ex) get mykey
get {key}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uDzEZ/btrWtetLVPZ/Qw6Us8KvWV6T9BVyWAYgD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uDzEZ/btrWtetLVPZ/Qw6Us8KvWV6T9BVyWAYgD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uDzEZ/btrWtetLVPZ/Qw6Us8KvWV6T9BVyWAYgD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuDzEZ%2FbtrWtetLVPZ%2FQw6Us8KvWV6T9BVyWAYgD1%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;296&quot; height=&quot;46&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673880239593&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis 데이터 Key 목록 조회
keys *&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eGhLZd/btrWnnF4c8r/KkXOGB9FKZikLOnsANJ6D1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eGhLZd/btrWnnF4c8r/KkXOGB9FKZikLOnsANJ6D1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eGhLZd/btrWnnF4c8r/KkXOGB9FKZikLOnsANJ6D1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeGhLZd%2FbtrWnnF4c8r%2FKkXOGB9FKZikLOnsANJ6D1%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;258&quot; height=&quot;72&quot; data-origin-width=&quot;410&quot; data-origin-height=&quot;114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673880263365&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis Key 수정
// ex) redis mykey mykey2
rename 기존키 변경키&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A2I4i/btrWooSuVrw/ytlKtKXsdZIUkFdRzKwYVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A2I4i/btrWooSuVrw/ytlKtKXsdZIUkFdRzKwYVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A2I4i/btrWooSuVrw/ytlKtKXsdZIUkFdRzKwYVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA2I4i%2FbtrWooSuVrw%2FytlKtKXsdZIUkFdRzKwYVK%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;378&quot; height=&quot;44&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673880374547&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis Key 개수 조회
dbsize&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LpDVt/btrWsV18bXc/kLJYD3fKByqmpJgEIkF771/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LpDVt/btrWsV18bXc/kLJYD3fKByqmpJgEIkF771/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LpDVt/btrWsV18bXc/kLJYD3fKByqmpJgEIkF771/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLpDVt%2FbtrWsV18bXc%2FkLJYD3fKByqmpJgEIkF771%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;262&quot; height=&quot;48&quot; data-origin-width=&quot;409&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673880404558&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis Key(데이터) 삭제
// ex) del mykey2
del {key}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4xT3I/btrWq3GAUxN/tveETVXKVSMtfGgATV2dkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4xT3I/btrWq3GAUxN/tveETVXKVSMtfGgATV2dkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4xT3I/btrWq3GAUxN/tveETVXKVSMtfGgATV2dkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4xT3I%2FbtrWq3GAUxN%2FtveETVXKVSMtfGgATV2dkk%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;277&quot; height=&quot;47&quot; data-origin-width=&quot;431&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1673880657538&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// redis Key(데이터) 전체 삭제
flushall&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;74&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kzrqQ/btrWq3mg12E/VViYKCjFtuZXa9OLvGs1aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kzrqQ/btrWq3mg12E/VViYKCjFtuZXa9OLvGs1aK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kzrqQ/btrWq3mg12E/VViYKCjFtuZXa9OLvGs1aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkzrqQ%2FbtrWq3mg12E%2FVViYKCjFtuZXa9OLvGs1aK%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;289&quot; height=&quot;48&quot; data-origin-width=&quot;445&quot; data-origin-height=&quot;74&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;참고 URL: &lt;a href=&quot;https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1673880762029&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Install Redis on macOS&quot; data-og-description=&quot;Use Homebrew to install and start Redis on macOS&quot; data-og-host=&quot;redis.io&quot; data-og-source-url=&quot;https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/&quot; data-og-url=&quot;https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Install Redis on macOS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Use Homebrew to install and start Redis on macOS&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;redis.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Redis</category>
      <category>Address already in use</category>
      <category>mac install redis</category>
      <category>mac redis 사용</category>
      <category>mac redis 설치</category>
      <category>redis key 조회</category>
      <category>redis 데이터 저장</category>
      <category>redis 명령어</category>
      <category>Redis 설치</category>
      <category>redis-cli</category>
      <category>Warning: Could not create server TCP listening socke</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/170</guid>
      <comments>https://herojoon-dev.tistory.com/170#entry170comment</comments>
      <pubDate>Mon, 16 Jan 2023 19:35:58 +0900</pubDate>
    </item>
    <item>
      <title>Mac 새로고침 단축키</title>
      <link>https://herojoon-dev.tistory.com/169</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;command + r&lt;/p&gt;</description>
      <category>Mac</category>
      <category>command r</category>
      <category>command 새로고침</category>
      <category>mac 새로고침</category>
      <category>mac 새로고침 command</category>
      <category>mac 새로고침 key</category>
      <category>mac 새로고침 단축키</category>
      <category>맥 새로고침</category>
      <category>맥 새로고침 command</category>
      <category>맥 새로고침 단축키</category>
      <category>새로고침 command</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/169</guid>
      <comments>https://herojoon-dev.tistory.com/169#entry169comment</comments>
      <pubDate>Mon, 16 Jan 2023 19:06:34 +0900</pubDate>
    </item>
    <item>
      <title>Mac에서 SSH Tunnel 접속하기 (pem 접속키 사용)</title>
      <link>https://herojoon-dev.tistory.com/168</link>
      <description>&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;pre class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;ssh -i [.pem 파일위치] -L [로컬에서 사용할 포트]:[터널로 접속할 주소]:[터널로 접속할 포트] [SSH 계정]@[SSH IP]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ 위 명령어 실행 중 .pem파일에 대한 오류가 발생할 경우 아래와 같이 처리하면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;html xml&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;// 오류명
Permissions 0644 for &quot;.pem 파일위치/mykey.pem&quot; are too open.
It is required that your private key files are NOT accessble by others.
This private key will be ignored.
Load key &quot;.pem 파일위치/mykey.pem&quot;: bad permission 

/**********/

// 해결
// chmod 명령어를 이용하여 .pem파일에 400권한 (파일 소유자의 읽기 권한) 부여
chmod 400 .pem파일

ex) 
.pem파일명이 mykey.pem일 경우 아래와 같이 명령어 실행
chmod 400 mykey.pem&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Mac</category>
      <category>It is required that your private key files are NOT accessble by others.</category>
      <category>Load key bad permission</category>
      <category>mac ssh</category>
      <category>mac ssh pem</category>
      <category>mac ssh pem error</category>
      <category>mac ssh tunnel</category>
      <category>mac ssh tunnel pem</category>
      <category>mac에서 ssh tunnel 접속</category>
      <category>SSH Tunnel</category>
      <category>맥에서 터널링 접속</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/168</guid>
      <comments>https://herojoon-dev.tistory.com/168#entry168comment</comments>
      <pubDate>Mon, 16 Jan 2023 18:50:15 +0900</pubDate>
    </item>
    <item>
      <title>Mac에서 화면 캡쳐하기</title>
      <link>https://herojoon-dev.tistory.com/167</link>
      <description>&lt;pre id=&quot;code_1673889363556&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Mac 화면 캡쳐 단축키
// 캡쳐된 사진은 바탕화면에 저장됩니다.
Shift + Command + 3&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Mac</category>
      <category>mac capture</category>
      <category>mac capture command</category>
      <category>mac capture 단축키</category>
      <category>Mac screenshot</category>
      <category>mac 스크린샷</category>
      <category>mac 스크린샷 command</category>
      <category>MAC 화면 캡쳐</category>
      <category>mac 화면 캡쳐 단축키</category>
      <category>mac 화면 캡쳐 위치</category>
      <category>맥 화면 캡쳐 command</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/167</guid>
      <comments>https://herojoon-dev.tistory.com/167#entry167comment</comments>
      <pubDate>Mon, 16 Jan 2023 15:27:39 +0900</pubDate>
    </item>
    <item>
      <title>Mac에서 H2 Database 설치하기</title>
      <link>https://herojoon-dev.tistory.com/166</link>
      <description>&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;Mac에서 H2 Database 설치하기&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;H2 다운로드 URL: &lt;a href=&quot;http://www.h2database.com/html/download.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.h2database.com/html/download.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;figure id=&quot;og_1673894464488&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Downloads&quot; data-og-description=&quot;Downloads Version 2.1.214 (2022-06-13) Windows Installer (SHA1 checksum: 5f7cd83d394df5882ed01553935463a848979f29) Platform-Independent Zip (SHA1 checksum: 5ff027217098bf6c800ef96b98f3a381b320e53d) Version 2.1.212 (2022-04-09) Windows Installer (SHA1 check&quot; data-og-host=&quot;www.h2database.com&quot; data-og-source-url=&quot;http://www.h2database.com/html/download.html&quot; data-og-url=&quot;http://www.h2database.com/html/download.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;http://www.h2database.com/html/download.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://www.h2database.com/html/download.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Downloads&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Downloads Version 2.1.214 (2022-06-13) Windows Installer (SHA1 checksum: 5f7cd83d394df5882ed01553935463a848979f29) Platform-Independent Zip (SHA1 checksum: 5ff027217098bf6c800ef96b98f3a381b320e53d) Version 2.1.212 (2022-04-09) Windows Installer (SHA1 check&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.h2database.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: left;&quot; 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;b&gt;1. H2 Database 설치파일 다운로드 합니다.&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1159&quot; data-origin-height=&quot;578&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRLZez/btrWraeEANZ/ijwkEWzBeERgkZekM1y5V1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRLZez/btrWraeEANZ/ijwkEWzBeERgkZekM1y5V1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRLZez/btrWraeEANZ/ijwkEWzBeERgkZekM1y5V1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRLZez%2FbtrWraeEANZ%2FijwkEWzBeERgkZekM1y5V1%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;1159&quot; height=&quot;578&quot; data-origin-width=&quot;1159&quot; data-origin-height=&quot;578&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 다운로드 받은 H2 Database 설치파일 Zip 압축해제 합니다.&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;압축해제한 H2 Databse 폴더를 원하는 위치에 이동시켜 줍니다. 압축해제한 H2 Database 폴더 내용은 아래와 같습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1831&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzQrWl/btrWrayTPMH/3x8oWS66xf8ji8aPOXvAck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzQrWl/btrWrayTPMH/3x8oWS66xf8ji8aPOXvAck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzQrWl/btrWrayTPMH/3x8oWS66xf8ji8aPOXvAck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzQrWl%2FbtrWrayTPMH%2F3x8oWS66xf8ji8aPOXvAck%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;1831&quot; height=&quot;630&quot; data-origin-width=&quot;1831&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. 터미널 창에서 /bin/h2.sh 스크립트를 실행시켜 H2 Database Console을 띄워줍니다.&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Y96MB/btrWtdPb3It/YUYionEPrvjykTYjvrErpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Y96MB/btrWtdPb3It/YUYionEPrvjykTYjvrErpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Y96MB/btrWtdPb3It/YUYionEPrvjykTYjvrErpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FY96MB%2FbtrWtdPb3It%2FYUYionEPrvjykTYjvrErpK%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;1274&quot; height=&quot;488&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;143&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1qqrv/btrWnodUR4B/kglhiOW62xn8RCVKCYCGKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1qqrv/btrWnodUR4B/kglhiOW62xn8RCVKCYCGKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1qqrv/btrWnodUR4B/kglhiOW62xn8RCVKCYCGKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1qqrv%2FbtrWnodUR4B%2FkglhiOW62xn8RCVKCYCGKK%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;578&quot; height=&quot;88&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;143&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ 만약 h2.sh파일에 대한 Permission Error가 발생한다면 아래처럼 h2.sh에 권한을 부여해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1673897402746&quot; class=&quot;angelscript&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 권한 부여
chmod 755 ./bin/h2.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. H2 Console 웹 화면 확인하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;./bin/h2.sh 실행 시 아래와 같은 아이콘이 하단 메뉴창에 나타나며, H2 Console 화면에 웹에 표시됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;101&quot; data-origin-height=&quot;117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ngyrg/btrWpodGqgh/xQpSO57Et2KkkibRvKmaQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ngyrg/btrWpodGqgh/xQpSO57Et2KkkibRvKmaQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ngyrg/btrWpodGqgh/xQpSO57Et2KkkibRvKmaQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fngyrg%2FbtrWpodGqgh%2FxQpSO57Et2KkkibRvKmaQK%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;81&quot; height=&quot;94&quot; data-origin-width=&quot;101&quot; data-origin-height=&quot;117&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;H2 Console 웹 화면에서 &lt;b&gt;JDBC URL에 jdbc:h2:~/&lt;span style=&quot;color: #ef5369;&quot;&gt;원하는 DB명&lt;/span&gt;&lt;/b&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;color: #ef5369;&quot;&gt;&lt;b&gt;원하는 DB&lt;/b&gt;&lt;/span&gt;명으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;원하는 DB명.mv.db&lt;/span&gt;&lt;/b&gt;형식의 파일이 생성되며,&lt;/span&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;&lt;span style=&quot;color: #8a3db6;&quot;&gt;파일의 위치는&amp;nbsp; Root 혹은 /Users/사용자명 아래&lt;/span&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;- 파일 예시: testdb.mv.db&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2058&quot; data-origin-height=&quot;1401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzqr1p/btrWq37HfwN/Rg59DzetFopKrXartRGWc0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzqr1p/btrWq37HfwN/Rg59DzetFopKrXartRGWc0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzqr1p/btrWq37HfwN/Rg59DzetFopKrXartRGWc0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdzqr1p%2FbtrWq37HfwN%2FRg59DzetFopKrXartRGWc0%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;645&quot; height=&quot;439&quot; data-origin-width=&quot;2058&quot; data-origin-height=&quot;1401&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;생성한 testdb 화면으로 이동됩니다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;처음에는 Table이 비어 있으므로,&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;아래 첫 화면에서 제공하는 샘플 SQL 스크립트를 이용하여 테이블을 생성할 수도 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1459&quot; data-origin-height=&quot;1604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V3EmD/btrWr6CRgMj/HGIO7V5ZysKzUkMMZlEPD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V3EmD/btrWr6CRgMj/HGIO7V5ZysKzUkMMZlEPD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V3EmD/btrWr6CRgMj/HGIO7V5ZysKzUkMMZlEPD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV3EmD%2FbtrWr6CRgMj%2FHGIO7V5ZysKzUkMMZlEPD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1459&quot; height=&quot;1604&quot; data-origin-width=&quot;1459&quot; data-origin-height=&quot;1604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;샘플 SQL 스크립트로 TEST 테이블을 생성해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1535&quot; data-origin-height=&quot;805&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crAFIm/btrWmmtRW3Y/PiQdVKkEEuo61qqP8rJ5a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crAFIm/btrWmmtRW3Y/PiQdVKkEEuo61qqP8rJ5a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crAFIm/btrWmmtRW3Y/PiQdVKkEEuo61qqP8rJ5a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrAFIm%2FbtrWmmtRW3Y%2FPiQdVKkEEuo61qqP8rJ5a1%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;1535&quot; height=&quot;805&quot; data-origin-width=&quot;1535&quot; data-origin-height=&quot;805&quot;/&gt;&lt;/span&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;/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;&amp;nbsp;&lt;/p&gt;</description>
      <category>H2</category>
      <category>h2 console jdbcurl</category>
      <category>h2 console table 생성</category>
      <category>h2 console 띄우기</category>
      <category>h2.sh permission error</category>
      <category>h2.sh 실행</category>
      <category>mac h2 console</category>
      <category>mac h2 db 생성</category>
      <category>mac h2 download</category>
      <category>mac h2 설치</category>
      <category>mac install h2</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/166</guid>
      <comments>https://herojoon-dev.tistory.com/166#entry166comment</comments>
      <pubDate>Mon, 16 Jan 2023 15:26:01 +0900</pubDate>
    </item>
    <item>
      <title>[Mac] Folder에서 Terminal 열기 / Terminal에서 Folder 열기</title>
      <link>https://herojoon-dev.tistory.com/165</link>
      <description>&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Folder에서&amp;nbsp;Terminal&amp;nbsp;열기&lt;/li&gt;
&lt;li&gt;Ternimal에서&amp;nbsp;Folder&amp;nbsp;열기&lt;/li&gt;
&lt;li&gt;Terminal&amp;nbsp;사용할&amp;nbsp;때&amp;nbsp;편리한&amp;nbsp;단축키&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Folder에서 Terminal 열기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;폴더 - 오른쪽 클릭 - 폴더에서 새로운 터미널 열기&lt;/b&gt;&lt;/span&gt; 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1811&quot; data-origin-height=&quot;1105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpCXZS/btrWteN5AGr/sRkKkVvzMyNjCKLE3zF7qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpCXZS/btrWteN5AGr/sRkKkVvzMyNjCKLE3zF7qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpCXZS/btrWteN5AGr/sRkKkVvzMyNjCKLE3zF7qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdpCXZS%2FbtrWteN5AGr%2FsRkKkVvzMyNjCKLE3zF7qk%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;1811&quot; height=&quot;1105&quot; data-origin-width=&quot;1811&quot; data-origin-height=&quot;1105&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1446&quot; data-origin-height=&quot;529&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwP6fQ/btrWpZdNmzg/HT7JFDdKnBk85wNR54BPhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwP6fQ/btrWpZdNmzg/HT7JFDdKnBk85wNR54BPhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwP6fQ/btrWpZdNmzg/HT7JFDdKnBk85wNR54BPhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwP6fQ%2FbtrWpZdNmzg%2FHT7JFDdKnBk85wNR54BPhK%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;1446&quot; height=&quot;529&quot; data-origin-width=&quot;1446&quot; data-origin-height=&quot;529&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;※ [폴더에서 새로운 터미널 열기]가 보이지 않는다면 아래와 같이 설정해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;Finder - 서비스 - 서비스 환경설정&lt;/b&gt;&lt;/span&gt; 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;551&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wXDe7/btrWpZZcFGF/UEuqdImpnkyMg0HPNxGB10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wXDe7/btrWpZZcFGF/UEuqdImpnkyMg0HPNxGB10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wXDe7/btrWpZZcFGF/UEuqdImpnkyMg0HPNxGB10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwXDe7%2FbtrWpZZcFGF%2FUEuqdImpnkyMg0HPNxGB10%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;536&quot; height=&quot;319&quot; data-origin-width=&quot;925&quot; data-origin-height=&quot;551&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;서비스 - 폴더에서 새로운 터미널 열기&lt;/b&gt;&lt;/span&gt; 체크&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;서비스 - 폴더에서 새로운 터미널 탭 열기&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;체크&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;하고 저장해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1328&quot; data-origin-height=&quot;1169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lNXst/btrWnorvEoP/GkT5XKmU3VfKhd3pdKKyUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lNXst/btrWnorvEoP/GkT5XKmU3VfKhd3pdKKyUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lNXst/btrWnorvEoP/GkT5XKmU3VfKhd3pdKKyUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlNXst%2FbtrWnorvEoP%2FGkT5XKmU3VfKhd3pdKKyUk%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;1328&quot; height=&quot;1169&quot; data-origin-width=&quot;1328&quot; data-origin-height=&quot;1169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Ternimal에서 Folder 열기&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1673890561089&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 터미널창에서 해당 주소의 폴더창 열기
open .&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Terminal 사용할 때 편리한 단축키&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1673890503175&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 터미널창에서 새 터미널창 열기 단축키
command + n&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Mac</category>
      <category>mac folder terminal</category>
      <category>mac folder 위치에서 terminal 열기</category>
      <category>mac folder에서 terminal 창 띄우기</category>
      <category>mac terminal folder</category>
      <category>mac terminal창에서 folder 띄우기</category>
      <category>mac 서비스 터미널 설정</category>
      <category>mac 터미널창에서 폴더 위치 열기</category>
      <category>mac 폴더 위치 터미널로 열기</category>
      <category>폴더에서 새로운 터미널 열기 설정</category>
      <category>폴더에서 새로운 터미널 탭 열기 설정</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/165</guid>
      <comments>https://herojoon-dev.tistory.com/165#entry165comment</comments>
      <pubDate>Mon, 16 Jan 2023 15:24:55 +0900</pubDate>
    </item>
    <item>
      <title>java.lang.UnsupportedOperationException: null 오류 해결</title>
      <link>https://herojoon-dev.tistory.com/163</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;오류명&lt;/h2&gt;
&lt;pre id=&quot;code_1673459043565&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java.lang.UnsupportedOperationException: null
	at java.base/java.util.AbstractList.add(AbstractList.java:153) ~[na:na]
	at java.base/java.util.AbstractList.add(AbstractList.java:111) ~[na:na]
    .....&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;원인&lt;/h2&gt;
&lt;pre id=&quot;code_1673459133493&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// data map (예시용)
Map&amp;lt;String, List&amp;lt;Long&amp;gt;&amp;gt; userMap = new HashMap&amp;lt;&amp;gt;();
userMap.put(&quot;userIds&quot;, Arrays.asList(1L, 2L, 3L, 4L, 5L));

// 에러 나는 경우
List&amp;lt;Long&amp;gt; userIds = userMap.get(&quot;userIds&quot;);
userIds.add(6L);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해결&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;new ArrayList&amp;lt;&amp;gt;()로 선언하여 사용한다.&lt;/p&gt;
&lt;pre id=&quot;code_1673459206132&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// data map (예시용)
Map&amp;lt;String, List&amp;lt;Long&amp;gt;&amp;gt; userMap = new HashMap&amp;lt;&amp;gt;();
userMap.put(&quot;userIds&quot;, Arrays.asList(1L, 2L, 3L, 4L, 5L));

// 에러가 나지 않게 하려면
List&amp;lt;Long&amp;gt; userIds = new ArrayList&amp;lt;&amp;gt;(userMap.get(&quot;userIds&quot;));
userIds.add(6L);&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Backend</category>
      <category>Arrays.asList error</category>
      <category>at java.base/java.util.AbstractList.add</category>
      <category>java list add error</category>
      <category>java list error</category>
      <category>java list java.lang.UnsupportedOperationException: null</category>
      <category>java list UnsupportedOperationException</category>
      <category>java.lang.UnsupportedOperationException:</category>
      <category>java.lang.UnsupportedOperationException: null</category>
      <category>UnsupportedOperationException</category>
      <category>자바 list 선언 에러</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/163</guid>
      <comments>https://herojoon-dev.tistory.com/163#entry163comment</comments>
      <pubDate>Thu, 12 Jan 2023 03:01:56 +0900</pubDate>
    </item>
    <item>
      <title>Postman에서 Environment 사용하기</title>
      <link>https://herojoon-dev.tistory.com/160</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Postman에서 Environment 사용하기&lt;/p&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: #ef5369;&quot;&gt;Postman에서 자주 사용되는 값들을 전역 값으로 설정하고 API Request에서 불러와 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;ex) Domain 주소, Header 값 등등&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;환경&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Postman: Version 10.7.1 (for Windows)&lt;/p&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: #7e98b1;&quot;&gt;&lt;b&gt;Postman 버전 확인 방법 ---&amp;gt; 아래 더보기를 클릭해주세요.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Postman 화면 상단 톱니바퀴 설정 아이콘 -&amp;gt; Settings 클릭&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1576&quot; data-origin-height=&quot;562&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPbj6i/btrVRCDJzyM/YAO8osPLaWKQj63Mvo95V0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPbj6i/btrVRCDJzyM/YAO8osPLaWKQj63Mvo95V0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPbj6i/btrVRCDJzyM/YAO8osPLaWKQj63Mvo95V0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPbj6i%2FbtrVRCDJzyM%2FYAO8osPLaWKQj63Mvo95V0%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;1576&quot; height=&quot;562&quot; data-origin-width=&quot;1576&quot; data-origin-height=&quot;562&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa;&quot;&gt;About 클릭 하시면 아래에 Version 정보가 표시됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1146&quot; data-origin-height=&quot;848&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwMUDG/btrVVQNU71d/KzvQaYcQRAu33LBflcxYNK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwMUDG/btrVVQNU71d/KzvQaYcQRAu33LBflcxYNK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwMUDG/btrVVQNU71d/KzvQaYcQRAu33LBflcxYNK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwMUDG%2FbtrVVQNU71d%2FKzvQaYcQRAu33LBflcxYNK%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;1146&quot; height=&quot;848&quot; data-origin-width=&quot;1146&quot; data-origin-height=&quot;848&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. Environment 값 설정&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;New Collection 폴더 안에 있는 API Request에서 사용 가능한 Environment 값을 설정합니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;VARIABLE: Key를 입력합니다.&lt;/li&gt;
&lt;li&gt;CURRENT VALUE: Value를 입력합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1938&quot; data-origin-height=&quot;570&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CBWqT/btrVT7J2Jqb/duRiiG28tFhkeMcpU9b24K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CBWqT/btrVT7J2Jqb/duRiiG28tFhkeMcpU9b24K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CBWqT/btrVT7J2Jqb/duRiiG28tFhkeMcpU9b24K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCBWqT%2FbtrVT7J2Jqb%2FduRiiG28tFhkeMcpU9b24K%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;1938&quot; height=&quot;570&quot; data-origin-width=&quot;1938&quot; data-origin-height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. 설정한 Environment 값 사용하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API Request에서 Environment 값을 사용하기 위해서 &lt;b&gt;{{&lt;/b&gt;Key&lt;b&gt;}}&lt;/b&gt;로 불러와 사용 가능합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1930&quot; data-origin-height=&quot;737&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9Vzyz/btrVT7Df35a/4soatvo3284MKbLKdgQzlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9Vzyz/btrVT7Df35a/4soatvo3284MKbLKdgQzlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9Vzyz/btrVT7Df35a/4soatvo3284MKbLKdgQzlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9Vzyz%2FbtrVT7Df35a%2F4soatvo3284MKbLKdgQzlK%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;1930&quot; height=&quot;737&quot; data-origin-width=&quot;1930&quot; data-origin-height=&quot;737&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>기타</category>
      <category>postman</category>
      <category>postman env</category>
      <category>postman environment</category>
      <category>postman header env</category>
      <category>postman header 설정</category>
      <category>postman variable</category>
      <category>postman 공통 값</category>
      <category>postman 버전</category>
      <category>postman 환경변수</category>
      <category>포스트맨 전역 값</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/160</guid>
      <comments>https://herojoon-dev.tistory.com/160#entry160comment</comments>
      <pubDate>Tue, 10 Jan 2023 23:45:01 +0900</pubDate>
    </item>
    <item>
      <title>Windows에 Python 설치 및 hello, world! 출력해보기</title>
      <link>https://herojoon-dev.tistory.com/158</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;목표&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Windows에 Python 설치하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 설치한 Python으로 hello, world! 출력하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 파이썬 파일 생성 및 hello, world! 출력하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. Windows에 Python 설치하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Python Download URL: &lt;a href=&quot;https://www.python.org/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.python.org/downloads&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1670263273960&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Download Python&quot; data-og-description=&quot;The official home of the Python Programming Language&quot; data-og-host=&quot;www.python.org&quot; data-og-source-url=&quot;https://www.python.org/downloads/&quot; data-og-url=&quot;https://www.python.org/downloads/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Z3RPd/hyQNZV8JW9/HasDRD5sPtdQgS2huGws6k/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.python.org/downloads/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.python.org/downloads/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Z3RPd/hyQNZV8JW9/HasDRD5sPtdQgS2huGws6k/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Download Python&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The official home of the Python Programming Language&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.python.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) Python 설치 파일을 다운로드 받습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1779&quot; data-origin-height=&quot;658&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lkv5X/btrSTxLRGoL/UBwIG3HkK9CgKfDDtS6Z70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lkv5X/btrSTxLRGoL/UBwIG3HkK9CgKfDDtS6Z70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lkv5X/btrSTxLRGoL/UBwIG3HkK9CgKfDDtS6Z70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLkv5X%2FbtrSTxLRGoL%2FUBwIG3HkK9CgKfDDtS6Z70%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;1779&quot; height=&quot;658&quot; data-origin-width=&quot;1779&quot; data-origin-height=&quot;658&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1825&quot; data-origin-height=&quot;673&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bseHdf/btrSUBmLyhT/9mw6DkFA4PQUrBbPbURCN1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bseHdf/btrSUBmLyhT/9mw6DkFA4PQUrBbPbURCN1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bseHdf/btrSUBmLyhT/9mw6DkFA4PQUrBbPbURCN1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbseHdf%2FbtrSUBmLyhT%2F9mw6DkFA4PQUrBbPbURCN1%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;1825&quot; height=&quot;673&quot; data-origin-width=&quot;1825&quot; data-origin-height=&quot;673&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 다운로드 받은 Python 파일을 설치합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;61&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kMXoy/btrSVIr4HaS/G0LMpISw6EifCfYrhCqick/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kMXoy/btrSVIr4HaS/G0LMpISw6EifCfYrhCqick/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kMXoy/btrSVIr4HaS/G0LMpISw6EifCfYrhCqick/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkMXoy%2FbtrSVIr4HaS%2FG0LMpISw6EifCfYrhCqick%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;214&quot; height=&quot;39&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;61&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) Add python.exe to PATH를 체크해줍니다. (체크하면 환경변수 설정이 자동 추가됩니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Use admin privileges when installing py.exe&lt;/b&gt;는 관리자 권한을 허용한다는 뜻입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관리자 권한으로 사용하기 원한다면 체크해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1019&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bm9cdR/btrSRRDQvw1/kuPHutlgHkR5GCKkVx10oK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bm9cdR/btrSRRDQvw1/kuPHutlgHkR5GCKkVx10oK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bm9cdR/btrSRRDQvw1/kuPHutlgHkR5GCKkVx10oK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbm9cdR%2FbtrSRRDQvw1%2FkuPHutlgHkR5GCKkVx10oK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;706&quot; height=&quot;434&quot; data-origin-width=&quot;1019&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n2XxX/btrSVbnKpgz/ugWk1nPBTVK73uXajMAvTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n2XxX/btrSVbnKpgz/ugWk1nPBTVK73uXajMAvTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n2XxX/btrSVbnKpgz/ugWk1nPBTVK73uXajMAvTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn2XxX%2FbtrSVbnKpgz%2FugWk1nPBTVK73uXajMAvTK%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;704&quot; height=&quot;432&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpUe1V/btrSVIr4Krj/TWhFxBxiRDbXjdk1h7l5U0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpUe1V/btrSVIr4Krj/TWhFxBxiRDbXjdk1h7l5U0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpUe1V/btrSVIr4Krj/TWhFxBxiRDbXjdk1h7l5U0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpUe1V%2FbtrSVIr4Krj%2FTWhFxBxiRDbXjdk1h7l5U0%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;703&quot; height=&quot;431&quot; data-origin-width=&quot;1020&quot; data-origin-height=&quot;625&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) Windows 시작 검색창에 python을 입력하여 설치가 완료된 것을 확인합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;241&quot; data-origin-height=&quot;65&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Kex91/btrSUH1wJnn/kM9h45y2BOMi6KLwq9M44K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Kex91/btrSUH1wJnn/kM9h45y2BOMi6KLwq9M44K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Kex91/btrSUH1wJnn/kM9h45y2BOMi6KLwq9M44K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKex91%2FbtrSUH1wJnn%2FkM9h45y2BOMi6KLwq9M44K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;160&quot; height=&quot;43&quot; data-origin-width=&quot;241&quot; data-origin-height=&quot;65&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;572&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XV2ES/btrSVaI9r3c/LNJilDianpMyhKUJWiHpZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XV2ES/btrSVaI9r3c/LNJilDianpMyhKUJWiHpZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XV2ES/btrSVaI9r3c/LNJilDianpMyhKUJWiHpZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXV2ES%2FbtrSVaI9r3c%2FLNJilDianpMyhKUJWiHpZ0%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;398&quot; height=&quot;293&quot; data-origin-width=&quot;572&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) 설치 시 체크했던 Add python.exe to PATH 환경변수 설정이 잘 적용되었는지 확인합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cmd창을 열어서 전역으로 환경변수 설정이 되었는지 확인합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1S3oo/btrSWypeBN0/KxFLU66M0VQayWc6kTO1Jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1S3oo/btrSWypeBN0/KxFLU66M0VQayWc6kTO1Jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1S3oo/btrSWypeBN0/KxFLU66M0VQayWc6kTO1Jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1S3oo%2FbtrSWypeBN0%2FKxFLU66M0VQayWc6kTO1Jk%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;417&quot; height=&quot;286&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;375&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cmd창에 python을 입력하여 설치한 Python 버전이 출력되면 환경변수 적용이 잘 된 것입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3zaqf/btrSPRc20d3/71yw6GkdkpOvkwjg6OkllK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3zaqf/btrSPRc20d3/71yw6GkdkpOvkwjg6OkllK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3zaqf/btrSPRc20d3/71yw6GkdkpOvkwjg6OkllK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3zaqf%2FbtrSPRc20d3%2F71yw6GkdkpOvkwjg6OkllK%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;1190&quot; height=&quot;306&quot; data-origin-width=&quot;1190&quot; data-origin-height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. 설치한 Python으로 hello, world! 출력하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치한 Python 화면에서 print(&quot;hello, world!&quot;) 입력 후 Enter를 눌러줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 hello, world!가 출력됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1197&quot; data-origin-height=&quot;245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sohMw/btrSUbPrdVq/88PtAAtxAKfz3L76jNt2Z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sohMw/btrSUbPrdVq/88PtAAtxAKfz3L76jNt2Z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sohMw/btrSUbPrdVq/88PtAAtxAKfz3L76jNt2Z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsohMw%2FbtrSUbPrdVq%2F88PtAAtxAKfz3L76jNt2Z0%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;811&quot; height=&quot;166&quot; data-origin-width=&quot;1197&quot; data-origin-height=&quot;245&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 파이썬 파일 생성 및 hello, world! 출력하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 메모장을 열어줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;373&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pLqDA/btrSQUUYIaU/WyKcatRDRKU0okz9cfnEO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pLqDA/btrSQUUYIaU/WyKcatRDRKU0okz9cfnEO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pLqDA/btrSQUUYIaU/WyKcatRDRKU0okz9cfnEO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpLqDA%2FbtrSQUUYIaU%2FWyKcatRDRKU0okz9cfnEO1%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;372&quot; height=&quot;252&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;373&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 메모장에 print(&quot;hello, world!&quot;)를 입력해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;355&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bt9YvQ/btrSPQytGzO/bz2GR3IjMvjk9F3pZ0NYkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bt9YvQ/btrSPQytGzO/bz2GR3IjMvjk9F3pZ0NYkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bt9YvQ/btrSPQytGzO/bz2GR3IjMvjk9F3pZ0NYkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbt9YvQ%2FbtrSPQytGzO%2Fbz2GR3IjMvjk9F3pZ0NYkk%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;283&quot; height=&quot;182&quot; data-origin-width=&quot;355&quot; data-origin-height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 메모장의 파일 형식을 모든 파일로, 파일 이름은 .py확장자로 저장해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1305&quot; data-origin-height=&quot;815&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ds7UAi/btrSOxyWpE1/RY3VvH6Kh8MkBdXkSPUPQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ds7UAi/btrSOxyWpE1/RY3VvH6Kh8MkBdXkSPUPQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ds7UAi/btrSOxyWpE1/RY3VvH6Kh8MkBdXkSPUPQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fds7UAi%2FbtrSOxyWpE1%2FRY3VvH6Kh8MkBdXkSPUPQK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;784&quot; height=&quot;490&quot; data-origin-width=&quot;1305&quot; data-origin-height=&quot;815&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 생성한 Python 파일이 있는 폴더 위치에서 cmd창을 열어줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;194&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCp2cx/btrSWcmgGdr/NhIdVK2yJTN1n1JuoncQuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCp2cx/btrSWcmgGdr/NhIdVK2yJTN1n1JuoncQuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCp2cx/btrSWcmgGdr/NhIdVK2yJTN1n1JuoncQuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCp2cx%2FbtrSWcmgGdr%2FNhIdVK2yJTN1n1JuoncQuk%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;633&quot; height=&quot;167&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5) python 파일명.py 를 입력해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일에 작성된 코드가 실행됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;94&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oLDCj/btrSUB1oMsy/lUgOIRHOkWaBbr6JPXsSzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oLDCj/btrSUB1oMsy/lUgOIRHOkWaBbr6JPXsSzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oLDCj/btrSUB1oMsy/lUgOIRHOkWaBbr6JPXsSzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoLDCj%2FbtrSUB1oMsy%2FlUgOIRHOkWaBbr6JPXsSzk%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;652&quot; height=&quot;66&quot; data-origin-width=&quot;927&quot; data-origin-height=&quot;94&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;끝.&lt;/p&gt;</description>
      <category>Python</category>
      <category>python cmd</category>
      <category>python hello world</category>
      <category>python windows</category>
      <category>python 설치</category>
      <category>python 실행 명령어</category>
      <category>python 출력</category>
      <category>python 파일 작성</category>
      <category>python 해보기</category>
      <category>파이썬 설치하기</category>
      <category>파이썬 파일 실행</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/158</guid>
      <comments>https://herojoon-dev.tistory.com/158#entry158comment</comments>
      <pubDate>Tue, 6 Dec 2022 02:27:49 +0900</pubDate>
    </item>
    <item>
      <title>Edge 브라우저의 특정 페이지를 바탕화면 바로가기로 만들기</title>
      <link>https://herojoon-dev.tistory.com/157</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;목표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Edge 브라우저의 특정 페이지를 바탕화면 바로가기로 만들기.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;64&quot; data-origin-height=&quot;63&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H2eiq/btrSVKcgXw4/HqrthDkvuvy53dbfff1xQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H2eiq/btrSVKcgXw4/HqrthDkvuvy53dbfff1xQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H2eiq/btrSVKcgXw4/HqrthDkvuvy53dbfff1xQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH2eiq%2FbtrSVKcgXw4%2FHqrthDkvuvy53dbfff1xQ0%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;56&quot; height=&quot;55&quot; data-origin-width=&quot;64&quot; data-origin-height=&quot;63&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방법 1. 즐겨찾기 추가 후 바탕화면 바로가기 만들기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;방법 2. 바로 바탕화면 바로가기 만들기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;해보기&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;방법 1. 즐겨찾기 추가 후 바탕화면 바로가기 만들기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 바탕화면 바로가기 만들려는 웹페이지를 즐겨찾기에 추가해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2155&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dATerG/btrSPQyl6lb/emUUiosakyJBfN1bstOIv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dATerG/btrSPQyl6lb/emUUiosakyJBfN1bstOIv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dATerG/btrSPQyl6lb/emUUiosakyJBfN1bstOIv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdATerG%2FbtrSPQyl6lb%2FemUUiosakyJBfN1bstOIv1%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;2155&quot; height=&quot;632&quot; data-origin-width=&quot;2155&quot; data-origin-height=&quot;632&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;446&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eacc7s/btrSTxyim4C/c6YbtYFPdtTtXjKYKl0iRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eacc7s/btrSTxyim4C/c6YbtYFPdtTtXjKYKl0iRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eacc7s/btrSTxyim4C/c6YbtYFPdtTtXjKYKl0iRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Feacc7s%2FbtrSTxyim4C%2Fc6YbtYFPdtTtXjKYKl0iRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1602&quot; height=&quot;446&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;446&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 즐겨찾기 목록을 상단바에 표시해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;652&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0NrMY/btrSW7rmG3K/BGzpl9rFPeqI7HcR9Dj8lK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0NrMY/btrSW7rmG3K/BGzpl9rFPeqI7HcR9Dj8lK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0NrMY/btrSW7rmG3K/BGzpl9rFPeqI7HcR9Dj8lK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0NrMY%2FbtrSW7rmG3K%2FBGzpl9rFPeqI7HcR9Dj8lK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;508&quot; height=&quot;652&quot; data-origin-width=&quot;854&quot; data-origin-height=&quot;652&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 상단바에 표시된 즐겨찾기 웹페이지를 마우스로 끌어다가 바탕화면으로 이동시켜줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1996&quot; data-origin-height=&quot;546&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9oVbD/btrSUrxPtNz/dkiuhBllkJaLJjrKtlCjIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9oVbD/btrSUrxPtNz/dkiuhBllkJaLJjrKtlCjIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9oVbD/btrSUrxPtNz/dkiuhBllkJaLJjrKtlCjIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9oVbD%2FbtrSUrxPtNz%2FdkiuhBllkJaLJjrKtlCjIk%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;1996&quot; height=&quot;546&quot; data-origin-width=&quot;1996&quot; data-origin-height=&quot;546&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4) 바탕화면에 바로가기 아이콘이 생성됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;176&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmxZn8/btrSUcgmGRe/Fxtuzzx4pzl4P0cAKy8S5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmxZn8/btrSUcgmGRe/Fxtuzzx4pzl4P0cAKy8S5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmxZn8/btrSUcgmGRe/Fxtuzzx4pzl4P0cAKy8S5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmxZn8%2FbtrSUcgmGRe%2FFxtuzzx4pzl4P0cAKy8S5k%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;107&quot; height=&quot;100&quot; data-origin-width=&quot;176&quot; data-origin-height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;방법 2. 바로 바탕화면 바로가기 만들기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1) 바탕화면 바로가기 만들려는 웹페이지 주소창에 마우스 커서를 갖다대고 한 번 클릭해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 주소창에 마우스 커서를 놓고 ctrl + a로 주소 전체 선택을 해줍니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbYUOM/btrSWyimBow/PMSK5DYdKq0j7OGp6066L0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbYUOM/btrSWyimBow/PMSK5DYdKq0j7OGp6066L0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbYUOM/btrSWyimBow/PMSK5DYdKq0j7OGp6066L0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbYUOM%2FbtrSWyimBow%2FPMSK5DYdKq0j7OGp6066L0%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;457&quot; height=&quot;105&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2) 선택된 주소를 마우스로 끌어다 바탕화면에 놓습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;938&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QhIUQ/btrSTxyjcEk/sW66SOqOC3pwBI1DJ4SNh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QhIUQ/btrSTxyjcEk/sW66SOqOC3pwBI1DJ4SNh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QhIUQ/btrSTxyjcEk/sW66SOqOC3pwBI1DJ4SNh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQhIUQ%2FbtrSTxyjcEk%2FsW66SOqOC3pwBI1DJ4SNh1%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;658&quot; height=&quot;303&quot; data-origin-width=&quot;938&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3) 바탕화면에 바로가기 아이콘이 생성됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;176&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmxZn8/btrSUcgmGRe/Fxtuzzx4pzl4P0cAKy8S5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmxZn8/btrSUcgmGRe/Fxtuzzx4pzl4P0cAKy8S5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmxZn8/btrSUcgmGRe/Fxtuzzx4pzl4P0cAKy8S5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmxZn8%2FbtrSUcgmGRe%2FFxtuzzx4pzl4P0cAKy8S5k%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;107&quot; height=&quot;100&quot; data-origin-width=&quot;176&quot; data-origin-height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>기타</category>
      <category>edge 바탕화면 바로가기 만들기</category>
      <category>edge 바탕화면 아이콘</category>
      <category>edge 웹페이지 아이콘 만들기</category>
      <category>edge 즐겨찾기 바탕화면</category>
      <category>edge 특정 페이지 바탕화면</category>
      <category>엣지 바탕화면</category>
      <category>엣지 바탕화면 아이콘 만들기</category>
      <category>엣지 바탕화면에 아이콘 생성</category>
      <category>엣지 웹페이지 바탕화면 바로가기</category>
      <category>엣지 즐겨찾기 페이지 바탕화면으로 이동</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/157</guid>
      <comments>https://herojoon-dev.tistory.com/157#entry157comment</comments>
      <pubDate>Mon, 5 Dec 2022 22:58:22 +0900</pubDate>
    </item>
    <item>
      <title>업비트 코인 자동매매 RSI 값 구하기 (Java)</title>
      <link>https://herojoon-dev.tistory.com/156</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;목표&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;업비트에서 제공하는 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;RSI 값 계산식&lt;/b&gt;&lt;/span&gt;을 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;Java언어&lt;/b&gt;&lt;/span&gt;를 이용하여 구현해본다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&quot;파이썬의 경우 Pandas 라이브러리를 이용하여 해당 라이브러리에서 제공하는 ewm 함수로 쉽게 RSI값을 구할 수 있으나 &lt;/span&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;Java의 경우 계산식 라이브러리가 오래되었고, 업비트에서 제공하는 RSI값과 차이가 있었습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; color: #ef5369;&quot;&gt;그래서 RSI에 관련된 공식들에 대한 이론 공부와 Pandas 라이브러리의 ewm 함수를 참고하여 업비트 RSI 계산식을 만들어보았습니다. 결과는 해당 계산식으로 업비트의 RSI 값과 일치하는 값을 가져올 수 있습니다.&quot;&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;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;먼저 이해하기&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;RSI (Relative Strength Index: 상대강도지수) 란?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;주식,&amp;nbsp;선물,&amp;nbsp;옵션&amp;nbsp;등의&amp;nbsp;기술적&amp;nbsp;분석에&amp;nbsp;사용되는&amp;nbsp;보조&amp;nbsp;지표이다.&amp;nbsp;RSI는&amp;nbsp;가격의&amp;nbsp;상승압력과&amp;nbsp;하락압력&amp;nbsp;간의&amp;nbsp;상대적인&amp;nbsp;강도를&amp;nbsp;나타낸다.&amp;nbsp;1978년&amp;nbsp;미국의&amp;nbsp;월레스&amp;nbsp;와일더가&amp;nbsp;개발했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RSI는&amp;nbsp;일정&amp;nbsp;기간&amp;nbsp;동안&amp;nbsp;주가가&amp;nbsp;전일&amp;nbsp;가격에&amp;nbsp;비해&amp;nbsp;상승한&amp;nbsp;변화량과&amp;nbsp;하락한&amp;nbsp;변화량의&amp;nbsp;평균값을&amp;nbsp;구하여,&amp;nbsp;상승한&amp;nbsp;변화량이&amp;nbsp;크면&amp;nbsp;과매수로,&amp;nbsp;하락한&amp;nbsp;변화량이&amp;nbsp;크면&amp;nbsp;과매도로&amp;nbsp;판단하는&amp;nbsp;방식이다.&lt;/span&gt;&lt;/p&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;참고: &lt;a href=&quot;https://ko.wikipedia.org/wiki/RSI_(%ED%88%AC%EC%9E%90%EC%A7%80%ED%91%9C)&quot;&gt;https://ko.wikipedia.org/wiki/RSI_(%ED%88%AC%EC%9E%90%EC%A7%80%ED%91%9C)&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1669907020726&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;RSI (투자지표) - 위키백과, 우리 모두의 백과사전&quot; data-og-description=&quot;위키백과, 우리 모두의 백과사전. 상대강도지수(相對强度指數, 영어: relative strength index, RSI)는 주식, 선물, 옵션 등의 기술적 분석에 사용되는 보조 지표이다. RSI는 가격의 상승압력과 하락압력 &quot; data-og-host=&quot;ko.wikipedia.org&quot; data-og-source-url=&quot;https://ko.wikipedia.org/wiki/RSI_(%ED%88%AC%EC%9E%90%EC%A7%80%ED%91%9C)&quot; data-og-url=&quot;https://ko.wikipedia.org/wiki/RSI_(%ED%88%AC%EC%9E%90%EC%A7%80%ED%91%9C)&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fwGcT/hyQKSXTp81/GMF0ykvtfIXAZmO9Zugoa0/img.png?width=1200&amp;amp;height=598&amp;amp;face=0_0_1200_598,https://scrap.kakaocdn.net/dn/V9dCU/hyQK0uSNtE/oCxU19bCdKUjcFB2fr6570/img.png?width=800&amp;amp;height=399&amp;amp;face=0_0_800_399,https://scrap.kakaocdn.net/dn/uty1G/hyQKRraeKQ/pMZIFVgx4KwdBGDPKeOEk1/img.png?width=640&amp;amp;height=319&amp;amp;face=0_0_640_319&quot;&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/RSI_(%ED%88%AC%EC%9E%90%EC%A7%80%ED%91%9C)&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ko.wikipedia.org/wiki/RSI_(%ED%88%AC%EC%9E%90%EC%A7%80%ED%91%9C)&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fwGcT/hyQKSXTp81/GMF0ykvtfIXAZmO9Zugoa0/img.png?width=1200&amp;amp;height=598&amp;amp;face=0_0_1200_598,https://scrap.kakaocdn.net/dn/V9dCU/hyQK0uSNtE/oCxU19bCdKUjcFB2fr6570/img.png?width=800&amp;amp;height=399&amp;amp;face=0_0_800_399,https://scrap.kakaocdn.net/dn/uty1G/hyQKRraeKQ/pMZIFVgx4KwdBGDPKeOEk1/img.png?width=640&amp;amp;height=319&amp;amp;face=0_0_640_319');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;RSI (투자지표) - 위키백과, 우리 모두의 백과사전&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;위키백과, 우리 모두의 백과사전. 상대강도지수(相對强度指數, 영어: relative strength index, RSI)는 주식, 선물, 옵션 등의 기술적 분석에 사용되는 보조 지표이다. RSI는 가격의 상승압력과 하락압력&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ko.wikipedia.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;- RSI 설명 요약 -&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&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;RSI 30 이하:&lt;/b&gt; 과매도 구간 (&lt;b&gt;매수&lt;/b&gt; 타이밍)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;RSI 70 이상:&lt;/b&gt; 과매수 구간 (&lt;b&gt;매도&lt;/b&gt; 타이밍)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;627&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpMUPn/btrSyToPHYt/44YGatxXDVDOW0MKh8kObK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpMUPn/btrSyToPHYt/44YGatxXDVDOW0MKh8kObK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpMUPn/btrSyToPHYt/44YGatxXDVDOW0MKh8kObK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdpMUPn%2FbtrSyToPHYt%2F44YGatxXDVDOW0MKh8kObK%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;725&quot; height=&quot;627&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;627&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RSI 값 계산식&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;일반 RSI 값 계산식&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RSI = RS / (1 + RS) 또는 AU / (AU + AD)&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RS&amp;nbsp;=&amp;nbsp;AU&amp;nbsp;/&amp;nbsp;AD&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; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;AU (Average Ups): 일정 기간 동안 종가가 이전 종가보다 상승한 값의 평균&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #000000; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;AD (Average Downs): 일정 기간 동안 종가가 이전 종가보다 하락한 값의 평균&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RSI는보통 14일 기준으로 구하지만 다른 기간으로 설정하여 구해도 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RSI (14) 라는 것은 RSI를 14일 기준으로 구한다는 뜻입니다.&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;업비트 RSI 값 계산식&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RSI = RS / (1 + RS) 또는 AU / (AU + AD)&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;RS&amp;nbsp;=&amp;nbsp;AU&amp;nbsp;/&amp;nbsp;AD&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;★★이 부분이 중요합니다.★★&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;보통 &lt;b&gt;&quot;단순 이동 평균&quot;&lt;/b&gt;을 이용하여 아래 부분을 구하는데, &lt;b&gt;업비트의 RSI는 &lt;span style=&quot;color: #ef5369;&quot;&gt;&quot;지수 이동 평균&quot;&lt;/span&gt;을 이용&lt;/b&gt;하여 아래 AU와 AD를 구해주어야 합니다.&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;- 단순 이동 평균 (Simple Moving Average: SMA)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;: 값을 모두 더해서 값의 개수로 나눠 평균값을 구합니다. ex) (20 + 10 + 30) / 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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;- 지수 이동 평균 (Exponential Moving Average: EMA)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;: 최근 값에 좀 더 큰 가중치를 부여하여 평균값을 구합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&amp;lt;지수 이동 평균(EMA) 계산식&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;a = 2 / (1 + Day)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;(종가&amp;nbsp;*&amp;nbsp;a)&amp;nbsp;+&amp;nbsp;(이전&amp;nbsp;EMA&amp;nbsp;*&amp;nbsp;(1-&amp;nbsp;a))&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;lt;업비트 RSI 값 구하기 위해 수정한 지수 이동 평균(EMA) 계산식&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;: 파이썬 Pandas 라이브러리의 ewm함수를 참고하여 기존 지수 이동 평균 계산식을 변경하였습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;a = 1 / (1 + (Day - 1))&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;(종가&amp;nbsp;*&amp;nbsp;a)&amp;nbsp;+&amp;nbsp;(이전&amp;nbsp;EMA&amp;nbsp;*&amp;nbsp;(1-&amp;nbsp;a))&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;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;Day:&lt;/b&gt; RSI 기준일자&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;이전 EMA:&lt;/b&gt; EMA 공식으로 구한 값. 최초 이전 EMA의 값은 이전 종가의 값을 그대로 사용합니다.&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: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;AU (Average Ups): 일정 기간 동안 종가가 이전 종가보다 상승한 값의 평균&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ee2323; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;AD (Average Downs): 일정 기간 동안 종가가 이전 종가보다 하락한 값의 평균&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;업비트 RSI 값 구하기 Java 코드&lt;/span&gt;&lt;/h2&gt;
&lt;pre id=&quot;code_1669920549552&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public Double getRsiByMinutes() {
    final int minutes = 30;
    final String market = &quot;KRW-BTC&quot;;
    final int maxCount = 200;
    // 업비트 캔들 API 호출 (Docs: https://docs.upbit.com/reference/%EB%B6%84minute-%EC%BA%94%EB%93%A4-1)
    List&amp;lt;MinuteCandleRes&amp;gt; candleResList = marketPriceReaderService.getCandleMinutes(minutes, market, maxCount);
    if (CollectionUtils.isEmpty(candleResList)) {
        return null;
    }
    
    // 지수 이동 평균은 과거 데이터부터 구해주어야 합니다.
    candleResList = candleResList.stream()
            .sorted(Comparator.comparing(CandleRes::getTimestamp))  // 오름차순 (과거 순)
            .collect(Collectors.toList());  // Sort

    double zero = 0;
    List&amp;lt;Double&amp;gt; upList = new ArrayList&amp;lt;&amp;gt;();  // 상승 리스트
    List&amp;lt;Double&amp;gt; downList = new ArrayList&amp;lt;&amp;gt;();  // 하락 리스트
    for (int i = 0; i &amp;lt; candleResList.size() - 1; i++) {
        // 최근 종가 - 전일 종가 = gap 값이 양수일 경우 상승했다는 뜻 / 음수일 경우 하락이라는 뜻
        double gapByTradePrice = candleResList.get(i + 1).getTradePrice().doubleValue() - candleResList.get(i).getTradePrice().doubleValue();
        if (gapByTradePrice &amp;gt; 0) {  // 종가가 전일 종가보다 상승일 경우
            upList.add(gapByTradePrice);
            downList.add(zero);
        } else if (gapByTradePrice &amp;lt; 0) {  // 종가가 전일 종가보다 하락일 경우
            downList.add(gapByTradePrice * -1);  // 음수를 양수로 변환해준다.
            upList.add(zero);
        } else {  // 상승, 하락이 없을 경우 종가 - 전일 종가 = gap은 0이므로 0값을 넣어줍니다.
            upList.add(zero);
            downList.add(zero);
        }
    }

    double day = 14;  // 가중치를 위한 기준 일자 (보통 14일 기준)
    double a = (double) 1 / (1 + (day - 1));  // 지수 이동 평균의 정식 공식은 a = 2 / 1 + day 이지만 업비트에서 사용하는 수식은 a = 1 / (1 + (day - 1))
    
    // AU값 구하기
    double upEma = 0;  // 상승 값의 지수이동평균
    if (CollectionUtils.isNotEmpty(upList)) {
        upEma = upList.get(0).doubleValue();
        if (upList.size() &amp;gt; 1) {
            for (int i = 1 ; i &amp;lt; upList.size(); i++) {
                upEma = (upList.get(i).doubleValue() * a) + (upEma * (1 - a));
            }
        }
    }

    // AD값 구하기
    double downEma = 0;  // 하락 값의 지수이동평균
    if (CollectionUtils.isNotEmpty(downList)) {
        downEma = downList.get(0).doubleValue();
        if (downList.size() &amp;gt; 1) {
            for (int i = 1; i &amp;lt; downList.size(); i++) {
                downEma = (downList.get(i).doubleValue() * a) + (downEma * (1 - a));
            }
        }
    }

    // rsi 계산
    double au = upEma;
    double ad = downEma;
    double rs = au / ad;
    double rsi = 100 - (100 / (1 + rs));

    return rsi;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;코드 설명&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. RSI값을 구하기 위해 여러 날의 종가 정보들을 조회한다. 해당 정보는 캔들 조회 API를 이용하여 최대 200개까지 조회할 수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 업비트 캔들 조회 API: &lt;a href=&quot;https://docs.upbit.com/reference/%EB%B6%84minute-%EC%BA%94%EB%93%A4-1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.upbit.com/reference/%EB%B6%84minute-%EC%BA%94%EB%93%A4-1&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1669967384541&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;업비트 개발자 센터&quot; data-og-description=&quot;업비트 Open API 사용을 위한 개발 문서를 제공 합니다.업비트 Open API 사용하여 다양한 앱과 프로그램을 제작해보세요.&quot; data-og-host=&quot;docs.upbit.com&quot; data-og-source-url=&quot;https://docs.upbit.com/reference/%EB%B6%84minute-%EC%BA%94%EB%93%A4-1&quot; data-og-url=&quot;https://docs.upbit.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/DcR2e/hyQMwMF9ua/DynBKJBYSTkNBGDsKYYXaK/img.png?width=1200&amp;amp;height=627&amp;amp;face=0_0_1200_627&quot;&gt;&lt;a href=&quot;https://docs.upbit.com/reference/%EB%B6%84minute-%EC%BA%94%EB%93%A4-1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.upbit.com/reference/%EB%B6%84minute-%EC%BA%94%EB%93%A4-1&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/DcR2e/hyQMwMF9ua/DynBKJBYSTkNBGDsKYYXaK/img.png?width=1200&amp;amp;height=627&amp;amp;face=0_0_1200_627');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;업비트 개발자 센터&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;업비트 Open API 사용을 위한 개발 문서를 제공 합니다.업비트 Open API 사용하여 다양한 앱과 프로그램을 제작해보세요.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.upbit.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;-&amp;gt; RSI값을 14일 기준으로 구하고 싶었기때문에 14일 기준을 구한다면 캔들 조회 API의 값도 14개를 가져와야 하나?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;아니면 종가와 전일 종가의 상승분, 하락분을 구하면 차액 값이기 때문에 13개의 값이 나올텐데 애초에 14개에 1개를 더 가져와서 총 15개를 가져와야하나 헷갈렸었다. 리서치를 해보니 지수 이동 평균을 구할 때 데이터의 값이 어느정도 많아야 한다고 보았고, 업비트에서 최대로 가져올 수 있는 200개를 가져오니 업비트 RSI값과 일치하였다. 여기서 14일은 14일 기준의 가중치를 가진 지수 이동 평균을 구한다. 라는 의미로 보면 조금 덜 헷갈릴 것 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. AU는 종가가 전일 종가보다 얼마나 상승했는지 상승한 값들을 가져와 평균을 내는 것이고, AD는 종가가 전일 종가보다 얼마나 하락했는지 하락한 값들을 가져와 평균을 내는 것이다. &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;for문을 돌려서 상승값의 리스트와 하락값의 리스트를 만들어 준다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;-&amp;gt; 종가 - 전일 종가 = gap을 구하다 보면 상승이나 하락이 없어 0이 나올 때가 있다. 0의 값도 지수 이동 평균을 구하기 위해 상승값 리스트, 하락값 리스트에 넣어야 하는지 고민이었다. 파이썬으로 구현한 RSI 값 로직을 참고해보니 0의 값도 함께 넣어서 값을 구하고 있었고 Java코드에서도 0 값을 넣어 지수 이동 평균을 구하도록 하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 지수 이동 평균을 이용하여 AU, AD 값을 구해준다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;-&amp;gt; 지수 이동 평균을 구할때 가중치에 대한 기준 값을 a = 2 / 1 + Day라는 공식으로 대게 구한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;하지만 이렇게 테스트할 경우 RSI 값이 정확하지 않았기 때문에 Day를 14가 아닌 13이나 15로 넣어야 하나 헷갈렸었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;나중에 알고보니 공식 자체를 수정하는게 맞아서 파이썬 Pandas 라이브러리의 ewm 함수 공식을 대입해 해결하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 위에서 구한 AU, AD값을 이용하여 RSI값을 구해준다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;-&amp;gt; RSI값이 잘 나오는 것을 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;결과&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;-- 테스트 1 --&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;Java 코드 RSI 값&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;121&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIc1ao/btrSHU0riuI/frKYiDox9hgnAMQMyFPOyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIc1ao/btrSHU0riuI/frKYiDox9hgnAMQMyFPOyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIc1ao/btrSHU0riuI/frKYiDox9hgnAMQMyFPOyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIc1ao%2FbtrSHU0riuI%2FfrKYiDox9hgnAMQMyFPOyk%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;371&quot; height=&quot;80&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;121&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;업비트 RSI 값&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1513&quot; data-origin-height=&quot;1096&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbBlEe/btrSHNgb0DF/ChHDEkT9b36qkQDjCPwjLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbBlEe/btrSHNgb0DF/ChHDEkT9b36qkQDjCPwjLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbBlEe/btrSHNgb0DF/ChHDEkT9b36qkQDjCPwjLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbBlEe%2FbtrSHNgb0DF%2FChHDEkT9b36qkQDjCPwjLk%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;1513&quot; height=&quot;1096&quot; data-origin-width=&quot;1513&quot; data-origin-height=&quot;1096&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;-- 테스트 2 --&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;Java&amp;nbsp;코드&amp;nbsp;RSI&amp;nbsp;값&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;118&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmVvsr/btrSE9kwXKh/KC4qYp7bm3v95Q1zbUMiv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmVvsr/btrSE9kwXKh/KC4qYp7bm3v95Q1zbUMiv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmVvsr/btrSE9kwXKh/KC4qYp7bm3v95Q1zbUMiv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmVvsr%2FbtrSE9kwXKh%2FKC4qYp7bm3v95Q1zbUMiv1%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;372&quot; height=&quot;76&quot; data-origin-width=&quot;577&quot; data-origin-height=&quot;118&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;업비트 RSI 값&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;1093&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CzTyJ/btrSF8MpgBz/1BQrA84EJvyNQOnPKwZKVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CzTyJ/btrSF8MpgBz/1BQrA84EJvyNQOnPKwZKVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CzTyJ/btrSF8MpgBz/1BQrA84EJvyNQOnPKwZKVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCzTyJ%2FbtrSF8MpgBz%2F1BQrA84EJvyNQOnPKwZKVk%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;1512&quot; height=&quot;1093&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;1093&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과를 보면 Java코드의 RSI 값과 업비트 RSI값이 소수점 4자리까지 정확하게 일치하는 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소수점 5번째 이상부터는 미세한 차이가 있지만 이것까진 생각하지 않는 것으로..ㅎ&lt;/p&gt;</description>
      <category>Backend</category>
      <category>java rsi</category>
      <category>java rsi 구하기</category>
      <category>rsi ema</category>
      <category>rsi java 코드</category>
      <category>rsi 공식</category>
      <category>업비트 RSI</category>
      <category>업비트 rsi 값 계산</category>
      <category>업비트 자동매매 rsi 계산</category>
      <category>자바 업비트 rsi</category>
      <category>지수 이동 평균</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/156</guid>
      <comments>https://herojoon-dev.tistory.com/156#entry156comment</comments>
      <pubDate>Fri, 2 Dec 2022 01:42:39 +0900</pubDate>
    </item>
    <item>
      <title>AWS에서 도메인 구입하는 방법</title>
      <link>https://herojoon-dev.tistory.com/155</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;AWS에서 도메인 구입하는 절차 &lt;span style=&quot;color: #ef5369;&quot;&gt;&quot;요약&quot;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. AWS Console 로그인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Route 53 메뉴로 이동&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Route 53 대시보드에서 도메인 등록 버튼 클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 원하는 도메인 입력하여 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 결제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;AWS에서 도메인 구입하는 절차 &lt;span style=&quot;color: #ef5369;&quot;&gt;&quot;자세한 설명&quot;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;1. AWS Console 로그인&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/console/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://aws.amazon.com/ko/console&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1666532648568&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;AWS Management Console&quot; data-og-description=&quot;AWS Support 플랜은 AWS로 성공하는 데 도움이 되는 다양한 도구, 프로그램 및 전문 지식에 대한 액세스의 조합을 제공합니다.&quot; data-og-host=&quot;aws.amazon.com&quot; data-og-source-url=&quot;https://aws.amazon.com/ko/console/&quot; data-og-url=&quot;https://aws.amazon.com/ko/console/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/gZsFh/hyQbwuOl83/UsSeukYWKKW12jZJ8OcKQk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cqJt3e/hyQhHn0I4u/sTo8z00kLrbqasLXASoYYK/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109&quot;&gt;&lt;a href=&quot;https://aws.amazon.com/ko/console/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://aws.amazon.com/ko/console/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/gZsFh/hyQbwuOl83/UsSeukYWKKW12jZJ8OcKQk/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/cqJt3e/hyQhHn0I4u/sTo8z00kLrbqasLXASoYYK/img.png?width=179&amp;amp;height=109&amp;amp;face=0_0_179_109');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AWS Management Console&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AWS Support 플랜은 AWS로 성공하는 데 도움이 되는 다양한 도구, 프로그램 및 전문 지식에 대한 액세스의 조합을 제공합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;2. Route 53 메뉴로 이동&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1551&quot; data-origin-height=&quot;616&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sVfWb/btrPgFmQCir/aUwGn0RvisHZUTznm5IkOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sVfWb/btrPgFmQCir/aUwGn0RvisHZUTznm5IkOK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sVfWb/btrPgFmQCir/aUwGn0RvisHZUTznm5IkOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsVfWb%2FbtrPgFmQCir%2FaUwGn0RvisHZUTznm5IkOK%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;1551&quot; height=&quot;616&quot; data-origin-width=&quot;1551&quot; data-origin-height=&quot;616&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;3. Route 53 대시보드에서 도메인 등록 버튼 클릭&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1854&quot; data-origin-height=&quot;1086&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GGoOQ/btrPox1CcWa/6Jq8hFwIlkT8Citt6S42lK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GGoOQ/btrPox1CcWa/6Jq8hFwIlkT8Citt6S42lK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GGoOQ/btrPox1CcWa/6Jq8hFwIlkT8Citt6S42lK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGGoOQ%2FbtrPox1CcWa%2F6Jq8hFwIlkT8Citt6S42lK%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;1854&quot; height=&quot;1086&quot; data-origin-width=&quot;1854&quot; data-origin-height=&quot;1086&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;4. 원하는 도메인 입력하여 선택&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2153&quot; data-origin-height=&quot;681&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgDbMX/btrPgWonLLN/7qLcAlk49kyrPTNWLOOPn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgDbMX/btrPgWonLLN/7qLcAlk49kyrPTNWLOOPn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgDbMX/btrPgWonLLN/7qLcAlk49kyrPTNWLOOPn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgDbMX%2FbtrPgWonLLN%2F7qLcAlk49kyrPTNWLOOPn1%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;2153&quot; height=&quot;681&quot; data-origin-width=&quot;2153&quot; data-origin-height=&quot;681&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;5. 결제&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;1361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pCpyY/btrPoysHTxG/g4eMyNu7lrQMPzxAqsNEq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pCpyY/btrPoysHTxG/g4eMyNu7lrQMPzxAqsNEq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pCpyY/btrPoysHTxG/g4eMyNu7lrQMPzxAqsNEq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpCpyY%2FbtrPoysHTxG%2Fg4eMyNu7lrQMPzxAqsNEq1%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;572&quot; height=&quot;1361&quot; data-origin-width=&quot;884&quot; data-origin-height=&quot;1361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1705&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zfCPx/btrPgWaLHWg/2cWYYNBGXwUScqCkaiGYuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zfCPx/btrPgWaLHWg/2cWYYNBGXwUScqCkaiGYuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zfCPx/btrPgWaLHWg/2cWYYNBGXwUScqCkaiGYuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzfCPx%2FbtrPgWaLHWg%2F2cWYYNBGXwUScqCkaiGYuk%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;1705&quot; height=&quot;405&quot; data-origin-width=&quot;1705&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2153&quot; data-origin-height=&quot;1131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tWVyh/btrPgMsW1fW/2jWAJby5jUjj1CWOr4tpPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tWVyh/btrPgMsW1fW/2jWAJby5jUjj1CWOr4tpPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tWVyh/btrPgMsW1fW/2jWAJby5jUjj1CWOr4tpPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtWVyh%2FbtrPgMsW1fW%2F2jWAJby5jUjj1CWOr4tpPk%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;2153&quot; height=&quot;1131&quot; data-origin-width=&quot;2153&quot; data-origin-height=&quot;1131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인 등록 해본 결과,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주문 완료 후 빠르면 1~2시간, 늦어도 반나절 혹은 24시간 안에 도메인 등록이 완료되는 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 도메인 등록 후 12시간 안에 도메인을 삭제하면 AWS 청구서에 호스팅 영역 요금이 발생하지 않는다고 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1924&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP2aDW/btrPh8aYpce/xzs5TRXFMqNFq7Rl9SJ6g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP2aDW/btrPh8aYpce/xzs5TRXFMqNFq7Rl9SJ6g1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP2aDW/btrPh8aYpce/xzs5TRXFMqNFq7Rl9SJ6g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP2aDW%2FbtrPh8aYpce%2Fxzs5TRXFMqNFq7Rl9SJ6g1%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;1924&quot; height=&quot;211&quot; data-origin-width=&quot;1924&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 링크: &lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/Route53/latest/DeveloperGuide/domain-register.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.aws.amazon.com/ko_kr/Route53/latest/DeveloperGuide/domain-register.html&lt;/a&gt;&lt;/p&gt;</description>
      <category>기타</category>
      <category>aws domain</category>
      <category>AWS Route53</category>
      <category>aws 도메인 결제</category>
      <category>aws에서 도메인 구입</category>
      <category>domain 구입</category>
      <category>도메인</category>
      <category>도메인 구입 사이트</category>
      <category>도메인 구입방법</category>
      <category>도메인 등록</category>
      <category>도메인 사이트</category>
      <author>herojoon</author>
      <guid isPermaLink="true">https://herojoon-dev.tistory.com/155</guid>
      <comments>https://herojoon-dev.tistory.com/155#entry155comment</comments>
      <pubDate>Sun, 23 Oct 2022 23:07:37 +0900</pubDate>
    </item>
  </channel>
</rss>