<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Quocunque Jeceris Stabit</title>
    <link>https://ellapresso.tistory.com/</link>
    <description>언젠가 찾아봤을때 알아볼 수 있게 기록하자</description>
    <language>ko</language>
    <pubDate>Fri, 24 Jul 2026 20:49:24 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>ellapresso</managingEditor>
    <image>
      <title>Quocunque Jeceris Stabit</title>
      <url>https://tistory1.daumcdn.net/tistory/2939872/attach/466172fefc46420aa4299000e198b211</url>
      <link>https://ellapresso.tistory.com</link>
    </image>
    <item>
      <title>[베트남] 나트랑 여행시 필수 품목! 샤워기 필터</title>
      <link>https://ellapresso.tistory.com/126</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;베트남 여행을 계획하고 있다면 반드시 샤워기 필터를 구비할것을 추천한다.&lt;br /&gt;다이소에서 샤워기헤드와 3개짜리 필터로 충분히 쟁여갈 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 묵은 숙소는 나트랑 시내의 엠피리언 호텔과 깜란지역의 퓨전 리조트였는데,&lt;br /&gt;만약 깜란지역에서 숙소를 잡은 사람이라면 필터는 더더욱 넉넉히 챙길것을 당부한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 사진에서 왼쪽부터 1,2,3,4번 필터라고 칭하겠다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_Image_2024-04-05-16-18-53.jpeg&quot; data-origin-width=&quot;901&quot; data-origin-height=&quot;856&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rmAjn/btsGo8QXSbF/C4pnXl3216bbZTqXpihJ11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rmAjn/btsGo8QXSbF/C4pnXl3216bbZTqXpihJ11/img.png&quot; data-alt=&quot;퓨전리조트에서 사용한 필터들.2박 3일간 4개면 충분할거라고 생각했는데...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rmAjn/btsGo8QXSbF/C4pnXl3216bbZTqXpihJ11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrmAjn%2FbtsGo8QXSbF%2FC4pnXl3216bbZTqXpihJ11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;507&quot; height=&quot;900&quot; data-filename=&quot;edited_KakaoTalk_Image_2024-04-05-16-18-53.jpeg&quot; data-origin-width=&quot;901&quot; data-origin-height=&quot;856&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;퓨전리조트에서 사용한 필터들.2박 3일간 4개면 충분할거라고 생각했는데...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이틀간 사용한 필터인데, 3,1,4,2 순서대로 더러운것을 확인 할 수 있다.&lt;br /&gt;첫날 저녁 사용한 필터는 버려서 사진에 없지만, 2번 필터와 거의 동일했다. 단 두번 샤워했을 뿐인데....&lt;br /&gt;대체적으로 퓨전 리조트에서 아침~낮에 샤워하면 1,3번 정도가 된다. 샤워 한번 하는동안에.&lt;br /&gt;그런데 취침전이나 저녁쯤 샤워를 하면 2,4번이 된다.&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;엠피리언 호텔에서는 1박동안 3번 필터정도만 더러워졌었고 넉넉히 교체하면서 사용했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다이소에서 3개짜리 묶음 필터 6개 사갔는데 솔직히 말하면 더 사가서 그냥 씻을때마다 교체했어도 됐을것 같다..&lt;/p&gt;</description>
      <category>NOSTALGIA</category>
      <category>나트랑</category>
      <category>나트랑샤워기필터후기</category>
      <category>다이소샤워기필터</category>
      <category>베트남</category>
      <category>베트남샤워기필터후기</category>
      <category>샤워기필터</category>
      <category>수질</category>
      <category>엠피리언호텔나트랑</category>
      <category>퓨전리조트깜란</category>
      <category>퓨전리조트나트랑</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/126</guid>
      <comments>https://ellapresso.tistory.com/126#entry126comment</comments>
      <pubDate>Fri, 5 Apr 2024 16:32:52 +0900</pubDate>
    </item>
    <item>
      <title>nodejs 외부 모듈 인증창 띄우기 - CSP 설정 - helmet</title>
      <link>https://ellapresso.tistory.com/125</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;CSP는&amp;nbsp;Content&amp;nbsp;Security&amp;nbsp;Policy(콘텐츠&amp;nbsp;보안&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;스크립트&amp;nbsp;실행을&amp;nbsp;제한하는&amp;nbsp;기능을&amp;nbsp;제공합니다.&amp;nbsp;&lt;br /&gt;이를&amp;nbsp;통해&amp;nbsp;사이버&amp;nbsp;공격&amp;nbsp;유형&amp;nbsp;중&amp;nbsp;하나인&amp;nbsp;&lt;b&gt;XSS(Cross-Site&amp;nbsp;Scripting)&amp;nbsp;공격을&amp;nbsp;방지할&amp;nbsp;수&amp;nbsp;있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 모듈(예를 들면 nice 인증)과 통신하여 해당 모듈을 열어야 할 때,&lt;br /&gt;백엔드에서 강제로 submit하는 스크립트를 실행시켜주는 모듈을 렌더링 시켜 줄 수도 있겠다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 주의해야 할 점은, 해당 렌더링 된 화면에서 스크립트를 통한 공격인데&lt;br /&gt;helmet이라는 모듈이 이를 방어해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단 외부 모듈에서 해당 스크립트를 실행시켜야 할 경우, 예외처리를 해주어야 하며 나는 nonce를 사용하여 허용된 스크립트만 실행 되도록 처리했다.&lt;/p&gt;
&lt;pre id=&quot;code_1689068264610&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  app.use((req, res, next) =&amp;gt; {
    res.locals.cspNonce = crypto.randomBytes(16).toString('hex');
    next();
  });

  app.use(
    helmet({
      contentSecurityPolicy: {
        directives: {
          scriptSrc: [&quot;'self'&quot;, (req, res) =&amp;gt; `'nonce-${res.locals.cspNonce}'`],
          formAction: [&quot;'self'&quot;, 'https://foo-bar-url'],
        },
      },
    })
  );
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드처럼 미들웨어에서 nonce를 발행 한 후, 렌더링 되어야 하는 코드의 스크립트에서 nonce로 넣어준다.&lt;/p&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;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;Refused to execute inline script because it violates the following Content Security Policy directive: &quot;script-src 'self'&quot;. Either the 'unsafe-inline' keyword, a hash, or a nonce ('nonce-...') is required to enable inline execution.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Refused to send form data to 'https://foo-bar-url' because&amp;nbsp;it&amp;nbsp;violates&amp;nbsp;the&amp;nbsp;following&amp;nbsp;Content&amp;nbsp;Security&amp;nbsp;Policy&amp;nbsp;directive:&amp;nbsp;&quot;form-action&amp;nbsp;'self'&quot;.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>API</category>
      <category>backend</category>
      <category>CSP</category>
      <category>Helmet</category>
      <category>nodejs</category>
      <category>XSS</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/125</guid>
      <comments>https://ellapresso.tistory.com/125#entry125comment</comments>
      <pubDate>Tue, 11 Jul 2023 18:42:13 +0900</pubDate>
    </item>
    <item>
      <title>[redis] redis-cli 명령어</title>
      <link>https://ellapresso.tistory.com/124</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #bdb7ae; text-align: start;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;깃블로그에&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #bdb7ae; text-align: start;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;정리해서 옮겨쓰기&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #bdb7ae; text-align: start;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;전 날려쓰는 메모&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터에 새로 노드 추가 하고나서 슬롯 재분배&lt;br /&gt;redis-cli --cluster rebalance {host}:{port} --cluster-use-empty-masters&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노드 하나 닫기&lt;br /&gt;&lt;span&gt;redis-cli -h {host} -p {port} shutdown&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터 정보&lt;br /&gt;&lt;/span&gt;&lt;span&gt;redis-cli --cluster info&lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;{host}:{port}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클러스터 노드들의 설정 변경사항 한번에 저장&lt;br /&gt;redis-cli --cluster call {host}:{port}&amp;nbsp;cluster&amp;nbsp;rewrite&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;클러스터 체크&lt;br /&gt;redis-cli --cluster check &lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;{host}:{port}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;클러스터에서 노드 하나 제거 (마스터 일 경우, 할당 된 슬롯이 없어야 함)&lt;br /&gt;redis-cli --cluster del-node&lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;{host}:{port}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/124</guid>
      <comments>https://ellapresso.tistory.com/124#entry124comment</comments>
      <pubDate>Thu, 6 Apr 2023 16:29:06 +0900</pubDate>
    </item>
    <item>
      <title>[redis] cluster mode에 노드 추가하기</title>
      <link>https://ellapresso.tistory.com/123</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ellapresso.tistory.com/119&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ellapresso.tistory.com/119&lt;/a&gt; 선행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위링크와 같은 방식으로 서버 두대를 더 띄움(master-rep 또는 원하는 서버로 준비)&lt;/p&gt;
&lt;pre id=&quot;code_1680762293760&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 마스터 노드 추가
redis-cli --cluster add-node 127.0.0.1:7004 127.0.0.1:7001
# 복제본 추가
redis-cli --cluster add-node 127.0.0.1:8004 127.0.0.1:7004 --cluster-slave&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단은 추가됨. 그런데 배정받은 슬롯이 없음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1680762032749&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-cli --cluster info 127.0.0.1:7001&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;스크린샷 2023-04-06 오후 3.20.44.png&quot; data-origin-width=&quot;469&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpuxcn/btr8h9XijN1/PTnDKqDoTOBBWXsA21DCXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpuxcn/btr8h9XijN1/PTnDKqDoTOBBWXsA21DCXk/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpuxcn/btr8h9XijN1/PTnDKqDoTOBBWXsA21DCXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcpuxcn%2Fbtr8h9XijN1%2FPTnDKqDoTOBBWXsA21DCXk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;57&quot; data-filename=&quot;스크린샷 2023-04-06 오후 3.20.44.png&quot; data-origin-width=&quot;469&quot; data-origin-height=&quot;57&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;pre id=&quot;code_1680762063912&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-cli --cluster rebalance 127.0.0.1:7001 --cluster-use-empty-masters&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;스크린샷 2023-04-06 오후 3.21.30.png&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjB9Mo/btr8kISC59a/uNZAogSYTAXGvLKQb2vpSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjB9Mo/btr8kISC59a/uNZAogSYTAXGvLKQb2vpSk/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjB9Mo/btr8kISC59a/uNZAogSYTAXGvLKQb2vpSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjB9Mo%2Fbtr8kISC59a%2FuNZAogSYTAXGvLKQb2vpSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1098&quot; height=&quot;461&quot; data-filename=&quot;스크린샷 2023-04-06 오후 3.21.30.png&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;461&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;pre id=&quot;code_1680762109733&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-cli --cluster info 127.0.0.1:7001&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;스크린샷 2023-04-06 오후 3.22.00.png&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;58&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmctoQ/btr8tDQikvy/8GBzLi8IQSnEVKqycPrl00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmctoQ/btr8tDQikvy/8GBzLi8IQSnEVKqycPrl00/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmctoQ/btr8tDQikvy/8GBzLi8IQSnEVKqycPrl00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmctoQ%2Fbtr8tDQikvy%2F8GBzLi8IQSnEVKqycPrl00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;58&quot; data-filename=&quot;스크린샷 2023-04-06 오후 3.22.00.png&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;58&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;a href=&quot;http://redisgate.kr/redis/cluster/redis-cli-cluster.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>add-node</category>
      <category>cluster</category>
      <category>node</category>
      <category>Rebalance</category>
      <category>redis</category>
      <category>레디스</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/123</guid>
      <comments>https://ellapresso.tistory.com/123#entry123comment</comments>
      <pubDate>Thu, 6 Apr 2023 15:25:33 +0900</pubDate>
    </item>
    <item>
      <title>[redis] sentinel mode구현</title>
      <link>https://ellapresso.tistory.com/122</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ellapresso.tistory.com/119&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ellapresso.tistory.com/119&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1680749982165&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;[redis] 로컬(macOS)에서 standalone, cluster, replica 구성하기 + GUI&quot; data-og-description=&quot;깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모 1. 레디스 설치하기 - 링크 링크를 따라하면 되나, 나는 아래정도만 실행함. 더보기 Homebrew를 사용해서 설치 brew install redis 설치가 완료되었는지 &quot; data-og-host=&quot;ellapresso.tistory.com&quot; data-og-source-url=&quot;https://ellapresso.tistory.com/119&quot; data-og-url=&quot;https://ellapresso.tistory.com/119&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dJutd4/hyScuGqZSC/HkQtANNlhRfH1ghs3gyXr1/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591,https://scrap.kakaocdn.net/dn/ipvyt/hySa0fTMbR/Tjus21KO9FKDMEu5qYK0bk/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591&quot;&gt;&lt;a href=&quot;https://ellapresso.tistory.com/119&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ellapresso.tistory.com/119&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dJutd4/hyScuGqZSC/HkQtANNlhRfH1ghs3gyXr1/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591,https://scrap.kakaocdn.net/dn/ipvyt/hySa0fTMbR/Tjus21KO9FKDMEu5qYK0bk/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591');&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;[redis] 로컬(macOS)에서 standalone, cluster, replica 구성하기 + GUI&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모 1. 레디스 설치하기 - 링크 링크를 따라하면 되나, 나는 아래정도만 실행함. 더보기 Homebrew를 사용해서 설치 brew install redis 설치가 완료되었는지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ellapresso.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 위 글에서처럼 standalone - replica를 구성한다.&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 센티널로 사용할 노드수만큼 cof파일을 만들고, port를 수정해준다.&lt;/h4&gt;
&lt;pre id=&quot;code_1680750044343&quot; class=&quot;bash&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;code&gt;cp /opt/homebrew/etc/redis.conf ./sentinel01.conf&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 아래 내용을 conf파일에 추가해준다.&lt;/h4&gt;
&lt;pre id=&quot;code_1680750453183&quot; class=&quot;smali&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;code&gt;sentinel monitor mymaster 127.0.0.1 {마스터 서버 포트} {정족수}
sentinel down-after-milliseconds mymaster 3000&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp; 정족수 : 마스터가 더이상 사용할 수 없다고 판단할 서버수. 3대의 노드로 감시하고 2개이상이 판단할경우 레플리카를 마스터로 바꾸고싶다면 정족수는 2가된다. 만약 감시노드를 한대만 하고싶다면 1로...&lt;/span&gt;&lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;4. standalone - replica를 띄워준 다음, 아래 명령어로 센티널을 실행시킨다.&lt;/span&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1680750489955&quot; class=&quot;bash&quot; style=&quot;background-color: #000000; color: #000000; text-align: left;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;code&gt;redis-sentinel sentinel01.conf&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;5. 정상동작하는지 마스터를 kill해본다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ellapresso.tistory.com/121&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ellapresso.tistory.com/121&lt;/a&gt; 참고&lt;/p&gt;
&lt;figure id=&quot;og_1680750568117&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;[redis] cluster-replica 마스터를 kill하면&quot; data-og-description=&quot;깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모 redis cluster replica 구성하기 [redis] 로컬(macOS)에서 standalone, cluster, replica 구성하기 + GUI 깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모 1. 레디스 &quot; data-og-host=&quot;ellapresso.tistory.com&quot; data-og-source-url=&quot;https://ellapresso.tistory.com/121&quot; data-og-url=&quot;https://ellapresso.tistory.com/121&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dyBsqq/hyScw5kfAM/S0aWOLg8kWlbxcZ6MbvKh1/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591,https://scrap.kakaocdn.net/dn/dqNCYU/hyScCLeJka/DTooeBsP0KDx0VB8fxKWiK/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591&quot;&gt;&lt;a href=&quot;https://ellapresso.tistory.com/121&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ellapresso.tistory.com/121&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dyBsqq/hyScw5kfAM/S0aWOLg8kWlbxcZ6MbvKh1/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591,https://scrap.kakaocdn.net/dn/dqNCYU/hyScCLeJka/DTooeBsP0KDx0VB8fxKWiK/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591');&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;[redis] cluster-replica 마스터를 kill하면&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모 redis cluster replica 구성하기 [redis] 로컬(macOS)에서 standalone, cluster, replica 구성하기 + GUI 깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모 1. 레디스&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ellapresso.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;로그를 확인하면 센티널들이 3초간 지켜보다가 replica를 master로 승격시킨다.&lt;/p&gt;</description>
      <category>redis</category>
      <category>sentinel</category>
      <category>StandAlone</category>
      <category>레디스</category>
      <category>센티널</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/122</guid>
      <comments>https://ellapresso.tistory.com/122#entry122comment</comments>
      <pubDate>Thu, 6 Apr 2023 12:10:40 +0900</pubDate>
    </item>
    <item>
      <title>[redis] cluster-replica 마스터를 kill하면</title>
      <link>https://ellapresso.tistory.com/121</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #c1bcb4; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ellapresso.tistory.com/119&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;redis cluster replica 구성하기&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1680665115469&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;[redis] 로컬(macOS)에서 standalone, cluster, replica 구성하기 + GUI&quot; data-og-description=&quot;깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모 1. 레디스 설치하기 - 링크 링크를 따라하면 되나, 나는 아래정도만 실행함. 더보기 Homebrew를 사용해서 설치 brew install redis 설치가 완료되었는지 &quot; data-og-host=&quot;ellapresso.tistory.com&quot; data-og-source-url=&quot;https://ellapresso.tistory.com/119&quot; data-og-url=&quot;https://ellapresso.tistory.com/119&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/FZWEH/hyR9AB3LkC/YF4L9ohx3WoihN81FUhSSk/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591,https://scrap.kakaocdn.net/dn/pddFU/hySaWpVukw/0L8J0jaMJRi1ryqnLzf001/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591&quot;&gt;&lt;a href=&quot;https://ellapresso.tistory.com/119&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ellapresso.tistory.com/119&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/FZWEH/hyR9AB3LkC/YF4L9ohx3WoihN81FUhSSk/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591,https://scrap.kakaocdn.net/dn/pddFU/hySaWpVukw/0L8J0jaMJRi1ryqnLzf001/img.png?width=664&amp;amp;height=591&amp;amp;face=0_0_664_591');&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;[redis] 로컬(macOS)에서 standalone, cluster, replica 구성하기 + GUI&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모 1. 레디스 설치하기 - 링크 링크를 따라하면 되나, 나는 아래정도만 실행함. 더보기 Homebrew를 사용해서 설치 brew install redis 설치가 완료되었는지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ellapresso.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;7003 포트에 있는 데이터를 확인 한 후, 해당 포트를 kill 해보았다.&lt;/p&gt;
&lt;pre id=&quot;code_1680665344531&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-cli -p {kill 할 서버 포트} -h {kill 할 서버 호스트} shutdown&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;조금 있으면 연결된 복제본인 8003이 아래와 같이 속삭여준다.. &lt;s&gt;머싯서&lt;/s&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1680665468320&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Failover election won: I'm the new master.&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;아무 서버에 접속해서 7003에 있던 데이터를 호출해보면, 8003에 있음을 확인 할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 7003 서버를 살려보자&lt;/p&gt;
&lt;pre id=&quot;code_1680665619080&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-server redis_7003.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마스터로 시작하려다가 이미 8003이 마스터임을 확인하고 레플리카로 변경된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-04-05 오후 12.35.28.png&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8SNri/btr8f048lwQ/q4EOtMNZCpPNqQ1k5zFaZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8SNri/btr8f048lwQ/q4EOtMNZCpPNqQ1k5zFaZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8SNri/btr8f048lwQ/q4EOtMNZCpPNqQ1k5zFaZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8SNri%2Fbtr8f048lwQ%2Fq4EOtMNZCpPNqQ1k5zFaZK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;247&quot; height=&quot;116&quot; data-filename=&quot;스크린샷 2023-04-05 오후 12.35.28.png&quot; data-origin-width=&quot;247&quot; data-origin-height=&quot;116&quot;/&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>NULL STACK</category>
      <category>cluster</category>
      <category>kill</category>
      <category>redis</category>
      <category>replica</category>
      <category>replication</category>
      <category>shutdown</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/121</guid>
      <comments>https://ellapresso.tistory.com/121#entry121comment</comments>
      <pubDate>Wed, 5 Apr 2023 12:36:47 +0900</pubDate>
    </item>
    <item>
      <title>[redis] 명령어 모음</title>
      <link>https://ellapresso.tistory.com/120</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #181a1b; color: #bdb7ae; text-align: start;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;깃블로그에&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #bdb7ae; text-align: start;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;정리해서 옮겨쓰기&lt;/span&gt;&lt;span style=&quot;background-color: #181a1b; color: #bdb7ae; text-align: start;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;전 날려쓰는 메모&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CLUSTER INFO 접속한 노드의 클러스터 주요 상태 정보&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CLUSTER NODES 접속한 노드와 연결된 클러스터 노드 리스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OBJECT {key} 해당 키의 타입 확인&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/120</guid>
      <comments>https://ellapresso.tistory.com/120#entry120comment</comments>
      <pubDate>Wed, 5 Apr 2023 12:10:56 +0900</pubDate>
    </item>
    <item>
      <title>[redis] 로컬(macOS)에서 standalone, cluster, replica 구성하기 + GUI</title>
      <link>https://ellapresso.tistory.com/119</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #c1bcb4; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;깃블로그에 정리해서 옮겨쓰기 전 날려쓰는 메모&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 레디스 설치하기 - &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;링크&lt;/a&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;Homebrew를 사용해서 설치&lt;/p&gt;
