<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>냠</title>
    <link>https://yeeeon.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 5 Aug 2026 14:51:48 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>옝옹</managingEditor>
    <image>
      <title>냠</title>
      <url>https://tistory1.daumcdn.net/tistory/5257130/attach/d15157ebac5f491880697817d9198e1c</url>
      <link>https://yeeeon.tistory.com</link>
    </image>
    <item>
      <title>[Day5] Javscript</title>
      <link>https://yeeeon.tistory.com/93</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Day6부터는 &lt;a href=&quot;https://yeeun426.github.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://yeeun426.github.io/&lt;/a&gt; 여기에 정리하였습니다. !&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Javascript variables&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;변수는 데이터를 저장하기 위한 컨테이너&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;i&gt;JS의 변수 선언 방법&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 95px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.1705%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;변수 선언 방법&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.4962%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;언제 사용해야하나요?&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.1705%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;var&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.4962%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;오래된 브라우저를 사용해야 하는 경우&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.1705%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;let&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.4962%; height: 19px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;const를 사용할 수 없는 경우&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 27.1705%; height: 38px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;const&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 39.4962%; height: 38px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 값을 변경하면 안되는 경우 (상수)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. type을 변경하면 안되는 경우&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;b&gt;Javascript 식별자&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이름에는 문자, 숫자, 밑줄, 달러 기호가 포함될 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이름은 문자로 시작해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이름은 $와 _로 시작할 수도 있습니다&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이름은 대소문자를 구분합니다(y와 Y는 다른 변수입니다).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예약어(JavaScript 키워드 등)는 이름으로 사용할 수 없습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;b&gt;할당 연산자&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: js에서 등호(=)는 &quot;equal to&quot; 연산자가 아닌 &quot;대입&quot; 연산자이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;** &quot;equal to&quot; 연산자는 JS에서는 == 와 같이 작성된다. **&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;b&gt;변수 선언&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737707025659&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var carName;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt; value없이 선언된 변수는&amp;nbsp;&amp;nbsp;&lt;i&gt;&lt;b&gt;undefined &lt;/b&gt;&lt;/i&gt;값을 갖는다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737707159746&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let person = &quot;John Doe&quot;, carName = &quot;Volvo&quot;, price = 200;
// 하나의 문장에서 여러개의 변수 선언&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;i&gt;&lt;b&gt;Javascript Let&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;var 키워드의 문제점 &lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;var로 선언된 변수는 다시 선언해도 값이 손실되지 않는다.&lt;br /&gt;
&lt;pre id=&quot;code_1737707394957&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var carName = &quot;Volvo&quot;;
var carName;
// carName은 여전히 Volvo를 갖는다.​&lt;/code&gt;&lt;/pre&gt;
var는 재선언, 업데이트 모두 가능하다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;i&gt;&lt;b&gt;let 키워드는 var 키워드의 다른점  &lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;let은 업데이트는 가능하지만 재선언이 불가능하다.&lt;br /&gt;
&lt;pre id=&quot;code_1737707890247&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let carName = &quot;Volvo&quot;;
let carName;
// 해당 코드는 작동하지 않음​&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;i&gt;&lt;b&gt;const 키워드 특징  &lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;var, let, const&lt;br /&gt;let보다 const를 사용해라?&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;i&gt;&lt;b&gt;Javascript 산술&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 앞에 부터 차근차근 연산한다.&lt;/p&gt;
&lt;pre id=&quot;code_1737708081331&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let x = &quot;5&quot; + 2 + 3; // &quot;523&quot; 출력
let x = 2 + 3 + &quot;5&quot;; // &quot;55&quot; 출력&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-pm-slice=&quot;1 3 []&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;호이스팅 (Hoisting)&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;JavaScript는 변수와 함수 선언을 코드 실행 전에 메모리에 미리 할당하는 특성이 있음.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;변수 선언이 코드의 최상단으로 끌어올려지는 것처럼 동작하는 현상을 &lt;/span&gt;&lt;span&gt;&lt;b&gt;호이스팅&lt;/b&gt;&lt;/span&gt;&lt;span&gt;이라 함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;예제:&lt;/span&gt;&lt;span&gt;위 코드에서 &lt;/span&gt;&lt;span&gt;var a;&lt;/span&gt;&lt;span&gt;가 내부적으로 최상단으로 이동함.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;console.log(a); // undefined var a = 10;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;let&lt;/span&gt;&lt;span&gt;과 &lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt;는 이러한 루즈한 문법을 방지하기 위해 등장했으며, 호이스팅은 되지만 초기화 전에는 접근 불가함 (Temporal Dead Zone).&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>[LG유플러스]유레카 SW</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/93</guid>
      <comments>https://yeeeon.tistory.com/93#entry93comment</comments>
      <pubDate>Fri, 24 Jan 2025 22:31:14 +0900</pubDate>
    </item>
    <item>
      <title>[Day4] 부트스트랩 &amp;amp; Javascript</title>
      <link>https://yeeeon.tistory.com/92</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Bootstrap 5 is mobile-first&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모바일 기기에 반응하도록 설계하기 위해 아래 meta태그를 추가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;아래 코드가 없는 경우 반응형으로 적용되지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737592192091&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;** p-5가 최대이며, 숫자가 그 이상이 되면 그냥 0이 됨 **&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;BS5 Tables&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737594705240&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;table class=&quot;table&quot;&amp;gt;
    &amp;lt;thead&amp;gt;
      &amp;lt;tr&amp;gt;
        &amp;lt;th&amp;gt;Firstname&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Lastname&amp;lt;/th&amp;gt;
        &amp;lt;th&amp;gt;Email&amp;lt;/th&amp;gt;
      &amp;lt;/tr&amp;gt;
    &amp;lt;/thead&amp;gt;
    &amp;lt;tbody&amp;gt;
      &amp;lt;tr&amp;gt;
        &amp;lt;td&amp;gt;John&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;Doe&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;john@example.com&amp;lt;/td&amp;gt;
      &amp;lt;/tr&amp;gt;
      &amp;lt;tr&amp;gt;
        &amp;lt;td&amp;gt;Mary&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;Moe&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;mary@example.com&amp;lt;/td&amp;gt;
      &amp;lt;/tr&amp;gt;
      &amp;lt;tr&amp;gt;
        &amp;lt;td&amp;gt;July&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;Dooley&amp;lt;/td&amp;gt;
        &amp;lt;td&amp;gt;july@example.com&amp;lt;/td&amp;gt;
      &amp;lt;/tr&amp;gt;
    &amp;lt;/tbody&amp;gt;
  &amp;lt;/table&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-filename=&quot;edited_스크린샷 2025-01-23 오전 10.12.15.png&quot; data-origin-width=&quot;1271&quot; data-origin-height=&quot;370&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxWxei/btsLYern2PY/rMOpGGBkfGXtnJsgioo2jK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxWxei/btsLYern2PY/rMOpGGBkfGXtnJsgioo2jK/img.png&quot; data-alt=&quot;기본 Bootstrap 5 테이블에는 가벼운 padding과 수평 구분선이 있습니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxWxei/btsLYern2PY/rMOpGGBkfGXtnJsgioo2jK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxWxei%2FbtsLYern2PY%2FrMOpGGBkfGXtnJsgioo2jK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;227&quot; data-filename=&quot;edited_스크린샷 2025-01-23 오전 10.12.15.png&quot; data-origin-width=&quot;1271&quot; data-origin-height=&quot;370&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;기본 Bootstrap 5 테이블에는 가벼운 padding과 수평 구분선이 있습니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;table style=&quot;color: #333333; font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; font-size: 16px; letter-spacing: 0px; border-collapse: collapse; width: 98.8372%; height: 308px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.6512%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;class&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.3488%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;effect&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 142px;&quot;&gt;
&lt;td style=&quot;width: 23.6512%; height: 142px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.table-striped&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.3488%; height: 142px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오전 10.13.06.png&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;382&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhPSUm/btsLW3whMpU/FqlnKqekHktRy0pSHLCek1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhPSUm/btsLW3whMpU/FqlnKqekHktRy0pSHLCek1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhPSUm/btsLW3whMpU/FqlnKqekHktRy0pSHLCek1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhPSUm%2FbtsLW3whMpU%2FFqlnKqekHktRy0pSHLCek1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;152&quot; data-filename=&quot;스크린샷 2025-01-23 오전 10.13.06.png&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;382&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 115px;&quot;&gt;
&lt;td style=&quot;width: 23.6512%; height: 115px;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.table-bordered&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.3488%; height: 115px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오전 10.14.31.png&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wL1Cf/btsLWtCc8VZ/CRZttq2p82lPZOVdUhp77K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wL1Cf/btsLWtCc8VZ/CRZttq2p82lPZOVdUhp77K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wL1Cf/btsLWtCc8VZ/CRZttq2p82lPZOVdUhp77K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwL1Cf%2FbtsLWtCc8VZ%2FCRZttq2p82lPZOVdUhp77K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;140&quot; data-filename=&quot;스크린샷 2025-01-23 오전 10.14.31.png&quot; data-origin-width=&quot;1256&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.6512%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.table-hover&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.3488%; height: 17px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오후 5.25.04.png&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;352&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0htlj/btsLYcmPgdO/hV6nKmq2kSri1EB4Pg9i7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0htlj/btsLYcmPgdO/hV6nKmq2kSri1EB4Pg9i7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0htlj/btsLYcmPgdO/hV6nKmq2kSri1EB4Pg9i7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0htlj%2FbtsLYcmPgdO%2FhV6nKmq2kSri1EB4Pg9i7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;83&quot; data-filename=&quot;스크린샷 2025-01-23 오후 5.25.04.png&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;352&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;br /&gt;행에 호버 효과&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.6512%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.table-dark&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.3488%; height: 17px;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오후 5.25.38.png&quot; data-origin-width=&quot;2100&quot; data-origin-height=&quot;316&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/twlb2/btsLZkcVOfQ/JWiXSr9kawXIrrVubglqD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/twlb2/btsLZkcVOfQ/JWiXSr9kawXIrrVubglqD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/twlb2/btsLZkcVOfQ/JWiXSr9kawXIrrVubglqD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftwlb2%2FbtsLZkcVOfQ%2FJWiXSr9kawXIrrVubglqD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;75&quot; data-filename=&quot;스크린샷 2025-01-23 오후 5.25.38.png&quot; data-origin-width=&quot;2100&quot; data-origin-height=&quot;316&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.6512%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.table-borderless&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.3488%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오후 5.26.22.png&quot; data-origin-width=&quot;2030&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvUIJy/btsLZtniupa/BnFYp9Sj0Tq4uLNRzXFWJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvUIJy/btsLZtniupa/BnFYp9Sj0Tq4uLNRzXFWJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvUIJy/btsLZtniupa/BnFYp9Sj0Tq4uLNRzXFWJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvUIJy%2FbtsLZtniupa%2FBnFYp9Sj0Tq4uLNRzXFWJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;94&quot; data-filename=&quot;스크린샷 2025-01-23 오후 5.26.22.png&quot; data-origin-width=&quot;2030&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 23.6512%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.table-responsive&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 76.3488%;&quot;&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;273&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUbVkb/btsLXXXMKJd/8e0SAiwoJeTTdVq60YakJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUbVkb/btsLXXXMKJd/8e0SAiwoJeTTdVq60YakJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUbVkb/btsLXXXMKJd/8e0SAiwoJeTTdVq60YakJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUbVkb%2FbtsLXXXMKJd%2F8e0SAiwoJeTTdVq60YakJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;94&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;273&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;BS5 Responsive Images&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.img-fluid 를&amp;nbsp;추가하여 반응형 이미지를 만들면 부모 요소에 맞게 잘 조정된다&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.img-fluid 클래스는&amp;nbsp;이미지에 max-width: 100%; height: auto; 를&amp;nbsp;적용한다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;BS5 Alerts&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-24 오전 12.50.44.png&quot; data-origin-width=&quot;1742&quot; data-origin-height=&quot;782&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMITLu/btsLZFarjgN/eOKkATk34ZRZuhxQimkefK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMITLu/btsLZFarjgN/eOKkATk34ZRZuhxQimkefK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMITLu/btsLZFarjgN/eOKkATk34ZRZuhxQimkefK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMITLu%2FbtsLZFarjgN%2FeOKkATk34ZRZuhxQimkefK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;775&quot; height=&quot;348&quot; data-filename=&quot;스크린샷 2025-01-24 오전 12.50.44.png&quot; data-origin-width=&quot;1742&quot; data-origin-height=&quot;782&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;bootstrap alert에 javascript 더하기&lt;/span&gt;&lt;/blockquote&gt;
&lt;pre id=&quot;code_1737621625899&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;title&amp;gt;Bootstrap Example&amp;lt;/title&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&quot;&amp;gt;
  &amp;lt;link href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;&amp;gt;
  &amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;script&amp;gt;
  	function a(){
    	const bValue=document.getElementById('b').value;
        if(bValue===&quot;&quot;){
        	//alert(&quot;값 없음&quot;);
            document.getElementById(&quot;c&quot;).style.visibility=&quot;visible&quot;;
        }
    	
    }
  &amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;div class=&quot;container mt-3&quot;&amp;gt;
  &amp;lt;h2&amp;gt;Alerts&amp;lt;/h2&amp;gt;
  &amp;lt;p&amp;gt;Alerts are created with the .alert class, followed by a contextual color classes:&amp;lt;/p&amp;gt;
  &amp;lt;div class=&quot;alert alert-success&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Success!&amp;lt;/strong&amp;gt; This alert box could indicate a successful or positive action.
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;alert alert-info&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Info!&amp;lt;/strong&amp;gt; This alert box could indicate a neutral informative change or action.
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;alert alert-warning&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Warning!&amp;lt;/strong&amp;gt; This alert box could indicate a warning that might need attention.
  &amp;lt;/div&amp;gt;
  &amp;lt;input id=&quot;b&quot; /&amp;gt;&amp;lt;button onclick=&quot;a()&quot;&amp;gt;전송&amp;lt;/button&amp;gt;
  &amp;lt;div class=&quot;alert alert-danger&quot; style=&quot;visibility:hidden;&quot; id=&quot;c&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Danger!&amp;lt;/strong&amp;gt; This alert box could indicate a dangerous or potentially negative action.
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;alert alert-primary&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Primary!&amp;lt;/strong&amp;gt; Indicates an important action.
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;alert alert-secondary&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Secondary!&amp;lt;/strong&amp;gt; Indicates a slightly less important action.
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;alert alert-dark&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Dark!&amp;lt;/strong&amp;gt; Dark grey alert.
  &amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;alert alert-light&quot;&amp;gt;
    &amp;lt;strong&amp;gt;Light!&amp;lt;/strong&amp;gt; Light grey alert.
  &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;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Spinner buttons&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오후 11.41.04.png&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;86&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FS3ma/btsLYD5EtCE/eWzbJXnahyJ78MAXizoTdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FS3ma/btsLYD5EtCE/eWzbJXnahyJ78MAXizoTdK/img.png&quot; data-alt=&quot;스피너가 계속해서 돌아가는 효과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FS3ma/btsLYD5EtCE/eWzbJXnahyJ78MAXizoTdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFS3ma%2FbtsLYD5EtCE%2FeWzbJXnahyJ78MAXizoTdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;172&quot; height=&quot;62&quot; data-filename=&quot;스크린샷 2025-01-23 오후 11.41.04.png&quot; data-origin-width=&quot;238&quot; data-origin-height=&quot;86&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;스피너가 계속해서 돌아가는 효과&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1737643227356&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button class=&quot;btn btn-primary&quot;&amp;gt;
	&amp;lt;span class=&quot;spinner-border spinner-border-sm&quot;&amp;gt;&amp;lt;/span&amp;gt;
	Loading..
