<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>컴알못의 슬기로운 온라인 생활</title>
    <link>https://happygunja.tistory.com/</link>
    <description>훌쩍 지나버린 시간안에 꿈꿔왔던 컴퓨터 관련 배우는 과정을 기록으로 남기고 나처럼 이제 머리도 굳은 중년들의 도전을 응원하기 위한 쉽터</description>
    <language>ko</language>
    <pubDate>Wed, 15 Jul 2026 15:23:58 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>행복군자</managingEditor>
    <image>
      <title>컴알못의 슬기로운 온라인 생활</title>
      <url>https://tistory1.daumcdn.net/tistory/4435105/attach/e6bbb128c6eb47d9a46efa636ec098ff</url>
      <link>https://happygunja.tistory.com</link>
    </image>
    <item>
      <title>LG 그램 드라이버 업데이트 : 화면 깜빡거림 증상 해결</title>
      <link>https://happygunja.tistory.com/481</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;오랜된 LG 그램 노트북을 사용하다 보니 어느날 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;회면이 깜빡거리는 증상을 발견&lt;/b&gt;&lt;/span&gt;하게 되었습니다. 특히 전체 화면이 아닌 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;엣지나 크롬을 사용할 때 그런 현상이&lt;/b&gt;&lt;/span&gt; 발생하더군요.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이를 해결하기 위해 다양한 솔루션을 찾아보고 그 방법중에 하나인 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;노트북을 구성하는 부속품에 대한 최신 드라이버 업데이트를 통하여 해결&lt;/b&gt;&lt;/span&gt;하는 방법을 공유하고자 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #409d00;&quot;&gt;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;font-family: 'Nanum Gothic';&quot;&gt;원인을 추정해 보면 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;깜빡거린다는 것은 상시적으로 노트북에 들어오는 전력이 불안정&lt;/b&gt;&lt;/span&gt;하다고 추정할 수 있습니다.&amp;nbsp; &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;불안정한 전력이라는 것은 해당 전력을 수용하는 기계(하드웨어)의 불량을 추정&lt;/b&gt;&lt;/span&gt;할 수 있고 하드웨어가 이상이 없다면 &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;소프트웨어를 움직이는 운영파일인 드라이버가 업데이트 되지 않았기 때문&lt;/b&gt;&lt;/span&gt;입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;하드웨어의 문제인 경우 서비스를 받는게 가장 효율적인 방법&lt;/b&gt;&lt;/span&gt;이며 &lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;소프트웨어의 드라이버는 해당 제품회사에서 최신버전으로 설치&lt;/b&gt;&lt;/span&gt;해 주면 됩니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&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: 'Nanum Gothic';&quot;&gt;(LG 그램을 기준으로 업데이트 해 본 내용이나 대부분의 PC의 업데이트 방법과 같다고 보면 됩니다.)&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;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. 최신 드라이버 상태 확인 및 설치&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;장치관리자에서 각 부품에 대한 최신 드라이버를 확인하고 설치할 수 있으나 &lt;span style=&quot;color: #5733b1;&quot;&gt;&lt;b&gt;가장 손쉽게 학인할 수 있는 소프트웨어를 소개&lt;/b&gt;&lt;/span&gt;하고자 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;구글에서 &lt;span style=&quot;color: #953b34;&quot;&gt;&lt;b&gt;'3dp chip'으로 검색하여 최신 버전을 다운로드&lt;/b&gt;&lt;/span&gt;하여 전체적으로 구성된 드라이버의 최신여부를 확인할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;310&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LmETN/btsHvstYQWb/NMzE0HZNbyXdjLkYJ649sK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LmETN/btsHvstYQWb/NMzE0HZNbyXdjLkYJ649sK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LmETN/btsHvstYQWb/NMzE0HZNbyXdjLkYJ649sK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLmETN%2FbtsHvstYQWb%2FNMzE0HZNbyXdjLkYJ649sK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;263&quot; data-origin-width=&quot;706&quot; data-origin-height=&quot;310&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #5733b1;&quot;&gt;&lt;b&gt;다운로드하고 실행을 하면&lt;/b&gt;&lt;/span&gt; 다음과 같이 어느 부분이 업데이트가 필요한 지 확인할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;876&quot; data-origin-height=&quot;478&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/etC3aE/btsHu4z5Axu/gv2jzMwK9VuJZai9finQ7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/etC3aE/btsHu4z5Axu/gv2jzMwK9VuJZai9finQ7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/etC3aE/btsHu4z5Axu/gv2jzMwK9VuJZai9finQ7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FetC3aE%2FbtsHu4z5Axu%2Fgv2jzMwK9VuJZai9finQ7K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;327&quot; data-origin-width=&quot;876&quot; data-origin-height=&quot;478&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;위 그림을 보면 &lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;노란 경고표시가&lt;/b&gt;&lt;/span&gt; 되어 있는게 보일겁니다. &lt;span style=&quot;color: #5f6d2b;&quot;&gt;&lt;b&gt;그래픽카드와 멀티미디어에서 최신 버전 드라이버 업데이트가 필요&lt;/b&gt;&lt;/span&gt;하다고 하네요. 사실 이 글을 쓰기 전 확인하여 메인보드도 업데이트가 필요하다고 되어 있었는데 이미 설치를 해서 2개만 떠 있는 상황입니다.&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: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;해당 항목을 클릭하면 자동으로 해당 제품의 최신 드라이버를&lt;/b&gt; &lt;/span&gt;찾아줍니다. 그래픽카드를 예로 클릭해 보죠 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dkhbGs/btsHwsfylrU/XVOdsd6uRFa3LqqL2DQYTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dkhbGs/btsHwsfylrU/XVOdsd6uRFa3LqqL2DQYTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dkhbGs/btsHwsfylrU/XVOdsd6uRFa3LqqL2DQYTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdkhbGs%2FbtsHwsfylrU%2FXVOdsd6uRFa3LqqL2DQYTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;476&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;최신 드라이버를 다운로드 받을 수 있으며 설치&lt;/b&gt;&lt;/span&gt;할 수 있습니다. 참고로 3dp-chip에서 노란 경고등이 뜬 것은 노트북에 설치된 날짜가 2017년이었고 업데이트 필요 날짜는 2023년으로 나와 있기때문입니다. 하지만 &lt;span style=&quot;color: #a6bc00;&quot;&gt;&lt;b&gt;설치를 해 보면 최신버전으로 나오는 경우도 있는데 이는 드라이버 내용은 변하지 않고 설치된 날짜와 배포된 날짜의 차이로 노란 경고등이 뜨는&lt;/b&gt;&lt;/span&gt; 이유이기도 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&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;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;3. 최종 확인 (LG 그램용 드라이버 확인 필요)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;3dp-chip으로 웬만한 드라이버는 전부 설치 할 수 있습니다. 추가로 &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;현재 사용하고 있는 노트북이 LG 그램이기에 인텔제품에서 좀 더 업데이트가 필요&lt;/b&gt;&lt;/span&gt;할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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: 'Nanum Gothic';&quot;&gt; &lt;a href=&quot;https://www.intel.com/content/www/us/en/support/intel-driver-support-assistant.html&quot;&gt;Intel&amp;reg; Driver &amp;amp; Support Assistant&lt;/a&gt; &lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1716200234553&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;company&quot; data-og-title=&quot;Intel&amp;reg; Driver &amp;amp; Support Assistant&quot; data-og-description=&quot;This application provides driver and software updates for your Intel hardware.&quot; data-og-host=&quot;www.intel.com&quot; data-og-source-url=&quot;https://www.intel.com/content/www/us/en/support/intel-driver-support-assistant.html&quot; data-og-url=&quot;https://www.intel.com/content/www/us/en/support/intel-driver-support-assistant.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bQAfum/hyV6jJHylW/eQSdfKovM2RaluT4sUIkC1/img.png?width=586&amp;amp;height=330&amp;amp;face=0_0_586_330,https://scrap.kakaocdn.net/dn/bk2LKl/hyV90PcQ8j/YUkvr5zAJ9mKa7anEr4khk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500&quot;&gt;&lt;a href=&quot;https://www.intel.com/content/www/us/en/support/intel-driver-support-assistant.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.intel.com/content/www/us/en/support/intel-driver-support-assistant.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bQAfum/hyV6jJHylW/eQSdfKovM2RaluT4sUIkC1/img.png?width=586&amp;amp;height=330&amp;amp;face=0_0_586_330,https://scrap.kakaocdn.net/dn/bk2LKl/hyV90PcQ8j/YUkvr5zAJ9mKa7anEr4khk/img.png?width=2500&amp;amp;height=2500&amp;amp;face=0_0_2500_2500');&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;Intel&amp;reg; Driver &amp;amp; Support Assistant&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;This application provides driver and software updates for your Intel hardware.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.intel.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이 곳을 방문하면 &lt;span style=&quot;color: #953b34;&quot;&gt;&lt;b&gt;인텔 제품에 한하여&lt;/b&gt;&lt;/span&gt; &lt;span style=&quot;color: #953b34;&quot;&gt;&lt;b&gt;자동으로 내 컴퓨터를 스캔하여 필요 드라이버를 최신으로 업데이트 하고 설치&lt;/b&gt;&lt;/span&gt;해 줍니다. 만일 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;자동 스캔이 되지 않으면 스캔하는 파일을 직접 다운로드&lt;/b&gt;&lt;/span&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;font-family: 'Nanum Gothic';&quot;&gt;3dp-chip에서 나오지 않은 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;Dual Band의 Bluetooth 드라이버와 무선 Wi-Fi 드라이버를 찾아내어 설치&lt;/b&gt;&lt;/span&gt;해 주었습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;688&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cep7Lt/btsHwuqYN3F/vBx2efFXapGUWAEvUviYLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cep7Lt/btsHwuqYN3F/vBx2efFXapGUWAEvUviYLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cep7Lt/btsHwuqYN3F/vBx2efFXapGUWAEvUviYLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcep7Lt%2FbtsHwuqYN3F%2FvBx2efFXapGUWAEvUviYLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1141&quot; height=&quot;688&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;688&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이제는 드라이버가 업데이트 안되어 발생되는 문제는 해결이 되었습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <category>컴퓨터 알아가기/알아두면 편한 팁</category>
      <category>3DP-chip</category>
      <category>lg그램깜빡거림</category>
      <category>엣지깜빡거림</category>
      <category>인텔드라이버설치</category>
      <category>최신드라이버설치</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/481</guid>
      <comments>https://happygunja.tistory.com/481#entry481comment</comments>
      <pubDate>Mon, 20 May 2024 19:28:48 +0900</pubDate>
    </item>
    <item>
      <title>일단사일표음 (一簞食一瓢飮) : 바구니 밥과 표주박 물로 행복을 느끼다</title>
      <link>https://happygunja.tistory.com/480</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;일단사일표음에서 일을 빼고&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt; '단사표음'이라는 사자성어&lt;/b&gt;&lt;/span&gt;가 많이 사용됩니다. 여기서 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;단(簞)은 대나무로 만든 바가지 그릇을 말하고 표(瓢)는 표주박같이 작은 바가지&lt;/b&gt;&lt;/span&gt;를 뜻합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;즉, &lt;span style=&quot;color: #8a3db6;&quot;&gt;바구니 밥과 표주박에 물을 떠서 먹는 가난한 상황&lt;/span&gt;을 일컫는데 공자의 제자 안회가 이런 생활을 했다고 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;물론, 당시 안회의 능력과 자질은 충분히 호의호식을 할 수 있을만큼 출중했다고 하고 공자도 이런 안회의 능력을 인정하였다고 합니다. 안회는 &lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;외형적으로 부가 행복을 가져다 줄 수 없다고 판단하고 진정한 행복은 자신이 정진하고 있는 공부와 그에 대한 실천에서 온다&lt;/b&gt;&lt;/span&gt;고 믿은 듯 합니다. 물질적인 측면에서 가난한 마을에서 먹는 단사표음을 하는 것은 아무런 영향을 끼치지 않고 오히려 그렇게라도 먹을 수 있다는 현실에 감사함을 느끼면서 산 것 같습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;신정근 교수님의 일단사일표음의 해석은 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;오늘날 현실에 맞게 '라면을 먹고 맹물을 마실지언정'으로&lt;/b&gt;&lt;/span&gt; 해석합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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: 'Nanum Gothic';&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: 'Nanum Gothic';&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: 'Nanum Gothic';&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: 'Nanum Gothic';&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: 'Nanum Gothic';&quot;&gt;한걸음 한걸음 마음의 행복을 찾는 훈련이 필요하겠네요..&lt;br /&gt;&lt;br /&gt;귀가 열리는 이순(&lt;span style=&quot;background-color: #ffffff; color: #444444; text-align: left;&quot;&gt;耳順)을 바라보는 나이에도 마음의 행복을 찾지 못하고 있는 내 모습이 부끄럽기 한이 없습니다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>고사성어</category>
      <category>단사표음</category>
      <category>안빈낙도</category>
      <category>일단사일표음</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/480</guid>
      <comments>https://happygunja.tistory.com/480#entry480comment</comments>
      <pubDate>Mon, 13 May 2024 12:26:06 +0900</pubDate>
    </item>
    <item>
      <title>글을 쓸 수가 없네요</title>
      <link>https://happygunja.tistory.com/479</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;고통은 삶의 본질이라고 했는데&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;모든 면에서 힘이 드는 시기가 또 한번 찾아왔습니다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그래도 힘내보고자 여러 사람을 만나고 스스로 나의 목적함수를 찾는 여정을 갑니다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;글도 마음이 안정되고 해야 써지는 것을 이제 알았습니다.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;다시한번 본 블로그를 운영하는 모티베이션을 기대해 봅니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/479</guid>
      <comments>https://happygunja.tistory.com/479#entry479comment</comments>
      <pubDate>Mon, 29 Apr 2024 12:42:24 +0900</pubDate>
    </item>
    <item>
      <title>[React 기초] 끝말잇기 게임 React로 만들기</title>
      <link>https://happygunja.tistory.com/478</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;바로 지난시간 끝말잇기 게임에 대한 자바스크립트로 과거 공부한 것을 복습해 보았습니다. 이제 이 부분을 React Hooks로 만들어 볼 차례입니다. 지금 참고하고 있는 강좌에서는 좀 더 간단한 예제로 진행을 해서 스스로 만들어 본 자바스크립트를 React로 적용하는 과정에서 많은 시행착오를 겪었내요. 시행착오를 다시 겪지 않기위해 이 곳에 정리해 봅니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;▒ React 끝말잇기 게임&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&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;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. 함수 콤포너트 변수 설정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;초보자로서 React를 한다는 것은 어떤 변수가 사용될지에 90%이상 성공확률이 있다고&lt;/b&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: 'Nanum Gothic';&quot;&gt;지난번 자바스크립트로 만든 결과물은 아래와 같았습니다. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;367&quot; data-origin-height=&quot;528&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J0G36/btsDLKxEjGh/SqTt02UjOUVxIc1s2Sps11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J0G36/btsDLKxEjGh/SqTt02UjOUVxIc1s2Sps11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J0G36/btsDLKxEjGh/SqTt02UjOUVxIc1s2Sps11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ0G36%2FbtsDLKxEjGh%2FSqTt02UjOUVxIc1s2Sps11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;504&quot; data-origin-width=&quot;367&quot; data-origin-height=&quot;528&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&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: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;각각의 숫자는 &amp;lt;div&amp;gt;태그와 &amp;lt;input&amp;gt;태그 &amp;lt;button&amp;gt;태그가 반영이 되는 곳으로 React의 render(&amp;nbsp; ) 함수내에 적용&lt;/b&gt;&lt;/span&gt;될 그림입니다. 총 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;7개의 영역으로&lt;/b&gt; &lt;/span&gt;나뉩니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이제 React에서 사용될 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;변수를 확인해야 하는데 변수로 잡는다는 것은 state를 확인&lt;/b&gt;&lt;/span&gt;하는 과정입니다. state는 어떠한 반응에 의해 변하는 상태를 말하는데 위 그림에서 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;주황색 사각형이 변하는 state&lt;/b&gt;&lt;/span&gt;입니다. 따라서 총&lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt; 5개의 변수가 필요&lt;/b&gt;&lt;/span&gt;합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;201&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zd6wx/btsDNIfiimf/2ZGUZ4vkz5k114PTlgOnu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zd6wx/btsDNIfiimf/2ZGUZ4vkz5k114PTlgOnu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zd6wx/btsDNIfiimf/2ZGUZ4vkz5k114PTlgOnu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzd6wx%2FbtsDNIfiimf%2F2ZGUZ4vkz5k114PTlgOnu1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;178&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;201&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;참고로 그림에서 표현되는 CSS는 나중에 적용되어도 되기때문에 여기서는 다루지 않겠습니다.&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;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. HTML 영역 : 7개의 &amp;lt;div&amp;gt;영역내 5개의 state 변수 적용&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;render(&amp;nbsp; ) 함수내 HTML 영역을 설계&lt;/b&gt;&lt;/span&gt;해야 합니다. 이 곳은 최종적으로 id가 root인 최초 &amp;lt;div&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;669&quot; data-origin-height=&quot;744&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beNhjg/btsDIw8NB2Y/gKN3x1aCVA36Gr7dNKdxF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beNhjg/btsDIw8NB2Y/gKN3x1aCVA36Gr7dNKdxF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beNhjg/btsDIw8NB2Y/gKN3x1aCVA36Gr7dNKdxF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeNhjg%2FbtsDIw8NB2Y%2FgKN3x1aCVA36Gr7dNKdxF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;667&quot; data-origin-width=&quot;669&quot; data-origin-height=&quot;744&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;상기 코드에서 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;변수로 설정된 내용 5개가 전부 반영이 되었는데 word 대신 lastWordColor(&amp;nbsp; )라는 함수가 객체로 변수 자리에 반영&lt;/b&gt;&lt;/span&gt;이 되었습니다. 이는 끝말에 다른 색을 표시하기 위한 함수로 만일 색을 지정하지 않았다면 기존의 변수인 word가 사용되었을 겁니다.&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: 'Nanum Gothic';&quot;&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;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;3. addEventLisner와 같은 반응형 함수 작성&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;자바스크립트에서는 input을 할때 value의 변화가 있었고 이에 따른 button에서 onClick함수를 통해 반응형 콜백함수(addEventListner)를 사용하였는데 지금 만들고 있는 React에서 함수로 처리하면 됩니다.&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;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;① &amp;lt;form&amp;gt;태그에 반영 함수&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;&amp;lt;form&amp;gt; 태그 안에는&amp;nbsp;&amp;lt;input&amp;gt;태그와 &amp;lt;button&amp;gt;태그를 지정&lt;/b&gt;&lt;/span&gt;해 봅니다. 먼저 &lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;&amp;lt;input&amp;gt;태그는 직접 단어를 입력하는 곳으로 e.target.value가 사용&lt;/b&gt;&lt;/span&gt;되는 곳이죠.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;set변수명을 사용하는 것은 알고 있겠죠.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u25Fn/btsDLtbGech/iZEpUK5fi5mGKXO5ansh61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u25Fn/btsDLtbGech/iZEpUK5fi5mGKXO5ansh61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u25Fn/btsDLtbGech/iZEpUK5fi5mGKXO5ansh61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu25Fn%2FbtsDLtbGech%2FiZEpUK5fi5mGKXO5ansh61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;88&quot; data-origin-width=&quot;356&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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: 'Nanum Gothic';&quot;&gt;보통 입력하고 결과를 확인하는 경우 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;button에서 클릭하는데 엔터키를 사용해도 되는 함수를&lt;/b&gt;&lt;/span&gt; 다음과 같이 만들어 줍니다. 이는 입력한 단어를 &lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;form에서 제출(submit)할때 같이 연동&lt;/b&gt;&lt;/span&gt; 시킵니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIcwjt/btsDJfr4nrp/24NWxOz0hx7Rz22u4P1tEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIcwjt/btsDJfr4nrp/24NWxOz0hx7Rz22u4P1tEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIcwjt/btsDJfr4nrp/24NWxOz0hx7Rz22u4P1tEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIcwjt%2FbtsDJfr4nrp%2F24NWxOz0hx7Rz22u4P1tEK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;134&quot; data-origin-width=&quot;335&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;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: 'Nanum Gothic';&quot;&gt;이제 &amp;lt;form&amp;gt;태그에 submit할때 사용하는 함수를 작성하는데 이 곳이 결국 main이겠죠. 모든 프로그램이 반영이 되는 곳이니까요.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;717&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEfHKj/btsDKP7b6dN/LElajDoPdKxh665k9RyWMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEfHKj/btsDKP7b6dN/LElajDoPdKxh665k9RyWMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEfHKj/btsDKP7b6dN/LElajDoPdKxh665k9RyWMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEfHKj%2FbtsDKP7b6dN%2FLElajDoPdKxh665k9RyWMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;764&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;717&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;다른 부분은 이해가 될 것으로 보고 &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;단어 끝 색깔을 바꾸는 함수를 lastWordColor(&amp;nbsp; )로 반영&lt;/b&gt;&lt;/span&gt;을 하였고 &lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;순서가 바뀌는 함수를 updateOrder(&amp;nbsp; ) 함수로&lt;/b&gt;&lt;/span&gt; 반영을 하였습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;② last WordColor(&amp;nbsp; ) 함수&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이는 기존에 설명한 것 처럼 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;두글자 단어의 끝 색깔에 변화를 주는 함수&lt;/b&gt;&lt;/span&gt;입니다. &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;slice(&amp;nbsp; ) 함수로 맨 끝단어를 선택&lt;/b&gt;&lt;/span&gt;하고 자바스크립트의 css 반영 툴을 이용해서 다음과 같이 만듭니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqqqCG/btsDJi3nJPe/YkOeudK606xAKUDPd2faLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqqqCG/btsDJi3nJPe/YkOeudK606xAKUDPd2faLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqqqCG/btsDJi3nJPe/YkOeudK606xAKUDPd2faLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqqqCG%2FbtsDJi3nJPe%2FYkOeudK606xAKUDPd2faLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;153&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;166&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이는 자바스크립트에서 JSX문법으로 가는 과정인데 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;JS에서 innerHTML 삽입하는 일반적인 문구를 함수안에서 return시킬때 사용하는 dangerouslySetInnerHTML을 사용&lt;/b&gt;&lt;/span&gt;하였습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;③ updateOrder(&amp;nbsp; ) 함수&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&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: 'Nanum Gothic';&quot;&gt;기준이 되는 것은 &lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;order변수에 최초 시작을 '1'로 반영을 하고 나머지 수를 구한 값에 순서를 늘려가는 과정&lt;/b&gt;&lt;/span&gt;입니다. 즉, 다시 참가자수를 넘게 되면 1로 돌아오는 구조이지요.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSHFcQ/btsDQVL6rWe/2t41FWI79q8FKKfbbD2XDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSHFcQ/btsDQVL6rWe/2t41FWI79q8FKKfbbD2XDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSHFcQ/btsDQVL6rWe/2t41FWI79q8FKKfbbD2XDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSHFcQ%2FbtsDQVL6rWe%2F2t41FWI79q8FKKfbbD2XDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;546&quot; data-origin-height=&quot;103&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&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;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;4. 전체 코드&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1940&quot; data-origin-height=&quot;8158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FEaAw/btsDKNuQuYI/mNnMDMUKck7H6gcjt7lalK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FEaAw/btsDKNuQuYI/mNnMDMUKck7H6gcjt7lalK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FEaAw/btsDKNuQuYI/mNnMDMUKck7H6gcjt7lalK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFEaAw%2FbtsDKNuQuYI%2FmNnMDMUKck7H6gcjt7lalK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1940&quot; height=&quot;8158&quot; data-origin-width=&quot;1940&quot; data-origin-height=&quot;8158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>컴퓨터 알아가기/React</category>
      <category>dangerouslySetInnerHTML</category>
      <category>hooks</category>
      <category>React</category>
      <category>끝말잇기게임</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/478</guid>
      <comments>https://happygunja.tistory.com/478#entry478comment</comments>
      <pubDate>Mon, 22 Jan 2024 19:30:15 +0900</pubDate>
    </item>
    <item>
      <title>[React 기초] 끝말잇기 게임 (JS복습) : 클릭하면 게임이 시작됩니다!</title>
      <link>https://happygunja.tistory.com/477</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이 페이지를 실행하면 참가인원수 입력하는 창이 뜹니다. 참고하세요~&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;두번째 React를 공부하기 위해서 지난시간 구구단 게임이후 과거 끝말잇기를 자바스크립트로 공부하였습니다. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;강좌의 내용을 그대로 베껴가면서 공부하였는데 이는 거의 암기과목처럼 해서 머리에 거의 남지 않은 상태&lt;/b&gt;&lt;/span&gt;가 되었네요. 결국 React 또한 자바스크립트가 기본이 되어야 하기때문에 복습하고 자신의 것으로 만들어야 합니다.&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: 'Nanum Gothic';&quot;&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;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. 끝말잇기 구조&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;하나의 프로그램을 만들기 위하여 과거 순서도를 만들어 진행을 한 기억이 있습니다만, 순서도 그리는데 집중했지 하나하나 어떤 코드가 필요한지는 잘 몰랐던 것 같습니다. 그렇다고 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;초보자들이 머리속으로 코드의 흐름을 그린다는 것은 불가능&lt;/b&gt; &lt;/span&gt;하기때문에 필요한 코드를 유추하기 위해서 &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;자신만의 순서도 개념이 필요&lt;/b&gt;&lt;/span&gt;합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;끝말잇기란 &lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;첫단어를 입력하고 첫단어의 끝에 맞춰서 다른 단어 입력하는게임&lt;/b&gt;&lt;/span&gt;입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;상기 사항이 가장 Main이 되며 나머지는 부수적으로 꾸며준다고 보면 됩니다. 각각을 보면서 어떤 코드가 필요한지 유출할 수 있습니다. &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;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. 각 단계별 필요 코드 유추&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;lt;HTML&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;기본적인 뼈대가&lt;/b&gt; &lt;/span&gt;되는 작업입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;여기서 필요한 코드는 &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;몇개의 &amp;lt;div&amp;gt;태그로 나눌것인가&lt;/b&gt;&lt;/span&gt; 입니다. 제목, 순서, 입력, 결과 등 개인별 설계에 맞추어 HTML 파일을 만들어 줍니다.&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: 'Nanum Gothic';&quot;&gt;깊이 다시 공부하고자 하는 분은 자바스크립트 강좌를 참조헤 주시기 바랍니다. 여기는 복습의 단계이니까요...&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;lt;CSS&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;스타일 태그는 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;자바스크립트 코드를 완성하는 후에 작업을 해도 무방&lt;/b&gt;&lt;/span&gt;합니다. 단지 약간의 테크닉 등이 필요한데 이는 지속적으로 공부를 해 나가면서 know-how를 키워나가야 합니다. &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: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;lt;javaScript&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;프로그램이 돌아가기 위한 가장 key가 되는 작업이기도 합니다. 서두에서 이야기 하였듯이 첫번째 단어가 입력이 되면 그 단어에 맞추어 두번째 단어가 이어지고 하는 이런 방식의 게임입니다. &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: 'Nanum Gothic';&quot;&gt;그러기 위해서는 &lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;순서대로 고민해 보아야 할 것&lt;/b&gt;&lt;/span&gt;은 다음과 같을겁니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;① 게임참가 인원&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;아직 컴퓨터와 직접 할 수 있는 프로그램 능력이 안되기에 &lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;참가할 인원을 정하면서 하는 방식으로&lt;/b&gt;&lt;/span&gt; 진행합니다. 이는 &lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;prompt(&amp;nbsp; ) 함수를 이용&lt;/b&gt;&lt;/span&gt;하면 가능합니다. 참가자수를 정한다는 것은 지금 몇번째 참가자가 게임을 하는지 연결하기 위함입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; text-align: start;&quot;&gt;② 첫단어를 입력하는 코드&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span style=&quot;color: #953b34;&quot;&gt;&lt;b&gt;첫단어의 뜻은 input창에 아무것도 쓰여있지 않은 상태&lt;/b&gt;&lt;/span&gt;를 말합니다. &lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;단어를 나타내는 변수를 설정하여 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;단어가 없다면이라는 if문으로 처리&lt;/b&gt;&lt;/span&gt;합니다. 첫단어가 확실하면 그때 입력하는 새로운 단어가 곧 단어를 뜻하는 변수로 바뀌고 input창은 다시 빈칸으로 만드는 과정이며, 첫단어가 아닌경우는 바로 두번째 단어라는 개념으로 출발하면 될 듯 합니다.&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: 'Nanum Gothic'; color: #333333; text-align: start;&quot;&gt;여기서 추가할 점은 여러가지 상황이 있으니 &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;한글로만 한정을 하고 거기에 두글자인 단어로 한정하는 추가적인 게임방식&lt;/b&gt;&lt;/span&gt;을 고민할 수 있을겁니다. 이는 다음과 같은 &lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;정규표현식을 통해&lt;/b&gt;&lt;/span&gt; 정릐할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ef5369;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; text-align: start;&quot;&gt;cosnt 변수명 = /^[가-힣]{2}$/&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333; text-align: start;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;입력한다는 것은 input창에 입력하고 버튼을 통해 반응을&lt;/b&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: 'Nanum Gothic'; 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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;446&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJqPzb/btsDwBHNArd/k3H9J3hjpBH6gAFVihh101/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJqPzb/btsDwBHNArd/k3H9J3hjpBH6gAFVihh101/img.png&quot; data-alt=&quot;input하기 위한 콜백함수&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJqPzb/btsDwBHNArd/k3H9J3hjpBH6gAFVihh101/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJqPzb%2FbtsDwBHNArd%2Fk3H9J3hjpBH6gAFVihh101%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;110&quot; data-origin-width=&quot;446&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;input하기 위한 콜백함수&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;154&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIAItP/btsDrEFgtr4/07ZeANJWEbOFIhcJ4rTPTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIAItP/btsDrEFgtr4/07ZeANJWEbOFIhcJ4rTPTk/img.png&quot; data-alt=&quot;클릭하기 위한 콜백함수 구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIAItP/btsDrEFgtr4/07ZeANJWEbOFIhcJ4rTPTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIAItP%2FbtsDrEFgtr4%2F07ZeANJWEbOFIhcJ4rTPTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;134&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;154&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;클릭하기 위한 콜백함수 구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; text-align: start;&quot;&gt;③ 첫단어의 끝에 맞춰서 다른 단어 입력&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333; text-align: start;&quot;&gt;&lt;span style=&quot;color: #5f6d2b;&quot;&gt;&lt;b&gt;단어의 끝을 나타낼 수 있는 것과 그 다음 단어의 첫글자가 같다라는 개념&lt;/b&gt;&lt;/span&gt;으로 진행하면 되고 그렇지 않으면 경고창을 뛰웁니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; text-align: start;&quot;&gt;④ 결과창&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333; text-align: start;&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;단어가 맞다면 결과창에 '정답'같은 표시를&lt;/b&gt; &lt;/span&gt;나타내게 만들면 됩니다. 물론 이 게임은 국어사전 서버에 연결시켜 하는 게임이 아니기에 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;약간의 필요 경고문 또는 안내문을 곁들인다면&lt;/b&gt; &lt;/span&gt;그나마 프로그램으로 보일 수 있을 겁니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; text-align: start;&quot;&gt;⑤ 꾸미기&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333; text-align: start;&quot;&gt;배경색을 어떻게 할지 각각 나타낼 수 있는 CSS효과를 고려하면서 진행하고 추가로 만들어지는 내용들은 자바스크립트에서 innerHTML을 사용할 수 있기에 다양하게 꾸밀 수 있을 것으로 보여지네요.&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;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; text-align: start;&quot;&gt;3. 자바스크립트 코드&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333; text-align: start;&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1834&quot; data-origin-height=&quot;3636&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SNAqt/btsDxTuksBH/sNo9TJLMXm8UAZKpglv1y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SNAqt/btsDxTuksBH/sNo9TJLMXm8UAZKpglv1y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SNAqt/btsDxTuksBH/sNo9TJLMXm8UAZKpglv1y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSNAqt%2FbtsDxTuksBH%2FsNo9TJLMXm8UAZKpglv1y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1834&quot; height=&quot;3636&quot; data-origin-width=&quot;1834&quot; data-origin-height=&quot;3636&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;4. 실행결과&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;다음 실행결과를 참조하기 바랍니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script src=&quot;//jsfiddle.net/skkim0303/d0571vnm/1/embed/result/&quot;&gt;&lt;/script&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>컴퓨터 알아가기/React</category>
      <category>React</category>
      <category>끝말잇기게임</category>
      <category>자바스크립트</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/477</guid>
      <comments>https://happygunja.tistory.com/477#entry477comment</comments>
      <pubDate>Mon, 15 Jan 2024 19:30:09 +0900</pubDate>
    </item>
    <item>
      <title>[React 기초] Webpack 설치 및 실행 : 9탄 - Hot Reloading</title>
      <link>https://happygunja.tistory.com/476</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;지난 시간 5탄에서 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;자체 서버를 설정하여 웹팩 실행결과(build)를 볼 수 있는 환경설정에&lt;/b&gt;&lt;/span&gt; 대해 알아 본적이 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://happygunja.tistory.com/472&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.12.31 - [컴퓨터 알아가기/React] - [React 기초] Webpack 설치 및 실행 : 5탄 - 웹팩 개발 서버 (devServer) 설치&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1704883186153&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 기초] Webpack 설치 및 실행 : 5탄 - 웹팩 개발 서버 (devServer) 설치&quot; data-og-description=&quot;웹팩과 관련하여 시리즈별로 나누어서 진행을 하고 있는데 보통 개발자가 아닌 초보자들은 한번 따라해도 금방 잊어버리기 일수입니다. 따라서 차근 차근 자기것으로 만들지 않는 한 그냥 모래&quot; data-og-host=&quot;happygunja.tistory.com&quot; data-og-source-url=&quot;https://happygunja.tistory.com/472&quot; data-og-url=&quot;https://happygunja.tistory.com/472&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/friqA/hyU2lH1dbY/JR7n8XBG2Glf0ybbSRdGj0/img.png?width=751&amp;amp;height=132&amp;amp;face=0_0_751_132,https://scrap.kakaocdn.net/dn/kuEJP/hyU2kI8QgX/eVrlp5Kcj3sXJN5vOaCDV0/img.png?width=751&amp;amp;height=132&amp;amp;face=0_0_751_132,https://scrap.kakaocdn.net/dn/bawAnq/hyU2jKdOsY/lnKBQwT6efZValCHYCl7ZK/img.png?width=518&amp;amp;height=580&amp;amp;face=0_0_518_580&quot;&gt;&lt;a href=&quot;https://happygunja.tistory.com/472&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://happygunja.tistory.com/472&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/friqA/hyU2lH1dbY/JR7n8XBG2Glf0ybbSRdGj0/img.png?width=751&amp;amp;height=132&amp;amp;face=0_0_751_132,https://scrap.kakaocdn.net/dn/kuEJP/hyU2kI8QgX/eVrlp5Kcj3sXJN5vOaCDV0/img.png?width=751&amp;amp;height=132&amp;amp;face=0_0_751_132,https://scrap.kakaocdn.net/dn/bawAnq/hyU2jKdOsY/lnKBQwT6efZValCHYCl7ZK/img.png?width=518&amp;amp;height=580&amp;amp;face=0_0_518_580');&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 기초] Webpack 설치 및 실행 : 5탄 - 웹팩 개발 서버 (devServer) 설치&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;웹팩과 관련하여 시리즈별로 나누어서 진행을 하고 있는데 보통 개발자가 아닌 초보자들은 한번 따라해도 금방 잊어버리기 일수입니다. 따라서 차근 차근 자기것으로 만들지 않는 한 그냥 모래&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;happygunja.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그런데 이 개발서버는 쉽게 말해서 &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;코드가 수정이 되면 바로 새로고침이 되어 결과를 볼 수 있는 장점이 있지만 단계별로 수정되는 프로그램에서는 새로고침후 수정이 필요할 시 처음부터 전부 수정을 해야하는&lt;/b&gt;&lt;/span&gt; 번거로움이 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이런 경우 좀 더 &lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;효율적인 작업이 될 수 있게 웹 브라우저에 반영되는 메모리에 보내서 결과를 바로 바로 확인할 수 있으면서도 작업해 왔던 코드를 처음부터 수정하지 않아도 되는 기능을 React에서 Hot Reloading&lt;/b&gt;&lt;/span&gt;이라는 표현을 사용합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;금일은 Hot Reloading 설정에 대해 공부하고 개발서버(devServer)에도 추가 설정을 하도록 하겠습니다.&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: 'Nanum Gothic';&quot;&gt;이 분야는 제로초 TV의 강좌를 기본으로 공부 하였으나 내용이 오래되고 내 컴퓨터 환경에 안맞는 경우는 좀 더 고민해서 만들어 보았습니다. .&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #8a3db6; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;▒ React Hot Reloading 설정&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/h4&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;color: #409d00; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. 프로그램 설치&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;다음과 같이 필요한 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;플러그인을 설치&lt;/b&gt;&lt;/span&gt;합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1045&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cs7hzF/btsDhTvMCsB/qoTnyfDoynfuNDKmCx85Z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cs7hzF/btsDhTvMCsB/qoTnyfDoynfuNDKmCx85Z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cs7hzF/btsDhTvMCsB/qoTnyfDoynfuNDKmCx85Z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcs7hzF%2FbtsDhTvMCsB%2FqoTnyfDoynfuNDKmCx85Z0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1045&quot; height=&quot;90&quot; data-origin-width=&quot;1045&quot; data-origin-height=&quot;90&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;color: #409d00; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 명령어 설정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #5f6d2b;&quot;&gt;&lt;b&gt;package.json에서 refresh를 시킬수 있는&lt;/b&gt; &lt;/span&gt;명령어를 등록합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;build 명령어를 사용하고 있으니 다른 명령어를 하나 더 등록해 봅니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rvU5m/btsDj3Y5WvK/kwHdNfDxMUIZSD10ec7q5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rvU5m/btsDj3Y5WvK/kwHdNfDxMUIZSD10ec7q5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rvU5m/btsDj3Y5WvK/kwHdNfDxMUIZSD10ec7q5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrvU5m%2FbtsDj3Y5WvK%2FkwHdNfDxMUIZSD10ec7q5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;146&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;3. 플러그인 설정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;webpack.config.js에서 플로그인을 설정해 줍니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;우선 &lt;span style=&quot;color: #5733b1;&quot;&gt;&lt;b&gt;맨 상단에 require(&amp;nbsp; )시키고 설정&lt;/b&gt;&lt;/span&gt;이 필요하겠지요.&lt;span style=&quot;color: #953b34;&quot;&gt;&lt;b&gt; require(&amp;nbsp; ) 안에는 미리 설치했던 플러그인을 불러오면서 그에 맞는 적당한 변수이름&lt;/b&gt;&lt;/span&gt;으로 하면 됩니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;그 후 &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;plugins에 반영&lt;/b&gt;&lt;/span&gt;합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;831&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q6qsp/btsDhNW1qZF/BFv4HxVtXEvqbDlLn83uZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q6qsp/btsDhNW1qZF/BFv4HxVtXEvqbDlLn83uZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q6qsp/btsDhNW1qZF/BFv4HxVtXEvqbDlLn83uZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ6qsp%2FbtsDhNW1qZF%2FBFv4HxVtXEvqbDlLn83uZ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;560&quot; data-origin-width=&quot;831&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;color: #409d00; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;4. Module내 plugin 설정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;Module내에 rules에서 presets 밑에 plugin을 하나 반영한 곳&lt;/b&gt;&lt;/span&gt;이 있습니다. 이 곳에 react-refresh를 설정합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;651&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/crDRuY/btsDjVUbnwi/9ZnZOHTVzicClalRqbrAw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/crDRuY/btsDjVUbnwi/9ZnZOHTVzicClalRqbrAw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/crDRuY/btsDjVUbnwi/9ZnZOHTVzicClalRqbrAw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcrDRuY%2FbtsDjVUbnwi%2F9ZnZOHTVzicClalRqbrAw0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;577&quot; data-origin-width=&quot;564&quot; data-origin-height=&quot;651&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;5. 개발서버(devServer) 설정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;기존에 이미 개발서버는 설정 하였으나 &lt;span style=&quot;color: #5733b1;&quot;&gt;&lt;b&gt;Hot Reloading을 위해 추가로&lt;/b&gt; &lt;/span&gt;다음과 같이 설정합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boNntN/btsDdFL844B/eGR9UOK1RayTZmWlRTyowK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boNntN/btsDdFL844B/eGR9UOK1RayTZmWlRTyowK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boNntN/btsDdFL844B/eGR9UOK1RayTZmWlRTyowK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboNntN%2FbtsDdFL844B%2FeGR9UOK1RayTZmWlRTyowK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;450&quot; height=&quot;160&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;179&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: 'Nanum Gothic';&quot;&gt;이제 설정이 끝났습니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&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: 'Nanum Gothic';&quot;&gt;다음과 같이 localhost가 나옵니다. 여기를 클릭(Ctrl + 클릭)이나 브라우저에 주소를 붙혀서 할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sXNQh/btsDj4jpdpH/eUbFxewvoT8Z0y5I5IKLo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sXNQh/btsDj4jpdpH/eUbFxewvoT8Z0y5I5IKLo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sXNQh/btsDj4jpdpH/eUbFxewvoT8Z0y5I5IKLo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsXNQh%2FbtsDj4jpdpH%2FeUbFxewvoT8Z0y5I5IKLo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;200&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dzyCXk/btsDjWFy3vI/roxcguaHxVS3FGPqQVdiiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dzyCXk/btsDjWFy3vI/roxcguaHxVS3FGPqQVdiiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dzyCXk/btsDjWFy3vI/roxcguaHxVS3FGPqQVdiiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdzyCXk%2FbtsDjWFy3vI%2FroxcguaHxVS3FGPqQVdiiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;336&quot; data-origin-width=&quot;311&quot; data-origin-height=&quot;348&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Hot Reloading을 시험해 보기 위해 &lt;span style=&quot;color: #5f6d2b;&quot;&gt;&lt;b&gt;일부 코드를 수정해&lt;/b&gt;&lt;/span&gt; 봅니다. 다음과 같이 곱하기 대신 더하기로 기입했더니 &lt;span style=&quot;color: #009a87;&quot;&gt;&lt;b&gt;바로 devServer에서 내용이 변합니다.&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1037&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mHDO8/btsDfNQKBww/6tGz8HBEK2mwFsAkuqhrj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mHDO8/btsDfNQKBww/6tGz8HBEK2mwFsAkuqhrj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mHDO8/btsDfNQKBww/6tGz8HBEK2mwFsAkuqhrj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmHDO8%2FbtsDfNQKBww%2F6tGz8HBEK2mwFsAkuqhrj0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1037&quot; height=&quot;228&quot; data-origin-width=&quot;1037&quot; data-origin-height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;297&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQaIlo/btsDdIvj6Y4/x7cMas1MkUblXOMISmcjRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQaIlo/btsDdIvj6Y4/x7cMas1MkUblXOMISmcjRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQaIlo/btsDdIvj6Y4/x7cMas1MkUblXOMISmcjRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQaIlo%2FbtsDdIvj6Y4%2Fx7cMas1MkUblXOMISmcjRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;261&quot; data-origin-width=&quot;342&quot; data-origin-height=&quot;297&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>컴퓨터 알아가기/React</category>
      <category>@pmmmwh/react-refresh-webpack-plugin</category>
      <category>devMiddleware</category>
      <category>devServer</category>
      <category>Hot_Reloading</category>
      <category>React</category>
      <category>react-refresh</category>
      <category>웹팩</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/476</guid>
      <comments>https://happygunja.tistory.com/476#entry476comment</comments>
      <pubDate>Fri, 12 Jan 2024 19:30:19 +0900</pubDate>
    </item>
    <item>
      <title>[React 기초] Webpack 설치 및 실행 : 8탄 - Babel preset-env 환경 설정</title>
      <link>https://happygunja.tistory.com/475</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;지금까지 공부해 온 웹팩으로 기본적인 설치 및 실행은 가능합니다만 가능한 다양한 소스를 통하여 설정하는 법을 정리해 놓으면 향후 발생될 수 있는 에러에 대한 대처능력도 향상될 수 있다고 봅니다. 오늘은 일반 자바스크립트가 아닌 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;React에서 사용되는 Babel에 대한 플러그인 설정을 확인&lt;/b&gt;&lt;/span&gt;할 예정입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이런 설정들을 한번 해 놓으면 향후 사용하는 프로그램에 복사하여 좀 더 쉽게 사용할 수 있을겁니다. 이 내용은 제로초 TV의 React강좌를 기본으로 현 시점 현 환경에 맞게 공부하면서 정리한 내용입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;▒ Babel / preset-env 설정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&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;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. Babel / preset-env 란&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #5733b1;&quot;&gt;&lt;b&gt;React내 JSX문서를 읽을 수 있는 환경설정을 해주는 역할이 Babel&lt;/b&gt;&lt;/span&gt;인데 웹에서 표시되는 &lt;span style=&quot;color: #953b34;&quot;&gt;&lt;b&gt;결과물이 크롬이나 익스플로러 등 다양한 브라우저들에 대한 호환설정을 해 주는 곳&lt;/b&gt;&lt;/span&gt;입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. 환경설정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;webpaack.config.js에서 module안에 기존에 설정된 preset/env에서&lt;/b&gt;&lt;/span&gt;browser를 추가해 줍니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCzUwr/btsDhBhOHkT/sq5kWDRCZHA8dJlJEGYnKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCzUwr/btsDhBhOHkT/sq5kWDRCZHA8dJlJEGYnKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCzUwr/btsDhBhOHkT/sq5kWDRCZHA8dJlJEGYnKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCzUwr%2FbtsDhBhOHkT%2Fsq5kWDRCZHA8dJlJEGYnKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;467&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;558&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: 'Nanum Gothic';&quot;&gt;상기 코드에 뜻은 &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;한국에서 사용되는 브라우저 상위 5%이상에서 호환&lt;/b&gt;&lt;/span&gt;되는 설정입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이제 build를 해보면 Terminal 창에서 &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;다음과 같이 한국에서 사용되는 브라우저 상위 5%를 확인할 수&lt;/b&gt; &lt;/span&gt;있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;353&quot; data-origin-height=&quot;322&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHnzbm/btsDlzv2fGH/1BY5Cm6EU3hVjl2pR51QQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHnzbm/btsDlzv2fGH/1BY5Cm6EU3hVjl2pR51QQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHnzbm/btsDlzv2fGH/1BY5Cm6EU3hVjl2pR51QQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHnzbm%2FbtsDlzv2fGH%2F1BY5Cm6EU3hVjl2pR51QQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;319&quot; data-origin-width=&quot;353&quot; data-origin-height=&quot;322&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: 'Nanum Gothic';&quot;&gt;참고로 ios는 애플기기, samsung은 삼성기기를 나타냅니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <category>컴퓨터 알아가기/React</category>
      <category>babel/preset-env</category>
      <category>React</category>
      <category>웹팩</category>
      <category>호환브라우저설정</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/475</guid>
      <comments>https://happygunja.tistory.com/475#entry475comment</comments>
      <pubDate>Thu, 11 Jan 2024 19:30:27 +0900</pubDate>
    </item>
    <item>
      <title>[React 기초] 구구단게임 웹팩으로 실행하기</title>
      <link>https://happygunja.tistory.com/474</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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: 'Nanum Gothic';&quot;&gt;제로초TV와 코딩앙마 강좌를 혼합하면서 공부한 내역을 바탕으로 만들어 보고 에러가 있을 경우 여러가지 루트로 찾아 수정하는 방식을 갖도록 하겠습니다.&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;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. React 구구단 게임&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;React 구구단 게임은 다음과 같이 함수 콤포넌트를 사용하는 Hooks 위주로 만들어 보았습니다. CSS까지 적용한 내용은 필요시 이전글을 참조 바랍니다.&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: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://happygunja.tistory.com/466&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.12.25 - [컴퓨터 알아가기/React] - [React 기초] React 간단 예제 - 구구단 게임 : React Hooks&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1704856010633&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 기초] React 간단 예제 - 구구단 게임 : React Hooks&quot; data-og-description=&quot;구구단 게임은 임의의 랜덤한 두개의 숫자가 화면에 보이면 답을 입력하여 정답 또는 오답을 나타내는 간단한 웹게임입니다. 지난 시간 자바스크립트로 구성을 복습 하였기에 이제 본 목적인 Re&quot; data-og-host=&quot;happygunja.tistory.com&quot; data-og-source-url=&quot;https://happygunja.tistory.com/466&quot; data-og-url=&quot;https://happygunja.tistory.com/466&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bYGZuX/hyU2qPY3Lc/WI1n95wz4StAmKOBcnzkiK/img.png?width=623&amp;amp;height=531&amp;amp;face=0_0_623_531,https://scrap.kakaocdn.net/dn/PIfQ8/hyU2mUkKVu/JDkSY1rIWuXXOk3rrXgHMK/img.png?width=623&amp;amp;height=531&amp;amp;face=0_0_623_531,https://scrap.kakaocdn.net/dn/oyLKt/hyU2oECC2h/65nIeZbVU1T25d8wLk1T30/img.png?width=466&amp;amp;height=660&amp;amp;face=0_0_466_660&quot;&gt;&lt;a href=&quot;https://happygunja.tistory.com/466&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://happygunja.tistory.com/466&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bYGZuX/hyU2qPY3Lc/WI1n95wz4StAmKOBcnzkiK/img.png?width=623&amp;amp;height=531&amp;amp;face=0_0_623_531,https://scrap.kakaocdn.net/dn/PIfQ8/hyU2mUkKVu/JDkSY1rIWuXXOk3rrXgHMK/img.png?width=623&amp;amp;height=531&amp;amp;face=0_0_623_531,https://scrap.kakaocdn.net/dn/oyLKt/hyU2oECC2h/65nIeZbVU1T25d8wLk1T30/img.png?width=466&amp;amp;height=660&amp;amp;face=0_0_466_660');&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 기초] React 간단 예제 - 구구단 게임 : React Hooks&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;구구단 게임은 임의의 랜덤한 두개의 숫자가 화면에 보이면 답을 입력하여 정답 또는 오답을 나타내는 간단한 웹게임입니다. 지난 시간 자바스크립트로 구성을 복습 하였기에 이제 본 목적인 Re&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;happygunja.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://happygunja.tistory.com/467&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2023.12.26 - [컴퓨터 알아가기/React] - [React 기초] React 간단 예제 - 구구단 게임 : Hooks 및 CSS 적용&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1704856026844&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 기초] React 간단 예제 - 구구단 게임 : Hooks 및 CSS 적용&quot; data-og-description=&quot;지난시간까지 만들어 본 구구단 게임관련 CSS를 적용하여 좀 더 시각적으로 만들어 보는 연습을 해 보겠습니다. 아직까지는 HTML 구문에서 React를 사용하기 때문에 태그를 이용하여 만들 수 있습&quot; data-og-host=&quot;happygunja.tistory.com&quot; data-og-source-url=&quot;https://happygunja.tistory.com/467&quot; data-og-url=&quot;https://happygunja.tistory.com/467&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/kosGY/hyU2eorK98/qWri5fkNstTS6fBzj0HI4K/img.png?width=246&amp;amp;height=79&amp;amp;face=0_0_246_79,https://scrap.kakaocdn.net/dn/V2x0h/hyU2smIgRo/HbjM8Z9c3oZeLRTxDlnUQK/img.png?width=246&amp;amp;height=79&amp;amp;face=0_0_246_79,https://scrap.kakaocdn.net/dn/bAAJPo/hyU2g0TSwY/qULcGevZKvXfvgT8KHOss0/img.png?width=1940&amp;amp;height=5232&amp;amp;face=0_0_1940_5232&quot;&gt;&lt;a href=&quot;https://happygunja.tistory.com/467&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://happygunja.tistory.com/467&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/kosGY/hyU2eorK98/qWri5fkNstTS6fBzj0HI4K/img.png?width=246&amp;amp;height=79&amp;amp;face=0_0_246_79,https://scrap.kakaocdn.net/dn/V2x0h/hyU2smIgRo/HbjM8Z9c3oZeLRTxDlnUQK/img.png?width=246&amp;amp;height=79&amp;amp;face=0_0_246_79,https://scrap.kakaocdn.net/dn/bAAJPo/hyU2g0TSwY/qULcGevZKvXfvgT8KHOss0/img.png?width=1940&amp;amp;height=5232&amp;amp;face=0_0_1940_5232');&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 기초] React 간단 예제 - 구구단 게임 : Hooks 및 CSS 적용&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;지난시간까지 만들어 본 구구단 게임관련 CSS를 적용하여 좀 더 시각적으로 만들어 보는 연습을 해 보겠습니다. 아직까지는 HTML 구문에서 React를 사용하기 때문에 태그를 이용하여 만들 수 있습&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;happygunja.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. Webpack의 각 폴더 구조&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;지금까지 공부해 온 웹팩 설정 및 실행 폴더를 기준으로 구구단 웹팩을 샐행해 봅니다. &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;구구단 React 소스 코드가 반영된 곳은 src 폴더에 gugudan.jsx 파일&lt;/b&gt;&lt;/span&gt;입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;참고로 웹팩에서 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;외부에 배포하는 파일은 dist 폴더안에 있는 3개의 파일만&lt;/b&gt;&lt;/span&gt; 배포하면 됩니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pbxTm/btsC8QtoAHi/GU35uVbi1jn6vbdQl3Azn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pbxTm/btsC8QtoAHi/GU35uVbi1jn6vbdQl3Azn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pbxTm/btsC8QtoAHi/GU35uVbi1jn6vbdQl3Azn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpbxTm%2FbtsC8QtoAHi%2FGU35uVbi1jn6vbdQl3Azn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;382&quot; data-origin-width=&quot;892&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;dist폴더안 3개의파일(html, css, js) 만 배포하면 결과가 나오는지 확인해 봅니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;script src=&quot;//jsfiddle.net/skkim0303/3zd1o2r7/2/embed/result/&quot;&gt;&lt;/script&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: 'Nanum Gothic';&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>컴퓨터 알아가기/React</category>
      <category>React</category>
      <category>구구단게임웹팩</category>
      <category>웹팩</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/474</guid>
      <comments>https://happygunja.tistory.com/474#entry474comment</comments>
      <pubDate>Wed, 10 Jan 2024 14:05:44 +0900</pubDate>
    </item>
    <item>
      <title>[React 기초] Webpack 설치 및 실행 : 6탄 - CSS Loader 설치하기</title>
      <link>https://happygunja.tistory.com/473</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;지금까지 순조롭게 웹팩 설치에 대한 순서를 같이 공부한 분들은 이해도가 상당히 높아졌을것으로 판단됩니다. 이제는 CSS 파일을 웹팩에서는 어떻게 연결할 수 있을지 알아볼 차례입니다.&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: 'Nanum Gothic';&quot;&gt;이 부분은 코딩앙마의 프론트엔드 개발 과정을 공부하면서 React 웹팩에 적용하면서 확인한 내용입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #8a3db6; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;▒ 웹팩 CSS Loader&lt;/b&gt;&lt;/span&gt;&lt;/h4&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;color: #409d00; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;1. &amp;lt;head&amp;gt;태그내 &amp;lt;style&amp;gt;태그로 연결 : Inner 방식&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이 방식은 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;하나의 HTML 파일 &amp;lt;head&amp;gt;태그 사이 &amp;lt;style&amp;gt;태그를 생성하는 inner CSS loader&lt;/b&gt;&lt;/span&gt;방식입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;어찌되었던 CSS Loader설치가 필요해 보이네요. 다움과 같이 진행합니다.&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;color: #f89009; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;① Node에서 설치&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tCALn/btsCRfzasS4/wSWjB5SYbFub6ip08Vjkek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tCALn/btsCRfzasS4/wSWjB5SYbFub6ip08Vjkek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tCALn/btsCRfzasS4/wSWjB5SYbFub6ip08Vjkek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtCALn%2FbtsCRfzasS4%2FwSWjB5SYbFub6ip08Vjkek%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;88&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;상기 설치모듈중 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;css-loader는 CSS파일을 찾아서 읽어내는 역할&lt;/b&gt;&lt;/span&gt;을 하고 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;style-loader는 &amp;lt;head&amp;gt;태그내 &amp;lt;style&amp;gt;태그를 만들어 내는 역할&lt;/b&gt;&lt;/span&gt;을 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;package.json에 설치가 잘 된 것을 확인할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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;color: #f89009; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;② webpack.config.js 설정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;CSS Loader는 module에서 설정&lt;/b&gt;&lt;/span&gt;합니다. 지난번 Babel설정이 되어 있는 형태로 하면 됩니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuu7lh/btsCUyYX9xF/TysRaku8kI0U0IfokJkkGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuu7lh/btsCUyYX9xF/TysRaku8kI0U0IfokJkkGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuu7lh/btsCUyYX9xF/TysRaku8kI0U0IfokJkkGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcuu7lh%2FbtsCUyYX9xF%2FTysRaku8kI0U0IfokJkkGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;423&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;470&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: 'Nanum Gothic';&quot;&gt;정규표현식을 통하여 &lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;CSS파일을 test하고 loader를 사용(use)한다라는 개념&lt;/b&gt;&lt;/span&gt;으로 설정합니다. &lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;배열은 뒤에서부터 읽어 오기에&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt;CSS파일을 찾아내는 css-loader사용이 뒤에 있어야&lt;/b&gt;&lt;/span&gt; 합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;③ 실행 확인&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이제는 간단한 CSS 파일을 만들어 확인해 볼 수 있습니다. src폴더에 만들어야 되는것은 이제 이해 하겠죠?&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: 'Nanum Gothic';&quot;&gt;그런데 이 방식은 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;&amp;lt;style&amp;gt;태그를 삽입하는 방식으로 dist폴더만 배포하는 원래 취지에는 맞지 않습니다. 별도의 CSS파일을 src폴더에 만들고 배포용 CSS파일을 생성시키는 방식으로 우선&lt;/b&gt;&lt;/span&gt; 먼저 해보겠습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;2. 외부 CSS 파일 연결&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;일반적으로 외부에서 CSS파일을 연결해서 사용하는 경우가 많기 때문에 이 부분부터 정리를 해 보겠습니다. 이후 예제를 통해서 &lt;span style=&quot;color: #953b34;&quot;&gt;&lt;b&gt;확인하면서 에러가 있을 경우 수정하는 방식으로&lt;/b&gt; &lt;/span&gt;진행하겠습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;① 외부 CSS확인 플러그인 설치&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;역시 노드에서 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;플러그인 설치가 필요&lt;/b&gt;&lt;/span&gt;합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;69&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pGgwK/btsCSBaRrR6/z25JRxQyRWQP5QSScvQoiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pGgwK/btsCSBaRrR6/z25JRxQyRWQP5QSScvQoiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pGgwK/btsCSBaRrR6/z25JRxQyRWQP5QSScvQoiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpGgwK%2FbtsCSBaRrR6%2Fz25JRxQyRWQP5QSScvQoiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;61&quot; data-origin-width=&quot;793&quot; data-origin-height=&quot;69&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;② webpack.config.js 설정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;일단 &lt;span style=&quot;color: #953b34;&quot;&gt;&lt;b&gt;require(&amp;nbsp; ) 함수를 사용 플러그인을 선언&lt;/b&gt;&lt;/span&gt;해야 되겠죠.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;707&quot; data-origin-height=&quot;127&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3ygpd/btsCVH2tmSa/jQ4W6t0QPr47J0ugrkn8kK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3ygpd/btsCVH2tmSa/jQ4W6t0QPr47J0ugrkn8kK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3ygpd/btsCVH2tmSa/jQ4W6t0QPr47J0ugrkn8kK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3ygpd%2FbtsCVH2tmSa%2FjQ4W6t0QPr47J0ugrkn8kK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;108&quot; data-origin-width=&quot;707&quot; data-origin-height=&quot;127&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;325&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwCMN9/btsCMpizqkZ/WPKFvef8nJ5WkcM9G2tAy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwCMN9/btsCMpizqkZ/WPKFvef8nJ5WkcM9G2tAy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwCMN9/btsCMpizqkZ/WPKFvef8nJ5WkcM9G2tAy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwCMN9%2FbtsCMpizqkZ%2FWPKFvef8nJ5WkcM9G2tAy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;294&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;325&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: 'Nanum Gothic';&quot;&gt;상기 그림에서&lt;span style=&quot;color: #6164c6;&quot;&gt;&lt;b&gt; filename은 최종 dist폴더에서 만들어지는 파일명&lt;/b&gt;&lt;/span&gt;입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;다시 r&lt;span style=&quot;color: #781b33;&quot;&gt;&lt;b&gt;ules로 가서 use를&lt;/b&gt;&lt;/span&gt; 다음과 같이 바꾸어줍니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dXjMHS/btsCWKELdsO/KvbrdG7rixjvgU02RrGUKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dXjMHS/btsCWKELdsO/KvbrdG7rixjvgU02RrGUKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dXjMHS/btsCWKELdsO/KvbrdG7rixjvgU02RrGUKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdXjMHS%2FbtsCWKELdsO%2FKvbrdG7rixjvgU02RrGUKK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;147&quot; data-origin-width=&quot;556&quot; data-origin-height=&quot;164&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: 'Nanum Gothic';&quot;&gt;이는 inner에 삽입하는 style-loader대신 &lt;span style=&quot;color: #1b711d;&quot;&gt;&lt;b&gt;외부에서 가져오는 MiniCssExractPlugin로더를 사용한다는 의미&lt;/b&gt;&lt;/span&gt;입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;entry도 설정이 필요&lt;/b&gt;&lt;/span&gt;합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;683&quot; data-origin-height=&quot;321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EOj0h/btsCQoptRfp/EhSzQnDoqkeqWdSPjNTqp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EOj0h/btsCQoptRfp/EhSzQnDoqkeqWdSPjNTqp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EOj0h/btsCQoptRfp/EhSzQnDoqkeqWdSPjNTqp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEOj0h%2FbtsCQoptRfp%2FEhSzQnDoqkeqWdSPjNTqp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;305&quot; data-origin-width=&quot;683&quot; data-origin-height=&quot;321&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;src폴더에 gugudan.jsx 파일을 완성&lt;/b&gt;&lt;/span&gt;해 봅니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIoeFy/btsCVJsszy6/KrkcKk0WbbvEF06P8P7lfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIoeFy/btsCVJsszy6/KrkcKk0WbbvEF06P8P7lfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIoeFy/btsCVJsszy6/KrkcKk0WbbvEF06P8P7lfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIoeFy%2FbtsCVJsszy6%2FKrkcKk0WbbvEF06P8P7lfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;435&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #f89009; font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;③ 실행 &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&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: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #5733b1;&quot;&gt;&lt;b&gt;dist폴더에 gugudan.css 파일이 생성이 되고 index.html 파일을 보면 외부로 CSS파일 링크가&lt;/b&gt;&lt;/span&gt; 만들어졌습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsBzEa/btsCN4kLAdR/ttAs6KL0jaKKD267fnkR8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsBzEa/btsCN4kLAdR/ttAs6KL0jaKKD267fnkR8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsBzEa/btsCN4kLAdR/ttAs6KL0jaKKD267fnkR8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsBzEa%2FbtsCN4kLAdR%2FttAs6KL0jaKKD267fnkR8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;279&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;296&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: 'Nanum Gothic';&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhpuRB/btsCMzyCfvI/uchKk8jtLlNyWbUN9E5my0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhpuRB/btsCMzyCfvI/uchKk8jtLlNyWbUN9E5my0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhpuRB/btsCMzyCfvI/uchKk8jtLlNyWbUN9E5my0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhpuRB%2FbtsCMzyCfvI%2FuchKk8jtLlNyWbUN9E5my0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;370&quot; data-origin-width=&quot;567&quot; data-origin-height=&quot;420&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: 'Nanum Gothic';&quot;&gt;작동이 잘 되고 있습니다. &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;경고가 하나&lt;/b&gt;&lt;/span&gt; 떠 있군요. &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;client.jsx에서 수정해 주면&lt;/b&gt;&lt;/span&gt; 완성이 되는 것을 볼 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;537&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vHayo/btsCP5jj2Ic/fGMuv5uS7TKeqTweTNHPdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vHayo/btsCP5jj2Ic/fGMuv5uS7TKeqTweTNHPdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vHayo/btsCP5jj2Ic/fGMuv5uS7TKeqTweTNHPdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvHayo%2FbtsCP5jj2Ic%2FfGMuv5uS7TKeqTweTNHPdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;193&quot; data-origin-width=&quot;537&quot; data-origin-height=&quot;207&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>컴퓨터 알아가기/React</category>
      <category>css-loader</category>
      <category>CSS_Loader</category>
      <category>mini-css-extract-plugin</category>
      <category>React</category>
      <category>style-loader</category>
      <category>웹팩</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/473</guid>
      <comments>https://happygunja.tistory.com/473#entry473comment</comments>
      <pubDate>Sun, 31 Dec 2023 20:00:14 +0900</pubDate>
    </item>
    <item>
      <title>[React 기초] Webpack 설치 및 실행 : 5탄 - 웹팩 개발 서버 (devServer) 설치</title>
      <link>https://happygunja.tistory.com/472</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;웹팩과 관련하여 시리즈별로 나누어서 진행을 하고 있는데 보통 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;개발자가 아닌 초보자들은 한번 따라해도 금방 잊어버리기 일수&lt;/b&gt;&lt;/span&gt;입니다. 따라서 차근 차근 자기것으로 만들지 않는 한 그냥 모래성같이 머리속에서 사라집니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;웹팩을 실행할 때 npm run build 라는 명령어를 사용하긴 했지만 코드 내용중 &lt;span style=&quot;color: #006dd7;&quot;&gt;&lt;b&gt;조금만 내용이 바뀌어도 결과를 보기위해 계속 build를 해 줄 수 밖에&lt;/b&gt;&lt;/span&gt; 없습니다. 이를 보완하기 위해 &lt;span style=&quot;color: #f89009;&quot;&gt;&lt;b&gt;자체 서버를 만들어 작업한 내용을 실기간으로 볼 수 있게 만든 도구가 웹팩개발서버&lt;/b&gt;&lt;/span&gt;입니다. 자신의 PC에 설치하고 향후 웹팩작업에 반영하면 되겠습니다.&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: 'Nanum Gothic';&quot;&gt;마찬가지로 본 내용은 코딩앙마의 프론트개발과 제로초 TV 강좌를 통해서 공부하면서 응용한 글입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #8a3db6;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;▒ 웹팩 개발 서버&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h4&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;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. 웹팩 개발서버(webpack devServer) 설치&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;노드에서 다음과 같이 설치&lt;/b&gt;&lt;/span&gt;합니다. 설치 후 항상 &lt;span style=&quot;color: #5733b1;&quot;&gt;&lt;b&gt;package.json에서 확인&lt;/b&gt;&lt;/span&gt;합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nunaB/btsCDeBmo2M/OZKNJajXhBCafEJnhMKtxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nunaB/btsCDeBmo2M/OZKNJajXhBCafEJnhMKtxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nunaB/btsCDeBmo2M/OZKNJajXhBCafEJnhMKtxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnunaB%2FbtsCDeBmo2M%2FOZKNJajXhBCafEJnhMKtxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;123&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;132&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: 'Nanum Gothic';&quot;&gt;package.json에서는 다음과 같이 설치가 되었음을 확인할 수 있습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;428&quot; data-origin-height=&quot;378&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKWPy1/btsCQptYMdf/RntSMzHOmw6fw94aa0gN4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKWPy1/btsCQptYMdf/RntSMzHOmw6fw94aa0gN4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKWPy1/btsCQptYMdf/RntSMzHOmw6fw94aa0gN4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKWPy1%2FbtsCQptYMdf%2FRntSMzHOmw6fw94aa0gN4K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;353&quot; data-origin-width=&quot;428&quot; data-origin-height=&quot;378&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. webpack.config.js 설정&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;모듈을 설정하는 webpack.config.js로 이동하여 &lt;span style=&quot;color: #ef6f53;&quot;&gt;&lt;b&gt;modul.exports에서&lt;/b&gt; &lt;/span&gt;다움과 같이 설정합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;580&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcl0bv/btsCEJ85zj5/8371Kl9YkfRY73YOEWZwLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcl0bv/btsCEJ85zj5/8371Kl9YkfRY73YOEWZwLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcl0bv/btsCEJ85zj5/8371Kl9YkfRY73YOEWZwLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdcl0bv%2FbtsCEJ85zj5%2F8371Kl9YkfRY73YOEWZwLk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/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;560&quot; data-origin-width=&quot;518&quot; data-origin-height=&quot;580&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;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;3. 서버 설정&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;웹팩 &lt;span style=&quot;color: #0593d3;&quot;&gt;&lt;b&gt;개발서버를 작동시키기 위한 명령어를 만들어 주는 곳은 package.json에 'script'&lt;/b&gt;&lt;/span&gt;에서 만들어 줍니다. 다음과 같이 만듭니다.&amp;nbsp; 개발 서버이기에 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;mode는 개발용&lt;/b&gt;&lt;/span&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bI0DC0/btsCBNxb2xM/KFa3sk23NSwGnpImy0FTm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bI0DC0/btsCBNxb2xM/KFa3sk23NSwGnpImy0FTm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bI0DC0/btsCBNxb2xM/KFa3sk23NSwGnpImy0FTm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbI0DC0%2FbtsCBNxb2xM%2FKFa3sk23NSwGnpImy0FTm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;278&quot; data-origin-width=&quot;607&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #409d00;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;4. 실행&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이제 &lt;span style=&quot;color: #1a5490;&quot;&gt;&lt;b&gt;웹팩 개발서버를 실행(npm start)&lt;/b&gt;&lt;/span&gt;하고 &lt;span style=&quot;color: #5f6d2b;&quot;&gt;&lt;b&gt;웹팩도 실행(npm run build)&lt;/b&gt;&lt;/span&gt;해 봅니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;278&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2suPj/btsCKses5fD/jCa50NVSKqJ3iL5DJD7ipk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2suPj/btsCKses5fD/jCa50NVSKqJ3iL5DJD7ipk/img.png&quot; data-alt=&quot;웹팩서버오픈&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2suPj/btsCKses5fD/jCa50NVSKqJ3iL5DJD7ipk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2suPj%2FbtsCKses5fD%2FjCa50NVSKqJ3iL5DJD7ipk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;550&quot; height=&quot;262&quot; data-origin-width=&quot;583&quot; data-origin-height=&quot;278&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;웹팩서버오픈&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&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: 'Nanum Gothic';&quot;&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;293&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMJbT3/btsCJkHHLqf/HvFRhUDukA5ao7SUTwI73k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMJbT3/btsCJkHHLqf/HvFRhUDukA5ao7SUTwI73k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMJbT3/btsCJkHHLqf/HvFRhUDukA5ao7SUTwI73k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMJbT3%2FbtsCJkHHLqf%2FHvFRhUDukA5ao7SUTwI73k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;282&quot; data-origin-width=&quot;624&quot; data-origin-height=&quot;293&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: 'Nanum Gothic';&quot;&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: 'Nanum Gothic';&quot;&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: 'Nanum Gothic';&quot;&gt;다음시간 CSS 모듈설치를 공부해 보고 구구단게임을 웹팩을 통해 만들어 보도록 하겠습니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</description>
      <category>컴퓨터 알아가기/React</category>
      <category>devServer</category>
      <category>React</category>
      <category>웹팩</category>
      <category>웹팩개발서버</category>
      <author>행복군자</author>
      <guid isPermaLink="true">https://happygunja.tistory.com/472</guid>
      <comments>https://happygunja.tistory.com/472#entry472comment</comments>
      <pubDate>Sun, 31 Dec 2023 19:30:57 +0900</pubDate>
    </item>
  </channel>
</rss>