&lt;pre class=&quot;shell&quot; style=&quot;background-color: #0c1222; color: #d6e3ee;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;brew install redis&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 class=&quot;shell&quot; style=&quot;background-color: #0c1222; color: #d6e3ee;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;redis-server&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인되었으면 Ctrl+C로 닫아 줌&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. redis 폴더를 하나 생성 한 후 redis.conf 파일을 복사해온다.&lt;/h3&gt;
&lt;pre id=&quot;code_1680661005774&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mkdir redis
cp /opt/homebrew/etc/redis.conf ./redis.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;3. standalone, cluster 원하는 구성에 따라 아래 정보들을 수정해준다.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3-1. standalone&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1680661267291&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;port {원하는 포트}
pidfile /var/run/redis_{원하는 포트}.pid&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3-2. cluster&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #c8c3bc; text-align: start;&quot; data-darkreader-inline-color=&quot;&quot;&gt;&amp;nbsp; master의 각 포트를 따서 conf파일을 만들어준다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1680661641128&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cp redis.conf redis_7001.conf&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 3-1에서 나온 항목들을 수정 한 후, 아래 항목들도 수정한다.&lt;/p&gt;
&lt;pre id=&quot;code_1680661500075&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cluster-config-file nodes-{파일명에 사용한 포트}.conf
dbfilename dump-cluster{파일명에사용한 포트}.rdb
cluster-enabled yes&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3-3. replica&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 만약 replica를 생성하고싶다면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;standalone: 아래 항목도 conf파일에서 추가로 수정해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1680662760889&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;replicaof &amp;lt;masterip&amp;gt; &amp;lt;masterport&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cluster: replica에 사용할 포트를 따서 conf파일을 더 만들어준다.&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;4. 실행해본다.&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; 따로 파일 만들어서 걍 실행 할 수 있게 해뒀음....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; * standalone은 redis-server로 실행만 해주면 끝남.&lt;/p&gt;
&lt;pre id=&quot;code_1680662256467&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-server ./redis_7001.conf &amp;amp;
redis-server ./redis_7002.conf &amp;amp;
redis-server ./redis_7003.conf &amp;amp;

# cluster 생성 할 경우
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 &amp;amp;

# 요 아래부터는 cluster replica 생성 할 경우

redis-server ./redis_8001.conf &amp;amp;
redis-server ./redis_8002.conf &amp;amp;
redis-server ./redis_8003.conf &amp;amp;

redis-cli --cluster add-node 127.0.0.1:8001 127.0.0.1:7001 --cluster-slave &amp;amp;
redis-cli --cluster add-node 127.0.0.1:8002 127.0.0.1:7002 --cluster-slave &amp;amp;
redis-cli --cluster add-node 127.0.0.1:8003 127.0.0.1:7003 --cluster-slave&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 한번 생성해 준 이후에는 아래 명령어만 호출해도 자동으로 cluster-replica생성이 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1680662329997&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-server ./redis_7001.conf &amp;amp;
redis-server ./redis_7002.conf &amp;amp;
redis-server ./redis_7003.conf &amp;amp;
redis-server ./redis_8001.conf &amp;amp;
redis-server ./redis_8002.conf &amp;amp;
redis-server ./redis_8003.conf&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;p data-ke-size=&quot;size16&quot;&gt;redis GUI tool 추천 : &lt;a href=&quot;https://redis.com/redis-enterprise-software/download-center/software/#redisinsight&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;redisInsight&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;doc : &lt;a href=&quot;https://developer.redis.com/explore/redisinsightv2/getting-started/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.redis.com/explore/redisinsightv2/getting-started/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1680663077792&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Download Redis Enterprise | Redis&quot; data-og-description=&quot;Download the latest version of Redis Enterprise software. Try it free today!&quot; data-og-host=&quot;redis.com&quot; data-og-source-url=&quot;https://redis.com/redis-enterprise-software/download-center/software/#redisinsight&quot; data-og-url=&quot;https://redis.com/redis-enterprise-software/download-center/software/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/brgpJe/hyR9ziQ1Xf/nOeIkT0JZMgxDcy9xs5WQ1/img.png?width=1024&amp;amp;height=630&amp;amp;face=0_0_1024_630,https://scrap.kakaocdn.net/dn/dgta2K/hySa1Sif5U/AF8ukEfqDitbzlmD0CE3Hk/img.jpg?width=1024&amp;amp;height=630&amp;amp;face=0_0_1024_630,https://scrap.kakaocdn.net/dn/RHAUW/hyR9I7UPRA/tZ3QEnHoCZlBYZCgZZEwkk/img.jpg?width=1024&amp;amp;height=544&amp;amp;face=0_0_1024_544&quot;&gt;&lt;a href=&quot;https://redis.com/redis-enterprise-software/download-center/software/#redisinsight&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://redis.com/redis-enterprise-software/download-center/software/#redisinsight&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/brgpJe/hyR9ziQ1Xf/nOeIkT0JZMgxDcy9xs5WQ1/img.png?width=1024&amp;amp;height=630&amp;amp;face=0_0_1024_630,https://scrap.kakaocdn.net/dn/dgta2K/hySa1Sif5U/AF8ukEfqDitbzlmD0CE3Hk/img.jpg?width=1024&amp;amp;height=630&amp;amp;face=0_0_1024_630,https://scrap.kakaocdn.net/dn/RHAUW/hyR9I7UPRA/tZ3QEnHoCZlBYZCgZZEwkk/img.jpg?width=1024&amp;amp;height=544&amp;amp;face=0_0_1024_544');&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 Redis Enterprise | Redis&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Download the latest version of Redis Enterprise software. Try it free today!&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;redis.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;잘못 기재된 부분은 ellapresso@gmail.com으로 연락주세요.&amp;nbsp;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>cluster</category>
      <category>homebrew</category>
      <category>MacOS</category>
      <category>redis</category>
      <category>replica</category>
      <category>replication</category>
      <category>StandAlone</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/119</guid>
      <comments>https://ellapresso.tistory.com/119#entry119comment</comments>
      <pubDate>Wed, 5 Apr 2023 11:49:11 +0900</pubDate>
    </item>
    <item>
      <title>s3 presigned url로 클라이언트가 직접 이미지 업로드 하기</title>
      <link>https://ellapresso.tistory.com/118</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;엄... 블로그 통일 해야 하는데 귀찮아서 일단 링크만 남김 (제가 쓴겁니다용)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ellapresso.github.io/2023/01/19/aws-presigned-url/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ellapresso.github.io/2023/01/19/aws-presigned-url/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1674194124688&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;프론트에서 이미지 s3 업로드 하기 | ellapresso&quot; data-og-description=&quot;클라이언트가 서버에 presigned url 요청 서버가 aws에 presigned url 요청 서버가 클라이언트에 응답 값 전달 전달받은 값으로 클라이언트가 aws에 직접 업로드 서버에 업로드 완료/실패 전달 용량이 큰 &quot; data-og-host=&quot;ellapresso.github.io&quot; data-og-source-url=&quot;https://ellapresso.github.io/2023/01/19/aws-presigned-url/&quot; data-og-url=&quot;https://ellapresso.github.io/2023/01/19/aws-presigned-url/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b7MU5s/hyRks5ZZDA/U3qhkyI82kddDKShqxZgxK/img.png?width=917&amp;amp;height=497&amp;amp;face=0_0_917_497&quot;&gt;&lt;a href=&quot;https://ellapresso.github.io/2023/01/19/aws-presigned-url/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ellapresso.github.io/2023/01/19/aws-presigned-url/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b7MU5s/hyRks5ZZDA/U3qhkyI82kddDKShqxZgxK/img.png?width=917&amp;amp;height=497&amp;amp;face=0_0_917_497');&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;프론트에서 이미지 s3 업로드 하기 | ellapresso&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;클라이언트가 서버에 presigned url 요청 서버가 aws에 presigned url 요청 서버가 클라이언트에 응답 값 전달 전달받은 값으로 클라이언트가 aws에 직접 업로드 서버에 업로드 완료/실패 전달 용량이 큰&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ellapresso.github.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>NULL STACK</category>
      <category>AWS</category>
      <category>aws sdk</category>
      <category>Image upload</category>
      <category>presigned url</category>
      <category>S3</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/118</guid>
      <comments>https://ellapresso.tistory.com/118#entry118comment</comments>
      <pubDate>Fri, 20 Jan 2023 14:54:46 +0900</pubDate>
    </item>
    <item>
      <title>6월 29일 MEMO</title>
      <link>https://ellapresso.tistory.com/117</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;TO DO LIST&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #172b4d;&quot; data-darkreader-inline-bgcolor=&quot;&quot; data-darkreader-inline-color=&quot;&quot;&gt;redis, ioredis, node-redis 비교 post&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;redis cluster post&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;network topology post&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;desiloper 수업내용 업데이트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API Design books 요약 post&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그 분석을 위한 url설계관련 자료&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잔디정원사 인증서버 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ellapresso관련 크롤러 만들기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다이나모디비, aws람다&lt;/p&gt;</description>
      <category>MEMO</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/117</guid>
      <comments>https://ellapresso.tistory.com/117#entry117comment</comments>
      <pubDate>Wed, 29 Jun 2022 10:42:46 +0900</pubDate>
    </item>
    <item>
      <title>디-발자를 위한 첫걸음</title>
      <link>https://ellapresso.tistory.com/116</link>
      <description>&lt;blockquote data-ke-style=&quot;style2&quot;&gt;뭔지 모르겠지만 일단 개발이 하고싶은 디자이너를 위하여&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 그렇게 뛰어난 개발자는 아니다.&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;나는 위로 올라가지는 못해도, 위로 올라가려는 사람들에게 문을 열어 주는 일은 할 수 있을 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP 그리고 Node로 시작해서,&lt;br /&gt;노드만 열심히 할 줄 알았는데 뷰린이로 사회생활을 험난하게 헤쳐나가고 있는 지금,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선은 디자이너를 위한 스텝부터, 자바스트립트를 통한 개발까지 하나씩 해 보려고한다.&lt;br /&gt;(그냥 내 다짐을 써놓은거임)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작심삼일이 되지 않도록, 수강생을 지인으로 구성해 모집하고, 하나씩 알려 줄 생각이다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;html&lt;/li&gt;
&lt;li&gt;css&lt;/li&gt;
&lt;li&gt;javascript&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서대로 하나씩 해보자. 코딩의 c도 모르는 디자이너를 위한 튜토리얼 시작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a title=&quot;디-발자 수업 블로그&quot; href=&quot;https://ellapresso.github.io/blog/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;디-발자 수업 블로그&lt;/a&gt;&lt;/p&gt;</description>
      <category>MEMO</category>
      <category>디발자</category>
      <category>코딩하는디자이너</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/116</guid>
      <comments>https://ellapresso.tistory.com/116#entry116comment</comments>
      <pubDate>Wed, 30 Mar 2022 10:41:19 +0900</pubDate>
    </item>
    <item>
      <title>맥북 Apple M1칩 노드 16버전 이슈 해결</title>
      <link>https://ellapresso.tistory.com/115</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;npm install을 했는데 만약 &lt;span style=&quot;background-color: #ee2323; color: #dddddd;&quot;&gt;Only Mac 64 bits supported.&lt;/span&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt;&amp;nbsp;&lt;/span&gt;라는 문구와 함께 노드모듈이 받아지지 않을 경우 해결 방법.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 맥에 관하여 : 칩 - Apple M1 인 경우.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://nodejs.org/ko/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://nodejs.org/ko/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 링크에서 14.18.1 LTS버전을 받는다. (터미널로 설지 하지 않고 사이트에서 진행)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #666666; color: #ffffff;&quot;&gt;$ nvm use 14&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;p data-ke-size=&quot;size16&quot;&gt;16버전과 Apple M1간의 이슈가 있는듯.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ARM64 가 아니라 64-bit 이어야 하는데, 그냥 homebrew로 최신 노드를 설치하게 되면 ARM64로 설치되기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 오류가 발생한다.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>appleM1</category>
      <category>Mac</category>
      <category>MacBookPro</category>
      <category>MacOS</category>
      <category>node</category>
      <category>nodejs</category>
      <category>nodeversion</category>
      <category>Only Mac 64 bits supported</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/115</guid>
      <comments>https://ellapresso.tistory.com/115#entry115comment</comments>
      <pubDate>Thu, 14 Oct 2021 15:06:15 +0900</pubDate>
    </item>
    <item>
      <title>[RegEx] 정규식으로 이미지 url 체크 진행중</title>
      <link>https://ellapresso.tistory.com/114</link>
      <description>&lt;p&gt;검색으로 찾은 url 정규식 가져와서 고쳐쓰기&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;예시 링크&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;https://www.naver.comhttps://naver.com&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;www.naver.com/img/images/products/12345/13131313?ss_key=ASDF2QWERU.2QWER3M&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;http://www.naver.com&lt;/span&gt;http://www.naver.com/img/images/products/12345/13131313?ss_key=ASDF2QWERU&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;www.daum.co.kr/web/prod/small/202/221d7613b7935c4c30e4df13f.jpg&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;정규식 고쳐가기&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;(http(s)?\:\/\/)?([a-z0-9-:\w]+\.*)+[a-z0-9]{2,4}([\/])([\/a-z 0-9-%#?&amp;amp;\.=\w])*(\.[a-z]{2,4})*&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;(http(s)?\:\/\/)?([a-z0-9-:\w]+\.*)+[a-z0-9]{2,4}(:[0-9])?([\/])([\/a-z 0-9-%#?&amp;amp;\.=\w])*(\.[a-z]{2,4})*&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;(http(s)?\:\/\/)?([a-z0-9-:\w]+\.*)+[a-z0-9]{2,4}(:\d)?([\/])([\/a-z 0-9-%#?&amp;amp;\.=\w])*(\.[a-z]{2,4})*&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;(http(s)?\:\/\/)?([a-z0-9-:\w]+\.*)+[a-z\d]{2,4}(:\d)?([\/])([\/&amp;nbsp;-%#?&amp;amp;\.=\w])*(\.[a-z]{2,4})?&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;(http(s)?\:\/\/)?([-:\w]+\.*)+[a-z\d]{2,4}(:\d)?([\/&amp;nbsp;\-%#?&amp;amp;\.=\w])*&lt;/p&gt;