&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;BS5 Progress Bars&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-24 오전 12.50.15.png&quot; data-origin-width=&quot;1740&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ce4s2w/btsLZFBvW7U/q4LtLnacHorymLU9qPrYM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ce4s2w/btsLZFBvW7U/q4LtLnacHorymLU9qPrYM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ce4s2w/btsLZFBvW7U/q4LtLnacHorymLU9qPrYM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fce4s2w%2FbtsLZFBvW7U%2Fq4LtLnacHorymLU9qPrYM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;207&quot; data-filename=&quot;스크린샷 2025-01-24 오전 12.50.15.png&quot; data-origin-width=&quot;1740&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;BS5 &lt;b&gt;Pagination&lt;/b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-24 오전 12.44.52.png&quot; data-origin-width=&quot;530&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bncjAZ/btsLZXWdDla/wiKX923APhqKvbxN0raHk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bncjAZ/btsLZXWdDla/wiKX923APhqKvbxN0raHk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bncjAZ/btsLZXWdDla/wiKX923APhqKvbxN0raHk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbncjAZ%2FbtsLZXWdDla%2FwiKX923APhqKvbxN0raHk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;372&quot; height=&quot;63&quot; data-filename=&quot;스크린샷 2025-01-24 오전 12.44.52.png&quot; data-origin-width=&quot;530&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1737647112189&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ul class=&quot;pagination&quot;&amp;gt;
  &amp;lt;li class=&quot;page-item&quot;&amp;gt;&amp;lt;a class=&quot;page-link&quot; href=&quot;#&quot;&amp;gt;Previous&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li class=&quot;page-item&quot;&amp;gt;&amp;lt;a class=&quot;page-link&quot; href=&quot;#&quot;&amp;gt;1&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li class=&quot;page-item&quot;&amp;gt;&amp;lt;a class=&quot;page-link&quot; href=&quot;#&quot;&amp;gt;2&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li class=&quot;page-item&quot;&amp;gt;&amp;lt;a class=&quot;page-link&quot; href=&quot;#&quot;&amp;gt;3&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
  &amp;lt;li class=&quot;page-item&quot;&amp;gt;&amp;lt;a class=&quot;page-link&quot; href=&quot;#&quot;&amp;gt;Next&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;BS5 Modal&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본 모달 만드는 방법&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737647253905&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- Button to Open the Modal --&amp;gt;
&amp;lt;button type=&quot;button&quot; class=&quot;btn btn-primary&quot; data-bs-toggle=&quot;modal&quot; data-bs-target=&quot;#myModal&quot;&amp;gt;
  Open modal
&amp;lt;/button&amp;gt;

&amp;lt;!-- The Modal --&amp;gt;
&amp;lt;div class=&quot;modal&quot; id=&quot;myModal&quot;&amp;gt;
  &amp;lt;div class=&quot;modal-dialog&quot;&amp;gt;
    &amp;lt;div class=&quot;modal-content&quot;&amp;gt;

      &amp;lt;!-- Modal Header --&amp;gt;
      &amp;lt;div class=&quot;modal-header&quot;&amp;gt;
        &amp;lt;h4 class=&quot;modal-title&quot;&amp;gt;Modal Heading&amp;lt;/h4&amp;gt;
        &amp;lt;button type=&quot;button&quot; class=&quot;btn-close&quot; data-bs-dismiss=&quot;modal&quot;&amp;gt;&amp;lt;/button&amp;gt;
      &amp;lt;/div&amp;gt;

      &amp;lt;!-- Modal body --&amp;gt;
      &amp;lt;div class=&quot;modal-body&quot;&amp;gt;
        Modal body..
      &amp;lt;/div&amp;gt;

      &amp;lt;!-- Modal footer --&amp;gt;
      &amp;lt;div class=&quot;modal-footer&quot;&amp;gt;
        &amp;lt;button type=&quot;button&quot; class=&quot;btn btn-danger&quot; data-bs-dismiss=&quot;modal&quot;&amp;gt;Close&amp;lt;/button&amp;gt;
      &amp;lt;/div&amp;gt;

    &amp;lt;/div&amp;gt;
  &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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;부트스트랩으로 회원가입 모달 만드는 예제&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;pre id=&quot;code_1737643578677&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;title&amp;gt;Bootstrap 5 Example&amp;lt;/title&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&quot; /&amp;gt;
    &amp;lt;link
      href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css&quot;
      rel=&quot;stylesheet&quot;
    /&amp;gt;
    &amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;style&amp;gt;
      .modal_body {
        font-family: Arial, sans-serif;
        background-color: #f4f4f4;
        display: flex;
        justify-content: center;
        align-items: center;
        /* height: 50vh; */
        margin: 0;
      }
      .modal_container {
        background-color: white;
        padding: 20px;
        border-radius: 8px;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        /* width: 300px; */
        margin: 50px 0;
      }
      .modal_container h1 {
        text-align: center;
        color: #333;
      }
      .modal_container label {
        margin-top: 10px;
        display: block;
        color: #555;
      }
      .modal_container input[type=&quot;text&quot;],
      .modal_container input[type=&quot;email&quot;],
      .modal_container input[type=&quot;password&quot;] {
        width: 100%;
        padding: 10px;
        margin-top: 5px;
        border: 1px solid #ccc;
        border-radius: 4px;
        box-sizing: border-box;
      }
      .modal_container input[type=&quot;submit&quot;] {
        background-color: #5cb85c;
        color: white;
        border: none;
        padding: 10px;
        border-radius: 4px;
        cursor: pointer;
        width: 100%;
        margin-top: 15px;
      }
      .modal_container input[type=&quot;submit&quot;]:hover {
        background-color: #4cae4c;
      }
    &amp;lt;/style&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;div class=&quot;container p-5 bg-primary text-white text-center&quot;&amp;gt;
      &amp;lt;h1&amp;gt;My First Bootstrap Page&amp;lt;/h1&amp;gt;
      &amp;lt;p&amp;gt;Resize this responsive page to see the effect!&amp;lt;/p&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div class=&quot;container&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;nav class=&quot;navbar navbar-expand-sm bg-dark navbar-dark&quot;&amp;gt;
          &amp;lt;div class=&quot;container-fluid&quot;&amp;gt;
            &amp;lt;ul class=&quot;navbar-nav&quot;&amp;gt;
              &amp;lt;li class=&quot;nav-item&quot;&amp;gt;
                &amp;lt;a
                  class=&quot;nav-link active&quot;
                  href=&quot;#&quot;
                  data-bs-toggle=&quot;modal&quot;
                  data-bs-target=&quot;#a&quot;
                  &amp;gt;회원가입&amp;lt;/a
                &amp;gt;
              &amp;lt;/li&amp;gt;
              &amp;lt;li class=&quot;nav-item&quot;&amp;gt;
                &amp;lt;a class=&quot;nav-link&quot; href=&quot;#&quot;&amp;gt;Link&amp;lt;/a&amp;gt;
              &amp;lt;/li&amp;gt;
              &amp;lt;li class=&quot;nav-item&quot;&amp;gt;
                &amp;lt;a class=&quot;nav-link&quot; href=&quot;#&quot;&amp;gt;Link&amp;lt;/a&amp;gt;
              &amp;lt;/li&amp;gt;
              &amp;lt;li class=&quot;nav-item&quot;&amp;gt;
                &amp;lt;a class=&quot;nav-link disabled&quot; href=&quot;#&quot;&amp;gt;Disabled&amp;lt;/a&amp;gt;
              &amp;lt;/li&amp;gt;
            &amp;lt;/ul&amp;gt;
          &amp;lt;/div&amp;gt;
        &amp;lt;/nav&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;div class=&quot;container mt-5 border&quot;&amp;gt;
      &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-sm-4&quot;&amp;gt;
          &amp;lt;h3&amp;gt;Column 1&amp;lt;/h3&amp;gt;
          &amp;lt;p&amp;gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit...&amp;lt;/p&amp;gt;
          &amp;lt;p&amp;gt;
            Ut enim ad minim veniam, quis nostrud exercitation ullamco
            laboris...
          &amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;col-sm-4&quot;&amp;gt;
          &amp;lt;h3&amp;gt;Column 2&amp;lt;/h3&amp;gt;
          &amp;lt;p&amp;gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit...&amp;lt;/p&amp;gt;
          &amp;lt;p&amp;gt;
            Ut enim ad minim veniam, quis nostrud exercitation ullamco
            laboris...
          &amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;col-sm-4&quot;&amp;gt;
          &amp;lt;h3&amp;gt;Column 3&amp;lt;/h3&amp;gt;
          &amp;lt;p&amp;gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit...&amp;lt;/p&amp;gt;
          &amp;lt;p&amp;gt;
            Ut enim ad minim veniam, quis nostrud exercitation ullamco
            laboris...
          &amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;!-- The Modal --&amp;gt;

    &amp;lt;div class=&quot;modal&quot; id=&quot;a&quot;&amp;gt;
      &amp;lt;div class=&quot;modal-dialog&quot;&amp;gt;
        &amp;lt;div class=&quot;modal-content&quot;&amp;gt;
          &amp;lt;!-- Modal Header --&amp;gt;
          &amp;lt;div class=&quot;modal-header&quot;&amp;gt;
            &amp;lt;h4 class=&quot;modal-title&quot;&amp;gt;회원가입&amp;lt;/h4&amp;gt;
            &amp;lt;button
              type=&quot;button&quot;
              class=&quot;btn-close&quot;
              data-bs-dismiss=&quot;modal&quot;
            &amp;gt;&amp;lt;/button&amp;gt;
          &amp;lt;/div&amp;gt;

          &amp;lt;!-- Modal body --&amp;gt;
          &amp;lt;div class=&quot;modal_body&quot;&amp;gt;
            &amp;lt;div class=&quot;modal_container&quot;&amp;gt;
              &amp;lt;form action=&quot;/submit&quot; method=&quot;post&quot;&amp;gt;
                &amp;lt;label for=&quot;name&quot;&amp;gt;이름:&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;text&quot; id=&quot;name&quot; name=&quot;name&quot; required /&amp;gt;

                &amp;lt;label for=&quot;email&quot;&amp;gt;이메일:&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;email&quot; id=&quot;email&quot; name=&quot;email&quot; required /&amp;gt;

                &amp;lt;label for=&quot;password&quot;&amp;gt;비밀번호:&amp;lt;/label&amp;gt;
                &amp;lt;input type=&quot;password&quot; id=&quot;password&quot; name=&quot;password&quot; required /&amp;gt;

                &amp;lt;input type=&quot;submit&quot; value=&quot;가입하기&quot; /&amp;gt;
              &amp;lt;/form&amp;gt;
            &amp;lt;/div&amp;gt;
          &amp;lt;/div&amp;gt;
        &amp;lt;/div&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;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;JavaScript&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;i&gt;javascript는 html 컨텐츠를 변경할 수 있다.&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737647609585&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;document.getElementById(&quot;demo&quot;).innerHTML = &quot;Hello JavaScript&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오후 1.34.11.png&quot; data-origin-width=&quot;2020&quot; data-origin-height=&quot;790&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vTmc1/btsLWBURWur/5cWxqpNU4APV24YY3m4PF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vTmc1/btsLWBURWur/5cWxqpNU4APV24YY3m4PF0/img.png&quot; data-alt=&quot;(ex 1) javascript는 html 컨텐츠를 변경할 수 있다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vTmc1/btsLWBURWur/5cWxqpNU4APV24YY3m4PF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvTmc1%2FbtsLWBURWur%2F5cWxqpNU4APV24YY3m4PF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;791&quot; height=&quot;309&quot; data-filename=&quot;스크린샷 2025-01-23 오후 1.34.11.png&quot; data-origin-width=&quot;2020&quot; data-origin-height=&quot;790&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(ex 1) javascript는 html 컨텐츠를 변경할 수 있다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;왼쪽 버튼을 클릭하면 myImage라는 아이디를 가진 요소의 pic_bulbon.gif로 바꾸겠다. &lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;오른쪽 버튼을 누르면 다시 pic_buloff.gif로 바꾼다.&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;style1&quot; /&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;i&gt;javascript는 css를 변경할 수 있다.&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737648006242&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;document.getElementById(&quot;demo&quot;).style.fontSize = &quot;35px&quot;;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #c0d1e7;&quot;&gt;&lt;b&gt;JS Where to go&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;b&gt;&amp;lt;script&amp;gt; tag&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: HTML에서는 JavaScript 코드가&amp;nbsp;&amp;lt;script&amp;gt;및&amp;nbsp;&amp;lt;/script&amp;gt;태그 사이에 삽입됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737607351480&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;!-- src로 외부 스크립트를 가져옴--&amp;gt;
  &amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; 
  &amp;lt;!-- 내 코드를 불러옴 --&amp;gt;
  &amp;lt;script&amp;gt;
    alert()
  &amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;JS Output&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;innerHTML :&amp;nbsp; HTML 요소에 쓰기&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;document.write() : HTML 출력에 쓰기&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;HTML 문서가 로드된 후에 document.write()를 사용하면&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;기존 HTML이 모두 삭제된다&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;window.alert() : alert 에 쓰기&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;console.log() : 브라우저 콘솔에 쓰기&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;디버깅 목적으로 메서드 호출&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;window.print() : 현재 창의 내용을 인쇄&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;JS의 변수는 ES6에서 추가된 중요한 개념이기 때문에 다음 블로그에서 호이스팅과 변수, 재할당 등에 대해 정리를 할 것이다 !&lt;/blockquote&gt;</description>
      <category>[LG유플러스]유레카 SW</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/92</guid>
      <comments>https://yeeeon.tistory.com/92#entry92comment</comments>
      <pubDate>Thu, 23 Jan 2025 23:46:41 +0900</pubDate>
    </item>
    <item>
      <title>[Day3] CSS 기초 &amp;amp; bootstrap</title>
      <link>https://yeeeon.tistory.com/91</link>
      <description>&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;css 강의는 새로 알게된 개념과 면접에서 필요한 개념 위주로 정리해보았다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS Box model&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- 디자인과 레이아웃을 설명할 때 사용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- box model은 본질적으로 모든 html 요소를 감싸는 상자이다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Content&amp;nbsp;- 텍스트와 이미지가 나타나는 상자의 내용&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Padding&amp;nbsp;- &lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;콘텐츠 주변 영역을 지웁니다. padding은 투명합니다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Border&amp;nbsp;- &lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;패딩과 콘텐츠를 둘러싼 테두리&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Margin&amp;nbsp;- &lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;테두리 밖의 영역을 지웁니다. margin은 투명합니다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 8.37.37.png&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;840&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pmuWM/btsLWbuUkOK/p3g4Z4GXZTHvYfqMeYGQlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pmuWM/btsLWbuUkOK/p3g4Z4GXZTHvYfqMeYGQlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pmuWM/btsLWbuUkOK/p3g4Z4GXZTHvYfqMeYGQlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpmuWM%2FbtsLWbuUkOK%2Fp3g4Z4GXZTHvYfqMeYGQlK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;533&quot; height=&quot;384&quot; data-filename=&quot;스크린샷 2025-01-22 오후 8.37.37.png&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;840&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;** 요소의 총 width와 height를 계산하려면 padding과 border도 포함해야 한다. **&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;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;css outline&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: border 바깥쪽에 그려진 선&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 9.50.28.png&quot; data-origin-width=&quot;1154&quot; data-origin-height=&quot;638&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cK5x53/btsLWQKDlqv/iOIPYhkfE1mfhWLQ4vqiB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cK5x53/btsLWQKDlqv/iOIPYhkfE1mfhWLQ4vqiB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cK5x53/btsLWQKDlqv/iOIPYhkfE1mfhWLQ4vqiB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcK5x53%2FbtsLWQKDlqv%2FiOIPYhkfE1mfhWLQ4vqiB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;565&quot; height=&quot;312&quot; data-filename=&quot;스크린샷 2025-01-22 오후 9.50.28.png&quot; data-origin-width=&quot;1154&quot; data-origin-height=&quot;638&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS Font&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737507060138&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;.p1 {
  font-family: &quot;Times New Roman&quot;, Times, serif;
}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;font-family 속성은 브라우저/운영 체제 간의 최대 호환성을 보장하기 위해 &quot;대체&quot; 시스템으로 여러 글꼴 이름을 보유해야 합니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;두번째, 세번째 글꼴은 첫 번째 글꼴을 찾을 수 없는 경우를 대비한 백업&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS Links&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;상태에 따라 link의 스타일이 다르게 지정될 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;a:link- 일반적인 방문하지 않은 링크&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;a:visited- 사용자가 방문한 링크&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;a:hover- 사용자가 마우스를 올리면 링크가 표시됩니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;a:active- 클릭하는 순간 링크&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;** a:hover는 a:link와 a:visited 뒤에 와야 하며, a:active는 a:hover 뒤에 와야 합니다. **&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; letter-spacing: 0px; color: #000000;&quot;&gt;CSS Display&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; letter-spacing: 0px; color: #000000;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;화면에 어떻게 드러날지를 결정&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 90.1163%; height: 112px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 38px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;block&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 62.5582%; height: 38px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본값&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;width가 100%가 되게함 -&amp;gt; 전체 너비를 차지한다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;inline&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 62.5582%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;새 줄에서 시작하지 않는 컨텐츠만 감쌀 정도의 크기&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;inline-block&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 62.5582%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;inline 속성을 갖지만 임의로 크기 변경 가능&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;none&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 62.5582%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;화면에서 사라짐&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;display : none  OR visibility : hidden&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;display: none&amp;nbsp;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요소가 숨겨지고 페이지는 요소가 없는 것처럼 표시&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;visibilty : hidden&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요소가 숨겨지지만 레이아웃에는 있는 것처럼 영향을 미침&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS Position&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;문서 상에 요소를 배치하는 방법&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 133px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 38px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;static&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 72.4419%; height: 38px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;작성된 순서대로 브라우저에 표시&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #f6e199; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;static 으로 위치한 요소는 위쪽, 아래쪽, 왼쪽, 오른쪽 속성의 영향을 받지 않습니다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;relative&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 72.4419%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;원래 위치를 상대적으로 배치&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;fixed&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 72.4419%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특정 부분에 고정&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 38px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 38px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;absolute&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 72.4419%; height: 38px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;배치 기준을 가장 가까운 위치에 지정된 상위요소에서 찾음&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;부모 요소를 기준으로 속성 적용&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 27.5581%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;sticky&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 72.4419%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자의 스크롤 위치를 기준으로 요소가 배치됨&lt;br /&gt;즉, 스크롤링할 때 효과를 봄&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS Float&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;float 속성&lt;/i&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: 콘텐츠의 위치와 형식을 지정하는 데 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;오른쪽, 왼쪽으로 객체를 띄어서 정렬하는 속성&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사진에 float 속성을 적용하면 이후에 오는 글자나 다른 요소들은 그 사진 주위로 둘러싼 형태가 된다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;left- 요소는 컨테이너의 왼쪽에 떠 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;right- 요소가 컨테이너의 오른쪽에 떠 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;none- 요소는 떠다니지 않습니다(텍스트에서 발생한 위치에만 표시됩니다). 이는 기본값입니다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;inherit- 요소는 부모의 float 값을 상속받습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kOUeA/btsLXS1ZJQ8/HACP6BYZ8O2da03wHtthTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kOUeA/btsLXS1ZJQ8/HACP6BYZ8O2da03wHtthTk/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1166&quot; data-origin-height=&quot;510&quot; data-filename=&quot;스크린샷 2025-01-22 오후 10.30.08.png&quot; style=&quot;width: 48.2025%; margin-right: 10px;&quot; data-widthpercent=&quot;48.77&quot; height=&quot;165&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kOUeA/btsLXS1ZJQ8/HACP6BYZ8O2da03wHtthTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkOUeA%2FbtsLXS1ZJQ8%2FHACP6BYZ8O2da03wHtthTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1166&quot; height=&quot;510&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EHPAn/btsLWMBslI1/E9e6OoIT6JOXO9w3Xk8Sp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EHPAn/btsLWMBslI1/E9e6OoIT6JOXO9w3Xk8Sp0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;488&quot; data-filename=&quot;스크린샷 2025-01-22 오후 10.30.37.png&quot; style=&quot;width: 50.6347%;&quot; data-widthpercent=&quot;51.23&quot; height=&quot;171&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EHPAn/btsLWMBslI1/E9e6OoIT6JOXO9w3Xk8Sp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEHPAn%2FbtsLWMBslI1%2FE9e6OoIT6JOXO9w3Xk8Sp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1172&quot; height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;img { float: right;}&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사진 주위로 글자가 따라 붙지 않게 하려면 ?&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;b&gt;-&amp;gt; clear 속성&lt;/b&gt; &lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: float바로 아래에 있는 요소(오른쪽이나 왼쪽이 아닌)를 원할 경우 해당 속성을 사용해야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;none - 기초값, clear를 설정하지 않는 것과 같음&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;left - 요소는 왼쪽에 떠 있는 요소 아래로 밀려납니다. (왼쪽 취소)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;right - 해당 요소는 오른쪽에 떠 있는 요소 아래로 밀려납니다. (오른쪽 취소)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;both - 해당 요소는 왼쪽 및 오른쪽 플로팅 요소 아래로 푸시됩니다. (오른쪽 왼쪽 취소)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;inherit - 요소는 부모로부터 명확한 값을 상속받습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737553301612&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&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;style&amp;gt;
.div1 {
  float: left;
  padding: 10px;
  border: 3px solid #73AD21;
}

