<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>꾸준함을 기록</title>
    <link>https://ddodu.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sat, 30 May 2026 04:45:52 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>또두</managingEditor>
    <item>
      <title>이미지 받기</title>
      <link>https://ddodu.tistory.com/23</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래 코드와 같이 @RequestPart 어노테이션을 이용해 이미지를 받아올 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;value엔 이미지를 보낼 때 사용한 키 값을 넣으면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1686054534345&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.example.demo.controller;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;

@RestController
@RequestMapping(&quot;/image&quot;)
@RequiredArgsConstructor
@Slf4j
public class ImageController {

    @PostMapping(&quot;/upload&quot;)
    public boolean getImage(@RequestPart(value = &quot;file&quot;) MultipartFile reqFile) {
        try {
            log.info(reqFile.getName());
            log.info(reqFile.getContentType());
            File file = new File(&quot;path/project/src/main/resources/static/&quot; + reqFile.getOriginalFilename() + &quot;.jpg&quot;);
            reqFile.transferTo(file);
        } catch (Exception e) {
            log.error(e.toString());
            return false;
        }
        return true;
    }
}&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;@RequestPart 어노테이션은 똑같이 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주의할 점은 이미지를 전송할 때 모두 같은 키 값으로 보내야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 받을 때의 타입을 MultipartFile을 List로 여러개를 받을 수 있어야 한다.&lt;/p&gt;
&lt;pre id=&quot;code_1686055588765&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package com.example.demo.controller;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;

@RestController
@RequestMapping(&quot;/image&quot;)
@RequiredArgsConstructor
@Slf4j
public class ImageController {