&lt;p&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&gt;https://www.naver.comhttps://naver.com&amp;nbsp; 같이 똥같을때&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;정규식 고쳐가기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;앞부분 url만 매칭(뒤의 https까지 매칭되버림)&lt;/p&gt;
&lt;p&gt;(http(s)?\:\/\/)(?!\1)?([-:\w]+\.*)+[a-z\d]{2,4}(:\d)?([\/&amp;nbsp;\-%#?&amp;amp;\.=\w])*&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/114</guid>
      <comments>https://ellapresso.tistory.com/114#entry114comment</comments>
      <pubDate>Mon, 19 Apr 2021 23:45:23 +0900</pubDate>
    </item>
    <item>
      <title>2월 25일 MEMO</title>
      <link>https://ellapresso.tistory.com/113</link>
      <description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;지난 TO DO LIST&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;기술면접 질문 정리&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;s&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;자바스크립트(노드) 스터디 재모집&lt;/span&gt;&lt;/s&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;s&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;재취뽀&lt;/span&gt;&lt;/s&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;코로나 속에서 벌써 이 회사에 입사한지 6개월차&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;온보딩이 끝나고 성과평가를 하고있다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;딱 면접보기 전에 썼던 메모를 마지막으로 많은 변화가 있었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;입사하자마자 열심히 닥치는대로 다 해보려고 달렸고, 지금은 그 기록들을 보면서&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;조금 바보같이 일했구나, 생각하게 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;반복되는 업무를 줄이고, 시간을 벌어야 하는것은 스스로였다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;길다면 길고 짧았다면 짧았을 6개월치 데일리로그를 보면서 3월부터는 어떻게 일을 해야할지 생각하게 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;b&gt;더 게으르게 일하기위해&lt;/b&gt; 더 효율적으로 생활해야겠다!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;노드 스터디는 유일하게 내가 개발공부를 게으르게 하지 않게 해주는 원동력이었는데&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;망할 여우시키덕분에 모든게 망가져부럿다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;멤버초이스를 잘못한건가 싶기도한데...&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;다시 스터디를 모집해야 하지 않을까?&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그만 쉬어도 될 것 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;이사하고나면 집에서 스터디를 해도 괜찮을것 같기도 하고..&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;아무튼 다음 스터디는 조금더 구체적인 룰을 가지고 해야겠다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;모각코여도 괜찮을것 같기도.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;기술면접정리는 마침 팀장님이 스킬업 리스트를 함께 작성해주신것들이 있어서 참고하면 될 것 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;하나씩 블로그랑 깃허브에 적어봐야겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;회사에서 지내는 시간이 많아지다보니 몸이 지치고 에너지가 부족해서 방이 엉망이 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;뭐, 핑계라고 할 수도 있겠지만 언제나 내 멘탈 상태를 반영하는 공간이어서 잠들기전 씁쓸함은 어쩔수 없는것 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그래도 다행인건, 하나라도 챙겨보려는 시도를 계속 하고있다는 것.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;악해지지 않고 독해지기로 해본다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;TO DO LIST&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;이사&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;s&gt;기술면접 질문 정리&lt;/s&gt; 스킬업리스트 블로그에 작성하기&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;스터디구성 및 모집&lt;/span&gt;&lt;/p&gt;</description>
      <category>MEMO</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/113</guid>
      <comments>https://ellapresso.tistory.com/113#entry113comment</comments>
      <pubDate>Thu, 25 Feb 2021 17:22:57 +0900</pubDate>
    </item>
    <item>
      <title>9월 1일 MEMO</title>
      <link>https://ellapresso.tistory.com/112</link>
      <description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;지난 TO&lt;span&gt;&amp;nbsp;&lt;/span&gt;DO LIST 진행상황&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;s&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;잔디정원사 1년기념 컨퍼런스 ( 7월 25일 )&lt;/span&gt;&lt;/s&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;기술면접 질문 정리&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;s&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;정보처리기사&lt;/span&gt;&lt;/s&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;컨퍼런스 마침, 컨퍼런스 후기 : &lt;a href=&quot;https://ellapresso.tistory.com/111&quot;&gt;https://ellapresso.tistory.com/111&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;코로나가 심각해지면서, 사람이 많이 모이는 곳을 기피하게 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;다행히 정보처리기사 100프로 환불 가능하다고 연락이 와서 환불함. 내년 시험을 노려본다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;다들 쉴 수 있을때 쉬라는 말을 많이 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그 말이 무슨 말인지는 아는데, 나는 적당히 쉬고 싶고 적당히 쉴만큼 쉬었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;일을 할때 즐겁고, 일을 할때 쉬는게 더 좋다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그래서 나름 열심히 구직활동을 했고, 아마도 조만간 새로운 회사에 적응하러 갈 것 이다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그런 내가 최근 너무 취업이 늦어지면서 점점 땅굴을 파게 되고, 면접질문들은 기록만 해 둔채 방치 해 두고 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;빨리 기력을 찾아서 공부를 해둬야 할텐데...&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;여담이지만 지금의 내 또래 즉 30대 초중반의 사람들이 진짜 꼰대의 중심이 아닐까 생각이 된다. (그래서 자꾸 내 모습을 돌아보게 됨-)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;나보다 조금 더 나은 직장, 조금 더 높은 직책을 가진 친구들이나 지인들은 자꾸 나에게 조언, 첨언을 하려고하고,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;만약 내가 이미 알고있다는 듯 대답하거나 먼저 선수쳐서 말을하거나 하면( 그냥 처음듣는 듯이 행동하면 더더욱) 언성이 높아지면서,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;너때는 그래, 일년만 지나봐, 너네 회사는 작잖아, 조금 더 큰 회사를 가봐, 이런 말이 따라 붙는다. 워. 난 그러지 말아야지. 제발.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;꼭 라떼는 - 이 부모님 세대에 한정된 것만은 아니라는걸, 새겨둘 필요가 있겠다. &lt;s&gt;그 말들이 사람 자존감을 깎는 말 이라는걸 알아두길.&lt;/s&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;스스로에게. 이제 다시 달려볼 일만 남았길 바란다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;TO DO LIST&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;기술면접 질문 정리&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;자바스크립트(노드) 스터디 재모집&lt;/span&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;재취뽀&lt;/span&gt;&lt;/p&gt;</description>
      <category>MEMO</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/112</guid>
      <comments>https://ellapresso.tistory.com/112#entry112comment</comments>
      <pubDate>Tue, 1 Sep 2020 14:04:02 +0900</pubDate>
    </item>
    <item>
      <title>[잔디정원사] 제 1 회 잔디정원사 컨퍼런스</title>
      <link>https://ellapresso.tistory.com/111</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;제목_없는_아트워크 2.jpg&quot; data-origin-width=&quot;2388&quot; data-origin-height=&quot;1668&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bH4Dgt/btqF64oGPuZ/fsOb3LmA3Ica3BgKTc11VK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bH4Dgt/btqF64oGPuZ/fsOb3LmA3Ica3BgKTc11VK/img.jpg&quot; data-alt=&quot;2020년 7월 현재 방 멤버들의 깃허브(or 깃랩)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bH4Dgt/btqF64oGPuZ/fsOb3LmA3Ica3BgKTc11VK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH4Dgt%2FbtqF64oGPuZ%2FfsOb3LmA3Ica3BgKTc11VK%2Fimg.jpg&quot; data-filename=&quot;제목_없는_아트워크 2.jpg&quot; data-origin-width=&quot;2388&quot; data-origin-height=&quot;1668&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;2020년 7월 현재 방 멤버들의 깃허브(or 깃랩)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2020년 7월 25일 카카오톡 오픈 채팅방 잔디정원사의 첫 번째 컨퍼런스를 열었다. &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 소수의 친분 있는 개발자들이라, 워크숍의 느낌도 조금 났지만 &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;잔디정원사란,&lt;/b&gt; 깃허브 (또는 깃랩) 저장소에 파일 및 폴더의 변경사항을 저장할 때 프로필에 표시되는 캘린더를 인증하는 방으로 무의미한 커밋보다는 자기 계발에 의의를 두어 함께 발전하고자 하는 IT 모임이다.&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&gt;처음 이 방을 개설하기 전, 다른 신입 개발자들은 어떻게 하는지 궁금해서 &lt;span style=&quot;color: #333333;&quot;&gt;6~700명 정도의 IT방을 들어갔었다.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;하지만 조금 지나자 초반 분위기와는 다르게 과도한 연애상담 등의 관종들이 드러나기 시작했고, 답답했던 일부 인원들의 의견에 내가 목적성을 가진 방을 새로 시작했다. &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그게 바로 깃을 사용한 1일 1 커밋이었다. 그때&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 당시 처음 개발자로서 첫 회사를 들어간 뉴비였고 한창 지옥에서 온 깃 안에서 헤맬 때였는데 마침 깃에 관심이 있던 몇몇 친구들이 나를 따라 들어와 주었다. &lt;b&gt;그렇게 우리의 1일 1 커밋이 시작되었다.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;면접 때 깃허브를 보더라, 하는 이야기에 들어오는 사람들도 있었는데 아직도 그 부분에 대해서는 여러 가지로 의견이 분분한 듯하다. 방을&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 운영하면서 느낀 점은, 면접을 위해 부지런히 1일 1 커밋을 1년간 채울 사람은 없다는 것이다. 관심이&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt; 없고 스스로 하고자 하는 게 없다면 잔디를 그렇게 심을 수가 없다.&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;정말 바빠서 강퇴당하는 사람 -(기본적으로 인증 방이기 때문에 너무 인증을 하지 않으면 잘린다)- 을 제외하고는..&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그렇게 마음이 맞는 사람은 남고, 맞지 않는 사람은 나가고,,&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt; 30명의 제한된 인원&lt;/b&gt;으로 열심히 1년 반이 지났다. 여전히 다양한 이유로 사람들은 나가고, 버티고, 들어오고, 또 나갔다가도 방인원이 줄어들어 들어오는 날도 기다려 준다. (이 이야기를 들을 때마다 뿌듯하고 , 감사하고, 감동이다.)&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;b&gt;기억에 남는 에피소드&lt;/b&gt; 중 재미있었던 것들은 커밋하지 않아서 코드를 날리거나, 레포 정리한다고 삭제하고 잔디를 날린 멤버들 :) ㅋㅋㅋ 1일 1 커밋을 하다 보면 꽉 찬 잔디 혹은 꽤 빼곡한 잔디를 보면 뿌듯하면서도 또 열심히 하게 되는 계기가 되는데 레포를 삭제하면 잔디가 사라지기 때문에 ... 그리고 코드를 날리고서 커밋의 중요성을 뼈저리게 느끼던 시적도 있었다. 지금은 다들 오래된 고인물이 되어서 그러지 않지만 초기에는 의외로 많은 신입 개발자들이 하는 행동이었던 것 같다. 그랬던 멤버들이 이제는 하나둘 경력이 쌓이고, 서로의 포지션에 관한 정보를 공유하다 보니 정말 많은 성장들을 했다. 그리고 무엇보다 잔디 인증을 위한 사이트나 챗봇을 만들었던 친구들이 있는데 컨퍼런스 2회를 열 수 있다면 그때 한번 다뤄볼까 한다. 실제 앱으로 만들어 구글 플레이스토어에 올리기도 하고, 구글에 '잔디정원사'라고 검색하면 나오기도 하고, 채팅방에서 / 명령어로 불러보기도 했었는데 처음엔 너무 충격적인 이슈들이었다. 이 괴물들은 이걸 만들면서 즐기고 있구나,, (흐뭇)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이번 컨퍼런스를 열게 된 계기는 무엇보다도 방 멤버들의 등쌀이었다고 해도 과언이 아니었던 것 같다.  &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1년 정도 되어갈 때 정모를 조금 더 공식적(?)으로 해볼까 하는 마음은 있었는데, 다들 컨퍼런스를 열자, 잔디방 1년 회고부터&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 style=&quot;color: #333333;&quot;&gt;우선 아무래도 스폰 없이 자체적으로 진행하다 보니 회비를 걷어 준비했고&lt;s&gt;(회비를 더 내준 멤버들에게 감사..)&lt;/s&gt;, 저렴하지 않았는데도 멤버들이 &lt;b&gt;회비가 아깝지 않았다&lt;/b&gt;고 해주었을 정도였고, 발표자들이 상상 이상의 발표 퀄리티를 보여주었다. 발표자들은 직접 프로그래밍해서 결과물을 보여주기도 하고, 선배 개발자의 조언이나 생각 등을 듣기도 했는데 다들 질문도 적당히 해주었다. 잔디방에 없는 인원도 한 명 참석했는데 발표 중간에 방에 들어오고 싶다고 이야기해서 때마침 공석이 있어서 바로 방에 들어오기도 했다. 컨퍼런스 참여자들의 포지션은 대략적으로 퍼블리셔, 프런트, 백엔드, 네트워크, 인프라, 임베디드, 게임, 기획자.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;발표 내용 - 잔디정원사에 대하여, 신입 개발자의 1년 회고, GitHub CI/CD, GitHub API, *** 네트워크와 인프라, 포지션에 대한 고민&lt;/span&gt;&lt;/span&gt;&lt;/i&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;다들 끝나고 뒤풀이 가면서부터 2회는 언제 하냐고 물어오는데 그때는 좀 더 많은 사람들이 올 수 있는 자리가 되도록 생각해보아야겠다. 그리고 자꾸 해커톤 열어달라고 해서.... 아마도...&lt;b&gt;&lt;s&gt;&lt;i&gt; (해커톤 좋아하는 변태들...)&lt;/i&gt;&lt;/s&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1472&quot; data-origin-height=&quot;952&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkw7ZB/btqF63i1pKH/ZjsKNn0sOftfrWSAMNPmMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkw7ZB/btqF63i1pKH/ZjsKNn0sOftfrWSAMNPmMK/img.png&quot; data-alt=&quot;잔디정원사 첫 단체사진 (손으로 잔디라고 표현한것,,,,,이다,,^^)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkw7ZB/btqF63i1pKH/ZjsKNn0sOftfrWSAMNPmMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdkw7ZB%2FbtqF63i1pKH%2FZjsKNn0sOftfrWSAMNPmMK%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1472&quot; data-origin-height=&quot;952&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;잔디정원사 첫 단체사진 (손으로 잔디라고 표현한것,,,,,이다,,^^)&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>NULL STACK/잔디정원사 </category>
      <category>1day1commit</category>
      <category>1일1커밋</category>
      <category>developers</category>
      <category>github</category>
      <category>GitLab</category>
      <category>개발자</category>
      <category>개발자오픈채팅방</category>
      <category>깃허브</category>
      <category>잔디방</category>
      <category>잔디정원사</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/111</guid>
      <comments>https://ellapresso.tistory.com/111#entry111comment</comments>
      <pubDate>Wed, 29 Jul 2020 21:44:53 +0900</pubDate>
    </item>
    <item>
      <title>7월 11일 MEMO</title>
      <link>https://ellapresso.tistory.com/110</link>
      <description>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;지난 TO DO LIST 진행상황&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;s&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;코틀린 적응하기&lt;/span&gt;&lt;/s&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;잔디정원사 1년기념 컨퍼런스&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;s&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;MAD-STREET-SHOP 오픈&lt;/span&gt;&lt;/s&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;지난 4월 겨우 한달 조금넘게 다닌 회사를 퇴사하며 참 많은 생각을 했다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그렇게 대단한 사수를 두고, 내 머리가 정말 따라가지는 못하는건지&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;아니면, 내가 아직 내 갈길을 정하지 못한건지 참 고민이 많았고, 내렸던 결론은 타인탓 반, 본인탓 반.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;내가 참 이도저도 아니게 두드리고 다니는구나. 하나만 파자 라는 생각과 동시에,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;잘 하는 사람과 잘 가르치는(키우는) 사람, 그리고 잘 배우는 사람은 정말 큰 차이구나. 나는 잘 배우는 사람일까? 이런 생각.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;결국 한우물만 파기로 결정. 안녕 코틀린. 다음에 다시 만나.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;얼마전 MAD-STREET-SHOP 을 마무리 지었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;앱 등록을 위해 이름도 길잇 (gil-eat)으로 변경을 했는데, 역시나...&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;모든 프로젝트는 사전조사와 설계가 철저했어야 하거늘...&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;PWA로 모든 페이지를 웹으로 만들어 버리는 바람에 리젝먹었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;일부 큰 회사들 혹은 쇼핑몰들도 보면 웹앱이던데 해결방법을 찾다가&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;팀원들 개개인의 사정으로 앱등록 대신 모바일 웹 중심으로 약간 변경했다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;중간즈음 함께 해주신 베테랑 디자이너 덕분에 훨씬 예쁘고 멋있게 마무리 되었고,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;아직까지도 heroku를 사용하지 않고 만들어 볼걸 하고 후회하고 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;정말로, 시간이 된다면 싹 갈아엎어 볼 예정이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;드디어 벼르고 있던 잔디정원사방 컨퍼런스를 열게 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;1년 반이 지난 이 시간까지 함께해준 오래된 고인물멤버들에게도 너무 고맙다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;늘 좋은 자극들을 줘서 잘 지치고 포기하는 나를 끌어준 원동력이기도 하지 않을까 싶다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;7월 25일 드디어, 조촐하지만 약간은 제대로된 컨퍼런스(라고 쓰고 정모라고 읽기)를 준비했다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;다양한 분야의 사람들이 함께 모여있는 만큼 서로의 분야에 대해 알게되는 시간이기도 하고&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;나 또한 어떤 마음으로 계속 이 커뮤니티를 이어가고있는지 공유할 수 있는 좋은 자리가 될 것 같다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;얼마전 면접을 보았다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;슬슬 재취업을 생각하고 있어서 여기저기 온라인으로 구직의사를 밝혀두었는데&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;아직 이력서와 기술면접이 준비가 전혀 되지 않은 채로 제안이 왔다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;준비가 덜 된 상태로 면접을 보는건 큰 실례라고 생각했지만,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;주위의 권유와 스스로의 상태점검도 하고싶어서 제안을 수락했다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;아니나다를까, 정말정말, 수도없이 봤던 그 기본적인 백엔드 질문에도 머릿속은 하얘졌고, 듣도보도못한 용어들도 알게 되었다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;이럴때마다 전공자들이 너무 부럽다. 그리고 정보처리기사공부를 미룬 나를 또 탓한다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;전문용어와 이론에 대한 지식의 부재가 늘 나를 초라하게 만든다. 그리고 생각이 많아진다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;이번 면접에서 기술면접을 진행한 면접관은 정말 젠틀했고, 질문의 퀄리티가 높았다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;집에오면서 거기에 어설프게나마 대답을 했더라면, 그분을 한번 더 볼 기회가 있지 않았을까 아쉬운 생각이 든다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;하지만 정말 운이 좋게 합격을 하더라도 가지 않을것 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;내가 면접관에게 털리는 모습을 본 대표의 표정이 너무 안좋았기 때문에 ㅎㅎ&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;다른 직원도 아니고 대표가 표정관리 못하는곳은 안가고싶다. (못한건지, 안한건지,,)&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;요즘 드는 생각.. 하루하루 버텨내는것만으로도 만족해야 하나..?&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;뭔가 하려고 하면 부작용이 심하다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;알게모르게 쌓여있다가, 정말 마가낀듯 딱 터져버린 날이 왔다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;&lt;s&gt;&lt;i&gt;잘 할수 있는데, 하면 잘 하는데. 그걸 증명하는게 가장 힘들다는걸 알고있는게 더 힘들다.&lt;/i&gt;&lt;/s&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;TO DO LIST&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;잔디정원사 1년기념 컨퍼런스 ( 7월 25일 )&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;기술면접 질문 정리&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;정보처리기사&lt;/span&gt;&lt;/p&gt;</description>
      <category>MEMO</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/110</guid>
      <comments>https://ellapresso.tistory.com/110#entry110comment</comments>
      <pubDate>Sun, 12 Jul 2020 00:17:54 +0900</pubDate>
    </item>
    <item>
      <title>[Deno] Deno 설치하기</title>
      <link>https://ellapresso.tistory.com/109</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;440px-Deno.svg.png&quot; data-origin-width=&quot;440&quot; data-origin-height=&quot;440&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZfnj9/btqE6xkzfoh/yVnOYnufCwZJk29NvhByCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZfnj9/btqE6xkzfoh/yVnOYnufCwZJk29NvhByCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZfnj9/btqE6xkzfoh/yVnOYnufCwZJk29NvhByCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZfnj9%2FbtqE6xkzfoh%2FyVnOYnufCwZJk29NvhByCK%2Fimg.png&quot; data-filename=&quot;440px-Deno.svg.png&quot; data-origin-width=&quot;440&quot; data-origin-height=&quot;440&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;설치하기&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Mac의 경우 보통 홈브류로 관리를 하기때문에 쉽게 설치할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1592983004145&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install deno&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다른 설치방법은 다이트 참고 : &lt;a href=&quot;https://deno.land/#installation&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Deno 설치하기&lt;/a&gt;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>deno</category>
      <category>deno install</category>
      <category>TypeScript</category>
      <category>공룡 귀여워</category>
      <category>데노</category>
      <category>데노 설치하기</category>
      <category>디노</category>
      <category>디노 설치하기</category>
      <category>설치하기</category>
      <category>타입스크립트</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/109</guid>
      <comments>https://ellapresso.tistory.com/109#entry109comment</comments>
      <pubDate>Wed, 24 Jun 2020 16:18:30 +0900</pubDate>
    </item>
    <item>
      <title>[Deno] denon 사용하기</title>
      <link>https://ellapresso.tistory.com/108</link>
      <description>&lt;hr style=&quot;margin: 20px auto 0px; border: none; cursor: pointer !important; z-index: 1; font-size: 0px; line-height: 0; background: url('../image/divider-line.svg') center -96px / 200px 420px no-repeat; width: 64px; height: 8px; padding: 18px 20px; color: #333333; font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-06-24 오후 3.41.15.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;400&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qqhFU/btqE6Nm9lf6/okcMkzhfasXZDDtC17nKI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qqhFU/btqE6Nm9lf6/okcMkzhfasXZDDtC17nKI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qqhFU/btqE6Nm9lf6/okcMkzhfasXZDDtC17nKI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqqhFU%2FbtqE6Nm9lf6%2FokcMkzhfasXZDDtC17nKI0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-06-24 오후 3.41.15.png&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;400&quot; width=&quot;200&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;deno를 사용할때 nodejs에서 nodemon과 같은 일을 하는 Third Party Module을 소개다.&lt;/p&gt;
&lt;p&gt;denon으로 이름도 아마 nodemon에서 따온것 같고, 공룡에 뿔달린것 너무 귀엽다..&lt;/p&gt;
&lt;p&gt;이 모듈 또한 마찬가지로, deno대신 denon run - 으로 실행해주면 해당 파일을 모니터링하고 있다가, 수정되면 다시 시작해준다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;설치 방법&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1592981445046&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;deno install --allow-read --allow-run --allow-write --allow-net -f --unstable https://deno.land/x/denon@v2.2.0/denon.ts&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;우선, deno가 설치 되어 있어야 한다. (&lt;a href=&quot;https://ellapresso.tistory.com/109&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Deno 설치하기&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;설치가 되고 나면, 기존에 디노 실행명령어인 &lt;b&gt;deno run [파일명]&lt;/b&gt; 대신 &lt;b&gt;denon run [파일명]&lt;/b&gt; 으로 사용해주면 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-06-24 오후 3.21.43.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;126&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cscDve/btqE42lHnqJ/huS0dqMh2rrXihKUab6Kw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cscDve/btqE42lHnqJ/huS0dqMh2rrXihKUab6Kw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cscDve/btqE42lHnqJ/huS0dqMh2rrXihKUab6Kw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcscDve%2FbtqE42lHnqJ%2FhuS0dqMh2rrXihKUab6Kw1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-06-24 오후 3.21.43.png&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;126&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;만약 설치후에 실행이 잘 안되거나 위와 같은 문구가 뜬다면,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;~/.bash_profile에 export 부터 한줄 쭉 복붙해 넣어준다. &lt;i&gt;(source .bash_profile - 설정재시작 잊지말자)&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;denon --version 으로 확인해보면 오늘날짜 기준으로 버전 v2.2.0이 뜬다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>deno</category>
      <category>denon</category>
      <category>JavaScript</category>
      <category>node</category>
      <category>nodemon</category>
      <category>TypeScript</category>
      <category>데노</category>
      <category>데논</category>
      <category>디노</category>
      <category>타입스크립트</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/108</guid>
      <comments>https://ellapresso.tistory.com/108#entry108comment</comments>
      <pubDate>Wed, 24 Jun 2020 15:57:01 +0900</pubDate>
    </item>
    <item>
      <title>[Deno] 시작하기전에.. 끄적끄적...</title>
      <link>https://ellapresso.tistory.com/107</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;deno.jpg&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1024&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tpgh1/btqET5PmKkB/JRMQjGL3AdkcQb3Kjj8CPk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tpgh1/btqET5PmKkB/JRMQjGL3AdkcQb3Kjj8CPk/img.jpg&quot; data-alt=&quot;Deno is a JavaScript/TypeScript runtime with secure defaults and a great developer experience. It&amp;amp;#39;s built on V8, Rust, and Tokio.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tpgh1/btqET5PmKkB/JRMQjGL3AdkcQb3Kjj8CPk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftpgh1%2FbtqET5PmKkB%2FJRMQjGL3AdkcQb3Kjj8CPk%2Fimg.jpg&quot; data-filename=&quot;deno.jpg&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1024&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;Deno is a JavaScript/TypeScript runtime with secure defaults and a great developer experience. It's built on V8, Rust, and Tokio.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Deno는 Node.js 창립자 Ryan Dahl이 만든 자바스크립트 및 타입스크립트 런타임이다.&lt;/p&gt;
&lt;p&gt;Nodejs에서 고치고 싶었던 부분들을 2018년 6월 발표하더니 뚝딱 만들어 낸것이 바로 이것이다..(천재들은 뭔가 다른가 봄..)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;처음 Deno를 소개할때 &lt;span style=&quot;color: #333333;&quot;&gt;Ryan Dahl이 &lt;b&gt;&quot;데노&quot;&lt;/b&gt;라고 발음했으나 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;로고가 공룡처럼 보여서 그런지 점차 &lt;b&gt;&quot;디노&quot;&lt;/b&gt;라고 불리고 있고, 잠정적으로 디노로 결정되어 가는듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Deno는 Node의 애너그램으로 Node를 반으로 잘라서&lt;b&gt; ( no | de )&lt;/b&gt;, 앞뒤를 바꾸면 deno가 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;node.js와의 차이점 : &lt;b&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=M3BM9TB-8yA&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JSconf&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;top level await&lt;/b&gt; &lt;i&gt;&lt;s&gt;(async없이 await 할 수 있다!)&lt;/s&gt;&lt;/i&gt;, 외부라이브러리를 사용할때의 &lt;b&gt;보안 문제 해결&lt;/b&gt;, 외부라이브러리를 &lt;b&gt;url로 import하는 것&lt;/b&gt;이 가장 큰 차이점이라고 볼 수 있을것 같다.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>deno</category>
      <category>JavaScript</category>
      <category>node</category>
      <category>TypeScript</category>
      <category>노드</category>
      <category>데노</category>
      <category>디노</category>
      <category>라이언달</category>
      <category>자바스크립트</category>
      <category>타입스크립트</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/107</guid>
      <comments>https://ellapresso.tistory.com/107#entry107comment</comments>
      <pubDate>Wed, 17 Jun 2020 15:59:12 +0900</pubDate>
    </item>
    <item>
      <title>롱보드 추천 /스윗피(SweetPea) 후기</title>
      <link>https://ellapresso.tistory.com/106</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;353&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Nkvmm/btqElketh2b/J6ROumRjQTWsL3k4f08nM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Nkvmm/btqElketh2b/J6ROumRjQTWsL3k4f08nM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Nkvmm/btqElketh2b/J6ROumRjQTWsL3k4f08nM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNkvmm%2FbtqElketh2b%2FJ6ROumRjQTWsL3k4f08nM1%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;353&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;취업하고나서 취미생활로 시작한 롱보드를 벌써 2년째 꾸준히 타고 있다.&lt;/p&gt;
&lt;p&gt;처음에는 들고 지나가기만해도 모르는사람이 말을 걸 정도로 신기해했는데,&lt;/p&gt;
&lt;p&gt;티비 광고나, 주변에서 점차 롱보더가 늘기 시작하니까 요즘에는 지인들이 어떤 보드를 사야하는지 많이 물어온다.&lt;/p&gt;
&lt;p style=&quot;position: absolute;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;첫 데크로&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://smartstore.naver.com/customboardshop&quot;&gt;스윗피&lt;/a&gt;&lt;span style=&quot;color: #333333;&quot;&gt;를 구매했는데 주변에도&amp;nbsp;스윗피를 추천하고있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;주변 지인들에게 스윗피를 추천하는 이유는 내가 살때보다 훨씬 가볍고, 튼튼하기 때문...&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;46인치 롱보드중에 제일 가벼울거다.&lt;/b&gt; 왜&amp;nbsp;&lt;/span&gt;가벼운게 좋냐면 늘 타고다닐수 있다면 무게가 상관없겠지만&lt;/p&gt;
&lt;p&gt;사람이 많은 길이나, 길이 고르지 않거나, 계단의 경우에는 어쩔수 없이 들고다녀야 하기 때문!&lt;/p&gt;
&lt;p&gt;그리고 스윗피는 그래픽이 많아서, 다른 사람들의 보드보다 개성있게 꾸밀 수 있다.&lt;/p&gt;
&lt;p&gt;물론, 원하는 그래픽도 가능하다. &lt;i&gt;(그래서 첫 데크에 아직도 애정이 뿜뿜한다.)&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;3120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b908XV/btqEkajmlXs/bxfhZkSv1GrmmWEuJRGkKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b908XV/btqEkajmlXs/bxfhZkSv1GrmmWEuJRGkKK/img.png&quot; data-alt=&quot;내 첫 롱보드 스윗피.. 요즘 나오는 스윗피는 더 좋아졌다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b908XV/btqEkajmlXs/bxfhZkSv1GrmmWEuJRGkKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb908XV%2FbtqEkajmlXs%2FbxfhZkSv1GrmmWEuJRGkKK%2Fimg.png&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;3120&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;내 첫 롱보드 스윗피.. 요즘 나오는 스윗피는 더 좋아졌다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;지인들에게 추천하면서 커스텀보드샵 인스타를 들어가봤는데, 샘플이 더 늘었다.&lt;/p&gt;
&lt;p&gt;아는 동생도 롱보드에 관심을 가지길래 뉴스윗피를 타보게 했더니 바로 반해서 구매한다고ㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;동생 왈, &lt;b&gt;&quot;홈페이지에서 계좌이체로 결재하면 3만원짜리 롱보드가방을 준다&quot;&lt;/b&gt;고 해서 그렇게 주문을 넣었다고 한다! (별표)&lt;/p&gt;
&lt;p&gt;조만간 스윗피 데크 한개 더 구매해놔야겠다ㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-05-21 오후 6.13.13.png&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;634&quot; width=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2PgCW/btqEjC8wipq/Ub3Rt9bUKkCID9ewRmtIX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2PgCW/btqEjC8wipq/Ub3Rt9bUKkCID9ewRmtIX0/img.png&quot; data-alt=&quot;롱보드 가방&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2PgCW/btqEjC8wipq/Ub3Rt9bUKkCID9ewRmtIX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2PgCW%2FbtqEjC8wipq%2FUb3Rt9bUKkCID9ewRmtIX0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-05-21 오후 6.13.13.png&quot; data-origin-width=&quot;814&quot; data-origin-height=&quot;634&quot; width=&quot;300&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;롱보드 가방&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-05-21 오후 5.52.10.png&quot; data-origin-width=&quot;1936&quot; data-origin-height=&quot;1290&quot; width=&quot;641&quot; height=&quot;NaN&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5qfwC/btqElj0WrpQ/35kMf10fY4KAuUpyBPRyiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5qfwC/btqElj0WrpQ/35kMf10fY4KAuUpyBPRyiK/img.png&quot; data-alt=&quot;커스텀 보드샵 인스타에서 제공하는 스윗피 그래픽예시의 일부분이다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5qfwC/btqElj0WrpQ/35kMf10fY4KAuUpyBPRyiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5qfwC%2FbtqElj0WrpQ%2F35kMf10fY4KAuUpyBPRyiK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-05-21 오후 5.52.10.png&quot; data-origin-width=&quot;1936&quot; data-origin-height=&quot;1290&quot; width=&quot;641&quot; height=&quot;NaN&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;커스텀 보드샵 인스타에서 제공하는 스윗피 그래픽예시의 일부분이다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;구매 링크 : &lt;a href=&quot;https://smartstore.naver.com/customboardshop&quot;&gt;https://smartstore.naver.com/customboardshop&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1590052211264&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;스윗피롱보드커스텀보드샵 : 네이버쇼핑 스마트스토어&quot; data-og-description=&quot;세상에서 제일 이쁜 자신만의 그래픽을 보드에 넣을수있는 커스텀 보드샵입니다&quot; data-og-host=&quot;smartstore.naver.com&quot; data-og-source-url=&quot;https://smartstore.naver.com/customboardshop&quot; data-og-url=&quot;https://smartstore.naver.com/customboardshop&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Xs75b/hyF7umkMvi/hqNQ8iInA7QfLKk4FpLP80/img.jpg?width=5194&amp;amp;height=5194&amp;amp;face=0_0_5194_5194,https://scrap.kakaocdn.net/dn/JbFs6/hyF8Nkfndo/JPBQZKPME0pks0sp8uI5tK/img.jpg?width=5194&amp;amp;height=5194&amp;amp;face=0_0_5194_5194&quot;&gt;&lt;a href=&quot;https://smartstore.naver.com/customboardshop&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smartstore.naver.com/customboardshop&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Xs75b/hyF7umkMvi/hqNQ8iInA7QfLKk4FpLP80/img.jpg?width=5194&amp;amp;height=5194&amp;amp;face=0_0_5194_5194,https://scrap.kakaocdn.net/dn/JbFs6/hyF8Nkfndo/JPBQZKPME0pks0sp8uI5tK/img.jpg?width=5194&amp;amp;height=5194&amp;amp;face=0_0_5194_5194');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;스윗피롱보드커스텀보드샵 : 네이버쇼핑 스마트스토어&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;세상에서 제일 이쁜 자신만의 그래픽을 보드에 넣을수있는 커스텀 보드샵입니다&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;smartstore.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;**스윗피 실사용자이므로 혹시 이 글을 보고 궁금한게 생긴다면 언제든지 문의댓글 환영합니댱&lt;/i&gt;&lt;/p&gt;</description>
      <category>NOSTALGIA</category>
      <category>국내 롱보드</category>
      <category>롱보드</category>
      <category>롱보드 스윗피</category>
      <category>롱보드 추천</category>
      <category>롱보드 후기</category>
      <category>롱보드댄싱</category>
      <category>스윗피</category>
      <category>스윗피롱보드</category>
      <category>입문용 롱보드</category>
      <category>커스텀보드샵</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/106</guid>
      <comments>https://ellapresso.tistory.com/106#entry106comment</comments>
      <pubDate>Thu, 21 May 2020 18:16:26 +0900</pubDate>
    </item>
    <item>
      <title>ngrok로 외부에서 로컬서버 접근하게 하기</title>
      <link>https://ellapresso.tistory.com/105</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;1. 우선 ngrok에 로그인 한다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ngrok.com/&quot;&gt;ngrok 링크&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2. Get Start for Free 버튼으로 페이지를 이동한다음, 안내대로 한다.&lt;/p&gt;
&lt;p&gt;다운로드 받고, 원하는 위치에 압축을 해제한다음, 아래 사진에서 열지않은 3번에서 알려준대로 계정 인증토큰을 등록해준다.&lt;/p&gt;
&lt;p&gt;터미널에서 ./ngrok http {원하는포트번호}를 열면, 외부에서 접근 할 수 있는 링크를 보여준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-04-01 오전 11.47.47.png&quot; data-origin-width=&quot;1494&quot; data-origin-height=&quot;1114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LIGHT/btqC9yY6UBe/bIxkUmKh74XWy1TCn5p3ZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LIGHT/btqC9yY6UBe/bIxkUmKh74XWy1TCn5p3ZK/img.png&quot; data-alt=&quot;ㅇ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LIGHT/btqC9yY6UBe/bIxkUmKh74XWy1TCn5p3ZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLIGHT%2FbtqC9yY6UBe%2FbIxkUmKh74XWy1TCn5p3ZK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-04-01 오전 11.47.47.png&quot; data-origin-width=&quot;1494&quot; data-origin-height=&quot;1114&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;ㅇ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;주의할 점은, 컴퓨터가 꺼진다거나 터미널이 종료되면 해당 접속정보로 다시 연결 할 수 없으며,&lt;/p&gt;
&lt;p&gt;생성될때마다 주소가 재 생성된다는것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>ngrok</category>
      <category>ngrok사용방법</category>
      <category>로컬접속</category>
      <category>외부접속</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/105</guid>
      <comments>https://ellapresso.tistory.com/105#entry105comment</comments>
      <pubDate>Wed, 1 Apr 2020 11:58:38 +0900</pubDate>
    </item>
    <item>
      <title>vscode의 깃렌즈(GitLens) intellij에서는?</title>
      <link>https://ellapresso.tistory.com/104</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-27 오후 2.14.09.png&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;300&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9tzVQ/btqCZ1g88Tz/RFlru73FLOk7Jw7lvajx2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9tzVQ/btqCZ1g88Tz/RFlru73FLOk7Jw7lvajx2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9tzVQ/btqCZ1g88Tz/RFlru73FLOk7Jw7lvajx2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9tzVQ%2FbtqCZ1g88Tz%2FRFlru73FLOk7Jw7lvajx2K%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-27 오후 2.14.09.png&quot; data-origin-width=&quot;310&quot; data-origin-height=&quot;300&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;vscode에서 애용하던 깃렌즈!&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;코드라인에 언제, 누가 커밋햇는지 잘 나와서 내가 싼 똥을 바로 알아볼수 있다 .&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;s&gt;(아씌이거누가 짠거야 ...는 나네?)&lt;/s&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;최근 코틀린 공부를 하면서 인텔리제이에서 같은 이름의 플러그인을 검색하니 당연히 없다.&lt;/p&gt;
&lt;p&gt;찾은것이 바로 깃 툴박스.&lt;/p&gt;
&lt;p&gt;설치하고 재실행하면 바로 ok&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-27 오후 2.13.53.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;412&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X6obd/btqC0KlWblz/S7tlAm5pqT9FjdwpA6fsr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X6obd/btqC0KlWblz/S7tlAm5pqT9FjdwpA6fsr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X6obd/btqC0KlWblz/S7tlAm5pqT9FjdwpA6fsr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX6obd%2FbtqC0KlWblz%2FS7tlAm5pqT9FjdwpA6fsr0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-27 오후 2.13.53.png&quot; data-origin-width=&quot;730&quot; data-origin-height=&quot;412&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>git</category>
      <category>gitlens</category>
      <category>gittoolbox</category>
      <category>IntelliJ</category>
      <category>vscode</category>
      <category>깃렌즈</category>
      <category>깃툴박스</category>
      <category>익스텐션</category>
      <category>플러그인</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/104</guid>
      <comments>https://ellapresso.tistory.com/104#entry104comment</comments>
      <pubDate>Fri, 27 Mar 2020 14:16:39 +0900</pubDate>
    </item>
    <item>
      <title>[잔디정원사] squash-merge란?</title>
      <link>https://ellapresso.tistory.com/103</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;한 기능을 생성하기위해 브랜치를 따서 작업중이라고 가정하자.&lt;/p&gt;
&lt;p&gt;보통 기능 또는 함수별로 커밋한다고 했을때, 작업도중 일을 그만하고 저장(커밋하고싶을때) 커밋한다음,&lt;/p&gt;
&lt;p&gt;마지막에 원하는 브랜치에 스쿼시 머지를 하면, 작업중이었던 모습을 남기지않고 한번에 한 커밋단위로 머지할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;..글 작성중&lt;/p&gt;</description>
      <category>NULL STACK/잔디정원사 </category>
      <category>git</category>
      <category>github</category>
      <category>Merge</category>
      <category>squashmerge</category>
      <category>깃</category>
      <category>머지</category>
      <category>스쿼시머지</category>
      <category>작업단위 머지하기</category>
      <category>잔디정원사</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/103</guid>
      <comments>https://ellapresso.tistory.com/103#entry103comment</comments>
      <pubDate>Tue, 24 Mar 2020 17:39:05 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 에러 java.lang.StringIndexOutOfBoundsException: begin -1, end 0, length 0</title>
      <link>https://ellapresso.tistory.com/102</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;pre id=&quot;code_1584952976289&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;java.lang.StringIndexOutOfBoundsException: begin -1, end 0, length 0&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;빈 문자열을 substring하려고 해서 생긴 에러.&lt;/p&gt;
&lt;p&gt;빈문자열이 어디 들어가나 한참 찾았다는.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>error</category>
      <category>Kotlin</category>
      <category>SUBSTRING</category>
      <category>문자열에러</category>
      <category>인텔리제이</category>
      <category>코틀린</category>
      <category>코틀린문자열에러</category>
      <category>코틀린에러</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/102</guid>
      <comments>https://ellapresso.tistory.com/102#entry102comment</comments>
      <pubDate>Mon, 23 Mar 2020 17:43:58 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 입력받은 문자열의 개행(줄바꿈) 없애기</title>
      <link>https://ellapresso.tistory.com/101</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;입력받은 문자열에 개행이 포함되어있어 없애고 싶을때&lt;/p&gt;
&lt;p&gt;var 입력받은문자 : String&lt;/p&gt;
&lt;pre id=&quot;code_1584674796787&quot; class=&quot;kotlin&quot; data-ke-language=&quot;kotlin&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;입력받은문자.replace(&quot;\\r\\n|\\r|\\n|\\n\\r&quot;.toRegex(),&quot;&quot;)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>Kotlin</category>
      <category>개행</category>
      <category>문자열 개행 없애기</category>
      <category>문자열 줄바꿈 삭제</category>
      <category>없애기</category>
      <category>입력받은문자열 개행 없애기</category>
      <category>줄바꿈</category>
      <category>코틀린</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/101</guid>
      <comments>https://ellapresso.tistory.com/101#entry101comment</comments>
      <pubDate>Fri, 20 Mar 2020 12:27:35 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 스프링부트 브라우저에 hello world 띄우기</title>
      <link>https://ellapresso.tistory.com/99</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;우선 스프링 이니셜라이즈에서 프로젝트를 생성해 준다. (방법 : &lt;a href=&quot;https://ellapresso.tistory.com/entry/%EC%BD%94%ED%8B%80%EB%A6%B0%EC%9C%BC%EB%A1%9C-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0?category=777454&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;코틀린 스프링부트 시작하기&lt;/a&gt; )&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.30.51.png&quot; data-origin-width=&quot;2392&quot; data-origin-height=&quot;1574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FdLth/btqCENDWEzs/tuQZ9LXhOKBHgOD90ZjPK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FdLth/btqCENDWEzs/tuQZ9LXhOKBHgOD90ZjPK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FdLth/btqCENDWEzs/tuQZ9LXhOKBHgOD90ZjPK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFdLth%2FbtqCENDWEzs%2FtuQZ9LXhOKBHgOD90ZjPK0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.30.51.png&quot; data-origin-width=&quot;2392&quot; data-origin-height=&quot;1574&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.16.26.png&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;664&quot; width=&quot;378&quot; height=&quot;319&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dYhfM7/btqCDkWBHAR/agkkOOeZY3DnVUWrkB0Npk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dYhfM7/btqCDkWBHAR/agkkOOeZY3DnVUWrkB0Npk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dYhfM7/btqCDkWBHAR/agkkOOeZY3DnVUWrkB0Npk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdYhfM7%2FbtqCDkWBHAR%2FagkkOOeZY3DnVUWrkB0Npk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.16.26.png&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;664&quot; width=&quot;378&quot; height=&quot;319&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;생성된 프로젝트를 import했다면, 가장 기본 폴더인 src/main/kotlin안의 main함수에 println을 찍어보고, 빌드 후 실행 시켜본다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.36.38.png&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;315&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GGGbt/btqCGQmnrlJ/j1vUdkoYJdhFt4kVN8xiKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GGGbt/btqCGQmnrlJ/j1vUdkoYJdhFt4kVN8xiKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GGGbt/btqCGQmnrlJ/j1vUdkoYJdhFt4kVN8xiKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGGGbt%2FbtqCGQmnrlJ%2Fj1vUdkoYJdhFt4kVN8xiKk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.36.38.png&quot; data-origin-width=&quot;689&quot; data-origin-height=&quot;315&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;println의 내용이 정상적으로 찍힌다면, 같은 위치에 새로운 kotlin파일을 생성해 본다. 이름은 상관 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.58.38.png&quot; data-origin-width=&quot;962&quot; data-origin-height=&quot;442&quot; width=&quot;666&quot; height=&quot;306&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dJy3o4/btqCGQNs1sG/KwnkoNh0nckG9Fjm9CFyP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dJy3o4/btqCGQNs1sG/KwnkoNh0nckG9Fjm9CFyP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dJy3o4/btqCGQNs1sG/KwnkoNh0nckG9Fjm9CFyP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJy3o4%2FbtqCGQNs1sG%2FKwnkoNh0nckG9Fjm9CFyP0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.58.38.png&quot; data-origin-width=&quot;962&quot; data-origin-height=&quot;442&quot; width=&quot;666&quot; height=&quot;306&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;새로운 파일에 위와 같이 작성한 다음, localhost:8080으로 접속해 확인한다.&lt;/p&gt;
&lt;p&gt;끗&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>Get</category>
      <category>hello kotlin</category>
      <category>Hello World</category>
      <category>Kotlin</category>
      <category>REST API</category>
      <category>spring boot</category>
      <category>스프링부트</category>
      <category>코틀린</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/99</guid>
      <comments>https://ellapresso.tistory.com/99#entry99comment</comments>
      <pubDate>Fri, 13 Mar 2020 11:03:49 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 스프링부트 포트 변경하기</title>
      <link>https://ellapresso.tistory.com/98</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;기본적인 포트는 8080이다.&lt;/p&gt;
&lt;p&gt;변경을 원할때는 application.properties에 추가 기입을 해 주면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.36.13.png&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCrjmG/btqCJmdPL6l/QcAof0GVAqVk7pOLoN3Ci1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCrjmG/btqCJmdPL6l/QcAof0GVAqVk7pOLoN3Ci1/img.png&quot; data-alt=&quot;위치 및 추가된 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCrjmG/btqCJmdPL6l/QcAof0GVAqVk7pOLoN3Ci1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCrjmG%2FbtqCJmdPL6l%2FQcAof0GVAqVk7pOLoN3Ci1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.36.13.png&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;351&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;위치 및 추가된 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;다시, Run을 하면 다음과 같이 포트가 변경된것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.37.16.png&quot; data-origin-width=&quot;270&quot; data-origin-height=&quot;95&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FC5Ro/btqCEPhsznc/BrgqVz9gTD0QYd56EijP70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FC5Ro/btqCEPhsznc/BrgqVz9gTD0QYd56EijP70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FC5Ro/btqCEPhsznc/BrgqVz9gTD0QYd56EijP70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFC5Ro%2FbtqCEPhsznc%2FBrgqVz9gTD0QYd56EijP70%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-13 오전 10.37.16.png&quot; data-origin-width=&quot;270&quot; data-origin-height=&quot;95&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>Kotlin</category>
      <category>port</category>
      <category>springboot</category>
      <category>스프링부트</category>
      <category>코틀린</category>
      <category>코틀린 스프링부트 포트변경</category>
      <category>포트변경</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/98</guid>
      <comments>https://ellapresso.tistory.com/98#entry98comment</comments>
      <pubDate>Fri, 13 Mar 2020 10:56:23 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 스프링부트 시작하기</title>
      <link>https://ellapresso.tistory.com/97</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;b&gt;스프링 이니셜라이저&lt;/b&gt; : &lt;a href=&quot;https://start.spring.io/&quot;&gt;https://start.spring.io/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-12 오후 6.35.52.png&quot; data-origin-width=&quot;3156&quot; data-origin-height=&quot;1956&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2RFrp/btqCBytXIf9/HboAIhWXKXHlbIsFUg8KFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2RFrp/btqCBytXIf9/HboAIhWXKXHlbIsFUg8KFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2RFrp/btqCBytXIf9/HboAIhWXKXHlbIsFUg8KFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2RFrp%2FbtqCBytXIf9%2FHboAIhWXKXHlbIsFUg8KFk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-12 오후 6.35.52.png&quot; data-origin-width=&quot;3156&quot; data-origin-height=&quot;1956&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;원하는 프로젝트와 언어 등을 선택 후 메타데이터 입력,&lt;/p&gt;
&lt;p&gt;추가적인 Dependency를 검색하여 넣은다음 생성하면 zip파일이 다운로드 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 파일을 풀어 import하면 된다.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>gradle</category>
      <category>Groovy</category>
      <category>java</category>
      <category>Kotlin</category>
      <category>maven</category>
      <category>spring initializr</category>
      <category>springboot</category>
      <category>스프링부트</category>
      <category>코틀린</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/97</guid>
      <comments>https://ellapresso.tistory.com/97#entry97comment</comments>
      <pubDate>Thu, 12 Mar 2020 18:38:47 +0900</pubDate>
    </item>
    <item>
      <title>mac OS 원하는 shell로 바꾸는 두가지 방법</title>
      <link>https://ellapresso.tistory.com/96</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-12 오후 3.54.00.png&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EttMx/btqCGRk1qq7/gwLkVG2beYmx7wSqzKMOP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EttMx/btqCGRk1qq7/gwLkVG2beYmx7wSqzKMOP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EttMx/btqCGRk1qq7/gwLkVG2beYmx7wSqzKMOP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEttMx%2FbtqCGRk1qq7%2FgwLkVG2beYmx7wSqzKMOP1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-12 오후 3.54.00.png&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;630&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;1. 터미널을 열어서 확인 할 수 있다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;사용 가능한 쉘 목록 보기 : cat/etc/shells&lt;/p&gt;
&lt;p&gt;원하는 쉘로 바꾸기 :&amp;nbsp;&lt;span&gt;chsh -s /bin/bash (원하는 쉘)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-03-12 오후 3.53.25.png&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;1174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dg4Cqs/btqCEOWPjpT/1GiT5p2fVlXuaEmpqGr991/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dg4Cqs/btqCEOWPjpT/1GiT5p2fVlXuaEmpqGr991/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dg4Cqs/btqCEOWPjpT/1GiT5p2fVlXuaEmpqGr991/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdg4Cqs%2FbtqCEOWPjpT%2F1GiT5p2fVlXuaEmpqGr991%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-03-12 오후 3.53.25.png&quot; data-origin-width=&quot;1332&quot; data-origin-height=&quot;1174&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. 또는 터미널을 띄운 상태로 상단 메뉴바에 터미널 &amp;gt; 환경설정 &amp;gt; 일반에서 셸 열기 에서 가능한 쉘로 바꾸어 주어도 된다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;단, 설정후 터미널 재시작 해야함.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>bash 쉘 쓰기</category>
      <category>bash에서zsh로</category>
      <category>MacOS</category>
      <category>shell bash</category>
      <category>shell zsh</category>
      <category>shell바꾸기</category>
      <category>zsh쉘 쓰기</category>
      <category>zsh에서bash로</category>
      <category>맥북</category>
      <category>쉘 바꾸기</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/96</guid>
      <comments>https://ellapresso.tistory.com/96#entry96comment</comments>
      <pubDate>Thu, 12 Mar 2020 16:00:49 +0900</pubDate>
    </item>
    <item>
      <title>2월 23일 MEMO</title>
      <link>https://ellapresso.tistory.com/95</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;머릿속에 생각할 일이 너무 많아 졌다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;요 몇달간 정말 많은 일을 겪었고, 여전히 다 정리가 되질 않는다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;다시는 없을것 같은 팀원들과의 만남,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그 이유인 다시는 없을것 같은 회사와의 헤어짐.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;고인물 10여명이 존버하고있는, 거의 1년이 다 되어가는 오픈채팅방,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;실업급여 받으면서 프로젝트 할 생각에 들떠 있었던 나와&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그렇지 못한 내 행동의 결과...&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;아직 시작한것은 아니지만, 계속 한명한명 순간의 표정들이 떠오르는게&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;나도 모르게 기대를 잔뜩 하고있는 것 같다.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;신종코로나 때문에 당장 몇일후 떠날 가족여행이 너무 걱정되지만,&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;그와중에 노트북 챙겨가고싶다는 생각도 한가득.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;올 한해는 돈 많이 벌고 다 ~~ 잘될거라고 했으니까&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;딱 6월만 존버하고 나머지는 기세에 맞게 치고나가는걸로.&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;TO DO LIST&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;코틀린 적응하기&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;잔디정원사 1년기념 컨퍼런스&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;MAD-STREET-SHOP 오픈&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>MEMO</category>
      <category>DONE IS BETTER THAN PERFECT</category>
      <category>Quocunque Jeceris Stabit</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/95</guid>
      <comments>https://ellapresso.tistory.com/95#entry95comment</comments>
      <pubDate>Sun, 23 Feb 2020 19:40:43 +0900</pubDate>
    </item>
    <item>
      <title>[잔디정원사] 깃허브 잔디에 private 레포 심기</title>
      <link>https://ellapresso.tistory.com/94</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Q. 나는 분명 열심히 커밋을 하는데, 왜 내 깃허브 잔디는 텅텅 비어요?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-02-09 오전 1.21.39.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;310&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BidDD/btqBOCQXvd5/YZTfAzhqnP7rfds0qJTYt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BidDD/btqBOCQXvd5/YZTfAzhqnP7rfds0qJTYt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BidDD/btqBOCQXvd5/YZTfAzhqnP7rfds0qJTYt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBidDD%2FbtqBOCQXvd5%2FYZTfAzhqnP7rfds0qJTYt0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-02-09 오전 1.21.39.png&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;310&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;나는 잔디를 자랑하고 싶은데, 왜 텅텅 비어보일까요?&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;분명 default로 설정된 브랜치에 'push'했는데, (주로 master가 기본 입니다.)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;왜 내 잔디밭은 텅텅 비어있을까요?&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;잔디방 오른쪽 위의 Contribution settings를 확인해 볼까요?&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-02-09 오전 1.25.42.png&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;490&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOu8Fb/btqBO8IVksR/xrcga3rLnmaMLVX2iK1fVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOu8Fb/btqBO8IVksR/xrcga3rLnmaMLVX2iK1fVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOu8Fb/btqBO8IVksR/xrcga3rLnmaMLVX2iK1fVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOu8Fb%2FbtqBO8IVksR%2Fxrcga3rLnmaMLVX2iK1fVk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-02-09 오전 1.25.42.png&quot; data-origin-width=&quot;762&quot; data-origin-height=&quot;490&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Private contributions가 체크되어 있는지 확인해보세요!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;이 부분이 체크되어 있어야만, 잔디에 반영이 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-02-09 오전 1.17.08.png&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bu7axK/btqBRwWidie/cQrkvmhKsKEkjpkFKyNoAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bu7axK/btqBRwWidie/cQrkvmhKsKEkjpkFKyNoAk/img.png&quot; data-alt=&quot;짜잔 ~~~~&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bu7axK/btqBRwWidie/cQrkvmhKsKEkjpkFKyNoAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbu7axK%2FbtqBRwWidie%2FcQrkvmhKsKEkjpkFKyNoAk%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-02-09 오전 1.17.08.png&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;308&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;짜잔 ~~~~&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>NULL STACK/잔디정원사 </category>
      <category>1일1커밋</category>
      <category>contributions</category>
      <category>contributions calendar</category>
      <category>git</category>
      <category>github</category>
      <category>Repository</category>
      <category>깃허브잔디</category>
      <category>레포</category>
      <category>잔디</category>
      <category>잔디반영이안돼요</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/94</guid>
      <comments>https://ellapresso.tistory.com/94#entry94comment</comments>
      <pubDate>Sun, 9 Feb 2020 01:28:06 +0900</pubDate>
    </item>
    <item>
      <title>[잔디정원사] git merge, push, pull이 뭐에요? ( + clone)</title>
      <link>https://ellapresso.tistory.com/93</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;* push, pull, clone은 아래쪽에 묶어서 설명해두었다. 그 부분을 보려면 바로 스크롤 내리면 됨.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;브랜치라는 개념을 이해했다면, &lt;a href=&quot;https://ellapresso.tistory.com/entry/%EC%9E%94%EB%94%94%EC%A0%95%EC%9B%90%EC%82%AC-branch-%EB%A7%8C%EB%93%A4%EA%B8%B0-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%9E%80&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;*모른다면 클릭&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;기능별로 작성한 코드를 합쳐야 한다. 바로 그때 사용하는게 merge이다.&lt;/p&gt;
&lt;p&gt;주로 현업에서는 master - develop - feature&lt;span style=&quot;color: #9d9d9d;&quot;&gt;(이 네이밍은 회사별로 차이가 있다)&amp;nbsp;&lt;span style=&quot;color: #000000;&quot;&gt;세가지 부류의 브랜치를 나눌수 있겠는데,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;master는 배포된, 운영중인 (혹은 그 직전의 완전히 테스트나 QA가 끝이 난) 코드를 관리하고,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;develop은 어느정도 점검은 되었지만, 개발중인, 아직 배포전인 코드를 관리하고,&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;feature&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;브랜치에서는 개발중인 코드를 관리한다.&amp;nbsp;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;(지금 내가 속한 회사에서는 feature, bugfix, hotfix까지 나누어 사용한다)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이부분은 추후에 &lt;a href=&quot;https://danielkummer.github.io/git-flow-cheatsheet/index.ko_KR.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;b&gt;git-flow&lt;/b&gt;&lt;/a&gt;사용법으로 설명하겠다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;우선, 앞서 만들어둔 master 와 sample브랜치를 merge 해보자.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;그 전에, 어디에 있는 코드를 어디로 넣을것인지 헷갈리면 안된다.&lt;span style=&quot;color: #ee2323;&quot;&gt; (별표 백개)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;우리는 sample에 있는 코드를, master에 반영할 것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. merge : master 브랜치에서, 다음 명령어를 실행한다. &lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;(별표 백개)&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579749247372&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git merge sample&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;그리고 git log를 찍어보자. master에서는 없었던 sample브랜치에서의 커밋내역이 들어오게 된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;로컬에서도 가능하지만,&lt;/p&gt;
&lt;p&gt;GitHub등의 원격 저장소를 제공하는 서비스를 가입후 레포지토리를 하나 생성 한 다음 &lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;초록색 **&lt;/b&gt;을&lt;/span&gt; 따라해보길 바란다.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. clone : 저장소를 복제한다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;주로 원격 저장소의 코드를 가져올때 사용한다. 우리는 우선, 로컬에서 다른 디렉토리에 복제 해 보자.&lt;/p&gt;
&lt;p&gt;현재 사용중인 저장소 폴더의 이름이 바탕화면에 있는 test폴더라고 가정하에, 바탕화면에서 clone을 해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1579750222739&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git clone ./test test2
git clone &amp;lt;'복사할저장소주소'&amp;gt; &amp;lt;'이름설정-생략가능'&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;test2라고 적힌 부분은 복제한 폴더의 이름을 지정하고 싶을때 적어주고, 생략가능하다. (생략하면 동일한 폴더명)&lt;/p&gt;
&lt;p&gt;test2 폴더에 들어가보자. 우리가 이전에 작업한 파일들과, 동일한 커밋내역을 가지고 있는 저장소가 생성되었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-filename=&quot;스크린샷 2020-01-23 오후 12.49.39.png&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;434&quot; width=&quot;396&quot; height=&quot;195&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GgLaZ/btqBqPv6HCF/6Rw9fJbMmh48PhCDEo3DMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GgLaZ/btqBqPv6HCF/6Rw9fJbMmh48PhCDEo3DMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GgLaZ/btqBqPv6HCF/6Rw9fJbMmh48PhCDEo3DMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGgLaZ%2FbtqBqPv6HCF%2F6Rw9fJbMmh48PhCDEo3DMK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-23 오후 12.49.39.png&quot; data-origin-width=&quot;880&quot; data-origin-height=&quot;434&quot; width=&quot;396&quot; height=&quot;195&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;** 원격저장소 복제하기 (예시 : GitHub)&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;레포지토리 우측상단에 clone or download라는 버튼을 눌러보면, 주소를 제공해 준다. 복사해서 사용해보자.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;비트버킷이나 깃랩 등등 원격저장소 서비스를 제공하는 곳에서 공유된 코드를 쉽게 내려받을 수 있다.&lt;/span&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;** 3. push : 변경된 코드를 원격 저장소에 밀어 넣는다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579752998069&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;git add &amp;gt; git commit &amp;gt; git push 순서대로&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. pull : 변경된 코드를 내려받는다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;test2안에서 새로운 커밋내역을 생성한 다음, test폴더에 공유하고 싶을때 로컬이라면 그냥 test폴더에서 아래코드를 실핼하면 된다.&lt;/p&gt;
&lt;pre id=&quot;code_1579751312138&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git pull ../test2&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;** 원격저장소와 연결이 되어 있다면, git pull 명령어만 실행하면 된다.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ellapresso.tistory.com/entry/%EA%B9%83%ED%81%AC%EB%9D%BC%EC%BC%84%EC%9C%BC%EB%A1%9C-%EA%B9%83-%EC%89%BD%EA%B2%8C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;연관 글 &amp;gt;&amp;gt; 다 귀찮고, GUI 툴로 일단 쉽게 쓸래요 ! (깃 크라켄)&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <category>NULL STACK/잔디정원사 </category>
      <category>1일1커밋</category>
      <category>Clone</category>
      <category>git</category>
      <category>git merge</category>
      <category>git pull</category>
      <category>git push</category>
      <category>Merge</category>
      <category>깃</category>
      <category>깃 사용법</category>
      <category>잔디정원사</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/93</guid>
      <comments>https://ellapresso.tistory.com/93#entry93comment</comments>
      <pubDate>Thu, 23 Jan 2020 13:25:41 +0900</pubDate>
    </item>
    <item>
      <title>[잔디정원사] branch 만들기, 브랜치 란?</title>
      <link>https://ellapresso.tistory.com/92</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;브랜치에 관해서 작성해보겠다. &lt;span style=&quot;color: #ee2323;&quot;&gt;바로 사용법을 알고싶으면 스크롤을 내리세여&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;우선 이전까지 알아본 git의 사용법을 보면, 커밋 시점에 우리가 작업한 스냅샷을 저장하는 개념이라고 볼 수 있다.&lt;/p&gt;
&lt;p&gt;브랜치는 그 커밋 사이를 좀더 쉽에 오갈수 있게 해준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-filename=&quot;스크린샷 2020-01-23 오전 10.56.10.png&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;452&quot; width=&quot;164&quot; height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCevvP/btqBpPRhet3/nPe5JH3BbhnDChzkPBZnH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCevvP/btqBpPRhet3/nPe5JH3BbhnDChzkPBZnH1/img.png&quot; data-alt=&quot;내가 애용하는 깃크라켄&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCevvP/btqBpPRhet3/nPe5JH3BbhnDChzkPBZnH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCevvP%2FbtqBpPRhet3%2FnPe5JH3BbhnDChzkPBZnH1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-23 오전 10.56.10.png&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;452&quot; width=&quot;164&quot; height=&quot;346&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;내가 애용하는 깃크라켄&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;예를들어, 동그라미를 그린다음 커밋후, new라는 브랜치를 생성한다.&lt;/p&gt;
&lt;p&gt;기본 master브랜치와, new브랜치 두개다 같은 동그라미를 바라보고있지만,&lt;/p&gt;
&lt;p&gt;new브랜치에서 동그라미 위에 세모 두개를 그려주고 커밋을하면&lt;span style=&quot;color: #dddddd;&quot;&gt;&lt;i&gt;&lt;s&gt;(고양이)&lt;/s&gt;&lt;/i&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;master는 이전 커밋내용을, new는 바뀐 내용을 가지고 있게된다.&lt;/p&gt;
&lt;p&gt;우리는 브랜치를 바꿈으로써 쉽게 과거로 갈 수 있다 &lt;span style=&quot;color: #dddddd;&quot;&gt;(히히)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이렇게 어떤 브랜치에는 동그라미 아래에 네모를 그려 다 같이 머지를 하면 완성된 그림이 나오는것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;브랜치를 만들어 보자.&lt;/p&gt;
&lt;p&gt;보통 git init을 하면 기본적으로 master라는 브랜치가 생성되어있다. &lt;b&gt;다음 설명들은 모두 git 저장소 루트 경로에서 실행한다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. 현재 브랜치 확인하기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579744901766&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git branch&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;브랜치를 아무것도 만들지 않았다면, master브랜치를 보게 된다.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;*note : Git 버전 관리 시스템에서 &amp;ldquo;master&amp;rdquo; 브랜치는 특별하지 않다. 다른 브랜치와 다른 것이 없다. 다만 모든 저장소에서 &amp;ldquo;master&amp;rdquo; 브랜치가 존재하는 이유는&amp;nbsp;git init&amp;nbsp;명령으로 초기화할 때 자동으로 만들어진 이 브랜치를 애써 다른 이름으로 변경하지 않기 때문이다. (&amp;nbsp;&lt;a href=&quot;https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;출처 : git &lt;/a&gt;)&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span&gt;2. 샘플 브랜치를 생성해보자&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579745202133&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git branch sample&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-filename=&quot;스크린샷 2020-01-23 오전 11.07.13.png&quot; data-origin-width=&quot;134&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZefDP/btqBsHjwT2V/3D4j3uf3nvfeJtpndSBj9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZefDP/btqBsHjwT2V/3D4j3uf3nvfeJtpndSBj9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZefDP/btqBsHjwT2V/3D4j3uf3nvfeJtpndSBj9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZefDP%2FbtqBsHjwT2V%2F3D4j3uf3nvfeJtpndSBj9k%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-23 오전 11.07.13.png&quot; data-origin-width=&quot;134&quot; data-origin-height=&quot;56&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;그리고 다시 브랜치를 확인해보면, 새로 생성된 브랜치를 확인 할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. 새로 생성한 브랜치로 이동하자&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579745331784&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git checkout sample&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-filename=&quot;스크린샷 2020-01-23 오전 11.08.28.png&quot; data-origin-width=&quot;148&quot; data-origin-height=&quot;56&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcTK0z/btqBrB49Y4n/IujPEh9JBx7PzVB5BJbnn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcTK0z/btqBrB49Y4n/IujPEh9JBx7PzVB5BJbnn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcTK0z/btqBrB49Y4n/IujPEh9JBx7PzVB5BJbnn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcTK0z%2FbtqBrB49Y4n%2FIujPEh9JBx7PzVB5BJbnn1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-23 오전 11.08.28.png&quot; data-origin-width=&quot;148&quot; data-origin-height=&quot;56&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;새로 생성된 브랜치로 이동했다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. 새로운 파일을 생성한 뒤 로그를 확인해 보자&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;막연히 브랜치만 생성해서는 뭐가 다른지 알 수 없다. 따라서 브랜치를 sample에 둔 상태에서, 새로운 파일을 하나 커밋해보자.&lt;/p&gt;
&lt;p&gt;( 새로운 파일 생성 &amp;gt; git add &amp;gt; git commit &amp;gt; git log )&amp;nbsp; &lt;a href=&quot;https://ellapresso.tistory.com/entry/%EC%9E%94%EB%94%94%EC%A0%95%EC%9B%90%EC%82%AC-git-%EA%B8%B0%EB%B3%B8%EC%9A%A9%EC%96%B4-%EB%B0%8F-%EC%84%A4%EB%AA%85-local&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;* 이부분을 잘 모른다면 클릭&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;로그를 찍어 새로운 파일을 커밋한 내역을 확인했다면, &amp;nbsp;master로 브랜치를 옮겨 로그를 확인한다.&lt;/p&gt;
&lt;p&gt;방금 sample브랜치에서 커밋한 내역이 보이지 않는다. 정상이다 :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;새로 만든 브랜치속의 코드가 오류없이 잘 작동한다면, master에 합쳐보자 !&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ellapresso.tistory.com/entry/%EC%9E%94%EB%94%94%EC%A0%95%EC%9B%90%EC%82%AC-git-merge-push-pull%EC%9D%B4-%EB%AD%90%EC%97%90%EC%9A%94-clone&quot;&gt;다음글 &amp;gt;&amp;gt; git merge, push, pull이 뭐에요?&lt;/a&gt;&lt;/p&gt;</description>
      <category>NULL STACK/잔디정원사 </category>
      <category>1일1커밋</category>
      <category>branch</category>
      <category>git</category>
      <category>git branch</category>
      <category>git commit</category>
      <category>Merge</category>
      <category>깃</category>
      <category>깃 브랜치 사용법</category>
      <category>깃 사용법</category>
      <category>잔디정원사</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/92</guid>
      <comments>https://ellapresso.tistory.com/92#entry92comment</comments>
      <pubDate>Thu, 23 Jan 2020 11:24:29 +0900</pubDate>
    </item>
    <item>
      <title>[잔디정원사] commit을 잘못했어요! git reset --</title>
      <link>https://ellapresso.tistory.com/91</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;아직 익숙하지 않은 git 사용중, 원하지 않는 내용을 커밋했거나, 다시 돌아가고 싶은 시점이 생기기 마련이다.&lt;/p&gt;
&lt;p&gt;그럴땐 어떻게 해야 할까?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;우리가 이러려고 git을 쓰는거다...&lt;/p&gt;
&lt;p&gt;나를 믿지 않으니까ㅋㅋㅋㅋㅋㅋㅋㅋㅋ&lt;/p&gt;
&lt;p&gt;사실 git이 익숙하더라도 과거로 돌아가고 싶은 때가 많다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.31.27.png&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WySoY/btqBr7CuiJk/YoKBwV4YrZy1ww8mmo1mcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WySoY/btqBr7CuiJk/YoKBwV4YrZy1ww8mmo1mcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WySoY/btqBr7CuiJk/YoKBwV4YrZy1ww8mmo1mcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWySoY%2FbtqBr7CuiJk%2FYoKBwV4YrZy1ww8mmo1mcK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.31.27.png&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;187&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;git log를 실행했을때 나오는 &lt;span&gt;&amp;lt;tree-ish&amp;gt; , 즉&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;오른쪽 사진의 commit 옆의 커밋해시&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;저부분을 복사해서 돌릴수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;삭제하기 전으로 돌리고 싶다면, 아래의 82ba로 시작하는 &lt;span style=&quot;color: #333333;&quot;&gt;커밋해시&lt;/span&gt;를 복사해서 다음 명령어를 실행해보자.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579690929198&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git reset 커밋해시&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-filename=&quot;스크린샷 2020-01-22 오후 8.01.52.png&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;39&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rLutX/btqBpQbn9a5/bTpZg78uuZTBWKXqYU0oVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rLutX/btqBpQbn9a5/bTpZg78uuZTBWKXqYU0oVK/img.png&quot; data-alt=&quot;unstage되었다고 나온다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rLutX/btqBpQbn9a5/bTpZg78uuZTBWKXqYU0oVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrLutX%2FbtqBpQbn9a5%2FbTpZg78uuZTBWKXqYU0oVK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-22 오후 8.01.52.png&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;39&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;unstage되었다고 나온다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;reset을 할때 아무런 옵션도 적어주지 않으면,&lt;/p&gt;
&lt;p&gt;git reset --mixed &lt;span style=&quot;color: #333333;&quot;&gt;커밋해시&lt;/span&gt; 와 동일한 명령어가 된다.&lt;/p&gt;
&lt;p&gt;로그를 찍어보면 위의 '삭제함' 커밋은 사라졌고,' 커밋메세지' 커밋까지는 있지만, 파일은 삭제되어있는 상태이다.&lt;/p&gt;
&lt;p&gt;여기서 다시 커밋을 한다면, 파일이 삭제된 부분을 다시 커밋하는것과 동일하다.&lt;/p&gt;
&lt;p&gt;만약 파일이 삭제되기 전으로 가고 싶다면 --hard 옵션을 사용한다. (보통 원하는 결과는 --hard옵션을 사용한 상태인듯..)&lt;/p&gt;
&lt;pre id=&quot;code_1579691188490&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git reset --hard 커밋해시&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;** --soft 라는 명령어도 있는데...&lt;/p&gt;
&lt;p&gt;--mixed와의 차이점은 stage상태인지, unstage상태인지의 차이인듯.. 이부분은 나중에 추가하거나, 더 다루어야 할 것 같다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>NULL STACK/잔디정원사 </category>
      <category>1일1커밋</category>
      <category>commit</category>
      <category>git</category>
      <category>git reset</category>
      <category>git명령어</category>
      <category>reset commit</category>
      <category>깃</category>
      <category>잔디정원사</category>
      <category>커밋 되돌리기</category>
      <category>커밋 삭제하기</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/91</guid>
      <comments>https://ellapresso.tistory.com/91#entry91comment</comments>
      <pubDate>Wed, 22 Jan 2020 20:14:23 +0900</pubDate>
    </item>
    <item>
      <title>[잔디정원사] git 기본용어 및 설명 (local)</title>
      <link>https://ellapresso.tistory.com/90</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;git이 뭔지도 알았고, git을 설치 했는데, 이걸 어떻게 쓰냐..&lt;/p&gt;
&lt;p&gt;그 전에 우선 가장 기본적인 용어를 알고 시작하자. (요건 내 기준)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;469&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEuUvw/btqBr8nQpql/GbJOj5k1JA7FGKwsHV24Rk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEuUvw/btqBr8nQpql/GbJOj5k1JA7FGKwsHV24Rk/img.png&quot; data-alt=&quot;기본적으로 짚고 넘어가야한다고 생각하는것에 체크해두었다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEuUvw/btqBr8nQpql/GbJOj5k1JA7FGKwsHV24Rk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEuUvw%2FbtqBr8nQpql%2FGbJOj5k1JA7FGKwsHV24Rk%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;656&quot; data-origin-height=&quot;469&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기본적으로 짚고 넘어가야한다고 생각하는것에 체크해두었다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. init : git저장소로 만든다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579688137500&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;저장소로 만들고 싶은 디렉토리 루트경로에서 위 명령어를 실행한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.14.28.png&quot; data-origin-width=&quot;83&quot; data-origin-height=&quot;78&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceopal/btqBpQCqpAZ/U0V8hHddYFSzoN3lESiYV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceopal/btqBpQCqpAZ/U0V8hHddYFSzoN3lESiYV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceopal/btqBpQCqpAZ/U0V8hHddYFSzoN3lESiYV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fceopal%2FbtqBpQCqpAZ%2FU0V8hHddYFSzoN3lESiYV1%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.14.28.png&quot; data-origin-width=&quot;83&quot; data-origin-height=&quot;78&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;그러면 .git폴더가 생성되지만, 아직 git이 관리를 하는것은 아니다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&lt;s&gt;&lt;i&gt;(맥OS에서는 숨김폴더가 보이지 않는다. shift + command + . 을 눌러보자. &amp;gt;&amp;gt; )&lt;/i&gt;&lt;/s&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatRight&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.21.42.png&quot; data-origin-width=&quot;141&quot; data-origin-height=&quot;47&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bExqh5/btqBqPbwrfr/IX7Ne338JtHA1fSW7e6kJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bExqh5/btqBqPbwrfr/IX7Ne338JtHA1fSW7e6kJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bExqh5/btqBqPbwrfr/IX7Ne338JtHA1fSW7e6kJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbExqh5%2FbtqBqPbwrfr%2FIX7Ne338JtHA1fSW7e6kJK%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.21.42.png&quot; data-origin-width=&quot;141&quot; data-origin-height=&quot;47&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2. add : git으로 관리하고자 하는 파일을 넣는다. &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579688872540&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git add 파일 혹은 폴더&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;b&gt;3. commit : git이 해당 파일을 관리하도록 한다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.21.14.png&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zZazm/btqBqjc5JRk/mbL39VyVkisFYmiLFElKe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zZazm/btqBqjc5JRk/mbL39VyVkisFYmiLFElKe0/img.png&quot; data-alt=&quot;커밋 옵션들&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zZazm/btqBqjc5JRk/mbL39VyVkisFYmiLFElKe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzZazm%2FbtqBqjc5JRk%2FmbL39VyVkisFYmiLFElKe0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.21.14.png&quot; data-origin-width=&quot;648&quot; data-origin-height=&quot;182&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;커밋 옵션들&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1579688693833&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git commit -m 커밋메세지&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.26.19.png&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;52&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csTPsK/btqBqpxndL6/YHBnglrELdhjscIQORruy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csTPsK/btqBqpxndL6/YHBnglrELdhjscIQORruy0/img.png&quot; data-alt=&quot;위 명령어대로 실행했다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csTPsK/btqBqpxndL6/YHBnglrELdhjscIQORruy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsTPsK%2FbtqBqpxndL6%2FYHBnglrELdhjscIQORruy0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.26.19.png&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;52&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;위 명령어대로 실행했다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. log : 이전 커밋내역이나 이후 git을 사용한 내역이 보고싶을때는 log를 사용한다.&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1579688885262&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;파일이 삭제 되었을 때도 마찬가지다.&lt;/p&gt;
&lt;p&gt;위 목록에서는 체크하지 않았지만, rm이라는 명령어나, 혹은 에디터에서 파일이나 폴더를 삭제 한 경우에도 똑같이 커밋 해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.31.38.png&quot; data-origin-width=&quot;174&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhExWB/btqBqQnVIcR/REJDitEbCdyKRyXHkr3YN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhExWB/btqBqQnVIcR/REJDitEbCdyKRyXHkr3YN0/img.png&quot; data-alt=&quot;위 명령어 실행후 log를 찍었다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhExWB/btqBqQnVIcR/REJDitEbCdyKRyXHkr3YN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhExWB%2FbtqBqQnVIcR%2FREJDitEbCdyKRyXHkr3YN0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-22 오후 7.31.38.png&quot; data-origin-width=&quot;174&quot; data-origin-height=&quot;92&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;위 명령어 실행후 log를 찍었다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmIf15/btqBqQg9lQL/FoNCrHjj5o2SBA9DPdkFRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmIf15/btqBqQg9lQL/FoNCrHjj5o2SBA9DPdkFRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmIf15/btqBqQg9lQL/FoNCrHjj5o2SBA9DPdkFRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmIf15%2FbtqBqQg9lQL%2FFoNCrHjj5o2SBA9DPdkFRK%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;187&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;커밋을 잘못했거나, 과거 이력으로 가고싶을 경우는 다음 포스트에 작성하겠다.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ellapresso.tistory.com/entry/%EC%9E%94%EB%94%94%EC%A0%95%EC%9B%90%EC%82%AC-commit%EC%9D%84-%EC%9E%98%EB%AA%BB%ED%96%88%EC%96%B4%EC%9A%94-git-reset&quot;&gt;다음 글 &amp;gt;&amp;gt; commit을 잘못했어요!&lt;/a&gt;&lt;/p&gt;</description>
      <category>NULL STACK/잔디정원사 </category>
      <category>git</category>
      <category>git add</category>
      <category>git commit</category>
      <category>git init</category>
      <category>git log</category>
      <category>git rm</category>
      <category>깃</category>
      <category>깃기본용어</category>
      <category>깃명령어</category>
      <category>잔디정원사</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/90</guid>
      <comments>https://ellapresso.tistory.com/90#entry90comment</comments>
      <pubDate>Wed, 22 Jan 2020 19:39:29 +0900</pubDate>
    </item>
    <item>
      <title>[잔디정원사] git 이란?</title>
      <link>https://ellapresso.tistory.com/89</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;pre id=&quot;code_1579685002632&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;깃(Git)은 컴퓨터 파일의 변경사항을 추적하고 
여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. 
소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만
어떠한 집합의 파일의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. 
기하학적 불변 이론을 바탕으로 설계됐고, 
분산 버전 관리 시스템으로서 빠른 수행 속도에 중점을 두고 있는 것이 특징이며 데이터 
무결성, 분산, 비선형 워크플로를 지원한다.

// 출처 : 위키백과 (https://ko.wikipedia.org/wiki/깃_(소프트웨어))&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위키에서 말하듯 소프트웨어 개발에서는 주로 소스코드 관리에 사용된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;예를들어, 어제까지 완성해둔 게시판에 오늘 새로운 기능을 추가하려고 작업을 했다고 가정했을때&lt;/p&gt;
&lt;p&gt;새로운 기능을 넣다가 이전에 작업한 작업물을 건드려야 할 수 있다.&lt;/p&gt;
&lt;p&gt;그러다가 기능이 꼬여 이도저도 아닌 상황이 되었다고 생각해보자.&lt;/p&gt;
&lt;p&gt;Ctrl+Z만으로 해결될 상황이 아니다. &lt;span style=&quot;color: #9d9d9d;&quot;&gt;&lt;s&gt;&lt;i&gt;( 루미큐브할때 머리좀 써보겠다고 블럭들을 모두 흩어 놓았다가 꼬이면 되돌릴수가 없다...)&lt;/i&gt;&lt;/s&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이럴때 git을 사용하지 않는 사람이 할 수 있는 방법은 어제까지의 작업물을 백업해 둔 다음, &lt;span style=&quot;color: #666666;&quot;&gt;(복사해 둔 다음)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;오늘의 작업을 하다가 망하면 다시 복사해서 사용한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2020-01-22 오후 6.37.01.png&quot; data-origin-width=&quot;151&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dgiWUT/btqBrmtljds/fEtado7LKkkSOK3Ftafsu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dgiWUT/btqBrmtljds/fEtado7LKkkSOK3Ftafsu0/img.png&quot; data-alt=&quot;이게 뭐하는 짓이야...&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dgiWUT/btqBrmtljds/fEtado7LKkkSOK3Ftafsu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgiWUT%2FbtqBrmtljds%2FfEtado7LKkkSOK3Ftafsu0%2Fimg.png&quot; data-filename=&quot;스크린샷 2020-01-22 오후 6.37.01.png&quot; data-origin-width=&quot;151&quot; data-origin-height=&quot;105&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이게 뭐하는 짓이야...&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이 글을 읽었다면 이제 그러지 말자.&lt;/p&gt;
&lt;p&gt;git을 사용하면 어제까지의 작업을 commit해 두었다가, 오늘 작업이 망하면 되돌리면 그만이다.&lt;/p&gt;
&lt;p&gt;규모가 큰 서비스에 기능을 추가해야 할 경우 기존 소스코드를 복사해서 백업해둘 수는 없지 않을까?&lt;/p&gt;
&lt;p&gt;그저 내 컴퓨터에서 깔끔하게, git을 사용함으로써 내 코드를 원하는 시간으로 되돌릴 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;깃을 설치하는 방법은 아래와 같다.&lt;/p&gt;
&lt;p&gt;1. 공식 사이트 이용 :&amp;nbsp;&lt;a href=&quot;https://git-scm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;git 공식 사이트&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2. 맥(MacOS)일 경우 : &lt;a href=&quot;https://brew.sh/index_ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;homebrew&lt;/a&gt;를 설치 한 후 아래 명령어 실행.&lt;/p&gt;
&lt;pre id=&quot;code_1579686301954&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew install git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;a style=&quot;color: #009a87;&quot; href=&quot;https://ellapresso.tistory.com/entry/%EC%9E%94%EB%94%94%EC%A0%95%EC%9B%90%EC%82%AC-git-%EA%B8%B0%EB%B3%B8%EC%9A%A9%EC%96%B4-%EB%B0%8F-%EC%84%A4%EB%AA%85-local&quot; rel=&quot;noopener&quot;&gt;다음글 &amp;gt;&amp;gt; git 기본용어 및 설명&lt;/a&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>NULL STACK/잔디정원사 </category>
      <category>1일1커밋</category>
      <category>git</category>
      <category>깃</category>
      <category>깃데스크탑</category>
      <category>깃랩</category>
      <category>깃크라켄</category>
      <category>깃허브</category>
      <category>비트버킷</category>
      <category>소스트리</category>
      <category>잔디정원사</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/89</guid>
      <comments>https://ellapresso.tistory.com/89#entry89comment</comments>
      <pubDate>Wed, 22 Jan 2020 18:57:56 +0900</pubDate>
    </item>
    <item>
      <title>aws lambda serverless deploy error</title>
      <link>https://ellapresso.tistory.com/88</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;aws에서 람다함수를 테스트시작해보았다.&lt;/p&gt;
&lt;p&gt;로컬에서 함수 실행은 잘 되는데, deploy할때마다&amp;nbsp; 에러가 나는거임.&lt;/p&gt;
&lt;pre id=&quot;code_1574660693567&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; The AWS Access Key Id needs a subscription for the service&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-25 오후 2.42.52.png&quot; data-origin-width=&quot;511&quot; data-origin-height=&quot;359&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIAk2u/btqzYT7Z9O6/qPncndA1bXaBMMv2SxJegk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIAk2u/btqzYT7Z9O6/qPncndA1bXaBMMv2SxJegk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIAk2u/btqzYT7Z9O6/qPncndA1bXaBMMv2SxJegk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIAk2u%2FbtqzYT7Z9O6%2FqPncndA1bXaBMMv2SxJegk%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-25 오후 2.42.52.png&quot; data-origin-width=&quot;511&quot; data-origin-height=&quot;359&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;뭐가 문제인지 봤더니, 계정 가입이 완전히 끝나지 않아서임.&lt;/p&gt;
&lt;p&gt;나의 경우는 결제를 하지 않아서....ㅋ&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://aws.amazon.com/ko/premiumsupport/knowledge-center/error-access-service/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;관련 링크&lt;/a&gt;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>error</category>
      <category>serverless</category>
      <category>serverless error</category>
      <category>람다</category>
      <category>서버리스</category>
      <category>아마존</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/88</guid>
      <comments>https://ellapresso.tistory.com/88#entry88comment</comments>
      <pubDate>Mon, 25 Nov 2019 14:46:13 +0900</pubDate>
    </item>
    <item>
      <title>aws Lambda(람다)로 hello world! 그리고 삭제</title>
      <link>https://ellapresso.tistory.com/87</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;aws... lambda...serverless이게뭐야... 하고 찾다가&lt;/p&gt;
&lt;p&gt;우선 하나씩 해보기로 한다. ( 이론에 약한 편 )&lt;/p&gt;
&lt;p&gt;벨로퍼트님의 블로그를 보고 따라했는데, 업데이트가 되면서 일부 변경이 된 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;aws로그인후, 상단 서비스 &amp;gt; 컴퓨팅 &amp;gt; Lambda를 찾는다. 그럼 다음과 같은 화면을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;text-align: center; caret-color: transparent; letter-spacing: 0px;&quot; src=&quot;https://k.kakaocdn.net/dn/zWlyI/btqzWsWOlnu/IIGCFmN7h8iUdK7Hu0BBx0/img.png&quot; width=&quot;814&quot; height=&quot;439&quot; data-image-src=&quot;https://k.kakaocdn.net/dn/zWlyI/btqzWsWOlnu/IIGCFmN7h8iUdK7Hu0BBx0/img.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.37.20.png&quot; data-origin-width=&quot;1926&quot; data-origin-height=&quot;1038&quot; /&gt;&lt;/p&gt;
&lt;p&gt;우측 주황색 버튼을 눌러 함수를 만들어 보자 !&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;ㅇㅇ..&lt;/p&gt;
&lt;p&gt;누르면 아래와 같은 아가들이 보인다. 난 다른건 모르겠고 벨로퍼트처럼 새로작성.. 함수이름 써주고..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.38.17.png&quot; data-origin-width=&quot;1772&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oR1HT/btqzVEiRsC7/OAz7gH2Jz7Piz0pd09ISC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oR1HT/btqzVEiRsC7/OAz7gH2Jz7Piz0pd09ISC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oR1HT/btqzVEiRsC7/OAz7gH2Jz7Piz0pd09ISC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoR1HT%2FbtqzVEiRsC7%2FOAz7gH2Jz7Piz0pd09ISC1%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.38.17.png&quot; data-origin-width=&quot;1772&quot; data-origin-height=&quot;704&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.38.28.png&quot; data-origin-width=&quot;1720&quot; data-origin-height=&quot;968&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OR697/btqzVoAB4yk/GBG6ShmqG4sbJfqAppj761/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OR697/btqzVoAB4yk/GBG6ShmqG4sbJfqAppj761/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OR697/btqzVoAB4yk/GBG6ShmqG4sbJfqAppj761/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOR697%2FbtqzVoAB4yk%2FGBG6ShmqG4sbJfqAppj761%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.38.28.png&quot; data-origin-width=&quot;1720&quot; data-origin-height=&quot;968&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;이제 노드 8.10도 된다 ! 나는 8.10로 선택 했다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그 아래 '실행 역할을 선택하거나 생성하여'를 클릭하면 다음과 같은 내용이 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.38.39.png&quot; data-origin-width=&quot;1650&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bI5d5m/btqzWYubI8T/poene0l8J3LDSjz6dKAfO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bI5d5m/btqzWYubI8T/poene0l8J3LDSjz6dKAfO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bI5d5m/btqzWYubI8T/poene0l8J3LDSjz6dKAfO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbI5d5m%2FbtqzWYubI8T%2Fpoene0l8J3LDSjz6dKAfO1%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.38.39.png&quot; data-origin-width=&quot;1650&quot; data-origin-height=&quot;680&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;음.... 블로그에서는 사용자 지정역할생성을 선택했는데 이제 그게 없다... 따로 만들어야되나보다..&lt;/p&gt;
&lt;p&gt;그래서 일단 기본 람다권한으로 실행햇다. 왜냐면 난 헬로월드를 띄울거니까 뭐 필요하겠나 싶어서.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;만들어진 함수가 바로 뜬걸 볼 수 있다.&lt;/p&gt;
&lt;p&gt;싱기...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.40.53.png&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5R6U3/btqzVEJU5Yt/hAKigk2Us3DNpTqbUWxkW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5R6U3/btqzVEJU5Yt/hAKigk2Us3DNpTqbUWxkW1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5R6U3/btqzVEJU5Yt/hAKigk2Us3DNpTqbUWxkW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5R6U3%2FbtqzVEJU5Yt%2FhAKigk2Us3DNpTqbUWxkW1%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.40.53.png&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1126&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;아래로 내리다 보면..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.41.20.png&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;1250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1OGE0/btqzWLaLp24/y6nOVfHUDvr6UfGCmR5unK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1OGE0/btqzWLaLp24/y6nOVfHUDvr6UfGCmR5unK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1OGE0/btqzWLaLp24/y6nOVfHUDvr6UfGCmR5unK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1OGE0%2FbtqzWLaLp24%2Fy6nOVfHUDvr6UfGCmR5unK%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.41.20.png&quot; data-origin-width=&quot;1602&quot; data-origin-height=&quot;1250&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;이런 코드부분이 나오는데, 나는 Hello from Lambda를 Hello world로 수정했다.&lt;/p&gt;
&lt;p&gt;뭐가 뜨더라도 내가 어디서 뭘 한건지 알고싶어서.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.41.40.png&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;1234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYML19/btqzYqwHYR6/CVEBkcNUqZgLomFh28ULkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYML19/btqzYqwHYR6/CVEBkcNUqZgLomFh28ULkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYML19/btqzYqwHYR6/CVEBkcNUqZgLomFh28ULkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYML19%2FbtqzYqwHYR6%2FCVEBkcNUqZgLomFh28ULkK%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.41.40.png&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;1234&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;그리고 잊지말고 상단 메뉴바에 주황색으로 변한 Save를 눌러준다.&lt;/p&gt;
&lt;p&gt;만약 잊고 다른화면으로 넘어가있더라도, 수정되지않고 변경하고자하는 상태로 유지가 되어있으니 돌아와서 save해주자 !&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그리고 나서 다시 위쪽으로 올라와 구성탭의 Designer안에 있는 트리거 추가 버튼을 눌러준다.&lt;/p&gt;
&lt;p&gt;여기서 API를 생성할 거다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.40.53.png&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qzTtG/btqzVn2Lmrr/r4LU4FGCp1MZfg3sxQ0Bk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qzTtG/btqzVn2Lmrr/r4LU4FGCp1MZfg3sxQ0Bk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qzTtG/btqzVn2Lmrr/r4LU4FGCp1MZfg3sxQ0Bk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqzTtG%2FbtqzVn2Lmrr%2Fr4LU4FGCp1MZfg3sxQ0Bk1%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.40.53.png&quot; data-origin-width=&quot;1744&quot; data-origin-height=&quot;1126&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.41.59.png&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;1332&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kyEQp/btqzYaOqG7n/pSmkWTkXAksSNeVnI71HM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kyEQp/btqzYaOqG7n/pSmkWTkXAksSNeVnI71HM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kyEQp/btqzYaOqG7n/pSmkWTkXAksSNeVnI71HM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkyEQp%2FbtqzYaOqG7n%2FpSmkWTkXAksSNeVnI71HM0%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.41.59.png&quot; data-origin-width=&quot;1704&quot; data-origin-height=&quot;1332&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;API 게이트 웨이를 선택 한 다음,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.42.17.png&quot; data-origin-width=&quot;1736&quot; data-origin-height=&quot;1362&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bc8WcJ/btqzYrh5ke2/AKktDFEn5XZQqbLKKthWIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bc8WcJ/btqzYrh5ke2/AKktDFEn5XZQqbLKKthWIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bc8WcJ/btqzYrh5ke2/AKktDFEn5XZQqbLKKthWIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc8WcJ%2FbtqzYrh5ke2%2FAKktDFEn5XZQqbLKKthWIk%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.42.17.png&quot; data-origin-width=&quot;1736&quot; data-origin-height=&quot;1362&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;새 API 생성, 보안은 열기로 해준다. 그냥 생성되는지 테스트 할거니깐 ! ( 단 순 )&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;아래 추가세팅은 건드리지 않았는데, 이렇게 생겼다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.42.31.png&quot; data-origin-width=&quot;1584&quot; data-origin-height=&quot;1334&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7DHBj/btqzU8EJ4Ju/9kTmJl2pmjxkqixJu0CAO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7DHBj/btqzU8EJ4Ju/9kTmJl2pmjxkqixJu0CAO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7DHBj/btqzU8EJ4Ju/9kTmJl2pmjxkqixJu0CAO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7DHBj%2FbtqzU8EJ4Ju%2F9kTmJl2pmjxkqixJu0CAO1%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.42.31.png&quot; data-origin-width=&quot;1584&quot; data-origin-height=&quot;1334&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;다 했으면 아래 add버튼으로 만들어준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그럼 API게이트웨이가 생성된게 보인다. 싱기22..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.43.34.png&quot; data-origin-width=&quot;1728&quot; data-origin-height=&quot;1254&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bH2kHY/btqzYbs3viu/P0nNzjNltB4M1ACig6BZT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bH2kHY/btqzYbs3viu/P0nNzjNltB4M1ACig6BZT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bH2kHY/btqzYbs3viu/P0nNzjNltB4M1ACig6BZT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH2kHY%2FbtqzYbs3viu%2FP0nNzjNltB4M1ACig6BZT0%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.43.34.png&quot; data-origin-width=&quot;1728&quot; data-origin-height=&quot;1254&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;아래 API게이트웨이의 화살표를 열어주자.&lt;/p&gt;
&lt;p&gt;그리고 엔드포인트 링크를 클릭하면, 바로 Hello world!를 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.45.53.png&quot; data-origin-width=&quot;1724&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/caxrxN/btqzWs3zXYT/1NS96GHbuMJK5XefkOAyok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/caxrxN/btqzWs3zXYT/1NS96GHbuMJK5XefkOAyok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/caxrxN/btqzWs3zXYT/1NS96GHbuMJK5XefkOAyok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcaxrxN%2FbtqzWs3zXYT%2F1NS96GHbuMJK5XefkOAyok%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.45.53.png&quot; data-origin-width=&quot;1724&quot; data-origin-height=&quot;712&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.46.03.png&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;76&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GK6EH/btqzYCXZgs5/2LxU9ibALLLVJXjYiySvh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GK6EH/btqzYCXZgs5/2LxU9ibALLLVJXjYiySvh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GK6EH/btqzYCXZgs5/2LxU9ibALLLVJXjYiySvh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGK6EH%2FbtqzYCXZgs5%2F2LxU9ibALLLVJXjYiySvh1%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 2.46.03.png&quot; data-origin-width=&quot;248&quot; data-origin-height=&quot;76&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이제 이것저것 눌러서 다른 api도 만들어본다.&lt;/p&gt;
&lt;p&gt;그리고 나면 왠지 내가 싼 똥을 지우고 싶어진다.&lt;/p&gt;
&lt;p&gt;상단 서비스 &amp;gt; 네트워킹 및 콘텐츠 전송 &amp;gt; API Gateway로 간다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 3.13.59.png&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;520&quot; width=&quot;342&quot; height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOPSbq/btqzWL9L2KY/2xL2vsKkIVAKKL7KX4S6Ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOPSbq/btqzWL9L2KY/2xL2vsKkIVAKKL7KX4S6Ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOPSbq/btqzWL9L2KY/2xL2vsKkIVAKKL7KX4S6Ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOPSbq%2FbtqzWL9L2KY%2F2xL2vsKkIVAKKL7KX4S6Ik%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 3.13.59.png&quot; data-origin-width=&quot;506&quot; data-origin-height=&quot;520&quot; width=&quot;342&quot; height=&quot;351&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;그러면 방금 테스트 하느라 만들어진 아이들이 보인다.&lt;/p&gt;
&lt;p&gt;왼쪽의 라디오버튼으로 선택해준 다음, Actions에서 삭제해준다. 끗&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-11-22 오후 3.15.45.png&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;370&quot; width=&quot;305&quot; height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XWNZz/btqzYCKuFUx/Su6DZSDmuG1w0ADUXfNxe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XWNZz/btqzYCKuFUx/Su6DZSDmuG1w0ADUXfNxe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XWNZz/btqzYCKuFUx/Su6DZSDmuG1w0ADUXfNxe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXWNZz%2FbtqzYCKuFUx%2FSu6DZSDmuG1w0ADUXfNxe1%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-11-22 오후 3.15.45.png&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;370&quot; width=&quot;305&quot; height=&quot;229&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>API</category>
      <category>api delete</category>
      <category>AWS</category>
      <category>aws lambda</category>
      <category>lambda</category>
      <category>nodejs</category>
      <category>serverless</category>
      <category>람다</category>
      <category>람다함수</category>
      <category>서버리스</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/87</guid>
      <comments>https://ellapresso.tistory.com/87#entry87comment</comments>
      <pubDate>Fri, 22 Nov 2019 15:16:43 +0900</pubDate>
    </item>
    <item>
      <title>[javascript] 즉시 실행 함수</title>
      <link>https://ellapresso.tistory.com/86</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;함수 표현문&lt;/p&gt;
&lt;pre id=&quot;code_1574035034490&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function() {}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;함수 표현식&lt;/p&gt;
&lt;pre id=&quot;code_1574035078816&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const fn = () =&amp;gt; {}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;즉시 실행 함수 표현식&lt;/p&gt;
&lt;pre id=&quot;code_1574034918285&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(function() {
  console.log('Hello World!');
})();

!function() {
  console.log('Hello World!');
}

+function() {
  console.log('Hello World!');
}

-function() {
  console.log('Hello World!');
}

void function() {
  console.log('Hello World!');
}

((a, b) =&amp;gt; {
  console.log('Hello World!');
})(a1, b1);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>JavaScript</category>
      <category>기록</category>
      <category>자바스크립트</category>
      <category>즉시실행함수</category>
      <category>즉시실행함수표현식</category>
      <category>함수표현문</category>
      <category>함수표현식</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/86</guid>
      <comments>https://ellapresso.tistory.com/86#entry86comment</comments>
      <pubDate>Mon, 18 Nov 2019 09:02:04 +0900</pubDate>
    </item>
    <item>
      <title>redis설치하기 재정리</title>
      <link>https://ellapresso.tistory.com/85</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;기존에 써놓은 redis 설치하기 안보고 그냥 redis 홈페이지에 나온대로 했다.&lt;/p&gt;
&lt;p&gt;더 빠르고 쉬웠음.&lt;/p&gt;
&lt;p&gt;레디스를 저장할 위치에서 순서대로 네가지 명령어를 터미널에서 실행한다.&lt;/p&gt;
&lt;pre id=&quot;code_1571898363510&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;wget http://download.redis.io/redis-stable.tar.gz

tar xvzf redis-stable.tar.gz

cd redis-stable

make

make test (안해도 괜찮음)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ls로 디렉토리를 확인하면 설치된것을 확인 할 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1571898469512&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cp src/redis-server /usr/local/bin/

cp src/redis-cli /usr/local/bin/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;위 명령어로 디렉토리를 카피해 주거나&lt;/p&gt;
&lt;pre id=&quot;code_1571898502122&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;make install&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;이렇게 해주면 준비 끝.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;설치가 잘 되었는지 확인해보자.&lt;/p&gt;
&lt;p&gt;우선, 다음 명령어를 실행시킨다.&lt;/p&gt;
&lt;pre id=&quot;code_1571898568699&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-server&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;292&quot; height=&quot;268&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQIOsN/btqzgoBagt3/YP4c8wMjKvDy1RMcxYzqk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQIOsN/btqzgoBagt3/YP4c8wMjKvDy1RMcxYzqk0/img.png&quot; data-alt=&quot;이 그림이 터미널에 보인다면 redis서버를 실행한 것이다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQIOsN/btqzgoBagt3/YP4c8wMjKvDy1RMcxYzqk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQIOsN%2FbtqzgoBagt3%2FYP4c8wMjKvDy1RMcxYzqk0%2Fimg.png&quot; width=&quot;292&quot; height=&quot;268&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이 그림이 터미널에 보인다면 redis서버를 실행한 것이다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;새로운 터미널 탭을 띄워서 이번엔 다음 명령어를 실행한다.&lt;/p&gt;
&lt;pre id=&quot;code_1571898683218&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;redis-cli&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;그러면 cli가 실행 되면서 로컬호스트 아이피로 접속됨을 확인 할 수 있고, ping을 쳐보면 pong이라고 대답해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-10-24 오후 3.31.59.png&quot; width=&quot;283&quot; height=&quot;95&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/di4Bwu/btqzi2iUCbp/Q48c0iclLeZBwgsurLvgb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/di4Bwu/btqzi2iUCbp/Q48c0iclLeZBwgsurLvgb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/di4Bwu/btqzi2iUCbp/Q48c0iclLeZBwgsurLvgb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdi4Bwu%2Fbtqzi2iUCbp%2FQ48c0iclLeZBwgsurLvgb1%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-10-24 오후 3.31.59.png&quot; width=&quot;283&quot; height=&quot;95&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;참고 링크 :&amp;nbsp;&lt;a href=&quot;https://redis.io/topics/quickstart&quot;&gt;https://redis.io/topics/quickstart&lt;/a&gt;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>Database</category>
      <category>DB</category>
      <category>redis</category>
      <category>데이터베이스</category>
      <category>디비</category>
      <category>레디스</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/85</guid>
      <comments>https://ellapresso.tistory.com/85#entry85comment</comments>
      <pubDate>Thu, 24 Oct 2019 15:33:25 +0900</pubDate>
    </item>
    <item>
      <title>[javascript] async/await</title>
      <link>https://ellapresso.tistory.com/84</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2&gt;async&lt;/h2&gt;
&lt;h3&gt;async 함수는 항상 promise를 반환&lt;/h3&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;async function f() {
    return 'async example';
}

// 이상없는데 언제 알려줄까? 의 상태
console.log(f()); // Promise {&amp;lt;resolved&amp;gt;:'async example'}

f().then(alert);

// f()와 동일하게 동작
async function f2() {
    return Promise.resolve('async example2');
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;await&lt;/h2&gt;
&lt;h3&gt;promise가 확정된 결과를 반환할 때 까지 대기.&lt;/h3&gt;
&lt;h4&gt;&lt;del&gt;지금은 뭐 없는데ㅋㅋㅋ의 상태&lt;/del&gt;&lt;/h4&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;async function f() {
    const promise = new Promise((resolve, reject) =&amp;gt; {
        setTimeout(() =&amp;gt; resolve('done!'), 1000); // 1초 뒤 결과가 확정된다.
    });
    alert(await promise);
}

f(); // 1초 뒤 알림창 팝업&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;await만 사용시 오류 발생&lt;/h3&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;function notF(){
  const promise = Promise.resolve(1);
  const result = await promise; // Syntax Error
  return result ;
}&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;async/await 의 여러 표현방법&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;기본&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;async function f() {
    await foo(1, 1000);
}&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;2&quot;&gt;
&lt;li&gt;즉시실행&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;clojure&quot;&gt;&lt;code&gt;(async function f() {
    await foo(1, 1000);
})();&lt;/code&gt;&lt;/pre&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;화살표 함수&lt;/li&gt;
&lt;/ol&gt;
&lt;pre class=&quot;dart&quot;&gt;&lt;code&gt;const f = async () =&amp;gt; {
    await foo(1, 1000);
};&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;async/await의 잘못된 예제&lt;/h2&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;// 원하는 결과 : 1 2 3
async function f() {
    await foo(1, 2000);
    await foo(2, 500);
    await foo(3, 1000);
}

function foo(num, sec) {
    setTimeout(function() {
        console.log(num);
    }, sec);
}

f(); //실제 결과 : 2 3 1&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;h3&gt;1 2 3 순서가 되도록 수정&lt;/h3&gt;
&lt;/blockquote&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;// foo()를 수정함
async function f() {
    await foo(1, 2000);
    await foo(2, 500);
    await foo(3, 1000);
}

function foo(num, sec) {
    return new Promise(function(resolve, reject) {
        setTimeout(function() {
            console.log(num);
            resolve('async는 Promise방식을 사용합니다.');
            // resolve를 써주지 않으면 2 3 1 이 나옴.. why?
        }, sec);
    });
}

f(); //실제 결과 : 1 2 3&lt;/code&gt;&lt;/pre&gt;</description>
      <category>NULL STACK</category>
      <category>async</category>
      <category>await</category>
      <category>JavaScript</category>
      <category>자바스크립트</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/84</guid>
      <comments>https://ellapresso.tistory.com/84#entry84comment</comments>
      <pubDate>Thu, 10 Oct 2019 09:20:17 +0900</pubDate>
    </item>
    <item>
      <title>[javascript] Promise</title>
      <link>https://ellapresso.tistory.com/83</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h1&gt;:: 콜백함수를 연결할 수 있는 이미 진행중인 프로세스&lt;/h1&gt;
&lt;h5&gt;&lt;del&gt;지금은 뭐 없는데 이상없으면 이따 주고 이상있으면 알려줄게ㅋㅋ(언제?)&lt;/del&gt;&lt;/h5&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; width=&quot;100%&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5Jbcg/btqyXwYPLKY/kYh4D44i611TzM8ZP8xvU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5Jbcg/btqyXwYPLKY/kYh4D44i611TzM8ZP8xvU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5Jbcg/btqyXwYPLKY/kYh4D44i611TzM8ZP8xvU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5Jbcg%2FbtqyXwYPLKY%2FkYh4D44i611TzM8ZP8xvU0%2Fimg.png&quot; width=&quot;100%&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;대기(pending): 이행하거나 거부되지 않은 초기 상태.&lt;/li&gt;
&lt;li&gt;이행(fulfilled): 연산이 성공적으로 완료됨.&lt;/li&gt;
&lt;li&gt;거부(rejected): 연산이 실패함.&lt;/li&gt;
&lt;li&gt;처리됨(settled): 대기가 끝나고 이행 또는 거부 됨.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;const _promise = param =&amp;gt; {
    // 비동기를 표현하기 위해 setTimeout 함수를 사용
    const newPromise = new Promise((resolve, reject) =&amp;gt; {
        window.setTimeout(() =&amp;gt; {
            if (param) {
                resolve('TRUE를 반환');
            } else {
                reject(Error('ERROR를 반환'));
            }
        }, 3000);
    });
    return newPromise;
};

_promise(true) //true or false
    .then(text =&amp;gt; {
        console.log(text);
    })
    .catch(err =&amp;gt; console.log(err));&lt;/code&gt;&lt;/pre&gt;</description>
      <category>NULL STACK</category>
      <category>es6</category>
      <category>JavaScript</category>
      <category>Promise</category>
      <category>자바스크립트</category>
      <category>프로미스</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/83</guid>
      <comments>https://ellapresso.tistory.com/83#entry83comment</comments>
      <pubDate>Thu, 10 Oct 2019 09:18:53 +0900</pubDate>
    </item>
    <item>
      <title>노드 프로세스 관리하기 - pm2</title>
      <link>https://ellapresso.tistory.com/82</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;설치 방법 : 전역으로 설치해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1569399823528&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install pm2 -g&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;pm2 start app.js : node app.js와 같은 실행 명령어. 실행하고나면 리스트에 등록된다.&lt;/p&gt;
&lt;p&gt;pm2 list : 관리중인 리스트 목록보기, 표시된 id와 name으로 pm2명령어를 편리하게 사용할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pm2 stop &lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;lt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;app_name &lt;/span&gt;&lt;span&gt;&lt;span&gt;| &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;id &lt;/span&gt;&lt;span&gt;&lt;span&gt;| &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span&gt;all&lt;/span&gt;&lt;span&gt;&lt;span&gt;' &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;| &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;json_conf &lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;gt; : 중단&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pm2 restart &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;lt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;app_name&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;id&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span&gt;all&lt;/span&gt;&lt;span&gt;&lt;span&gt;'&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;json_conf&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;gt; : 재시작&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pm2 reload&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;lt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;app_name&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;id&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span&gt;all&lt;/span&gt;&lt;span&gt;&lt;span&gt;'&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;json_conf&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;gt; : 재시작&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pm2 delete &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;lt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;app_name&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;id&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span&gt;all&lt;/span&gt;&lt;span&gt;&lt;span&gt;'&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;json_conf&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;gt; : 목록에서 삭제&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;pm2 start &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;lt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;app_name&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;id&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span&gt;all&lt;/span&gt;&lt;span&gt;&lt;span&gt;'&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;json_conf&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;gt; : 시작&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;pm2 logs &lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;lt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;app_name&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;id&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span&gt;all&lt;/span&gt;&lt;span&gt;&lt;span&gt;'&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;|&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;json_conf&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;gt; : 로그를 볼수 있다. 실시간. 끝낼때는 ctrl + c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;이외의 명령어 참고 사이트 : &lt;a href=&quot;https://www.npmjs.com/package/pm2&quot;&gt;https://www.npmjs.com/package/pm2&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>node</category>
      <category>pm2</category>
      <category>process</category>
      <category>노드</category>
      <category>프로세스관리</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/82</guid>
      <comments>https://ellapresso.tistory.com/82#entry82comment</comments>
      <pubDate>Wed, 25 Sep 2019 17:28:52 +0900</pubDate>
    </item>
    <item>
      <title>node cron사용해서 일정시간마다 함수 실행시키기</title>
      <link>https://ellapresso.tistory.com/81</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;설치 방법&lt;/p&gt;
&lt;pre id=&quot;code_1569398900637&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install cron --save
또는
yarn install cron --save&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;사용 방법&lt;/p&gt;
&lt;pre id=&quot;code_1569399164236&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const {CronJob} = require('cron');

const timezone = 'Asia/Seoul';

function test(){}

const cronfn = new CronJob('* * * * * *',test,null,false,timezone);

cronfn.start(); // 크론 실행

------------------------------

cronfn.stop(); //크론 중지&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;* * * * * *&amp;nbsp; : &lt;/b&gt;초, 분, 시, 일, 월, 연 단위이다. *은 all을 뜻한다.&lt;/p&gt;
&lt;p&gt;즉 별 6개인채로 한다면 매년 매월 매일 매분 매초 실행하므로 매 초 test함수가 실행된다.&lt;/p&gt;
&lt;p&gt;* * 1 * * *라면 매년 매월 매일 1시 매분 매초 실행한다. 즉 매일 한시 한시간동안 매초마다&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;test함수가&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;실행된다.&lt;/p&gt;
&lt;p&gt;* * 1-10 * * *라고 한다면, 1시부터10시까지 매초 실행된다.&lt;/p&gt;
&lt;p&gt;*/1 * * * * 라고 한다면, 1분마다 함수가 실행된다,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;참고 사이트 : &lt;a href=&quot;https://www.npmjs.com/package/cron&quot;&gt;https://www.npmjs.com/package/cron&lt;/a&gt;&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>cron</category>
      <category>cronjob</category>
      <category>node</category>
      <category>npm</category>
      <category>setInterval</category>
      <category>setTimeout</category>
      <category>timesetting</category>
      <category>Yarn</category>
      <category>일정시간함수실행</category>
      <category>크론</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/81</guid>
      <comments>https://ellapresso.tistory.com/81#entry81comment</comments>
      <pubDate>Wed, 25 Sep 2019 17:19:22 +0900</pubDate>
    </item>
    <item>
      <title>[mongodb] mac os 몽고디비 설치/ compass연결하기</title>
      <link>https://ellapresso.tistory.com/80</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;스크린샷 2019-10-02 오후 3.09.36.png&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;98&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w9EcH/btqyI2MunOO/aJSyMhg44nxDb7PasCVsF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w9EcH/btqyI2MunOO/aJSyMhg44nxDb7PasCVsF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w9EcH/btqyI2MunOO/aJSyMhg44nxDb7PasCVsF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw9EcH%2FbtqyI2MunOO%2FaJSyMhg44nxDb7PasCVsF0%2Fimg.png&quot; data-filename=&quot;스크린샷 2019-10-02 오후 3.09.36.png&quot; data-origin-width=&quot;214&quot; data-origin-height=&quot;98&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;맥북프로 사용자임 :: MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports) 아직 업데이트 안해서 하이시에라 사용중.&lt;/p&gt;
&lt;p&gt;홈브류를 사용해서 설치했음.&lt;/p&gt;
&lt;pre id=&quot;code_1569994795789&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;brew update
brew tap mongodb/brew
brew install mongodb-community
//여기까지 설치완료

brew services start mongodb-community //시작
brew services stop mongodb-community //종료&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;gt;&amp;gt; 참고 사이트 : &lt;a href=&quot;https://github.com/mongodb/homebrew-brew&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;mongodb/homebrew-brew&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;로컬에 설치된 몽고디비는 터미널에 mongo라고 치면 접속할 수 있다.&lt;/p&gt;
&lt;p&gt;db라고 치면 가지고 있는 데이터베이스 리스트가 나타난다.&lt;/p&gt;
&lt;p&gt;여기서 이것저것 실습해보고, gui연결을 해보았다.&lt;/p&gt;
&lt;p&gt;몽고디비 홈페이지에서 compass를 다운받았다. 아래링크에 달아두겠음.&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt; 참고 사이트 : &lt;a href=&quot;https://www.mongodb.com/download-center/compass?jmp=docs&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;mongodb-compass download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;설치후 localhost 들어가니 바로 내가 만든 콜렉션이 보임.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>brew</category>
      <category>compass</category>
      <category>GUI</category>
      <category>homebrew</category>
      <category>install</category>
      <category>Mac</category>
      <category>mongo</category>
      <category>MongoDB</category>
      <category>Mongoose</category>
      <category>몽고디비</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/80</guid>
      <comments>https://ellapresso.tistory.com/80#entry80comment</comments>
      <pubDate>Sat, 31 Aug 2019 16:37:37 +0900</pubDate>
    </item>
    <item>
      <title>nvm 지난 노드버전 삭제하기</title>
      <link>https://ellapresso.tistory.com/79</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;nvm list로 설치되어있는 버전을 우선 확인한다.&lt;/p&gt;
&lt;p&gt;nvm uninstall v6 을 실행하면, 설치되어있던 6.xxx버전이 삭제된다.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>delete</category>
      <category>node</category>
      <category>npm</category>
      <category>nvm</category>
      <category>version</category>
      <category>노드</category>
      <category>노드버전관리</category>
      <category>노드버전삭제</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/79</guid>
      <comments>https://ellapresso.tistory.com/79#entry79comment</comments>
      <pubDate>Thu, 29 Aug 2019 14:56:52 +0900</pubDate>
    </item>
    <item>
      <title>nvm 노드 기본버전 설정하기</title>
      <link>https://ellapresso.tistory.com/78</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;nvm, node는 설치되어있는데 계속 터미널 새탭이 켜질때마다&lt;/p&gt;
&lt;p&gt;nvm use v10으로 설정을 해줘야 했다.&lt;/p&gt;
&lt;p&gt;그래서 아예 설정을 변경했다.&lt;/p&gt;
&lt;p&gt;우선 nvm list로 현 상태를 확인한다.&lt;/p&gt;
&lt;p&gt;나의 경우는 default -&amp;gt;System으로 되어 있었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;nvm alias default v10을 실행후 다시 확인하니&lt;/p&gt;
&lt;p&gt;default-&amp;gt;v10(v10.16.3)으로 바뀌어있다.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>default</category>
      <category>node</category>
      <category>nodejs</category>
      <category>npm</category>
      <category>nvm</category>
      <category>Setting</category>
      <category>System</category>
      <category>노드</category>
      <category>노드버전</category>
      <category>노드버전설정</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/78</guid>
      <comments>https://ellapresso.tistory.com/78#entry78comment</comments>
      <pubDate>Thu, 29 Aug 2019 14:54:31 +0900</pubDate>
    </item>
    <item>
      <title>배달의 민족 한나체 그림(이미지) 약어 모음</title>
      <link>https://ellapresso.tistory.com/77</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;br /&gt;배달의 민족에서 제공하는 무료폰트중에서 한나체(PRO)에서 제공되는 그림들을 모두 찾아보았다 ㅋㅋ 동생이 유니코드파일 뒤져서 찾아낸것도 있고 유추해본것도있고.. 같은 뜻 다른말의 경우는 같은 그림이기도 했음. 골뱅이 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ어쩔거야 ...&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;hr&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 684px;&quot; border=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;단어&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;음식이름&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;단어&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;음식이름&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;단어&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;음식이름&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;단어&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;음식이름&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;단어&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;음식이름&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;단어&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;음식이름&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;갋&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;갈비&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;걃&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;달걀말이&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;곝&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;삼계탕&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;곫&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;골뱅이&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;갅&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;간장&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;콬&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;코코아&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;겺&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;삼겹살&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;겢&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;양념게장&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;곥&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;고르곤졸라피자&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;곷&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;고추&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;갲&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;육개장&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;팗&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;팔보채&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;굯&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;국수&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;겥&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;바게트&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;긑&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;에그타르트&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;렍&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;오렌지&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;걇&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;달걀후라이&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;풏&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;푸차&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;귣&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;규동&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;괒&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;과자&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;꿂&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;꿀물&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;렏&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;카레돈까스&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;굲&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;군함초밥&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;픒&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;애플파이&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;깉&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;딸기타르트&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;돜&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;인도커리&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;댗&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;대창&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;뱇&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;배추&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;굷&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;굴비&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;홫&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;화채&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;넟&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;도너츠&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;딹&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;딸기&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;둪&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;호두파이&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;벝&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;버터&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;귴&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;규카츠&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;횓&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;회덮밥&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;떢&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;떡(떡볶이)&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;랎&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;랍스타&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;랂&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;계란후라이&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;벸&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;바베큐(?)&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;꿥&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;꿔바로우&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;럳&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;샐러드&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;랕&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;그라탕&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;밁&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;밀가루&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;봌&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;아보카도&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;닏&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;가쿠니동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;맠&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;마카롱&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;맅&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;닭도리탕&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;빋&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;에비동&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;붗&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;부침개&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;됒&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;돼지&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;뭋&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;무침&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;밄&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;메밀소바&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;샄&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;사케동&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;븡&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;올리브오일&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;됝&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;된장&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;슼&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;스키야끼&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;봈&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;보쌈&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;섩&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;설탕&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;뼣&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;뼈해장국&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;둦&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;만두전골&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;엋&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;연어초밥&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;뼏&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;뼈다귀&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;셎&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;소세지&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;쇡&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;쇠고기&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;맄&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;리코타샐러드&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;욷&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;우동&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;슽&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;스파게티&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;쌃&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;쌀밥&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;슠&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;슈크림&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;맢&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;마파두부&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;웇&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;새우초밥&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;슾&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;스프&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;앑&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;알탕&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;쎙&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;반쎄오&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;붋&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;불백(?)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;윛&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;샌드위치&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;쌁&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;쌀국수&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;얕&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;야채&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;앺&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;사과(애플)&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;샠&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;새콤&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;잌&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;케이크&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;엏&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;연어회&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;옧&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;옥수수&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;왅&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;완자&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;앏&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;알밥&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;짲&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;짜장면&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;잩&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;감자튀김&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;옺&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;오징어&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;웉&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;새우튀김&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;앾&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;야끼우동&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;쫆&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;쫄면&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;젙&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;디저트(푸딩)&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;옼&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;오코노미야끼&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;웾&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;웨지감자&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;얔&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;쇼가야키&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;칰&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;치킨&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;촠&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;초코&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;젅&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;전주비빔밥&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;쭊&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;쭈꾸미&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;엍&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;추어탕&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;칽&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;칼국수&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;캋&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;돈카츠&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;츧&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;카츠동&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;챆&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;채끝살&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;읹&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;인절미&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;컾&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;커피&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;콫&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;돈코츠라멘&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 38px;&quot;&gt;칮&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;치즈&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;챚&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;읽&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 38px;&quot;&gt;참치초밥(일식)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;핒&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;피자&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;쿸&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;쿠키&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;칯&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;참치초밥&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;춪&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;고추장&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;잋&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;햊&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;해장국&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;탘&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;타코&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;탵&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;동태탕&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;퀫&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;퀘사디아&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;잧&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;유자차&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;혿&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;호두&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;폳&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;포도&lt;/td&gt;
&lt;td style=&quot;width: 8.25581%; height: 19px;&quot;&gt;팓&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;파닭&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;팢&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;파전&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;쥪&lt;/td&gt;
&lt;td style=&quot;width: 8.37209%; height: 19px;&quot;&gt;쥐포&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>MEMO</category>
      <category>배달의민족</category>
      <category>배달의민족폰트</category>
      <category>배민</category>
      <category>배민아이콘</category>
      <category>배민폰트</category>
      <category>배민폰트모음</category>
      <category>아이콘</category>
      <category>한나체</category>
      <category>한나체그림</category>
      <category>한나체프로</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/77</guid>
      <comments>https://ellapresso.tistory.com/77#entry77comment</comments>
      <pubDate>Tue, 27 Aug 2019 12:42:24 +0900</pubDate>
    </item>
    <item>
      <title>객체 디스트럭쳐링 메모</title>
      <link>https://ellapresso.tistory.com/76</link>
      <description>&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;pre id=&quot;code_1566864089274&quot; class=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const sample = ( text ) =&amp;gt; {
	const id = '문자열'
	const key = {}
	key[id] = text
}

const sample = ( text ) =&amp;gt; {
	const id = '문자열'
    const key = {
    	[id] : test
    }
}


&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;es10이후 문법.&lt;/p&gt;</description>
      <category>NULL STACK</category>
      <category>ES10</category>
      <category>es6</category>
      <category>JavaScript</category>
      <category>object</category>
      <category>객체</category>
      <category>메모</category>
      <category>자바스크립트</category>
      <author>ellapresso</author>
      <guid isPermaLink="true">https://ellapresso.tistory.com/76</guid>
      <comments>https://ellapresso.tistory.com/76#entry76comment</comments>
      <pubDate>Tue, 27 Aug 2019 09:05:53 +0900</pubDate>
    </item>
  </channel>
</rss>