.div2 {
  padding: 10px;
  border: 3px solid red;
}

.div3 {
  float: left;
  padding: 10px;  
  border: 3px solid #73AD21;
}

.div4 {
  padding: 10px;
  border: 3px solid red;
  clear: left;
}
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h2&amp;gt;Without clear&amp;lt;/h2&amp;gt;
&amp;lt;div class=&quot;div1&quot;&amp;gt;div1&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;div2&quot;&amp;gt;div2 - Notice that div2 is after div1 in the HTML code. However, since div1 floats to the left, the text in div2 flows around div1.&amp;lt;/div&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

&amp;lt;h2&amp;gt;With clear&amp;lt;/h2&amp;gt;
&amp;lt;div class=&quot;div3&quot;&amp;gt;div3&amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;div4&quot;&amp;gt;div4 - Here, clear: left; moves div4 down below the floating div3. The value &quot;left&quot; clears elements floated to the left. You can also clear &quot;right&quot; and &quot;both&quot;.&amp;lt;/div&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&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-filename=&quot;스크린샷 2025-01-22 오후 10.41.53.png&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;790&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btheH4/btsLWvNvQow/RcJ4RZ9C5ksQ56a13uBjpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btheH4/btsLWvNvQow/RcJ4RZ9C5ksQ56a13uBjpK/img.png&quot; data-alt=&quot;clear를 사용하지 않았을 때 vs 사용했을 떄&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btheH4/btsLWvNvQow/RcJ4RZ9C5ksQ56a13uBjpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtheH4%2FbtsLWvNvQow%2FRcJ4RZ9C5ksQ56a13uBjpK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;539&quot; height=&quot;446&quot; data-filename=&quot;스크린샷 2025-01-22 오후 10.41.53.png&quot; data-origin-width=&quot;954&quot; data-origin-height=&quot;790&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;clear를 사용하지 않았을 때 vs 사용했을 떄&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS  Pseudo-classes (가상 클래스)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: 요소의 특별한 상태를 정의하는 데 사용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어,&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 마우스를 요소 위로 가져갈 때 요소 스타일을 지정할 때&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;방문한 링크와 방문하지 않은 링크의 스타일을 다르게 지정할 때&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;포커스가 맞춰지면 요소에 스타일을 지정할 때&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;유효한/잘못된/필수/선택 양식 요소 스타일&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 95px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 28.2558%; height: 22px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가상 클래스&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 71.7442%; height: 22px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하는 일&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 28.2558%; height: 22px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;:first-child&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 71.7442%; height: 22px;&quot;&gt;&lt;span style=&quot;color: #353535; text-align: justify; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;자식요소 중에 가장 첫번째를 선택하는 가상클래스&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 28.2558%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;:last-child&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 71.7442%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #353535; text-align: justify;&quot;&gt;자식요소 중에 가장 마지막을 선택하는 가상클래스&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 28.2558%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;:nth-child()&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 71.7442%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #353535; text-align: justify;&quot;&gt;자식요소 중에 형제 요소 중 n번째를 선택하는 가상클래스&lt;br /&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;:nth-child(odd)&amp;nbsp; -&amp;gt; 홀수 선택 , even(짝수)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS Pseudo-element(가상 요소)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;: 요소의 특정 부분에 스타일을 지정하는 데 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요소의 첫 글자 또는 줄에 스타일 지정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요소 앞이나 뒤에 콘텐츠 삽입&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;목록 항목의 마커 스타일 지정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;대화 상자 뒤에 있는 뷰박스 스타일 지정&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Syntax&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737555039472&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;selector::pseudo-element {
  property: value;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 94px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 25.3488%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;가상 요소&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 74.6512%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하는 일&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 25.3488%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;::first-line&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 74.6512%; height: 19px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;텍스트의 첫 번째 줄에 특별한 스타일을 추가한다&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;width: 25.3488%; height: 22px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;::first-letter&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 74.6512%; height: 22px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&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.3488%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;::before&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 74.6512%; height: 17px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;요소의 내용 앞에 어떤 내용을 삽입하는 데 사용&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 11.21.38.png&quot; data-origin-width=&quot;1680&quot; data-origin-height=&quot;252&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxjf4X/btsLYcsn5ub/K82Kskowf3y7eiyExBIeN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxjf4X/btsLYcsn5ub/K82Kskowf3y7eiyExBIeN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxjf4X/btsLYcsn5ub/K82Kskowf3y7eiyExBIeN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbxjf4X%2FbtsLYcsn5ub%2FK82Kskowf3y7eiyExBIeN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;578&quot; height=&quot;87&quot; data-filename=&quot;스크린샷 2025-01-22 오후 11.21.38.png&quot; data-origin-width=&quot;1680&quot; data-origin-height=&quot;252&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 25.3488%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;::after&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 74.6512%; height: 17px;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;요소의 내용 뒤에 일부 내용을 삽입하는 데 사용&lt;/span&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 11.21.56.png&quot; data-origin-width=&quot;1738&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5LzLl/btsLVz4cAMm/JfMUED30Z9a1TtKqMroRtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5LzLl/btsLVz4cAMm/JfMUED30Z9a1TtKqMroRtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5LzLl/btsLVz4cAMm/JfMUED30Z9a1TtKqMroRtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5LzLl%2FbtsLVz4cAMm%2FJfMUED30Z9a1TtKqMroRtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;592&quot; height=&quot;74&quot; data-filename=&quot;스크린샷 2025-01-22 오후 11.21.56.png&quot; data-origin-width=&quot;1738&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS Combinators&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;후손 결합자(space)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;자식 결합자 (&amp;gt;)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;지정된 요소의 자식인 모든 요소&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다음 형제 결합자 (+)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특정 요소 바로 뒤에 있는(바로 뒤에 배치된 첫번째) 요소&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;후속 형제 결합자 (~)&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;지정된 요소의 다음 형제인 모든 요소&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;CSS Flexbox&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Flexbox는 Flexible Box Layout 모듈의 약자&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;항목을 행이나 열로 배열하는 레이아웃 방법&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Flex를 사용하면 float를 사용하지 않고도 유연하게 반응형 레이아웃 구조를 디자인할 수 있음&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;구성요소&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Flex container&amp;nbsp;-&amp;nbsp;부모(컨테이너) &amp;lt;div&amp;gt; 요소&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Flex Items&amp;nbsp;- 컨테이너 내부의 항목 &amp;lt;div&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오전 1.06.00.png&quot; data-origin-width=&quot;1680&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJlHFN/btsLWAnJvnZ/VXdKFK60Ir6dZvskSt7WD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJlHFN/btsLWAnJvnZ/VXdKFK60Ir6dZvskSt7WD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJlHFN/btsLWAnJvnZ/VXdKFK60Ir6dZvskSt7WD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJlHFN%2FbtsLWAnJvnZ%2FVXdKFK60Ir6dZvskSt7WD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;208&quot; data-filename=&quot;스크린샷 2025-01-23 오전 1.06.00.png&quot; data-origin-width=&quot;1680&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오전 1.06.09.png&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;434&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZNbuA/btsLWuHPc1s/JkbeVkXxcrS7dt533HmTik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZNbuA/btsLWuHPc1s/JkbeVkXxcrS7dt533HmTik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZNbuA/btsLWuHPc1s/JkbeVkXxcrS7dt533HmTik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZNbuA%2FbtsLWuHPc1s%2FJkbeVkXxcrS7dt533HmTik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;207&quot; data-filename=&quot;스크린샷 2025-01-23 오전 1.06.09.png&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;434&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오전 1.06.22.png&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;680&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GxgVF/btsLV1skYb2/VP7nsAbO7W8Cnq2Ttjo3j1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GxgVF/btsLV1skYb2/VP7nsAbO7W8Cnq2Ttjo3j1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GxgVF/btsLV1skYb2/VP7nsAbO7W8Cnq2Ttjo3j1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGxgVF%2FbtsLV1skYb2%2FVP7nsAbO7W8Cnq2Ttjo3j1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;325&quot; data-filename=&quot;스크린샷 2025-01-23 오전 1.06.22.png&quot; data-origin-width=&quot;1676&quot; data-origin-height=&quot;680&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-23 오전 1.06.45.png&quot; data-origin-width=&quot;1674&quot; data-origin-height=&quot;1160&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dWOU3O/btsLXSHGRh8/l3fMZUd88cpxPrf7M7IjL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dWOU3O/btsLXSHGRh8/l3fMZUd88cpxPrf7M7IjL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dWOU3O/btsLXSHGRh8/l3fMZUd88cpxPrf7M7IjL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdWOU3O%2FbtsLXSHGRh8%2Fl3fMZUd88cpxPrf7M7IjL0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;554&quot; data-filename=&quot;스크린샷 2025-01-23 오전 1.06.45.png&quot; data-origin-width=&quot;1674&quot; data-origin-height=&quot;1160&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;강사님이 알려주신 아래 웹 게임으로 flexbox에 대해&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;적용해보며 이해할 수 있었다&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;어렵다면 한번씩 해봐도 좋을거같다 ~&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://flexboxfroggy.com/#ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://flexboxfroggy.com/#ko&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1737556075177&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;Flexbox Froggy&quot; data-og-description=&quot;A game for learning CSS flexbox&quot; data-og-host=&quot;flexboxfroggy.com&quot; data-og-source-url=&quot;https://flexboxfroggy.com/#ko&quot; data-og-url=&quot;https://flexboxfroggy.com&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b9Y84K/hyX4wTYnHH/XmqLA566qMrVtdlKQ9BvsK/img.png?width=2214&amp;amp;height=1142&amp;amp;face=0_0_2214_1142,https://scrap.kakaocdn.net/dn/bdxbQG/hyX4pAxn8m/QLpCZ79uxTBtjKhhkDFOp1/img.png?width=2214&amp;amp;height=1142&amp;amp;face=0_0_2214_1142&quot;&gt;&lt;a href=&quot;https://flexboxfroggy.com/#ko&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://flexboxfroggy.com/#ko&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b9Y84K/hyX4wTYnHH/XmqLA566qMrVtdlKQ9BvsK/img.png?width=2214&amp;amp;height=1142&amp;amp;face=0_0_2214_1142,https://scrap.kakaocdn.net/dn/bdxbQG/hyX4pAxn8m/QLpCZ79uxTBtjKhhkDFOp1/img.png?width=2214&amp;amp;height=1142&amp;amp;face=0_0_2214_1142');&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;Flexbox Froggy&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;A game for learning CSS flexbox&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;flexboxfroggy.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Bootstrap5&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Bootstrap5는 반응형 모바일 웹사이트를 만드는데 가장 인기있는 부트스트랩의 최신 버전&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Bootstrap 이란 ? 더 빠르고 쉬운 웹 개발을 위한 무료 프런트엔드 프레임워크&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;반응형 웹 이란 ? 작은 휴대폰에서 대형 데스크톱까지 보기 좋게 보이도록 자동 조정되는 웹 사이트&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;Bootstrap 3, 4와 주요 차이점은 Bootstrap 5가 jQuery 대신 vanilla JavaScript로 전환했다는 것&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;Bootstrap 장점&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용이 간편 : HTML과 CSS에 대한 기본 지식만 있다면 사용 가능&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;반응형 기능 : 휴대폰, 테블릿, 데스크탑에 맞게 조정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모바일 우선 접근 방식&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;브라우저 호환성 : 모든 최신 브라우저와 호환됨. 하지만 IE11이하에 대한 지원이 필요한 경우 BS4 또는 BS3 사용&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Bootstrap 5 CDN&lt;/b&gt;&lt;/span&gt;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: bootstrap5를 직접 다운로드하고 싶지 않다면 CDN에 포함하여 작성&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737531453697&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- Latest compiled and minified CSS --&amp;gt;