    @PostMapping(&quot;/upload&quot;)
    public boolean getImage(@RequestPart(value = &quot;file&quot;) List&amp;lt;MultipartFile&amp;gt; reqFile) {
        try {
            for (MultipartFile partFile : reqFile) {
                log.info(partFile.getName());
                log.info(partFile.getContentType());
                File file = new File(&quot;path/project/src/main/resources/static/&quot; + partFile.getOriginalFilename() + &quot;.jpg&quot;);
                partFile.transferTo(file);
            }
        } catch (Exception e) {
            log.error(e.toString());
            return false;
        }
        return true;
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Spring</category>
      <category>File</category>
      <category>IMAGE</category>
      <category>multipart</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/23</guid>
      <comments>https://ddodu.tistory.com/23#entry23comment</comments>
      <pubDate>Tue, 6 Jun 2023 21:54:15 +0900</pubDate>
    </item>
    <item>
      <title>메모리 관리 및 가상 메모리</title>
      <link>https://ddodu.tistory.com/21</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;42과제를 하며 fork를 제대로 쓸 기회가 있어 여러가지 테스트 해보는 도중 의문이 하나 생겼었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;fork이전 부모 프로세스에서 가지고 있는 값이 있는데 fork 이후 주소값을 보면 동일한 주소를 가지고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;fork하면 부모를 복사해 자식을 만들기에 여기까진 '그렇지'라고 생각했는데 그러면 자식이나 부모에서 해당 주소의 값을 바뀌면 똑같이 바뀌는 것인가? 라는 생각을 했다.&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;실제 c 코드로 테스트 해봤는데 안바뀌었다.&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/leebera33/00538b02ed07558d3996e493162a7855.js&quot;&gt;&lt;/script&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;스크린샷 2023-05-12 오전 10.23.16.png&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dzw5V/btseSa2dFJo/1shLYDOtUaeWhihBMqHbSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dzw5V/btseSa2dFJo/1shLYDOtUaeWhihBMqHbSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dzw5V/btseSa2dFJo/1shLYDOtUaeWhihBMqHbSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDzw5V%2FbtseSa2dFJo%2F1shLYDOtUaeWhihBMqHbSK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;452&quot; height=&quot;144&quot; data-filename=&quot;스크린샷 2023-05-12 오전 10.23.16.png&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;144&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: #333333; text-align: start;&quot;&gt;메모리 개념을 가볍게만 알고 있기 때문이라는 것을 깨달았다.&lt;/span&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;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리는 두가지 관점으로 해석 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래머가 프로그래밍에 사용하는 공간으로 보는 논리적 관점의 논리적 주소(가상 주소, 가상 메모리 주소)와 실제 데이터나 프로그램을 저장하는 공간으로 보는 물리적 관점의 물리적 주소이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CPU내의 메모리 관리 장치(MMU)가 논리적 주소를 물리적 주소로 매핑시켜 준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 프로세스별로 페이지 테이블을 가지고 있다. 이 페이지 테이블을 통해 매핑시킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논리적 주소는 가상 메모리에 대해서 알아야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상 메모리에 대해서는 '&lt;b&gt;메인 메모리보다 더 큰 공간을 가진 보조기억장치를 사용할 수 있게 해주는 기술&lt;/b&gt;' 정도로 알고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게만 넘어가면 문제가 CPU는 메인 메모리의 데이터를 읽어 프로그램을 돌리는데 보조기억장치에 데이터가 있으면 읽을 수 없다는 점으로 인해 보조기억장치에 있는 데이터를 CPU가 어떻게 사용하는지가 문제다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상 메모리는 &lt;b&gt;메인 메모리와 보조기억장치에 프로세스 항목을 분산 적재했다가 프로세스를 실행할 때 메인 메모리로 이동시켜 사용&lt;/b&gt;할 수 있게 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;위 얘기만 봐도 가상 메모리를 사용하면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;효율적인 메모리 관리&lt;/b&gt;가 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;예외 처리 오류 코드는 자주 필요하지 않으며 발생하지 않을 수 있음&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;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;추후에 필요한 부분이 메인 메모리에 없으면 OS가 필요한 부분을 보조기억장치에서 메인 메모리에 적재시켜 프로세스가 정상적으로 동작하도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&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;b&gt;프로세스 실행에 필요한 데이터가 보조기억장치에 있든 메인 메모리에 있든 어디에 있는지 알 필요 없이 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;가상 메모리를 통해&lt;/span&gt;&amp;nbsp;동작할 수 있게 만들 수 있다는 점&lt;/b&gt;이고 &lt;b&gt;실제 c에서 보여주는 주소값은 가상 메모리 주소&lt;/b&gt;였고 &lt;b&gt;MMU가 이를 매핑시켜 실제 물리적 주소에 접근하도록 동작하고 있었다는 것&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;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기선 관리 기법들에 대해서는 얘기하진 않았으나 이에 대해서도 확실히 알아야 더 많은 부분에서 제대로 알 수 있을 것으로 보인다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1683856171166&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;Memory Management Unit&quot; data-og-description=&quot;This definition explains the meaning of Memory Management Unit and why it matters.&quot; data-og-host=&quot;www.techopedia.com&quot; data-og-source-url=&quot;https://www.techopedia.com/definition/4768/memory-management-unit-mmu&quot; data-og-url=&quot;https://www.techopedia.com/definition/4768/memory-management-unit-mmu&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.techopedia.com/definition/4768/memory-management-unit-mmu&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.techopedia.com/definition/4768/memory-management-unit-mmu&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;Memory Management Unit&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;This definition explains the meaning of Memory Management Unit and why it matters.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.techopedia.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>CS</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/21</guid>
      <comments>https://ddodu.tistory.com/21#entry21comment</comments>
      <pubDate>Fri, 12 May 2023 10:22:34 +0900</pubDate>
    </item>
    <item>
      <title>Google Apps Script 쓸 때 같이쓰면 좋은 크롬 확장 프로그램</title>
      <link>https://ddodu.tistory.com/20</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;
&lt;p style=&quot;color: #202124;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;글 내에서 앞으로 google apps script를 gas라고 부를 것임을 알립니다.&lt;/span&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #202124;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;color: #202124;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Google Apps Script GitHub Assistant&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #202124;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a title=&quot;https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo/related?hl=ko&quot; href=&quot;https://chrome.google.com/webstore/detail/google-apps-script-github/lfjcgcmkmjjlieihflfhjopckgpelofo/related?hl=ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;다운로드 링크&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #202124;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #202124;&quot; data-ke-size=&quot;size16&quot;&gt;gas로 작성한 것을 github repository의 특정 branch를 지정해서 코드를 올릴 수 있게 해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #202124; text-align: start;&quot;&gt;단, repository가 public이어야 한다.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-05-07 오후 7.47.56.png&quot; data-origin-width=&quot;2354&quot; data-origin-height=&quot;622&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLJsa7/btsd0SCegPh/ERbQUpBG8NFfHkBc73V2S1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLJsa7/btsd0SCegPh/ERbQUpBG8NFfHkBc73V2S1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLJsa7/btsd0SCegPh/ERbQUpBG8NFfHkBc73V2S1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLJsa7%2Fbtsd0SCegPh%2FERbQUpBG8NFfHkBc73V2S1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2354&quot; height=&quot;622&quot; data-filename=&quot;스크린샷 2023-05-07 오후 7.47.56.png&quot; data-origin-width=&quot;2354&quot; data-origin-height=&quot;622&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 처음엔 github access token을 통해 로그인해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #202124; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;AppsScript Color&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a title=&quot;https://chrome.google.com/webstore/detail/appsscript-color/ciggahcpieccaejjdpkllokejakhkome&quot; href=&quot;https://chrome.google.com/webstore/detail/appsscript-color/ciggahcpieccaejjdpkllokejakhkome&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;다운로드 링크&lt;/a&gt;&lt;/p&gt;
&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;스크린샷 2023-05-07 오후 8.40.08.png&quot; data-origin-width=&quot;2256&quot; data-origin-height=&quot;790&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pJKev/btsdZ4ivhFh/xRq4r05r17YItILd3W0yM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pJKev/btsdZ4ivhFh/xRq4r05r17YItILd3W0yM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pJKev/btsdZ4ivhFh/xRq4r05r17YItILd3W0yM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpJKev%2FbtsdZ4ivhFh%2FxRq4r05r17YItILd3W0yM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2256&quot; height=&quot;790&quot; data-filename=&quot;스크린샷 2023-05-07 오후 8.40.08.png&quot; data-origin-width=&quot;2256&quot; data-origin-height=&quot;790&quot;/&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>etc</category>
      <category>chrome</category>
      <category>extension</category>
      <category>Google Apps Script</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/20</guid>
      <comments>https://ddodu.tistory.com/20#entry20comment</comments>
      <pubDate>Sun, 7 May 2023 20:41:59 +0900</pubDate>
    </item>
    <item>
      <title>write함수로 stdout(1)이 아닌 fd 값으로 출력 했을 때의 pipe와 redirection</title>
      <link>https://ddodu.tistory.com/16</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;42seoul 과제를 하던 중 오픈소스인 테스터기를 사용해 결과를 출력해보던 중 &lt;b&gt;어떻게 봐도&amp;nbsp;맞는 답인데 틀리게 나와서&lt;/b&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;테스터기에선 내 출력 결과를 파이프를 통해 grep에 넣어 맞는 결과를 선택해 비교하여 결과를 출력해주는 방식이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 테스터기 코드도 문제가 없어 뭐가 다를까 생각했는데 내 코드에서 시스템 호출 시의 에러를 출력하는 부분이 일반적인 방법인 write함수에 stdout의 fd 값인 1을 넣어 출력하는 방식이 아니었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 방식은 시스템 호출이 실패함에 따라 자동 설정된 errno에 따라 에러를 출력해주는 perror를 이용해 출력하는 방식이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 경우 fd가 stderr인 2로 출력이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것이 틀렸다고 나오는 원인이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 방식은 stderr이므로 stdout의 결과를 받는 파이프(|)가 해당 결과를 받지 못해 grep으로 결과가 넘어가지 않아 발생한 문제였다.&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;write함수의 첫번째 인자에 들어가는 fd 값은 일반적으로 stdout인 1로 넣어 호출한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 그 외의 값을 넣게 되면 어떻게 되는지 테스트 해봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1681191603540&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;unistd.h&amp;gt;
#include &amp;lt;stdlib.h&amp;gt;

int main(int argc, char **argv)
{
	int val;

	if (argc != 2)
		return 0;

	val = atoi(argv[1]);
	if (val == 3)
	{
		write(1, &quot;print stdout\n&quot;, 13);
		write(2, &quot;print strerr\n&quot;, 13);
	}
	else
		write(val, &quot;print something\n&quot;, 16);

	return 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;위 코드를 컴파일 및 빌드해서 실행해서 아래와 같이 입력해보면 같은 결과가 출력된다.&lt;/p&gt;
&lt;pre id=&quot;code_1681193447978&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;./a.out 0	// print something

./a.out 1	// print something

./a.out 2	// print something

./a.out 3	// print stdout
		// print stderr&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stdin(0), stdout(1), stderr(2) 모두 잘 출력되며 예외로 넣어둔 3의 경우 stdout과 stderr인 문장을 잘 출력하는 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이번엔 아래의 명령들을 실행해보자&lt;/p&gt;
&lt;pre id=&quot;code_1681193614481&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;./a.out 0 | wc -l	// 0

./a.out 1 | wc -l	// 1

./a.out 2 | wc -l	// 0

./a.out 3 | wc -l	// 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;wc는 입력된 결과의 줄, 단어, 문자 수를 세주는 명령이고 -l 옵션으로 줄 수만 출력할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이프로 해당 결과를 출력하면 위와 같이 나오는 데 1이 나온 것의 공통점은 fd가 stdout(1)인 출력 결과라는 점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파이프는 왼쪽 프로그램(프로세스)의 stdout으로 출력되는 결과를 받아 오른쪽 프로그램(프로세스)에 stdin으로 식으로 프로세스끼리 통신을 할 수 있게 해주는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리다이렉션도 해봤다.&lt;/p&gt;
&lt;pre id=&quot;code_1681194252651&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;./a.out 0 &amp;gt; 0.txt	// &quot;&quot;
./a.out 1 &amp;gt; 1.txt	// &quot;print something&quot;
./a.out 2 &amp;gt; 2.txt	// &quot;&quot;
./a.out 3 &amp;gt; 3.txt	// &quot;print stdout&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 파일에 저장된 내용은 위와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;stdout인 것만 저장된 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;얘는 특이하게도 아래처럼 사용하면 다른 fd인 것도 처리가 가능하다.&lt;/p&gt;
&lt;pre id=&quot;code_1681194470078&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;./a.out 0 0&amp;gt; 0.txt	// &quot;print something&quot;
./a.out 1 1&amp;gt; 1.txt	// &quot;print something&quot;
./a.out 2 2&amp;gt; 2.txt	// &quot;print something&quot;
./a.out 3 2&amp;gt; 3.txt	// &quot;print stderr&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;fd가 stdout이 아니어도 모두 정상 처리 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위를 통해 output redirection엔 다른 fd의 결과도 처리할 수 있다는 것을 알 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;fd가 4나 5를 넣어서 해봐도 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단지 출력만 안될 뿐이다.&lt;/p&gt;</description>
      <category>C</category>
      <category>Pipe</category>
      <category>Redirection</category>
      <category>stderr</category>
      <category>stdout</category>
      <category>Write</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/16</guid>
      <comments>https://ddodu.tistory.com/16#entry16comment</comments>
      <pubDate>Tue, 11 Apr 2023 15:32:31 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] ACM 인증서 발급 (Route 53, 가비아)</title>
      <link>https://ddodu.tistory.com/14</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;ACM 인증서 발급 이유&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ELB, CloudFront를 사용해보려는데 해당 서비스에 HTTPS를 적용하려면 AWS에서 제공하는 ACM 서비스를 통해 SSL 인증서를 발급받아야 가능하다고 해서 발급받기로 했다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;발급 방법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러울 것 하나 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 ACM의 인증서 요청 페이지로 간다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.00.50.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NAL1D/btr5YUszXNh/frBbqU0gwiBE5OYDsY23t0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NAL1D/btr5YUszXNh/frBbqU0gwiBE5OYDsY23t0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NAL1D/btr5YUszXNh/frBbqU0gwiBE5OYDsY23t0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNAL1D%2Fbtr5YUszXNh%2FfrBbqU0gwiBE5OYDsY23t0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;414&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.00.50.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가하려는 도메인을 적고 검증 방법은 DNS 검증 그대로 두고 요청한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.02.22.png&quot; data-origin-width=&quot;3584&quot; data-origin-height=&quot;2156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XHaht/btr5Qohd30Y/NsfeP9j22rTkrHWZEX0Tj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XHaht/btr5Qohd30Y/NsfeP9j22rTkrHWZEX0Tj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XHaht/btr5Qohd30Y/NsfeP9j22rTkrHWZEX0Tj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXHaht%2Fbtr5Qohd30Y%2FNsfeP9j22rTkrHWZEX0Tj1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;361&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.02.22.png&quot; data-origin-width=&quot;3584&quot; data-origin-height=&quot;2156&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.46.38.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbMVCn/btr5PbvUsio/Kv7FKv7rX1vr1Ln8Xw7wkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbMVCn/btr5PbvUsio/Kv7FKv7rX1vr1Ln8Xw7wkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbMVCn/btr5PbvUsio/Kv7FKv7rX1vr1Ln8Xw7wkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbMVCn%2Fbtr5PbvUsio%2FKv7FKv7rX1vr1Ln8Xw7wkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;414&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.46.38.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인증서 ID를 누르면 아래와 같은 페이지가 나온다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.48.23.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DZYCn/btr5OySsMCv/EQwA8piedvweNwRZ2qr0Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DZYCn/btr5OySsMCv/EQwA8piedvweNwRZ2qr0Gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DZYCn/btr5OySsMCv/EQwA8piedvweNwRZ2qr0Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDZYCn%2Fbtr5OySsMCv%2FEQwA8piedvweNwRZ2qr0Gk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;414&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.48.23.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후엔 도메인 구입처가 Route 53이냐 가비아냐에 따라 다르니 필요한 것을 보고 맞게 설정하자.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;* AWS Route 53 서비스를 통해 도메인 구매&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Route 53에서 레코드 생성을 누르면 아래와 같이 뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.49.49.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qWznR/btr5Pa4QP1n/cFvKszJXg2QOg6DfRtd9F1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qWznR/btr5Pa4QP1n/cFvKszJXg2QOg6DfRtd9F1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qWznR/btr5Pa4QP1n/cFvKszJXg2QOg6DfRtd9F1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqWznR%2Fbtr5Pa4QP1n%2FcFvKszJXg2QOg6DfRtd9F1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;414&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.49.49.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&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;내 경우엔 생성하자마자 발급이 완료되서 상태에 발급됨이 뜬 것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.51.02.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;1970&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAysCR/btr5Tnolpet/jQFua6CJyWsJPzB6Y40rX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAysCR/btr5Tnolpet/jQFua6CJyWsJPzB6Y40rX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAysCR/btr5Tnolpet/jQFua6CJyWsJPzB6Y40rX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAysCR%2Fbtr5Tnolpet%2FjQFua6CJyWsJPzB6Y40rX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;405&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.51.02.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;1970&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.51.07.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;1970&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nIWf0/btr5R0z9Gw0/8vUooPsgbgYYr64QG8X6tk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nIWf0/btr5R0z9Gw0/8vUooPsgbgYYr64QG8X6tk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nIWf0/btr5R0z9Gw0/8vUooPsgbgYYr64QG8X6tk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnIWf0%2Fbtr5R0z9Gw0%2F8vUooPsgbgYYr64QG8X6tk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;405&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.51.07.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;1970&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&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;Route 53에서 레코드 생성 버튼을 누르면 Route 53에서 등록된 도메인이 아니여서 필터에 의해 아무것도 안뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.27.17.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dR8uv7/btr5TpsU28k/ZihzPvJzSUb5qu17tE36M1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dR8uv7/btr5TpsU28k/ZihzPvJzSUb5qu17tE36M1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dR8uv7/btr5TpsU28k/ZihzPvJzSUb5qu17tE36M1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdR8uv7%2Fbtr5TpsU28k%2FZihzPvJzSUb5qu17tE36M1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;414&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.27.17.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&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;DNS 레코드 설정에 있는 설정 버튼을 누른다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.28.21.png&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;632&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NiwPT/btr5RSa2xQJ/cW3WvCIOyfqXkktDs0KWuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NiwPT/btr5RSa2xQJ/cW3WvCIOyfqXkktDs0KWuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NiwPT/btr5RSa2xQJ/cW3WvCIOyfqXkktDs0KWuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNiwPT%2Fbtr5RSa2xQJ%2FcW3WvCIOyfqXkktDs0KWuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;340&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.28.21.png&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;632&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;맨 오른쪽에 설정 버튼을 누르자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.31.31.png&quot; data-origin-width=&quot;2150&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qat4Q/btr5Tp0KIU8/a2q5vif9M3pp2p2kUEJnT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qat4Q/btr5Tp0KIU8/a2q5vif9M3pp2p2kUEJnT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qat4Q/btr5Tp0KIU8/a2q5vif9M3pp2p2kUEJnT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqat4Q%2Fbtr5Tp0KIU8%2Fa2q5vif9M3pp2p2kUEJnT0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2150&quot; height=&quot;76&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.31.31.png&quot; data-origin-width=&quot;2150&quot; data-origin-height=&quot;76&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.31.51.png&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;108&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BQaMo/btr5YVruT8R/q6wfId4WbjkoxbIB8sKCM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BQaMo/btr5YVruT8R/q6wfId4WbjkoxbIB8sKCM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BQaMo/btr5YVruT8R/q6wfId4WbjkoxbIB8sKCM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBQaMo%2Fbtr5YVruT8R%2Fq6wfId4WbjkoxbIB8sKCM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;47&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.31.51.png&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;108&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;드랍 다운은 CNAME으로 설정한다.&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;도메인 부분에 CNAME이름과 CNAME 값이 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;호스트엔 CNAME 이름에서 자신의 도메인을 뺀 값을 넣어주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;_84ea701980f98fa920b287d10e1dd093. example.com. -&amp;gt; _84ea701980f98fa920b287d10e1dd093&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;스크린샷 2023-03-25 오후 2.32.12.png&quot; data-origin-width=&quot;1712&quot; data-origin-height=&quot;78&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8jCKf/btr5YTNZetF/7zvMOlRvrp1TGwmCQKnsR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8jCKf/btr5YTNZetF/7zvMOlRvrp1TGwmCQKnsR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8jCKf/btr5YTNZetF/7zvMOlRvrp1TGwmCQKnsR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8jCKf%2Fbtr5YTNZetF%2F7zvMOlRvrp1TGwmCQKnsR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1712&quot; height=&quot;78&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.32.12.png&quot; data-origin-width=&quot;1712&quot; data-origin-height=&quot;78&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;기다리고나면 발급 되는 것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.41.55.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cn8im1/btr5TqeheWj/6TZY77YtKq9OAAHiQuXksK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cn8im1/btr5TqeheWj/6TZY77YtKq9OAAHiQuXksK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cn8im1/btr5TqeheWj/6TZY77YtKq9OAAHiQuXksK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcn8im1%2Fbtr5TqeheWj%2F6TZY77YtKq9OAAHiQuXksK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;414&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.41.55.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.43.57.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGj2Oh/btr5ZkrgqKE/xWIKXW0z4NG5HkEAk19kLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGj2Oh/btr5ZkrgqKE/xWIKXW0z4NG5HkEAk19kLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGj2Oh/btr5ZkrgqKE/xWIKXW0z4NG5HkEAk19kLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGj2Oh%2Fbtr5ZkrgqKE%2FxWIKXW0z4NG5HkEAk19kLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;414&quot; data-filename=&quot;스크린샷 2023-03-25 오후 2.43.57.png&quot; data-origin-width=&quot;2916&quot; data-origin-height=&quot;2010&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;p.s&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;cafe24의 경우 CNAME 설정에 레코드 부분만 건드릴 수 있어서 방법을 모르겠다.&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1679720126218&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;DNS validation - AWS Certificate Manager&quot; data-og-description=&quot;This procedure assumes that you have already created at least one certificate and that you are working in the AWS region where you created it. If you try to open the console and see the first-use screen instead, or you succeed in opening the console and do&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/acm/latest/userguide/dns-validation.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;DNS validation - AWS Certificate Manager&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;This procedure assumes that you have already created at least one certificate and that you are working in the AWS region where you created it. If you try to open the console and see the first-use screen instead, or you succeed in opening the console and do&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.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;</description>
      <category>Server</category>
      <category>ACM</category>
      <category>AWS</category>
      <category>domain</category>
      <category>garbia</category>
      <category>SSL</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/14</guid>
      <comments>https://ddodu.tistory.com/14#entry14comment</comments>
      <pubDate>Sat, 25 Mar 2023 14:53:49 +0900</pubDate>
    </item>
    <item>
      <title>[SSL][Certbot] Invalid response from http://my_domain/.well-known/acme-challenge/value: 404</title>
      <link>https://ddodu.tistory.com/13</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제점&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;webroot 방식&lt;/b&gt;으로 발급받으려고 하는데 let's encrypt 서버가 challenge가 저장되어 있는 .well-known이라는 uri로 접근하지 못해 발생&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해결방법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 서버(nginx) 설정에서 해당 위치로 접근할 수 있게 설정&lt;/p&gt;
&lt;pre id=&quot;code_1679640044916&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;server {
    listen       80;
    listen  [::]:80;
    server_name  my_domain;

	...

    location /.well-known/acme-challenge {
    	allow all;
        # root 위치를 발급 시에 입력한 web root path로 지정
        root /var/www/certbot;
    }
    
    ...
    
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;이 문제가 발생한 이유&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객관적으로는 웹 서버에 대한 이해가 적어서 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로는 문제에 대해선 바로 이해했으나 웹 서버를 너무 오랜만에 만져 무엇을 해야 하는지 다 까먹어 버벅였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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>Server</category>
      <category>certbot</category>
      <category>nginx</category>
      <category>SSL</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/13</guid>
      <comments>https://ddodu.tistory.com/13#entry13comment</comments>
      <pubDate>Fri, 24 Mar 2023 15:50:10 +0900</pubDate>
    </item>
    <item>
      <title>[SSL][Certbot] Fetching http://my_domain/.well-known/acme-challenge/value LbJM: Connection refused Connection refused</title>
      <link>https://ddodu.tistory.com/12</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문제점&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;webroot 방식&lt;/b&gt;으로 발급받으려고 하는데 웹 서버가 동작하고 있지 않아 let's encrypt 서버에서 ssl을 발급받기 위해 certbot이 동작하고 있는 서버로 접속하지 못해 발생&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;해결 방법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 에러로 검색하니 &lt;a title=&quot;https://community.letsencrypt.org/t/the-certificate-authority-failed-to-download-the-temporary-challenge-files-created-by-certbot-connection-refused/159426&quot; href=&quot;https://community.letsencrypt.org/t/the-certificate-authority-failed-to-download-the-temporary-challenge-files-created-by-certbot-connection-refused/159426&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt; 글이 나왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP 사이트가 필요하다는 답변에 당연한 것 아닌가? 했는데 생각해보니 웹서버를 동작시키지 않고 있었다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 서버를 동작시켜 HTTP가 활성화 된 사이트를 열어두면 정상적으로 해결된다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;이 문제가 발생하게 된 이유&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬에서만 nginx를 동작시켜 두고 서버에서도 동작하고 있을 것이란 이상한 생각으로 인해 문제가 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 계기로 certbot에 대해 더 공부해보니 이에 대한 이해가 높았으면 바로 생각했을 부분이었다.&lt;/p&gt;</description>
      <category>Server</category>
      <category>certbot</category>
      <category>SSL</category>
      <category>웹서버</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/12</guid>
      <comments>https://ddodu.tistory.com/12#entry12comment</comments>
      <pubDate>Fri, 24 Mar 2023 15:18:19 +0900</pubDate>
    </item>
    <item>
      <title>xvda?</title>
      <link>https://ddodu.tistory.com/11</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;aws ec2에서 lsblk를 치자 xvda라는게 보였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VirtualBox로 작동시킨 debian리눅스에서 lsblk를 쳤을 때 나오는 sd(SCSI Disk)a랑은 달라서 뭔지 알아봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 2가지로 알아보았다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;xvd란&lt;/li&gt;
&lt;li&gt;aws에서의 취급&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;xvd란&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Xen Virtual Disk의 약자&lt;/b&gt;로 Xen 하이퍼바이저를 통해 Xen Server에서 제공하는 가상 디스크이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sd가 SCSI 인터페이스로 연결되는 disk라는 것을 뜻하는 것처럼 어떠한 disk라는 의미로 받아들이면 된다고 본다.&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;aws에서의 취급&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;aws 공식 문서인&amp;nbsp;&lt;a title=&quot;링크&quot; href=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html?icmpid=docs_ec2_console&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt; 글에서 확인할 수 있듯이 사용 가능한 디바이스 이름이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;xvda의 경우 루트 볼륨에 사용되는 이름으로 예약되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 ec2 인스턴스를 생성할 때 스토리지 구성 부분에서 어드밴스드 라고 쓰여있는 것을 눌러  상세 설정에서 보면 아래와 같이 디바이스 이름이 설정되어 있는 것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 2.34.44.png&quot; data-origin-width=&quot;1588&quot; data-origin-height=&quot;608&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brg2SE/btr5Ho9VVPu/ouh0bevZAOGNtubBLZry1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brg2SE/btr5Ho9VVPu/ouh0bevZAOGNtubBLZry1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brg2SE/btr5Ho9VVPu/ouh0bevZAOGNtubBLZry1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbrg2SE%2Fbtr5Ho9VVPu%2Fouh0bevZAOGNtubBLZry1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;440&quot; height=&quot;168&quot; data-filename=&quot;스크린샷 2023-03-24 오후 2.34.44.png&quot; data-origin-width=&quot;1588&quot; data-origin-height=&quot;608&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-24 오후 2.00.19.png&quot; data-origin-width=&quot;964&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dRyMFi/btr5N8drwg1/wpWs3yLWUFfIrwJBXGK22K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dRyMFi/btr5N8drwg1/wpWs3yLWUFfIrwJBXGK22K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dRyMFi/btr5N8drwg1/wpWs3yLWUFfIrwJBXGK22K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdRyMFi%2Fbtr5N8drwg1%2FwpWs3yLWUFfIrwJBXGK22K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;440&quot; height=&quot;164&quot; data-filename=&quot;스크린샷 2023-03-24 오후 2.00.19.png&quot; data-origin-width=&quot;964&quot; data-origin-height=&quot;360&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;p data-ke-size=&quot;size16&quot;&gt;참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1679635886253&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;Full Form of xvda  | FullForms&quot; data-og-description=&quot;xvda Definition : Xen Virtual Disk A (aka xvd*) Category : Computing &amp;raquo; Data Storage Country/Region : Worldwide Popularity : What does xvda mean? xvd means Xen Virtual Disk on a Xen Server. /dev/xvd is the standard name for Xen virtual disk, by analogy wit&quot; data-og-host=&quot;fullforms.com&quot; data-og-source-url=&quot;https://fullforms.com/xvda&quot; data-og-url=&quot;https://fullforms.com/xvda&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/VzgSX/hyR11sBN6Z/CIeEteW691u1MKdR16FYb0/img.png?width=600&amp;amp;height=600&amp;amp;face=0_0_600_600&quot;&gt;&lt;a href=&quot;https://fullforms.com/xvda&quot; data-source-url=&quot;https://fullforms.com/xvda&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/VzgSX/hyR11sBN6Z/CIeEteW691u1MKdR16FYb0/img.png?width=600&amp;amp;height=600&amp;amp;face=0_0_600_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;Full Form of xvda | FullForms&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;xvda Definition : Xen Virtual Disk A (aka xvd*) Category : Computing &amp;raquo; Data Storage Country/Region : Worldwide Popularity : What does xvda mean? xvd means Xen Virtual Disk on a Xen Server. /dev/xvd is the standard name for Xen virtual disk, by analogy wit&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;fullforms.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1679635888710&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;What is the &amp;quot;/dev/xvda1&amp;quot; device?&quot; data-og-description=&quot;When I type mount on the root of my Ubuntu system I get the output /dev/xvdal on / type ext4 (rw,noatime) I want to know what is the meaning of /dev/xvdal in this?&quot; data-og-host=&quot;askubuntu.com&quot; data-og-source-url=&quot;https://askubuntu.com/questions/166083/what-is-the-dev-xvda1-device&quot; data-og-url=&quot;https://askubuntu.com/questions/166083/what-is-the-dev-xvda1-device&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bQp6J8/hyR2JjyLsH/uZo6528nF0VDR7ubVJqnq0/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316&quot;&gt;&lt;a href=&quot;https://askubuntu.com/questions/166083/what-is-the-dev-xvda1-device&quot; data-source-url=&quot;https://askubuntu.com/questions/166083/what-is-the-dev-xvda1-device&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bQp6J8/hyR2JjyLsH/uZo6528nF0VDR7ubVJqnq0/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&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;What is the &quot;/dev/xvda1&quot; device?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;When I type mount on the root of my Ubuntu system I get the output /dev/xvdal on / type ext4 (rw,noatime) I want to know what is the meaning of /dev/xvdal in this?&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;askubuntu.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1679635877315&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;Device names on Linux instances - Amazon Elastic Compute Cloud&quot; data-og-description=&quot;Device names on Linux instances When you attach a volume to your instance, you include a device name for the volume. This device name is used by Amazon EC2. The block device driver for the instance assigns the actual volume name when mounting the volume, a&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html?icmpid=docs_ec2_console&quot; data-og-url=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html?icmpid=docs_ec2_console&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html?icmpid=docs_ec2_console&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html?icmpid=docs_ec2_console&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;Device names on Linux instances - Amazon Elastic Compute Cloud&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Device names on Linux instances When you attach a volume to your instance, you include a device name for the volume. This device name is used by Amazon EC2. The block device driver for the instance assigns the actual volume name when mounting the volume, a&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Server</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/11</guid>
      <comments>https://ddodu.tistory.com/11#entry11comment</comments>
      <pubDate>Fri, 24 Mar 2023 14:41:36 +0900</pubDate>
    </item>
    <item>
      <title>Born2beroot 과제로 인해 알게된 것</title>
      <link>https://ddodu.tistory.com/6</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;이 글은 실질적으로 내가 더 정확히 알게 된 것을 기록하기 위한 것!&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SSH 프로토콜을 통해 클라이언트에서 서버로 접속할 때 인증 방식은 비밀번호 인증과 키 기반 인증 2가지가 있음.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* SSH 프로토콜을 통해 GitHub 저장소와 AWS EC2에 접속하는 방식은 비대칭 키 방식을 사용하며 키 기반 인증을 통해 비밀번호 없이 접속할 수 있도록 한 방식이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;GitHub는 클라이언트에서 생성한 공개 키를 GitHub 서버에 등록&lt;/li&gt;
&lt;li&gt;AWS EC2는 서버에서 생성한 개인 키를 사용자에게 제공&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공통적으로 클라이언트가 개인 키를 가지고 있기 때문에 키 기반 인증이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키 기반 인증 방식은 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;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. 일치하면 SSH 세션 연결 성공&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;호스트 OS 위에서 동작하는 하이퍼바이저 2유형과 달리 1유형은 베어메탈 위에서 동작하고 전가상화와 반가상화로 나뉨&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;* AWS EC2에서 내가 이용 중인 클라우드 서버는 하이퍼바이저 1유형인 베어메탈 서버로 동작되며 전가상화이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-03-03 오전 12.34.13.png&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xMtTQ/btr1IK9BJfQ/7hQAY4XKrEpk9VEtviWxb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xMtTQ/btr1IK9BJfQ/7hQAY4XKrEpk9VEtviWxb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xMtTQ/btr1IK9BJfQ/7hQAY4XKrEpk9VEtviWxb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxMtTQ%2Fbtr1IK9BJfQ%2F7hQAY4XKrEpk9VEtviWxb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;440&quot; height=&quot;119&quot; data-filename=&quot;스크린샷 2023-03-03 오전 12.34.13.png&quot; data-origin-width=&quot;726&quot; data-origin-height=&quot;197&quot;/&gt;&lt;/span&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;위 사진을 보면 Hardware Vendor에 나와있는 것은 하이퍼바이저 중 하나인 Xen을 의미하는 것&lt;/li&gt;
&lt;li&gt;Hardware Model의 경우 HVM domU는 AWS 서버에 올리는 OS의 이미지가 전가상화(HVM)와 반가상화(PV) 중에 어떤 유형의 동작방식인 커널을 사용하고 있는 지를 알려주는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고로 AWS에서 예전엔 반가상화인 PV를 쓸 것을 권장했지만 현재는 전가상화인 HVM을 쓸 것을 권장하고 있다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HVM 가상화 기능이 향상되기도 했고, HVM AMI용 PV 드라이버도 제공되어 굳이 PV를 쓸 필요가 없다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 2023-03-03 0시 54분 기준 EC2 인스턴스를 시작하기 위해 AMI를 고를 때 보면 PV는 검색해야 겨우 48개가 나온다 (해당 페이지에서 우선적으로 보여주는 quickstart ami엔 있지도 않음)&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1677772959591&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;Linux AMI 가상화 유형 - Amazon Elastic Compute Cloud&quot; data-og-description=&quot;Linux AMI 가상화 유형 Linux Amazon Machine Image는 PV(반가상화) 또는 HVM(하드웨어 가상 머신)의 두 가지 유형의 가상화를 사용합니다. PV AMI와 HVM AMI의 주요 차이점은 부팅 방법과 더 나은 성능을 위해 특&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/virtualization_types.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/virtualization_types.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/virtualization_types.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/virtualization_types.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;Linux AMI 가상화 유형 - Amazon Elastic Compute Cloud&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Linux AMI 가상화 유형 Linux Amazon Machine Image는 PV(반가상화) 또는 HVM(하드웨어 가상 머신)의 두 가지 유형의 가상화를 사용합니다. PV AMI와 HVM AMI의 주요 차이점은 부팅 방법과 더 나은 성능을 위해 특&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1677774275636&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;Amazon EC2 key pairs and Linux instances - Amazon Elastic Compute Cloud&quot; data-og-description=&quot;Amazon EC2 key pairs and Linux instances A key pair, consisting of a public key and a private key, is a set of security credentials that you use to prove your identity when connecting to an Amazon EC2 instance. Amazon EC2 stores the public key on your inst&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.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;Amazon EC2 key pairs and Linux instances - Amazon Elastic Compute Cloud&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Amazon EC2 key pairs and Linux instances A key pair, consisting of a public key and a private key, is a set of security credentials that you use to prove your identity when connecting to an Amazon EC2 instance. Amazon EC2 stores the public key on your inst&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.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;</description>
      <category>42Seoul</category>
      <category>42seoul</category>
      <category>Ami</category>
      <category>AWS</category>
      <category>EC2</category>
      <category>github</category>
      <category>Linux</category>
      <category>ssh</category>
      <category>virtualization</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/6</guid>
      <comments>https://ddodu.tistory.com/6#entry6comment</comments>
      <pubDate>Fri, 3 Mar 2023 01:21:39 +0900</pubDate>
    </item>
    <item>
      <title>[vscode][AWS EC2] remote ssh cpu 사용률 100% 문제</title>
      <link>https://ddodu.tistory.com/4</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;AWS EC2 서버에 있는 문서를 변경하려는데 vim이나 nano로 하기 싫어서 vscode의 remote-ssh를 이용해 연결해서 사용했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용하다가 다른 걸 처리하고 있던 중에 갑자기 연결이 끊겼는데 이 때는 신경쓰지 않고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 다른걸 처리하고나서 터미널로도 열어둔 ssh 연결도 끊긴 것을 보고 설마하는 생각에 EC2 서버 상태를 봤다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-02-12 오후 11.58.24.png&quot; data-origin-width=&quot;2301&quot; data-origin-height=&quot;1091&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0osaG/btrY5kygGHY/JSbSwlQdlkATOkHYlaVMIK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0osaG/btrY5kygGHY/JSbSwlQdlkATOkHYlaVMIK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0osaG/btrY5kygGHY/JSbSwlQdlkATOkHYlaVMIK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0osaG%2FbtrY5kygGHY%2FJSbSwlQdlkATOkHYlaVMIK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;814&quot; height=&quot;386&quot; data-filename=&quot;스크린샷 2023-02-12 오후 11.58.24.png&quot; data-origin-width=&quot;2301&quot; data-origin-height=&quot;1091&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;처음엔 이걸보고 '내가 뭘 했다고?' 하는 생각이 들었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;곧 바로 vscode로 ssh 열어놓은 것 말고는 이전과 다를게 없었기에 이것을 의심하고 알아보기 시작했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-02-13 오전 12.36.12.png&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;781&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bpIVCT/btrYTN3bn5V/UFYm0cOxEICHCJZwKCPm2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bpIVCT/btrYTN3bn5V/UFYm0cOxEICHCJZwKCPm2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bpIVCT/btrYTN3bn5V/UFYm0cOxEICHCJZwKCPm2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpIVCT%2FbtrYTN3bn5V%2FUFYm0cOxEICHCJZwKCPm2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;676&quot; height=&quot;464&quot; data-filename=&quot;스크린샷 2023-02-13 오전 12.36.12.png&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;781&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시나 다시 vscode로 연결해보니 순식간에 CPU 사용률이 90%대로 치솟았다.&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;스크린샷 2023-02-13 오전 12.43.18.png&quot; data-origin-width=&quot;2450&quot; data-origin-height=&quot;431&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n7CJM/btrY2oubnnk/3jMu0NzGTClxvCw8VKsSYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n7CJM/btrY2oubnnk/3jMu0NzGTClxvCw8VKsSYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n7CJM/btrY2oubnnk/3jMu0NzGTClxvCw8VKsSYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn7CJM%2FbtrY2oubnnk%2F3jMu0NzGTClxvCw8VKsSYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2450&quot; height=&quot;431&quot; data-filename=&quot;스크린샷 2023-02-13 오전 12.43.18.png&quot; data-origin-width=&quot;2450&quot; data-origin-height=&quot;431&quot;/&gt;&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;스크린샷 2023-02-13 오전 12.46.28.png&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;598&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqfbPT/btrYVgwWxvB/bgVzRQt992VDGXDxJ9pB4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqfbPT/btrYVgwWxvB/bgVzRQt992VDGXDxJ9pB4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqfbPT/btrYVgwWxvB/bgVzRQt992VDGXDxJ9pB4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqfbPT%2FbtrYVgwWxvB%2FbgVzRQt992VDGXDxJ9pB4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;365&quot; height=&quot;195&quot; data-filename=&quot;스크린샷 2023-02-13 오전 12.46.28.png&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;598&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이로써 vscode가 문제라는 것이 확실해졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검색해보니 역시나 이미 알려진 문제였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git repository의 issue에도 해당 문제들이 언급되어 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;깔아둔 extension중 일부가 문제를 일으키는 것이라 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;issue를 읽어보던 중 해결했다는 내용을 보고 적용해봤다.&lt;/p&gt;
&lt;figure id=&quot;og_1676217857800&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;Remote VSCode over SSH crashes EC2 instance &amp;middot; Issue #2692 &amp;middot; microsoft/vscode-remote-release&quot; data-og-description=&quot;Issue Type: Bug I've been attempting to use the new remote VSCode feature to work with a project stored on an AWS EC2 instance. Each time I use it, it works fine for a few hours. Eventually, th...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/microsoft/vscode-remote-release/issues/2692#issuecomment-1172915688&quot; data-og-url=&quot;https://github.com/microsoft/vscode-remote-release/issues/2692&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/rJXiT/hyRBPLiosJ/ADTIEqw3xJjL9t2zkJA9R0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/vscode-remote-release/issues/2692#issuecomment-1172915688&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/microsoft/vscode-remote-release/issues/2692#issuecomment-1172915688&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/rJXiT/hyRBPLiosJ/ADTIEqw3xJjL9t2zkJA9R0/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;Remote VSCode over SSH crashes EC2 instance &amp;middot; Issue #2692 &amp;middot; microsoft/vscode-remote-release&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Issue Type: Bug I've been attempting to use the new remote VSCode feature to work with a project stored on an AWS EC2 instance. Each time I use it, it works fine for a few hours. Eventually, th...&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;해당 내용을 보면 typescript의 무언가를 바꾸는데 나도 typescript를 쓰고 있었기 때문에 '이거다' 라고 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;해결 방법&lt;/b&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;extension 실행 문제&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대부분 extension이 실행되며 발생하는 문제라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;issue에서 말하는 해결 방법은 CPU 사용률을 높이는 extension을 원격이 아닌 로컬에서 실행시키도록 하는 방법이라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;extension 검색창에서 '@builtin' 으로 검색하여 나오는 extension들 중 의심가는 것을 오른쪽 클릭하여 Copy Extension ID를 누른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;복사해두고 vscode의 settings.json에 특정 내용을 입력해야하므로 먼저 해당 파일을 열어야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;command + shift + p를 눌러 나오는 검색 창에 아래와 같이 settings를 입력하여 나오는 Preferences: Open User Settings (JSON) 을 눌러 settings.json을 열면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-02-13 오전 1.07.38.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPYU2h/btrYV9YHMJQ/8bam6iqKZBl7EkiYq5VLJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPYU2h/btrYV9YHMJQ/8bam6iqKZBl7EkiYq5VLJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPYU2h/btrYV9YHMJQ/8bam6iqKZBl7EkiYq5VLJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPYU2h%2FbtrYV9YHMJQ%2F8bam6iqKZBl7EkiYq5VLJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;476&quot; height=&quot;105&quot; data-filename=&quot;스크린샷 2023-02-13 오전 1.07.38.png&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 경우엔 id가 vscode.typescript-language-features인 extension이 문제였으므로 아래와 같이 입력했다.&lt;/p&gt;
&lt;pre id=&quot;code_1676217987560&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &quot;remote.extensionKind&quot;: {
    &quot;vscode.typescript-language-features&quot;: &quot;ui&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;입력한 후 vscode로 ssh 연결을 해보니 연결을 시작하는 시점에만 아래와 같이 사용률이 올라갔다가 바로 내려가는 것을 확인했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-02-13 오전 1.23.54.png&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;776&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7HkcE/btrYSNCvIVu/E6K35VgfoDRyxcLTgnAsmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7HkcE/btrYSNCvIVu/E6K35VgfoDRyxcLTgnAsmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7HkcE/btrYSNCvIVu/E6K35VgfoDRyxcLTgnAsmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7HkcE%2FbtrYSNCvIVu%2FE6K35VgfoDRyxcLTgnAsmK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;347&quot; data-filename=&quot;스크린샷 2023-02-13 오전 1.23.54.png&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;776&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-02-13 오전 1.24.02.png&quot; data-origin-width=&quot;1116&quot; data-origin-height=&quot;772&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccUzcv/btrY2pfAihG/QkloDbuwg17AoKSAiukN4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccUzcv/btrY2pfAihG/QkloDbuwg17AoKSAiukN4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccUzcv/btrY2pfAihG/QkloDbuwg17AoKSAiukN4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccUzcv%2FbtrY2pfAihG%2FQkloDbuwg17AoKSAiukN4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;346&quot; data-filename=&quot;스크린샷 2023-02-13 오전 1.24.02.png&quot; data-origin-width=&quot;1116&quot; data-origin-height=&quot;772&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 설정을 해도 CPU 사용률이 높다면 아래의 설정을 한 후에 문제가 해결되었다는 글을 보았으므로 어떤 것인지 알아본 뒤에 해보는 것도 좋을 것 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1676219676078&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;search.followSymlinks&quot;: false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 경우엔 위 설정을 해도 바뀌는 점은 없었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1676218649705&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;Remote VSCode over SSH crashes EC2 instance &amp;middot; Issue #2692 &amp;middot; microsoft/vscode-remote-release&quot; data-og-description=&quot;Issue Type: Bug I've been attempting to use the new remote VSCode feature to work with a project stored on an AWS EC2 instance. Each time I use it, it works fine for a few hours. Eventually, th...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/microsoft/vscode-remote-release/issues/2692&quot; data-og-url=&quot;https://github.com/microsoft/vscode-remote-release/issues/2692&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dKSH4o/hyRBPkeBEW/KUbeYfTXUk3f9QoJuIZgHk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/microsoft/vscode-remote-release/issues/2692&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/microsoft/vscode-remote-release/issues/2692&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dKSH4o/hyRBPkeBEW/KUbeYfTXUk3f9QoJuIZgHk/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;Remote VSCode over SSH crashes EC2 instance &amp;middot; Issue #2692 &amp;middot; microsoft/vscode-remote-release&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Issue Type: Bug I've been attempting to use the new remote VSCode feature to work with a project stored on an AWS EC2 instance. Each time I use it, it works fine for a few hours. Eventually, th...&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;</description>
      <category>Server</category>
      <category>100%</category>
      <category>cpu</category>
      <category>remote-ssh</category>
      <category>vscode</category>
      <author>또두</author>
      <guid isPermaLink="true">https://ddodu.tistory.com/4</guid>
      <comments>https://ddodu.tistory.com/4#entry4comment</comments>
      <pubDate>Mon, 13 Feb 2023 02:01:34 +0900</pubDate>
    </item>
  </channel>
</rss>