<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Light Dev</title>
    <link>https://light9639.tistory.com/</link>
    <description>프론트엔드 개발자로의 새로운 여정을 시작해보겠습니다.</description>
    <language>ko</language>
    <pubDate>Fri, 7 Aug 2026 16:03:59 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Light9639</managingEditor>
    <image>
      <title>Light Dev</title>
      <url>https://tistory1.daumcdn.net/tistory/5610541/attach/3f3c61bdedb44d70a692ea2a98977187</url>
      <link>https://light9639.tistory.com</link>
    </image>
    <item>
      <title>[JavaScript]  ️ 이미지 src 변경하는 방법</title>
      <link>https://light9639.tistory.com/entry/JavaScript-%F0%9F%9B%A0%EF%B8%8F-%EC%9D%B4%EB%AF%B8%EC%A7%80-src-%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cJQfqI/btsmzGM6fVm/X06LiZ1eHFAUArbRc4uhRk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cJQfqI/btsmzGM6fVm/X06LiZ1eHFAUArbRc4uhRk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cJQfqI/btsmzGM6fVm/X06LiZ1eHFAUArbRc4uhRk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJQfqI%2FbtsmzGM6fVm%2FX06LiZ1eHFAUArbRc4uhRk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바스크립트로 이미지 src 변경하기&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;바닐라 자바스크립트를 이용한 방법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 바닐라 자바스크립트를 이용하여 이미지의 &lt;code&gt;src&lt;/code&gt;를 바꾸는 방법을 작성해 보겠다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688566842913&quot; class=&quot;html xml&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;

&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;Document&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
    &amp;lt;div class=&quot;mainBanner&quot;&amp;gt;
    	&amp;lt;img src=&quot;./main01.jpg&quot; alt=&quot;메인배너&quot; title=&quot;메인배너&quot;&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;위의 &lt;code&gt;HTML&lt;/code&gt; 코드에서 이미지 태그의 &lt;code&gt;src&lt;/code&gt;를 변경하려면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;querySelector&lt;/code&gt; 메소드를 이용하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688566906618&quot; class=&quot;javascript&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// JavaScript
let img = document.querySelector(&quot;.mainBanner &amp;gt; img&quot;);

img.src = &quot;./main02.jpg&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;위의 코드를 이용하면 해당 메소드를 사용하여 &lt;code&gt;img DOM&lt;/code&gt; 객체를 가져올 수 있으며, 해당 &lt;code&gt;DOM&lt;/code&gt; 객체에서 &lt;code&gt;src&lt;/code&gt;를 바꿀 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;JQuery를 이용한 방법&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;만약 &lt;code&gt;Jquery&lt;/code&gt;를 사용하여 &lt;code&gt;src&lt;/code&gt;를 변경하려고 한다면, 한 줄로 작업을 실행할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688566906619&quot; class=&quot;javascript&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(&quot;.mainBanner &amp;gt; img&quot;).attr({ src: &quot;./main02.jpg&quot; });&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://wecanit.tistory.com/17&quot;&gt;[Javascript] 이미지 변경 (img src)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://gurtn.tistory.com/146&quot;&gt;[JS] 이미지 src 변경하는 방법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://seons-dev.tistory.com/entry/JS-%EC%9D%B4%EB%AF%B8%EC%A7%80%EC%9D%98-src%EB%A5%BC-%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95&quot;&gt;(JS) 이미지의 src를 변경하는 방법&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <category>src</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/106</guid>
      <comments>https://light9639.tistory.com/entry/JavaScript-%F0%9F%9B%A0%EF%B8%8F-%EC%9D%B4%EB%AF%B8%EC%A7%80-src-%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry106comment</comments>
      <pubDate>Wed, 5 Jul 2023 23:26:56 +0900</pubDate>
    </item>
    <item>
      <title>[CSS]   말풍선 디자인 만드는 법</title>
      <link>https://light9639.tistory.com/entry/HTML-%F0%9F%8F%B7%EF%B8%8F-%EB%A7%90%ED%92%8D%EC%84%A0-%EB%94%94%EC%9E%90%EC%9D%B8-%EB%A7%8C%EB%93%9C%EB%8A%94-%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;다운로드.webp&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;923&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cU50Xl/btsmj8CTlds/en4328ubDvJUR6UBqEuFR0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cU50Xl/btsmj8CTlds/en4328ubDvJUR6UBqEuFR0/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cU50Xl/btsmj8CTlds/en4328ubDvJUR6UBqEuFR0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcU50Xl%2Fbtsmj8CTlds%2Fen4328ubDvJUR6UBqEuFR0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;923&quot; data-filename=&quot;다운로드.webp&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;923&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;말풍선_생성하기_사이트&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;말풍선 생성하기 사이트&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;맨 밑의 링크에 접속하면 간단하게 말풍선 스타일링을 바로 만들 수 있는 말풍선 생성 사이트에 접속할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;말풍선 꼬리표 위치&lt;code&gt;(Side)&lt;/code&gt; 와 모양&lt;code&gt;(Pointer triangle)&lt;/code&gt;과 크기&lt;code&gt;(Pointer size)&lt;/code&gt;를 지정해주고 옆의 &lt;code&gt;CSS&lt;/code&gt; 코드를 붙여넣으면 말풍선 스타일링을 쉽게 생성할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;실제 사용방법은 밑의 코드를 참고하면 쉽게 사용할 수 있을 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;html xml&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot; data-ke-language=&quot;html&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;speech-bubble&quot;&amp;gt;
  &amp;lt;h1&amp;gt;Bubbly&amp;lt;/h1&amp;gt;
  &amp;lt;h2&amp;gt;CSS speech bubbles made easy!&amp;lt;/h2&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688463916614&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.speech-bubble {
  position: relative;
  background: #00aabb;
  border-radius: .4em;
}

.speech-bubble:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 0;
  border: 20px solid transparent;
  border-top-color: #00aabb;
  border-bottom: 0;
  border-left: 0;
  margin-left: -10px;
  margin-bottom: -20px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;figure id=&quot;og_1688372941234&quot; style=&quot;color: #333333; text-align: start;&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;Bubbly &amp;mdash; CSS speech bubbles made easy&quot; data-og-description=&quot;&quot; data-og-host=&quot;projects.verou.me&quot; data-og-source-url=&quot;https://projects.verou.me/bubbly/&quot; data-og-url=&quot;https://projects.verou.me/bubbly/&quot; data-og-image=&quot;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://projects.verou.me/bubbly/&quot; data-source-url=&quot;https://projects.verou.me/bubbly/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('&amp;quot;&amp;quot;');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Bubbly &amp;mdash; CSS speech bubbles made easy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;projects.verou.me&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <category>CSS</category>
      <category>말풍선</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/105</guid>
      <comments>https://light9639.tistory.com/entry/HTML-%F0%9F%8F%B7%EF%B8%8F-%EB%A7%90%ED%92%8D%EC%84%A0-%EB%94%94%EC%9E%90%EC%9D%B8-%EB%A7%8C%EB%93%9C%EB%8A%94-%EB%B2%95#entry105comment</comments>
      <pubDate>Mon, 3 Jul 2023 17:47:13 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]  ️ 마우스 우클릭을 금지하는 2가지 방법</title>
      <link>https://light9639.tistory.com/entry/JavaScript-%F0%9F%8C%9F-%EB%A7%88%EC%9A%B0%EC%8A%A4-%EC%98%A4%EB%A5%B8%EC%AA%BD-%ED%81%B4%EB%A6%AD-%EA%B8%88%EC%A7%80%ED%95%98%EB%8A%94-2%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MQfHO/btslVl2AqBq/VYK549UtpKKaUk7M9qpcX0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MQfHO/btslVl2AqBq/VYK549UtpKKaUk7M9qpcX0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MQfHO/btslVl2AqBq/VYK549UtpKKaUk7M9qpcX0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMQfHO%2FbtslVl2AqBq%2FVYK549UtpKKaUk7M9qpcX0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마우스&amp;nbsp;오른쪽&amp;nbsp;클릭&amp;nbsp;금지하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마우스 우클릭을 하게 되면&amp;nbsp;&lt;code&gt;Context 메뉴&lt;/code&gt;가 나오게 된다. 이번 포스팅에서는 마우스 오른쪽 버튼을 클릭했을 때, 이 &lt;code&gt;Context 메뉴&lt;/code&gt;가 뜨지 않도록 하는 방법에 대해서 알아보도록 하자.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;return false 하기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688045027079&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div oncontextmenu='return false'&amp;gt;
  여기서 마우스 오른쪽 클릭해보세요.
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;oncontextmenu 이벤트&lt;/code&gt;는 마우스를 우클릭했을 때 발생한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;oncontextmenu&lt;/code&gt;가 호출되었을 때 &lt;code&gt;return false&lt;/code&gt;를 하게 되면, 마우스 우클릭을 해도 &lt;code&gt;context 메뉴&lt;/code&gt;가 열리지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;preventDefault() 활용하기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688045101707&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;body&amp;gt;
  &amp;lt;div id='test'&amp;gt;
    여기서 마우스 오른쪽 클릭해보세요.
  &amp;lt;/div&amp;gt;
  &amp;lt;script&amp;gt;
    document.getElementById('test').addEventListener('contextmenu', event =&amp;gt; event.preventDefault());
  &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;우선 'test' div에 &lt;code&gt;contextmenu 이벤트&lt;/code&gt;를 등록한다.&lt;/li&gt;
&lt;li&gt;이 때 호출되는 &lt;code&gt;event.preventDefault()&lt;/code&gt; 함수를 호출하면, 해당 이벤트가 발생했을 때 발생했어야 하는 동작이 멈춰지게 된다. 즉, 위의 예제를 보면 원래는 &lt;code&gt;contextmenu 이벤트&lt;/code&gt;가 발생하면 &lt;code&gt;context 메뉴&lt;/code&gt;가 열렸어야 하지만 위의 코드에서는 &lt;code&gt;preventDefault()&lt;/code&gt;를 호출하였기 때문에 &lt;code&gt;context 메뉴&lt;/code&gt;가 열리지 않게 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://heinafantasy.com/120&quot;&gt;마우스 우클릭 &amp;amp; 드래그 방지&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://doitdoik.tistory.com/15&quot;&gt;[JavaScript] 마우스 우클릭 금지 방법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://sisiblog.tistory.com/295&quot;&gt;[javascript] 자바스크립트 우클릭 방지&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/445&quot;&gt;[Javascript] 마우스 오른쪽 클릭 금지하는 2가지 방법&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <category>우클릭 금지</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/104</guid>
      <comments>https://light9639.tistory.com/entry/JavaScript-%F0%9F%8C%9F-%EB%A7%88%EC%9A%B0%EC%8A%A4-%EC%98%A4%EB%A5%B8%EC%AA%BD-%ED%81%B4%EB%A6%AD-%EA%B8%88%EC%A7%80%ED%95%98%EB%8A%94-2%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95#entry104comment</comments>
      <pubDate>Thu, 29 Jun 2023 22:26:24 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   '==' 연산자와 '===' 연산자의 차이점   총정리</title>
      <link>https://light9639.tistory.com/entry/JavaScript-%F0%9F%8C%9F-%EC%97%B0%EC%82%B0%EC%9E%90%EC%99%80-%EC%97%B0%EC%82%B0%EC%9E%90%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img.webp&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/90iPX/btslRIrkdBd/rzMZFOaa4JCh2HRBnY2IAk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/90iPX/btslRIrkdBd/rzMZFOaa4JCh2HRBnY2IAk/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/90iPX/btslRIrkdBd/rzMZFOaa4JCh2HRBnY2IAk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F90iPX%2FbtslRIrkdBd%2FrzMZFOaa4JCh2HRBnY2IAk%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;630&quot; data-filename=&quot;img.webp&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp;'=='와 '==='의 차이&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;code&gt;'=='&lt;/code&gt;는 비교하는 두 개의 값(피연산자)을 강제로 같은 형으로 변환한 후, 비교작업을 한다. 즉, 두 값의 타입이 다르더라도 형 변환된 값이 같다면 &lt;code&gt;true&lt;/code&gt;를 리턴한다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;code&gt;'==='&lt;/code&gt;&lt;/span&gt;는 비교하는 두 개의 값(피연산자)의 타입과 값이 모두 같을 경우에는&amp;nbsp;&lt;code&gt;true&lt;/code&gt;를 리턴한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688043798415&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;console.log(1 == '1'); // true
console.log(1 === '1'); // false

console.log(false == 0); // true
console.log(false === 0); // false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 첫번째 예제에서 숫자 1과 문자열 '1'을 비교하였다. &lt;code&gt;'=='&lt;/code&gt; 연산자를 사용하여 비교하면, 두 피연산자의 타입이 달라도 &lt;code&gt;true&lt;/code&gt;를 리턴하는 것을 확인할 수 있다. 그렇지만, &lt;code&gt;'==='&lt;/code&gt; 연산자를 사용하여 비교하면, 둘 다 1이지만, 타입이 다르기 때문에 &lt;code&gt;false&lt;/code&gt;를 리턴한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;두 번째 예제에서는 &lt;code&gt;boolean&lt;/code&gt; 값이 &lt;code&gt;false&lt;/code&gt;와 숫자 0을 비교하였다. &lt;code&gt;'=='&lt;/code&gt; 연산자를 사용하여 비교하면, 숫자 0을 &lt;code&gt;false&lt;/code&gt;로 취급하여 &lt;code&gt;true&lt;/code&gt;를 리턴한다. 그러나, &lt;code&gt;'==='&lt;/code&gt; 연산자를 사용하여 비교하면, 두 개의 타입이 다르므로 false를 리턴한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;보통, 정확한 비교를 하려 &lt;code&gt;'=='&lt;/code&gt; 보다는 &lt;code&gt;'==='&lt;/code&gt; 연산자를 사용하여 비교하는 것이 좋다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp;'=='연산자와 '==='를 이용한 unll, undefined 비교&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot;&gt;이번에는 &lt;code&gt;'=='&lt;/code&gt;와 &lt;code&gt;'==='&lt;/code&gt; 연산자를 이용하여&amp;nbsp;&lt;code&gt;null, undefined&lt;/code&gt; 값을 체크했을 경우 나오는 값은 밑의 코드와 같다.&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688043866908&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;console.log(undefined == null); // true
console.log(undefined === null); // false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드를 보면 &lt;code&gt;'=='&lt;/code&gt; 연산자를 이용하여 두 값&lt;code&gt;(null과 undefined)&lt;/code&gt;을 비교하면 &lt;code&gt;true&lt;/code&gt;를 리턴한다. 그러나, &lt;code&gt;'==='&lt;/code&gt; 연산자를 이용하여 두 값을 비교하면 타입이 다르기 때문에 &lt;code&gt;false&lt;/code&gt;를 리턴한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp;'==' 연산자를 이용한 null, undefined 비교 예제&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #0593d3; color: #ffffff;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688043936621&quot; class=&quot;javascript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let a; // undefined
let b = null; // null

console.log(a == null); // true
console.log(a == undefined); // true
console.log(b == null); // true
console.log(b === undefined); // false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;변수를 선언하고 값을 할당하지 않으면 변수는 &lt;code&gt;undefined&lt;/code&gt; 값을 가지게 된다. 따라서 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;변수 a는 &lt;code&gt;undefined&lt;/code&gt; 값을 가지게 되며,&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;변수 b에는 &lt;code&gt;null&lt;/code&gt; 값을 할당하였다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;'=='&lt;/code&gt; 연산자를 사용하여 &lt;code&gt;null&lt;/code&gt; 값과 비교할 경우, 변수값이 &lt;code&gt;null&lt;/code&gt; 이든 &lt;code&gt;undefined&lt;/code&gt;이든 모두 &lt;code&gt;true&lt;/code&gt;를 리턴한다. 마찬가지로, &lt;code&gt;'=='&lt;/code&gt; 연산자를 사용하여 &lt;code&gt;undefined&lt;/code&gt; 값과 비교를 하면, 변수값이 &lt;code&gt;null&lt;/code&gt; 이든,&amp;nbsp; &lt;code&gt;undefined&lt;/code&gt; 이든 모두 &lt;code&gt;true&lt;/code&gt;를 리턴한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #5c5c5c; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;nbsp;'===' 연산자를 이용한 null, undefined 비교 예제&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1688043979295&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let a; // undefined
let b = null; // null

console.log(a === null); // false
console.log(a === undefined); // true
console.log(b === null); // true
console.log(b === undefined); // false&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;'==='&lt;/code&gt; 연산자를 이용하여 비교할 경우, 정확하게 두 값이 일치할 경우에만 &lt;code&gt;true&lt;/code&gt;를 리턴한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://developer-talk.tistory.com/184&quot;&gt;[JavaScript]==, === 차이&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/376&quot;&gt;[Javascript] '=='와 '==='의 차이 (null, undefined)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/375&quot;&gt;[Javascript] '==' 연산자와 '===' 연산자의 차이점&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>==</category>
      <category>===</category>
      <category>javascript</category>
      <category>null</category>
      <category>undefined</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/103</guid>
      <comments>https://light9639.tistory.com/entry/JavaScript-%F0%9F%8C%9F-%EC%97%B0%EC%82%B0%EC%9E%90%EC%99%80-%EC%97%B0%EC%82%B0%EC%9E%90%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC#entry103comment</comments>
      <pubDate>Thu, 29 Jun 2023 22:11:32 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]  ️ Array.prototype.at() 사용법</title>
      <link>https://light9639.tistory.com/entry/JavaScript-%F0%9F%8C%9F-Arrayprototypeat-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img.webp&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DCI6K/btslSpLxhDf/Ucatc08Edyl06sCokRox7K/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DCI6K/btslSpLxhDf/Ucatc08Edyl06sCokRox7K/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DCI6K/btslSpLxhDf/Ucatc08Edyl06sCokRox7K/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDCI6K%2FbtslSpLxhDf%2FUcatc08Edyl06sCokRox7K%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;630&quot; data-filename=&quot;img.webp&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;array.prototype.at&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바스크립트 at() 메소드&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;2022부터 &lt;code&gt;Array.prototype.at()&lt;/code&gt;이 표준 메소드로 채택되면서, 파이썬과 같이 간단하게 음수 인덱스를 사용하는 것이 가능해졌다. 메소드 &lt;code&gt;at()&lt;/code&gt;의 추가는 성능적인 문제로 인해 개발되었다기 보다, 가독성면에서의 장점을 위해 추가된 기능이다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;at()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드는 정수 값을 받은 후, 배열에서 해당 값에 해당하는 인덱스의 요소를 반환하게 된다. 양수와 음수를 모두 지정할 수 있으며, 음수 값의 경우 배열의 뒤에서부터 인덱스를 센다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #1b1b1b; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;또한 &lt;code&gt;at()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;메소드의 존재가 대괄호 표기법을 부정하는 것은 아니다. 예를 들어&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;array[0]&lt;/code&gt;은 문제 없이 배열의 첫 요소를 반환한다. 그러나 맨 마지막 요소를 가져오고 싶을 때는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;length&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;속성을 사용해&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;array[array.length - 1]&lt;/code&gt;을 하는 대신, 짧게&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;array.at(-1)&lt;/code&gt;을 사용할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;기존_방법&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;기존 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot;&gt;&lt;code&gt;// 마지막 값을 얻기
const arrays = ['a','b','c','d'];

// array.length에서 1을 빼 마지막 인덱스 얻어서 사용
arrays[arrays.length - 1]; // 'd'

// 음수 인덱스를 지원하는 slice메소드 간접 사용
arrays.slice(-2, -1); // 'd'Copy&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 id=&quot;2022_표준_메소드&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2022 표준 메소드&lt;/b&gt;&lt;/h3&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;cpp&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot;&gt;&lt;code&gt;const arrays = ['a','b','c','d'];

console.log(arrays.at(-1)); // 'd&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://leedohyun1985.tistory.com/86&quot;&gt;Array.prototype.at()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/at#%EC%98%88%EC%A0%9C&quot;&gt;Array.prototype.at()&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://velog.io/@sitaruta/.at%EB%A9%94%EC%86%8C%EB%93%9C%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90&quot;&gt;.at()메소드를 사용해보자&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>at</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/101</guid>
      <comments>https://light9639.tistory.com/entry/JavaScript-%F0%9F%8C%9F-Arrayprototypeat-%EC%82%AC%EC%9A%A9%EB%B2%95#entry101comment</comments>
      <pubDate>Thu, 29 Jun 2023 20:24:18 +0900</pubDate>
    </item>
    <item>
      <title>[HTML]  ️ &amp;lt;!DOCTYPE&amp;gt;이란 무엇인가?</title>
      <link>https://light9639.tistory.com/entry/HTML-DOCTYPE%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (3).webp&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6opd3/btslMorO0PN/AJK6KV7HK9n9hr1CtKHki0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6opd3/btslMorO0PN/AJK6KV7HK9n9hr1CtKHki0/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6opd3/btslMorO0PN/AJK6KV7HK9n9hr1CtKHki0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6opd3%2FbtslMorO0PN%2FAJK6KV7HK9n9hr1CtKHki0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1200&quot; data-filename=&quot;img (3).webp&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;lt;!DOCTYPE&amp;gt; 이란?&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;DOCTYPE&lt;/code&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;document type&lt;/code&gt;의 약자로, 웹 문서가 어떠한 형식으로 작성되었는지 또는 최상단에 문서의 형식을 선언하는 것을 의미한다. &lt;code&gt;DOCTYPE&lt;/code&gt; 선언의 형식은 HTML 태그는 아니지만, HTML 문서의 버전을 웹 브라우저에 알리며, 대소문자를 구분하지는 않지만 보통은 대문자로 사용하며, 일반적으로 HTML 태그보다 먼저 선언된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&amp;lt;!DOCTYPE&amp;gt; 선언의 목적&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;DOCTYPE&lt;/code&gt;을 선언하지 않으면 같은 내용의 HTML 문서라도 각 브라우저의 따라 전혀 다른 결과물을 출력하는 경우가 발생한다. 이 때문에 브라우저가 HTML 문서를 동일하게 인식할 수 있도록 하고, 문서 간의 호환성을 높이기 위해 선언을 해야 한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;HTML5 버전과 그 이전버전의 차이&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;HTML5&lt;/code&gt; 이전에는 &lt;code&gt;DOCTYPE&lt;/code&gt;을 선언하는 코드가 길고 간결하지 않아서 무슨 의미인지 파악이 힘들었지만, 현재는&amp;nbsp;&lt;code&gt;HTML5&lt;/code&gt;의 등장으로 웹 표준으로 정착해서 사용하고 있으며, &lt;code&gt;DOCTYPE&lt;/code&gt;을 간단하게 선언할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687956352873&quot; class=&quot;xml&quot; style=&quot;color: #000000; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;에스제이 티스토리에 오신걸 환영합니다.&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;code&gt;[HTML4와 XHTML]&lt;/code&gt;&lt;/span&gt;의 &lt;code&gt;DOCTYPE&lt;/code&gt; 선언 방법은 코드가 길고 문서 유형에 맞지 않게 &lt;code&gt;HTML 코드&lt;/code&gt;를 사용할 경우 오류가 발생하기도 한다. 또한 각 브라우저마다 다르게 해석하여 다른 결과물 출력하는 경우가 발생한다. 각 &lt;code&gt;DOCTPYE&lt;/code&gt; 선언 방법은 밑의 코드를 참고하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687956352874&quot; class=&quot;xml&quot; style=&quot;color: #000000; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- STATIC MODE(엄격모드) : 문법을 정확하게 준수해야 하며, 문법에 안맞을 경우 오류 발생--&amp;gt;
&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687956352874&quot; class=&quot;xml&quot; style=&quot;color: #000000; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- TRANSITIONAL MODE(호환모드) : HTML 문법에 오류가 있어도 허용한다 --&amp;gt;
&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687956352875&quot; class=&quot;xml&quot; style=&quot;color: #000000; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- FRAMESET MODE(프레임셋 모드) : FRAMESET를 사용할 경우 선언 --&amp;gt;
&amp;lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Frameset//EN&quot; &quot;http://www.w3.org/TR/html4/frameset.dtd&quot;&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Frameset//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;HTML5 이전버전을 폐지하지 않는 이유&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;최신 버전으로 통일하여 &lt;code&gt;HTML&lt;/code&gt;을 사용하면 좋다고 생각할 수 잇다. 그러나 &lt;code&gt;HTML5&lt;/code&gt; 이전 버전을 폐지하지 않고 유지하는 이유는 과거에 작성된, 웹 자료의 보존이 필요하기 때문에 유지하고 있다고 한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://jettanalysis.com/wiki/doctype&quot;&gt;문서 유형 (Doctype)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://ssd0908.tistory.com/entry/HTML-DOCTYPE-%EC%84%A0%EC%96%B8-%EC%9D%98%EB%AF%B8-%EB%B0%8F-%ED%98%84%EC%9E%AC%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80&quot;&gt;[HTML] 선언 의미 및 현재는 어떻게 사용하는가?&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://ssd0908.tistory.com/entry/HTML-DOCTYPE-%EC%84%A0%EC%96%B8-%EC%9D%98%EB%AF%B8-%EB%B0%8F-%ED%98%84%EC%9E%AC%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%EA%B0%80&quot;&gt;[HTML #5] DOCTYPE - !doctype html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/HTML</category>
      <category>DOCTYPE</category>
      <category>html</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/100</guid>
      <comments>https://light9639.tistory.com/entry/HTML-DOCTYPE%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80#entry100comment</comments>
      <pubDate>Wed, 28 Jun 2023 21:46:01 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   var, let, const 차이점   총정리</title>
      <link>https://light9639.tistory.com/entry/javascript-%F0%9F%8C%9F-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1_BPSx-c--z6r7tY29L19ukQ.webp&quot; data-origin-width=&quot;1366&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b17nZ1/btsk0fbLFtK/mTOeDyWL9nM7UVvftyKs4K/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b17nZ1/btsk0fbLFtK/mTOeDyWL9nM7UVvftyKs4K/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b17nZ1/btsk0fbLFtK/mTOeDyWL9nM7UVvftyKs4K/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb17nZ1%2Fbtsk0fbLFtK%2FmTOeDyWL9nM7UVvftyKs4K%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1366&quot; height=&quot;768&quot; data-filename=&quot;1_BPSx-c--z6r7tY29L19ukQ.webp&quot; data-origin-width=&quot;1366&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;자바스크립트에서의 변수&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;var Name = 'Kim';&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자바스크립트에서 변수는 자료를 임시로 저장하는 공간이다.&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;var&lt;/code&gt;이라는 키워드 오른쪽에 작명을 하시고, 변수에 저장할 자료를 등호로 집어넣어주시면 됩니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;오브젝트, 어레이, 함수 등 모든 자료들을 담을 수 있습니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;그리고&amp;nbsp;&lt;code&gt;var&lt;/code&gt; 이름이라는 부분은 선언, &lt;code&gt;Name = Kim&lt;/code&gt;&amp;nbsp;이라는 부분은 값 할당이라고 전문 용어로 표현합니다. 보통 변수만들 땐 두개를 동시에 사용합니다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;그리고 변수를 만들 땐 &lt;code&gt;var, let, const&lt;/code&gt;라는 3개 키워드를 이용가능합니다.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3개 키워드마다 특징이 있습니다. 변수의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;선언, 할당, 범위&lt;/code&gt;에서 차이가 존재하는데 자세한 내용은 밑에 나와있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;변수의 선언&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;var Name;
let Age;
const Gender;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 &lt;code&gt;var, let, const&lt;/code&gt; 키워드를 이용하여 변수를 선언할 수 있다. 등호를 사용하지 않아도 변수를 만들 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그런데 &lt;code&gt;var&lt;/code&gt; 키워드는 재선언이 가능하고 &lt;code&gt;let, const&lt;/code&gt; 키워드는 재선언이 불가능하다.&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;let Age;
let Age; //에러

const Gender = '여자';
const Gender = '남자'; //에러&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;let, const&lt;/code&gt;로 변수를 선언하면 같은 이름의 변수를 두번 이상 재선언할 시에 에러가 발생한다. 이 때문에 나중에 변수 이름을 실수로 중복해서 만드는 것을 방지할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;변수의 값 할당&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;변수에 값을 할당한다는 것이 무슨 의미냐면, 밑의 코드 중&amp;nbsp;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;둘째줄에서 이렇게 만들어놓은 변수에 'Kim' 이라는 값을 집어넣는걸 할당이라고 한다. &lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;var Name;
Name = 'Kim';&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;또한 할당도 선언과 동시에 할 수 있는데, 밑&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;의 코드가 선언과 할당을 동시에 하는 방법이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;var Name = 'Kim';&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그런데 변수를 &lt;code&gt;var, let&lt;/code&gt;으로 만들면 재할당이 가능하고 &lt;code&gt;const&lt;/code&gt;로 만들면 값 재할당이 불가능하다. &lt;code&gt;const&lt;/code&gt;로 변수 만들면 나중에 등호를 이용하여 값을 변경하는 것이 불가능하다 의미이다.&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;let Name = 'Kim';
Name = 'Park';  //가능

const Age = 30;
Age = 40; //에러&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;const&lt;/code&gt;는 애초에 &lt;code&gt;constant&lt;/code&gt;의 약자로 바뀌지 않는 일정한 값을 뜻한다. 그래서 변경되면 안 될 값을 저장하고 싶을 때 사용하면 좋다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다만 &lt;code&gt;const&lt;/code&gt; 변수에 오브젝트를 담으면 오브젝트 내의 데이터는 변경 가능합니다.&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;const Object = { Name : 'Kim' }
Object.Name = 'Park'; //가능&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 예제는 변수를 재할당한 것이 아니기 때문에 가능하다. 만약 완전히 변경이 불가능한 오브젝트를 만들고 싶다면 &lt;code&gt;Object.freeze()&lt;/code&gt;라는 자바스크립트 기본함수를 사용하면 된다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Object.freeze()&lt;/code&gt; 소괄호에 오브젝트를 담으시면 불변의 Object가 완성됩니다. 하지만 오브젝트 내의 오브젝트까지 freeze 해주진 않는다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;&lt;b&gt;변수의 범위&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;변수를 만들면 존재범위가 있다. &lt;code&gt;var&lt;/code&gt; 변수는 존재범위가 &lt;code&gt;function&lt;/code&gt;이지만, &lt;code&gt;let, const&lt;/code&gt; 변수는 존재범위가 거의 모든 &lt;code&gt;{중괄호}&lt;/code&gt;이다. &lt;code&gt;for, if, function&lt;/code&gt; 등등.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;function Func(){
  var Name = 'Kim';
  console.log(Name); //가능
}

console.log(Name); //에러&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 예제처럼 &lt;code&gt;var&lt;/code&gt; 변수는 &lt;code&gt;function&lt;/code&gt; 내에서 만들면 &lt;code&gt;function&lt;/code&gt; 내에서만 쓸 수 있다. 만약 &lt;code&gt;function&lt;/code&gt; 바깥에서 부르면 값이 없다고 나온다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;if ( 100 == 100 ){
  let Name = 'Kim';
  console.log(Name); //가능
}

console.log(Name); //에러&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 예제처럼 &lt;code&gt;let&lt;/code&gt; 변수는 &lt;code&gt;{} 중괄호&lt;/code&gt; 내에서 만들면 중괄호 내에서만 쓸 수 있고, 중괄호 바깥에서 부르면 값이 없다고 나온다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://codingapple.com/unit/es6-4-var-let-const-hoisting/?id=2447&quot;&gt;변수 신문법 총정리 1. var let const와 선언,할당,범위&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EB%B3%80%EC%88%98-%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85&quot;&gt;  var / let / const 차이점 정리 (변수 호이스팅)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://poiemaweb.com/es6-block-scope&quot;&gt;let, const와 블록 레벨 스코프&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://80000coding.oopy.io/e1721710-536f-43f2-823b-663389f5fbfa&quot;&gt;var, let, const 차이점&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>const</category>
      <category>javascript</category>
      <category>Let</category>
      <category>var</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/99</guid>
      <comments>https://light9639.tistory.com/entry/javascript-%F0%9F%8C%9F-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC#entry99comment</comments>
      <pubDate>Thu, 22 Jun 2023 18:07:54 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   Math 메소드   총 정리</title>
      <link>https://light9639.tistory.com/entry/JavaScript-Math-%EB%A9%94%EC%86%8C%EB%93%9C</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SVSMQ/btskRRvDB2V/ay3QgS4XfOrSFOSsFwdDm1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SVSMQ/btskRRvDB2V/ay3QgS4XfOrSFOSsFwdDm1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SVSMQ/btskRRvDB2V/ay3QgS4XfOrSFOSsFwdDm1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSVSMQ%2FbtskRRvDB2V%2Fay3QgS4XfOrSFOSsFwdDm1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Math 객체&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math 객체&lt;/code&gt;는 수학에서 자주 사용하는&amp;nbsp;상수와 함수들을 미리 구현해 놓은&amp;nbsp;자바스크립트 표준 내장 객체이다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math 객체&lt;/code&gt;는 다른 전역 객체와는 달리 &lt;code&gt;생성자(constructor)&lt;/code&gt;가 존재하지 않는다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 따로 인스턴스를 생성하지 않아도 &lt;code&gt;Math 객체&lt;/code&gt;의 모든 메소드나 프로퍼티를&amp;nbsp;바로 사용할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Math 메소드&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;자바스크립트는 웹 브라우저상에서 수학적 작업을 손쉽게 할 수 있도록 다양한 &lt;code&gt;Math 메소드&lt;/code&gt;를 제공하고 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;그 중에서 가장 많이 사용되는 대표적인 &lt;code&gt;Math 메소드&lt;/code&gt;는 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;Math.min()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Math.max()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Math.random()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Math.round()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Math.floor()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Math.ceil()&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Math.sin()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;대부분의 &lt;code&gt;Math 메소드&lt;/code&gt;는 웹 브라우저마다 다른 결과값을 얻을 가능성이 높다. 심지어 같은 자바스크립트 인터프리터라도 운영체제가 다르면 다른 결과값을 반환할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 아주 정확한 결과값이 필요한 작업에는 &lt;code&gt;Math 메소드&lt;/code&gt;는 사용하지 않는 것이 좋다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Math.min() 메소드&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math.min()&lt;/code&gt; 메소드는 인수로 전달받은 값 중에서 가장 작은 수를 반환한다. 인수가 전달되지 않으면 Infinity를 반환하며, 인수 중에 비교할 수 없는 값이 포함되어 있으면 NaN을 반환한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687437620034&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Math.min();                              // Infinity
Math.min(1, 10, -100, -10, 1000, 0);     // -100
Math.min(1, 10, -100, -10, &quot;-1000&quot;, 0);  // -1000
Math.min(1, 10, -100, -10, &quot;문자열&quot;, 0); // NaN&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Math.max() 메소드&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math.max()&lt;/code&gt; 메소드는 인수로 전달받은 값 중에서 가장 큰 수를 반환한다. 인수가 전달되지 않으면 -Infinity를 반환하며, 인수 중에 비교할 수 없는 값이 포함되어 있으면 NaN을 반환한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687352186717&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Math.max();                              // -Infinity
Math.max(1, 10, -100, -10, 100, 0);      // 100
Math.max(1, 10, -100, -10, &quot;1000&quot;, 0);   // 1000
Math.max(1, 10, -100, -10, &quot;문자열&quot;, 0); // NaN&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Math.random() 메소드&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math.random()&lt;/code&gt; 메소드는 0보다 크거나 같고 1보다 작은 무작위 숫자(random number)를 반환한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687400660046&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var min = 10, max = 20;
Math.random();                     // [0, 1)
Math.random() * (max - min) + min; // [min, max)&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot;&gt;위의 예제에서 사용된 '['기호는 '크거나 같은'을 나타내며, ']'기호는 '작거나 같은'을 나타내는 기호이다. 또한, '('기호는 '보다 큰'을 나타내며, ')'기호는 '보다 작은'을 나타내는 기호이다.&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Math.round() 메소드&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math.round()&lt;/code&gt; 메소드는 인수로 전달받은 값을 소수점 첫 번째 자리에서 반올림하여 그 결과값을 반환한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687400730295&quot; class=&quot;reasonml&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Math.round(10.49);  // 10
Math.round(10.5);   // 11
Math.round(-10.5);  // -10
Math.round(-10.51); // -11&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Math.floor() 메소드&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math.floor()&lt;/code&gt; 메소드는 인수로 전달받은 값과 같거나 작은 수 중에서 가장 큰 정수를 반환한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687402204821&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Math.floor(10.95);  // 10
Math.floor(11.01);  // 11
Math.floor(-10.95); // -11
Math.floor(-11.01); // -12&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Math.ceil() 메소드&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math.ceil()&lt;/code&gt; 메소드는 인수로 전달받은 값과 같거나 큰 수 중에서 가장 작은 정수를 반환한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687402230061&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Math.ceil(10.95);  // 11
Math.ceil(11.01);  // 12
Math.ceil(11);     // 11
Math.ceil(-10.95); // -10
Math.ceil(-11.01); // -11&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Math.sin() 메소드&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Math.sin()&lt;/code&gt; 메소드는 인수로 전달받은 값의 사인(sine) 함숫값을 반환한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687402276747&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Math.sin(0);           // 0
Math.sin(Math.PI / 2); // 1&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;자바스크립트에서 제공하는 삼각 함수에 관한 모든 메소드는 각도의 단위로 라디안(radian)을 사용한다. 이때 라디안 단위와 60분법 단위를 서로 변환하기 위해서는 다음과 같은 공식을 사용한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687437671322&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;라디안값 = 60분법값 * (Math.PI / 180)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;Math.PI&lt;/code&gt;는 수학에서 사용하는 파이(&amp;pi;)값을 나타내는 자바스크립트 상수입니다. 따라서 대략적인 값으로 3.145159를 나타낸다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;자바스크립트 Math 메소드&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;메소드설명&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;background-color: #ffffff; color: #575757; text-align: left; border-collapse: collapse; width: 100%; height: 704px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style9&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 29.1862%;&quot;&gt;메소드&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 70.6975%;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.min(x, y, ...)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;인수로 전달받은 값 중에서 가장 작은 수를 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.max(x, y, ...)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;인수로 전달받은 값 중에서 가장 큰 수를 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.random()&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;0보다 크거나 같고 1보다 작은 랜덤 숫자(random number)를 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.round(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;x를 소수점 첫 번째 자리에서 반올림하여 그 결과를 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.floor(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;x와 같거나 작은 수 중에서 가장 큰 정수를 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.ceil(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;x와&amp;nbsp;같거나 큰&amp;nbsp;수 중에서 가장 작은&amp;nbsp;정수를 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.abs(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;x의 절댓값을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.cbrt(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;x의 세제곱근을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.sqrt(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;x의 제곱근을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.clz32(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;&lt;span&gt;x을 32비트 이진수로 변환한 후, 0이 아닌 비트의 개수를 반환함.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.exp(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;ex&amp;nbsp;의 값을 반환함.&amp;nbsp;(e : 오일러의 수)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.expm1(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;1 - ex&amp;nbsp;의 값을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.fround(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;x와 가장 근접한 32비트 부동 소수점 수(single precision float)를 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.hypot(x, y, ...)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;인수로 전달받은 값들을 각각 제곱한 후 더한 총합의 제곱근을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.imul(x, y)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;인수로 전달받은 두 값의 32비트 곱셈의 결과를 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.log(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;x의 자연로그 값을 반환함. (ln x)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.log1p(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;ln(1 + x)의 값을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.log10(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;x의 10을 밑으로 가지는 로그 값을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.log2(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;x의 2를 밑으로 가지는 로그 값을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.pow(x, y)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;x의 y승을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 20px; width: 29.1862%;&quot;&gt;Math.sign(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 20px; width: 70.6975%;&quot;&gt;x의 부호 값을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 40px; width: 29.1862%;&quot;&gt;Math.trunc(x)&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 40px; width: 70.6975%;&quot;&gt;x의 모든 소수 부분을 삭제하고 정수 부분만을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 34px;&quot;&gt;
&lt;td style=&quot;text-align: center; height: 34px; width: 29.1862%;&quot;&gt;&lt;span&gt;Math.sin(x),&amp;nbsp;Math.cos(x),&amp;nbsp;Math.tan(x),Math.asin(x),&amp;nbsp;Math.acos(x),&amp;nbsp;Math.atan(x),&amp;nbsp;Math.asinh(x),&amp;nbsp;Math.acosh(x),&amp;nbsp;Math.atanh(x),&amp;nbsp;Math.atan2(x)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;text-align: left; height: 34px; width: 70.6975%;&quot;&gt;x의 해당 삼각 함숫값을 반환함.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #333333; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;자바스크립트 Math 프로퍼티&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;background-color: #ffffff; color: #575757; text-align: left; border-collapse: collapse; width: 100%; height: 160px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style9&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%;&quot;&gt;프로퍼티&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%;&quot;&gt;설명&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%;&quot;&gt;값&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%; height: 20px;&quot;&gt;Math.E&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%; height: 20px;&quot;&gt;오일러의 수(Euler's constant)라고 불리며, 자연로그(natural logarithms)의 밑(base) 값&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%; height: 20px;&quot;&gt;2.718&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%; height: 20px;&quot;&gt;Math.LN2&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%; height: 20px;&quot;&gt;2의 자연로그 값&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%; height: 20px;&quot;&gt;0.693&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%; height: 20px;&quot;&gt;Math.LN10&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%; height: 20px;&quot;&gt;10의 자연로그 값&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%; height: 20px;&quot;&gt;2.303&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%; height: 20px;&quot;&gt;Math.LOG2E&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%; height: 20px;&quot;&gt;오일러 수(e)의 밑 값이 2인 로그 값&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%; height: 20px;&quot;&gt;1.443&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%; height: 20px;&quot;&gt;Math.LOG10E&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%; height: 20px;&quot;&gt;오일러 수(e)의 밑 값이 10인 로그 값&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%; height: 20px;&quot;&gt;0.434&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%; height: 20px;&quot;&gt;Math.PI&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%; height: 20px;&quot;&gt;원의 원주를 지름으로 나눈 비율(원주율) 값&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%; height: 20px;&quot;&gt;3.14159&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%; height: 20px;&quot;&gt;Math.SQRT1_2&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%; height: 20px;&quot;&gt;2의 제곱근의 역수 값&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%; height: 20px;&quot;&gt;0.707&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;text-align: center; width: 18.7209%; height: 20px;&quot;&gt;Math.SQRT2&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 72.093%; height: 20px;&quot;&gt;2의 제곱근 값&lt;/td&gt;
&lt;td style=&quot;text-align: left; width: 9.18605%; height: 20px;&quot;&gt;1.414&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://poiemaweb.com/js-math&quot;&gt;수학 상수와 함수를 위한 Math 객체&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;http://www.tcpschool.com/javascript/js_standard_math&quot;&gt;Math 객체&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-Math-%EB%A9%94%EC%86%8C%EB%93%9C-%E2%9C%8F%EF%B8%8F-%EC%A0%95%EB%A6%AC&quot;&gt;[JS]   자바스크립트 Math 메소드   총정리&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://tlsdnjs12.tistory.com/35&quot;&gt;[Javascript] Math 메소드&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <category>Math</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/98</guid>
      <comments>https://light9639.tistory.com/entry/JavaScript-Math-%EB%A9%94%EC%86%8C%EB%93%9C#entry98comment</comments>
      <pubDate>Wed, 21 Jun 2023 21:59:33 +0900</pubDate>
    </item>
    <item>
      <title>[Git]   자주 쓰는 Git 명령어   총 정리</title>
      <link>https://light9639.tistory.com/entry/Git-%F0%9F%92%BD-%EC%9E%90%EC%A3%BC-%EC%93%B0%EB%8A%94-Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;best-git-gui-clients.jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A3HHG/btskBCken6s/LEfAKSNlMhc45nJzbTcbU1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A3HHG/btskBCken6s/LEfAKSNlMhc45nJzbTcbU1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A3HHG/btskBCken6s/LEfAKSNlMhc45nJzbTcbU1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA3HHG%2FbtskBCken6s%2FLEfAKSNlMhc45nJzbTcbU1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;640&quot; data-filename=&quot;best-git-gui-clients.jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;h&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;시작하며&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;자주 쓰는 &lt;code&gt;git 명령어&lt;/code&gt;를 &lt;code&gt;git commands cheat sheet&lt;/code&gt;를 참고하여 정리해보자. 자세한 내용은 git-scm&lt;span&gt;&amp;nbsp;&lt;/span&gt;공식 사이트가 더 정리가 잘 되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1687246725816&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;Git&quot; data-og-description=&quot;&quot; data-og-host=&quot;git-scm.com&quot; data-og-source-url=&quot;https://git-scm.com/&quot; data-og-url=&quot;https://git-scm.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fyhFD/hyS4sVDxx1/Au4WPKEaXR0BwyaOx8E63K/img.png?width=778&amp;amp;height=502&amp;amp;face=0_0_778_502&quot;&gt;&lt;a href=&quot;https://git-scm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://git-scm.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fyhFD/hyS4sVDxx1/Au4WPKEaXR0BwyaOx8E63K/img.png?width=778&amp;amp;height=502&amp;amp;face=0_0_778_502');&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;Git&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;git-scm.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;git&lt;/code&gt;으로 새로운 프로젝트를 시작하려고 하면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #337ab7;&quot; href=&quot;https://light9639.tistory.com/entry/Git-%F0%9F%92%BD-%EC%9E%90%EC%A3%BC-%EC%93%B0%EB%8A%94-Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC#h_2&quot;&gt;프로젝트 생성하기&lt;/a&gt;로 이동하면 된다. 또는 필요한 명령어나 자주 쓰는 명령어만 찾아서 프로젝트에 사용하면 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_1&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;자주 쓰는 Git Command&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;vala&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 현재 directory 의 모든 파일을 Staging Area 로 이동
git add .

# file 들의 tracking 상태 보기
git status

# Staging 의 파일들 commit 하기
git commit -m &quot;messsage&quot;

# 저장소에 commit 반영하기
git push

# 저장소에서 commit 가지고 오기
git pull

# remote origin의 development branch merge
git merge origin/development

# 한 줄로 그래프 형태로 commit 히스토리 보기
git log --oneline --graph

# remote에서 삭제된 brach를 local 에서도 깔끔하게 삭제
git fetch origin --prune&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;h_2&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Setup 초기 설정&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;h_3&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용자 이름, Email 설정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시작 전에 사용자 이름과 &lt;code&gt;Email&lt;/code&gt;을 설정한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git config --global user.name &amp;ldquo;[firstname lastname]&amp;rdquo;
git config --global user.email &amp;ldquo;[valid-email]&amp;rdquo;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_4&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;출력 색상 변경&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;출력되는 &lt;code&gt;command line&lt;/code&gt;를 읽기 쉽도록 자동으로 색상을 설정한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git config --global color.ui auto&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_5&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용자 설정 정보 확인&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;전체 설정 정보 확인을 위해 아래 명령어를 실행하거나 혹은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;.gitconfig&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;파일을 확인한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git config --list&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;사용자 정보는 아래와 같이 확인한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;routeros&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git config --global user.email
git config --global user.name&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;h_6&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Git 프로젝트 생성하기, 가져오기&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래 두 가지 방법 중 한가지로 &lt;code&gt;Git 저장소&lt;/code&gt;를 시작할 수 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #222222; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;아직 버전관리를 하지 않는 로컬 디렉토리 하나를 선택해서 &lt;code&gt;Git 저장소&lt;/code&gt;를 적용하는 방법&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;다른 어딘가에서 &lt;code&gt;Git 저장소&lt;/code&gt;를 &lt;code&gt;Clone&lt;/code&gt; 하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_7&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git init: 기존 디렉토리를 Git 저장소로 만들기&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트 &lt;code&gt;directory&lt;/code&gt;로 가서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;git init&lt;/code&gt;을 실행하면 새로운 &lt;code&gt;Git 저장소&lt;/code&gt;가 만들어진다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;vala&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 프로젝트 directory로 이동
cd [my_project path]

# README 파일 생성
echo &quot;# my_project&quot; &amp;gt;&amp;gt; README.md

# git 저장소로 등록
git init

# 관리할 file을 Staging Area 추가
git add README.md

# Staging Area 에 추가된 파일 commit
git commit -m &quot;first commit&quot;

# 최초 등록된 master branch 대신 main branch 사용하도록 변경
git branch -M main

# 원격 remote repository에 추가
git remote add origin [git URL]

# git push
git push -u origin main&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_8&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git clone: git repository 가져오기&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기존에 사용 중인 저장소를 &lt;code&gt;clone&lt;/code&gt; 해서 가져올 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;crmsh&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git clone [url]&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;h_9&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Snapshot 스냅샷 다루기&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Git&lt;/code&gt; 스냅샷 즉 특정 상태의 버저닝을 생성한다. &lt;code&gt;Staging Area&lt;/code&gt;에 파일을 추가하고 &lt;code&gt;commit, push&lt;/code&gt; 정도만 알면 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_10&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git add&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;working directory&lt;/code&gt;에서 파일/폴더를 &lt;code&gt;Staging Area(&amp;ldquo;index&amp;rdquo;)&lt;/code&gt;에 등록하여 &lt;code&gt;git&lt;/code&gt;으로 관리를 시작한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;dockerfile&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git add [file]&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_11&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git status&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Git&lt;/code&gt;의 현재 상태 확인한다. &lt;code&gt;Staging Area, UnStage Area&lt;/code&gt; 에 있는 파일 및 &lt;code&gt;Untracked&lt;/code&gt; 상태의 파일을 확인 할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;ebnf&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_12&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git diff&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;git diff&lt;/code&gt; 명령은 두 트리 개체의 차이를 보고 싶을 때 사용한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;mipsasm&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# stage 되지 않은 변경 비교
git diff

# stage 되어 있으나 아직 commit 되지 않은 변경 비교
git diff --staged&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_13&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git commit&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;git commit&lt;/code&gt; 명령은 &lt;code&gt;Staging Area&lt;/code&gt;의 모든 파일을 커밋한다. 저장소에는 하나의 스냅샷으로 기록된다. 그 뒤 현재 &lt;code&gt;Branch&lt;/code&gt;가 새 커밋을 가리키게 한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;css&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git commit -m &amp;ldquo;[커밋 상세 메시지]&amp;rdquo;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;--amend&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;옵션으로 최근 커밋을 재작성할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;pgsql&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git commit --amend&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아래와 같이 &lt;code&gt;commit&lt;/code&gt;에 깜박한 파일이 있으면 아래와 같이 수정 가능하다. 이렇게 &lt;code&gt;--amend&lt;/code&gt; 옵션으로 커밋을 수정하는 작업은 이전의 커밋을 완전히 새로 고쳐서 새 커밋으로 변경하는 것을 의미한다. 이전 커밋은 일어나지 않은 일이 되는 것이고 당연히 히스토리에도 남지 않는다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;pgsql&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git commit -m 'initial commit'
git add forgotten_file
git commit --amend&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_14&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git reset&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;git reset&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;명령은 되돌리는(Undo) 명령이다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;git reset&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;명령은 기록이 없어질 수 있어서, 위험하므로 주의하여 사용해야 한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;sql&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# Staged 상태의 파일을 Unstage 로 변경
git reset

# staging area가 초기화되고 working tree를 특정 커밋시점으로 덮어쓰기 
git reset --hard [commit]

# 이전 Head 시점으로 초기화. working directory, 최근 commit 이력이 삭제된다.
git reset --hard HEAD^&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_15&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git rm&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Staging Area&lt;/code&gt;나 &lt;code&gt;Working directory&lt;/code&gt;에 있는 파일을 삭제한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;stata&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git rm [file]&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_16&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git mv&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;파일/폴더의 이름을 변경한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;pgsql&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git mv [existing-path] [new-path]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;mv 명령어&lt;/code&gt;는 사실 아래와 같이 동작한다. 즉, 이름이 변경된 파일을 삭제하고 다시 &lt;code&gt;add&lt;/code&gt; 하는 것과 똑같다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;reasonml&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;mv README.md README
git rm README.md
git add README&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_17&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git clean&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;working directory&lt;/code&gt;에서 필요 없는 파일을 삭제한다. 충돌로 생긴 파일이나 &lt;code&gt;build artifact&lt;/code&gt; 파일을 삭제할 때 편리하다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;ebnf&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git clean&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;h_18&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Branch와 Merge&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;h_19&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git branch&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;branch&lt;/code&gt;를 관리하는 명령어이다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;armasm&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# branch 목록 조회, *가 현재 branch 
git branch

# 원격 branch 목록 조회
git branch -r 

# 전체 branch 목록 조회
git branch -a&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;신규 &lt;code&gt;branch&lt;/code&gt;를 생성한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;apache&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# branch 생성
git branch [branch-name]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Branch&lt;/code&gt;를 변경하고 해당 파일을 &lt;code&gt;Working directory&lt;/code&gt;로 복사한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;nginx&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# branch checkout
git checkout&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_20&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git merge&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;다른 &lt;code&gt;Branch&lt;/code&gt;를 현재 &lt;code&gt;Checkout&lt;/code&gt;된 &lt;code&gt;Branch에 Merge&lt;/code&gt; 한다. &lt;code&gt;Merge&lt;/code&gt; 하고 나서 현재 &lt;code&gt;Branch가 Merge&lt;/code&gt; 된 결과를 가리키도록 옮긴다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;sql&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 특정 branch를 현재 checkout 된 branch에 merge
git merge [branch]

# remote origin의 main branch merge
git merge origin/main

# local 저장소의 main branch merge
git merge main&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;h_21&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;log&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;h_22&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git log&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;commit 히스토리&lt;/code&gt;를 시간의 역순으로 보여준다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;applescript&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# 커밋 히스토리를 시간 순으로 조회
git log

# 최근 number개만 노출
git log -[number]

# oneline 으로 히스토리 노출
git log --oneline

# graph 로 출력
git log --graph&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;h_23&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;공유 &amp;amp; 업데이트&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;h_24&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git fetch&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;로컬 저장소에 있는 것을 뺀 &lt;code&gt;remote 저장소&lt;/code&gt;의 모든 것을 가져온다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;apache&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git fetch [remote]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;--prune&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;옵션으로 &lt;code&gt;remote 저장소&lt;/code&gt;에 지워진 브랜치를 &lt;code&gt;local&lt;/code&gt; 반영하여 &lt;code&gt;local&lt;/code&gt;의 불필요한 &lt;code&gt;branch&lt;/code&gt;를 삭제한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;pgsql&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git fetch --prune&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_25&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git pull&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;remote의 commit&lt;/code&gt;을 가져오고 병합한다. &lt;code&gt;git fetch&lt;/code&gt;와 &lt;code&gt;git merge&lt;/code&gt; 명령을 순서대로 실행하는 것과 같다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;ebnf&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_26&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git push&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;로컬 저장소의 &lt;code&gt;commit&lt;/code&gt; 내역을 &lt;code&gt;remote 저장소&lt;/code&gt;로 전송한다. &lt;code&gt;-u&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;옵션은 &lt;code&gt;upstream repository&lt;/code&gt;를 설정해준다. 즉, 한번 설정한 후로는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;git push,&lt;span&gt;&amp;nbsp;&lt;/span&gt;git pull&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;만 간단히 사용할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;armasm&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;git push [remote] [branch]

git push -u origin main&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_27&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git remote&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;원격 저장소 설정 관리 도구를 의미한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;dockerfile&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;#  현재 프로젝트에 등록된 리모트 저장소를 확인
git remote

# 단축이름과 URL을 함께 조회
git remote -v

# git url 에 remote(저장소) 이름으로 등록한다.
git remote add [remote] [url]

git remote add origin https://github.com/cusbert/TIL.git&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;h_28&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;임시 저장&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;h_29&quot; style=&quot;text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;git stash&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;git stash&lt;/code&gt;은 현재 작업을 임시 저장할 때 사용한다.&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #222222; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 &lt;code&gt;A라는 작업을 진행하다가 잠깐 다른 B 작업을 우선 할 일이 생겼을 때&lt;/code&gt; A를 커밋하지 않고 &lt;code&gt;Stash&lt;/code&gt; 했다가 B를 끝낸 후 다시 A라는 작업을 진행 할 수 있다. 즉, &lt;code&gt;Branch&lt;/code&gt;에 관계없이 아직 끝나지 않은 수정사항을 스택에 잠시 임시로 저장했다가 나중에 다시 적용하는 방식이다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;properties&quot; style=&quot;color: #222222; text-align: start;&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;# modified, staged 변경 내용 임시 저장 
git stash

# stashed 조회
git stash list

# stash 내역 working directory로 추가
git stash pop

# stash file 제거
git stash drop&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://wecandev.tistory.com/152&quot;&gt;[Git] 자주 쓰는 Git 명령어 정리&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://medium.com/@joongwon/git-git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC-c25b421ecdbd&quot;&gt;[Git] Git 명령어 정리&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-%ED%95%B5%EC%8B%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%9A%94%EC%95%BD-%F0%9F%9A%A9-%EC%B4%9D%EC%A0%95%EB%A6%AC&quot;&gt;⚡️ GIT 핵심 명령어 요약 총정리 모음&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://gorokke.tistory.com/22&quot;&gt;[Git] git 명령어 모음, 총 정리 (gitbash, terminal)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;5&lt;/span&gt;&lt;a href=&quot;https://hoontae24.github.io/11&quot;&gt;자주 사용하는 Git 명령어 정리&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Git &amp;amp; Github</category>
      <category>Git</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/96</guid>
      <comments>https://light9639.tistory.com/entry/Git-%F0%9F%92%BD-%EC%9E%90%EC%A3%BC-%EC%93%B0%EB%8A%94-Git-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%A0%95%EB%A6%AC#entry96comment</comments>
      <pubDate>Mon, 19 Jun 2023 14:52:53 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]  ️ Babel 소개 및 사용법</title>
      <link>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-Babel-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;babel.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;363&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eNKnAL/btsknPqXgq1/jkcmWc305nQ06iQxoBKRS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eNKnAL/btsknPqXgq1/jkcmWc305nQ06iQxoBKRS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eNKnAL/btsknPqXgq1/jkcmWc305nQ06iQxoBKRS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeNKnAL%2FbtsknPqXgq1%2FjkcmWc305nQ06iQxoBKRS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;363&quot; data-filename=&quot;babel.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;363&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;babel%--%EC%-D%B-%EB%-E%--%-F&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Babel 이란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Babel&lt;/code&gt;이란 최신 &lt;code&gt;ES6&lt;/code&gt;,&amp;nbsp;&lt;code&gt;ES7&lt;/code&gt; 버전의&amp;nbsp;&lt;code&gt;JavaScript&lt;/code&gt; 코드를,&amp;nbsp;&lt;code&gt;ES5&lt;/code&gt;버전의&amp;nbsp;코드로&amp;nbsp;바꾸어주는&amp;nbsp;&lt;code&gt;Node.js&lt;/code&gt; 패키지를 의미한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;babel%EC%-D%--%--%ED%--%--%EC%-A%--%EC%--%B-%--%-F%--%EC%--%B-%EB%-A%--%--%EA%B-%B-&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Babel을 사용해야 하는 이유&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속해서 변화하는 &lt;code&gt;JavaScript&lt;/code&gt;의 최신 코드를 이해하지 못하는 웹 브라우저의 문제를 해결하기 위하여, 또는 컴퓨터만이 아니라, 스마트폰에서 사용하는 브라우저에서도 자바스크립트 코드를 작동되도록 만들어주기 때문에 사용해야 한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;babel%--%EC%-E%--%EB%-F%--%EB%B-%A-%EC%-B%-D&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Babel 작동방식&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Babel&lt;/code&gt;은 여러개의 플러그인이, 자신이 이해할 수 있는 &lt;code&gt;ESNext&lt;/code&gt; 문법만 골라, 컴파일하는 방식으로 작동된다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;ESNext&lt;/code&gt; 구문을 &lt;code&gt;Babel&lt;/code&gt; 플러그인으로 보낸다.&lt;/li&gt;
&lt;li&gt;여러개의 &lt;code&gt;Babel&lt;/code&gt; 플러그인이 파이프라인 형태로 차례대로 실행한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Babel&lt;/code&gt; 플러그인이 이해할 수 있는 구문을 &lt;code&gt;ES5&lt;/code&gt; 코드로 컴파일한다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;babel%--%EC%--%A-%EC%B-%--&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Babel 설치&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;Babel&lt;/code&gt;을 설치하는 방법은 밑의 코드를 참고하여 따라하면 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687076619067&quot; class=&quot;mipsasm&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# @babel/node : Node.js 커멘드 라인에서 사용하는 명령어를 사용할 수 있게 해준다 ( node &amp;gt; babel-node )

npm install @babel/node


# @babel/core : 바벨의 핵심기능이 담겨있는 기본 라이브러리 

npm install @babel/core


# @babel/cli : 커맨드 라인에서 바벨을 실행할 수있는 라이브러리

npm install @babel/cli


# @babel/preset-&quot;&quot; : ESNext코드를 컴파일 해주는 플러그인 모음 설치

npm install @babel/preset-env (기본 js코드 검사)

npm install @babel/preset-flow (플로우 코드 검사)

npm install @babel/preset-typescript (타입스크립트 코드 검사)

npm install @babel/preset-react (리액트 코드 검사)&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687076619068&quot; class=&quot;bash&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 바벨 핵심기능, Node.js 명령줄 모드, 기본 js코드 검사 규칙 설치하기
npm install -D @babel/core @babel/node @babel/preset-env&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Babel 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;babel%--%EC%--%A-%EC%A-%--%--%ED%-C%-C%EC%-D%BC%--%EB%A-%-C%EB%--%A-%EA%B-%B-&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Babel 설정 파일 만들기&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;.bablerc&lt;/code&gt; 파일을 생성한 뒤 밑의 코드대로 작성한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687076619068&quot; class=&quot;json&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// .babelrc

{
    &quot;presets&quot; : [&quot;@babel/preset-env&quot;]
}

// 기본 javascript 방식으로 바꾸어준다.&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;babel%--%EC%--%AC%EC%-A%A-%ED%--%B-%--ES-%--%EC%BD%--%EB%--%-C%EB%A-%-C%--%EB%B-%--%EA%BE%B-%EA%B-%B-&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Babel 사용해 ES5 코드로 바꾸기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687076619068&quot; class=&quot;ada&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;babel src/js -w -d dist/js


// &quot;src/js&quot; 폴더에 있는 모든 ES6+ 파일들을 번들로 만들어, 그 결과를 &quot;dist/js&quot;폴더에 저장
// -w : 폴더에 있는 모든 파일 변경감지, 자동 변경 (--watch)
// -d : 결과 출력 폴더 지정 (--out-dir)


babel script.js -o compiled.js -s

// -o : 결과를 파일로 출력 (--out-file)
// -s : 난독화된 코드를 다시 읽기 좋게 바꾸는, 소스 맵 파일을 추가 (--source-maps)
// -s inline : 인라인(한줄씩) 소스 맵 사용


// --ignore &quot;src/*&quot; : &quot;src폴더 안에 있는 모든 파일을 무시한다.
// --plugins=@babel/proposal-class : 컴파일 할때 사용할 플러그인 불러오기


// --copy-files --no-copy-ignored : 컴파일 안되는 파일 복사?
// --out-file &quot;*.js&quot; &amp;lt; &quot;*.js&quot; : 파이핑?&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;babel%--%EC%--%AC%EC%-A%A-%ED%--%B-%-C%--Node-js%--%EC%--%-C%EB%B-%--%--%EC%-B%A-%ED%--%--%ED%--%--%EA%B-%B-&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Babel 사용해, Node.js 서버 실행하기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687076619069&quot; class=&quot;crmsh&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;babel-node &amp;lt;Node서버&amp;gt;

// Node.js 서버의 최신 js코드를, es5 같은 호환성좋은 코드로 변환후, 서버까지 실행해준다.&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;babel%--%EC%--%AC%EC%-A%A-%EC%-B%-C%--%EB%B-%-C%EC%--%-D%EC%--%A-%EB%A-%--%--%ED%--%B-%EA%B-%B-%EB%B-%--&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Babel 사용시 발생오류 해결법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687076619069&quot; class=&quot;stata&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// browserslist: caniuse-lite is outdated

npx browserslist@latest --update-db&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/NODE-%F0%9F%9B%A0%EF%B8%8F-Babel-%EC%84%A4%EC%B9%98-%EC%82%AC%EC%9A%A9%EB%B2%95&quot;&gt;[NODE]  ️ 바벨(Babel) 설치 &amp;amp; 사용법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://xtring-dev.tistory.com/entry/Babel-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8D%98-Babel-%EC%9D%B4%EC%A0%A0-%EB%91%90%EB%A0%A4%EC%9B%8C-%EB%A7%88%EC%84%B8%EC%9A%94-Babel-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0&quot;&gt;[Babel] 모르고 사용하던 Babel. 이젠 두려워 마세요. - Babel 알아보기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://javacpro.tistory.com/77&quot;&gt;[Babel] Babel 의 역할, 기본적인 사용법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://www.daleseo.com/js-babel/&quot;&gt;바벨(Babel 7) 기본 사용법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;5&lt;/span&gt;&lt;a href=&quot;https://canoe726.tistory.com/12&quot;&gt;트랜스파일을 위한 바벨(Babel) 예제 만들어보기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Backend/Node.js</category>
      <category>Babel</category>
      <category>node.js</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/95</guid>
      <comments>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-Babel-%EC%86%8C%EA%B0%9C-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95#entry95comment</comments>
      <pubDate>Sun, 18 Jun 2023 17:25:56 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]   package.json 이란❓</title>
      <link>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-packagejson%EC%9D%B4%EB%9E%80</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3,h4&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0Z2tQ/btskgpOrYAK/ZCw5XbYs71NkIoixLNKXHK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0Z2tQ/btskgpOrYAK/ZCw5XbYs71NkIoixLNKXHK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0Z2tQ/btskgpOrYAK/ZCw5XbYs71NkIoixLNKXHK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0Z2tQ%2FbtskgpOrYAK%2FZCw5XbYs71NkIoixLNKXHK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;package.json이란?&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;package.json&lt;/code&gt;이란 현재 프로젝트에 관한 정보와 &lt;code&gt;패키지 매니저(npm, yarn)&lt;/code&gt;을 통해 설치한 모듈들의 의존성을 관리하는 파일이다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687075951451&quot; class=&quot;javascript&quot; style=&quot;background-color: #f6f7f8; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;tutorial&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;description&quot;: &quot;&quot;,
  &quot;main&quot;: &quot;server.js&quot;,
  &quot;scripts&quot;: {
    &quot;test&quot;: &quot;echo \&quot;Error: no test specified\&quot; &amp;amp;&amp;amp; exit 1&quot;
  },
  &quot;author&quot;: &quot;&quot;,
  &quot;license&quot;: &quot;ISC&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이름처럼 &lt;code&gt;JSON&lt;/code&gt; 포맷으로 이루어져 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;생성방법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;package.json&lt;/code&gt;을 생성하려면 다음 명령어를 통해 생성할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687075951453&quot; class=&quot;kotlin&quot; style=&quot;background-color: #f6f7f8; color: #000000; text-align: start;&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm init // 프로젝트명, 설명 등 작성할 내용이 있을 경우
npm init -y // 입력할 내용없이 package.json 생성


yarn init
yarn init -y&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;package.json의 기본 정보&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기본 정보란 &lt;code&gt;package.json&lt;/code&gt;을 자동으로 생성할 때&lt;code&gt;(npm init), -y&lt;/code&gt;를 명령어를 붙이지 않은 경우 입력하게 되는 것들을 나타낸다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;name, version, description, author, license&lt;/code&gt; 등을 입력할 수 있는데, 프로젝트에 대한 간략한 내용을 입력할 수 있다. 처음 생성할 때 입력하지 않은 경우에 추후에 &lt;code&gt;package.json&lt;/code&gt;을 변경하여 입력할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;버전관리&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;의존성 모듈을 설치하게 되면 &lt;code&gt;dependencies&lt;/code&gt;안에 해당 모듈의 버전과 이름이 추가된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687075951453&quot; class=&quot;javascript&quot; style=&quot;background-color: #f6f7f8; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;name&quot;: &quot;tutorial&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;description&quot;: &quot;&quot;,
  &quot;main&quot;: &quot;server.js&quot;,
  &quot;dependencies&quot;: {
    &quot;react&quot;: &quot;^17.0.2&quot;, // react&amp;nbsp;설치 결과
  },
  &quot;scripts&quot;: {
    &quot;test&quot;: &quot;echo \&quot;Error: no test specified\&quot; &amp;amp;&amp;amp; exit 1&quot;
  },
  &quot;author&quot;: &quot;&quot;,
  &quot;license&quot;: &quot;ISC&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;특정 버전인 경우&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687075951454&quot; class=&quot;1c&quot; style=&quot;background-color: #f6f7f8; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;react&quot;: &quot;17.0.2&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Tilde Ranges(~)&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687075951454&quot; class=&quot;1c&quot; style=&quot;background-color: #f6f7f8; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;react&quot;: &quot;~17.0.2&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Tilde Ranges(~)&lt;/code&gt;의 경우에는 마이너 버전이 명시되어 있으면 패치버전만 변경하며 버전을 적용한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 &lt;code&gt;~17.0.2&lt;/code&gt;인 경우, &lt;code&gt;17.0.9&lt;/code&gt;까지 버전을 갱신한다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #222426;&quot;&gt;&lt;code&gt;~0&lt;/code&gt;일 경우는 &lt;code&gt;0.0.0&lt;/code&gt;부터 &lt;code&gt;0.9.9&lt;/code&gt;까지 버전을 갱신한다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Caret Ranges(^)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687075951455&quot; class=&quot;1c&quot; style=&quot;background-color: #f6f7f8; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&quot;react&quot;: &quot;^17.0.2&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Caret Ranges(^)&lt;/code&gt;의 경우에는 정식버전에서 마이너버전과 패치버전을 변경하며 버전을 적용한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예를 들어 &lt;code&gt;^17.0.2&lt;/code&gt;인 경우, &lt;code&gt;17.9.9&lt;/code&gt;까지 버전을 갱신하다. &lt;code&gt;^0&lt;/code&gt;일 경우는 &lt;code&gt;0.0.0&lt;/code&gt;부터 &lt;code&gt;0.0.9.&lt;/code&gt;까지 버전을 갱신한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;의존성 모듈 설치&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;package.json&lt;/code&gt;은 의존성을 모듈로 관리하는 하나의 파일이다. 즉, 모듈들이 차곡차곡 쌓일 수록 &lt;code&gt;dependencies&lt;/code&gt;에는 다양한 내용들이 추가된다. 이 파일 하나로 프로젝트에 필요한 모듈들을 한번에 설치할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687075951455&quot; class=&quot;cmake&quot; style=&quot;background-color: #f6f7f8; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 명령어를 통해 &lt;code&gt;package.json - dependencies&lt;/code&gt;에 명시되어 있는 모듈들의 버전에 따라 설치를 진행하게 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://bumday.tistory.com/87&quot;&gt;[Node.js] package.json에 대해&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://phsun102.tistory.com/28&quot;&gt;Node.js - package.json이란?&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://oneroomtable.tistory.com/entry/packagejson-%ED%8C%8C%EC%9D%BC%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%96%B4%EB%96%A4-%EC%97%AD%ED%95%A0%EC%9D%84-%ED%95%A0%EA%B9%8C%EC%9A%94#gsc.tab=0&quot;&gt;package.json 파일이란 무엇이며 어떤 역할을 할까요?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Backend/Node.js</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/94</guid>
      <comments>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-packagejson%EC%9D%B4%EB%9E%80#entry94comment</comments>
      <pubDate>Sun, 18 Jun 2023 17:13:12 +0900</pubDate>
    </item>
    <item>
      <title>[Git]   git add *   git add .</title>
      <link>https://light9639.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-git-add-%F0%9F%86%9A-git-add-%EC%B0%A8%EC%9D%B4%EC%A0%90</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;best-git-gui-clients.jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCLp8l/btskk9wtzB7/yA42Jy2fBACCKNeX2OWwI0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCLp8l/btskk9wtzB7/yA42Jy2fBACCKNeX2OWwI0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCLp8l/btskk9wtzB7/yA42Jy2fBACCKNeX2OWwI0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCLp8l%2Fbtskk9wtzB7%2FyA42Jy2fBACCKNeX2OWwI0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;640&quot; data-filename=&quot;best-git-gui-clients.jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;git_add__/__git_add_._차이점&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;git add *&amp;nbsp;/&amp;nbsp;&amp;nbsp;git add .&lt;span&gt;&amp;nbsp;&lt;/span&gt;차이점&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;둘다 현재 디렉토리에 있는 모든 파일을 스테이징 하는 것이지만, 사소한 차이가 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;git add *&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;code&gt;.gitignore&lt;/code&gt; &lt;/span&gt;파일에 있는 파일&lt;span style=&quot;color: #ee2323;&quot;&gt;들도&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;stage&lt;/code&gt;로 올리는 것&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;는 .&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;code&gt;.gitignore&lt;/code&gt; &lt;/span&gt;파일에 있는 파일명들은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;제외&lt;/span&gt;하고 &lt;code&gt;stage&lt;/code&gt;에 올리는 것&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote class=&quot;admonition warning&quot; style=&quot;user-select: auto;&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p class=&quot;admonition-title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;Tip&lt;/p&gt;
&lt;p style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;따라서 &lt;code&gt;.gitignore&lt;/code&gt;를 사용한다면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;git add .&lt;/code&gt;를 사용하면 된다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-git-add-%F0%9F%86%9A-git-add-%EC%B0%A8%EC%9D%B4%EC%A0%90&quot;&gt;[GIT] ⚡️ git add *   git add . 차이점&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://sanghaklee.tistory.com/31&quot;&gt;[Git/GitHub] git add * VS git add . 비교와 .gitignore로 파일 무시하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Git &amp;amp; Github</category>
      <category>Git</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/93</guid>
      <comments>https://light9639.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-git-add-%F0%9F%86%9A-git-add-%EC%B0%A8%EC%9D%B4%EC%A0%90#entry93comment</comments>
      <pubDate>Sun, 18 Jun 2023 17:09:00 +0900</pubDate>
    </item>
    <item>
      <title>[Git]   git push -u 옵션 이란❓</title>
      <link>https://light9639.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-git-push-u-%EC%98%B5%EC%85%98-%EC%9D%B4%EB%9E%80</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4109244_b930.jpg&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyxCkH/btskgu9Sd8P/KJuAaCFEDCJHW0ZwF6CfE1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyxCkH/btskgu9Sd8P/KJuAaCFEDCJHW0ZwF6CfE1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyxCkH/btskgu9Sd8P/KJuAaCFEDCJHW0ZwF6CfE1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdyxCkH%2Fbtskgu9Sd8P%2FKJuAaCFEDCJHW0ZwF6CfE1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;422&quot; data-filename=&quot;4109244_b930.jpg&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;git_push_-u&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;git push -u&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;파일을 깃허브에 반영하기 위해&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;code&gt;git push&lt;/code&gt; 를 이용할 때&amp;nbsp;&lt;/span&gt;&lt;code&gt;git push -u &quot;원격저장소&quot; &quot;현재 브랜치명&quot;&lt;/code&gt;&lt;span&gt;와 같이 &lt;code&gt;-u&lt;/code&gt; 옵션을 쓸때가 있다.&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;maxima&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot;&gt;&lt;code&gt;$ git push -u origin masterCopy&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;code&gt;-u&lt;/code&gt; 옵션을 적어주면 앞으로, &lt;/span&gt;&lt;span&gt;&lt;code&gt;master&lt;/code&gt; 라는 현재 브랜치를 자동으로 &lt;code&gt;origin&lt;/code&gt; 이라는 원격저장소의 &lt;code&gt;master&lt;/code&gt; 브랜치로 연결할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;간단히 &lt;code&gt;git push&lt;/code&gt; 만 입력하여 반영하거나&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;code&gt;git pull&lt;/code&gt; 을 입력할 때 &lt;code&gt;origin&lt;/code&gt;이라는 원격저장소의 &lt;code&gt;master&lt;/code&gt; 브랜치를&amp;nbsp;&lt;/span&gt;&lt;span&gt;로컬 저장소의 &lt;code&gt;master&lt;/code&gt; 브랜치로 &lt;code&gt;merge&lt;/code&gt; 할수 있게 해주겠다는 의미이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1e5bf09708694dab8aa0c04c4f1e5e51~tplv-k3u1fbpfcp-zoom-crop-mark_1890_1890_1890_1064.webp&quot; data-origin-width=&quot;1888&quot; data-origin-height=&quot;1063&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yiBo7/btskDilK425/racCtMfzqw18ul6zlKz4Pk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yiBo7/btskDilK425/racCtMfzqw18ul6zlKz4Pk/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yiBo7/btskDilK425/racCtMfzqw18ul6zlKz4Pk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyiBo7%2FbtskDilK425%2FracCtMfzqw18ul6zlKz4Pk%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1888&quot; height=&quot;1063&quot; data-filename=&quot;1e5bf09708694dab8aa0c04c4f1e5e51~tplv-k3u1fbpfcp-zoom-crop-mark_1890_1890_1890_1064.webp&quot; data-origin-width=&quot;1888&quot; data-origin-height=&quot;1063&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;따라서 이제 간단히 아래와 같은 식으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;원격저장소와 로컬 저장소를 자동 연결&lt;/span&gt;&lt;span&gt;하여 사용할수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;elixir&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot;&gt;&lt;code&gt;$ git push

$ git pullCopy&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Git &amp;amp; Github</category>
      <category>Git</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/92</guid>
      <comments>https://light9639.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-git-push-u-%EC%98%B5%EC%85%98-%EC%9D%B4%EB%9E%80#entry92comment</comments>
      <pubDate>Sun, 18 Jun 2023 17:03:42 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]   bcrypt 모듈 암호화 사용법.</title>
      <link>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-bcrypt-%EB%AA%A8%EB%93%88-%EC%95%94%ED%98%B8%ED%99%94-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blog_serverlessnode.jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;683&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8BB1t/btskEVKLmUu/5U3LQvorkF1rpbw593HtTK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8BB1t/btskEVKLmUu/5U3LQvorkF1rpbw593HtTK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8BB1t/btskEVKLmUu/5U3LQvorkF1rpbw593HtTK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8BB1t%2FbtskEVKLmUu%2F5U3LQvorkF1rpbw593HtTK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;683&quot; data-filename=&quot;blog_serverlessnode.jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;683&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;bcrypt%EB%-E%--%-F&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Bcrypt란?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;hash&lt;/code&gt; 함수를 이용해 정보를 암호화 할 수 있도록 해주는 &lt;code&gt;Node.js&lt;/code&gt; 패키지가 바로&amp;nbsp;&lt;code&gt;Bcrypt&lt;/code&gt;이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;bcrypt%EC%-D%--%--%ED%--%--%EC%-A%--%EC%--%B-&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Bcrypt의 필요성&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;MD5&lt;/code&gt; 방식의 해시함수는 빠르기는 하지만 보안이 약하기 때문에 해킹이 취약하다. &lt;code&gt;SHA&lt;/code&gt; 방식의 해시함수는 안전하기는 하나, 암호화하는데 시간이 너무 오래 걸린다. 공유 메시지 &lt;code&gt;( salt )&lt;/code&gt;를 입력값에 추가하는 방식은 무차별 대입 공격을 막아주지는 못한다. &lt;code&gt;bcrypt&lt;/code&gt;는 사용자가 보안도와 속도를 유동적으로 정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 71px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 100%; text-align: center; height: 20px; background-color: #0d8eff;&quot; colspan=&quot;4&quot;&gt;&lt;span style=&quot;color: #ffffff; text-align: center;&quot;&gt;해시 함수 별 성능 비교&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;해시 함수&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: center;&quot;&gt;MD5&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: center;&quot;&gt;bcrypt&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: center;&quot;&gt;느림&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;보안&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;약함&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;중간&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;느림&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;속도&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: center;&quot;&gt;빠름&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: center;&quot;&gt;중간&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 17px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: center;&quot;&gt;느림&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;b&gt;Bcrypt 사용법&lt;/b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;bcrypt%--%EC%--%A-%EC%B-%--%ED%--%--%EA%B-%B-&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Bcrypt 설치하기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687073989457&quot; class=&quot;coffeescript&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm i bcrypt&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;비밀번호 만들고 암호화 하기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687073989458&quot; class=&quot;pgsql&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//index.js

// bcrypt 불러오기 - commonjs
const bcrypt = require(&quot;bcrypt&quot;)

// 해시 함수로 비밀번호 암호화해서 변수에 저장하기
const encrypted = bcrypt.hash(&quot;비밀번호&quot;, 해시함수 반복 횟수)

// 암호화된 내용 확인하기
console.log(encrypted)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;비밀번호 맞는지 확인하기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687073989458&quot; class=&quot;stata&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// index.js

//위의 내용과 이어짐...

// 새로 입력한 비밀번호가, 암호화 된 비밀번호와 일치하는지 확인하기
const passwordOk = bcrypt.compare(&quot;비밀번호&quot;, encryted)

// 비밀번호가 일치하면 true, 일치하지 않으면 false를 반환한다.
console.log(&quot;비밀번호 일치 여부 : &quot;,passwordOk)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;그 외의 기능&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687073989459&quot; class=&quot;reasonml&quot; style=&quot;background-color: #ffffff; color: #666666; text-align: left;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 랜덤 공유메시지 생성하기
bcrypt.genSalt(반복횟수, bcrypt버전)

// 비동기 방식으로 hash 함수 사용하기
bcrypt.hashSync(&quot;비밀번호&quot;, 반복 횟수)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-bcrypt-%EB%AA%A8%EB%93%88-%EC%9B%90%EB%A6%AC-%EC%82%AC%EC%9A%A9%EB%B2%95&quot;&gt;[NODE]   bcrypt 모듈 암호화 원리 &amp;amp; 사용법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://juni-official.tistory.com/161&quot;&gt;[Node.js] Bcrypt로 사용자 비밀번호 암호화하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://defineall.tistory.com/1014&quot;&gt;[Node.js] bcrypt 이용해서 암호화 하기 ( 해시함수 )&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Backend/Node.js</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/91</guid>
      <comments>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-bcrypt-%EB%AA%A8%EB%93%88-%EC%95%94%ED%98%B8%ED%99%94-%EC%82%AC%EC%9A%A9%EB%B2%95#entry91comment</comments>
      <pubDate>Sun, 18 Jun 2023 16:45:00 +0900</pubDate>
    </item>
    <item>
      <title>[Markdown]  ️ 마크다운 작성 문법   총 정리</title>
      <link>https://light9639.tistory.com/entry/Markdown-%F0%9F%8F%B7%EF%B8%8F-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EC%9E%91%EC%84%B1-%EB%AC%B8%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;mark.jpg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/spVnU/btskfbHZu9c/NTK2IcSDphJDX2PDJF7GYK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/spVnU/btskfbHZu9c/NTK2IcSDphJDX2PDJF7GYK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/spVnU/btskfbHZu9c/NTK2IcSDphJDX2PDJF7GYK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FspVnU%2FbtskfbHZu9c%2FNTK2IcSDphJDX2PDJF7GYK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;mark.jpg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;개요&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;일반적으로 널리 사용되는 워드프로세서는 마이크로소프트 오피스의 워드(Word)이다. 하지만 이런 워드 파일을 복사 &lt;code&gt;(Ctrl + C)&lt;/code&gt; 해서 텍스트(일반적인 메모장) 문서에 붙여넣기 &lt;code&gt;(Ctrl +  V)&lt;/code&gt; 하게 되면 기존에 적용된 서식 등이 모두 사라지게 되는 문제가 있다.&lt;/p&gt;
&lt;p style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 이 마크다운을 사용하여 작성을 하게 되면 일반적인 텍스트 기호를 사용하여 서식 등이 적용되기 때문에 플랫폼간 가공이 매우 용이하다는 장점이 있으며, &lt;code style=&quot;cursor: pointer; user-select: auto;&quot;&gt;.md&lt;/code&gt; 확장자로 저장하면 보관도 매우 쉬운 편이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;마크다운 장점&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;단순하고 간결한 편이다.&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;에디터 없이 어디서든 작성이 가능하다.&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;텍스트 기반으로 사용할 수 있다.
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;용량이 작고 백업이 간편 합니다.&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;버전 관리 시스템(Git, svn 등)에서 사용이 용이 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;마크다운으로 작성한 글을 다양한 포맷으로 손쉽게 변경 할 수 있습니다.&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;사용 범위가 점점 더 확대 되고 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;마크다운 단점&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;user-select: auto; list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;표준 문법으로 존재하지 않는다.
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;기본 마크다운 서식과 추가된 서식이 같이 존재하고 이 또한 정해진 규약이 없다.&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;그래서 어느 곳에서는 사용이 가능하고 반대로 어느 곳에서는 사용이 되지 않는 상황이 발생할 수 있다.&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;동일한 문법이지만 아예 다른 방식으로 출력되는 경우도 종종 발생한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;모든 HTML의 문법을 대신할 수는 없다.
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;색상 코드를 적용 할 수 없는 등 완벽하게 지원되지 않는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;추가적인 마크다운 기호를 입력해야 하기 때문에 누군가에게는 번거롭다고 느껴질 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h1&gt;&lt;b&gt;텍스트 관련 문법&lt;/b&gt;&lt;/h1&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;제목 강조(Headers)&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Html&lt;/code&gt;의 &lt;code&gt;h1~h6&lt;/code&gt;와 유사한 문서의 제목등을 강조할 때는 &lt;code&gt;# ~ ######&lt;/code&gt; 처럼 맨앞에 #의 갯수로 조절합니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;clean&quot;&gt;&lt;code&gt;# 이것은 h1과 유사합니다.
## 이것은 h2과 유사합니다.
### 이것은 h3과 유사합니다.
#### 이것은 h4과 유사합니다.
##### 이것은 h5과 유사합니다.
###### 이것은 h6과 유사합니다.&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;681&quot; data-origin-height=&quot;335&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bij50w/btskTG0VVlf/NhkVVEyTNrDO9mZE2ep4S0/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bij50w/btskTG0VVlf/NhkVVEyTNrDO9mZE2ep4S0/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bij50w/btskTG0VVlf/NhkVVEyTNrDO9mZE2ep4S0/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bij50w/btskTG0VVlf/NhkVVEyTNrDO9mZE2ep4S0/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;681&quot; height=&quot;335&quot; data-origin-width=&quot;681&quot; data-origin-height=&quot;335&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;문장의 중간을 강조 방법 (bold와 italic)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문장의 중간에 강조하는 방법이 두가지가 있는데 &lt;b&gt;두껍게(Bold)&lt;/b&gt; 하는 방법과 &lt;i&gt;기울리기(italic)&lt;/i&gt;의 방법이 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;maxima&quot;&gt;&lt;code&gt;별표 한개로 강조할 문자를 감싸면 *기울림꼴*이 됩니다.
언더바 한개를 사용해도 _기울림꼴_로 만들 수 있습니다.
별표 두개로 강조할 문자를 감싸면 **두껍게** 됩니다.
언더바 한개를 사용해도 __두껍게__ 만들 수 있습니다.
_그리고  **이 두가지를** 섞어서 _ 사용할 수 있습니다.&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;별표 한개로 강조할 문자를 감싸면 &lt;i&gt;기울림꼴&lt;i&gt;이 됩니다.&lt;br /&gt;언더바 한개를 사용해도 _기울림꼴_로 만들 수 있습니다.&lt;br /&gt;별표 두개로 강조할 문자를 감싸면 *&lt;/i&gt;두껍게** 됩니다.&lt;br /&gt;언더바 한개를 사용해도 &lt;b&gt;두껍게&lt;/b&gt; 만들 수 있습니다.&lt;br /&gt;**그리고 &lt;i&gt;이 두가지를&lt;/i&gt; 섞어서&lt;/i&gt; 사용할 수도 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;취소선(Strike) 사용&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문장 중간에&lt;/p&gt;
&lt;p&gt;&lt;del&gt;취소선을&lt;/del&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;넣을 수 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;erlang&quot;&gt;&lt;code&gt;물결 두개로 취소할 문자들을 감싸면 ~~취소선~~이 생깁니다.&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물결 두개로 취소할 문자들을 감싸면&lt;/p&gt;
&lt;p&gt;&lt;del&gt;취소선&lt;/del&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 생깁니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;하이퍼링크(Link)를 거는 방법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문서 중간에 &lt;code&gt;http://~&lt;/code&gt;의 링크를 파악하면 자동으로 걸리기는 하지만 텍스트로 변환하여 걸수도 있습니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot;&gt;&lt;code&gt;[여기를 클릭](https://light9639.tistory.com)하면 제 홈페이지로 이동하지요 :)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://light9639.tistory.com&quot;&gt;여기를 클릭&lt;/a&gt;하면 제 홈페이지로 이동하지요 :)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h1&gt;&lt;b&gt;텍스트 관련 문법 두번째&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;인용구 (Quote)&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 문구나 외부를 참고할 때 사용하라는 목적으로 만든 인용구를 사용할 수 있습니다. 인용구로 적은 부분은 왼쪽에 라인이 생기며 글자색이 회색으로 변경됩니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;&amp;gt; 여기에 인용된 문구를 적습니다&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;여기에&amp;nbsp; 인용된 문구를 적습니다.&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;코드 블럭&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;프로그램 소스 코드를 입력하다보면 다양한 기호 때문에 원치않는 내용이 출력 될수 있습니다. 이 방법을 사용하면 입력된 문자열 그대로를 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;단, &lt;code&gt;작은 따옴표 기호&lt;/code&gt;가 아님에 주의하세요. 숫자 1키 옆에 있는 기호입니다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eKOI7d/btskQOMSZCr/3gGvhN3i6OJdNYwlRRtnKk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eKOI7d/btskQOMSZCr/3gGvhN3i6OJdNYwlRRtnKk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eKOI7d/btskQOMSZCr/3gGvhN3i6OJdNYwlRRtnKk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/eKOI7d/btskQOMSZCr/3gGvhN3i6OJdNYwlRRtnKk/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;836&quot; height=&quot;131&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;cpp&quot;&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;
int main(){
  printf(&quot;hello world&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;프로그래밍 구문 강조&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래밍 언어별 &lt;code&gt;Syntax&lt;/code&gt;를 강조해 주는 기능도 있습니다. 첫번째 라인 기호 바로 뒤에 강조할 프로그래밍 언어를 적으면 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;131&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qQCDW/btskNeFqz5a/qa3TzItPVmec6Jj794i6i1/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qQCDW/btskNeFqz5a/qa3TzItPVmec6Jj794i6i1/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qQCDW/btskNeFqz5a/qa3TzItPVmec6Jj794i6i1/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/qQCDW/btskNeFqz5a/qa3TzItPVmec6Jj794i6i1/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;836&quot; height=&quot;131&quot; data-origin-width=&quot;836&quot; data-origin-height=&quot;131&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;cpp&quot;&gt;&lt;code&gt;#include&amp;lt;stdio.h&amp;gt;
int main(){
  printf(&quot;hello world&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;h5&gt;:information_source: 강조되는 언어 목록은 다음 링크를 참고해 주세요&lt;/h5&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/github/linguist/blob/master/lib/linguist/languages.yml&quot;&gt;https://github.com/github/linguist/blob/master/lib/linguist/languages.yml&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/github/linguist/tree/master/samples&quot;&gt;https://github.com/github/linguist/tree/master/samples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;문장 중간 코드 블럭&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 코드 블럭을 중간 중간에도 사용합니다. 깃허브를 보면 &lt;code&gt;Ctrl+A&lt;/code&gt;와 같이 단축키에도 많이 쓰입니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;autohotkey&quot;&gt;&lt;code&gt;문구 중간에도 사용이 `이렇게 하면` 가능합니다.&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문구 중간에도 사용이 &lt;code&gt;이렇게 하면&lt;/code&gt; 가능합니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h1&gt;&lt;b&gt;리스트와 테이블&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;리스트&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;크게 순서가 있는 목록과 없는 목록으로 나뉩니다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;1. 이것은
2. 순서가
3. 있는
4. 목록입니다

- 이것은
- 순서가
- 없는
- 목록입니다

1. 이것은
2. 두개의
  - 목록을
  - 섞어서
  - 사용할 수
3. 있음을
4. 보여줍니다&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;이것은&lt;/li&gt;
&lt;li&gt;순서가&lt;/li&gt;
&lt;li&gt;있는&lt;/li&gt;
&lt;li&gt;목록입니다&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이것은&lt;/li&gt;
&lt;li&gt;순서가&lt;/li&gt;
&lt;li&gt;없는&lt;/li&gt;
&lt;li&gt;목록입니다&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;이것은&lt;/li&gt;
&lt;li&gt;두개의
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;목록을&lt;/li&gt;
&lt;li&gt;섞어서&lt;/li&gt;
&lt;li&gt;사용할 수&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;있음을&lt;/li&gt;
&lt;li&gt;보여줍니다&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;체크 리스트&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마크다운 문법에서는 조금 더 독특한 형태의 체크박스 형식의 리스트도 만들 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;asciidoc&quot;&gt;&lt;code&gt;- [ ] 아이폰
- [x] 안드로이드
- [x] 블랙베리
- [ ] 윈도우폰&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;input disabled=&quot;disabled&quot; type=&quot;checkbox&quot; /&gt; 아이폰&lt;/li&gt;
&lt;li&gt;&lt;input checked=&quot;checked&quot; disabled=&quot;disabled&quot; type=&quot;checkbox&quot; /&gt; 안드로이드&lt;/li&gt;
&lt;li&gt;&lt;input checked=&quot;checked&quot; disabled=&quot;disabled&quot; type=&quot;checkbox&quot; /&gt; 블랙베리&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&quot;disabled&quot; type=&quot;checkbox&quot; /&gt; 윈도우폰&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;테이블&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마크다운에서는 조금 더 복잡한 테이블의 형태도 작성이 가능하다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;gherkin&quot;&gt;&lt;code&gt;Header1 | Header2 | Header3
------- | ------- | -------
 C1-1 | C1-2 | C1-3
 C2-1 | C2-2 | C2-3
 C3-1 | C3-2 | C3-3&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;table data-ke-align=&quot;alignLeft&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Header1&lt;/th&gt;
&lt;th&gt;Header2&lt;/th&gt;
&lt;th&gt;Header3&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;C1-1&lt;/td&gt;
&lt;td&gt;C1-2&lt;/td&gt;
&lt;td&gt;C1-3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C2-1&lt;/td&gt;
&lt;td&gt;C2-2&lt;/td&gt;
&lt;td&gt;C2-3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;C3-1&lt;/td&gt;
&lt;td&gt;C3-2&lt;/td&gt;
&lt;td&gt;C3-3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h1&gt;&lt;b&gt;이미지와 이모티콘 사용하기&lt;/b&gt;&lt;/h1&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이미지 추가하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 이미지를 표시하고 싶을 경우에 링크와 비슷한 문법을 사용하여 이미지를 나타낼 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;![홈페이지 로고](http://sbsoft.kr/home/images/logo_l.png)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3LrBJ/btskS2wj5aL/zhhm604oGwEg2orCwUctc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3LrBJ/btskS2wj5aL/zhhm604oGwEg2orCwUctc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3LrBJ/btskS2wj5aL/zhhm604oGwEg2orCwUctc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3LrBJ%2FbtskS2wj5aL%2Fzhhm604oGwEg2orCwUctc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;300&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;이모티콘 사용하기&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적인 이미지 이외에 미리 준비된 이모티콘을 사용할 수 있다. 콜론으로 준비된 이모티콘의 별칭을 묶어서 입력하면 가능하다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용 방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Markdown&quot;&gt;Markdown&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;css&quot; data-ke-language=&quot;css&quot;&gt;&lt;code&gt;나는 :kr:에서 :satisfied:를 사용하는 :alien:입니다&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 결과&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;나는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;에서&lt;span&gt; &lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;를 사용하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;background-color: #ffffff; color: #1f2328; text-align: start;&quot;&gt;입니다&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;마크다운_에디터&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마크다운 에디터&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;마크다운 문법은 메모장을 켜서 작업을 해도 무리없이 작성 가능하지만 작업 속도 향상을 위해 에디터를 사용하는 것이 좋다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;에디터는 사용한 마크다운을 랜더링하여 에디터 상에 실시간으로 보여주며, 단축키 등을 사용하여 마크다운 문법을 빠르게 사용할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 id=&quot;typora&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Typora&lt;/b&gt;&lt;/h3&gt;
&lt;figure id=&quot;og_1687340509368&quot; style=&quot;color: #333333; text-align: start;&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;Typora &amp;mdash; a markdown editor, markdown reader.&quot; data-og-description=&quot;Readable &amp;amp; Writable Typora gives you a seamless experience as both a reader and a writer. It removes the preview window, mode switcher, syntax symbols of markdown source code, and all other unnecessary distractions. Instead, it provides a real live preview&quot; data-og-host=&quot;typora.io&quot; data-og-source-url=&quot;https://typora.io/&quot; data-og-url=&quot;https://typora.io/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/WzPCv/hyS4u71er5/XOdqN8NEU5EMkOVL3kAOA0/img.png?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256,https://scrap.kakaocdn.net/dn/Ldt8n/hyS4nA291n/ziCwvgWcPJ889fxr2hB6H1/img.png?width=1424&amp;amp;height=1344&amp;amp;face=0_0_1424_1344,https://scrap.kakaocdn.net/dn/bBt90E/hyS4vMDba7/eJSnChMUUds9n7OpfNURh0/img.png?width=1424&amp;amp;height=1344&amp;amp;face=0_0_1424_1344&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://typora.io/&quot; data-source-url=&quot;https://typora.io/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/WzPCv/hyS4u71er5/XOdqN8NEU5EMkOVL3kAOA0/img.png?width=256&amp;amp;height=256&amp;amp;face=0_0_256_256,https://scrap.kakaocdn.net/dn/Ldt8n/hyS4nA291n/ziCwvgWcPJ889fxr2hB6H1/img.png?width=1424&amp;amp;height=1344&amp;amp;face=0_0_1424_1344,https://scrap.kakaocdn.net/dn/bBt90E/hyS4vMDba7/eJSnChMUUds9n7OpfNURh0/img.png?width=1424&amp;amp;height=1344&amp;amp;face=0_0_1424_1344');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Typora &amp;mdash; a markdown editor, markdown reader.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;Readable &amp;amp; Writable Typora gives you a seamless experience as both a reader and a writer. It removes the preview window, mode switcher, syntax symbols of markdown source code, and all other unnecessary distractions. Instead, it provides a real live preview&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;typora.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;일일히 타이핑했던 문법을 자동으로 완성해줘서 작업시간이 엄청 단축되는 것을 확인할 수 있다. 그리고 군더더기 없는 디자인도 이 에디터를 쓰게 하는 이유 중 하나이다. 무료로 사용할 수 잇으니 마크다운을 처음 사용하는 사람들에게 매우 유용하다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;vscode_-_dark_github_markdown_pack&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;VSCode - Dark Github Markdown Pack&lt;/b&gt;&lt;/h3&gt;
&lt;figure id=&quot;og_1687340519505&quot; style=&quot;color: #333333; text-align: start;&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;Dark Github Markdown Pack - Visual Studio Marketplace&quot; data-og-description=&quot;Extension for Visual Studio Code - Replaces VS Code's Markdown preview with GFM's rendering &amp;amp; dark theme.&quot; data-og-host=&quot;marketplace.visualstudio.com&quot; data-og-source-url=&quot;https://marketplace.visualstudio.com/items?itemName=sndst00m.markdown-github-dark-pack&quot; data-og-url=&quot;https://marketplace.visualstudio.com/items?itemName=sndst00m.markdown-github-dark-pack&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cAmVMn/hyS4znYGtz/LecVZdUjFnFeRj8lSm3fqK/img.png?width=128&amp;amp;height=128&amp;amp;face=0_0_128_128&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://marketplace.visualstudio.com/items?itemName=sndst00m.markdown-github-dark-pack&quot; data-source-url=&quot;https://marketplace.visualstudio.com/items?itemName=sndst00m.markdown-github-dark-pack&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cAmVMn/hyS4znYGtz/LecVZdUjFnFeRj8lSm3fqK/img.png?width=128&amp;amp;height=128&amp;amp;face=0_0_128_128');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;Dark Github Markdown Pack - Visual Studio Marketplace&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;Extension for Visual Studio Code - Replaces VS Code's Markdown preview with GFM's rendering &amp;amp; dark theme.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;marketplace.visualstudio.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;VsCode&lt;/code&gt;에서 바로 마크다운 미리보기 기능을 사용할 수 있는 확장프로그램이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://velog.io/@jhchoo/%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EC%9E%91%EC%84%B1%EB%B2%95&quot;&gt;마크다운 작성법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://comeinsidebox.com/markdown/&quot;&gt;Markdown 마크다운 문법의 기본적인 사용 방법 정리&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://github.com/denlyou/study_markdown_github&quot;&gt;study_markdown_github&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/MarkDown-%F0%9F%93%9A-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EB%AC%B8%EB%B2%95-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC&quot;&gt; ️ 마크다운(MarkDown) 작성 문법   총정리&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/Markdown</category>
      <category>markdown</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/90</guid>
      <comments>https://light9639.tistory.com/entry/Markdown-%F0%9F%8F%B7%EF%B8%8F-%EB%A7%88%ED%81%AC%EB%8B%A4%EC%9A%B4-%EC%9E%91%EC%84%B1-%EB%AC%B8%EB%B2%95#entry90comment</comments>
      <pubDate>Fri, 16 Jun 2023 16:55:58 +0900</pubDate>
    </item>
    <item>
      <title>[Markdown]  ️ 마크다운 emoji 이모티콘 사용법</title>
      <link>https://light9639.tistory.com/entry/Markdown</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function () { $(&quot;#toc&quot;).toc({ content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot;, top: -90, isBlink: true, blinkColor: '#3669CF' }) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;mark.jpg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP86Mq/btsjO8r3bJc/7NTxqX65XhQvSwXmJtJ9S1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP86Mq/btsjO8r3bJc/7NTxqX65XhQvSwXmJtJ9S1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP86Mq/btsjO8r3bJc/7NTxqX65XhQvSwXmJtJ9S1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP86Mq%2FbtsjO8r3bJc%2F7NTxqX65XhQvSwXmJtJ9S1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;mark.jpg&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;b&gt;마크다운 Emoji 이모티콘&lt;/b&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;마크다운 문서에서 이모티콘을 이모지를 이용하여 표현할 수 있다.&lt;/li&gt;
&lt;li&gt;깃허브 문서에도 문제없이 사용이 가능하다.&lt;/li&gt;
&lt;li&gt;마크다운 문법에&lt;span&gt; &lt;code&gt;: :&lt;/code&gt; &lt;/span&gt;사이에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;이모티콘명&lt;/span&gt;&lt;/b&gt;을 넣으면 자동으로 인식된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;마크다운_이모지_종류_표&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마크다운 이모지 종류 표&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;밑의 작성된 표들을 참고하거나, 아래 사이트에서 이모지를 참고해 사용해도 된다.&lt;/p&gt;
&lt;figure id=&quot;og_1686922185481&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;Emoji Cheat Sheet&quot; data-og-description=&quot;Emoji codes used by GitHub, Basecamp, Slack and other services. Searchable. With emoji meanings.&quot; data-og-host=&quot;www.webfx.com&quot; data-og-source-url=&quot;https://www.webfx.com/tools/emoji-cheat-sheet/&quot; data-og-url=&quot;https://www.webfx.com/tools/emoji-cheat-sheet/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.webfx.com/tools/emoji-cheat-sheet/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.webfx.com/tools/emoji-cheat-sheet/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Emoji Cheat Sheet&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Emoji codes used by GitHub, Basecamp, Slack and other services. Searchable. With emoji meanings.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.webfx.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;People&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img class=&quot;emoji lazyloaded&quot; style=&quot;width: 20px; height: 20px;&quot; title=&quot;:bowtie:&quot; src=&quot;https://github.githubassets.com/images/icons/emoji/bowtie.png&quot; alt=&quot;:bowtie:&quot; align=&quot;absmiddle&quot; data-src=&quot;https://github.githubassets.com/images/icons/emoji/bowtie.png&quot; /&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bowtie:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:smile:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:laughing:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:blush:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:smiley:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;☺️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:relaxed:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:smirk:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heart_eyes:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:kissing_heart:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:kissing_closed_eyes:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:flushed:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:relieved:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:satisfied:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:grin:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wink:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:stuck_out_tongue_winking_eye:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:stuck_out_tongue_closed_eyes:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:grinning:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:kissing:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:kissing_smiling_eyes:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:stuck_out_tongue:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sleeping:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:worried:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:frowning:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:anguished:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:open_mouth:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:grimacing:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:confused:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hushed:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:expressionless:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:unamused:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sweat_smile:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sweat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:disappointed_relieved:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:weary:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pensive:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:disappointed:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:confounded:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fearful:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cold_sweat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:persevere:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cry:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sob:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:joy:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:astonished:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:scream:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:neckbeard:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tired_face:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:angry:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rage:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:triumph:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sleepy:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:yum:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mask:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sunglasses:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dizzy_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:imp:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:smiling_imp:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:neutral_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_mouth:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:innocent:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:alien:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:yellow_heart:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:blue_heart:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:purple_heart:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❤️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heart:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:green_heart:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:broken_heart:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heartbeat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heartpulse:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:two_hearts:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:revolving_hearts:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cupid:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sparkling_heart:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✨&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sparkles:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⭐&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:star:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:star2:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dizzy:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:boom:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:collision:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:anger:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;❗&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:exclamation:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❓&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:question:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❕&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:grey_exclamation:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;❔&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:grey_question:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:zzz:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dash:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sweat_drops:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:notes:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:musical_note:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fire:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hankey:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:poop:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:shit:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:+1:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:thumbsup:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:-1:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:thumbsdown:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ok_hand:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:punch:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:facepunch:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✊&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fist:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✌️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:v:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wave:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✋&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hand:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✋&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:raised_hand:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:open_hands:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;☝️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:point_up:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:point_down:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:point_left:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:point_right:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:raised_hands:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pray:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:point_up_2:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clap:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:muscle:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:metal:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fu:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:walking:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:runner:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:running:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:couple:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:family:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:two_men_holding_hands:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:two_women_holding_hands:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dancer:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dancers:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &amp;zwj;♀️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ok_woman:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_good:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:information_desk_person:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:raising_hand:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &amp;zwj;♀️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bride_with_veil:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;:person_with_pouting_face:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:person_with_pouting_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;:person_frowning:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:person_frowning:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bow:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:couplekiss:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:couple_with_heart:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:massage:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:haircut:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:nail_care:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:boy:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:girl:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:woman:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:man:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:baby:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:older_woman:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:older_man:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;:person_with_blond_hair:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:person_with_blond_hair:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:man_with_gua_pi_mao:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &amp;zwj;♂️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:man_with_turban:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:construction_worker:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cop:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:angel:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:princess:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:smiley_cat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:smile_cat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heart_eyes_cat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:kissing_cat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:smirk_cat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:scream_cat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:crying_cat_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:joy_cat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pouting_cat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:japanese_ogre:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:japanese_goblin:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:see_no_evil:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hear_no_evil:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:speak_no_evil:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &amp;zwj;♂️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:guardsman:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:skull:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:feet:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:lips:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:kiss:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:droplet:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ear:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:eyes:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:nose:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tongue:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:love_letter:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bust_in_silhouette:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:busts_in_silhouette:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:speech_balloon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:thought_balloon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Nature&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;☀️&amp;nbsp;:sunny:&lt;/td&gt;
&lt;td&gt;☔&amp;nbsp;:umbrella:&lt;/td&gt;
&lt;td&gt;☁️&amp;nbsp;:cloud:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;❄️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:snowflake:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛄&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:snowman:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⚡&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:zap:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cyclone:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:foggy:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ocean:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dog:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mouse:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hamster:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rabbit:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wolf:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:frog:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tiger:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:koala:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bear:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pig:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pig_nose:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cow:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:boar:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:monkey_face:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:monkey:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:horse:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:racehorse:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:camel:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sheep:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:elephant:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:panda_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:snake:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bird:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:baby_chick:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hatched_chick:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hatching_chick:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:chicken:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:penguin:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:turtle:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bug:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:honeybee:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ant:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:beetle:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:snail:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:octopus:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tropical_fish:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fish:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:whale:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:whale2:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dolphin:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cow2:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ram:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:water_buffalo:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tiger2:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rabbit2:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dragon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:goat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rooster:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dog2:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pig2:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mouse2:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ox:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dragon_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:blowfish:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:crocodile:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dromedary_camel:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:leopard:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cat2:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:poodle:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:paw_prints:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bouquet:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cherry_blossom:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tulip:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:four_leaf_clover:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rose:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sunflower:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hibiscus:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:maple_leaf:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:leaves:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fallen_leaf:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:herb:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mushroom:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cactus:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:palm_tree:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:evergreen_tree:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:deciduous_tree:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:chestnut:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:seedling:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:blossom:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ear_of_rice:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:shell:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:globe_with_meridians:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sun_with_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:full_moon_with_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:new_moon_with_face:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:new_moon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:waxing_crescent_moon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:first_quarter_moon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:waxing_gibbous_moon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:full_moon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:waning_gibbous_moon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:last_quarter_moon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:waning_crescent_moon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:last_quarter_moon_with_face:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:first_quarter_moon_with_face:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:moon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:earth_africa:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:earth_americas:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:earth_asia:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:volcano:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:milky_way:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:partly_sunny:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:octocat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;:squirrel:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:squirrel:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Objects&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt; &amp;nbsp;:bamboo:&lt;/td&gt;
&lt;td&gt; &amp;nbsp;:gift_heart:&lt;/td&gt;
&lt;td&gt; &amp;nbsp;:dolls:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:school_satchel:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mortar_board:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:flags:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fireworks:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sparkler:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wind_chime:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rice_scene:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:jack_o_lantern:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ghost:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:santa:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:christmas_tree:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:gift:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bell:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_bell:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tanabata_tree:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tada:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:confetti_ball:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:balloon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:crystal_ball:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cd:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dvd:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:floppy_disk:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:camera:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:video_camera:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:movie_camera:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:computer:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tv:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:iphone:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;☎️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:phone:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;☎️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:telephone:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:telephone_receiver:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pager:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fax:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:minidisc:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:vhs:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sound:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:speaker:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mute:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:loudspeaker:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mega:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⌛&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hourglass:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⏳&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hourglass_flowing_sand:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⏰&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:alarm_clock:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⌚&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:watch:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:radio:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:satellite:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;➿&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:loop:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mag:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mag_right:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:unlock:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:lock:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:lock_with_ink_pen:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:closed_lock_with_key:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:key:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bulb:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:flashlight:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:high_brightness:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:low_brightness:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:electric_plug:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:battery:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:calling:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:email:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mailbox:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:postbox:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bath:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bathtub:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:shower:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:toilet:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wrench:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:nut_and_bolt:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hammer:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:seat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:moneybag:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:yen:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dollar:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pound:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:euro:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:credit_card:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:money_with_wings:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:e-mail:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:inbox_tray:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:outbox_tray:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✉️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:envelope:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:incoming_envelope:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:postal_horn:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mailbox_closed:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mailbox_with_mail:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mailbox_with_no_mail:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:door:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:smoking:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bomb:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:gun:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hocho:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pill:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:syringe:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:page_facing_up:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:page_with_curl:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bookmark_tabs:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bar_chart:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:chart_with_upwards_trend:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:chart_with_downwards_trend:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:scroll:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clipboard:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:calendar:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:date:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:card_index:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:file_folder:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:open_file_folder:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✂️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:scissors:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pushpin:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:paperclip:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✒️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:black_nib:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✏️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pencil2:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:straight_ruler:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:triangular_ruler:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:closed_book:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:green_book:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:blue_book:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:orange_book:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:notebook:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:notebook_with_decorative_cover:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ledger:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:books:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bookmark:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:name_badge:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:microscope:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:telescope:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:newspaper:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:football:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:basketball:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⚽&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:soccer:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⚾&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:baseball:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tennis:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:8ball:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rugby_football:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bowling:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛳&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:golf:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mountain_bicyclist:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bicyclist:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:horse_racing:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:snowboarder:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:swimmer:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:surfer:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ski:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;spades;️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:spades:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;hearts;️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hearts:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;clubs;️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clubs:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;diams;️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:diamonds:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:gem:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ring:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:trophy:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:musical_score:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:musical_keyboard:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:violin:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:space_invader:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:video_game:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:black_joker:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:flower_playing_cards:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:game_die:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dart:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mahjong:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clapper:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:memo:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pencil:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:book:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:art:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:microphone:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:headphones:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:trumpet:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:saxophone:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:guitar:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:shoe:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sandal:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:high_heel:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:lipstick:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:boot:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:shirt:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tshirt:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:necktie:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:womans_clothes:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dress:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:running_shirt_with_sash:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:jeans:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:kimono:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bikini:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ribbon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tophat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:crown:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:womans_hat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mans_shoe:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:closed_umbrella:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:briefcase:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:handbag:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pouch:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:purse:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:eyeglasses:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fishing_pole_and_fish:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;☕&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:coffee:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tea:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sake:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:baby_bottle:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:beer:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:beers:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cocktail:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tropical_drink:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wine_glass:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fork_and_knife:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pizza:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hamburger:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fries:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:poultry_leg:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:meat_on_bone:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:spaghetti:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:curry:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fried_shrimp:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bento:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sushi:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fish_cake:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rice_ball:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rice_cracker:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rice:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ramen:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:stew:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:oden:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:dango:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:egg:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bread:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:doughnut:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:custard:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:icecream:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ice_cream:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:shaved_ice:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:birthday:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cake:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cookie:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:chocolate_bar:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:candy:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:lollipop:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:honey_pot:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:apple:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:green_apple:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tangerine:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:lemon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cherries:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:grapes:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:watermelon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:strawberry:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:peach:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:melon:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:banana:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pear:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pineapple:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sweet_potato:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:eggplant:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tomato:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:corn:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Places&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt; &amp;nbsp;:house:&lt;/td&gt;
&lt;td&gt; &amp;nbsp;:house_with_garden:&lt;/td&gt;
&lt;td&gt; &amp;nbsp;:school:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:office:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:post_office:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hospital:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bank:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:convenience_store:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:love_hotel:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hotel:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wedding:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛪&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:church:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:department_store:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:european_post_office:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:city_sunrise:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:city_sunset:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:japanese_castle:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:european_castle:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⛺&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tent:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:factory:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tokyo_tower:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:japan:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mount_fuji:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sunrise_over_mountains:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sunrise:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:stars:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:statue_of_liberty:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bridge_at_night:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:carousel_horse:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rainbow:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ferris_wheel:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛲&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fountain:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:roller_coaster:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ship:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:speedboat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛵&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:boat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⛵&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sailboat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rowboat:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⚓&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:anchor:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rocket:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✈️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:airplane:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:helicopter:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:steam_locomotive:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tram:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mountain_railway:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bike:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:aerial_tramway:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:suspension_railway:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mountain_cableway:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tractor:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:blue_car:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:oncoming_automobile:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:car:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:red_car:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:taxi:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:oncoming_taxi:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:articulated_lorry:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bus:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:oncoming_bus:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rotating_light:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:police_car:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:oncoming_police_car:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fire_engine:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ambulance:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:minibus:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:truck:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:train:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:station:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:train2:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bullettrain_front:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bullettrain_side:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:light_rail:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:monorail:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:railway_car:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:trolleybus:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ticket:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛽&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fuelpump:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:vertical_traffic_light:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:traffic_light:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⚠️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:warning:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:construction:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:beginner:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:atm:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:slot_machine:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:busstop:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:barber:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♨️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hotsprings:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:checkered_flag:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:crossed_flags:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:izakaya_lantern:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:moyai:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:circus_tent:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:performing_arts:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:round_pushpin:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:triangular_flag_on_post:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:jp:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:kr:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cn:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:us:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fr:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:es:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:it:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ru:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:gb:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:uk:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:de:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Symbols&lt;/b&gt;&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1️⃣&amp;nbsp;:one:&lt;/td&gt;
&lt;td&gt;2️⃣&amp;nbsp;:two:&lt;/td&gt;
&lt;td&gt;3️⃣&amp;nbsp;:three:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4️⃣&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:four:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;5️⃣&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:five:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;6️⃣&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:six:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7️⃣&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:seven:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;8️⃣&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:eight:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;9️⃣&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:nine:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:keycap_ten:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:1234:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0️⃣&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:zero:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;#️⃣&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:hash:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:symbols:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;◀️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_backward:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⬇️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_down:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;▶️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_forward:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⬅️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_left:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:capital_abcd:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:abcd:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:abc:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;↙️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_lower_left:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;↘️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_lower_right:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;➡️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_right:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⬆️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_up:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;↖️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_upper_left:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;↗️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_upper_right:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⏬&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_double_down:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⏫&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_double_up:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_down_small:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⤵️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_heading_down:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⤴️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_heading_up:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;↩️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:leftwards_arrow_with_hook:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;↪️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_right_hook:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;harr;️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:left_right_arrow:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;↕️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_up_down:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrow_up_small:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrows_clockwise:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:arrows_counterclockwise:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⏪&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:rewind:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⏩&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:fast_forward:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;ℹ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:information_source:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ok:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:twisted_rightwards_arrows:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:repeat:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:repeat_one:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:new:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:top:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:up:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cool:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:free:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ng:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cinema:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:koko:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:signal_strength:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u5272:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u5408:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u55b6:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u6307:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u6708:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u6709:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u6e80:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u7121:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u7533:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u7a7a:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:u7981:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sa:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:restroom:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mens:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:womens:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:baby_symbol:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_smoking:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:parking:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♿&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wheelchair:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:metro:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:baggage_claim:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:accept:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wc:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:potable_water:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:put_litter_in_its_place:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;㊙️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:secret:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;㊗️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:congratulations:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Ⓜ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:m:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:passport_control:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:left_luggage:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:customs:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ideograph_advantage:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cl:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sos:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:id:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_entry_sign:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:underage:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_mobile_phones:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:do_not_litter:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:non-potable_water:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_bicycles:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_pedestrians:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:children_crossing:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛔&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:no_entry:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✳️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:eight_spoked_asterisk:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✴️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:eight_pointed_black_star:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heart_decoration:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:vs:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:vibration_mode:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:mobile_phone_off:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:chart:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:currency_exchange:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♈&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:aries:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;♉&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:taurus:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♊&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:gemini:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♋&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:cancer:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;♌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:leo:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♍&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:virgo:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♎&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:libra:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;♏&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:scorpius:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♐&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:sagittarius:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♑&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:capricorn:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;♒&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:aquarius:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♓&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:pisces:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⛎&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ophiuchus:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:six_pointed_star:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❎&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:negative_squared_cross_mark:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:a:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:b:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ab:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; ️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:o2:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:diamond_shape_with_a_dot_inside:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;♻️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:recycle:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:end:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:on:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:soon:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock1:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock130:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock10:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock1030:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock11:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock1130:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock12:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock1230:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock2:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock230:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock3:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock330:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock4:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock430:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock5:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock530:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock6:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock630:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock7:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock730:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock8:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock830:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock9:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:clock930:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heavy_dollar_sign:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;copy;️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:copyright:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;reg;️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:registered:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&amp;trade;️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:tm:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;❌&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:x:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;❗&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heavy_exclamation_mark:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;‼️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:bangbang:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⁉️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:interrobang:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⭕&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:o:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✖️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heavy_multiplication_x:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;➕&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heavy_plus_sign:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;➖&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heavy_minus_sign:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;➗&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heavy_division_sign:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:white_flower:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:100:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;✔️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:heavy_check_mark:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;☑️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:ballot_box_with_check:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:radio_button:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:link:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;➰&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:curly_loop:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;〰️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:wavy_dash:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;〽️&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:part_alternation_mark:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:trident:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;:black_square:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:black_square:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;:white_square:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:white_square:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:white_check_mark:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:black_square_button:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:white_square_button:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚫&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:black_circle:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;⚪&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:white_circle:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:red_circle:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:large_blue_circle:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:large_blue_diamond:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:large_orange_diamond:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:small_blue_diamond:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:small_orange_diamond:&lt;/code&gt;&lt;/td&gt;
&lt;td&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:small_red_triangle:&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;color: #1f2328; text-align: start;&quot;&gt; &lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;:small_red_triangle_down:&lt;/code&gt;&lt;/td&gt;
&lt;td style=&quot;color: #1f2328; text-align: start;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://gist.github.com/ljlm0402/609afc9b982a3ec808699eea6dddc753&quot;&gt;깃허브 마크다운 Emoji 모음&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://doozi316.github.io/markdown/2020/08/10/MD2/&quot;&gt;Markdown Emoji(마크다운 이모지 정리)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/MarkDown-%F0%9F%93%9A-Emoji-%EC%9D%B4%EB%AA%A8%ED%8B%B0%EC%BD%98-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0&quot;&gt; ️ 마크다운 emoji 이모티콘 사용하는 방법&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/Markdown</category>
      <category>emoji</category>
      <category>markdown</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/88</guid>
      <comments>https://light9639.tistory.com/entry/Markdown#entry88comment</comments>
      <pubDate>Tue, 13 Jun 2023 19:06:09 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]   PM2 모듈 사용법 - 클러스터 / 무중단 서비스</title>
      <link>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-PM2-%EB%AA%A8%EB%93%88-%EC%82%AC%EC%9A%A9%EB%B2%95-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EB%AC%B4%EC%A4%91%EB%8B%A8-%EC%84%9C%EB%B9%84%EC%8A%A4</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3,h4&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img.webp&quot; data-origin-width=&quot;1468&quot; data-origin-height=&quot;716&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmgYwC/btsjnIUoM4R/R3r5qKaYdrzKydslOF8cLK/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmgYwC/btsjnIUoM4R/R3r5qKaYdrzKydslOF8cLK/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmgYwC/btsjnIUoM4R/R3r5qKaYdrzKydslOF8cLK/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmgYwC%2FbtsjnIUoM4R%2FR3r5qKaYdrzKydslOF8cLK%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1468&quot; height=&quot;716&quot; data-filename=&quot;img.webp&quot; data-origin-width=&quot;1468&quot; data-origin-height=&quot;716&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;PM2란?&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;PM2&lt;/b&gt;는 &lt;code&gt;'Production Process Manager for Node.js'&lt;/code&gt;의 줄임말로 &lt;b&gt;Node.js&lt;/b&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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;PM2를 사용하는 이유&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;PM2&lt;/code&gt;를 사용하지 않을 경우, 에러가 발생하여 프로그램이 중지 되는 경우가 있다. 그러나 PM2를 사용할 경우, 프로그램 동작이 중지되면 PM2가 프로그램 동작을 다시 실행 시켜 주기 때문에 매우 유용하다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PM2&lt;/code&gt;를 사용하면서 코드를 수정 할 때, 서버를 끄고 다시 시작하는 번거로움 없이, 코드를 저장하고 웹 새로고침만 해주면 수정사항이 반영되기 때문에 매우 유용하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;PM2 설치&lt;/b&gt;&lt;/h2&gt;
&lt;h3 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;프로젝트 파일 터미널 창에서 아래 코드 입력&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686489575626&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install pm2 -g&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위 코드가 실행이 안될 경우 아래 코드를 입력하여 관리자 권한으로 설치하면 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686489575626&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo npm install pm2 -g&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위의 코드 입력한 후, 컴퓨터 비밀번호를 입력해주시면 설치할 수 있다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;PM2 실행법&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PM2를 시작한 후 아래 코드를 입력한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686489575626&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pm2 start 파일이름.js --watch&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PM2 시작 후, 소스코드 변경시 자동으로 서버를 껐다 켜준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;PM2 그 외의 명령어&lt;/b&gt;&lt;/h2&gt;
&lt;h3 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;현재 실행중인 프로세스 리스트 보기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686489575627&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pm2 list&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;현재 실행중인 프로세스 중지하기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686489575627&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pm2 stop 프로세스 이름&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로세스 이름은 PM2 List에서 Name란이 프로세스 이름을 뜻한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;터미널창에 수정 사항/ 에러 등 바로 보여주기&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686489575627&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pm2 log&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;모든 PM2 관련 서비스 중지&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686489575627&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pm2 kill&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://any-ting.tistory.com/74&quot;&gt;[Node.js] PM2 사용법 - 서버를 무중단으로 사용하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://hellominchan.tistory.com/11&quot;&gt;[Node.js] PM2 소개와 설치 및 사용법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://engineering.linecorp.com/ko/blog/pm2-nodejs&quot;&gt;PM2를 활용한 Node.js 무중단 서비스하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/node-%F0%9F%93%9A-PM2-%EB%AA%A8%EB%93%88-%EC%82%AC%EC%9A%A9%EB%B2%95-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EB%AC%B4%EC%A4%91%EB%8B%A8-%EC%84%9C%EB%B9%84%EC%8A%A4&quot;&gt;[NODE]   PM2 모듈 사용법 - 클러스터 / 무중단 서비스&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Backend/Node.js</category>
      <category>node.js</category>
      <category>pm2</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/86</guid>
      <comments>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-PM2-%EB%AA%A8%EB%93%88-%EC%82%AC%EC%9A%A9%EB%B2%95-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0-%EB%AC%B4%EC%A4%91%EB%8B%A8-%EC%84%9C%EB%B9%84%EC%8A%A4#entry86comment</comments>
      <pubDate>Sun, 11 Jun 2023 22:27:23 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]   Express.js 설치 및 사용법</title>
      <link>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-Expressjs-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;0_m1VOQP0FtcQufLgw.webp&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cM6Af8/btsjnHHt64c/3YQLkUKlO8XEhvGBn2niyK/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cM6Af8/btsjnHHt64c/3YQLkUKlO8XEhvGBn2niyK/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cM6Af8/btsjnHHt64c/3YQLkUKlO8XEhvGBn2niyK/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcM6Af8%2FbtsjnHHt64c%2F3YQLkUKlO8XEhvGBn2niyK%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;805&quot; height=&quot;428&quot; data-filename=&quot;0_m1VOQP0FtcQufLgw.webp&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Express.js는 무엇인가?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Expresss&lt;/code&gt;는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Node.js&lt;/code&gt;의 프레임워크로, &lt;code&gt;Node.js&lt;/code&gt;를 이용하여 웹 개발을 할 때,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Expresss&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;프레임워크를 사용하면 훨씬 간편하게 개발을 할 수 있게 도와주는 프레임워크이다.&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Expresss&lt;/code&gt; 프레임워크의 특징을 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #555555; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;프레임워크중 점유율이 가장 높다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;많은 개발자들이 사용하고 있어 정보들을 많이 얻을 수 있다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;확장 모듈이 많이 있고 추가하기 용이하게 되어있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;Express 설치 방법&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Express&lt;/code&gt;를 설치하기 위해서는 &lt;code&gt;Node.js&lt;/code&gt;가 설치되어 있어야 한다. &lt;code&gt;Express&lt;/code&gt; 설치는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;NPM&lt;/code&gt;과 &lt;code&gt;Yarn&lt;/code&gt;을 이용하여 설치하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686534053886&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install express
# or
yarn add express&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;Hello World 띄우기&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그럼, &lt;code&gt;Express&lt;/code&gt; 프레임워크를 사용해 &lt;code&gt;Hello World&lt;/code&gt;를 표시하는 예제를 만들어보자. 우선 예제 소스를 만들기 위한 폴더를 생성합니다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;우선&amp;nbsp;&lt;/span&gt;&lt;code&gt;server&lt;/code&gt; 폴더를 만든 다음, 생성한 폴더를 &lt;code&gt;NPM&lt;/code&gt;이나 &lt;code&gt;Yarn&lt;/code&gt; 명령어를 사용하여 프로젝트 초기화한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686534053887&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm init -y
# or
yarn init -y&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;프로젝트를 초기화하면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;package.json&lt;/code&gt;&lt;span&gt;&amp;nbsp;과&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;node_modules&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;폴더가 생성된다. 이후 프로젝트 폴더에 &lt;code&gt;server.js&lt;/code&gt;를 생성한 후 밑의 코드를 작성한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686534053888&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const express = require('express'); 
const app = express();

app.get('/', function (req, res) {
    res.send('Hello World Express'); 
}); 

app.listen(8080);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Express&lt;/code&gt;을 &lt;code&gt;Node.js&lt;/code&gt;에서 사용할 수 있게&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;require()&lt;/code&gt;로 호출을 합니다. 이것으로 &lt;code&gt;Node.js&lt;/code&gt;에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Express&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;프레임워크를 사용할 수 있게 됩니다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;get method&lt;/code&gt;를&lt;span&gt;&amp;nbsp;&lt;/span&gt;사용해 루틴과 표시할 내용을 설정할 수 있습니다. 예제에서는&lt;span&gt; H&lt;/span&gt;ome 디렉토리를 설정하기 위해&lt;span&gt; /&lt;/span&gt;를 지정했습니다. 표시 내용으로는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Hello World&lt;/code&gt;를 문자열로 지정했습니다. 포트는&lt;span&gt; 8080&lt;/span&gt;으로 설정했습니다.&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;커맨드 창에서 프로젝트 폴더로 이동해 &lt;code&gt;Node.js&lt;/code&gt; 실행합니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686534053890&quot; class=&quot;bash&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;node server.js&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;코드를 커맨드 창에서 실행시킨 후 브라우저에 &lt;code&gt;http://localhost:8080&lt;/code&gt; 포트로 이동한다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;접속이 완료되었다면 화면에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Hello World&lt;/code&gt;가 띄워진 것을 확인할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://jaylee-log.tistory.com/59&quot;&gt;[express]express.js 설치및 사용법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://codingapple.com/unit/nodejs-4-server-get-request/?id=1826&quot;&gt;두근두근 내 첫서버에서 GET 요청을 처리해보자&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://www.deok.me/entry/NodeJS-NodeJS-Express-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B0%9C%EB%B0%9C-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0&quot;&gt;[NodeJS] NodeJS + Express 설치 및 서비스 개발 시작하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://expressjs.com/ko/starter/installing.html&quot;&gt;Express 설치&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Backend/Node.js</category>
      <category>express.js</category>
      <category>node.js</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/85</guid>
      <comments>https://light9639.tistory.com/entry/Nodejs-%F0%9F%93%9A-Expressjs-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95#entry85comment</comments>
      <pubDate>Sat, 10 Jun 2023 22:30:26 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]  ️ 마우스 wheel &amp;amp; scroll 이벤트 멈춤 감지하기</title>
      <link>https://light9639.tistory.com/entry/%F0%9F%96%B1%EF%B8%8F-%EB%A7%88%EC%9A%B0%EC%8A%A4-wheel-scroll-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EB%A9%88%EC%B6%A4-%EA%B0%90%EC%A7%80%ED%95%98%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5wGmR/btsjlVMY7pL/pL84ZUNAFoX1z27NpyYS1k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5wGmR/btsjlVMY7pL/pL84ZUNAFoX1z27NpyYS1k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5wGmR/btsjlVMY7pL/pL84ZUNAFoX1z27NpyYS1k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5wGmR%2FbtsjlVMY7pL%2FpL84ZUNAFoX1z27NpyYS1k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;마우스_휠__스크롤_멈춤_감지_방법&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마우스 휠 &amp;amp; 스크롤 멈춤 감지 방법&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;사용자가 문서를 스크롤 하면 이벤트를 발생시키는데,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;스크롤을 멈추면 이를 감지&lt;/b&gt;하여 스크립트 처리를 하고 싶은 상황이 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;마우스 스크롤을 감지하는 이벤트는 두가지가 있는데, 문서를 스크롤하면 발생하는 &lt;code&gt;&quot;scroll&quot;&lt;/code&gt; 이벤트와 그냥 마우스 가운데 휠 버튼을 내리면 발생하는 &lt;code&gt;&quot;wheel&quot;&lt;/code&gt; 이벤트가 있다. 이 이벤트들에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;setTimeout()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;메서드와 조합해서 종단 지점을 감지하는 로직을 구현 할수가 있다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;let scrolling; // setTimeout() 메서드를 할당하는 전역 변수

window.addEventListener('scroll', (e) =&amp;gt; {
    if (!scrolling) {
    	console.log('start scrolling!');
    }
    
    // 일정시간(250ms) 뒤에 스크롤 동작 멈춤을 감지
    clearTimeout(scrolling);
    scrolling = setTimeout(() =&amp;gt; {
        console.log('stop scrolling!');
        
        scrolling = undefined;
    }, 250);
})&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;let wheeling; // setTimeout() 메서드를 할당하는 전역 변수

window.addEventListener('wheel', (e) =&amp;gt; {
    if (!wheeling) {
    	console.log('start wheeling!');
    }

    // 일정시간(400ms) 뒤에 스크롤 동작 멈춤을 감지
    clearTimeout(wheeling);
    wheeling = setTimeout(() =&amp;gt; {
        console.log('stop wheeling!');
        
        wheeling = undefined;
    }, 400);
})&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote class=&quot;admonition warning&quot; style=&quot;user-select: auto;&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p class=&quot;admonition-title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;Tip&lt;/p&gt;
&lt;p style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;mousewheel&lt;/code&gt;은 &lt;code&gt;deprecated&lt;/code&gt; 된 구형 이벤트로서 최신 이벤트 스펙인 &lt;code&gt;'wheel'&lt;/code&gt; 사용을 권장한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://tlsdnjs12.tistory.com/63&quot;&gt;[JS] Javascript Scroll Event&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/%F0%9F%9A%80-wheel-scroll-%EB%A9%88%EC%B6%A4-%EA%B0%90%EC%A7%80&quot;&gt;  마우스 wheel &amp;amp; scroll 이벤트 멈춤 감지하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://gurtn.tistory.com/135&quot;&gt;[JS] 스크롤 방향 감지하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javassccript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/84</guid>
      <comments>https://light9639.tistory.com/entry/%F0%9F%96%B1%EF%B8%8F-%EB%A7%88%EC%9A%B0%EC%8A%A4-wheel-scroll-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%EB%A9%88%EC%B6%A4-%EA%B0%90%EC%A7%80%ED%95%98%EA%B8%B0#entry84comment</comments>
      <pubDate>Sat, 10 Jun 2023 21:37:53 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]  화면 스크롤 맨 아래 / 맨 위 감지하기</title>
      <link>https://light9639.tistory.com/entry/%F0%9F%93%A1-%ED%99%94%EB%A9%B4-%EC%8A%A4%ED%81%AC%EB%A1%A4-%EB%A7%A8-%EC%95%84%EB%9E%98-%EB%A7%A8-%EC%9C%84-%EA%B0%90%EC%A7%80%ED%95%98%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFgXoa/btsjna34b4f/Fvs0K5POvwMQQLUqiFObbK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFgXoa/btsjna34b4f/Fvs0K5POvwMQQLUqiFObbK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFgXoa/btsjna34b4f/Fvs0K5POvwMQQLUqiFObbK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFgXoa%2Fbtsjna34b4f%2FFvs0K5POvwMQQLUqiFObbK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id=&quot;스크롤_맨_아래_맨_위_감지하기&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;스크롤 맨 아래 맨 위 감지하기&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;스크롤 맨 아래와 맨 위를 감지하는 이유는, 사용자가 웹 페이지를 다 읽었는지를 판단하여 다른 액션을 이어가고자 할 때. 또는 꼭 읽어야 하는 글이 있을 경우에 글의 맨 아래에서 버튼 상태를 활성화 시킬 때 유용하게 사용할 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이를 구현하기 위해서는 &lt;code&gt;&quot;스크롤 되어 내려온 위치&quot;&lt;/code&gt;와 &lt;code&gt;&quot;브라우저에 표시된 높이&quot;&lt;/code&gt;를 더한 값이 &lt;code&gt;&quot;페이지의 전체 높이&amp;nbsp;값&quot;&lt;/code&gt;과 같거나 클 경우를 비교하여 코드를 짜면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 id=&quot;맨_아래까지_왔다고_판단하는_로직&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;맨 아래까지 왔다고 판단하는 로직&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;&quot;스크롤 되어 내려온 위치&quot;&lt;/code&gt;와 &lt;code&gt;&quot;브라우저에 표시된 높이&quot;&lt;/code&gt;를 더한 값이 &lt;code&gt;&quot;페이지 전체 높이 값&quot;&lt;/code&gt;과 같거나 크면 맨 아래까지 왔다고 판단하는 코드이다.&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot;&gt;&lt;code&gt;function detectBottom() {
    var scrollTop = $(window).scrollTop();
    var innerHeight = $(window).innerHeight();
    var scrollHeight = $('body').prop('scrollHeight');
    if (scrollTop + innerHeight &amp;gt;= scrollHeight) {
        return true;
    } else {
        return false;
    }
}Copy&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;맨_위를_감지하는_방법&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;맨 위를 감지하는 방법&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;&quot;스크롤 된 위치&quot;&lt;/code&gt;가 0이라면 판단할 수 있다. 이를 활용하면 본문의 위치를 나타내는 프로그레스바를 쉽게 구현할 수도 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot;&gt;&lt;code&gt;function detectTop() {
    var scrollTop = $(window).scrollTop();
    if (scrollTop == 0) {
        return true;
    } else {
        return false;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://young-niii.tistory.com/17&quot;&gt;[jquery] 스크롤이 브라우저 끝에 도달했을때 이벤트주기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://sangminem.tistory.com/504&quot;&gt;자바스크립트 스크롤 맨 위/아래 감지하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/JS-%F0%9F%9A%80-%EC%8A%A4%ED%81%AC%EB%A1%A4-%EB%A7%A8-%EC%95%84%EB%9E%98-%EB%A7%A8-%EC%9C%84-%EA%B0%90%EC%A7%80%ED%95%98%EA%B8%B0&quot;&gt;  화면 스크롤 맨 아래 / 맨 위 감지하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/83</guid>
      <comments>https://light9639.tistory.com/entry/%F0%9F%93%A1-%ED%99%94%EB%A9%B4-%EC%8A%A4%ED%81%AC%EB%A1%A4-%EB%A7%A8-%EC%95%84%EB%9E%98-%EB%A7%A8-%EC%9C%84-%EA%B0%90%EC%A7%80%ED%95%98%EA%B8%B0#entry83comment</comments>
      <pubDate>Sat, 10 Jun 2023 21:34:47 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript] ⛔ sleep, wait 함수를 이용하여 프로그램의 실행을 지연시키기</title>
      <link>https://light9639.tistory.com/entry/%E2%9B%94-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%98-%EC%8B%A4%ED%96%89%EC%9D%84-%EC%A7%80%EC%97%B0%EC%8B%9C%ED%82%A4%EA%B8%B0-sleep</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EXtka/btsjlZWe69u/fWKf2NnhMgEBp2TYG4za7K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EXtka/btsjlZWe69u/fWKf2NnhMgEBp2TYG4za7K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EXtka/btsjlZWe69u/fWKf2NnhMgEBp2TYG4za7K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEXtka%2FbtsjlZWe69u%2FfWKf2NnhMgEBp2TYG4za7K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #1b2e46; text-align: start;&quot;&gt;Sleep, Wait 함수 만들기&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1b2e46; text-align: start;&quot;&gt;코딩을 하다 보면 여러 가지 이유로 프로그램의 실행을 잠시 멈추거나 일정 시간동안 실행을 지연시키고 싶을 때가 있다. 예를 들어, 자바에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;Thread.sleep()&lt;/code&gt;&lt;span style=&quot;background-color: #ffffff; color: #1b2e46; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수를 사용하고 파이썬에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;time.sleep()&lt;/code&gt;&lt;span style=&quot;background-color: #ffffff; color: #1b2e46; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수를 사용하여 의도된 지연 효과를 줄 수가 있다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #1b2e46; text-align: start;&quot;&gt;다른 프로그래밍 언어들에서는 이러한 &lt;code&gt;API&lt;/code&gt;를 쉽게 찾아볼 수 있지만&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #373e48; text-align: left;&quot;&gt; 자바스크립트에선 따로 &lt;code&gt;sleep()&lt;/code&gt;함수가 존재하지 않기 때문에,&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #373e48; text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;직접 개발자가 구현&lt;span style=&quot;background-color: #ffffff; color: #373e48; text-align: left;&quot;&gt;해주어야 한다. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1b2e46; text-align: start;&quot;&gt;이를 구현하기 위해서는 while 문과&amp;nbsp;&lt;span style=&quot;background-color: #ffffff; color: #373e48; text-align: left;&quot;&gt;&lt;code&gt;Promise&lt;/code&gt; 를 사용해야 하는데,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;프로그램의 실행을 일정 시간동안 지연시키는 코드는 다음과 같다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #1b2e46; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;while문_활용&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;while문 활용&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;시간날짜를 얻는 함수&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Date()&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;와 &lt;code&gt;while&lt;/code&gt;문 조건으로 3초 지난걸 확인하는 방법으로 &lt;code&gt;sleep&lt;/code&gt;문을 구현.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;function sleep(sec) {
    let start = Date.now(), now = start;
    while (now - start &amp;lt; sec * 1000) {
        now = Date.now();
    }
}

console.log(11)
sleep(3);
console.log(22)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;라이브러리---waait&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;waait&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;웹 개발을 하던 중 일정 시간을 기다렸다가 다시 실행해야하는 프로그램이 많이 사용해야 할 경우, 라이브러리를 사용하는 방법도 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이를 구현해주는 대표적인 라이브러리가 &lt;a href=&quot;https://www.npmjs.com/package/waait&quot;&gt;waait&lt;/a&gt;로 위에서 작성한 코드와 크게 다르지 않다. 아래 코드와 같이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;waait&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;패키지에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;wait&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수를 가져와 동일한 방법으로 사용하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686644665927&quot; class=&quot;javascript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import wait from &quot;waait&quot;;

async function test() {
  console.log(&quot;before&quot;);
  await wait(3000);
  console.log(&quot;after&quot;);
  console.log(&quot;done!&quot;);
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;promise_객체_활용​&quot; style=&quot;background-color: #ffffff; color: #262d40; text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Promise 객체 활용​&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;우선 &lt;code&gt;Promise&lt;/code&gt; 객체를 만들고&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;setTimeout&lt;/code&gt;으로 시간 ms 후에 resolve하게 한다. 이 비동기 &lt;code&gt;Promise&lt;/code&gt; 함수를 await으로 동기처리를 해주면 &lt;code&gt;sleep&lt;/code&gt;과 같은 기능을 하게 된다.&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;function sleep(sec) {
  return new Promise(resolve =&amp;gt; setTimeout(resolve, sec * 1000));
} // 함수정의


(async () =&amp;gt; {
  ... 코드1
  await sleep(2); // 2초대기
  ... 코드2
})();&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;angelscript&quot; style=&quot;background-color: #282c34; color: #000000; text-align: left;&quot;&gt;&lt;code&gt;// 최근 추가된 Top-Level Await 문법으로 인해 바로 await를 사용할수도 있다.
... 코드1
await sleep(2); // 2초대기
... 코드2&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://www.daleseo.com/js-sleep/&quot;&gt;자바스크립트에서 프로그램의 실행을 지연시키기 (sleep)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90-sleep-wait-%EB%8C%80%EA%B8%B0-%ED%95%A8%EC%88%98-%EC%93%B0%EA%B8%B0&quot;&gt;  자바스크립트에 sleep() &amp;amp; wait() 대기 함수 쓰기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://ccusean.tistory.com/entry/javascript%EB%A1%9C-sleep%ED%95%A8%EC%88%98-%EA%B5%AC%ED%98%84&quot;&gt;JavaScript로 sleep함수 구현&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/82</guid>
      <comments>https://light9639.tistory.com/entry/%E2%9B%94-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%9D%98-%EC%8B%A4%ED%96%89%EC%9D%84-%EC%A7%80%EC%97%B0%EC%8B%9C%ED%82%A4%EA%B8%B0-sleep#entry82comment</comments>
      <pubDate>Sat, 10 Jun 2023 21:25:36 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   insertAdjacentHTML와 innerHTML 차이점 정리</title>
      <link>https://light9639.tistory.com/entry/%F0%9F%8C%90-insertAdjacentHTML%EB%A1%9C-HTML%EC%9D%84-%EC%B6%94%EA%B0%80%ED%95%B4%EB%B3%B4%EC%9E%90</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ew94w/btsjk53KljR/zpKbA0NjmCtu6KTAKxRs8k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ew94w/btsjk53KljR/zpKbA0NjmCtu6KTAKxRs8k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ew94w/btsjk53KljR/zpKbA0NjmCtu6KTAKxRs8k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEw94w%2Fbtsjk53KljR%2FzpKbA0NjmCtu6KTAKxRs8k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;insertAdjacentHTML와&amp;nbsp;innerHTML&amp;nbsp;차이점&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;insertAdjacentHTML&lt;/code&gt;와 &lt;code&gt;innerHTML&lt;/code&gt;은 둘 다 &lt;code&gt;JS&lt;/code&gt;를 사용해서 &lt;code&gt;HTML 코드&lt;/code&gt;를 &lt;code&gt;DOM&lt;/code&gt;에 넣어 조작하는 메서드다. 그럼 이 두가지 함수를 어떻게 사용하는지에 대해서 포스팅해보겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;innerHTML 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;innerHTML&lt;/code&gt; 속성은&amp;nbsp;&lt;code&gt;JavaScript&lt;/code&gt;를 통해서&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;html&lt;/code&gt;의 &lt;code&gt;content&lt;/code&gt;를 가져와서 그 값을 화면상에 보여주거나 직접 변경하여 보여주는 것을 뜻한다. &lt;/span&gt;&lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;로&amp;nbsp;둘러쌓인&amp;nbsp;텍스트를&amp;nbsp;&lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;클릭&amp;nbsp;시&amp;nbsp;&lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;태그로&amp;nbsp;바꾸는&amp;nbsp;&lt;code&gt;JS&lt;/code&gt;를 작성해보자.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686396239628&quot; class=&quot;xml&quot; style=&quot;background-color: #9ad7d0; color: #000000; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button&amp;gt;click&amp;lt;/button&amp;gt;
&amp;lt;span id=&quot;el&quot;&amp;gt;안녕하세요, 지금은 'span' 태그입니다.&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;354&quot; data-origin-height=&quot;40&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dHkZCX/btsjmvACb1l/LlGSq4zNSmHmMFOjWUurdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dHkZCX/btsjmvACb1l/LlGSq4zNSmHmMFOjWUurdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dHkZCX/btsjmvACb1l/LlGSq4zNSmHmMFOjWUurdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdHkZCX%2FbtsjmvACb1l%2FLlGSq4zNSmHmMFOjWUurdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;354&quot; height=&quot;40&quot; data-origin-width=&quot;354&quot; data-origin-height=&quot;40&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;라이브 서버로 확인해보면 클릭 버튼 옆에 텍스트가 나란히 나오는 것을 확인할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686396239629&quot; class=&quot;dart&quot; style=&quot;background-color: #9ad7d0; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const btn = document.querySelector(&quot;button&quot;);
const el = document.querySelector(&quot;#el&quot;);

btn.addEventListener('click', e =&amp;gt; {
  el.innerHTML = &quot;&amp;lt;p&amp;gt;지금은 'p'태그로 변경되었습니다.&amp;lt;/p&amp;gt;&quot;
})&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;269&quot; data-origin-height=&quot;83&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7PHFx/btsjnb2Wmk8/kw9XPwv9EbbvQrtwa5XuWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7PHFx/btsjnb2Wmk8/kw9XPwv9EbbvQrtwa5XuWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7PHFx/btsjnb2Wmk8/kw9XPwv9EbbvQrtwa5XuWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7PHFx%2Fbtsjnb2Wmk8%2Fkw9XPwv9EbbvQrtwa5XuWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;269&quot; height=&quot;83&quot; data-origin-width=&quot;269&quot; data-origin-height=&quot;83&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;클릭하는 순간 &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;태그에서 &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;태그로 덮어씌워진다. 이것은 &lt;code&gt;innerHTML&lt;/code&gt;의 특징 중 하나로,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;기존 노드는 삭제되면서 새로 값이&lt;/b&gt;&amp;nbsp;되어 나타난다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;insertAdjacentHTML 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;code&gt;insertAdjacentHTML&lt;/code&gt;도 &lt;code&gt;innerHTML&lt;/code&gt;과 비슷하지만 &lt;code&gt;innerHTML&lt;/code&gt;을 사용하게 되면 기존에 있던 것은 덮어쓰기가 되어버려서 기존의 값이 보이지 않게 된다. &lt;/span&gt;하지만 &lt;code&gt;insertAdjacentHTML&lt;/code&gt;은 기존의 값을 건드리지 않고, 새롭게 내가 입력하고 싶은 값을 어떤 위치에 놓을지를 설정할 수 있다는 차이가 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;/span&gt;&lt;code&gt;position&lt;/code&gt;에는 4가지의 옵션이 있는데, 어떤 값을 넣느냐에 따라 &lt;code&gt;html&lt;/code&gt; 요소 위치를 설정 할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;before-after.svg&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;129&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9kbm3/btsjkFYx3Gk/yPX5LZOa2w776iWDljcDS1/tfile.svg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9kbm3/btsjkFYx3Gk/yPX5LZOa2w776iWDljcDS1/tfile.svg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9kbm3/btsjkFYx3Gk/yPX5LZOa2w776iWDljcDS1/tfile.svg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9kbm3%2FbtsjkFYx3Gk%2FyPX5LZOa2w776iWDljcDS1%2Ftfile.svg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;129&quot; data-filename=&quot;before-after.svg&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;129&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그럼, &lt;code&gt;C라는 텍스트&lt;/code&gt;가 있는 &lt;code&gt;span&lt;/code&gt; 태그를 넣어서 기준점을 정해보자.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686396239632&quot; class=&quot;html xml&quot; style=&quot;background-color: #9ad7d0; color: #000000; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;span id=&quot;el&quot;&amp;gt;C&amp;lt;/span&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686396239632&quot; class=&quot;javascript&quot; style=&quot;background-color: #9ad7d0; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const el = document.querySelector(&quot;#el&quot;)

el.insertAdjacentHTML('beforebegin', '&amp;lt;span&amp;gt;A-&amp;lt;/span&amp;gt;'); 
// 타켓 요소 전(형제레벨)에 생성- 시작 태그의 앞(형제 레벨로) 

el.insertAdjacentHTML('afterbegin', '&amp;lt;span&amp;gt;B-&amp;lt;/span&amp;gt;'); 
// 타켓 요소 다음(자식요소)에 생성 - 시작 태그의 뒤(자식 요소로) 

el.insertAdjacentHTML('beforeend','&amp;lt;span&amp;gt;-D&amp;lt;/span&amp;gt;'); 
// 타켓 요소 '끝나는 태그' 바로 직전(자식요소로)에 요소를 생성 - '종료 태그' 앞(자식 요소로) 

el.insertAdjacentHTML('afterend','&amp;lt;span&amp;gt;-E&amp;lt;/span&amp;gt;'); 
// 타켓 요소의 '끝나는 태그' 바로 다음(형제레벨)에 요소를 생성 - '종료 태그' 뒤(형제 레벨로)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 코드와 같이 작성하면 브라우저 화면에&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;A - B - C - D - E&lt;/code&gt; 순으로 결과가 나오는 것을 확인 할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;또한, 개발자 도구를 열어서 확인해보면 C 기준으로 정확한 위치를 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x6mAM/btsjkGXrMzO/kgY9x3aAwhxtBhke2qJyj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x6mAM/btsjkGXrMzO/kgY9x3aAwhxtBhke2qJyj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x6mAM/btsjkGXrMzO/kgY9x3aAwhxtBhke2qJyj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx6mAM%2FbtsjkGXrMzO%2FkgY9x3aAwhxtBhke2qJyj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;403&quot; height=&quot;206&quot; data-origin-width=&quot;403&quot; data-origin-height=&quot;206&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;insertAdjacentHTML와&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;&lt;/span&gt;innerHTML 차이점 정리&lt;/b&gt;&lt;/h2&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;innerHTML&lt;/code&gt;은 기존 요소를 파싱하기 때문에 비싼 &lt;code&gt;DOM&lt;/code&gt; 작업을 필요로 한다.&lt;/li&gt;
&lt;li&gt;따라서 기존 요소를 파싱하지 않는 &lt;code&gt;insertAdjacentHTML&lt;/code&gt;을 사용하면 작업을 빠르게 완료할 수 있다.&lt;/li&gt;
&lt;li&gt;파싱 작업을 아예 배제하고, &lt;code&gt;createElement&lt;/code&gt;와 &lt;code&gt;insertAdjacentElement&lt;/code&gt;를 사용하면 더 빠르게 완료할 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;innerText&lt;/code&gt; 대신 &lt;code&gt;textContent&lt;/code&gt;를 쓰면 더 빠르게 완료할 수 있다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://developer-talk.tistory.com/882&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[JS]insertAdjacentHTML 메서드로 HTML 요소 추가하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EC%A0%9C%EC%9D%B4%EC%BF%BC%EB%A6%AC-%EC%93%B0%EC%A7%80-%EB%A7%90%EA%B3%A0-insertAdjacentHTML-%EC%82%AC%EC%9A%A9%ED%95%98%EC%9E%90&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;  insertAdjacentHTML로 쉽게 append 하자&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/API/Element/insertAdjacentHTML&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Element.insertAdjacentHTML()&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/81</guid>
      <comments>https://light9639.tistory.com/entry/%F0%9F%8C%90-insertAdjacentHTML%EB%A1%9C-HTML%EC%9D%84-%EC%B6%94%EA%B0%80%ED%95%B4%EB%B3%B4%EC%9E%90#entry81comment</comments>
      <pubDate>Sat, 10 Jun 2023 20:28:33 +0900</pubDate>
    </item>
    <item>
      <title>[React]   Redux와 Redux-Toolkit 문법 비교.</title>
      <link>https://light9639.tistory.com/entry/React-%F0%9F%92%8E</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;64062c3149536757695aed21_Reduximg.jpeg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;710&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AUnJk/btsahyUMd7P/Fz83xt8EkZKtdCLDWQSEnK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AUnJk/btsahyUMd7P/Fz83xt8EkZKtdCLDWQSEnK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AUnJk/btsahyUMd7P/Fz83xt8EkZKtdCLDWQSEnK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAUnJk%2FbtsahyUMd7P%2FFz83xt8EkZKtdCLDWQSEnK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;710&quot; data-filename=&quot;64062c3149536757695aed21_Reduximg.jpeg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;710&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Redux 문법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Redux 문법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681562663834&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { Provider } from 'react-redux';
import { createStore } from 'redux';

interface Counter {
  count : number
}

const initialState :Counter  = { count: 0 };

function reducer(state = initialState, action :any) {
  if (action.type === 'increase') {
    return { count : state.count + 1 }
  } else if (action.type === 'decrease'){
    return { count : state.count - 1 }
  } else {
    return initialState
  }
}

const store = createStore(reducer);

// store의 타입 미리 export 해놓기
export type RootState = ReturnType&amp;lt;typeof store.getState&amp;gt;

ReactDOM.render(
  &amp;lt;React.StrictMode&amp;gt;
    &amp;lt;Provider store={store}&amp;gt;
      &amp;lt;App /&amp;gt;
    &amp;lt;/Provider&amp;gt;
  &amp;lt;/React.StrictMode&amp;gt;,
  document.getElementById('root')
)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;문법에서의 사용방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681562704847&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react';
import { useDispatch, useSelector } from 'react-redux'
import { Dispatch } from 'redux'
import {RootState} from './index'

function App() {
  const Redux = useSelector( (state :RootState) =&amp;gt; state );
  const dispatch :Dispatch = useDispatch();

  return (
    &amp;lt;div className=&quot;App&quot;&amp;gt;
      { Redux.count }
      &amp;lt;button onClick={()=&amp;gt;{dispatch({type : 'increase'})}}&amp;gt;버튼&amp;lt;/button&amp;gt;
      &amp;lt;Profile name=&quot;kim&quot;&amp;gt;&amp;lt;/Profile&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Redux-Toolkit 문법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Redux-Toolkit 문법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681562769792&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { createSlice, configureStore } from '@reduxjs/toolkit';
import { Provider } from 'react-redux';

const 초기값 = { count: 0, user : 'kim' };

const counterSlice = createSlice({
  name: 'counter',
  initialState : initialState,
  reducers: {
    increment (state){
      state.count += 1
    },
    decrement (state){
      state.count -= 1
    },
    incrementByAmount (state, action :any){
      state.count += action.payload
    }
  }
})

let store = configureStore({
  reducer: {
    counter1 : counterSlice.reducer
  }
})

//state 타입을 export 해두는 것
export type RootState = ReturnType&amp;lt;typeof store.getState&amp;gt;

//수정방법 만든 부분 export
export let {increment, decrement, incrementByAmount} = counterSlice.actions

ReactDOM.render(
  &amp;lt;React.StrictMode&amp;gt;
    &amp;lt;Provider store={store}&amp;gt;
      &amp;lt;App /&amp;gt;
    &amp;lt;/Provider&amp;gt;
  &amp;lt;/React.StrictMode&amp;gt;,
  document.getElementById('root')
)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용방법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681562839617&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { useDispatch, useSelector } from 'react-redux'
import {RootState, increment} from './index'

function App() {

  const Redux = useSelector( (state :RootState) =&amp;gt; state);
  const dispatch = useDispatch();

  return (
    &amp;lt;div className=&quot;App&quot;&amp;gt;
      {Redux.counter1.count}
      &amp;lt;button onClick={()=&amp;gt;{dispatch(increment())}}&amp;gt;버튼&amp;lt;/button&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/React</category>
      <category>react</category>
      <category>Redux</category>
      <category>Redux-Toolkit</category>
      <category>typescript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/80</guid>
      <comments>https://light9639.tistory.com/entry/React-%F0%9F%92%8E#entry80comment</comments>
      <pubDate>Sat, 15 Apr 2023 21:49:56 +0900</pubDate>
    </item>
    <item>
      <title>[React]   Class 문법에서의 LifeCycle hook 사용법.</title>
      <link>https://light9639.tistory.com/entry/React-Class-%EB%AC%B8%EB%B2%95%EC%97%90%EC%84%9C%EC%9D%98-LifeCycle-hook-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;A-Complete-Guide-To-Redux-Toolkit-with-Typescript.png&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X5LFx/btsj0e5CQG1/kKvKKSCRsy8geqvHNyEyWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X5LFx/btsj0e5CQG1/kKvKKSCRsy8geqvHNyEyWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X5LFx/btsj0e5CQG1/kKvKKSCRsy8geqvHNyEyWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX5LFx%2Fbtsj0e5CQG1%2FkKvKKSCRsy8geqvHNyEyWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1500&quot; height=&quot;800&quot; data-filename=&quot;A-Complete-Guide-To-Redux-Toolkit-with-Typescript.png&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;React의 LifeCycle은 무엇인가&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot; style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&lt;code&gt;React&lt;/code&gt;로 웹개발을 하다 보면 컴포넌트에 &lt;code&gt;Lifecycle&lt;/code&gt;이라는 개념이 있다. &lt;b&gt;컴포넌트&lt;/b&gt;는 생성이 될 수도 있고 (전문용어로 mount), 재렌더링이 될 수도 있고 (전문용어로 update), 삭제가 될 수도 있습니다. (전문용어로 unmount)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;컴포넌트의 &lt;code&gt;Lifecycle&lt;/code&gt;을 알아야 하는 이유는,&lt;span&gt; 이걸 알아야 &lt;/span&gt;&quot;컴포넌트의 인생 중간중간에 실행할 코드&quot;를 삽입할 수 있기 때문이다. 컴포넌트가 장착이 될 때 특정 코드를 실행할 수도 있고 컴포넌트가 업데이트될 때 특정 코드를 실행할 수 있는 것이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Class 문법에서의 LifeCycle hook 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;주로 사용되는 &lt;/b&gt;&lt;b&gt;LifeCycle hook&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681288106214&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class App extends React.Component {
  componentDidMount(){
    //App 컴포넌트가 로드되고나서 실행할 코드
  }
  componentDidUpdate(){
    //App 컴포넌트가 업데이트 되고나서 실행할 코드
  }
  componentWillUnmount(){
    //App 컴포넌트가 삭제되기전에 실행할 코드
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;componentDidMount&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;컴포넌트가 마운트 된 후 호출됩니다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;브라우저에서 한 번만 실행됩니다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;&lt;code&gt;axios&lt;/code&gt;, &lt;code&gt;fetch&lt;/code&gt; 등을 사용하여 외부 라이브러리 연동 및 네트워크 요청을 보내는데 적절합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;componentDidUpdate&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;컴포넌트가 갱신된 후 호출됩니다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;즉, 컴포넌트의 &lt;code&gt;state&lt;/code&gt;가 변경되었을 경우 실행됩니다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;갱신이 일어난 후 호출되므로 최초 렌더링에서는 호출되지 않습니다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;componentWillUnmount&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;컴포넌트가 마운트 해제되어 제거되기 직전에 호출된다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #666666;&quot;&gt;컴포넌트가 마운트 해제되면 다시 렌더링 되지 않으므로 &lt;code&gt;state&lt;/code&gt;를 변경하는 &lt;code&gt;setState()&lt;/code&gt;를 사용해서는 안된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;그 외의 LifeCycle hook&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 3개의 생명 주기 이외에도 더 이상 사용하면 안 되는 &lt;code&gt;UNSAFE_componentWillUpdate&lt;/code&gt;, &lt;code&gt;UNSafe_componentWillReceiveProps&lt;/code&gt; 그리고 잘 사용하지 않는 &lt;code&gt;shouldComponentUpdate&lt;/code&gt;, &lt;code&gt;getDerviedStateFromProps&lt;/code&gt; 등등 여러 가지의 생명주기 메소드가 존재한다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;하지만, React Hook은 자주 사용되는 그리고 꼭 필요한 생명주기 메소드인 &lt;code&gt;componentDidMount&lt;/code&gt;, &lt;code&gt;componentDidUpdate&lt;/code&gt;, &lt;code&gt;componentWillUnmount&lt;/code&gt;를 하나의 &lt;code&gt;API&lt;/code&gt;인 &lt;code&gt;useEffect&lt;/code&gt;로 통합하였다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그러면 &lt;code&gt;useEffect&lt;/code&gt;에서 클래스 컴포넌트의 생명 주기 메소드 &lt;code&gt;componetDidMount&lt;/code&gt;, &lt;code&gt;componentDidUpdate&lt;/code&gt;, &lt;code&gt;componentWillUnmount&lt;/code&gt;를 구현하고 &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;code&gt;useEffect&lt;/code&gt;와 비교해 보는 코드를 작성하겠습니다&lt;/span&gt;.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;m2&quot; style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;React Hook에서 componentDidMount&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;밑의 코드는 클래스 컴포넌트에서 &lt;code&gt;componentDidMount&lt;/code&gt;를 구현한 코드이다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686745345281&quot; class=&quot;scala&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from &quot;react&quot;;

class App extends React.Component {
    componentDidMount() {
        console.log('App componentDidMount()');
    }
    
    render() {
        return &amp;lt;h1&amp;gt;App Component Life Cycle&amp;lt;/h1&amp;gt;;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;밑의 코드는 함수형 컴포넌트에서 &lt;code&gt;useEffect&lt;/code&gt;를 사용하여&amp;nbsp; &lt;code&gt;componentDidMount&lt;/code&gt;를 사용한 코드입니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686745345282&quot; class=&quot;javascript&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React, { useEffect } from &quot;react&quot;;

const App = () =&amp;gt; {
    useEffect(() =&amp;gt; {
        console.log('App componentDidMount()');
    }, []);
    
    return &amp;lt;h1&amp;gt;App Component Life Cycle&amp;lt;/h1&amp;gt;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;useEffect&lt;/code&gt;에 두 번째 매개변수로 빈 배열( [] )을 전달하여 컴포넌트가 마운트된 직후 한 번만 실행된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;m3&quot; style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;React Hook에서 componentDidUpdate&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;밑의 코드는 클래스 컴포넌트에서 &lt;code&gt;componentDidUpdate&lt;/code&gt;를 사용한 코드이다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686745345283&quot; class=&quot;scala&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from &quot;react&quot;;

class App extends React.Component {
    componentDidUpdate() {
        console.log('App componentDidUpdate()');
    }
    
    render() {
        return &amp;lt;h1&amp;gt;App Component Life Cycle&amp;lt;/h1&amp;gt;;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;밑의 코드는 함수형 컴포넌트에서 &lt;code&gt;useEffect&lt;/code&gt;를 사용하여&lt;/span&gt; &lt;code&gt;componentDidUpdate&lt;/code&gt;를 사용한 코드입니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686745345286&quot; class=&quot;javascript&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React, { useEffect } from &quot;react&quot;;

const App = () =&amp;gt; {
    useEffect(() =&amp;gt; {
        return() =&amp;gt; {
            console.log('App componentWillUnmount()');
        }
    });
    
    return &amp;lt;h1&amp;gt;App Component Life Cycle&amp;lt;/h1&amp;gt;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;componentDidMount&lt;/code&gt;와 유사하지만 &lt;code&gt;useEffect&lt;/code&gt;에 두 번째 매개변수가 존재하지 않다는 차이점이 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;m4&quot; style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;React Hook에서 componentWillUnmount&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;밑의 코드는 클래스 컴포넌트에서 &lt;code&gt;componentWillUnmount&lt;/code&gt;를 사용한 코드이다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686745369878&quot; class=&quot;scala&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from &quot;react&quot;;

class App extends React.Component {
    componentWillUnmount() {
        console.log('App componentWillUnmount()');
    }
    
    render() {
        return &amp;lt;h1&amp;gt;App Component Life Cycle&amp;lt;/h1&amp;gt;;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;밑의 코드는 함수형 컴포넌트에서 &lt;code&gt;useEffect&lt;/code&gt;를 사용하여&lt;/span&gt; &lt;code&gt;componentWillUnmount&lt;/code&gt;를 사용한 코드이다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686745369880&quot; class=&quot;javascript&quot; style=&quot;background-color: #000000; color: #000000; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React, { useEffect } from &quot;react&quot;;

const App = () =&amp;gt; {
    useEffect(() =&amp;gt; {
        return() =&amp;gt; {
            console.log('App componentWillUnmount()');
        }
    }, []);
    
    return &amp;lt;h1&amp;gt;App Component Life Cycle&amp;lt;/h1&amp;gt;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이 또한 &lt;code&gt;componentDidMount&lt;/code&gt;와 유사하지만 &lt;code&gt;useEffect&lt;/code&gt; 내부에 &lt;code&gt;return&lt;/code&gt;문이 존재한다. &lt;code&gt;useEffect&lt;/code&gt; 내부의 &lt;code&gt;return&lt;/code&gt;문은 해당 컴포넌트가 DOM에서 제거될 때만 호출된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://developer-talk.tistory.com/216&quot;&gt;[React]클래스 컴포넌트 생명주기 Hook으로 변경&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://react.vlpt.us/basic/25-lifecycle.html&quot;&gt;25. LifeCycle Method&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://velog.io/@minimin123/20220203-%ED%81%B4%EB%9E%98%EC%8A%A4%ED%98%95%ED%95%A8%EC%88%98%ED%98%95-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-StateProps-Lifecycle-Method-useEffect-this&quot;&gt;20220203 클래스형/함수형 컴포넌트, State&amp;amp;Props, Lifecycle Method, useEffect, this&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/React</category>
      <category>react</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/79</guid>
      <comments>https://light9639.tistory.com/entry/React-Class-%EB%AC%B8%EB%B2%95%EC%97%90%EC%84%9C%EC%9D%98-LifeCycle-hook-%EC%82%AC%EC%9A%A9%EB%B2%95#entry79comment</comments>
      <pubDate>Wed, 12 Apr 2023 17:29:40 +0900</pubDate>
    </item>
    <item>
      <title>[React]   Class 문법을 이용한 Components 사용법.</title>
      <link>https://light9639.tistory.com/entry/Class-React</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;A-Complete-Guide-To-Redux-Toolkit-with-Typescript.png&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d1uNYN/btskEpykiU4/KypFKIqeeEjUk1klywLYCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d1uNYN/btskEpykiU4/KypFKIqeeEjUk1klywLYCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d1uNYN/btskEpykiU4/KypFKIqeeEjUk1klywLYCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd1uNYN%2FbtskEpykiU4%2FKypFKIqeeEjUk1klywLYCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1500&quot; height=&quot;800&quot; data-filename=&quot;A-Complete-Guide-To-Redux-Toolkit-with-Typescript.png&quot; data-origin-width=&quot;1500&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;클&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;래스형 컴포넌&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; text-align: start;&quot;&gt;트는 무엇인가?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클래스형 컴포넌트는 함수형 컴포넌트와 &lt;code&gt;React Hook&lt;/code&gt;이 등장하기 이전에 사용하던 컴포넌트 형태로 &lt;code&gt;ES6(ECMA Script 2015)&lt;/code&gt;부터 추가된 &lt;code&gt;JavaScript Class&lt;/code&gt;를 바탕으로 컴포넌트를 작성한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;함수형 컴포넌트&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;성능이나 메모리 사용에 있어 약간의 이점이 있음&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;code&gt;Hook&lt;/code&gt;을 통해 &lt;code&gt;state, lifeCycle&lt;/code&gt;을 구현함&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;클래스형 컴포넌트에 비해 표현이 간결함&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;클래스형 컴포넌트&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;code&gt;ES6(ECMA Script 2015)&lt;/code&gt;부터 추가된 &lt;code&gt;Class&lt;/code&gt;를 통해 컴포넌트 선언&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;함수형 컴포넌트와 &lt;code&gt;Hook&lt;/code&gt;이 등장하기 전에 폭넓게 사용되었기 때문에, 레거시 코드에서 자주 발견할 수 있는 형태&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;표현방법이 좀 더 명시적이고, 함수형 컴포넌트 보다 약간 기능이 더 많음&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;클래스형 컴포넌트 생명주기&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1077&quot; data-origin-height=&quot;597&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GmigQ/btskA5Vao0b/fPnKt30B6vTFhvDnUngFU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GmigQ/btskA5Vao0b/fPnKt30B6vTFhvDnUngFU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GmigQ/btskA5Vao0b/fPnKt30B6vTFhvDnUngFU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGmigQ%2FbtskA5Vao0b%2FfPnKt30B6vTFhvDnUngFU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1077&quot; height=&quot;597&quot; data-origin-width=&quot;1077&quot; data-origin-height=&quot;597&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;마운트 단계 (Mounting)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;컴포넌트 객체가 최초로 생성되어 &lt;code&gt;DOM&lt;/code&gt;에 삽입될 때 한 번 실행된다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;업데이트 단계 (Updating)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;props, state&lt;/code&gt;&lt;span style=&quot;color: #000000;&quot;&gt;가 변경될 때 마다 수행되며 변경사항을 화면에 표시한다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;소멸 단계 (Unmounting)&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;컴포넌트가 &lt;code&gt;DOM&lt;/code&gt;상에서 제거될 때 한 번 호출된다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;오류 처리&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;위 생명주기에 나타나지 않았지만 오류가 발생하면 아래 메서드가 순차적으로 호출됨&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #666666; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;static getDerivedStateFromError()&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;componentDidCatch()&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;실제 사용 예제&lt;/b&gt;&lt;/h2&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681287917089&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Modal2 extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      name : 'kim',
      age : 20
    }
  }

  render(){
    return (
      &amp;lt;div&amp;gt;
          &amp;lt;div&amp;gt;안녕 { this.state.age }
            &amp;lt;button onClick={()=&amp;gt;{ this.setState({age : 21}) }}&amp;gt;버튼&amp;lt;/button&amp;gt;
          &amp;lt;/div&amp;gt;
          &amp;lt;div&amp;gt;안녕 { this.props.프롭스이름 }&amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    )
  }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;class&lt;/code&gt;는 변수, 함수를 보관하는 박스와 같습니다. &lt;code&gt;extends&lt;/code&gt;는 기존 &lt;code&gt;class&lt;/code&gt;안에 있던 변수나 함수를 복사해주는 문법이다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;React.Component&lt;/code&gt;라는 &lt;code&gt;class&lt;/code&gt;안에 있던 변수와 함수들을 복사해야 컴포넌트라고 인정해주기 때문에 &lt;code&gt;class&lt;/code&gt; 어쩌구 &lt;code&gt;extends React.Component&lt;/code&gt;라고 쓰는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;state&lt;/code&gt;를 변경하고 싶으면 &lt;code&gt;this.setState&lt;/code&gt;라는 기본함수를 가져다가 사용하면 된다. 소괄호안에 새로운 &lt;code&gt;state&lt;/code&gt; 넣으면 그 값으로 기존 &lt;code&gt;state&lt;/code&gt;를 업데이트한다. 완전히 값을 바꾸는 것이 아니라 차이점만 비교해서 잘 변경해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약, 부모가 보낸 &lt;code&gt;props&lt;/code&gt;를 출력하고 싶다면.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;constructor, super&lt;/code&gt;에 &lt;code&gt;props&lt;/code&gt; 파라미터를 등록하고.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;this.props&lt;/code&gt; 쓰면 &lt;code&gt;props&lt;/code&gt;가 나온다.&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;클래스형 컴포넌트의 한계&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;클래스형 컴포넌트가 명시적이고 기능이 더 많음에도 불구하고 함수형 컴포넌트로 대체된 데에는 몇가지 이유가 있습니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;의례적으로 작성해야하는 코드량이 많음.&lt;/code&gt; 클래스형 컴포넌트는 &lt;code&gt;React Component&lt;/code&gt;를 상속해야하며 라이프사이클 메서드를 정의해야하며 준수해야하는 규칙이 상대적으로 더 많습니다. 아래는 함수형 컴포넌트와 클래스형 컴포넌트의 차이를 보여줍니다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;성능상 불리함.&lt;/code&gt; 컴파일러가 코드 압축과 최적화를 진행하기에 약간 더 어려운 어려운 구조이며 , 메모리 사용량도 좀 더 높습니다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;공통로직 관리가 어려움.&lt;/code&gt; 클래스형 컴포넌트에서는 공통로직을 관리하기 위해 &lt;code&gt;Higher Order Component&lt;/code&gt; 패턴이나 &lt;code&gt;Render Props&lt;/code&gt; 패턴을 주로 사용하며, 이러한 패턴들은 대체로 복잡성이 높습니다. 함수형 컴포넌트는 그 자체가 함수이기 때문에 공통로직 관리가 간편합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://points.tistory.com/88&quot;&gt;[React] 클래스형 컴포넌트&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://react.vlpt.us/basic/24-class-component.html&quot;&gt;24. 클래스형 컴포넌트&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://codingapple.com/course/react-basic/&quot;&gt;class를 이용한 옛날 React 문법&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/React</category>
      <category>react</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/78</guid>
      <comments>https://light9639.tistory.com/entry/Class-React#entry78comment</comments>
      <pubDate>Wed, 12 Apr 2023 17:27:58 +0900</pubDate>
    </item>
    <item>
      <title>[SCSS]  ️ React, Vue에서 SCSS 사용하는 방법.</title>
      <link>https://light9639.tistory.com/entry/React-Vue%EC%97%90%EC%84%9C-SCSS-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (3).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A4MO7/btr0HtgGxDP/n2vw493FDR4BV2B7EM48Mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A4MO7/btr0HtgGxDP/n2vw493FDR4BV2B7EM48Mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A4MO7/btr0HtgGxDP/n2vw493FDR4BV2B7EM48Mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA4MO7%2Fbtr0HtgGxDP%2Fn2vw493FDR4BV2B7EM48Mk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img (3).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;React, Vue에서의 SCSS 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;SCSS&lt;/code&gt;는 &lt;code&gt;CSS 전처리기(Preprocesser)&lt;/code&gt;라고도 합니다. &lt;code&gt;CSS&lt;/code&gt;를 좀 더 프로그래밍 언어스럽게 작성 가능하여, CSS에서 &lt;code&gt;변수, 연산자, 함수, extend, import&lt;/code&gt; 등을 사용할 수 있다. 단, 브라우저는 SCSS 문법을 모르기 때문에 SCSS로 작성한 파일을 다시 CSS로 컴파일해야 한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Sass 라이브러리 설치&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 &lt;code&gt;Sass&lt;/code&gt; 라이브러리를 설치한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681107653016&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Sass 라이브러리 설치하기.
$ npm install sass --save
# or
$ yarn add sass&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;React에서의 SCSS 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Scss 문서 생성하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 &lt;code&gt;App.scss&lt;/code&gt; 문서를 생성하면 &lt;code&gt;App.js&lt;/code&gt;에 &lt;code&gt;SCSS&lt;/code&gt; 스타일링이 적용된 것을 확인할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;SCSS&quot;&gt;SCSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686750071483&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.App {
   background: yellow;
   color: black;
   padding: 1rem;
   
   .header01 {
     background: white;
     color: black;
     font-size: 3rem;
     text-align: center;
     padding: 1rem;
   }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;React 문서 생성.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #666666; text-align: start;&quot;&gt;&lt;code&gt;SASS 라이브러리&lt;/code&gt; 설치가 완료되었다면 &lt;code&gt;App.js&lt;/code&gt; 문서에서 &lt;code&gt;SCSS&lt;/code&gt; 파일을 &lt;code&gt;import&lt;/code&gt; 한다.&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686750025068&quot; class=&quot;javascript&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import React from 'react';
import './App.scss';

const App = () =&amp;gt; {
  return (
    &amp;lt;div className=&quot;App&quot;&amp;gt;
      &amp;lt;h1 className=&quot;Title&quot;&amp;gt;Scss Component&amp;lt;/h1&amp;gt; 
    &amp;lt;/div&amp;gt;
  );
};

export default App;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 &lt;code&gt;module.scss&lt;/code&gt; 방식으로 사용하고 싶다면 &lt;code&gt;App.scss&lt;/code&gt; 문서를 &lt;code&gt;App.module.scss&lt;/code&gt;로 이름을 변경한 다음. &lt;code&gt;App.js&lt;/code&gt;를 다음과 같이 작성하면 &lt;code&gt;module&lt;/code&gt; 방식으로 사용이 가능하다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;color: #000000; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;import React from 'react';
import styles from './App.module.scss';

const App = () =&amp;gt; {
  return (
    &amp;lt;div className={styles.App}&amp;gt;
      &amp;lt;h1 className={styles.Title}&amp;gt;Scss Component&amp;lt;/h1&amp;gt; 
    &amp;lt;/div&amp;gt;
  );
};

export default App;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Vue에서의 SCSS 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Vue 문서에서 SCSS 사용하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Vue.js&lt;/code&gt; 문서에서 &lt;code&gt;SCSS&lt;/code&gt;를 사용하려면 밑의 코드와 같이 사용하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Vue&quot;&gt;Vue&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681107514570&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style lang=&quot;scss&quot;&amp;gt;
$backgroundColor: red;

.className: {
    background: $backgroundColor;
}
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;background-color: #ffffff; color: #8a837e; text-align: left;&quot;&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;SE-a1df0913-2021-4e5c-99f0-88318207ae97&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;전역 범위에서의 사용&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;
&lt;p id=&quot;SE-4d6bec3d-9388-4b70-8413-8cef667382cd&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;SCSS&lt;/code&gt;를 일반적으로 사용 할 때&amp;nbsp;&lt;code&gt;variables&lt;/code&gt; 또는 &lt;code&gt;mixin&lt;/code&gt;, 함수를 별도의 &lt;code&gt;SCSS&lt;/code&gt; 파일로 분리하여 사용하므로 모든 파일에서 &lt;code&gt;@import&lt;/code&gt;를 반복적으로 실행하는 불편함이 있다.&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;SCSS&quot;&gt;SCSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1681107564686&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style lang=&quot;scss&quot;&amp;gt;
    @import &quot;@/style/variables&quot;;
    @import &quot;@/style/mixin&quot;;
    @import &quot;@/style/functions&quot;;
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; text-align: left;&quot;&gt;이 문제를 해결하려면 밑의 코드와 같이 사용하면 전역 범위로써 &lt;code&gt;SCSS&lt;/code&gt;를 사용할 수 있다. &lt;/span&gt;이런 반복적인 작업을 피하기 위해서는 위의 파일들을 전역 범위에서 사용할 수 있도록 바꿔줘야 한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;수정하기 전에 &lt;code&gt;vue-cli의 2.x&lt;/code&gt;에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;webpack.config.js&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;파일이 루트 디렉토리에 있었으나, &lt;code&gt;3.x&lt;/code&gt;에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;vue.config.js&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;파일을 생성하여 설정해야 한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #212121; color: #e0e0e0; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;// vue.config.js

module.exports = {
  // options
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;loaderOptions&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;라는 &lt;code&gt;vue-loader&lt;/code&gt; 의 내부 구성을 변경하는데 사용할 수 있는 &lt;code&gt;CSS&lt;/code&gt; 옵션이 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Vue&quot;&gt;Vue&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #212121; color: #e0e0e0; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;// vue.config.js

module.exports = {
  css: {
    loaderOptions: {
      sass: {
        data: `
          @import &quot;@/styles/_variables.scss&quot;;
          @import &quot;@/styles/_mixins.scss&quot;;
        `
      }
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;background-color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;위의 설정을 통해서 &lt;code&gt;sass-loader&lt;/code&gt;에 추가된 모든 코드는 전역 범위에서 사용할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;SCSS&quot;&gt;SCSS&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-language=&quot;scss&quot;&gt;
&lt;pre class=&quot;css&quot; style=&quot;background-color: #212121; color: #e0e0e0; text-align: left;&quot; data-ke-language=&quot;css&quot;&gt;&lt;code&gt;// styles/_variables.scss
$bgColor: red;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Vue&quot;&gt;Vue&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #212121; color: #e0e0e0; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;// *.vue

&amp;lt;script lang=&quot;scss&quot;&amp;gt;
.className {
  background: $bgColor;
}
&amp;lt;script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;vue-cli-2x-라면&quot; style=&quot;background-color: #ffffff; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;vue-cli 2.x 라면&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;vue-cli 2.x&lt;/code&gt; 버전이면 &lt;code&gt;Webpack&lt;/code&gt; 구성 파일의 &lt;code&gt;vue-loader&lt;/code&gt; 옵션을 수정해야 한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Vue&quot;&gt;Vue&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; style=&quot;background-color: #212121; color: #e0e0e0; text-align: left;&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;// webpack.config.js
{
  test: \/.scss&amp;amp;/,
  use: [
    &quot;vue-styles-loader&quot;,
    &quot;css-loader&quot;,
    {
      loader: &quot;scss-loader&quot;,
      options: {
        data: `
          @import &quot;@/styles/_variables.scss&quot;;
          @import &quot;@/styles/_mixins.scss&quot;;
        `
      }
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a style=&quot;user-select: auto;&quot; href=&quot;https://blog.naver.com/PostView.nhn?blogId=youngchanmm&amp;amp;logNo=221900949713&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Vue.js에서 Sass / Scss 사용하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://codingmania.tistory.com/339&quot;&gt;[React] 리액트(React)에서 SCSS 사용하는 방법 &amp;amp; 설정 방법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://yilpe93.github.io/vue/vue-set-scss/&quot;&gt;Vue. vue-cli에서 SCSS 적용과 Global SCSS 적용&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <category>react</category>
      <category>SCSS</category>
      <category>vue</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/63</guid>
      <comments>https://light9639.tistory.com/entry/React-Vue%EC%97%90%EC%84%9C-SCSS-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry63comment</comments>
      <pubDate>Thu, 23 Feb 2023 15:21:31 +0900</pubDate>
    </item>
    <item>
      <title>[WebSite]  ️ 웹 개발을 할 때 자주 참고하는 사이트 모음.</title>
      <link>https://light9639.tistory.com/entry/%EC%9B%B9-%EA%B0%9C%EB%B0%9C%EC%9D%84-%ED%95%A0-%EB%95%8C-%EC%9E%90%EC%A3%BC-%EC%B0%B8%EA%B3%A0%ED%95%98%EB%8A%94-%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%AA%A8%EC%9D%8C</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;4884785.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CArnh/btr5NwlpFk9/1aBBj1DqUEke7aTRFQ0Kz0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CArnh/btr5NwlpFk9/1aBBj1DqUEke7aTRFQ0Kz0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CArnh/btr5NwlpFk9/1aBBj1DqUEke7aTRFQ0Kz0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCArnh%2Fbtr5NwlpFk9%2F1aBBj1DqUEke7aTRFQ0Kz0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3000&quot; height=&quot;2000&quot; data-filename=&quot;4884785.jpg&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&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;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;@Web's CSS&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드펜의 자료들 중 좋은 자료들을 모아 놓은 티스토리 블로그 사이트. 매우 유용한 자료가 많아서 애용하는 블로그다.&lt;/p&gt;
&lt;figure id=&quot;og_1677075519597&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;@web's CSS&quot; data-og-description=&quot;코드펜 레퍼런스 사이트입니다.&quot; data-og-host=&quot;wsss.tistory.com&quot; data-og-source-url=&quot;https://wsss.tistory.com/&quot; data-og-url=&quot;https://wsss.tistory.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cVYxeg/hyRIrq8UPr/WC4UcklT8yZCacgM62bWy1/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/k7nAn/hyRInI1QTc/Os1k9c5ja6WoxigIwmK3gk/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bYj7Ek/hyRIvNQ2Hx/kVAq3RS9eS2xYVdU8KpEr1/img.jpg?width=650&amp;amp;height=478&amp;amp;face=300_185_366_257&quot;&gt;&lt;a href=&quot;https://wsss.tistory.com/&quot; data-source-url=&quot;https://wsss.tistory.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cVYxeg/hyRIrq8UPr/WC4UcklT8yZCacgM62bWy1/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/k7nAn/hyRInI1QTc/Os1k9c5ja6WoxigIwmK3gk/img.jpg?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bYj7Ek/hyRIvNQ2Hx/kVAq3RS9eS2xYVdU8KpEr1/img.jpg?width=650&amp;amp;height=478&amp;amp;face=300_185_366_257');&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;@web's CSS&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;코드펜 레퍼런스 사이트입니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wsss.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;wsss.tistory.com_.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2Utfv/btr0nDLGS99/LKN3V91PABDPTYRZfaaa11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2Utfv/btr0nDLGS99/LKN3V91PABDPTYRZfaaa11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2Utfv/btr0nDLGS99/LKN3V91PABDPTYRZfaaa11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2Utfv%2Fbtr0nDLGS99%2FLKN3V91PABDPTYRZfaaa11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3840&quot; height=&quot;2022&quot; data-filename=&quot;wsss.tistory.com_.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Inpa Dev&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수많은 개발자 블로그들이 있지만 그 중에서 인지도가 매우 높은 사이트이다. 포스팅의 내용이 매우 알차며 프론트, 백엔드 정보들을 많이 얻을 수 있다.&lt;/p&gt;
&lt;figure id=&quot;og_1677075524552&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;Inpa Dev  &amp;zwj; &quot; data-og-description=&quot;성장 욕구가 가파른 초보 개발자로서 공부한 내용을 쉽게 풀어쓴 기술 블로그를 운영하고 있습니다.&quot; data-og-host=&quot;inpa.tistory.com&quot; data-og-source-url=&quot;https://inpa.tistory.com/&quot; data-og-url=&quot;https://inpa.tistory.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bu9XN4/hyRIxkAg8i/HGNSBNhFeXNfIEVPm748W1/img.jpg?width=508&amp;amp;height=508&amp;amp;face=0_0_508_508,https://scrap.kakaocdn.net/dn/i8Abd/hyRIBUQnon/iJ2JKADLp6QB2ah1Ouadh1/img.jpg?width=508&amp;amp;height=508&amp;amp;face=0_0_508_508&quot;&gt;&lt;a href=&quot;https://inpa.tistory.com/&quot; data-source-url=&quot;https://inpa.tistory.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bu9XN4/hyRIxkAg8i/HGNSBNhFeXNfIEVPm748W1/img.jpg?width=508&amp;amp;height=508&amp;amp;face=0_0_508_508,https://scrap.kakaocdn.net/dn/i8Abd/hyRIBUQnon/iJ2JKADLp6QB2ah1Ouadh1/img.jpg?width=508&amp;amp;height=508&amp;amp;face=0_0_508_508');&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;Inpa Dev  &amp;zwj; &lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;성장 욕구가 가파른 초보 개발자로서 공부한 내용을 쉽게 풀어쓴 기술 블로그를 운영하고 있습니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;inpa.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;inpa.tistory.com_.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bK74zR/btr0pwreUHt/yEfDm9Ex88BOh6rP1AKZCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bK74zR/btr0pwreUHt/yEfDm9Ex88BOh6rP1AKZCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bK74zR/btr0pwreUHt/yEfDm9Ex88BOh6rP1AKZCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbK74zR%2Fbtr0pwreUHt%2FyEfDm9Ex88BOh6rP1AKZCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3840&quot; height=&quot;2022&quot; data-filename=&quot;inpa.tistory.com_.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;inpa.tistory.com_ (1).png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bK7uNe/btr0ok5Xkte/iRgX93XaHUVj6cEPoakHrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bK7uNe/btr0ok5Xkte/iRgX93XaHUVj6cEPoakHrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bK7uNe/btr0ok5Xkte/iRgX93XaHUVj6cEPoakHrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbK7uNe%2Fbtr0ok5Xkte%2FiRgX93XaHUVj6cEPoakHrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3840&quot; height=&quot;2022&quot; data-filename=&quot;inpa.tistory.com_ (1).png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Codepen&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4d5156;&quot;&gt;코드펜은 사용자가 만든 &lt;code&gt;HTML&lt;/code&gt;, &lt;code&gt;CSS&lt;/code&gt;, &lt;code&gt;Javascript&lt;/code&gt;코드를 테스트하고 시연하기 위한 온라인 커뮤니티이다. 주로 프론트엔드 관련 자료들이 올라오며 매우 다양하고 많은 자료들이 있어 자주 참고하는 사이트이다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1677075528887&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;CodePen&quot; data-og-description=&quot;An online code editor, learning environment, and community for front-end web development using HTML, CSS and JavaScript code snippets, projects, and web applications.&quot; data-og-host=&quot;codepen.io&quot; data-og-source-url=&quot;https://codepen.io/trending&quot; data-og-url=&quot;https://codepen.io/trending&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bHMnw6/hyRIqZ473b/YY4tcqATLqpJ3NQBkg1Y61/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://codepen.io/trending&quot; data-source-url=&quot;https://codepen.io/trending&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bHMnw6/hyRIqZ473b/YY4tcqATLqpJ3NQBkg1Y61/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;CodePen&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;An online code editor, learning environment, and community for front-end web development using HTML, CSS and JavaScript code snippets, projects, and web applications.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;codepen.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;codepen.io_trending.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kAx1m/btr0klLnM2Y/KcfeCRB8lxQaeV1pqap0KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kAx1m/btr0klLnM2Y/KcfeCRB8lxQaeV1pqap0KK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kAx1m/btr0klLnM2Y/KcfeCRB8lxQaeV1pqap0KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkAx1m%2Fbtr0klLnM2Y%2FKcfeCRB8lxQaeV1pqap0KK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3840&quot; height=&quot;2022&quot; data-filename=&quot;codepen.io_trending.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;JQuery-Plugins.net&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;code&gt;jQuery&lt;/code&gt;를 이용한 수많은 라이브러리를 모아 놓은 사이트이다. 만약 &lt;code&gt;jQuery&lt;/code&gt; 예제들이나 &lt;code&gt;Javascript&lt;/code&gt; 예제를 찾는다면, 이 사이트를 방문해서 필요한 기능이 있는지 찾아보면 매우 좋은 자료들을 얻을 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1677075533014&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;jQuery Plugins, jQuery Tutorials, jQuery Articles, jQuery Examples, jQuery Demos&quot; data-og-description=&quot;A tutorial about creating shuffling type animation with various effects for a geeky terminal look.&quot; data-og-host=&quot;jquery-plugins.net&quot; data-og-source-url=&quot;https://jquery-plugins.net/&quot; data-og-url=&quot;https://jquery-plugins.net/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://jquery-plugins.net/&quot; data-source-url=&quot;https://jquery-plugins.net/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;jQuery Plugins, jQuery Tutorials, jQuery Articles, jQuery Examples, jQuery Demos&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A tutorial about creating shuffling type animation with various effects for a geeky terminal look.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;jquery-plugins.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;jquery-plugins.net_.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FT23E/btr0qXWdvQR/PZ4xIJ14bkSKQpj3cogDYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FT23E/btr0qXWdvQR/PZ4xIJ14bkSKQpj3cogDYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FT23E/btr0qXWdvQR/PZ4xIJ14bkSKQpj3cogDYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFT23E%2Fbtr0qXWdvQR%2FPZ4xIJ14bkSKQpj3cogDYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3840&quot; height=&quot;2022&quot; data-filename=&quot;jquery-plugins.net_.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;인프런&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4d5156;&quot;&gt;프론트엔드와 백엔드 만이 아니라 인공지능, 데이터, 마케팅, 디자인, 엑셀 실무 등 입문부터 실전에서 쓰이는 기술들을 배울 수 있는 사이트이다. 개인적으로도 여러 강의들을 듣기 때문에 매우 유용한 사이트로 추천한다.&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1677075593694&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;인프런 - 미래의 동료들과 함께 성장하는 곳 | IT 정보 플랫폼&quot; data-og-description=&quot;프로그래밍, 인공지능, 데이터, 마케팅, 디자인, 엑셀 실무 등 입문부터 실전까지 업계 최고 선배들에게 배울 수 있는 곳. 우리는 성장 기회의 평등을 추구합니다.&quot; data-og-host=&quot;www.inflearn.com&quot; data-og-source-url=&quot;https://www.inflearn.com/&quot; data-og-url=&quot;https://www.inflearn.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kMaOS/hyRIw6870s/7tmuwkXopaI3UjI3Fn4Se0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=751_416_794_464,https://scrap.kakaocdn.net/dn/rdMm7/hyRIzW6Kav/G2CkPNPniAkGb9EGGlIXe1/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=751_416_794_464&quot;&gt;&lt;a href=&quot;https://www.inflearn.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.inflearn.com/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kMaOS/hyRIw6870s/7tmuwkXopaI3UjI3Fn4Se0/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=751_416_794_464,https://scrap.kakaocdn.net/dn/rdMm7/hyRIzW6Kav/G2CkPNPniAkGb9EGGlIXe1/img.jpg?width=1200&amp;amp;height=628&amp;amp;face=751_416_794_464');&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;인프런 - 미래의 동료들과 함께 성장하는 곳 | IT 정보 플랫폼&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;프로그래밍, 인공지능, 데이터, 마케팅, 디자인, 엑셀 실무 등 입문부터 실전까지 업계 최고 선배들에게 배울 수 있는 곳. 우리는 성장 기회의 평등을 추구합니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.inflearn.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;www.inflearn.com_.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ecBMcF/btr0meyzSbX/qOdb5bhoHS6AXxOL0lqMPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ecBMcF/btr0meyzSbX/qOdb5bhoHS6AXxOL0lqMPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ecBMcF/btr0meyzSbX/qOdb5bhoHS6AXxOL0lqMPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FecBMcF%2Fbtr0meyzSbX%2FqOdb5bhoHS6AXxOL0lqMPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3840&quot; height=&quot;2022&quot; data-filename=&quot;www.inflearn.com_.png&quot; data-origin-width=&quot;3840&quot; data-origin-height=&quot;2022&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Website</category>
      <category>website</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/61</guid>
      <comments>https://light9639.tistory.com/entry/%EC%9B%B9-%EA%B0%9C%EB%B0%9C%EC%9D%84-%ED%95%A0-%EB%95%8C-%EC%9E%90%EC%A3%BC-%EC%B0%B8%EA%B3%A0%ED%95%98%EB%8A%94-%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%AA%A8%EC%9D%8C#entry61comment</comments>
      <pubDate>Wed, 22 Feb 2023 22:45:51 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]   TS-Node, Express 사용법.</title>
      <link>https://light9639.tistory.com/entry/TS-Node-Express-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (5).png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mjDlU/btr0GKJ2hU8/59LqBySxC2kW6EcNnyet90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mjDlU/btr0GKJ2hU8/59LqBySxC2kW6EcNnyet90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mjDlU/btr0GKJ2hU8/59LqBySxC2kW6EcNnyet90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmjDlU%2Fbtr0GKJ2hU8%2F59LqBySxC2kW6EcNnyet90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;600&quot; data-filename=&quot;img (5).png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Package.json 생성&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;TS-Node&lt;/b&gt;를 사용하기 전에 &lt;code&gt;Package.json&lt;/code&gt;을 생성한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;bash&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt;// 'package.json' 다음 명령어로 생성하고 전부다 enter 처리하면 된다.
$ yarn init

// 'package.json' 생성을 자동으로 하고 싶다면
$ yarn init -y&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #00a8f2;&quot;&gt;&lt;/span&gt;설치하기&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;Package.json&lt;/code&gt;을 생성하였다면 &lt;b&gt;TS-Node&lt;/b&gt; 관련 패키지를 설치한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1677152254642&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 'Express', 'typescript', 'nodemon' 설치하기.
$ npm install express @types/express @types/node nodemon ts-node typescript
# or
$ yarn add express @types/express @types/node nodemon ts-node typescript&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;3-tsconfigjson-파일-생성&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Tsconfig.json 파일 생성&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li id=&quot;3-tsconfigjson-파일-생성&quot;&gt;이후 &lt;code&gt;Tsconfig.json&lt;/code&gt; 파일을 생성한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;// 'tsconfig.json' 생성하기.
$ npx tsc --init&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Package.json 작성&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;Package.json&lt;/code&gt;에서 &lt;code&gt;script&lt;/code&gt; 부분을 다음과 같이 작성한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1677152195089&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 'scripts' 수정하기.
&quot;scripts&quot;: {
    &quot;start&quot;: &quot;node ./build/index.js&quot;, // 컴파일된 js파일로 시작
    &quot;build&quot;: &quot;tsc -p .&quot;,  // typescript를 javascript로 빌드
    &quot;dev&quot;: &quot;nodemon ./src/index.ts&quot;
},&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Index.ts 작성&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;Index.ts&lt;/code&gt;를 생성한 다음 다음과 같이 작성한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1677152137095&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import express, { Request, Response, NextFunction } from &quot;express&quot;;
const app = express();

app.get(&quot;/&quot;, (req: Request, res: Response, next: NextFunction): void =&amp;gt; {
  res.json({ message: &quot;Please Like the Video!&quot; });
});

app.listen(&quot;3001&quot;, (): void =&amp;gt; {
  console.log(&quot;Server Running!&quot;);
});&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;6-서버-시작&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;서버 시작&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서버를 작동시키려면 작성을 전부 완료한 후 다음 명령어로 시작하면 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;// 시작 명령어.
$ yarn dev&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://velog.io/@qhgus/Node-Express-TypeScript-%ED%99%98%EA%B2%BD-%EC%84%B8%ED%8C%85&quot;&gt;TypeScript와 함께 Node.js + Express 환경 세팅(feat. npm, yarn)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://hckcksrl.medium.com/typescript-%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4-express-node-js-%EC%84%B8%ED%8C%85-12bbdd62513f&quot;&gt;TypeScript 을 사용해 Express , Node.js 세팅&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://spacebike.tistory.com/57&quot;&gt;Typescript + Node.js + Express 환경 설정&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;</description>
      <category>Backend/Node.js</category>
      <category>express</category>
      <category>node.js</category>
      <category>ts-node</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/60</guid>
      <comments>https://light9639.tistory.com/entry/TS-Node-Express-%EC%82%AC%EC%9A%A9%EB%B2%95#entry60comment</comments>
      <pubDate>Mon, 20 Feb 2023 23:36:30 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]   TS-Node 사용법.</title>
      <link>https://light9639.tistory.com/entry/Ts-Node-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (5).png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byjHKN/btr0BCltU4t/KojtW3D5TWIIHmmiceAFiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byjHKN/btr0BCltU4t/KojtW3D5TWIIHmmiceAFiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byjHKN/btr0BCltU4t/KojtW3D5TWIIHmmiceAFiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyjHKN%2Fbtr0BCltU4t%2FKojtW3D5TWIIHmmiceAFiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;600&quot; data-filename=&quot;img (5).png&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;TS-Node는 무엇인가?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f3c000;&quot;&gt;&lt;b&gt;JavaScript&lt;/b&gt;&lt;/span&gt;를 웹이 아닌 콘솔에서 실행하기 위해서는 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Node.js&lt;/b&gt;&lt;/span&gt;를 설치한 후에 &lt;code&gt;node 자바스크립트파일명.js&lt;/code&gt;를 통하여 실행할 수 있다. 물론 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;TypeScript&lt;/b&gt;&lt;/span&gt; 파일도 자바스크립트 문법으로만 작성을 한다면 &lt;code&gt;node 타입스크립트파일명.ts&lt;/code&gt;를 통하여 실행이 가능하긴 하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 타입스크립트 문법으로 작성된 &lt;code&gt;.ts&lt;/code&gt; 파일은&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Node.js&lt;/b&gt;&lt;/span&gt;에서 실행이 되지 않는다. 왜냐하면&amp;nbsp;Node.js는&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #f3c000;&quot;&gt;JavaScript&lt;/span&gt;&lt;/b&gt; 파일만 해석할 수 있지,&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;TypeScript&lt;/b&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;파일은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;해석할 수 없기 때문이다. 그래서&amp;nbsp;TypeScript 파일을&amp;nbsp;Node.js에서 실행하기 위해서는 TS-N&lt;span style=&quot;background-color: #ffffff;&quot;&gt;ode를 설치해야 된다.&amp;nbsp;TS-N&lt;span style=&quot;background-color: #ffffff;&quot;&gt;ode&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;는TypeScript 코드를 JavaScript로 컴파일하지 않고 직접 실행시키는 라이브러리이다. 그럼 이번 포스팅에서는TS-N&lt;span style=&quot;background-color: #ffffff;&quot;&gt;ode&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;를 설치하고 &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;사용하는 방&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;법에 대해 간략히 포스팅해보겠다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;TS-Node 설치하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 터미널에&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;TS-N&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;ode&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;/span&gt;를 전역변수로 설치한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676815249947&quot; class=&quot;crmsh&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install -g ts-node&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;TypeScript 실행&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전역변수로 설치가 완료되었다면, 터미널에 아래 명령어를 입력하면 기존&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Node.js&lt;/b&gt;&lt;/span&gt; 처럼 &lt;code&gt;.ts&lt;/code&gt; 파일을 사용할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676815249947&quot; class=&quot;crmsh&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ts-node 타입스크립트파일명.ts&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 &lt;code&gt;npm start&lt;/code&gt;나 &lt;code&gt;yarn dev&lt;/code&gt; 명령어를 통해&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;TS-N&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #555555;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;ode&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;를 사용하고 싶다면 &lt;code&gt;package.json&lt;/code&gt; 파일의 &lt;b&gt;scripts&lt;/b&gt; 부분을 다음과 같이 설정하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot;&gt;&lt;code&gt;&quot;scripts&quot;: {
   &quot;start&quot;: &quot;ts-node 타입스크립트파일명.ts&quot;
   # or
   &quot;dev&quot;: &quot;ts-node 타입스크립트파일명.ts&quot;,
},&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;nodemon과-ts-node-같이-쓰기&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Nodemon과 ts-node 같이 쓰기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Node.js&lt;/b&gt;&lt;/span&gt;를 이용하여 서버를 개발하다 보면 일정 작업이 완료된 이후 저장 시 바로바로 반영이 되지 않는 경우가 있다. 이를 위해서는 &lt;b&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;Nodemon&lt;/span&gt;&lt;/b&gt; 패키지를 활용하면 해결이 가능하다.&amp;nbsp;Nodemon 패키지는 다음 명령어로 설치한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot;&gt;&lt;code&gt;$ npm install -D nodemon ts-node
# or
$ yarn add nodemon ts-node&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치가 완료되었다면 다음 명령어를 통해 실행이 가능하다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676901402887&quot; class=&quot;css&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nodemon 타입스크립트파일명.ts&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 &lt;code&gt;package.json&lt;/code&gt;을 편집하여, &lt;code&gt;npm start&lt;/code&gt;나 &lt;code&gt;yarn dev&lt;/code&gt; 명령어를 통해 실행이 가능하다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot;&gt;&lt;code&gt;&quot;scripts&quot;: {
   &quot;start&quot;: &quot;nodemon server.ts&quot;,
   # or
   &quot;dev&quot;: &quot;nodemon server.ts&quot;,
},&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;amp;blogId=pcmola&amp;amp;logNo=222096791100&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;타입스크립트 컴파일러 &amp;amp; ts-node 설치 및 실행&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://velog.io/@yjyoo/typescript-ts-node-%EC%84%A4%EC%B9%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[typescript]&amp;nbsp;ts-node&amp;nbsp;설치&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Backend/Node.js</category>
      <category>node.js</category>
      <category>nodemon</category>
      <category>typescript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/59</guid>
      <comments>https://light9639.tistory.com/entry/Ts-Node-%EC%82%AC%EC%9A%A9%EB%B2%95#entry59comment</comments>
      <pubDate>Sun, 19 Feb 2023 23:05:35 +0900</pubDate>
    </item>
    <item>
      <title>[Next.js]  ️ SWR 상태관리 라이브러리 사용법.</title>
      <link>https://light9639.tistory.com/entry/SWR-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;swr.jpg&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Raaua/btr8JpEZ2Xo/IUO1Prql7xohEkjjkICvgK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Raaua/btr8JpEZ2Xo/IUO1Prql7xohEkjjkICvgK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Raaua/btr8JpEZ2Xo/IUO1Prql7xohEkjjkICvgK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRaaua%2Fbtr8JpEZ2Xo%2FIUO1Prql7xohEkjjkICvgK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1400&quot; height=&quot;800&quot; data-filename=&quot;swr.jpg&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;SWR은 무엇인가?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;SWR&lt;/code&gt;이란 &lt;code&gt;&amp;ldquo;Stale-While-Revalidate&amp;rdquo;&lt;/code&gt;라는 HTTP 캐시 무효화 전략에서 유래된 데이터 페칭을 위한 리액트 라이브러리이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;code&gt;SWR&lt;/code&gt;의 기본적인 작동은 우선 캐시(stale)에서 데이터를 불러오고, 검증을 위한 요청(revalidate)을 보내고, 마침내 최신 데이터로 업데이트하는 과정을 거친다. 또한 &lt;code&gt;SWR&lt;/code&gt;을 사용하는 컴포넌트들은 지속적이고 자동적으로 데이터 업데이트가 이루어짐으로써 항상 최신 상태를 유지할 수 있게 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;swr의-대표적인-장점&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SWR의 대표적인 장점&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자동화가 간단하다.&lt;/li&gt;
&lt;li&gt;가볍고 빠르기 때문에 데이터의 업데이트 또한 빠르게 이루어져 reactive한 환경을 갖출 수 있다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SSR(Server-Side-Rendering)&lt;/code&gt;, &lt;code&gt;SSG(Static-Site-Generation)&lt;/code&gt;, &lt;code&gt;ISR(Incremental-Static-Generation)&lt;/code&gt; 환경에서 모두 사용할 수 있다.&lt;/li&gt;
&lt;li&gt;최근에 나온 React 18의 Suspense 등의 기능들과 호환된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;설치-방법&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;설치 방법&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 라이브러리들과 마찬가지로, 사용하고자 하는 프로젝트 폴더 안에서 터미널에 설치 코드를 입력해주면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;dockerfile&quot;&gt;&lt;code&gt;yarn add swr
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;mipsasm&quot;&gt;&lt;code&gt;npm install swr
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;기본적인-사용법&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;기본적인 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;key-fetcher-data-error&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;key, fetcher, data, error&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;haskell&quot;&gt;&lt;code&gt;const { data, error } = useSWR(key, fetcher);
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SWR을 사용할 때에는 기본적으로 4가지만 알면 되는데, 바로 예시에 있는 &lt;code&gt;key, fetcher, data, error&lt;/code&gt; 이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 id=&quot;key&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;key&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요청을 보낼 주소를 의미한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;aspectj&quot;&gt;&lt;code&gt;const { data, error } = useSWR(&quot;/api/data&quot;, fetcher);
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;'/api/data'&lt;/code&gt;에 해당하는 부분이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 id=&quot;fetcher&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;fetcher&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;SWR&lt;/code&gt;의 핵심적인 &lt;code&gt;API&lt;/code&gt;로써,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;key&lt;/code&gt;를 받아 데이터를 반환하는 비동기 함수이다. 이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;fetcher&lt;/code&gt;에는 데이터 페칭에 사용되는 &lt;code&gt;Axios&lt;/code&gt;, &lt;code&gt;GraphQL&lt;/code&gt; 등 어떠한 라이브러리든지 사용이 가능하다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;moonscript&quot;&gt;&lt;code&gt;const fetcher = (url) =&amp;gt; fetch(url).then((res) =&amp;gt; res.json());

const { data, error } = useSWR(key, fetcher);
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 식으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;fetcher&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수를 선언하고 사용할 수도 있고,&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;moonscript&quot;&gt;&lt;code&gt;const { data, error } = useSWR(key, (url) =&amp;gt; {
  fetch(url).then((res) =&amp;gt; res.json());
});
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 식으로 아예&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;useSWR&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;함수 내에 적어주어도 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;전역으로&lt;span&gt;&amp;nbsp;&lt;/span&gt;fetcher&lt;span&gt;&amp;nbsp;&lt;/span&gt;설정하기&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매번&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;fetcher&lt;/code&gt;를 선언해주는 것은 번거로울 수 있다. 이 번거로움을 해소하기 위해 SWR은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;SWRconfig&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;컨텍스트를 통해 전역&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;fetcher&lt;/code&gt;를 설정할 수 있게 해준다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;SWRConfig value={options}&amp;gt;
  &amp;lt;Component /&amp;gt;
&amp;lt;/SWRConfig&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;SWRConfig&lt;/code&gt;로 감싸주는 컴포넌트에선&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;value&lt;/code&gt;에 전달하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;options&lt;/code&gt;의 내용이 전역 설정으로써 전달된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 활용하면 다음과 같이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;fetcher&lt;/code&gt;를 전역으로 설정할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;function App() {
  const options = {
    fetcher: (resource, init) =&amp;gt;
      fetch(resource, init).then((res) =&amp;gt; res.json()),
  };
  return (
    &amp;lt;SWRConfig value={options}&amp;gt;
      &amp;lt;Home /&amp;gt;
    &amp;lt;/SWRConfig&amp;gt;
  );
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이로써&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;&amp;lt;Home /&amp;gt;&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;컴포넌트 안에서 사용 되는 모든&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;useSWR&lt;/code&gt;은 제공된&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;fetcher&lt;/code&gt;를 사용하게 된다. 즉,&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;haskell&quot;&gt;&lt;code&gt;function Home() {
  const { data: first } = useSWR(firstKey);
  const { data: second } = useSWR(secondKey);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 두 개의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;useSWR&lt;/code&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;fetcher&lt;/code&gt;를 작성하지 않아도 상술한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;fetcher&lt;/code&gt;를 사용하고 있는 것이다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 id=&quot;data&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;data&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;useSWR&lt;/code&gt;에 의해 반환된 데이터를 의미한다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h4 id=&quot;error&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;error&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 패칭하는 과정에서 오류가 발생할 시 반환된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;사용-예시&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;사용 예시&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버로부터 사용자의 데이터를 가져와 화면에 출력해 주는 예시이다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;import useSWR from &quot;swr&quot;;

const fetcher = (url) =&amp;gt; fetch(url).then((res) =&amp;gt; res.json());

function Profile() {
  const { data, error } = useSWR(&quot;/api/user/123&quot;, fetcher);

  if (error) return &amp;lt;div&amp;gt;failed to load&amp;lt;/div&amp;gt;;
  if (!data) return &amp;lt;div&amp;gt;loading...&amp;lt;/div&amp;gt;;

  return &amp;lt;div&amp;gt;Welcome, {data.name}!&amp;lt;/div&amp;gt;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;fetcher&lt;/code&gt;를 선언하고,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;data&lt;/code&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;error&lt;/code&gt;를 받아온 후, 에러와 데이터를 활용하여 이름을 출력할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://fe-developers.kakaoent.com/2022/220224-data-fetching-libs/&quot;&gt;React에서 서버 데이터를 최신으로 관리하기(React Query, SWR)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://techblog.wclub.co.kr/posts/0015.how_are_we_using_SWR/SWR%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B3%A0%20%EC%9E%88%EC%9D%84%EA%B9%8C&quot;&gt;SWR을 어떻게 사용하고 있을까&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://hoo-dev.tistory.com/134&quot;&gt;[Next.js] 상태 관리 라이브러리 SWR이란?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/Next.js</category>
      <category>Next.js</category>
      <category>react</category>
      <category>swr</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/58</guid>
      <comments>https://light9639.tistory.com/entry/SWR-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-%EC%82%AC%EC%9A%A9%EB%B2%95#entry58comment</comments>
      <pubDate>Sun, 19 Feb 2023 22:40:57 +0900</pubDate>
    </item>
    <item>
      <title>[VSCode]   자동 저장 설정하기.</title>
      <link>https://light9639.tistory.com/entry/VsCode-%EC%9E%90%EB%8F%99-%EC%A0%80%EC%9E%A5-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img.webp&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XrBw7/btr0KQ922Bk/BZ6dlDqg3qLpK2aHZPuiuk/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XrBw7/btr0KQ922Bk/BZ6dlDqg3qLpK2aHZPuiuk/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XrBw7/btr0KQ922Bk/BZ6dlDqg3qLpK2aHZPuiuk/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXrBw7%2Fbtr0KQ922Bk%2FBZ6dlDqg3qLpK2aHZPuiuk%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1600&quot; height=&quot;900&quot; data-filename=&quot;img.webp&quot; data-origin-width=&quot;1600&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;VSCode&lt;/code&gt;로 코드를 작성할 때 계속 저장하면서 작업을 해야하는 경우가 있다. 왜냐하면 작업 도중 &lt;code&gt;VSCode&lt;/code&gt;가 오류를 일으키거나 입력이 잘못되어 작업하던 자료가 없어지는 상황이 일어나기 때문이다. 이 문제를 해결하려면&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;VSCode&lt;/code&gt;에 있는 자동저장 기능을 켜 놓으면 문제를 해결할 수 있다.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;div id=&quot;aswift_6_host&quot;&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;&lt;/div&gt;
&lt;h2 id=&quot;h&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;파일 자동 저장 설정하기&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;VSCode 설정하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 &lt;code&gt;VSCode&lt;/code&gt; 설정파일에서 자동저장을 변경해야 하는데 설정에 들어가는 3가지 방법이 있다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;맨 위 상단에 &lt;code&gt;파일&lt;/code&gt;에서 &lt;code&gt;기본설정&lt;/code&gt; 클릭 후 &lt;code&gt;설정&lt;/code&gt; 메뉴를 클릭하는 법.&lt;/li&gt;
&lt;li&gt;화면 왼쪽 하단의 &lt;code&gt;톱니바퀴 모양&lt;/code&gt;을 클릭하는 법&lt;/li&gt;
&lt;li&gt;단축키&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;CTRL+,&lt;/code&gt;를 클릭하는 법이 있다.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Auto Save 설정하기&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;설정에 들어갔다면 &lt;code&gt;사용자 - 텍스트 편집기 - 파일&lt;/code&gt;로 들어간다다. 이후&amp;nbsp;&lt;code&gt;Auto Save&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;란에서 자동저장 설정을 할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1155&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/co5HQa/btrZJcfy64J/FUKLkvnsKUBalZJ89hhkX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/co5HQa/btrZJcfy64J/FUKLkvnsKUBalZJ89hhkX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/co5HQa/btrZJcfy64J/FUKLkvnsKUBalZJ89hhkX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fco5HQa%2FbtrZJcfy64J%2FFUKLkvnsKUBalZJ89hhkX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1155&quot; height=&quot;620&quot; data-origin-width=&quot;1155&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Auto Save&lt;/code&gt;에는 총 4가지의 설정값이 있다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;off&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: 자동저장 안 하기&lt;/li&gt;
&lt;li&gt;&lt;code&gt;after delay&lt;/code&gt;: &lt;code&gt;Auto Save Delay&lt;/code&gt;에서 설정한 시간이 지난 경우 자동저장하기&lt;/li&gt;
&lt;li&gt;&lt;code&gt;onFocusChange&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: 에디터 밖으로 포커스를 이동하면 자동 저장하기&lt;/li&gt;
&lt;li&gt;&lt;code&gt;onWindowChange&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;: &lt;code&gt;VSCode&lt;/code&gt; 에디터 밖으로 포커스를 이동하면 자동저장하기&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Auto Save Delay 설정하기&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;다운로드 (1)1.png&quot; data-origin-width=&quot;1155&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OX36t/btr9mSSXIfr/oYX83YAhExkiOOENlKq5e1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OX36t/btr9mSSXIfr/oYX83YAhExkiOOENlKq5e1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OX36t/btr9mSSXIfr/oYX83YAhExkiOOENlKq5e1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOX36t%2Fbtr9mSSXIfr%2FoYX83YAhExkiOOENlKq5e1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1155&quot; height=&quot;620&quot; data-filename=&quot;다운로드 (1)1.png&quot; data-origin-width=&quot;1155&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Auto Save Delay&lt;/code&gt;는 &lt;code&gt;Auto Save&lt;/code&gt;가&amp;nbsp;&lt;code&gt;after delay&lt;/code&gt;인 경우에 자동저장 설정이 적용 되며, 자동 저장되기까지의 시간을 설정해놓으면 그 시간이 지난 후에 자동 저장이 된다. 기본값은 &lt;code&gt;1000ms&lt;/code&gt;로 되어 있으며, 이 설정을 유지하면 1초가 지났음에도 파일에 변경이 없다면 자동으로 저장된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;h_1&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;자동 저장 확인&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동 저장이 잘 되고 있는지 확인하려면, &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;왼쪽 &lt;/span&gt;탐색기의 하단 내용 중&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;타임라인&lt;/code&gt;을 확인하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;K-002.png&quot; data-origin-width=&quot;3872&quot; data-origin-height=&quot;2312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6BSJw/btr8ZVDHRfw/Fj4HoEmEAdYIjlzSIAwkKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6BSJw/btr8ZVDHRfw/Fj4HoEmEAdYIjlzSIAwkKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6BSJw/btr8ZVDHRfw/Fj4HoEmEAdYIjlzSIAwkKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6BSJw%2Fbtr8ZVDHRfw%2FFj4HoEmEAdYIjlzSIAwkKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3872&quot; height=&quot;2312&quot; data-filename=&quot;K-002.png&quot; data-origin-width=&quot;3872&quot; data-origin-height=&quot;2312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동저장 설정을 완료했다면 위의 그림과 같이 자동 저장이 잘 되고 있는 것을 확인할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://sirong.tistory.com/25&quot;&gt;Visual Code 자동저장 하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://seong6496.tistory.com/315&quot;&gt;[vscode] 파일 자동 저장 설정하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/354&quot;&gt;[VSCode] 파일 자동 저장 설정/해제&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/Vscode</category>
      <category>vscode</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/56</guid>
      <comments>https://light9639.tistory.com/entry/VsCode-%EC%9E%90%EB%8F%99-%EC%A0%80%EC%9E%A5-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0#entry56comment</comments>
      <pubDate>Fri, 17 Feb 2023 17:28:00 +0900</pubDate>
    </item>
    <item>
      <title>[CSS]   밑줄 애니메이션 작성법.</title>
      <link>https://light9639.tistory.com/entry/CSS-%EB%B0%91%EC%A4%84-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%EC%9E%91%EC%84%B1%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cc7syv/btr1JtHstXL/AAGuybPTHQxlovbBAJX3fK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cc7syv/btr1JtHstXL/AAGuybPTHQxlovbBAJX3fK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cc7syv/btr1JtHstXL/AAGuybPTHQxlovbBAJX3fK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcc7syv%2Fbtr1JtHstXL%2FAAGuybPTHQxlovbBAJX3fK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;CSS로 밑줄 애니메이션 만들어보자&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프론트엔드 작업을 하다보면 강조하고 싶은 글들이 있을 때 &lt;b&gt;형광펜 효과나 애니메이션 효과&lt;/b&gt;를 사용해야 할 때가 있다.&amp;nbsp; 왜냐하면 형광펜 효과나 애니메이션 효과가 들어가게 되면 방문자들에게&lt;b&gt; 좀 더 좋은 UI를 제공할 수 있기 때문&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 &lt;b&gt;첫번째 예제 파일&lt;/b&gt;에서는 &lt;code&gt;CSS&lt;/code&gt;를 이용한 밑줄 효과를 작성했는데, 이것은 &lt;code&gt;&quot;형광펜으로 밑줄을 그은 듯한 느낌의 CSS 스타일&quot;&lt;/code&gt;로, 3가지 종류의 예시를 작성해보았다. &lt;b&gt;두번째 예제 파일&lt;/b&gt;에서는 &lt;code&gt;&quot;마우스 호버시 밑줄이 나타나는 애니메이션 CSS&quot;&lt;/code&gt;를 작성해보았다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;형광펜 밑줄 효과&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;우선 &amp;lt;mark&amp;gt;태그만 사용한 경우&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;mark&lt;/code&gt; 태그를 사용하면 기본적으로 노란색 형광펜이 칠해진 상태가 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676779318174&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* HTML */
&amp;lt;p&amp;gt;HTML의 &amp;lt;mark&amp;gt;mark tag만 사용한&amp;lt;/mark&amp;gt; 형광펜 효과.&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;
  HTML의 &amp;lt;mark class=&quot;green&quot;&amp;gt;mark tag만 사용한&amp;lt;/mark&amp;gt; 형광펜 효과(초록색).
&amp;lt;/p&amp;gt;

/* CSS */
mark.green {
  background-color: rgba(80, 255, 0, 0.3);
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;CSS의 배경색(background-image)를 사용한 경우&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;code&gt;background-color&lt;/code&gt;, &lt;code&gt;background-image&lt;/code&gt;의 &lt;code&gt;linear-gradient&lt;/code&gt; 속성을 활용한 예제.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676779371958&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* HTML */
&amp;lt;p&amp;gt;
  &amp;lt;span class=&quot;highlight&quot;&amp;gt;CSS의 배경색(background-color)&amp;lt;/span&amp;gt;을 이용한
  형광펜 효과
&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;
  &amp;lt;span class=&quot;highlight two-highlight&quot;&amp;gt;CSS의 배경색(background-color)&amp;lt;/span
  &amp;gt;을 이용한 형광펜 효과(두가지색)
&amp;lt;/p&amp;gt;

/* CSS */
.highlight {
  background-color: #fff2ac;
  background-image: linear-gradient(to right, #ffe359 0%, #fff2ac 100%);
}

.highlight.two-highlight {
  background-color: #fff2ac;
  background-image: linear-gradient(
    to right,
    rgb(132, 250, 176) 0%,
    rgb(143, 211, 244) 100%
  );
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;형광펜으로 밑의 반만 줄을 그은듯한 효과&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;형관펜으로 밑의 부분 반만 밑줄을 긋고 싶다면 50%를 중간에 넣어주면 적용된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676779455925&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* HTML */
&amp;lt;p&amp;gt;
  &amp;lt;span class=&quot;half-highlight&quot;&amp;gt;CSS의 배경색(background-color)&amp;lt;/span&amp;gt;을
  이용한 형광펜으로 반만 밑줄 그은 효과
&amp;lt;/p&amp;gt;

/* CSS */
.half-highlight {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 50%, #ffd0ae 50%);
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;  예제 파일&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위에서 작성한 3가지 예제를 &lt;code&gt;codeSandBox&lt;/code&gt;에서 구현한 예제 파일.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot; style=&quot;user-select: auto;&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/vigorous-hill-2wg6l8?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&amp;amp;view=preview&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;마우스를 올려 놓으면 밑줄이 그어지는 애니메이션 효과&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;왼쪽에서 오른쪽으로 이동하는 애니메이션&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;밑줄이 &lt;code&gt;Hover&lt;/code&gt; 시에 왼쪽에서 오른쪽으로 이동하는 애니메이션 예제.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676779943933&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* HTML */
&amp;lt;p&amp;gt;
    &amp;lt;span class=&quot;to-right-underline&quot;&amp;gt;왼쪽에서 오른쪽으로 이동하는 Animation&amp;lt;/span&amp;gt;
&amp;lt;/p&amp;gt;

/* CSS */
.to-right-underline {
  position: relative;
}
.to-right-underline:after {
  content: &quot;&quot;;
  position: absolute;
  left: 0;
  bottom: -10px;
  width: 0px;
  height: 2px;
  margin: 5px 0 0;
  transition: all 0.2s ease-in-out;
  transition-duration: 0.3s;
  opacity: 0;
  background-color: #8fd3f4;
}
.to-right-underline:hover:after {
  width: 100%;
  opacity: 1;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;가운데서 좌우로 펼쳐지는 애니메이션&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;밑줄이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Hover&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;시에 가운데서&amp;nbsp;좌우로&amp;nbsp;펼쳐지는&amp;nbsp;애니메이션 예제.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676779940803&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* HTML */
&amp;lt;p&amp;gt;
    &amp;lt;span class=&quot;spread-underline&quot;&amp;gt;가운데서 좌우로 펼쳐지는 라인 Animation&amp;lt;/span&amp;gt;
&amp;lt;/p&amp;gt;

/* CSS */
.spread-underline {
  color: #333;
  text-decoration: none;
  display: inline-block;
  padding: 15px 0;
  position: relative;
}
.spread-underline:after {
  background: none repeat scroll 0 0 transparent;
  bottom: 0;
  content: &quot;&quot;;
  display: block;
  height: 2px;
  left: 50%;
  position: absolute;
  background: #ffb000;
  transition: width 0.3s ease 0s, left 0.3s ease 0s;
  width: 0;
}
.spread-underline:hover:after {
  width: 100%;
  left: 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;형광펜 효과가 위로 올라오는 애니메이션&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;밑줄이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Hover&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;시에&lt;span&gt; 형광펜&amp;nbsp;효과가&amp;nbsp;위로&amp;nbsp;올라오는&amp;nbsp;애니메이션&lt;/span&gt;&amp;nbsp;예제.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676779935329&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* HTML */
&amp;lt;p&amp;gt;
    &amp;lt;span class=&quot;highlight&quot;&amp;gt;형광펜 효과가 위로 올라오는 Animation&amp;lt;/span&amp;gt;
&amp;lt;/p&amp;gt;

/* CSS */
.highlight {
  background-image: linear-gradient(120deg, #84fab0 0%, #8fd3f4 100%);
  background-repeat: no-repeat;
  background-size: 100% 50%;
  background-position: 0 88%;
  transition: background-size 0.25s ease-in;
}
.highlight:hover {
  background-size: 100% 100%;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;밑줄이 위에서 살짝 떨어지는 애니메이션&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;밑줄이&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Hover&lt;/code&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;시에&lt;span&gt;&lt;span&gt; 밑줄이&amp;nbsp;위에서&amp;nbsp;살짝&amp;nbsp;떨어지는&amp;nbsp;애니메이션&lt;/span&gt;&lt;/span&gt;&amp;nbsp;예제.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676779922237&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* HTML */
&amp;lt;p&amp;gt;
    &amp;lt;span class=&quot;drop-in-underline&quot;&amp;gt;위에서 살짝 떨어지는 Animation&amp;lt;/span&amp;gt;
&amp;lt;/p&amp;gt;
    
/* CSS */
.drop-in-underline {
  position: relative;
  padding-bottom: 10px;
}
.drop-in-underline:before {
  content: &quot;&quot;;
  position: absolute;
  bottom: 2px;
  left: 0;
  right: 0;
  height: 2px;
  background-color: #b9f;
}
.drop-in-underline:before {
  opacity: 0;
  -webkit-transform: translateY(-8px);
  transform: translateY(-8px);
  -webkit-transition: opacity 0s,
    -webkit-transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: opacity 0s,
    -webkit-transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0s;
  transition: transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0s,
    -webkit-transform 0s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.drop-in-underline:hover:before {
  opacity: 1;
  -webkit-transform: translateY(0);
  transform: translateY(0);
  -webkit-transition: opacity 0.2s,
    -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: opacity 0.2s,
    -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275),
    opacity 0.2s;
  transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275),
    opacity 0.2s, -webkit-transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;  예제 파일&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;위에서 작성한 3가지 예제를 &lt;code&gt;codeSandBox&lt;/code&gt;에서 구현한 예제 파일이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/sweet-goldwasser-1fb723?autoresize=1&amp;amp;fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&amp;amp;view=preview&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a style=&quot;user-select: auto;&quot; href=&quot;https://goodbypoor.tistory.com/162&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;다양한&amp;nbsp;CSS&amp;nbsp;밑줄&amp;nbsp;효과&amp;nbsp;소스코드&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a style=&quot;user-select: auto;&quot; href=&quot;https://www.youtube.com/watch?v=5iZGQRllTyg&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CSS3&amp;nbsp;밑줄&amp;nbsp;그리기&amp;nbsp;+&amp;nbsp;크기&amp;nbsp;색상&amp;nbsp;위치&amp;nbsp;제어하고&amp;nbsp;애니메이션&amp;nbsp;까지!?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <category>CSS</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/55</guid>
      <comments>https://light9639.tistory.com/entry/CSS-%EB%B0%91%EC%A4%84-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%EC%9E%91%EC%84%B1%EB%B2%95#entry55comment</comments>
      <pubDate>Fri, 17 Feb 2023 15:20:39 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   Caps Lock 활성화 여부 체크하기</title>
      <link>https://light9639.tistory.com/entry/Caps-Lock-%ED%99%9C%EC%84%B1%ED%99%94-%EC%97%AC%EB%B6%80-%EC%B2%B4%ED%81%AC%ED%95%98%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NrlEK/btr0HuG4KNm/KCKK2ea3wl78R6l7iknWD0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NrlEK/btr0HuG4KNm/KCKK2ea3wl78R6l7iknWD0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NrlEK/btr0HuG4KNm/KCKK2ea3wl78R6l7iknWD0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNrlEK%2Fbtr0HuG4KNm%2FKCKK2ea3wl78R6l7iknWD0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Form&lt;/code&gt; 태그 안에서 회원가입 기능이나, 로그인 기능을 만들 때 비밀번호에 &lt;code&gt;Caps Lock&lt;/code&gt;이 된 채로 입력되어 문제가 발생하는 경우가 종종 있다. 왜냐하면 &lt;code&gt;&amp;lt;input type=&quot;password&quot; /&amp;gt;&lt;/code&gt;를 사용하여&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; 비밀번호를 입력할 때 화면에 입력글자가 &lt;code&gt;*&lt;/code&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;code&gt;Input&lt;/code&gt; 태그에 현재 입력하는 문자가 대문자인지 소문자인지 구분하기 위해서는 &lt;code&gt;Javascript&lt;/code&gt;를 이용해 &lt;code&gt;Caps Lock&lt;/code&gt; 상태에서 입력할 때 경고 메세지가 나오도록 하는 방법에 대해 작성해 보겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Caps Lock 체크 만들기.&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;HTML 작성하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 Html 부분에 Input과 &lt;code&gt;Caps Lock&lt;/code&gt; 경고메세지를 띄울 div를 만든다. 그리고&amp;nbsp;Input 안에 &lt;code&gt;onkeyup=&quot;checkCapsLock(event)&quot;&lt;/code&gt;을 넣어서&amp;nbsp;Input 안에 경고메세지를 띄워준다. 만약&amp;nbsp;Input내용 작성을 전부 완료한 상태에서 메세지를 띄워주고 싶다면 &lt;code&gt;onchange=&quot;checkCapsLock(event)&quot;&lt;/code&gt;를 사용하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1677123624828&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input
  id=&quot;name&quot;
  // onkeyup는 바로바로 메세지를 출력시킴
  onkeyup=&quot;checkCapsLock(event)&quot;
  // onchange를 사용하면 입력이 완료된 이후 경고창이 화면에 출력됨
  // onchange=&quot;checkCapsLock(event)&quot;
  placeholder=&quot;작성해보세요.&quot;
  type=&quot;password&quot;
/&amp;gt;
&amp;lt;div id=&quot;message&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;JavaScript 작성하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;Html&lt;/code&gt;을 전부 작성했다면 밑의&amp;nbsp;&lt;code&gt;Javascript&lt;/code&gt;&amp;nbsp;코드를 작성하면 화면에 경고창이 출력된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;function checkCapsLock(event)  {
  if (event.getModifierState(&quot;CapsLock&quot;)) {
    document.getElementById(&quot;message&quot;).innerText = &quot;Caps Lock이 활성화된 상태입니다.&quot;
  } else {
    document.getElementById(&quot;message&quot;).innerText = &quot;&quot;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  완성 파일&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 코드를 보고 싶으시다면 제가 만든 &lt;code&gt;CodesandBox&lt;/code&gt;에서 확인하시면 됩니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/caps-lock-cekeuhagi-vbpzsw?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/424&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Javascript]&amp;nbsp;Caps&amp;nbsp;Lock&amp;nbsp;키&amp;nbsp;활성화&amp;nbsp;여부&amp;nbsp;체크하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://chobopark.tistory.com/327&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Javascript&amp;amp;JQuery]&amp;nbsp;비밀번호&amp;nbsp;Caps&amp;nbsp;Lock&amp;nbsp;설정&amp;nbsp;방법&amp;nbsp;(영상)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/53</guid>
      <comments>https://light9639.tistory.com/entry/Caps-Lock-%ED%99%9C%EC%84%B1%ED%99%94-%EC%97%AC%EB%B6%80-%EC%B2%B4%ED%81%AC%ED%95%98%EA%B8%B0#entry53comment</comments>
      <pubDate>Thu, 16 Feb 2023 11:32:09 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   For 문을 이용하여 만든 1~100까지 더하기 예제.</title>
      <link>https://light9639.tistory.com/entry/For-%EB%AC%B8%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EB%A7%8C%EB%93%A0-1100%EA%B9%8C%EC%A7%80-%EB%8D%94%ED%95%98%EA%B8%B0-%EC%98%88%EC%A0%9C</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F4BiY/btr0IFONsAe/El9oOj5nGDsmKMTNRcjtxK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F4BiY/btr0IFONsAe/El9oOj5nGDsmKMTNRcjtxK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F4BiY/btr0IFONsAe/El9oOj5nGDsmKMTNRcjtxK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF4BiY%2Fbtr0IFONsAe%2FEl9oOj5nGDsmKMTNRcjtxK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;JavaScript&lt;/code&gt;의 &lt;code&gt;For&lt;/code&gt;문 함수를 사용하여 &lt;b&gt;1~100까지 더하기&lt;/b&gt; 예제를 작성해보자.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1~100까지 더하기 예제.&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&quot;sum + i&quot;를 이용하여 만든 더하기 예제.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;JavaScript&lt;/code&gt;의&amp;nbsp;&lt;code&gt;sum + i&lt;/code&gt;를 이용하여 만든 더하기 예제.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514391397&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let sum = 0;
for(let i = 1; i &amp;lt;= 100; i++) {
  sum = sum + i;
}

document.writeln(sum);&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/sum-ireul-iyonghayeo-mandeun-deohagi-yeje-qhhisp?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&amp;amp;view=preview&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&quot;+=&quot;를 이용하여 만든 더하기 예제.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;JavaScript&lt;/code&gt;의&amp;nbsp;&lt;code&gt;+=&lt;/code&gt;를 이용하여 만든 더하기 예제.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514400183&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let sum = 0;
for(let i = 1; i &amp;lt;= 100; i++) {
  sum += i;
}

document.writeln(sum);&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/reul-iyonghayeo-mandeun-deohagi-yeje-wzt5g0?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&amp;amp;view=preview&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/393&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Javascript]&amp;nbsp;1부터&amp;nbsp;100까지의&amp;nbsp;합&amp;nbsp;계산하기&amp;nbsp;(for문)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/52</guid>
      <comments>https://light9639.tistory.com/entry/For-%EB%AC%B8%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EB%A7%8C%EB%93%A0-1100%EA%B9%8C%EC%A7%80-%EB%8D%94%ED%95%98%EA%B8%B0-%EC%98%88%EC%A0%9C#entry52comment</comments>
      <pubDate>Thu, 16 Feb 2023 11:24:09 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   For 문을 이용하여 만든 구구단 예제.</title>
      <link>https://light9639.tistory.com/entry/For-%EB%AC%B8%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EB%A7%8C%EB%93%A0-%EA%B5%AC%EA%B5%AC%EB%8B%A8-%EC%98%88%EC%A0%9C</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/phXRU/btr0BWEiuM8/MDIK5B8QOiQPgHSCarE03k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/phXRU/btr0BWEiuM8/MDIK5B8QOiQPgHSCarE03k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/phXRU/btr0BWEiuM8/MDIK5B8QOiQPgHSCarE03k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FphXRU%2Fbtr0BWEiuM8%2FMDIK5B8QOiQPgHSCarE03k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;JavaScript&lt;/code&gt;의 &lt;code&gt;For&lt;/code&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;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;For문을 이용한 구구단 예제.&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;For문을 화면에 출력하는 예제.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;For&lt;/code&gt;문을 이용하여 2단부터 화면에 출력하는 예제.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514345085&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(let i = 2; i &amp;lt;= 9; i++) {
  document.write(i + '단');
  document.write('&amp;lt;br&amp;gt;');
  for(let j = 1; j &amp;lt;= 9; j++) {
    document.write(i + ' * ' + j + ' = ' + (i*j));
    document.write('&amp;lt;br&amp;gt;');
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/gugudan-culryeog-q1ivfi?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;For문을 콘솔로 출력하는 예제.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;For&lt;/code&gt;문을 &lt;b&gt;콘솔로 출력&lt;/b&gt;하는 예제 코드.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514359718&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(let i = 2; i &amp;lt;= 9; i++) {
  console.log(i + '단');
  for(let j = 1; j &amp;lt;= 9; j++) {
    console.log(i + ' * ' + j + ' = ' + (i*j));
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/gugudan-konsol-culryeog-yeje-q7oqze?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;For문을 이용하여 만든 구구단 테이블 예제.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 방법을 활용하여 &lt;code&gt;For&lt;/code&gt;문으로 &lt;b&gt;구구단 테이블&lt;/b&gt;을 생성하고 화면에 출력하는 예제.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514439431&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;document.write('&amp;lt;table border=&quot;1&quot;&amp;gt;');

// header
document.write('&amp;lt;thead&amp;gt;');
document.write('&amp;lt;tr&amp;gt;');
for(let i = 2; i &amp;lt;= 9; i++) {
  document.write('&amp;lt;th&amp;gt;' + i + '단 &amp;lt;/th&amp;gt;');
}
document.write('&amp;lt;/tr&amp;gt;');
document.write('&amp;lt;/thead&amp;gt;');

// body
document.write('&amp;lt;tbody&amp;gt;');
for(let i = 1; i &amp;lt;= 9; i++) {
  document.write('&amp;lt;tr&amp;gt;');
  for(let j = 2; j &amp;lt;= 9; j++) {
    document.write('&amp;lt;td&amp;gt;' + j + ' * ' + i + ' = ' + (j*i) + '&amp;lt;/td&amp;gt;');
  }
  document.write('&amp;lt;/tr&amp;gt;');
}
document.write('&amp;lt;/tbody&amp;gt;');

document.write('&amp;lt;/table&amp;gt;');&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/gugudan-teibeul-culryeog-yeje-7dp81d?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/369&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Javascript] for문 이용해서 구구단 출력&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/502&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Javascript] 테이블 구구단 만들기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/51</guid>
      <comments>https://light9639.tistory.com/entry/For-%EB%AC%B8%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EB%A7%8C%EB%93%A0-%EA%B5%AC%EA%B5%AC%EB%8B%A8-%EC%98%88%EC%A0%9C#entry51comment</comments>
      <pubDate>Thu, 16 Feb 2023 11:23:49 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]   dotenv 미들웨어 사용법.</title>
      <link>https://light9639.tistory.com/entry/dotenv-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (6).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M2QdW/btr0Hy3Gxky/w4fdSQJHxAr0VKKh2nDCm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M2QdW/btr0Hy3Gxky/w4fdSQJHxAr0VKKh2nDCm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M2QdW/btr0Hy3Gxky/w4fdSQJHxAr0VKKh2nDCm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM2QdW%2Fbtr0Hy3Gxky%2Fw4fdSQJHxAr0VKKh2nDCm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img (6).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Dotenv는 무엇인가?&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 개발을 하다보면 특정 값들은 다른 개발환경을 사용할려고 하거나, 다른 컴퓨터로 코드를 옮겨야 할 때 수정이 필요하다. 예를 들면.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다른 컴퓨터에선 3000 포트를 사용해야 할 때.&lt;/li&gt;
&lt;li&gt;나중에 DB를 이전하여 DB 접속 문자열이 바뀌는 상황.&lt;/li&gt;
&lt;li&gt;내가 만든 코드를 팀원과 공유해야 하는데 내 아이디와 비번이 적혀있어서 보안 문제가 발생할 때.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 환경에 따라 가변적인 변수 데이터들을 &lt;code&gt;환경변수&lt;/code&gt;라고 부른다. 영어로는 &lt;code&gt;environment variable&lt;/code&gt;이라고 부른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 웹 개발자을 할 때는 환경변수를 한곳에 모아서 관리하게 되는데 이를 &lt;code&gt;.env&lt;/code&gt; 파일에 모아서 관리하게 된다. .env파일에 모든 중요 환경변수들을 넣은 다음에, &lt;code&gt;server.js&lt;/code&gt;로 가서&lt;span&gt; &lt;/span&gt;.env파일에 있는 &lt;code&gt;포트정보&lt;/code&gt;와 &lt;code&gt;데이터베이스 URL&lt;/code&gt;을 작성하는&lt;span&gt; 방식의&lt;/span&gt; 코딩을 하면 된다. 이 경우에는 server.js 파일에 보안 문제가 생길 경우에도 중요한 정보들은 .env 파일에 있기 때문에 보안상 이점도 존재한다. 그럼 사용하는 방법을 포스팅해보겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Dotenv 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;dotenv 라이브러리 설치하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;.env&lt;/code&gt; 파일을 &lt;code&gt;Node.js&lt;/code&gt; 서버에서 사용하려면, 우선 터미널을 킨 다음 &lt;code&gt;Npm&lt;/code&gt;이나 &lt;code&gt;Yarn&lt;/code&gt;을 사용하여 &lt;code&gt;dotenv&lt;/code&gt; 설치해야 한다.&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686655583474&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;npm install dotenv
# or
yarn add dotenv&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;환경변수가 있는 server.js에 dotenv 라이브러리를 등록&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;server.js&lt;/code&gt; 상단에 &lt;code&gt;let, const&lt;/code&gt; 변수가 모여있는 곳에 하단의 코드를 작성하면 된다. 그러면 하단에서 환경변수를 자유롭게 사용할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;stylus&quot;&gt;&lt;code&gt;(server.js)

require('dotenv').config()&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;server.js와 같은 경로에 .env 파일 생성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드를 작성했다면, 나중에 변경이 될 것 같은 환경변수들을 &lt;code&gt;.env&lt;/code&gt; 파일에 전부 다 적고 저장하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;ENV&quot;&gt;ENV&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot;&gt;&lt;code&gt;(.env 파일)

PORT=8080
DB_URL=&quot;mongodb+srv://Light9639@~~~&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형식은 &lt;code&gt;var 문법&lt;/code&gt;으로 숫자와 문자 변수를 만드는 것과 같은 방식으로 왼쪽에는 변수명을 넣고, 오른쪽은 값을 넣는다고 보면 된다. 다만 변수 이름들은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;보통 대문자로&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;표기한다. 변수를 &lt;code&gt;server.js&lt;/code&gt;에서 사용하는 방법은 다음과 같이 &lt;code&gt;process.env.PORT&lt;/code&gt; 라는 방식으로 사용하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686660160356&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(server.js)

console.log('PORT:', process.env.PORT);
console.log('DB_URL:', process.env.DB_URL);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 &lt;code&gt;.env&lt;/code&gt; 파일에 모든 환경변수를 모아놓고 사용하게 되면 나중에 &lt;code&gt;.env&lt;/code&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;code&gt;server.js&lt;/code&gt; 상에 변경해야 할 코드를 찾아서 바꾸는 것이 아니라 &lt;code&gt;.env&lt;/code&gt; 파일만 수정하면 되기 때문에 좀 더 편리하게 사용할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://www.daleseo.com/js-dotenv/&quot;&gt;dotenv로 환경 변수를 .env 파일로 관리하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://velog.io/@whwkd11010/%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98dotenv-%EC%82%AC%EC%9A%A9&quot;&gt;환경변수(dotenv 사용)&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/EXPRESS-%F0%9F%93%9A-dotenv-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4&quot;&gt;[EXPRESS]   dotenv 미들웨어 사용법   정리&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://codingapple.com/course/node-express-mongodb-server/&quot;&gt;Node.js, MongoDB로 빠르게 웹서비스 만들기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Backend/Node.js</category>
      <category>dotenv</category>
      <category>env</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/50</guid>
      <comments>https://light9639.tistory.com/entry/dotenv-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B2%95#entry50comment</comments>
      <pubDate>Wed, 15 Feb 2023 23:31:29 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   Day.js 사용법.</title>
      <link>https://light9639.tistory.com/entry/Dayjs-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;dayjs.png&quot; data-origin-width=&quot;876&quot; data-origin-height=&quot;362&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4DYFQ/btrZrZnAubo/vKCa6AxYUnIV3hklbW5dgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4DYFQ/btrZrZnAubo/vKCa6AxYUnIV3hklbW5dgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4DYFQ/btrZrZnAubo/vKCa6AxYUnIV3hklbW5dgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4DYFQ%2FbtrZrZnAubo%2FvKCa6AxYUnIV3hklbW5dgK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;876&quot; height=&quot;362&quot; data-filename=&quot;dayjs.png&quot; data-origin-width=&quot;876&quot; data-origin-height=&quot;362&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;JavaScript&lt;/code&gt;를 사용하다 보면 가장 불편한 것이 바로 시간을 출력하고 계산할 때이다. 흔히 &lt;code&gt;new Date()&lt;/code&gt;를 이용하여 날짜를 출력하는데 원래 자바스크립트 창시자 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;브랜든 아이크&lt;/b&gt;&lt;/span&gt;가 &lt;code&gt;Java&lt;/code&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;code&gt;new.Intl&lt;/code&gt; 함수나 앞으로 나올 신기능&amp;nbsp;&lt;code&gt;Temporal&lt;/code&gt;을 활용해보는 것도 좋지만 다른 대안은 &lt;code&gt;Day.js&lt;/code&gt;를 사용하는 것도 있다. 그래서 가끔식은&amp;nbsp;&lt;code&gt;new Date()&lt;/code&gt; 말고 &lt;code&gt;Day.js&lt;/code&gt;를&amp;nbsp; 사용하여 날짜 작업을 하다보면 매우 편리함을 느낄 수 있다. 그럼 이 글에서 &lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;Day.js&lt;/code&gt;&amp;nbsp;사용법을 간략히 알아보자.&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;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Day.js 간략한 사용법.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;dayjs()&lt;/code&gt;에 날짜와 시간을 입력하고 date 변수에 넣은 다음 다음과 같이 사용하면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676464927368&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import dayjs from 'dayjs';
const date = dayjs('2023-02-24 10:30:21')

console.log(date.year()) // 2023 (연도)
console.log(date.month() + 1) // 2 (월)
console.log(date.date()) // 24 (일)
console.log(date.hour()) // 10 (시)
console.log(date.minute()) // 30 (분)
console.log(date.second()) // 21 (초)
console.log(date.format('YYYY년 MM월 DD일 HH시 mm분')) // '2023년 02월 24일 10시 30분 21초'&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;포맷-지정---format&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;format() 사용법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;format()&lt;/code&gt;를 사용하면 출력 방식을 변경시킬 수 있습니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot;&gt;&lt;code&gt;import dayjs from 'dayjs';
const date = dayjs(&quot;2023-02-15 20:15:25&quot;, &quot;YYYY-MM-DD HH:mm:ss&quot;);

console.log(date.format()); // 2023-02-15T20:15:25+09:00
console.log(date.format(&quot;YY-MM-DD&quot;)); // 23-02-15
console.log(date.format(&quot;DD/MM/YY&quot;)); // 15/02/23
console.log(date.format(&quot;YYYY.MM.DD HH:mm:ss&quot;)); // 2023.02.15 20:15:25
console.log(date.format(&quot;YYYY년MM월DD일 HH:mm:ss&quot;)); // 2023년02월15일 20:15:25&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676467456486&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import dayjs from 'dayjs';
const now = dayjs();
now.format();

const date1 = dayjs(&quot;2023-02-24 10:30:21&quot;);
console.log(date1.format()); // 2023-02-24T10:30:21+09:00

const date2 = dayjs(&quot;2023-02-24 10:30:21&quot;, &quot;YYYY.MM.DD&quot;);
console.log(date2.format()); // 2023-02-24T10:30:21+09:00

const date3 = dayjs(&quot;02/24/23&quot;, &quot;MM/DD/YY&quot;);
console.log(date3.format()); // 2023-02-24T00:00:00+09:00

const date4 = dayjs(&quot;2023-02-24 10:30:21&quot;, &quot;YYYY-MM-DD HH:mm:ss&quot;);
console.log(date4.format()); // 2023-02-24T10:30:21+09:00&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;날짜-시간-단위-값-구하기---get&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;get() 사용법.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;get()&lt;/code&gt; 함수를 이용하여 날짜와 시간 값을 구할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot;&gt;&lt;code&gt;import dayjs from 'dayjs';
const now = dayjs();

now.format(); // 2022-05-24T19:03:02+09:00

console.log(now.get(&quot;year&quot;)); // 2023 (년)
console.log(now.get(&quot;y&quot;)); // 2023 (년)

console.log(now.get(&quot;month&quot;)); // 1 (월 - 0~11) 실제로는 2월임
console.log(now.get(&quot;M&quot;)); // 1 (월 - 0~11) 실제로는 2월임

console.log(now.get(&quot;date&quot;)); // 15 (일)
console.log(now.get(&quot;D&quot;)); // 15 (일)

console.log(now.get(&quot;day&quot;)); // 수요일 (요일 - 일요일 : 0, 토요일 : 6)
console.log(now.get(&quot;d&quot;)); // 수요일 (요일 - 일요일 : 0, 토요일 : 6)

console.log(now.get(&quot;hour&quot;)); // 22 (시)
console.log(now.get(&quot;h&quot;)); // 22 (시)

console.log(now.get(&quot;minute&quot;)); // 11 (분)
console.log(now.get(&quot;m&quot;)); // 11 (분)

console.log(now.get(&quot;second&quot;)); // 32 (초)
console.log(now.get(&quot;s&quot;)); // 32 (초)

console.log(now.get(&quot;millisecond&quot;)); // 696 (밀리초)
console.log(now.get(&quot;ms&quot;)); // 696 (밀리초)&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;add() 사용법.&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;add()&lt;/code&gt; 함수를 이용하면 날짜에 시간을 더할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676466131790&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import dayjs from 'dayjs';
const date = dayjs('2023-02-24 10:30:21')

console.log(date.add(1, &quot;year&quot;).format()); // 2024년
console.log(date.add(1, &quot;month&quot;).format()); // 3월 24일
console.log(date.add(1, &quot;week&quot;).format()); // 3월 3일&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;subtract() 사용법&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;subtract()&lt;/code&gt; 함수를 이용하면 날짜에서 시간을 뺼 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676467103552&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import dayjs from 'dayjs';
const date = dayjs('2023-02-24 10:30:21')

console.log(date.subtract(1, &quot;year&quot;).format()); // 2022년
console.log(date.subtract(1, &quot;month&quot;).format()); // 1월 24일
console.log(date.subtract(1, &quot;week&quot;).format()); // 2월 17일&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://velog.io/@silent10z/Dayjs-%EC%82%AC%EC%9A%A9%EB%B2%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Dayjs&amp;nbsp;사용법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://john015.netlify.app/moment-js%EB%A5%BC-day-js%EB%A1%9C-%EB%8C%80%EC%B2%B4%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Moment.js를&amp;nbsp;Day.js로&amp;nbsp;대체하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://stickode.tistory.com/668&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Day.js를&amp;nbsp;활용하여&amp;nbsp;날짜&amp;nbsp;및&amp;nbsp;시간&amp;nbsp;조작&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>Day.js</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/49</guid>
      <comments>https://light9639.tistory.com/entry/Dayjs-%EC%82%AC%EC%9A%A9%EB%B2%95#entry49comment</comments>
      <pubDate>Wed, 15 Feb 2023 21:42:11 +0900</pubDate>
    </item>
    <item>
      <title>[WebSite]   Tistory(티스토리) 코드블럭 사용법.</title>
      <link>https://light9639.tistory.com/entry/Tistory%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%BD%94%EB%93%9C%EB%B8%94%EB%9F%AD-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;다운로드.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FtCae/btr8OV3eZAK/yy02zEJU6QKur2mMkqQmQ1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FtCae/btr8OV3eZAK/yy02zEJU6QKur2mMkqQmQ1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FtCae/btr8OV3eZAK/yy02zEJU6QKur2mMkqQmQ1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFtCae%2Fbtr8OV3eZAK%2Fyy02zEJU6QKur2mMkqQmQ1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;다운로드.jpg&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Syntax Highlight를 이용한 코드블럭 사용법&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;코드블럭은 블로그 글을 작성할 때 프로그래밍 소스코드를 삽입하거나 특정 내용을 강조하고 싶을 때 자주 사용된다. 티스토리에서 제공하는 코드블럭을 사용하기 위해서는 새로운 에디터와 &lt;code&gt;Syntax Highlight&lt;/code&gt; 플러그인 적용이 필요하다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;새 에디터 적용하기&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예전 에디터를 사용 중이시라면 설명에 따라서 새로운 에디터로 변경해야 한다. 새로운 에디터 사용은 관리자 메뉴의 콘텐츠 설정에서 변경할 수 있다. 우선 새로운 글쓰기를 &lt;code&gt;[사용합니다]&lt;/code&gt;를 선택 후 변경사항 저장을 누르면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1216&quot; data-origin-height=&quot;614&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k0YYC/btskgt21Kwr/3ejEfJVVH5haAMSmZY6Dk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k0YYC/btskgt21Kwr/3ejEfJVVH5haAMSmZY6Dk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k0YYC/btskgt21Kwr/3ejEfJVVH5haAMSmZY6Dk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk0YYC%2Fbtskgt21Kwr%2F3ejEfJVVH5haAMSmZY6Dk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1216&quot; height=&quot;614&quot; data-origin-width=&quot;1216&quot; data-origin-height=&quot;614&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Syntax Highlight 플러그인 적용하기&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그 다음, 티스토리 플러그인 &lt;code&gt;Syntax Highlight&lt;/code&gt;를 적용하면 된다. 플러그인은 관리자 메뉴의 하단에 있는 플러그인 탭에서 설정할 수 있다. 플러그인 탭을 클릭하면 티스토리에서 제공하는 다양한 플러그인을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXMucL/btskgu8Il7a/KSorX4XleyVwN5CY3Lzmgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXMucL/btskgu8Il7a/KSorX4XleyVwN5CY3Lzmgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXMucL/btskgu8Il7a/KSorX4XleyVwN5CY3Lzmgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXMucL%2Fbtskgu8Il7a%2FKSorX4XleyVwN5CY3Lzmgk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;266&quot; height=&quot;466&quot; data-origin-width=&quot;266&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8O0jH/btqEjq0sm5v/Vm6dHmGrKzXHccmjpekagK/img.png&quot; data-lightbox=&quot;lightbox&quot; data-alt=&quot;플러그인 선택&quot;&gt;&lt;/span&gt;플러그인을 선택한 후, 전체 플러그인 수가 많기 때문에 검색 기능을 사용해서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Syntax Highlight&lt;/code&gt; 플러그인을 찾으면 된다. 이후 플러그인 리스트에서 &lt;code&gt;Highlight&lt;/code&gt;를 검색 하여 검색 결과에 나타난 &lt;code&gt;Syntax Highligh(코드 문법 강조)&lt;/code&gt;를 클릭한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그 다음 아래에 표시되는 테마 중 원하는 테마를 선택 후 적용을 눌러주세요. 저는 &lt;code&gt;Atom One Dark&lt;/code&gt; 테마를 사용하고 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;기본&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Atom One Dark&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Atom One Light&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Github&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Monokai&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Darcula&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Visual Studio&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Xcode&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;913&quot; data-origin-height=&quot;770&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSHQ1F/btskiS10APl/SIzoJgbxBRNKCuLP7wVVUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSHQ1F/btskiS10APl/SIzoJgbxBRNKCuLP7wVVUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSHQ1F/btskiS10APl/SIzoJgbxBRNKCuLP7wVVUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSHQ1F%2FbtskiS10APl%2FSIzoJgbxBRNKCuLP7wVVUk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;867&quot; height=&quot;770&quot; data-origin-width=&quot;913&quot; data-origin-height=&quot;770&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;코드블럭 삽입하기&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;적용한&amp;nbsp;&lt;code&gt;Syntax Highlight&lt;/code&gt;를 확인하기 위해서는 우선 새로 글을 작성해야 한다. 티스토리 글쓰기를 시작하면 새로운 에디터가 적용된 모습을 확인할 수 있다. 코드블럭을 사용하기 위해서는 우측 상단에 있는 더보기 메뉴를 누른 다음 코드블럭을 클릭하면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dA3KWi/btskg7ZWKQz/BclA7xOrKKBk9mNM9vrLq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dA3KWi/btskg7ZWKQz/BclA7xOrKKBk9mNM9vrLq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dA3KWi/btskg7ZWKQz/BclA7xOrKKBk9mNM9vrLq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdA3KWi%2Fbtskg7ZWKQz%2FBclA7xOrKKBk9mNM9vrLq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;904&quot; height=&quot;367&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NdAY9/btqEggFdhmP/HikmhBKkHBck8ktu87MX61/img.png&quot; data-lightbox=&quot;lightbox&quot; data-alt=&quot;새 에디터 글쓰기&quot;&gt;&lt;/span&gt;새로운 에디터 글쓰기에서 코드블럭을 선택하면 소스코드를 삽입할 수 있는 창이 뜬다. 삽입하는 코드의 언어를 선택한 후 소스코드를 입력하시면 된다. 현재&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;Syntax Highlight&lt;/code&gt;에서 삽입 가능한 프로그래밍 언어의 종류는 아래와 같이 12가지가 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;HTML&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;CSS&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Javscript&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Python&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Java&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;C++&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Kotlin&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Swift&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;PHP&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;Go&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;C#&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc; color: #000000;&quot;&gt;SQL&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그럼 소스코드 입력을 완료하신 후 아래의 확인 버튼을 눌러주세요.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;833&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PIdFG/btskfe67wsk/0Fu1dx0savkZGlkTPMSWpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PIdFG/btskfe67wsk/0Fu1dx0savkZGlkTPMSWpk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PIdFG/btskfe67wsk/0Fu1dx0savkZGlkTPMSWpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPIdFG%2Fbtskfe67wsk%2F0Fu1dx0savkZGlkTPMSWpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;798&quot; height=&quot;833&quot; data-origin-width=&quot;798&quot; data-origin-height=&quot;833&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;코드블럭 삽입창에서 입력한 소스코드에 하이라이트가 적용된 모습을 확인할 수 있다. 이전에 코드블럭을 사용하지 않은 상태에서 일반 글쓰기를 했을 때와 비교해보면 좀 더 세련된 것을 확인할 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;687&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bn40HX/btskfY3JcyV/xo6679G4Bcsz4X1nqkXGHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bn40HX/btskfY3JcyV/xo6679G4Bcsz4X1nqkXGHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bn40HX/btskfY3JcyV/xo6679G4Bcsz4X1nqkXGHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbn40HX%2FbtskfY3JcyV%2Fxo6679G4Bcsz4X1nqkXGHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;904&quot; height=&quot;687&quot; data-origin-width=&quot;904&quot; data-origin-height=&quot;687&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNFweb/btqEhQFPQe9/C9rCPYMf7nyywRJlDY1ivk/img.png&quot; data-lightbox=&quot;lightbox&quot; data-alt=&quot;코드블럭 삽입&quot;&gt;&lt;/span&gt;코드블럭 삽입한 후, 코드블럭을 이용하여 실제 소스코드를 삽입한 모습으로. 글쓰기 화면에서 보여지는 모습과는 차이가 있는 것을 확인할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686924522662&quot; class=&quot;xml&quot; style=&quot;color: #000000; text-align: start;&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Title of the document&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
The content of the document......
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://freeblogger.tistory.com/9&quot;&gt;티스토리 코드블럭 사용법&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://holika.tistory.com/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%BD%94%EB%93%9C%EB%B8%94%EB%9F%AD-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EB%94%94%EC%9E%90%EC%9D%B8-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0&quot;&gt;[티스토리 적응기] 코드블럭 사용하기, 디자인 변경하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://wondytyahng.tistory.com/entry/%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%BD%94%EB%93%9C%EB%B8%94%EB%9F%AD-%ED%85%8C%EB%A7%88&quot;&gt;[티스토리] 코드블럭 사용법, 테마 비교, 추천&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;4&lt;/span&gt;&lt;a href=&quot;https://halfmoon.tistory.com/13&quot;&gt;[티스토리-3] 소스코드블럭 작성 &amp;amp; 코드 하이라이트 예쁘게 출력하기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;5&lt;/span&gt;&lt;a href=&quot;https://www.jbfactory.net/12748&quot;&gt;티스토리 강좌 / 코드블럭으로 코드 입력하고 highlight.js로 예쁘게 출력하는 방법&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Website</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/47</guid>
      <comments>https://light9639.tistory.com/entry/Tistory%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-%EC%BD%94%EB%93%9C%EB%B8%94%EB%9F%AD-%EC%82%AC%EC%9A%A9%EB%B2%95#entry47comment</comments>
      <pubDate>Wed, 15 Feb 2023 17:07:06 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript]   For 문으로 만들어보는 별모양 예제.</title>
      <link>https://light9639.tistory.com/entry/For-%EB%AC%B8%EC%9C%BC%EB%A1%9C-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EB%8A%94-%EB%B3%84%EB%AA%A8%EC%96%91-%EC%98%88%EC%A0%9C</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3,h4&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y41tm/btr0HS8HmZg/vesJNP7pgZ1BIlxro0wFL0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y41tm/btr0HS8HmZg/vesJNP7pgZ1BIlxro0wFL0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y41tm/btr0HS8HmZg/vesJNP7pgZ1BIlxro0wFL0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy41tm%2Fbtr0HS8HmZg%2FvesJNP7pgZ1BIlxro0wFL0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1024&quot; height=&quot;512&quot; data-filename=&quot;img (1).jpg&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바스크립트를 이용하여 별모양 만들기를 포스팅해 보았다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;정사각형 별찍기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676515090702&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(let i = 0; i &amp;lt; 5; i++)  {
  for(let j = 0; j &amp;lt; 5; j++)  {
    document.write('*');
  }
  document.write('&amp;lt;br&amp;gt;');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/jeongsagaghyeong-byeoljjiggi-d2b3kc?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;삼각형 별찍기&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;왼쪽 정렬&lt;/b&gt;&lt;/h4&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676515105181&quot; class=&quot;matlab&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for (let i = 0; i &amp;lt; 5; i++) {
  for (let j = 0; j &amp;lt;= i; j++) {
    document.write('*')
  }
  document.write('&amp;lt;br&amp;gt;');
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;오른쪽 정렬&lt;/b&gt;&lt;/h4&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676515105181&quot; class=&quot;matlab&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(let i = 0; i &amp;lt; 5; i++)  {
  for(let j = 4; j &amp;gt; i; j--)  {
    document.write('&amp;amp;nbsp');
  }
  for(let j = 0; j &amp;lt;= i; j++) {
    document.write('*');
  }
  document.write('&amp;lt;br&amp;gt;');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/samgaghyeong-oenjjog-oreunjjog-jeongryeol-qc66jt?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;뒤집힌 삼각형 별찍기&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;왼쪽 정렬&lt;/b&gt;&lt;/h4&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514984623&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for (let i = 0; i &amp;lt; 5; i++) {
  for (let j = 5; j &amp;gt; i; j--) {
    document.write('*');
  }
  document.write('&amp;lt;br&amp;gt;');
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;오른쪽 정렬&lt;/b&gt;&lt;/h4&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514976283&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(let i = 0; i &amp;lt; 5; i++)  {
  for(let j=0; j &amp;lt;= i; j++)  {
    // space
    document.write('&amp;amp;nbsp');
  }
  for(let j=5; j &amp;gt; i; j--)  {
    document.write('*');
  }
  document.write('&amp;lt;br&amp;gt;');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/dwijibhin-samgaghyeong-oenjjog-oreunjjog-jeongryeol-byeoljjiggi-79mk5b?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;정삼각형 별찍기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514968963&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(let i = 0; i &amp;lt; 5; i++)  {
  for(let j=4; j &amp;gt; i; j--)  {
    // space
    document.write('&amp;amp;nbsp');
  }
  for(let j=0; j &amp;lt;= i; j++)  {
    document.write('*');
  }
  for(let j=1; j &amp;lt;= i; j++)  {
    document.write('*');
  }
  document.write('&amp;lt;br&amp;gt;');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/jeongsamgaghyeong-byeoljjiggi-yf9rhy?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;뒤집힌 정삼각형 별찍기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514958418&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(let i = 0; i &amp;lt; 5; i++)  {
  for(let j=0; j &amp;lt; i; j++)  {
    document.write('&amp;amp;nbsp');
  }
  for(let j=5; j &amp;gt; i; j--)  {
    // space
    document.write('*');
  }
  for(let j=4; j &amp;gt; i; j--)  {
    document.write('*');
  }
  document.write('&amp;lt;br&amp;gt;');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/dwijibhin-jeongsamgaghyeong-byeoljjiggi-svfxbc?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;다이아몬드 별찍기&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676514948002&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;for(let i = 0; i &amp;lt; 5; i++)  {
  for(let j = 4; j &amp;gt; i; j--)  {
    document.write('&amp;amp;nbsp');
  }
  for(let j = 0; j &amp;lt;= i; j++)  {
    document.write('*');
  }
  for(let j = 1; j &amp;lt;= i; j++)  {
    document.write('*');
  }

  document.write('&amp;lt;br&amp;gt;');
}

for(let i = 0; i &amp;lt; 4; i++)  {
  for(let j = 0; j &amp;lt;= i; j++)  {
    document.write('&amp;amp;nbsp');
  }
  for(let j = 4; j &amp;gt; i; j--)  {
    document.write('*');
  }
  for(let j = 3; j &amp;gt; i; j--)  {
    document.write('*');
  }
  document.write('&amp;lt;br&amp;gt;');
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/daiamondeu-byeoljjiggi-o8dmok?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://velog.io/@rayong/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%B3%84-%EC%B0%8D%EA%B8%B0-%EC%A0%9C%EC%BD%94%EB%B2%A0-JS-100%EC%A0%9C&quot;&gt;자바스크립트, 별 찍기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://abcdqbbq.tistory.com/28&quot;&gt;Javascript (자바스크립트) 예제 - 별찍기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://hianna.tistory.com/368&quot;&gt;[Javascript] for문을 이용해서 별찍기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/JavaScript</category>
      <category>javascript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/46</guid>
      <comments>https://light9639.tistory.com/entry/For-%EB%AC%B8%EC%9C%BC%EB%A1%9C-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EB%8A%94-%EB%B3%84%EB%AA%A8%EC%96%91-%EC%98%88%EC%A0%9C#entry46comment</comments>
      <pubDate>Wed, 15 Feb 2023 16:59:44 +0900</pubDate>
    </item>
    <item>
      <title>[HTML]  ️ Video 태그 사용법.</title>
      <link>https://light9639.tistory.com/entry/Video-%ED%83%9C%EA%B7%B8-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (3).webp&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8ZYvk/btr0DWDZYGZ/0opYKZoXYJDHH981HbeGk0/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8ZYvk/btr0DWDZYGZ/0opYKZoXYJDHH981HbeGk0/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8ZYvk/btr0DWDZYGZ/0opYKZoXYJDHH981HbeGk0/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8ZYvk%2Fbtr0DWDZYGZ%2F0opYKZoXYJDHH981HbeGk0%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1200&quot; data-filename=&quot;img (3).webp&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;태그는 &lt;b&gt;HTML&lt;/b&gt; 상에서 비디오를 정의할 때 사용합니다. &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;&amp;nbsp;요소 내에 위치하는 텍스트는 사용자의 브라우저가 &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&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;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;비디오를 넣고 싶다면&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;비디오 파일 HTML 작성법&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 비디오 파일을 &lt;b&gt;작업 폴더 안에&lt;/b&gt; 준비합니다. 그리고 밑의 코드와 같이&amp;nbsp;작성하면 비디오가 보입니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;video&amp;gt;
  &amp;lt;source src=&quot;비디오파일경로&quot;&amp;gt;
&amp;lt;/video&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;비디오 태그에 넣을 수 있는 속성&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;비디오 태그 속성 작성법&lt;span style=&quot;background-color: #ffffff; color: #202124;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비디오 태그를 사용할 때 여러가지 속성을 넣을 수 있는데, 그 속성은 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;muted : 음소거 상태&lt;/li&gt;
&lt;li&gt;autoplay : 자동재생 (muted와 함께 넣어야 동작한다.)&lt;/li&gt;
&lt;li&gt;poster : 썸네일 이미지&lt;/li&gt;
&lt;li&gt;preload : 영상을 먼저 다운을 받을지 말지를 선택가능합니다 (auto, metadata, none 사용가능)&lt;/li&gt;
&lt;li&gt;controls : 재생, 정지 등 조작 메뉴를 보여준다.&lt;/li&gt;
&lt;li&gt;loop : 동영상을 반복 재생한다.&lt;/li&gt;
&lt;li&gt;poster : 동영상 재생 전에 보여줄 이미지이다.&lt;/li&gt;
&lt;li&gt;preload : 페이지를 열 때 무엇을 로드할지 정한다.&lt;/li&gt;
&lt;li&gt;auto : 동영상, 메타데이타 모두 로드한다.&lt;/li&gt;
&lt;li&gt;metadata : 메타데이타만 로드한다.&lt;/li&gt;
&lt;li&gt;none : 로드하지 않는다.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;source
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;src : 동영상 위치를 입력한다. 웹브라우저가 가장 많이 지원하는 형식은 MP4이다.&lt;/li&gt;
&lt;li&gt;type : 동영상 타입을 알려준다. 만약 MP4 파일이라면 video/mp4라고 적는다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;zzz : 웹브라우저가 video 태그를 지원하지 않을 때 출력될 텍스트이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 &lt;code&gt;video&lt;/code&gt; 태그를 사용할 때 상충되거나 혼자서는 작동하지 않는 속성이 있다. 예를 들어 &lt;b&gt;autoplay&lt;/b&gt;로 정하면 &lt;b&gt;preload&lt;/b&gt;는 무시된다. 크롬 등 일부 웹브라우저에서는 &lt;b&gt;muted&lt;/b&gt;와 &lt;b&gt;autoplay&lt;/b&gt;를 같이 사용해야 자동 시작이 작동한다. 이러한 속성을 넣은 &lt;code&gt;video&lt;/code&gt; 태그를 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;사용하려면&lt;span&gt; 다음과 같이 사용하면&lt;/span&gt;&lt;/span&gt; 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;xml&quot;&gt;&lt;code&gt;&amp;lt;video autoplay muted loop poster=&quot;썸네일경로&quot; preload=&quot;metadata&quot;&amp;gt;
  &amp;lt;source src=&quot;비디오파일경로&quot;&amp;gt;
&amp;lt;/video&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;예제 파일&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;여러개의 영상 넣기&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;브라우저에 따라 지원하는 코덱이 다르기 때문에 한 가지 형식만 사용했을 경우 일부 오래된 브라우저에서는 작동을 안 할 수 있습니다. 사용자의 브라우저 환경을 모두 고려한다면 최신 브라우저와 이전 브라우저도 모두 비디오를 재생할 수 있도록 &lt;b&gt;ogv&lt;/b&gt; 파일도 함께 지정해주어야 합니다&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676513215862&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;video&amp;gt;
  &amp;lt;source src=&quot;비디오 파일 경로&quot; type=&quot;video/mp4&quot;&amp;gt;&amp;lt;/source&amp;gt;
  &amp;lt;source src=&quot;비디오 파일 경로&quot; type=&quot;video/ogg&quot;&amp;gt;&amp;lt;/source&amp;gt;
  대체 내용
&amp;lt;/video&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: AppleSDGothicNeo-Regular, 'Malgun Gothic', '맑은 고딕', dotum, 돋움, sans-serif;&quot;&gt;&lt;b&gt;반복해서 재생되는 영상 예제.&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;페이지가 로드되면 동영상이 자동 재생되고, 반복하여 재생된다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;controls&lt;/code&gt;를 사용하지 않았기 때문에 재생이나 정지 등 조작 메뉴가 보이지 않는다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;video&lt;/code&gt; 태그를 지원하지 않는 웹브라우저에서는 &lt;b&gt;'Your browser does not support the video tag.'&lt;/b&gt;를 진하게 출력한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676472086849&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;video muted autoplay loop&amp;gt;
  &amp;lt;source src=&quot;videos.mp4&quot; type=&quot;video/mp4&quot;&amp;gt;
  &amp;lt;strong&amp;gt;Your browser does not support the video tag.&amp;lt;/strong&amp;gt;
&amp;lt;/video&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;재생되기 전 이미지를 보여주는 영상 예제.&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;페이지가 로드되면 &lt;code&gt;image.png&lt;/code&gt;라는 이미지와 재생 메뉴를 보여준다.&lt;/li&gt;
&lt;li&gt;재생 버튼을 클릭하면 동영상을 재생한다.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;video&lt;/code&gt; 태그를 지원하지 않는 웹브라우저에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;'Your browser does not support the video tag.'&lt;/b&gt;를 진하게 출력한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676472065785&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;video controls poster=&quot;image.png&quot;&amp;gt;
    &amp;lt;source src=&quot;videos.mp4&quot; type=&quot;video/mp4&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Your browser does not support the video tag.&amp;lt;/strong&amp;gt;
&amp;lt;/video&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  예제 파일&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 3가지 예제 파일을 &lt;code&gt;codesandbox&lt;/code&gt;로 구현하면 다음과 같다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/video-taegeu-t6j88e?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&amp;amp;view=preview&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://www.codingfactory.net/11877&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;HTML&amp;nbsp;/&amp;nbsp;video&amp;nbsp;/&amp;nbsp;동영상&amp;nbsp;삽입하는&amp;nbsp;태그&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://coding-factory.tistory.com/886&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[Html]&amp;nbsp;video&amp;nbsp;태그&amp;nbsp;사용법&amp;nbsp;&amp;amp;&amp;nbsp;예제&amp;nbsp;총정리&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/HTML</category>
      <category>html</category>
      <category>video</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/45</guid>
      <comments>https://light9639.tistory.com/entry/Video-%ED%83%9C%EA%B7%B8-%EC%82%AC%EC%9A%A9%EB%B2%95#entry45comment</comments>
      <pubDate>Wed, 15 Feb 2023 16:57:22 +0900</pubDate>
    </item>
    <item>
      <title>[CSS]  ️ 삼각형을 CSS로 만들어보자.</title>
      <link>https://light9639.tistory.com/entry/Css%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EC%82%BC%EA%B0%81%ED%98%95-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pIpn3/btr0BAOs6av/h5mNIN0oIePwX35wHWfkZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pIpn3/btr0BAOs6av/h5mNIN0oIePwX35wHWfkZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pIpn3/btr0BAOs6av/h5mNIN0oIePwX35wHWfkZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpIpn3%2Fbtr0BAOs6av%2Fh5mNIN0oIePwX35wHWfkZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #444444; text-align: start;&quot;&gt;&lt;b&gt;HTML&lt;/b&gt;과 &lt;b&gt;CSS&lt;/b&gt; 중 &lt;code&gt;border&lt;/code&gt; 속성을 이용하여 &lt;span style=&quot;color: #444444; text-align: start;&quot;&gt;삼각형을 만들 수 있다&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;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;HTML 생성하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삼각형을 만들려면 우선, &lt;code&gt;HTML&lt;/code&gt; 파일에 다음과 같이 내용이 없는 요소를 하나 생성한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1676431536216&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;triangle&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사각형 만들기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;HTML&lt;/code&gt;을 생성했다면, 가로와 세로의 크기를 0으로 만든다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 아래쪽과 왼쪽, 오른쪽에 테두리를 추가하면 사각형을 만들 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1676431546012&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.triangle {
    width: 0px;
    height: 0px;
    border-bottom: 360px solid #666666;
    border-left: 180px solid #666666;
    border-right: 180px solid #666666;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;삼각형 만들기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위에서 만든 사각형 &lt;code&gt;CSS&lt;/code&gt;를 오른쪽 테두리의 색을 투명으로 하면 삼각형이 만들어집니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1676431578510&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.triangle {
    width: 0px;
    height: 0px;
    border-bottom: 360px solid #666666;
    border-left: 180px solid transparent;
    border-right: 180px solid transparent;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테두리의 두께를 적절히 변경하면 여러 형태의 삼각형을 만들 수 있습니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676431497672&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.triangle {
  width: 0px;
  height: 0px;
  border-bottom: 360px solid #666666;
  border-left: 180px solid transparent;
  border-right: 180px solid transparent;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;정삼각형 만들기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정삼각형의 높이는 밑변 길이의 반의 1.732배이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것을 직접 계산하거나, &lt;code&gt;calc&lt;/code&gt; 속성으로 적절히 높이를 정해주면 정삼각형을 만들 수 있습니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1676431648543&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.triangle {
    width: 0px;
    height: 0px;
    border-bottom: calc( 180px * 1.732 ) solid #666666;
    border-left: 180px solid transparent;
    border-right: 180px solid transparent;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽 테두리의 크기를 0으로 하면 직각삼각형을 만들 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre id=&quot;code_1676431655796&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.triangle {
    width: 0px;
    height: 0px;
    border-bottom: 360px solid #666666;
    border-left: 0px solid transparent;
    border-right: 240px solid transparent;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://hasudoki.tistory.com/entry/CSS-CSS%EB%A1%9C-%EC%82%BC%EA%B0%81%ED%98%95-%EA%BA%BD%EC%87%A0%EC%B2%B4%ED%81%AC%EB%B0%95%EC%8A%A4-%ED%99%94%EC%82%B4%ED%91%9C-%EC%8A%A4%ED%94%BC%EB%84%88-%ED%96%84%EB%B2%84%EA%B1%B0-%EB%A9%94%EB%89%B4-%EA%B7%B8%EB%A6%AC%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt; [CSS] CSS로 삼각형, 꺽쇠(체크박스), 화살표, 스피너, 햄버거 메뉴 그리기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://www.codingfactory.net/12713&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CSS / 도형 만들기 / 삼각형&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://developer-doreen.tistory.com/5&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[CSS] 삼각형 만들기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <category>CSS</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/41</guid>
      <comments>https://light9639.tistory.com/entry/Css%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EC%82%BC%EA%B0%81%ED%98%95-%EB%A7%8C%EB%93%A4%EA%B8%B0#entry41comment</comments>
      <pubDate>Wed, 15 Feb 2023 12:27:55 +0900</pubDate>
    </item>
    <item>
      <title>[CSS]  ️ Border에 그라데이션 적용하기.</title>
      <link>https://light9639.tistory.com/entry/border%EC%97%90-%EA%B7%B8%EB%9D%BC%EB%8D%B0%EC%9D%B4%EC%85%98-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buH4bN/btr0JAF8vHt/dk5DgJnsm1Ju29iLDZyn4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buH4bN/btr0JAF8vHt/dk5DgJnsm1Ju29iLDZyn4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buH4bN/btr0JAF8vHt/dk5DgJnsm1Ju29iLDZyn4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuH4bN%2Fbtr0JAF8vHt%2Fdk5DgJnsm1Ju29iLDZyn4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://light9639.tistory.com/entry/%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EA%B7%B8%EB%9D%BC%EB%8D%B0%EC%9D%B4%EC%85%98-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;바로 전 포스팅&lt;/a&gt;에서 &lt;b&gt;텍스트에 그라데이션&lt;/b&gt;을 적용하는 법에 대해 알아보았다. 그렇다면 이번에는 &lt;b&gt;border에 그라데이션&lt;/b&gt;을 적용하는 법에 대해서 포스팅해보겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;예제 파일 작성하기&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Index.html 수정&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;index.html&lt;/b&gt;의 &lt;b&gt;body&lt;/b&gt; 부분 안에 밑의 코드를 작성한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676618233416&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;box1&quot;&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;box2&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Style.css 작성.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 &lt;b&gt;HTML&lt;/b&gt;에 &lt;b&gt;CSS&lt;/b&gt;를 다음과 같이 추가하여 박스들을 정 중앙에 위치시킨다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676623533888&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;html {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후&amp;nbsp;&lt;b&gt;.box1&lt;/b&gt; 부분에 다음과 같이 &lt;b&gt;CSS&lt;/b&gt;를 작성한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676623568213&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.box1 {
    width: 200px;
    height: 200px;
    border: 5px solid;
    border-radius: 20px;
    border-image: linear-gradient(to right, #231557 0%, #44107A 29%, #FF1361 67%, #FFF800 100%);
    border-image-slice: 1;
    margin: 10px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 위에서 작성한 &lt;b&gt;.box1&lt;/b&gt;은 &lt;b&gt;border&lt;/b&gt;에 &lt;b&gt;Gradient&lt;/b&gt;가 들어갔지만, &lt;code&gt;border-radius&lt;/code&gt;가 먹히지 않는 문제가 있다. 이를 해결하기 위해서는 &lt;code&gt;border-image&lt;/code&gt;&lt;span style=&quot;color: #212529;&quot;&gt;속성 대신 &lt;code&gt;background-image&lt;/code&gt;&lt;span style=&quot;color: #212529;&quot;&gt; 속성을 사용하여 컨텐츠와 테두리를 따로따로 설정을 해주어야 한다고 한다. 간단히 설명하자면, &lt;code&gt;background-origin&lt;/code&gt;은 &lt;code&gt;background&lt;/code&gt;의 시작점을 설정해주는 속성이며, &lt;code&gt;background-clip&lt;/code&gt;은 해당 &lt;code&gt;background&lt;/code&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;가 어느 요소까지를 차지할 것인지 설정하는 속성이라 할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 어떻게 작성해야 하나면,&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;.box {
  background-image:linear-gradient(#fff, #fff);
  background-origin: border-box;
  background-clip: content-box;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 콘텐츠 영역은 &lt;code&gt;#fff&lt;/code&gt;가 차지하게 하고&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;css&quot; data-ke-language=&quot;css&quot;&gt;&lt;code&gt;.box {
  background-image: linear-gradient(to right, #231557 0%, #44107A 29%, #FF1361 67%, #FFF800 100%);
  background-origin: border-box;
  background-clip: border-box;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;border&lt;/b&gt;영역은 그라디언트로 설정하여 나누면 된다. 따라서 다음 코드와 같이 작성하면 &lt;code&gt;border-radius&lt;/code&gt;가 적용된 &lt;code&gt;Gradient border&lt;/code&gt;를 만들 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676618248044&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.box2 {
    width: 200px;
    height: 200px;
    border: 5px solid transparent;
    border-radius: 20px;
    background-image: linear-gradient(#fff, #fff), linear-gradient(to right, #231557 0%, #44107A 29%, #FF1361 67%, #FFF800 100%);
    background-origin: border-box;
    background-clip: content-box, border-box;
    margin: 50px 10px 10px;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  완성화면&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성이 완료되었다면 밑에 화면 같이 생성될 것이다. 전체 코드를 보고 싶다면 제가 만든 &lt;b&gt;CodeSandBox&lt;/b&gt;를 참고하시면 될 듯 싶다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/blue-leftpad-1xxucl?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&amp;amp;view=preview&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://velog.io/@minaazz/CSS-border%EC%97%90-gradient%EB%A5%BC-%EB%84%A3%EC%96%B4%EB%B3%B4%EC%9E%90&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CSS&amp;nbsp;border에&amp;nbsp;gradient를&amp;nbsp;넣어보자&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://velog.io/@dltjsgho/css-border%EC%97%90-%EA%B7%B8%EB%9D%BC%EB%8D%B0%EC%9D%B4%EC%85%98-%EB%84%A3%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;css&amp;nbsp;:&amp;nbsp;)&amp;nbsp;border에&amp;nbsp;그라데이션&amp;nbsp;넣기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <category>CSS</category>
      <category>gradient</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/40</guid>
      <comments>https://light9639.tistory.com/entry/border%EC%97%90-%EA%B7%B8%EB%9D%BC%EB%8D%B0%EC%9D%B4%EC%85%98-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0#entry40comment</comments>
      <pubDate>Wed, 15 Feb 2023 12:21:15 +0900</pubDate>
    </item>
    <item>
      <title>[CSS]  ️ 텍스트에 그라데이션 적용하기.</title>
      <link>https://light9639.tistory.com/entry/%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EA%B7%B8%EB%9D%BC%EB%8D%B0%EC%9D%B4%EC%85%98-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBFEcg/btr0AN1xMWf/0pHuUl16aXa7Rn0aYFAdHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBFEcg/btr0AN1xMWf/0pHuUl16aXa7Rn0aYFAdHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBFEcg/btr0AN1xMWf/0pHuUl16aXa7Rn0aYFAdHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBFEcg%2Fbtr0AN1xMWf%2F0pHuUl16aXa7Rn0aYFAdHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 개발을 하다보면 가끔식 사용하는 &lt;b&gt;텍스트에 그라데이션 효과&lt;/b&gt;를 넣는 것이 헷갈릴 때가 있어서 지금 작성해보고자 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 텍스트에 적용되는 &lt;b&gt;그라디언트 속성&lt;/b&gt;을 다음과 같다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676444836108&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 이 속성은 그라데이션을 넣어주는 속성이다.
background: linear-gradient(방향, #색상 코드, #색상 코드, #색상 코드,... , #색상 코드);

# 이 속성은 요소의 배경이 어디까지 색을 채울지 정하는 속성이다.
-webkit-background-clip: text;

# 텍스트 문자의 채우기 색을 지정하는 속성으로, 이 속성이 지정되지 않는다면 color의 색상을 따라간다.
-webkit-text-fill-color: transparent;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼, 이 내용을 바탕으로 텍스트에 그라데이션을 적용하는 법을 작성해보자.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;예제 파일 작성하기&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Index.html&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 &lt;code&gt;index.html&lt;/code&gt;을 다음과 같이 작성한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;HTML&quot;&gt;HTML&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676443367530&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;

&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&amp;gt;
    &amp;lt;title&amp;gt;Document&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
    &amp;lt;div class=&quot;Wrapper&quot;&amp;gt;
        &amp;lt;h1&amp;gt;Text Gradient!&amp;lt;/h1&amp;gt;
        &amp;lt;div class=&quot;Circle&quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 style=&quot;text-align: left;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Style.css&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;index.html&lt;/code&gt;을 작성했다면 &lt;code&gt;style.css&lt;/code&gt;를 다음과 같이 작성한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676443835222&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.Wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 500px;
    margin: 0 auto;
    text-align: center;
}

h1 {
    font-size: 60px;
}

.Circle {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background-image: linear-gradient(to left, #00c6fb 0%, #005bea 100%);
    margin: 0 auto;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 텍스트에 그라디언트를 주고 싶다면 &lt;code&gt;h1&lt;/code&gt;에 스타일을 다음과 같이 수정한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676444761929&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;h1 {
    font-size: 60px;
    background-image: linear-gradient(to left, #00c6fb 0%, #005bea 100%);
    color: transparent;
    -webkit-background-clip: text;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #00a8f2;&quot;&gt; &lt;/span&gt; 완성 화면&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성이 완료되었다면 다음과 같은 화면이 나온다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish_wrapper&quot;&gt;&lt;iframe src=&quot;https://codesandbox.io/embed/romantic-pasteur-k760pq?fontsize=14&amp;amp;hidenavigation=1&amp;amp;theme=dark&amp;amp;view=preview&quot; width=&quot;100%&quot; height=&quot;500px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://dodolist.tistory.com/32&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;CSS&amp;nbsp;-&amp;nbsp;text&amp;nbsp;gradient&amp;nbsp;텍스트&amp;nbsp;그라데이션&amp;nbsp;효과&amp;nbsp;넣기&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://jae04099.tistory.com/entry/CSS-%EA%B8%80%EC%94%A8%EC%97%90-%EA%B7%B8%EB%9D%BC%EB%8D%B0%EC%9D%B4%EC%85%98-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[CSS]&amp;nbsp;글씨에&amp;nbsp;그라데이션&amp;nbsp;적용하기&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <category>CSS</category>
      <category>gradient</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/39</guid>
      <comments>https://light9639.tistory.com/entry/%ED%85%8D%EC%8A%A4%ED%8A%B8%EC%97%90-%EA%B7%B8%EB%9D%BC%EB%8D%B0%EC%9D%B4%EC%85%98-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0#entry39comment</comments>
      <pubDate>Wed, 15 Feb 2023 12:19:03 +0900</pubDate>
    </item>
    <item>
      <title>[TypeScript]   tsconfig.json 설정하기</title>
      <link>https://light9639.tistory.com/entry/yarn-%EC%84%A4%EC%B9%98-%EC%8B%9C-React-TypeScript-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;typescript-friendly-vue3.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IsDj2/btskJcUVbeV/WFkCBFcGlTakgDkG6d33y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IsDj2/btskJcUVbeV/WFkCBFcGlTakgDkG6d33y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IsDj2/btskJcUVbeV/WFkCBFcGlTakgDkG6d33y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIsDj2%2FbtskJcUVbeV%2FWFkCBFcGlTakgDkG6d33y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;typescript-friendly-vue3.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;tsconfig.json 설정하기&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기본적으로 &lt;code&gt;TypeScript&lt;/code&gt; 프로젝트에는 &lt;code&gt;tsconfig.json&lt;/code&gt;이 존재한다.&amp;nbsp; 이 파일에서는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;ts 파일들을 js 파일로 어떻게 변환할 것인지 세부 설정&lt;/code&gt;을 할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687314654808&quot; class=&quot;json&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;compilerOptions&quot;: {
        &quot;target&quot;: &quot;es5&quot;,
        &quot;module&quot;: &quot;commonjs&quot;,
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;target&lt;/code&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;타입스크립트 파일을 어떤 버전의 자바스크립트로 바꿀지를 정하는 부분이다.&amp;nbsp;&lt;code&gt;ES5&lt;/code&gt; 이외에도 &lt;code&gt;ES2016, ESNEXT&lt;/code&gt; 등 원하는 자바스크립트 버전을 설정할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;module&lt;/code&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;자바스크립트 파일간 &lt;code&gt;import&lt;/code&gt; 문법을 구현할 때 어떤 문법을 사용할 지를&lt;span&gt;&amp;nbsp;&lt;/span&gt;정하는 부분이다. &lt;code&gt;Commonjs&lt;/code&gt;는 &lt;code&gt;require 문법&lt;/code&gt;, &lt;code&gt;ES2015, ESNEXT&lt;/code&gt;는 &lt;code&gt;import 문법&lt;/code&gt;을 사용한다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;일반적으론&lt;span&gt;&amp;nbsp;&lt;/span&gt;IE 호환성을 위해서 &lt;code&gt;ES5, Commonjs&lt;/code&gt;가 보편적으로 사용된다.&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;추가로 넣을만한 속성&lt;/b&gt;&lt;/h2&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687314654810&quot; class=&quot;json&quot; style=&quot;color: #555555; text-align: start;&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;compilerOptions&quot;: {
        &quot;target&quot;: &quot;es5&quot;,
        &quot;module&quot;: &quot;commonjs&quot;,
        &quot;noImplicitAny&quot;: true,
        &quot;strictNullChecks&quot;: true
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;noImplictAny&lt;/code&gt;는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;any&lt;/code&gt;라는 타입이 의도치않게 발생한 경우 에러를 띄워주는 설정이며, &lt;code&gt;strictNullChecks&lt;/code&gt;는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;code&gt;null, undefined&lt;/code&gt; 타입에 이상한 조작을 할 경우 에러를 띄우는 설정이다.&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;tsconfig.json에 들어갈 기타 항목들&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #555555; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;code&gt;tsconfig.json&lt;/code&gt;에서 가끔식 사용하는 설정들을 모은 코드이다&lt;/span&gt;.&amp;nbsp;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;TypeScript&quot;&gt;TypeScript&lt;/span&gt;&lt;/div&gt;
&lt;pre class=&quot;json&quot; style=&quot;background-color: #282c34; color: #abb2bf; text-align: start;&quot;&gt;&lt;code&gt;{
 &quot;compilerOptions&quot;: {

  &quot;target&quot;: &quot;es5&quot;, // 'es3', 'es5', 'es2015', 'es2016', 'es2017','es2018', 'esnext' 가능
  &quot;module&quot;: &quot;commonjs&quot;, //무슨 import 문법 쓸건지 'commonjs', 'amd', 'es2015', 'esnext'
  &quot;allowJs&quot;: true, // js 파일들 ts에서 import해서 쓸 수 있는지 
  &quot;checkJs&quot;: true, // 일반 js 파일에서도 에러체크 여부 
  &quot;jsx&quot;: &quot;preserve&quot;, // tsx 파일을 jsx로 어떻게 컴파일할 것인지 'preserve', 'react-native', 'react'
  &quot;declaration&quot;: true, //컴파일시 .d.ts 파일도 자동으로 함께생성 (현재쓰는 모든 타입이 정의된 파일)
  &quot;outFile&quot;: &quot;./&quot;, //모든 ts파일을 js파일 하나로 컴파일해줌 (module이 none, amd, system일 때만 가능)
  &quot;outDir&quot;: &quot;./&quot;, //js파일 아웃풋 경로바꾸기
  &quot;rootDir&quot;: &quot;./&quot;, //루트경로 바꾸기 (js 파일 아웃풋 경로에 영향줌)
  &quot;removeComments&quot;: true, //컴파일시 주석제거 

  &quot;strict&quot;: true, //strict 관련, noimplicit 어쩌구 관련 모드 전부 켜기
  &quot;noImplicitAny&quot;: true, //any타입 금지 여부
  &quot;strictNullChecks&quot;: true, //null, undefined 타입에 이상한 짓 할시 에러내기 
  &quot;strictFunctionTypes&quot;: true, //함수파라미터 타입체크 강하게 
  &quot;strictPropertyInitialization&quot;: true, //class constructor 작성시 타입체크 강하게
  &quot;noImplicitThis&quot;: true, //this 키워드가 any 타입일 경우 에러내기
  &quot;alwaysStrict&quot;: true, //자바스크립트 &quot;use strict&quot; 모드 켜기

  &quot;noUnusedLocals&quot;: true, //쓰지않는 지역변수 있으면 에러내기
  &quot;noUnusedParameters&quot;: true, //쓰지않는 파라미터 있으면 에러내기
  &quot;noImplicitReturns&quot;: true, //함수에서 return 빼먹으면 에러내기 
  &quot;noFallthroughCasesInSwitch&quot;: true, //switch문 이상하면 에러내기 
 }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;관련 링크&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&lt;code&gt;tsconfig.json&lt;/code&gt;의 전체 설정은&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;밑의 링크들에서&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;확인할 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1687317089934&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;컴파일 설정 - TypeScript Guidebook&quot; data-og-description=&quot;&amp;quot;target&amp;quot;: &amp;quot;es5&amp;quot;, /* ECMAScript 목표 버전 설정: 'ES3'(기본), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ &amp;quot;module&amp;quot;: &amp;quot;esnext&amp;quot;, /* 생성될 모듈 코드 설정: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015&quot; data-og-host=&quot;yamoo9.gitbook.io&quot; data-og-source-url=&quot;https://yamoo9.gitbook.io/typescript/cli-env/tsconfig&quot; data-og-url=&quot;https://yamoo9.gitbook.io/typescript/cli-env/tsconfig&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://yamoo9.gitbook.io/typescript/cli-env/tsconfig&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://yamoo9.gitbook.io/typescript/cli-env/tsconfig&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;컴파일 설정 - TypeScript Guidebook&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&quot;target&quot;: &quot;es5&quot;, /* ECMAScript 목표 버전 설정: 'ES3'(기본), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */ &quot;module&quot;: &quot;esnext&quot;, /* 생성될 모듈 코드 설정: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;yamoo9.gitbook.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure id=&quot;og_1687316000135&quot; style=&quot;color: #333333; text-align: start;&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;TSConfig Reference - Docs on every TSConfig option&quot; data-og-description=&quot;From allowJs to useDefineForClassFields the TSConfig reference includes information about all of the active compiler flags setting up a TypeScript project.&quot; data-og-host=&quot;www.typescriptlang.org&quot; data-og-source-url=&quot;https://www.typescriptlang.org/tsconfig&quot; data-og-url=&quot;https://www.typescriptlang.org/tsconfig&quot; data-og-image=&quot;&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://www.typescriptlang.org/tsconfig&quot; data-source-url=&quot;https://www.typescriptlang.org/tsconfig&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('&amp;quot;&amp;quot;');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;TSConfig Reference - Docs on every TSConfig option&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;From allowJs to useDefineForClassFields the TSConfig reference includes information about all of the active compiler flags setting up a TypeScript project.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;www.typescriptlang.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://bum-developer.tistory.com/entry/TypeScript-%EC%BB%B4%ED%8C%8C%EC%9D%BC-%EC%8B%9C-%EC%84%B8%EB%B6%80-%EC%84%A4%EC%A0%95&quot;&gt;[TypeScript] 컴파일 시 세부 설정&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://any-ting.tistory.com/93&quot;&gt;[React TypeScript] React 프로젝트 TypeScript 적용&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;3&lt;/span&gt;&lt;a href=&quot;https://codingapple.com/unit/typescript-tsconfig-json/?id=11721&quot;&gt;Typescript 컴파일시 세부설정 (tsconfig.json)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/TypeScript</category>
      <category>typescript</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/38</guid>
      <comments>https://light9639.tistory.com/entry/yarn-%EC%84%A4%EC%B9%98-%EC%8B%9C-React-TypeScript-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0#entry38comment</comments>
      <pubDate>Wed, 15 Feb 2023 12:17:51 +0900</pubDate>
    </item>
    <item>
      <title>[SCSS]   SCSS를 이용한 반응형 웹 개발하기.</title>
      <link>https://light9639.tistory.com/entry/Scss%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B0%9C%EB%B0%9C%ED%95%98%EA%B8%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (3).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/noUl0/btr0HtntJ8H/pVy3lXC8Uu1gtEW14kyLrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/noUl0/btr0HtntJ8H/pVy3lXC8Uu1gtEW14kyLrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/noUl0/btr0HtntJ8H/pVy3lXC8Uu1gtEW14kyLrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnoUl0%2Fbtr0HtntJ8H%2FpVy3lXC8Uu1gtEW14kyLrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img (3).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;code&gt;CSS&lt;/code&gt;는 &lt;code&gt;HTML&lt;/code&gt; 태그를 꾸미거나 효과를 넣어 주는 등, 디자인 요소를 추가할 때 사용하는 전처리 과정을 의미한다. 프로젝트의 규모가 커지고 반응형 웹을 구현할 때 &lt;code&gt;CSS&lt;/code&gt;는 가독성이 떨어지고 유지보수가 어렵다는 단점이 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #555555;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;하지만 &lt;code&gt;SCSS&lt;/code&gt;는 &lt;code&gt;CSS&lt;/code&gt;와 달리 코드의 재활용성을 높이고, 가독성을 올려 주기 때문에 유용하다. 특히 변수를 활용하여 코드를 작성할 수 있도록 지원하기 때문에 코드의 가독성을 높여주고 반응형 웹 작성을 더 수월하게 만들 수 있다. 그럼 &lt;code&gt;SCSS&lt;/code&gt;를 이용하여 반응형 웹을 개발하는 방법을 알아보자.&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;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;SCSS를 이용한 반응형 웹 개발.&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SCSS에서 반응형 사이즈 사용법.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 &lt;code&gt;SCSS&lt;/code&gt;에서 변수를 설정하고 &lt;code&gt;@mixin&lt;/code&gt;을 사용하여 밑과 같이 작성한다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;SCSS&quot;&gt;SCSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676515402586&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$pc2000: 2000px;
$pc1560: 1560px;
$pc1420: 1420px;
$pc1280: 1280px;
$pc1200: 1200px;
$pc1024: 1024px;
$mobile767: 767px;
$mobile480: 480px;

//respond mixin
@mixin respond($size) {
    @media screen and (max-width:$size) {
        @content;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드를 사용하는 예제는 다음과 같다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;SCSS&quot;&gt;SCSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676515429234&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;body {
    background-color: #f6f5ef;
    @include respond($mobile767) {
        font-size: 12px;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;SCSS에서 position 사용법.&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 &lt;code&gt;CSS&lt;/code&gt;에서 &lt;code&gt;position&lt;/code&gt; 함수를 사용하려면 &lt;code&gt;top&lt;/code&gt;, &lt;code&gt;right&lt;/code&gt;, &lt;code&gt;bottom&lt;/code&gt;, &lt;code&gt;left&lt;/code&gt;를 지정하여 위치를 지정해야 한다. 그러나 &lt;code&gt;SCSS&lt;/code&gt;에서 &lt;code&gt;position&lt;/code&gt; 함수를 사용할 때 다음과 같이 &lt;code&gt;@mixin&lt;/code&gt;을 이용하면 쉽게 사용이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 기본 &lt;code&gt;position&lt;/code&gt;을 &lt;code&gt;absolute&lt;/code&gt;로 설정하고 &lt;code&gt;top&lt;/code&gt;, &lt;code&gt;right&lt;/code&gt;, &lt;code&gt;bottom&lt;/code&gt;, &lt;code&gt;left&lt;/code&gt;를 작성할 파라미터를 만들면 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;SCSS&quot;&gt;SCSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676515409078&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//position mixin
@mixin pos($p:absolute, $top:null, $right:null, $bottom:null, $left:null) {
    position: $p;
    top: $top;
    right: $right;
    bottom: $bottom;
    left: $left;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드를 사용하려면 밑의 식과 같이 원하는 &lt;code&gt;position&lt;/code&gt;을 입력하고 &lt;code&gt;top&lt;/code&gt;, &lt;code&gt;right&lt;/code&gt;, &lt;code&gt;bottom&lt;/code&gt;, &lt;code&gt;left&lt;/code&gt;를 작성하면 사용할 수 있다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;SCSS&quot;&gt;SCSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676515482959&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.video-container {
    @include pos($p: relative, $top: 0, $right: 0, $bottom: 0, $left: 0);
    padding: {
        top: 0;
        bottom: 34.1%;
    };
    height: 0;
    z-index: 1;
    overflow: hidden;
    @include respond($pc2000) {
        display: none;
    }
    video {
        @include pos($p:absolute, $top: -18%, $right: 0, $bottom: 0, $left: 0);
        opacity: 1;
        width: 100%;
        height: 46.4vw;
        transform: scale(1.05);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  예제 파일&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 많은 예제를 보고싶다면, 저의 &lt;code&gt;github&lt;/code&gt; 프로젝트에서 확인하실 수 있습니다.&lt;/p&gt;
&lt;figure id=&quot;og_1676515542458&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - light9639/StarBucks: ☕ StarBucks 프로젝트 소개 페이지입니다.&quot; data-og-description=&quot;☕ StarBucks 프로젝트 소개 페이지입니다. Contribute to light9639/StarBucks development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/light9639/StarBucks/blob/main/scss/style.scss&quot; data-og-url=&quot;https://github.com/light9639/StarBucks&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/I9oc5/hyRDYidZwF/v0nqmVcqa0bFm39GNLNKO1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/light9639/StarBucks/blob/main/scss/style.scss&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/light9639/StarBucks/blob/main/scss/style.scss&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/I9oc5/hyRDYidZwF/v0nqmVcqa0bFm39GNLNKO1/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - light9639/StarBucks: ☕ StarBucks 프로젝트 소개 페이지입니다.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;☕ StarBucks 프로젝트 소개 페이지입니다. Contribute to light9639/StarBucks development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <category>CSS</category>
      <category>SCSS</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/37</guid>
      <comments>https://light9639.tistory.com/entry/Scss%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EB%B0%98%EC%9D%91%ED%98%95-%EC%9B%B9-%EA%B0%9C%EB%B0%9C%ED%95%98%EA%B8%B0#entry37comment</comments>
      <pubDate>Wed, 15 Feb 2023 12:14:52 +0900</pubDate>
    </item>
    <item>
      <title>[Vuex]  ️ Vuex-Persistedstate 사용법.</title>
      <link>https://light9639.tistory.com/entry/Vuex-persistedstate-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;vuex-fundamentals.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8ETIa/btr0BWK0DMu/OG4CVWYo44MRAdRZbPQcG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8ETIa/btr0BWK0DMu/OG4CVWYo44MRAdRZbPQcG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8ETIa/btr0BWK0DMu/OG4CVWYo44MRAdRZbPQcG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8ETIa%2Fbtr0BWK0DMu%2FOG4CVWYo44MRAdRZbPQcG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;1080&quot; data-filename=&quot;vuex-fundamentals.png&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;1080&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 사이트를 이용하는 유저들은 브라우저를 사용하면서 뒤로가기 버튼을 클릭하여 화면이 새로고침이 되어 버리는 경우, 또는 다른 이유로 화면을 새로고침하는 경우가 있다. 이렇게 되면 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Vuex&lt;/b&gt;&lt;/span&gt;의 &lt;code&gt;store.js&lt;/code&gt;에 있거나 상태가 변경된 모든 값들이 초기화 되어버린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 상황을 방지하기 위해 &lt;span style=&quot;color: #f3c000;&quot;&gt;&lt;b&gt;JavaScript&lt;/b&gt;&lt;/span&gt;의 &lt;code&gt;localstoarge&lt;/code&gt; 관련 함수를 사용하기도 하지만, &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Vuex&lt;/b&gt;&lt;/span&gt;의 자료들을 &lt;code&gt;localstorage&lt;/code&gt;로 자동으로 저장시키고 다시 사용할 수 있게끔 도와주는 플러그인이&lt;span style=&quot;background-color: #ffffff; color: #323232;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Vuex-Persistedstate&lt;/b&gt;&lt;/span&gt;다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이번 글에서는 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Vuex-Persistedstate&lt;/b&gt;&lt;/span&gt;의 사용법에 대해 포스팅해보겠다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #323232;&quot;&gt;Vuex-Persistedstate 설치하기&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #323232;&quot;&gt;우선 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Vuex-Persistedstate&lt;/b&gt;&lt;/span&gt;를 설치합니다. 명령어는 다음과 같습니다.&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;Shell&quot;&gt;Shell&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676428669742&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$ npm install --save vuex-persistedstate
# or
$ yarn add vuex-persistedstate&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 id=&quot;선택한모듈만설정_4&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;필요한 데이터만 저장하기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Vue&lt;/b&gt;&lt;/span&gt;로 만든 프로젝트의 규모가 커져서 모든 &lt;code&gt;state&lt;/code&gt;값을 &lt;code&gt;localstorage&lt;/code&gt;에 저장할 경우 속도가 느려지는 문제가 발생할 수 있기 때문에, 필요한 모듈만 선택해서 저장하는 것이 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;밑의 코드대로 작성하면 &lt;code&gt;auth&lt;/code&gt;와 &lt;code&gt;cart&lt;/code&gt; 모듈의 &lt;code&gt;state&lt;/code&gt;값만 저장되고 다시 사용할 수 있게 된다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676428550601&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import createPersistedState from 'vuex-persistedstate';

const store = createStore({
    state() {
        return {
            value: 0,
            more: {},
        }
    },
	plugins: [
        createPersistedState({
            // 여기에 적은 state 값만 저장됨
            paths: [&quot;value&quot;],
        })
    ],
    {...options}
})

export default store&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;  예제 파일&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Vuex&lt;/b&gt;&lt;/span&gt;를 사용하여 만든 &lt;b&gt;Counter 연습 페이지&lt;/b&gt; 예제 파일.&lt;/p&gt;
&lt;figure id=&quot;og_1676428765074&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - light9639/Vuex-Counter: ⚗️ Vuex로 만든 Counter 연습 페이지입니다.&quot; data-og-description=&quot;⚗️ Vuex로 만든 Counter 연습 페이지입니다. Contribute to light9639/Vuex-Counter development by creating an account on GitHub.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/light9639/Vuex-Counter/blob/main/src/store/store.js&quot; data-og-url=&quot;https://github.com/light9639/Vuex-Counter&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Ar3E7/hyRCTPaucf/hOfuo57B6NzNtxiLvGR0Xk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/light9639/Vuex-Counter/blob/main/src/store/store.js&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/light9639/Vuex-Counter/blob/main/src/store/store.js&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Ar3E7/hyRCTPaucf/hOfuo57B6NzNtxiLvGR0Xk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - light9639/Vuex-Counter: ⚗️ Vuex로 만든 Counter 연습 페이지입니다.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;⚗️ Vuex로 만든 Counter 연습 페이지입니다. Contribute to light9639/Vuex-Counter development by creating an account on GitHub.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;b&gt; &lt;/b&gt;&amp;nbsp;Vuex-Persistedstate 공식 문서&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Vuex-Persistedstate&lt;/b&gt;&lt;/span&gt;의 공식 &lt;b&gt;Github&lt;/b&gt; 문서로 다양한 예제 및 사용법이 적혀있다.&lt;/p&gt;
&lt;figure id=&quot;og_1676428743199&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - robinvdvleuten/vuex-persistedstate:   Persist and rehydrate your Vuex state between page reloads.&quot; data-og-description=&quot;  Persist and rehydrate your Vuex state between page reloads. - GitHub - robinvdvleuten/vuex-persistedstate:   Persist and rehydrate your Vuex state between page reloads.&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/robinvdvleuten/vuex-persistedstate#readme&quot; data-og-url=&quot;https://github.com/robinvdvleuten/vuex-persistedstate&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bnCVs3/hyRD06YU2E/PuT5oq4wFWiTWXEhMCzeGK/img.png?width=1200&amp;amp;height=600&amp;amp;face=984_133_1053_208&quot;&gt;&lt;a href=&quot;https://github.com/robinvdvleuten/vuex-persistedstate#readme&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/robinvdvleuten/vuex-persistedstate#readme&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bnCVs3/hyRD06YU2E/PuT5oq4wFWiTWXEhMCzeGK/img.png?width=1200&amp;amp;height=600&amp;amp;face=984_133_1053_208');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - robinvdvleuten/vuex-persistedstate:   Persist and rehydrate your Vuex state between page reloads.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;  Persist and rehydrate your Vuex state between page reloads. - GitHub - robinvdvleuten/vuex-persistedstate:   Persist and rehydrate your Vuex state between page reloads.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Frontend/Vue</category>
      <category>vue</category>
      <category>Vuex</category>
      <category>vuex-persistedstate</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/36</guid>
      <comments>https://light9639.tistory.com/entry/Vuex-persistedstate-%EC%82%AC%EC%9A%A9%EB%B2%95#entry36comment</comments>
      <pubDate>Wed, 15 Feb 2023 11:33:41 +0900</pubDate>
    </item>
    <item>
      <title>[CSS]  ️ Scroll CSS 작성법.</title>
      <link>https://light9639.tistory.com/entry/Tistory-%EB%B8%94%EB%A1%9C%EA%B7%B8-Scroll-CSS-%EC%9E%91%EC%84%B1</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;다운로드.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsJrC4/btr0DVSfIzo/DNFgdOz0i9XE5kp98erOwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsJrC4/btr0DVSfIzo/DNFgdOz0i9XE5kp98erOwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsJrC4/btr0DVSfIzo/DNFgdOz0i9XE5kp98erOwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdsJrC4%2Fbtr0DVSfIzo%2FDNFgdOz0i9XE5kp98erOwk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;421&quot; data-filename=&quot;다운로드.png&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Tistory&lt;/b&gt; 블로그의 CSS를 수정하면서 사용했던 &lt;b&gt;스크롤 CSS 문법&lt;/b&gt;을 정리해 보려고 한다. 우선 스크롤바에는 밑의 3가지 CSS 코드를 추가하여 스타일을 적용할 수 있습니다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676428934399&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 스크롤바 영역에 대한 설정
::-webkit-scrollbar

# 스크롤바 막대에 대한 설정
::-webkit-scrollbar-thumb

# 스크롤바 뒷 배경에 대한 설정
::-webkit-scrollbar-track&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이처럼&lt;b&gt; 영역::코드 ( ex : &lt;span style=&quot;color: #0593d3;&quot;&gt;body::코드&lt;/span&gt; or &lt;span style=&quot;color: #0593d3;&quot;&gt;.container::코드 &lt;/span&gt;)&lt;/b&gt;로 스크롤 적용 대상을 제한하여 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 내용을 바탕으로 스크롤 CSS를 &lt;b&gt;Tistory&lt;/b&gt;의 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;style.css&lt;/b&gt;&lt;/span&gt;에 추가해 보았다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676364665854&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;body::-webkit-scrollbar {
  width: 12px; /* 스크롤바의 너비 */
}
body::-webkit-scrollbar-thumb {
  /* height: 30%; 스크롤바의 길이 */
  background-color: #9bbcf2; /* 스크롤바의 색상 */
  border-radius: 8px; /* 스크롤바 둥글기 */
}
body::-webkit-scrollbar-track {
  background-color: rgba(33, 122, 244, .1); /* 스크롤바 뒷 배경 색상*/
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://codingbroker.tistory.com/66&quot;&gt;[HTML,&amp;nbsp;CSS]&amp;nbsp;스크롤바&amp;nbsp;스타일(디자인)하는&amp;nbsp;방법&amp;nbsp;-&amp;nbsp;webkit-scrollbar&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://gurtn.tistory.com/120&quot;&gt;[CSS] 스크롤바 스타일&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/34</guid>
      <comments>https://light9639.tistory.com/entry/Tistory-%EB%B8%94%EB%A1%9C%EA%B7%B8-Scroll-CSS-%EC%9E%91%EC%84%B1#entry34comment</comments>
      <pubDate>Tue, 14 Feb 2023 17:51:34 +0900</pubDate>
    </item>
    <item>
      <title>[CSS]   Ellipsis를 이용하여 말줄임 처리하기.</title>
      <link>https://light9639.tistory.com/entry/CSS-%EB%A7%90%EC%A4%84%EC%9E%84</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gsu3r/btr0WfKsIOL/JK1bBWrSNAqDzTC7nsNqCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gsu3r/btr0WfKsIOL/JK1bBWrSNAqDzTC7nsNqCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gsu3r/btr0WfKsIOL/JK1bBWrSNAqDzTC7nsNqCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGsu3r%2Fbtr0WfKsIOL%2FJK1bBWrSNAqDzTC7nsNqCk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1280&quot; height=&quot;720&quot; data-filename=&quot;img (4).png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #3b454e;&quot;&gt;웹 개발을 하다보면, 디자인적인 측면에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;말줄임&lt;/b&gt;&lt;span style=&quot;color: #3b454e;&quot;&gt;(&lt;/span&gt;...&lt;span style=&quot;color: #3b454e;&quot;&gt;)을 사용해야 하는 경우가 많다. 왜냐하면 이렇게 말줄임표를 사용해야 디자인이 더 깔끔해 보이기 때문이다. 말줄임 &lt;b&gt;CSS&lt;/b&gt; 문법은 다음과 같다.&lt;/span&gt;&lt;span style=&quot;color: #3b454e;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676378535382&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;overflow: hidden; : 박스에서 넘쳐난 텍스트 숨기기
white-space: nowrap; : 줄바꿈이 없어짐
text-overflow: ellipsis; : ... 말줄임 효과
-webkit-line-clamp : '글자'; : '글자'의 최대 라인수를 결정
-webkit-box-orient: vertical; : 영역 박스의 내의 정렬을 수직으로 만든다.
word-break: break-all; : 어절이 유지되지 않고 끊어져서 줄바꿈 됨&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span&gt;말줄임 문법&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span&gt;한줄만 나타내기&lt;/span&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과)&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;Lorem, ipsum dolor sit amet consectetur...&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676363589870&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.ellipsis1 {
    width: 100px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2&lt;b&gt;줄까지만 나타내기&lt;/b&gt;&lt;/b&gt;&lt;span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과)&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;Lorem,&amp;nbsp;ipsum&amp;nbsp;dolor&amp;nbsp;sit&amp;nbsp;amet&amp;nbsp;consectetur&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;adipisicing elit. Molestias vel excepturi...&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676363589870&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.ellipsis2 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2; 
    -webkit-box-orient: vertical;
}&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3줄까지만 나타내기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;b&gt;결과)&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;Lorem,&amp;nbsp;ipsum&amp;nbsp;dolor&amp;nbsp;sit&amp;nbsp;amet&amp;nbsp;consectetur&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;adipisicing&amp;nbsp;elit.&amp;nbsp;Molestias&amp;nbsp;vel&amp;nbsp;excepturi,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span&gt;ullam dignissimos laboriosam, tempore...&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;CSS&quot;&gt;CSS&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676363589871&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.ellipsis3 {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3; 
    -webkit-box-orient: vertical;
}&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote class=&quot;admonition warning&quot; style=&quot;user-select: auto;&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p class=&quot;admonition-title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;주의사항&lt;/p&gt;
&lt;p style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;-webkit&lt;/code&gt;&lt;span style=&quot;color: #666666;&quot;&gt;문법&lt;/span&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #212529;&quot;&gt;은&lt;span&gt;&amp;nbsp;&lt;/span&gt;구글이나&amp;nbsp;사파리에서만 사용이 가능하기 때문에,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;-webkit&lt;/code&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #212529;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;문법을 사용할 때는 반드시&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #212529;&quot;&gt;브라우저의&lt;span&gt;&amp;nbsp;&lt;/span&gt;지원 범위를 확인하고 사용해야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://mong-blog.tistory.com/entry/css-%ED%95%9C-%EC%A4%84-%EC%97%AC%EB%9F%AC-%EC%A4%84-%EB%A7%90%EC%A4%84%EC%9E%84&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[css]&amp;nbsp;한&amp;nbsp;줄,&amp;nbsp;여러&amp;nbsp;줄&amp;nbsp;말줄임&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://deeplify.dev/front-end/markup/text-ellipsis&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;[HTML/CSS]&amp;nbsp;말줄임&amp;nbsp;표시&amp;nbsp;하는&amp;nbsp;방법:&amp;nbsp;1줄,&amp;nbsp;2줄&amp;nbsp;예제&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Frontend/CSS, SCSS</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/33</guid>
      <comments>https://light9639.tistory.com/entry/CSS-%EB%A7%90%EC%A4%84%EC%9E%84#entry33comment</comments>
      <pubDate>Tue, 14 Feb 2023 17:39:36 +0900</pubDate>
    </item>
    <item>
      <title>[Node.js]  ️ (import / export), (require / exports) 문법 사용법.</title>
      <link>https://light9639.tistory.com/entry/Nodejs%EC%97%90%EC%84%9C-import-export-require-exports-%EB%AC%B8%EB%B2%95-%EC%82%AC%EC%9A%A9%EB%B2%95</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img (3).jpg&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;720&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUaKtQ/btr0Hyo3DWq/j9kZMi1ayx23kkLxjBIwRk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUaKtQ/btr0Hyo3DWq/j9kZMi1ayx23kkLxjBIwRk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUaKtQ/btr0Hyo3DWq/j9kZMi1ayx23kkLxjBIwRk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUaKtQ%2Fbtr0Hyo3DWq%2Fj9kZMi1ayx23kkLxjBIwRk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;720&quot; data-filename=&quot;img (3).jpg&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;720&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #181c32; text-align: start;&quot;&gt;(import&amp;nbsp;/&amp;nbsp;export),&amp;nbsp;(require&amp;nbsp;/&amp;nbsp;exports)&amp;nbsp;문법&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #181c32; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #181c32; text-align: start;&quot;&gt;자바스크립트에서의 대표적인 파일 입출력 방법은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;CommonJS&lt;/code&gt;&lt;span style=&quot;background-color: #ffffff; color: #181c32; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;code&gt;ES6&lt;/code&gt;&lt;span style=&quot;background-color: #ffffff; color: #181c32; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;문법이 있습니다. &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #181c32; text-align: start;&quot;&gt;서로 사용법이 다르며, 특징과 차이점이 있다. 그럼 이 두가지 차이점에 대해 포스팅해 보겠다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;ES6&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;문법&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;(&lt;/span&gt;import /&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;export)&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;toc_특징&quot; style=&quot;background-color: #ffffff; color: #181c32; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #181c32; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;ES6&lt;/code&gt;에서 새롭게 도입된 키워드입니다.&lt;/li&gt;
&lt;li&gt;자바와 파이썬 언어 방식과 비슷합니다.&lt;/li&gt;
&lt;li&gt;파일 시작 부분에서만 호출 가능&lt;/li&gt;
&lt;li&gt;필요한 모듈 부분만 선택하고 로드할 수 있어 더 선호 &lt;code&gt;require()&lt;/code&gt; 에 비해 성능이 우수하며 메모리 절약&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687007152279&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import : 가져오기
export : 내보내기
export defaults : 내보내기&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote class=&quot;admonition warning&quot; style=&quot;user-select: auto;&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p class=&quot;admonition-title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;Tip&lt;/p&gt;
&lt;p style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;출력할 때 &lt;code&gt;export(ES6)&lt;/code&gt; 와 &lt;code&gt;exports(CommonJS)&lt;/code&gt;를 헷갈리지 않도록 주의해야 합니다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686661492156&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* ES6 */
import name from './module.js'&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686661540474&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* ES6 */
const name = '고양이';

export default name;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;CommonJs&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;문법&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/b&gt;&lt;b&gt;&lt;b&gt;(&lt;/b&gt;require / exports)&lt;/b&gt;&lt;/h2&gt;
&lt;h3 id=&quot;toc_특징&quot; style=&quot;background-color: #ffffff; color: #181c32; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #181c32; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;code&gt;NodeJS&lt;/code&gt; 에서 사용하고 있는 &lt;code&gt;CommonJS&lt;/code&gt; 모듈 키워드입니다.&lt;/li&gt;
&lt;li&gt;루비 언어 방식과 비슷합니다.&lt;/li&gt;
&lt;li&gt;파일 어느 지점에서든지 호출 가능&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;사용법&lt;/b&gt;&lt;/h3&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1687007260877&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;require : 가져오기
exports : 내보내기
module.exports : 내보내기&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;require() : module.exports&lt;/code&gt; 를 리턴한다. &lt;code&gt;exports&lt;/code&gt;는 &lt;code&gt;module.exports&lt;/code&gt; 를 &lt;code&gt;refer&lt;/code&gt; 한 것이고, &lt;code&gt;shortcut&lt;/code&gt; 에 불과하다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686661450712&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* CommonJS  */
const name = require('./module.js');&lt;/code&gt;&lt;/pre&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1686661523496&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/* CommonJS  */
const name = '고양이';

module.exports = name;&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 id=&quot;Node.js_에서_import_키워드_사용_방법&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;Node.js 에서 import 키워드 사용 방법&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비록 정식적으로 노드의 &lt;code&gt;CommonJS&lt;/code&gt;를 대체할 수는 없지만, 자바스크립트 노드 프로젝트에서&lt;span&gt; &lt;code&gt;import&lt;/code&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;키워드를 사용하도록 지정 설정을 할 수 있는 방법 또한 존재한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;과거에는 &lt;code&gt;import, export&lt;/code&gt;를 인식시키기 위해 따로 &lt;code&gt;.mjs&lt;/code&gt;라는 확장자를 사용해 모듈 키워드를 구분하는 방법을 사용했었다.&lt;/p&gt;
&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;code&gt;app.js&lt;/code&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;대신에&lt;span&gt; &lt;code&gt;app.mjs&lt;/code&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;로 소스 파일을 만드는 식으로 말이다. 하지만 이제는 &lt;code&gt;package.json&lt;/code&gt;을 통해서 간편하게 설정할 수 있어서 확장자를 바꾸지 않아도 &lt;code&gt;import, export&lt;/code&gt;를 쓸 수 있게 되었다.&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676361334090&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
    &quot;type&quot;: &quot;module&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #373e48;&quot;&gt;다음은 &lt;code&gt;express&lt;/code&gt; 모듈을 &lt;code&gt;import&lt;/code&gt; 키워드로 받아서 서버를 실행하는 샘플 코드이다.&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeBlock_stylish&quot;&gt;&lt;span data-ke-language=&quot;JavaScript&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;
&lt;pre id=&quot;code_1676361370976&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// const express = require('express');
import express from 'express';

const app = express();

app.get('/', (req, res) =&amp;gt; {
   res.send('&amp;lt;h1&amp;gt;Hello World!&amp;lt;/h1&amp;gt;');
});

app.listen(3000, () =&amp;gt; {
   console.log('3000번 포트 서버 시작');
});&lt;/code&gt;&lt;/pre&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://rading.kr/programming/javascript/nodejs/3181/&quot;&gt;Node | require , import, export/s 차이점&lt;/a&gt;&lt;/li&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;2&lt;/span&gt;&lt;a href=&quot;https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-require-%E2%9A%94%EF%B8%8F-import-CommonJs%EC%99%80-ES6-%EC%B0%A8%EC%9D%B4-1&quot;&gt;  require vs import 문법 비교 (CommonJS vs ES6)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Backend/Node.js</category>
      <category>express</category>
      <category>javascript</category>
      <category>node.js</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/30</guid>
      <comments>https://light9639.tistory.com/entry/Nodejs%EC%97%90%EC%84%9C-import-export-require-exports-%EB%AC%B8%EB%B2%95-%EC%82%AC%EC%9A%A9%EB%B2%95#entry30comment</comments>
      <pubDate>Tue, 14 Feb 2023 16:59:03 +0900</pubDate>
    </item>
    <item>
      <title>[Git]   VSCode Git 연동 오류 해결.</title>
      <link>https://light9639.tistory.com/entry/VsCode-Git-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0</link>
      <description>&lt;div class=&quot;txc-textbox&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;목차&lt;/b&gt;&lt;/p&gt;
&lt;ol id=&quot;toc&quot; style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;&lt;/ol&gt;
&lt;script type=&quot;text/javascript&quot;&gt; $(function(){ $(&quot;#toc&quot;).toc( {content: &quot;.tt_article_useless_p_margin&quot;, headings: &quot;h2,h3&quot; , top: -90, isBlink : true, blinkColor : '#3669CF' } ) }); &lt;/script&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img.jpg&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMTfUE/btskAH7p1fI/x7c4HeoDRb0vVdKuBLNMV1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMTfUE/btskAH7p1fI/x7c4HeoDRb0vVdKuBLNMV1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMTfUE/btskAH7p1fI/x7c4HeoDRb0vVdKuBLNMV1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMTfUE%2FbtskAH7p1fI%2Fx7c4HeoDRb0vVdKuBLNMV1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1200&quot; height=&quot;630&quot; data-filename=&quot;img.jpg&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;VSCode&amp;nbsp;Git&amp;nbsp;연동&amp;nbsp;오류&amp;nbsp;해결&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프론트엔드 웹개발을 하던 초창기에 &lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;갑자기 &lt;code&gt;VsCode&lt;/code&gt;로 작성하던 텍스트 파일 &lt;code&gt;commit&lt;/code&gt;이 에러가 일어났다. 다행히 지금은 해결되었지만 문제를 해결하게 된 사이트의&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;사진처럼 갑자기 소스제어에 공급자가 없다면서 &lt;code&gt;VsCode&lt;/code&gt; 상에 커밋이 불가능하게 되었다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style=&quot;width: 450px; max-width: 75%&quot; src=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbkgdjl%2FbtrZkaIVfEl%2FPrhZ4Ve13L4hkGaQm73zz0%2Fimg.png&quot; alt=&quot;img&quot; /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당시 필자의 &lt;code&gt;VsCode&lt;/code&gt;도 상태가 딱 저랬다. 그러나 당시에는 해결방법을 몰랐기에 한동안 방치해 두다가 작년 10월 쯤에 어떤 블로그 글을 보고 문제를 해결헀다. &lt;a href=&quot;https://velog.io/@zimmerweg/VSC-Git-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;VSC&amp;nbsp;Git&amp;nbsp;연동&amp;nbsp;오류&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;K-001.gif&quot; data-origin-width=&quot;3872&quot; data-origin-height=&quot;2312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bouqNL/btrZexZP5KB/LkB9SGiYH1wXrk1Kd8GDQk/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bouqNL/btrZexZP5KB/LkB9SGiYH1wXrk1Kd8GDQk/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bouqNL/btrZexZP5KB/LkB9SGiYH1wXrk1Kd8GDQk/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/bouqNL/btrZexZP5KB/LkB9SGiYH1wXrk1Kd8GDQk/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;3872&quot; height=&quot;2312&quot; data-filename=&quot;K-001.gif&quot; data-origin-width=&quot;3872&quot; data-origin-height=&quot;2312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;링크의 글을 보고 위의 사진처럼 &lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;왼쪽 툴바의 확장에 들어가서 &lt;code&gt;@Builtin Git&lt;/code&gt;을 검색한 뒤&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;code&gt;Git SCM&lt;/code&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt; 통합을 클릭했다. 당시에는 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;비활성화 상태였었는데 사용 버튼을 클릭했더니, 설정에 들어가니 &lt;/span&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;code&gt;Git is enabled&lt;/code&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;를 선택할 수 있게 되었다. 이후로는 &lt;code&gt;Git commit&lt;/code&gt;을 &lt;code&gt;VsCode&lt;/code&gt; 상에서 사용할 수 있게 되어 매우 유용했다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 해결방법을 포함하여 링크에서는 7가지 경우의 수가 더 있을 수 있다고 한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트 폴더의 &lt;code&gt;.git&lt;/code&gt; 파일이 삭제된 경우.&lt;/li&gt;
&lt;li id=&quot;2--vscode에-git-글로벌-연동이-해제된-경우&quot;&gt;&lt;code&gt;VsCode&lt;/code&gt;에 &lt;code&gt;git&lt;/code&gt; 글로벌 연동이 해제된 경우.&lt;/li&gt;
&lt;li id=&quot;3--로컬git이-삭제된-경우&quot;&gt;로컬 &lt;code&gt;Git&lt;/code&gt;이 삭제된 경우.&lt;/li&gt;
&lt;li id=&quot;4-vscode가-실행-가능한-git명령을-찾을-수-없는-경우&quot;&gt;&lt;code&gt;VsCode&lt;/code&gt;가 실행 가능한 &lt;code&gt;git&lt;/code&gt; 명령을 찾을 수 없는 경우.&lt;/li&gt;
&lt;li id=&quot;5--확장을-설치해야하는-경우&quot;&gt;확장을 설치해야하는 경우.&lt;/li&gt;
&lt;li id=&quot;6-맥의-경우-최근에-xcode를-업데이트-했다면&quot;&gt;맥의 경우 최근에 Xcode를 업데이트된 경우.&lt;/li&gt;
&lt;li id=&quot;7-vscode-소스트리가-해제되었다면&quot;&gt;&lt;code&gt;VsCode&lt;/code&gt; 소스트리가 해제된 경우.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;만약 위의 7가지를 다했는데도 해결되지 않는다면, &lt;code&gt;Git&lt;/code&gt; 과 &lt;code&gt;VsCode&lt;/code&gt;를 삭제하고 재설치하는 것도 방법일 수 있다고 한다. 위 7가지 경우에 대한 자세한 해결방법은 &lt;a href=&quot;https://velog.io/@zimmerweg/VSC-Git-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;링크&lt;/a&gt;에서 확인하면 된다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;div class=&quot;Reference_Box&quot; style=&quot;user-select: auto;&quot;&gt;
&lt;p class=&quot;Reference_Title&quot; style=&quot;user-select: auto;&quot; data-ke-size=&quot;size16&quot;&gt;참고 문헌&lt;/p&gt;
&lt;ul style=&quot;user-select: auto;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;user-select: auto;&quot;&gt;&lt;span style=&quot;user-select: auto;&quot;&gt;1&lt;/span&gt;&lt;a href=&quot;https://velog.io/@zimmerweg/VSC-Git-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;VSC&amp;nbsp;Git&amp;nbsp;연동&amp;nbsp;오류&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>Git &amp;amp; Github</category>
      <category>Git</category>
      <category>vscode</category>
      <author>Light9639</author>
      <guid isPermaLink="true">https://light9639.tistory.com/29</guid>
      <comments>https://light9639.tistory.com/entry/VsCode-Git-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0#entry29comment</comments>
      <pubDate>Tue, 14 Feb 2023 16:32:06 +0900</pubDate>
    </item>
  </channel>
</rss>