&amp;lt;link href=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot;&amp;gt;

&amp;lt;!-- Latest compiled JavaScript --&amp;gt;
&amp;lt;script src=&quot;https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Bootstrap5 Containers&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;컨테이너 내부의 내용을 채우는데 사용된다.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클래스 .container는 반응형 고정 너비 컨테이너를 제공&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클래스 .container-fluid는 뷰포트의 전체 너비에 걸쳐 전체 너비 컨테이너를 제공&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 4.46.41.png&quot; data-origin-width=&quot;1726&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WNHJ0/btsLV5nERnk/fDIqgDmKzuTRiXIHQws0B1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WNHJ0/btsLV5nERnk/fDIqgDmKzuTRiXIHQws0B1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WNHJ0/btsLV5nERnk/fDIqgDmKzuTRiXIHQws0B1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWNHJ0%2FbtsLV5nERnk%2FfDIqgDmKzuTRiXIHQws0B1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1726&quot; height=&quot;308&quot; data-filename=&quot;스크린샷 2025-01-22 오후 4.46.41.png&quot; data-origin-width=&quot;1726&quot; data-origin-height=&quot;308&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Fixed Container&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;클래스를 사용해 .container 반응형 고정 너비 컨테이너를 만든다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;** 화면 크기에 따라 max-width가 변경 된다는 점을 유의 ! **&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Extra small&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt; 576px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Small&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;gt;= 576px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Medium&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;gt;= 768px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Large&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;gt;= 992px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Extra Large&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;gt;= 1200px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;XXL&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;gt;= 1400px&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;max-width&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;100%&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;540px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;720px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;960px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1140px&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1320px&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Fluid Container&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;항상 화면 전체 너비에 걸쳐져 있는 전체 너비 컨테이너를 생성한다. (width is always 100%)&lt;/span&gt;&lt;/p&gt;
&lt;p 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;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Container Padding&lt;/b&gt;&lt;/span&gt;&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;container는 왼쪽 오른쪽 패딩이 있고, 위 아래는 패딩이 없다. 패딩이 필요할 때 간격 유틸리티를 .pt-5를 사용해 적용시킨다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737533785867&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;container pt-5&quot;&amp;gt;&amp;lt;/div&amp;gt;&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;.pt-5는 'paddint-top'을 의미한다.&lt;/span&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;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Responsive Container&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.container-sm|md|lg|xl 클래스를 사용하여 컨테이너가 언제 반응해야 하는지 결정할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;max-width 컨테이너의 는 다양한 화면 크기/뷰포트에서 변경된다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.18.58.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEZPEU/btsLXVqBW8w/627zgThTj1TKkRgWvftGb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEZPEU/btsLXVqBW8w/627zgThTj1TKkRgWvftGb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEZPEU/btsLXVqBW8w/627zgThTj1TKkRgWvftGb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEZPEU%2FbtsLXVqBW8w%2F627zgThTj1TKkRgWvftGb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;413&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.18.58.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;413&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;Bootstrap 5 Grid System&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;flexbox를 기반으로 구축되었으며 페이지 전체를 최대 12개의 열로 나눠어 생각&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;12개의 열을 모두 개별적으로 사용하고 싶지 않으면 열을 그룹화하여 더 넓은 열을 만들 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.23.39.png&quot; data-origin-width=&quot;1478&quot; data-origin-height=&quot;550&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMVgPx/btsLWqZtrlX/LD9jKTdw56MK3RW30Vlpxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMVgPx/btsLWqZtrlX/LD9jKTdw56MK3RW30Vlpxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMVgPx/btsLWqZtrlX/LD9jKTdw56MK3RW30Vlpxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMVgPx%2FbtsLWqZtrlX%2FLD9jKTdw56MK3RW30Vlpxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;699&quot; height=&quot;260&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.23.39.png&quot; data-origin-width=&quot;1478&quot; data-origin-height=&quot;550&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Grid Classes&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.col-(매우 작은 기기 - 화면 너비가 576px 미만)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.col-sm-(소형 기기 - 화면 너비가 576px 이상)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.col-md-(중간 장치 - 화면 너비가 768px 이상)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.col-lg-(대형 기기 - 화면 너비가 992px 이상)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.col-xl-(대형 기기 - 화면 너비가 1200px 이상)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.col-xxl-(xxlarge 장치 - 화면 너비가 1400px 이상)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Three Equal Columns&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;.col 클래스 사용&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737534604336&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;row&quot;&amp;gt;
  &amp;lt;div class=&quot;col&quot;&amp;gt;.col&amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;col&quot;&amp;gt;.col&amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;col&quot;&amp;gt;.col&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Responsive Columns&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.32.03.png&quot; data-origin-width=&quot;1246&quot; data-origin-height=&quot;134&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6FwwW/btsLXsbaV52/AxwcVcjjJFD3xgI73awKGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6FwwW/btsLXsbaV52/AxwcVcjjJFD3xgI73awKGk/img.png&quot; data-alt=&quot;(ex1) 초대형 데스크톱으로 확장되는 4개의 동일 너비 열을 만드는 방법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6FwwW/btsLXsbaV52/AxwcVcjjJFD3xgI73awKGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6FwwW%2FbtsLXsbaV52%2FAxwcVcjjJFD3xgI73awKGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;505&quot; height=&quot;54&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.32.03.png&quot; data-origin-width=&quot;1246&quot; data-origin-height=&quot;134&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(ex1) 초대형 데스크톱으로 확장되는 4개의 동일 너비 열을 만드는 방법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1737534644643&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- 모바일 폰이나 너비가 576px 미만인 화면에서는 열이 자동으로 서로 위에 쌓인다--&amp;gt;
&amp;lt;div class=&quot;row&quot;&amp;gt;
  &amp;lt;div class=&quot;col-sm-3&quot;&amp;gt;.col-sm-3&amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;col-sm-3&quot;&amp;gt;.col-sm-3&amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;col-sm-3&quot;&amp;gt;.col-sm-3&amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;col-sm-3&quot;&amp;gt;.col-sm-3&amp;lt;/div&amp;gt;
&amp;lt;/div&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-filename=&quot;스크린샷 2025-01-22 오후 5.32.35.png&quot; data-origin-width=&quot;1240&quot; data-origin-height=&quot;126&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9v1D3/btsLWuOmXIZ/QPukFxbZkPma8Yb9gFR01K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9v1D3/btsLWuOmXIZ/QPukFxbZkPma8Yb9gFR01K/img.png&quot; data-alt=&quot;(ex2) 두 개의 다양한 너비의 열을 가져오는 방법&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9v1D3/btsLWuOmXIZ/QPukFxbZkPma8Yb9gFR01K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9v1D3%2FbtsLWuOmXIZ%2FQPukFxbZkPma8Yb9gFR01K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;484&quot; height=&quot;49&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.32.35.png&quot; data-origin-width=&quot;1240&quot; data-origin-height=&quot;126&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(ex2) 두 개의 다양한 너비의 열을 가져오는 방법&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1737534786679&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;row&quot;&amp;gt;
  &amp;lt;div class=&quot;col-sm-4&quot;&amp;gt;.col-sm-4&amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;col-sm-8&quot;&amp;gt;.col-sm-8&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: col-sm-3 : sm크기가 되면 반응형&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Bootstrap5 Text/Typography&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- Bootstrap 5는 기본값 font-size는 1rem(기본값 16px)을 사용하며 이는 line-height는 1.5이다.&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;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;lt;h1&amp;gt; ~ &amp;lt;h6&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737534963260&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p class=&quot;h1&quot;&amp;gt;h1 Bootstrap heading&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;h2&quot;&amp;gt;h2 Bootstrap heading&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;h3&quot;&amp;gt;h3 Bootstrap heading&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;h4&quot;&amp;gt;h4 Bootstrap heading&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;h5&quot;&amp;gt;h5 Bootstrap heading&amp;lt;/p&amp;gt;
&amp;lt;p class=&quot;h6&quot;&amp;gt;h6 Bootstrap heading&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;Display Headings (.display-1 ~ .display-6)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: 일반 헤딩보다 더 눈에 띄도록 사양됨 -&amp;gt; 글자 크기가 더 크고 글꼴 두께가 더 가벼움&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737535050130&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&amp;gt;
  &amp;lt;h1 class=&quot;display-1&quot;&amp;gt;Display 1&amp;lt;/h1&amp;gt;
  &amp;lt;h1 class=&quot;display-2&quot;&amp;gt;Display 2&amp;lt;/h1&amp;gt;
  &amp;lt;h1 class=&quot;display-3&quot;&amp;gt;Display 3&amp;lt;/h1&amp;gt;
  &amp;lt;h1 class=&quot;display-4&quot;&amp;gt;Display 4&amp;lt;/h1&amp;gt;
  &amp;lt;h1 class=&quot;display-5&quot;&amp;gt;Display 5&amp;lt;/h1&amp;gt;
  &amp;lt;h1 class=&quot;display-6&quot;&amp;gt;Display 6&amp;lt;/h1&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;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;lt;small&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;모든 제목에 더 작고 보조적인 텍스트를 생성&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737535158530&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h1&amp;gt;h1 heading &amp;lt;small&amp;gt;secondary text&amp;lt;/small&amp;gt;&amp;lt;/h1&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-filename=&quot;스크린샷 2025-01-22 오후 5.39.25.png&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boQVTO/btsLXU6k362/oxoT9dQjzrFnpa4fk8MG8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boQVTO/btsLXU6k362/oxoT9dQjzrFnpa4fk8MG8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boQVTO/btsLXU6k362/oxoT9dQjzrFnpa4fk8MG8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboQVTO%2FbtsLXU6k362%2FoxoT9dQjzrFnpa4fk8MG8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;457&quot; height=&quot;45&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.39.25.png&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&amp;lt;mark&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;노란색 배경과 약간의 패딩으로 스타일이 지정됨&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737535210206&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;p&amp;gt;Use the mark element (or the .mark class) to &amp;lt;mark&amp;gt;highlight&amp;lt;/mark&amp;gt; text.&amp;lt;/p&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-filename=&quot;스크린샷 2025-01-22 오후 5.40.17.png&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;44&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8duuF/btsLWRoY2nt/g5PLPzeT3ff0aeTOesmqx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8duuF/btsLWRoY2nt/g5PLPzeT3ff0aeTOesmqx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8duuF/btsLWRoY2nt/g5PLPzeT3ff0aeTOesmqx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8duuF%2FbtsLWRoY2nt%2Fg5PLPzeT3ff0aeTOesmqx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;553&quot; height=&quot;27&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.40.17.png&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;44&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;etc.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style6&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.7442%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;abbr&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 78.2558%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;점선 밑줄 쪽에 마우스를 올리면 물음표가 있는 커서로 지정&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.7442%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;blockquote&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 78.2558%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;다른 출처의 콘텐츠 블록을 인용할 때 클래스를 a에 추가&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&quot;from WWF's website&quot; 같은 출처를 지정할 때는 &lt;/span&gt;.blockquote-footer&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&amp;nbsp;사용&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.7442%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;code&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 78.2558%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;html 요소 스타일 지정&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.7442%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;kbd&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 78.2558%;&quot;&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.44.29.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lw9p5/btsLWTtAzHZ/rkpEwclbvBrUUWw2xkHMX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lw9p5/btsLWTtAzHZ/rkpEwclbvBrUUWw2xkHMX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lw9p5/btsLWTtAzHZ/rkpEwclbvBrUUWw2xkHMX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLw9p5%2FbtsLWTtAzHZ%2FrkpEwclbvBrUUWw2xkHMX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;364&quot; height=&quot;54&quot; data-filename=&quot;스크린샷 2025-01-22 오후 5.44.29.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>[LG유플러스]유레카 SW</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/91</guid>
      <comments>https://yeeeon.tistory.com/91#entry91comment</comments>
      <pubDate>Wed, 22 Jan 2025 23:04:38 +0900</pubDate>
    </item>
    <item>
      <title>[Day2] html, css 기초 &amp;amp; virtual dom</title>
      <link>https://yeeeon.tistory.com/90</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;HTML favicon&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-21 오후 4.49.21.png&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;112&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9lg3k/btsLUH8h7N3/cnFi6QeQ5jQ4kqSDSl0owk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9lg3k/btsLUH8h7N3/cnFi6QeQ5jQ4kqSDSl0owk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9lg3k/btsLUH8h7N3/cnFi6QeQ5jQ4kqSDSl0owk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9lg3k%2FbtsLUH8h7N3%2FcnFi6QeQ5jQ4kqSDSl0owk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;453&quot; height=&quot;112&quot; data-filename=&quot;스크린샷 2025-01-21 오후 4.49.21.png&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;112&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;파비콘 : 글쓰기 탭 왼쪽에 이미지가 표시됨&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목 : 글쓰기 (page title)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;link&amp;gt; 태그에서 요소를 추가한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737445719133&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;link rel=&quot;icon&quot; type=&quot;image/x-icon&quot; href=&quot;/images/favicon.ico&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;HTML page title&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737445946330&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&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;title&amp;gt;HTML Tutorial&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;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;HTML table&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 39.186%; height: 76px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;태크&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;정의&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;td&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테이블 데이터&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테이블 행&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;th&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;테이블 헤더&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;** &amp;lt;th&amp;gt;는 굵게 표시되고 가운데 정렬됨&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737446060368&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;table&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;th&amp;gt;Company&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Contact&amp;lt;/th&amp;gt;
    &amp;lt;th&amp;gt;Country&amp;lt;/th&amp;gt;
  &amp;lt;/tr&amp;gt;
  &amp;lt;tr&amp;gt;
    &amp;lt;td&amp;gt;Alfreds Futterkiste&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Maria Anders&amp;lt;/td&amp;gt;
    &amp;lt;td&amp;gt;Germany&amp;lt;/td&amp;gt;
  &amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;HTML Lists&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;순서 없는 리스트 : 목록 항목에 글머리 기호 (작은 검은색 원)으로 표시됨&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737446550943&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;Coffee&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Tea&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Milk&amp;lt;/li&amp;gt;
&amp;lt;/ul&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;순서 있는 리스트 : 목록 항목에 숫자가 표시됨.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737446563830&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;ol&amp;gt;
  &amp;lt;li&amp;gt;Coffee&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Tea&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Milk&amp;lt;/li&amp;gt;
&amp;lt;/ol&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;HTML block and inline Elements&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;block : 새 줄에서 시작하며, 항상 사용 가능한 전체 너비를 차지한다.&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;&amp;lt;p&amp;gt; : html문서의 문단을 정의&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;div&amp;gt; : html요소를 위한 컨테이너&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;inline : 새 줄에서 시작하지 않으며, 필요한 너비만 차지&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;span&amp;gt; : 텍스트의 일부를 표시하는데 사용&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;HTML &amp;lt;form&amp;gt;&amp;lt;input&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자로부터 데이터를 입력받기 위한 대화형 컨트롤&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;type 속성 값에 따라 다양한 컨트롤 유형을 제공&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;input type = &quot;text&quot;&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737448146307&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;form action=&quot;처리 할 페이지주소&quot; method=&quot;get|post&quot;&amp;gt;&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;action = &quot;&quot; : 입력 받은 데이터를 처리할 스크립트 파일을 명시&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;method = &quot;&quot; : 입력받은 데이터를 서버에 전달하는 방식&lt;/span&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;method 생략시 default는 get&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[자주 쓰이는 type 속성 값]&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;inut type = &quot; ?? &quot; &amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;설명&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;button&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;일반 버튼&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;checkbox&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;체크박스&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;color&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;사용자가 색상을 선택하거나 입력할 수 있는 컬러 피커 형태의 입력 필드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;date&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;날짜 입력 컨트롤&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;datetime-local&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;날짜와 시간 입력 필드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;email&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이메일 주소 필드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;file&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;파일 선택 및 업로드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;password&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;비밀번호 입력 필드&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 15.5815%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;radio&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 60.3488%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;라디오 버튼&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;vscode로 html 실행해보기&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&amp;lt;폴더 내의 html파일을 클릭하여 실행하는 경우&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1148&quot; data-origin-height=&quot;117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G2dnn/btsLV9boxnD/5NA0ruCFUQSuiYUER3r31K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G2dnn/btsLV9boxnD/5NA0ruCFUQSuiYUER3r31K/img.png&quot; data-alt=&quot;http없는 단순한 파일형으로 웹 페이지가 열린다. 즉, 웹서버가 구축되지 않았다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G2dnn/btsLV9boxnD/5NA0ruCFUQSuiYUER3r31K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG2dnn%2FbtsLV9boxnD%2F5NA0ruCFUQSuiYUER3r31K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1148&quot; height=&quot;117&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1148&quot; data-origin-height=&quot;117&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;http없는 단순한 파일형으로 웹 페이지가 열린다. 즉, 웹서버가 구축되지 않았다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;span style=&quot;&quot;&gt;&amp;lt;vscode에서 Live Server를 이용하여 실행한 경우&amp;gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2025-01-21 오전 11.00.17.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A33qE/btsLWaaiIMK/lkq0yVbAq4rHX30KL4eee1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A33qE/btsLWaaiIMK/lkq0yVbAq4rHX30KL4eee1/img.png&quot; data-alt=&quot;웹서버 구축됨 -&amp;amp;gt; html이 deploy됨&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A33qE/btsLWaaiIMK/lkq0yVbAq4rHX30KL4eee1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA33qE%2FbtsLWaaiIMK%2Flkq0yVbAq4rHX30KL4eee1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;100&quot; data-filename=&quot;edited_스크린샷 2025-01-21 오전 11.00.17.png&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;웹서버 구축됨 -&amp;gt; html이 deploy됨&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1737448401258&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;ko&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;회원가입 폼&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;회원가입&amp;lt;/h1&amp;gt;
    &amp;lt;!-- action이 없으면 서버로 가지 않음 --&amp;gt;
    &amp;lt;form action=&quot;MainServlet&quot; method=&quot;post&quot;&amp;gt; 
        &amp;lt;input type=&quot;hidden&quot; name=&quot;sign&quot; value=&quot;registMember&quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

        &amp;lt;label for=&quot;name&quot;&amp;gt;이름:&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
        &amp;lt;input type=&quot;text&quot; id=&quot;name&quot; name=&quot;name&quot; required&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

        &amp;lt;label for=&quot;email&quot;&amp;gt;이메일:&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
        &amp;lt;input type=&quot;email&quot; id=&quot;email&quot; name=&quot;email&quot; required&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

        &amp;lt;label for=&quot;password&quot;&amp;gt;비밀번호:&amp;lt;/label&amp;gt;&amp;lt;br&amp;gt;
        &amp;lt;input type=&quot;password&quot; id=&quot;password&quot; name=&quot;password&quot; required&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;

        &amp;lt;input type=&quot;submit&quot; value=&quot;가입하기&quot;&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&amp;lt;위 코드에서 input값을 입력 후 button을 누른 경우&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-21 오전 11.30.18.png&quot; data-origin-width=&quot;1336&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsrNeA/btsLVlpkNP0/vFJok01Tk8JIQFzPz0QfVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsrNeA/btsLVlpkNP0/vFJok01Tk8JIQFzPz0QfVk/img.png&quot; data-alt=&quot;action값을 취했을 경우&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsrNeA/btsLVlpkNP0/vFJok01Tk8JIQFzPz0QfVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsrNeA%2FbtsLVlpkNP0%2FvFJok01Tk8JIQFzPz0QfVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1336&quot; height=&quot;142&quot; data-filename=&quot;스크린샷 2025-01-21 오전 11.30.18.png&quot; data-origin-width=&quot;1336&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;action값을 취했을 경우&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;입력한 input값이 [이름 = 값 &amp;amp; 이름 = 값 &amp;amp; 이름 = 값] 으로 url에 나타난다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이를 쿼리 스트링이라고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;쿼리스트링&lt;/span&gt; : URL 뒤에 입력 데이터를 함께 제공하는 가장 단순한 데이터 전달 방법&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ㄴ 주로 GET방식으로 데이터를 요청할 때 쓰인다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;ㄴ URL에 노출되기 때문에 보안에 취약하기도 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&amp;lt;name 속성을 없앴을 경우&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_스크린샷 2025-01-21 오전 11.29.13.png&quot; data-origin-width=&quot;710&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SYcMH/btsLUtJhzJV/koFBHpfQR3TKfdI5xRuGN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SYcMH/btsLUtJhzJV/koFBHpfQR3TKfdI5xRuGN0/img.png&quot; data-alt=&quot;value들이 서버로 넘어가지 않는다. -&amp;amp;gt; name 속성을 가진 경우만 서버로 제출 된다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SYcMH/btsLUtJhzJV/koFBHpfQR3TKfdI5xRuGN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSYcMH%2FbtsLUtJhzJV%2FkoFBHpfQR3TKfdI5xRuGN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;710&quot; height=&quot;100&quot; data-filename=&quot;edited_스크린샷 2025-01-21 오전 11.29.13.png&quot; data-origin-width=&quot;710&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;value들이 서버로 넘어가지 않는다. -&amp;gt; name 속성을 가진 경우만 서버로 제출 된다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;HTTP (HyperText Transfer Protocol)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #505860; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: 클라이언트와 서버 간에 데이터를 주고받기 위한 프로토콜&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;기본적으로 데이터를 주고받는 규칙을 정의하며, RESTful이 이를 기반으로 작동&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 30.2326%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTTP 메소드&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7674%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;요청&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 30.2326%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;GET&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7674%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;데이터를 요청 -&amp;gt; 오직 받기만 함&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 30.2326%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;POST&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7674%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;데이터를 서버에 제출할 때&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 30.2326%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;PUT&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7674%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;서버에 저장된 데이터를 수정 &amp;amp; 대체&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 30.2326%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;DELETE&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 69.7674%;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;서버에 저장된 데이터를 삭제&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;RESTful API (Representational State Transfer)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: 웹 표준을 기반으로 API 설계 원칙&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;REST 원칙을 따르는 API는 HTTP 프로토콜을 사용하여 데이터를 주고받으며, 웹 개발에서 널리 사용됨&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;보안이 취약해서 get, post만 사용할 것을 지향함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-&amp;gt; 즉, &lt;span style=&quot;letter-spacing: 0px;&quot;&gt;RESTful은 HTTP 위에서 설계된 하나의 스타일이라고 볼 수 있습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;servlet (서블릿)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;form태그에서 servlet을 사용하는 것을 보고 조금 더 조사해보았다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;servlet : 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 다룰 수 있게 해준다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; letter-spacing: 0px;&quot;&gt;예를들면 로그인 시도를 할 때, 서버가 클라이언트에서 입력되는 아이디와 비밀번호를 확인하고 결과를 응답하는데 이러한 역할을 수행하는 것이 서블릿이다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; letter-spacing: 0px;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;jsx / js 차이&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;강사님이 react 프로젝트에서는 jsx를 사용하고 next프로젝트에서는 js를 사용하길래 차이점에 대해서 찾아보았다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;강사님께서는 기존에 있던 index.js나 app.js와 같은 파일과 구별하기 위함이라고 하셨다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;b&gt;JSX (JavaScript XML)&lt;/b&gt;&lt;/i&gt; :&amp;nbsp; 자바스크립트에서 XML을 추가한 확장형 문법&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;자바스크립트에서 HTML 문법을 사용할 수 있고 주로 리액트나 다른 프론트엔드 프레임워크에서도 사용이 가능합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737460560740&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const element = &amp;lt;h1&amp;gt;Hello, world!&amp;lt;/h1&amp;gt;;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;JSX파일은 UI 관련 작업을 할 때 권장되며, React에서 에러, 경고 메세지를 표시해준다&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;b&gt;Babel&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;브라우저는 JSX를 이해하지 못합니다. 따라서 작성된 JSX 코드를&amp;nbsp;JavaScript&amp;nbsp;코드로 변환하는 작업이 필요합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;JSX 코드는 자바스크립트 컴파일러인&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;@babel&lt;span style=&quot;text-align: start;&quot;&gt;을 통해 Javascript로 변환됩니다.&lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;Babel&lt;span style=&quot;text-align: start;&quot;&gt;은 JSX를 JavaScript로 변환하는 데 사용되는 가장 일반적인 도구입니다.&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;JS와 JSX를 반드시 구분해서 사용해야 할까?&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;스택오버플로우의 ReactJS - .JS vs .JSX의 게시물에서 가장 높은 추천 수를 받은 답변의 내용을 확인해보면 'JS와 JSX는 확장자로서의 차이가 없다' 라는 의견이 현재 가장 지배적인 것 같습니다. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;다만 게시물의 작성자는 JSX는 자바스크립트 표준 문법이 아니기에 이에 관한 논쟁이 있을 수 있다고 말하고 있습니다. 하지만 JSX에 대한 설명에서 보았듯이 결국 리액트로 작성한 코드들은 자바스크립트로 변환됩니다. 따라서 컴포넌트 파일을 만들어 사용하는 리액트의 JSX 관련 코드는 .jsx로 만들고, 나머지 일반 JavaScript 코드들은 .js로 만들며 유연하게 사용하면 될 것 같다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;참고&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;a href=&quot;https://velog.io/@minkuk90/React-%EB%A6%AC%EC%95%A1%ED%8A%B8-.js-vs-.jsx-%EC%B0%A8%EC%9D%B4%EC%A0%90&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@minkuk90/React-%EB%A6%AC%EC%95%A1%ED%8A%B8-.js-vs-.jsx-%EC%B0%A8%EC%9D%B4%EC%A0%90&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #dddddd;&quot;&gt;virtual dom&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이전에 블로그에 정리한 내용 &amp;gt; &lt;a href=&quot;https://yeeeon.tistory.com/33&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://yeeeon.tistory.com/33&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1737461296981&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;[React] Virtual DOM&quot; data-og-description=&quot;DOM(Document Object Model) 기존 웹이 사용하는 DOM의 Document는 HTML을 말한다. 브라우저를 공장이라고하면 html문서는 이 공장들에 보내주는 주문서이다. 이 주문서에는 내가 원하는 웹페이지의 요소들과&quot; data-og-host=&quot;yeeeon.tistory.com&quot; data-og-source-url=&quot;https://yeeeon.tistory.com/33&quot; data-og-url=&quot;https://yeeeon.tistory.com/33&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dTivK6/hyX4yxhRhG/KG7RI3kJ8wPSqR0ZH9HmMK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/TQUl0/hyX4xkSeIu/TpnvRQmBOZfk97im7bak41/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://yeeeon.tistory.com/33&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://yeeeon.tistory.com/33&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dTivK6/hyX4yxhRhG/KG7RI3kJ8wPSqR0ZH9HmMK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/TQUl0/hyX4xkSeIu/TpnvRQmBOZfk97im7bak41/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;[React] Virtual DOM&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;DOM(Document Object Model) 기존 웹이 사용하는 DOM의 Document는 HTML을 말한다. 브라우저를 공장이라고하면 html문서는 이 공장들에 보내주는 주문서이다. 이 주문서에는 내가 원하는 웹페이지의 요소들과&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;yeeeon.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #dddddd;&quot;&gt;css 3가지 방법&lt;/span&gt;&lt;/h2&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;css는 직접 사용해보면서 어느정도 익혔다고 생각해, 자세한 예제들은 생략하고 어떤 방식이 있는지 정리해보기로 했다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;외부 CSS&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTML 페이지의 &amp;lt;link&amp;gt;요소에서 정의된다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737460972506&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&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;mystyle.css&quot;&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

&amp;lt;h1&amp;gt;This is a heading&amp;lt;/h1&amp;gt;
&amp;lt;p&amp;gt;This is a paragraph.&amp;lt;/p&amp;gt;

&amp;lt;/body&amp;gt;
&amp;lt;/html&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;내부 CSS&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&amp;lt;style&amp;gt; 요소 안에서 정의된다&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737461053867&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&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;style&amp;gt;
    body {
      background-color: linen;
    }

    h1 {
      color: maroon;
      margin-left: 40px;
    }
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;This is a heading&amp;lt;/h1&amp;gt;
    &amp;lt;p&amp;gt;This is a paragraph.&amp;lt;/p&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;인라인 CSS&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;관련 요소에 style 속성을 추가&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737461068534&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;h1 style=&quot;color:blue;text-align:center;&quot;&amp;gt;This is a heading&amp;lt;/h1&amp;gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <category>[LG유플러스]유레카 SW</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/90</guid>
      <comments>https://yeeeon.tistory.com/90#entry90comment</comments>
      <pubDate>Tue, 21 Jan 2025 21:08:27 +0900</pubDate>
    </item>
    <item>
      <title>[Day1] html 기초 &amp;amp; SEO 최적화 마크업 규칙</title>
      <link>https://yeeeon.tistory.com/89</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;HTML (&lt;span style=&quot;color: #000000; text-align: left;&quot;&gt;Hyper Text Markup Language)&lt;/span&gt;이란 ?&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt; 웹 페이지를 만드는 표준 마크업 언어&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737359189636&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;!-- 이 문서가 HTML5 문서임을 정의 --&amp;gt;
&amp;lt;html&amp;gt; &amp;lt;!-- html 페이지의 루트 요소 --&amp;gt;
    &amp;lt;head&amp;gt; &amp;lt;!-- html 메타 정보 포함 --&amp;gt;
    	&amp;lt;title&amp;gt;Page Title&amp;lt;/title&amp;gt; &amp;lt;!-- html 제목 --&amp;gt;
    &amp;lt;/head&amp;gt; 
    &amp;lt;body&amp;gt; &amp;lt;!-- 콘텐츠의 컨테이너 --&amp;gt;
        &amp;lt;h1&amp;gt;My First Heading&amp;lt;/h1&amp;gt;
        &amp;lt;p&amp;gt;My first paragraph.&amp;lt;/p&amp;gt;
    &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;HTML 속성&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 159px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 74px;&quot;&gt;
&lt;td style=&quot;width: 23.6046%; height: 74px;&quot;&gt;src&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%; height: 74px;&quot;&gt;표시할 이미지 경로를 지정&lt;br /&gt;&amp;lt;img src = &quot;yeeun.jpg&quot;&amp;gt;&lt;br /&gt;1. 절대적 url : 다른 웹에 호스팅된 이미지 링크 (https:// www ~)&lt;br /&gt;2. 상대적 url : 웹사이트 내에 호스팅된 이미지 (yeeun.jpg)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.6046%; height: 17px;&quot;&gt;width, height&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%; height: 17px;&quot;&gt;&amp;lt;img src = &quot;yeeun.jpg&quot; width = &quot;500&quot; height = &quot;600&quot;&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.6046%; height: 17px;&quot;&gt;alt&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%; height: 17px;&quot;&gt;&amp;lt;img&amp;gt; 어떤 이유로 이미지를 표시할 수 없는 경우 대체 텍스트&lt;br /&gt;&amp;lt;img src = &quot;yeeun.jpg&quot; alt = &quot;이예은&quot;&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.6046%; height: 17px;&quot;&gt;style&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%; height: 17px;&quot;&gt;색상, 글꼴, 크기 등의 스타일 요소&lt;br /&gt;&amp;lt;p style = &quot;color:red;&quot;&amp;gt;red&amp;lt;/p&amp;gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.6046%; height: 17px;&quot;&gt;lang&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%; height: 17px;&quot;&gt;웹 페이지의 언어를 선언하려면 태그 lang 내부에 속성을 포함해야 한다.&lt;br /&gt;
&lt;div style=&quot;background-color: #e7e9eb; color: #000000; text-align: start;&quot;&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;span style=&quot;color: #a52a2a;&quot;&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;lt;&lt;/span&gt;!DOCTYPE&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;html&lt;/span&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a52a2a;&quot;&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;lang&lt;span style=&quot;color: #0000cd;&quot;&gt;=&quot;en&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a52a2a;&quot;&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;span style=&quot;color: #a52a2a;&quot;&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;lt;&lt;/span&gt;/body&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #a52a2a;&quot;&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;lt;&lt;/span&gt;/html&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 23.6046%; height: 17px;&quot;&gt;title&lt;/td&gt;
&lt;td style=&quot;width: 76.3954%; height: 17px;&quot;&gt;요소에 대한 추가 정보를 정의&lt;br /&gt;
&lt;div style=&quot;background-color: #e7e9eb; color: #000000; text-align: start;&quot;&gt;
&lt;div style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;span style=&quot;color: #a52a2a;&quot;&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;title&lt;span style=&quot;color: #0000cd;&quot;&gt;=&quot;I'm a tooltip&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;This is a paragraph.&lt;span style=&quot;color: #a52a2a;&quot;&gt;&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;lt;&lt;/span&gt;/p&lt;span style=&quot;color: #0000cd;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;SEO 최적화 마크업 규칙&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;SEO (Search Engine Optimization) 란?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;: 웹 사이트의 가시성을 높이고, 검색 엔진에서 노출되도록 최적화하는 프로세스&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;-&amp;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;size18&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;SEO를 고려한 마크업&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 시맨틱 HTML 사용&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2025-01-20 오후 5.11.20.png&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;926&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WWyPb/btsLStbHMZn/kqqAk8hscacIodMWBS5E81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WWyPb/btsLStbHMZn/kqqAk8hscacIodMWBS5E81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WWyPb/btsLStbHMZn/kqqAk8hscacIodMWBS5E81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWWyPb%2FbtsLStbHMZn%2FkqqAk8hscacIodMWBS5E81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;589&quot; height=&quot;548&quot; data-filename=&quot;스크린샷 2025-01-20 오후 5.11.20.png&quot; data-origin-width=&quot;996&quot; data-origin-height=&quot;926&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;시맨틱 태그란 특정 의미를 정의하고 목적을 갖는 태그입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;예를 들어, &amp;lt;header&amp;gt;, &amp;lt;nav&amp;gt;, &amp;lt;main&amp;gt;, &amp;lt;article&amp;gt;, &amp;lt;figure&amp;gt;, &amp;lt;section&amp;gt;, &amp;lt;aside&amp;gt;, &amp;lt;footer&amp;gt;등의 요소를 사용하여 페이지의 의미론적인 구조로 마크업하여, 검색 엔진이 콘텐즈를 이해하고 해석하기 쉽게 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 127px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 29.186%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;header&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70.814%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;페이지의 제목, 로고 등에 쓰인다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 29.186%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;nav&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70.814%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Navbar 메뉴, 목차 등에 쓰인다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 29.186%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70.814%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;주로 사이드바에 쓰인다&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 19px;&quot;&gt;
&lt;td style=&quot;width: 29.186%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;main&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70.814%; height: 19px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;페이지 내에 제일 메인이 되는 컨텐츠에 쓰인다&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 29.186%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;section&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70.814%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;구체적인 시맨틱 태그가 없는 문서에 쓰인다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;section 태그에는 항상 섹션에 대한 제목이 있는게 좋다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 29.186%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;article&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70.814%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;독립적으로 여러곳에 재사용 되는 내용에 사용된다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 29.186%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 70.814%; height: 17px;&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;copyright, 개인정보처리방침, 이용약관 등 포함되는 내용에 쓰인다.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 올바른 제목 구조&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목 태그(&amp;lt;h1&amp;gt;, &amp;lt;h2&amp;gt;, &amp;lt;h3&amp;gt; 등)는 페이지의 주요 주제를 나타내는데 사용되어야 한다. 이는 검색엔진이 페이지의 핵심 키워드를 식별하는데 도움이 된다. 계층적으로 &amp;lt;h1&amp;gt;&amp;lt;h2&amp;gt;&amp;lt;h3&amp;gt;..순서로 사용해야 하며 한 페이지에서 하나의 &amp;lt;h1&amp;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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. 이미지 최적화&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지에 적절한 alt 속성을 추가 : &amp;nbsp;이미지에 대한 설명을 제공하므로써 시각장애가 있는 사용자도 컨텐츠의 정보를 이해할 수 있도록 웹 접근성을 높인다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737361216340&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!-- 이미지에 대한 텍스트 제공 --&amp;gt;
&amp;lt;img src=&quot;yeeun.jpg&quot; alt = &quot;이예은&quot;/&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 파일명 최적화 : 키워드가 포함된 의미있는 파일명 사용&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이미지 크기 최적화 : 적절한 크기의 이미지는 웹사이트 로딩 속도를 높임&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4. 메타데이터 최적화&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;head&amp;gt;태그 안에 적절한 메타데이터를 넣어 검색 엔진에 키워드를 노출 시킨다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;제목 태그(title)최적화 : 핵심 키워드가 포함된 간결하고 설명적인 제목 태그 사용&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737361340593&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;meta name = &quot;title&quot; content = &quot;핵심 키워드가 포함된 간결하고 설명적인 제목 태그&quot;&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;메타 설명 최적화 : 핵심 키워드가 포함된 간결하고 설득력있는 메타 설명 작성&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1737361439357&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;meta name = &quot;title&quot; content = &quot;핵심 키워드가 포함된 페이지 설명&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;5. 폼 요소에 label 사용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;lt;label&amp;gt;요소를 사용하여 입력 필드를 설명하는 텍스트를 제공하여 사용자가 어떤 정보를 입력해야하는지 알려줌&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737361501004&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;label for=&quot;username&quot;&amp;gt;사용자 이름:&amp;lt;/label&amp;gt;
&amp;lt;input type=&quot;text&quot; id=&quot;username&quot; name=&quot;username&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;6. 키보드 네비케이션 고려&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;키보드만을 사용하는 사용자들을 위해 모든 기능을 키보드로 조작할 수 있어야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1737361563611&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;button tabindex=&quot;0&quot;&amp;gt;클릭 가능한 버튼&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;** tabindex : 현재 요소의 탭 순서&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <category>[LG유플러스]유레카 SW</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/89</guid>
      <comments>https://yeeeon.tistory.com/89#entry89comment</comments>
      <pubDate>Mon, 20 Jan 2025 17:45:34 +0900</pubDate>
    </item>
    <item>
      <title>[JS] Redux 리덕스</title>
      <link>https://yeeeon.tistory.com/88</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Redux 란&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;리덕스&lt;/b&gt;는 JS&lt;b&gt;&amp;nbsp;상태 관리 라이브러리&lt;/b&gt;입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;쉽게 설명하면&amp;nbsp;&lt;b&gt;모든 컴포넌트에서 바로 state에 접속 가능한 저장소&amp;nbsp;&lt;/b&gt;입니다&lt;b&gt;.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;(도서관에서는 다양한&amp;nbsp;사람들이&amp;nbsp;책을 빌려갈 수 있습니다)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;상태?&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #242424; text-align: left;&quot;&gt;component 안에서 관리되는 것&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #242424; text-align: left;&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;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;사용하는 이유&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;자식 컴포넌트가 많아지면, 상태를 관리하는 상위 컴포넌트에서 계속 내려 받아야한다. =&amp;gt;&amp;nbsp;&lt;b&gt;Props drilling 이슈&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;리덕스를 사용하면 state를 컴포넌트에 종속시키지 않고, 상태 관리를 컴포넌트의 바깥에서 관리 할 수 있게 된다.&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: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;기본 용어&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- Store (스토어)&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&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;i&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- Reducer (리듀서)&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;특정 action에 따라서 state값을 변경하는 함수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이벤트 핸들러와 비슷&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;파라미터는 state, action 두개를 받음&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;i&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- Action (액션) - 주문서&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;store에 운반할 데이터&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;i&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;- Dispatcher(디스패처)&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;dispatch() 메소드를 사용해 action을 reducer에 전달&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start;&quot;&gt;: 스토어에 상태를 변경하라고 말해줌&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;컴포넌트에서 사용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;동작 방식&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. action객체가 dispatch 메소드에 전달&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. dispatch를 통해 reducer를 호출&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. reducer를 통해 state 변경&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;4. 변경되면 리렌더링&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;3 원칙&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div style=&quot;color: #000000;&quot;&gt;
&lt;p id=&quot;1-애플리케이션의-모든-상태state는-하나의-저장소store-안에-하나의-객체-트리-구조로-저장된다&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 애플리케이션의 모든 상태(state)는 하나의 저장소(store) 안에 하나의 객체 트리 구조로 저장된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하나의 저장소(store)가 존재하며, 이 저장소(store)에는 애플리케이션의 모든 상태들이 객체 트리 구조로 저장되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 상태(state)는 읽기 전용(read-only)이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;상태(state)는 읽기 전용이다. 상태를 변화시키는 유일한 방법은 액션 객체를 전달하는 방법뿐이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;3-변화는-순수-함수로-작성되어야-한다&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;3. 변화는 순수 함수로 작성되어야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;리듀서는 그저 이전 상태와 액션을 받아 다음 상태를 반환하는 순수함수이다. 이전 상태를 변경하는 것이 아니라, 새로운 상태 객체를 생성해서 반환해야한다는 사실을 기억해야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;createStore를 손코딩 해보세요&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736257785661&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const store = createStore(reducer)
const reducer = (state, action) =&amp;gt; {
	switch(action.type) {
		case &quot;ADD&quot; :
        	return state+1;
        case &quot;MINUS&quot; :
        	return state-1;
		default :
        	return state
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #c0d1e7;&quot;&gt;React-redux에서는 뭐가 다른가 !&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. store.js 파일 만든다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;2. &lt;span style=&quot;text-align: left;&quot;&gt;&amp;nbsp;index.js파일에서 &amp;lt;Provider store={import한것}&amp;gt; 으로 &amp;lt;App /&amp;gt; 을 감싸준다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;3. useSelector : store에 저장된 state가져오기&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;4. useDispatch : dispatch 사용하기 위함&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1736273290023&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { useSelector, useDispatch } from &quot;react-redux&quot;;
import { changeName } from &quot;../store&quot;;

function 컴포넌트() {
    let state = useSelector((state) =&amp;gt; { return state })
    let dispatch = useDispatch();
    
    ...
    
    return (
    	&amp;lt;div&amp;gt;
            &amp;lt;button onClick={ () =&amp;gt; { dispatch(changeName()) }}&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;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; background-color: #c0d1e7;&quot;&gt;redux toolkit&amp;nbsp;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. createSlice&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: state를 생성할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. configureStore()&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 컴포넌트가 마음대로 사용 가능하게 해줌&lt;/p&gt;
&lt;pre id=&quot;code_1736273216765&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { configureStore, createSlice } from '@reduxjs/toolkit'

let 변수 = createSlice({
    name: 이름변수,
    initialState: 'hello',
    reducers : {
    	changeName(state) {
        	return '변경하기 ' + state
        }
    }
});

export let { changeName } = 변수.actions

export default configureStore({
	reducer: {
    	변수2: 변수.reducer
    },
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; color: #333333; text-align: start; background-color: #c0d1e7;&quot;&gt;redux-saga&lt;/span&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://github.com/redux-saga/redux-saga&quot;&gt;redux-saga&lt;/a&gt;는 redux-thunk 다음으로 가장 많이 사용되는 비동기 작업 미들웨어입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;미들 웨어란 ?
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;action이 발생하면 reducer가 액션을&amp;nbsp;처리하기&amp;nbsp;전에&amp;nbsp;다양한 작업을 할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조금더 까다로운 상황에서 유용함&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li id=&quot;bc13&quot; style=&quot;list-style-type: decimal; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;비기존 요청을 취소 처리 할 수 있습니다&lt;/li&gt;
&lt;li id=&quot;70e3&quot; style=&quot;list-style-type: decimal; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;웹소켓을 사용할 때&lt;/li&gt;
&lt;li id=&quot;a19b&quot; style=&quot;list-style-type: decimal; color: #242424;&quot; data-selectable-paragraph=&quot;&quot;&gt;API 요청이 실패시 재요청해야할 때&lt;/li&gt;
&lt;/ol&gt;
&lt;p id=&quot;5aeb&quot; style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;이 외에도 다양한 까다로운 비동기 작업들을 redux-saga를 사용하여 처리 할 수 있습니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #242424; text-align: start;&quot; data-selectable-paragraph=&quot;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p id=&quot;generator-문법-배우기&quot; style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size18&quot;&gt;Generator 문법&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;Generator 함수는 &lt;/span&gt;함수의 흐름을 도중에 멈춰놓았다가 나중에 이어서 진행 할 수 있음
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;제너레이터 함수를 만들 때에는&amp;nbsp;function*&amp;nbsp;이라는 키워드를 사용합니다.&lt;/li&gt;
&lt;li&gt;제너레이터 함수를 호출했을때는 한 객체가 반환되는데요, 이를 제너레이터라고 부릅니다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;제너레이터 함수를 호출한다고 해서 해당 함수 안의 코드가 바로 시작되지는 않습니다.&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;generator.next()&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;를 호출해야만 코드가 실행되며,&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;yield를 한 값을 반환하고 코드의 흐름을 멈춥니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>JS</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/88</guid>
      <comments>https://yeeeon.tistory.com/88#entry88comment</comments>
      <pubDate>Wed, 8 Jan 2025 03:30:09 +0900</pubDate>
    </item>
    <item>
      <title>[JS] 정규 표현식</title>
      <link>https://yeeeon.tistory.com/87</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Light';&quot;&gt;정규표현식&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;문자열에서 특정 문자 조합을 찾기 위한 패턴&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Light';&quot;&gt;정규식 만드는 법&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;1. 정규 표현식 리터럴 : 슬래시(/)패턴으로 감싸는 방식&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735202304198&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /pattern/flags;&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;스크립트를 불러올 때 컴파일 되므로, 실행 도중에 바뀌지 않는 패턴일 때 사용하는 것이 좋음.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;일반적인 방법이며, 리터럴을 사용하면 정규 표현식 객체가ㅏ 생성된다.&lt;/span&gt;&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;1280&quot; data-origin-height=&quot;718&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxhnIV/btsLAsh9Bjp/h7G9Jt5wQ22aakmDAr4Yv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxhnIV/btsLAsh9Bjp/h7G9Jt5wQ22aakmDAr4Yv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxhnIV/btsLAsh9Bjp/h7G9Jt5wQ22aakmDAr4Yv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxhnIV%2FbtsLAsh9Bjp%2Fh7G9Jt5wQ22aakmDAr4Yv1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;508&quot; height=&quot;285&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;718&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;2. RegExp 객체의 생성자 호출 : RegExp 객체의 생성자를 호출하여 만드는 방식&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735202396368&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = new RegExp('pattern',flags);&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;런타임에 컴파일 되기 때문에 실행 도중에 바뀔 수 있는 패턴이나, 사용자 입력에 따라서 유동적으로 바뀔 수 있을 때 활용하는 것이 좋음.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; background-color: #dddddd;&quot;&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;검색 모드&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;정규 표현식의 옵션이므로 선택적으로 사용이 가능하다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;순서와 상관없이 하나 이상의 플래그를 동시에 설정할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;플래그를 사용하지 않는 경우에는 문자열 내 검색 대상이 1개 이상이더라도 첫번째 조건 대상만을 검색하고 종료하게 된다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote style=&quot;color: #212529; text-align: start;&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;  대표적인 플래그&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;i (ignore case)&lt;/b&gt;&amp;nbsp;: 대소문자를 구별하지 않고 검색한다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;g (global)&lt;/b&gt;&amp;nbsp;: 문자열 내의 모든 패턴을 검색한다. (문자열에서 한개만 찾는 것이 아닌 해당하는 모든 것을 찾아줌)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;b&gt;m (multi line)&lt;/b&gt;&amp;nbsp;: 문자열의 행이 바뀌더라도 검색은 계속한다.&lt;br /&gt;&lt;b&gt;s (single line)&lt;/b&gt; : \n까지 포함한 문자&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; background-color: #dddddd;&quot;&gt;Pattern 만드는 법&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;[Groups and Ranges]&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;1. |&amp;nbsp; - or&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735207112257&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /red|blue/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&amp;nbsp;red 도는 blue인 문자열을 가진 패턴&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;2. () - 그룹&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735207252174&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /on(1|2)/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;on뒤에 1이나 2가 오는 문자열을 매치시겠다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;3. [] - 문자셋&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735207377810&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /on[123456789]/flags&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1735207527279&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /on[1-9]/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;만약 그룹에서 1,2 둘 중에 하나가 아니라 1 ~ 10까지인 경우&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;4. [^] - 부정 문자셋&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735207586041&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /^[1-9]/flags&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;span style=&quot;background-color: #ffffff; color: #212529; text-align: start; font-family: 'Noto Sans Light';&quot;&gt;1~9까지 빼고 매치시키는 경우&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;quantifiers수량-관련&quot; style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7; font-family: 'Noto Sans Light';&quot;&gt;Quantifiers&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;1. ? - zero or one : 특정 문자 뒤에 두게 되면 있는 것, 없는 것 둘다 매치 시킨다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735207730667&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /ones?/flags&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; letter-spacing: 0px;&quot;&gt;이렇게 두었다면&lt;/span&gt;&lt;span style=&quot;color: #212529; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; letter-spacing: 0px;&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color: #212529; letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; letter-spacing: 0px;&quot;&gt;가 있는 것, 없는 것 둘다 매치가 된다. &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; letter-spacing: 0px;&quot;&gt;즉, one과 ones 두개가 매치 된다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; letter-spacing: 0px;&quot;&gt;2. * -&amp;nbsp; zero or more&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735208071054&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /ones*/flags&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;span style=&quot;background-color: #ffffff; color: #212529; text-align: start; font-family: 'Noto Sans Light';&quot;&gt;one, ones, oness, onesssssss 이런것들이 매치&lt;/span&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; text-align: start; font-family: 'Noto Sans Light';&quot;&gt;3. + - one or more : &lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;없는것은 매치하지 않으며&lt;/span&gt; 그 문자는 반드시 하나 이상&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735208159164&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /ones+/flags&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;span style=&quot;background-color: #ffffff; color: #212529; text-align: start; font-family: 'Noto Sans Light';&quot;&gt;one은 매치키지 않는다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;4. {n} - n번 반복 : 뚜렷한 개수를 잡아내고 싶은 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735208269896&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /ones{3}/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;onesss&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1735208277393&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /(abc){3}/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;abcabcabc&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;5. {min, max} - 최대 최소&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735208534811&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /ones{3,5}/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;onesss, onessss, onesssss 만을 매치시킨다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1735208566717&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /ones{3,}/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;최대를 비워둔다면, 3번 이상 들어간 것을 매치&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;최소를 비워둔다면 그 반대&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light'; background-color: #c0d1e7;&quot;&gt;Boundary-type&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;1. \b - 단어 경계&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735208845941&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /\bch/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;단어 기준으로 ch로 시작하는 단어만을 매치시킨다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;/b를 뒤에 두면, 끝나는 것을 매치&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;2. \B - 단어 경계 제외&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735208989970&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /\Bch/flags&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;\b를 제외한것을 매치&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;string = ch&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;eese&lt;/span&gt;&amp;nbsp;ch&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;eeses&lt;/span&gt;&amp;nbsp;ch&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;eck&lt;/span&gt;&amp;nbsp;is ch&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;ecking&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;3. (^) - 문장의 시작 : 문장 기준으로 매치&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735209257834&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /^is/flags;&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;cheese cheeses check is checking&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;checking cheese cheeses is check&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;cheese cheeses check is checking&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;is&lt;/span&gt; check cheese cheeses checking&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;4. $ - 문장의 끝&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7; font-family: 'Noto Sans Light';&quot;&gt;Character classes (특정 문자)&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;1. (\) - 특수 문자가 아닌 문자&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735210279669&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /right\?/flags;&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;right? 라는 문자를 찾고 싶을 때&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;2. (.) - All&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1735210359381&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const regex = /./flags;&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;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;전부 다 매치&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;(\d) - 모든 숫자&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;(\D) - 모든 숫자 제외&lt;br /&gt;(\w) - 모든 문자 : 특수문자를 제외한 영어, 한글, 숫자&lt;br /&gt;(\W) - 모든 문자 제외 : 문자에 해당하는 것을 제외한 모든 것&lt;br /&gt;(\s) - 모든 공백&lt;br /&gt;(\S) - 모든 공백 제외&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Light';&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>JS</category>
      <category>정규표현식</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/87</guid>
      <comments>https://yeeeon.tistory.com/87#entry87comment</comments>
      <pubDate>Thu, 26 Dec 2024 19:56:57 +0900</pubDate>
    </item>
    <item>
      <title>[TS] Typescript #day3</title>
      <link>https://yeeeon.tistory.com/86</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;# Call Signatures&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 함수 위에 마우스를 올렸을 때 보게 되는 것&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;116&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K9SiT/btsLoKi1HdH/xnIRQdwQYMUS2gDwKjS9nk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K9SiT/btsLoKi1HdH/xnIRQdwQYMUS2gDwKjS9nk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K9SiT/btsLoKi1HdH/xnIRQdwQYMUS2gDwKjS9nk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK9SiT%2FbtsLoKi1HdH%2FxnIRQdwQYMUS2gDwKjS9nk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;774&quot; height=&quot;116&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;116&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&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;/ul&gt;
&lt;pre id=&quot;code_1734522457900&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;type Add = (a: number, b:number) =&amp;gt; number;
const add:Add = (a,b) =&amp;gt; a+b&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;# Overloading&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 함수 이름은 같지만 매개변수 또는 반환값의 타입이 다른 함수&lt;/p&gt;
&lt;pre id=&quot;code_1734533620214&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;type Add2 = {
    (a: number, b: number): number
    (a: number, b: string): number
}

const add5: Add2 = (a, b) =&amp;gt; {
    if(typeof b === 'string') return a
    return a + b
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Add2의 call signatures를 보면 b의 타입이 number 와 string 동시에 지정되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ EX 1 ] call signatrues에 파라미터 타입이 다른 경우&lt;/p&gt;
&lt;pre id=&quot;code_1734533723734&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;type Config = {
    path: string,
    state: object
}
type Push = {
    (path:string): void
    (config:Config): void
}
// Push 타입은 string과 object를 받을 수 있음
const push:Push = (config) =&amp;gt; {
    if(typeof config === &quot;string&quot;) console.log(&quot;do something&quot;)
    else {
        console.log(config.path)
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ EX 2 ]&lt;span&gt;&amp;nbsp;&lt;/span&gt;call signatrues&lt;span style=&quot;color: #212529; text-align: start;&quot;&gt;에 파라미터 개수가 다른 경우&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1734533788735&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;type Add3 = {
    (a: number, b: number): number
    (a: number, b: number, c: number): number
}
// c는 옵션(선택사항)이라는 표시로 ? 사인을 넣어줌
const add6:Add3 = (a, b, c?: number) =&amp;gt; {
    return a + b
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>TypeScript</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/86</guid>
      <comments>https://yeeeon.tistory.com/86#entry86comment</comments>
      <pubDate>Wed, 18 Dec 2024 23:58:41 +0900</pubDate>
    </item>
    <item>
      <title>[TS] Typescript #day2</title>
      <link>https://yeeeon.tistory.com/85</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;# Types of TS part One&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;선택적  타입 (Optional Type)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 필수적으로 존재하지 않아도 되는 속성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용법 : 이름 뒤에 물음표(?)를 추가한다.&lt;/p&gt;
&lt;pre id=&quot;code_1734532100581&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;type Player = {
  name : number,
  age?: string
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;타입 별칭 (Type Alias)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 타입에 이름을 부여하여 코드의 가독성을 높이고 재사용성을 향상시킴&lt;/p&gt;
&lt;pre id=&quot;code_1734532278507&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;type Age = number;
type Name = string;

type Player = {
  name : Name,
  age?: Age
}

const nico : Player = {
  name : &quot;nico&quot;,
}
const lynn : Player = {
  name : &quot;lynn&quot;,
}

type User = {
  id: number;
  name: string;
  email: string;
};

const getUser = (user: User): string =&amp;gt; {
  return `User Name: ${user.name}, Email: ${user.email}`;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;인자 타입/리턴값 타입&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1734518871837&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function playerMaker(name:string) : Player {
  return {
    name  
  }
} 
const PlayerMaker = (name:string) : Player =&amp;gt; ({name})

const nic = playerMaker(&quot;nico&quot;)
nic.age = 12&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;#Types of TS part Two&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;readonly&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 값을 수정하려고 하면 ts가 멈춰줌. 이는 readonly(읽기 전용)이기 때문에 예상되지 않은 상태 변경에 보호장치를 얻게 되는 것&lt;/p&gt;
&lt;pre id=&quot;code_1734532794912&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const numbers : readonly number[] = [1,2,3,4]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;undefined/null&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1734532772363&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let a: undefined = undefined
let b : null = null&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;Tuple&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 길이와 각 요소마다의 타입이 고정된 배열&lt;/p&gt;
&lt;pre id=&quot;code_1734532809129&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const player: [string, number, boolean] = [&quot;nico&quot;, 12, false]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;any type&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;모든 타입을 허용할 수 있는 타입&lt;/li&gt;
&lt;li&gt;typescript 의 보호 장치를 모두 잃어버리게 하기 때문에 사용하지 않는게 좋음.&lt;/li&gt;
&lt;li&gt;가끔 써야할 때가 있지만 좋은 규칙은 아님.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1734520266794&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const c : any = true&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;#Types of TS part Three&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;unknown&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변수의 타입을 미리 알지 못할 때 사용한다.&lt;/li&gt;
&lt;li&gt;예를 들어, 만약 api로부터 응답을 받는데 그 응담의 타입을 모른다면 unknown으로 막아줄 수 있음&lt;/li&gt;
&lt;li&gt;그러면 타입스크립트가 강제로 타입을 확인해줌&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1734532866675&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let d : unknown;

if(typeof d === 'number') {
  let e = d + 1;
}

if(typeof d === 'string') {
  let e = d.toUpperCase();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;void &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무것도 return 하지 않는 함수의 타입&lt;/p&gt;
&lt;pre id=&quot;code_1734533032639&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function hello() {	
   console.log('x')
}

function hello():void {	
   console.log('x')
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;never&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;함수가 절대 return하지 않을 때 발생&lt;/li&gt;
&lt;li&gt;예를 들어, 함수에서 exception(예외)이 발생했을 때 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;pre id=&quot;code_1734533080422&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function bye(): never {
   throw new Error(&quot;xxx&quot;)
}&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1734521055242&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function good(name: string | number) {
  if(typeof name === &quot;string&quot;) {
    name // string
  } else if( typeof name === &quot;number&quot;) {
    name // number
  } else { 
    name  // 여기에 뭘 쓰던 타입은 never임.
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-12-18 오후 8.19.15.png&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;354&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btnjzn/btsLo9JEEie/j1HxtJ0T5XSbsGj7FaBTTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btnjzn/btsLo9JEEie/j1HxtJ0T5XSbsGj7FaBTTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btnjzn/btsLo9JEEie/j1HxtJ0T5XSbsGj7FaBTTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtnjzn%2FbtsLo9JEEie%2Fj1HxtJ0T5XSbsGj7FaBTTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;555&quot; height=&quot;273&quot; data-filename=&quot;스크린샷 2024-12-18 오후 8.19.15.png&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;354&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>TypeScript</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/85</guid>
      <comments>https://yeeeon.tistory.com/85#entry85comment</comments>
      <pubDate>Wed, 18 Dec 2024 23:48:53 +0900</pubDate>
    </item>
    <item>
      <title>[TS] Typescript #day1</title>
      <link>https://yeeeon.tistory.com/84</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;# Why not JavaScript&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;i&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&quot;안정성, 더 정확히 말해서 타입 안정성&quot;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;코드에 버그가 줄어듦&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;런타임 에러가 줄어든다&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;개발 생산성 향상&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;u&gt;&lt;i&gt;하지만 자바스크립트는?&lt;/i&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;* 문제점 1 * 에러를 보여주지 않으려고 많은 노력을 함.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[EX1]&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1734350028948&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;[1,2,3,4] + false

// '1,2,3,4false'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR'; letter-spacing: 0px;&quot;&gt;배열도 아닌, boolean도 아닌 string이 콘솔에 찍힌다. 이는 굉장히 이상하다고 볼 수 있는 자바스크립트는 이를 허용함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[EX2]&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1734350155846&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function divide(a,b) {
	return a/b
}

divide(&quot;xxxxx&quot;)

// NaN&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;코드를 실행하고 NaN을 return함. 숫자형도 아니며, argument가 1개만 들어갔음에도 에러가 없고 예외 처리도 없음&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: #333333; text-align: start; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;* 문제점 2 * 최악의 에러는 런타임 에러&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;런타임 에러 : 콘솔 안에서 일어나는 에러&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ㄴ 유저의 컴퓨터에서 이미 컴파일이 완료되어 코드가 실행될 때 일어나는 에러&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;[EX3]&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1734350280931&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const yeeun = {name : &quot;yeeun&quot;)
yeeun.hello()&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;이상적으로 코드가 실행되기 전에 hello() 함수가 없다는걸 알려주는게 가장 좋음&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;하지만 javascript는 유저의 컴퓨터에서 이 코드를 실행해야만 비로소 에러를 보여줌&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;좋은 프로그래밍 언어는 hello()가 없다는걸 알고 시작조차 컴파일조차 안됨&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;# How Typescript Works&lt;/b&gt;&lt;/span&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;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;/span&gt;타입스크립트(Typescript) : 강타입 프로그래밍 언어&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;강타입 언어 : 프로그래밍 언어&lt;span style=&quot;text-align: left;&quot;&gt;에서 Integer(정수), String(문자열)과 같이 데이터의 타입을 미리 지정하는 언어&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;타입스크립트의 경우에는 작성한 코드가 자바스크립트로 컴파일 된다. 보통 컴파일은 0과 1로 이뤄진 컴퓨터가 알아들을 수 있는 언어로 바꿔주는 과정을 거치지만, 타입스크립트는 자바스크립트로 바꿔진다는 뜻이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ㄴ &lt;span style=&quot;background-color: #f6e199;&quot;&gt;TS가 제공하는 보호장치는 JS로 변환되기 전에 작동된다. 즉, typescript에 에러가 있다면 javascript로 컴파일 되지 않기 때문에 변환된 javascript 안에서 실수가 일어나지 않게 한다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-12-16 오후 10.09.18.png&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kFjkj/btsLjHIwGND/08hP8k8DwSSzIi3bEvy8Q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kFjkj/btsLjHIwGND/08hP8k8DwSSzIi3bEvy8Q1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kFjkj/btsLjHIwGND/08hP8k8DwSSzIi3bEvy8Q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkFjkj%2FbtsLjHIwGND%2F08hP8k8DwSSzIi3bEvy8Q1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;622&quot; height=&quot;286&quot; data-filename=&quot;스크린샷 2024-12-16 오후 10.09.18.png&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;286&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;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&amp;nbsp;TS는 바로 에러를 표시해줌. -&amp;gt; &lt;span style=&quot;background-color: #252526; color: #cccccc; letter-spacing: 0px;&quot;&gt;Property 'hello' does not exist on type '{ nickname: string; }'.&lt;/span&gt;&lt;span style=&quot;background-color: #252526; color: #cccccc; letter-spacing: 0px;&quot;&gt;(2339)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-12-16 오후 10.10.31.png&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbnHYg/btsLkGhIF8Y/w3GIrlndJc4IVnul5gFs71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbnHYg/btsLkGhIF8Y/w3GIrlndJc4IVnul5gFs71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbnHYg/btsLkGhIF8Y/w3GIrlndJc4IVnul5gFs71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbnHYg%2FbtsLkGhIF8Y%2Fw3GIrlndJc4IVnul5gFs71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;436&quot; height=&quot;166&quot; data-filename=&quot;스크린샷 2024-12-16 오후 10.10.31.png&quot; data-origin-width=&quot;436&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;Operator '+' cannot be applied to types 'number[]' and 'boolean'.(2365)&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2024-12-16 오후 10.12.28.png&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M4ioT/btsLkFCnI69/kMFhmFNEbyyjtXWxZKGlp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M4ioT/btsLkFCnI69/kMFhmFNEbyyjtXWxZKGlp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M4ioT/btsLkFCnI69/kMFhmFNEbyyjtXWxZKGlp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM4ioT%2FbtsLkFCnI69%2FkMFhmFNEbyyjtXWxZKGlp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;659&quot; height=&quot;267&quot; data-filename=&quot;스크린샷 2024-12-16 오후 10.12.28.png&quot; data-origin-width=&quot;810&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #dddddd; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;&lt;b&gt;# Implicit Types vs Explict Types&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;1. 타입 추론&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1734355547002&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let a = &quot;hello&quot;
const player = {
  name : &quot;yeeun&quot;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;2. 명시적 표현&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;ㄴ 명시적 표현은 최소한으로 사용하는게 좋음&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1734355560062&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let b : boolean = true
let c : number[] = []&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d; font-family: 'Noto Sans Demilight', 'Noto Sans KR';&quot;&gt;* 해당 게시물은 노마드코더 강의를 참고하여 쓰여졌습니다. *&lt;/span&gt;&lt;/p&gt;</description>
      <category>TypeScript</category>
      <category>TypeScript</category>
      <category>노마드코더</category>
      <category>타입스크립트</category>
      <author>옝옹</author>
      <guid isPermaLink="true">https://yeeeon.tistory.com/84</guid>
      <comments>https://yeeeon.tistory.com/84#entry84comment</comments>
      <pubDate>Mon, 16 Dec 2024 22:26:32 +0900</pubDate>
    </item>
  </channel>
</rss>