¾î¶² °ú¸ñÀ̵çÁö °øºÎ¸¦ ÇÏ·Á¸é °³¹ß ȯ°æÀ» °®Ãß¾î¾ß ÇÑ´Ù. ¸®¾×Æ®´Â
°³¹ß ȯ°æÀÌ Àß °®Ãß¾îÁ® ÀÖÁö¸¸ Ãʺ¸ÀÚ°¡ óÀ½ºÎÅÍ ¿Ïº®ÇÏ°Ô ²Ù¹Ì±â´Â ½±Áö ¾Ê´Ù. »ý»ê¼ºÀ» ³ôÀÌ´Â Åø±îÁö
´Ù ¼³Ä¡Çϱâ´Â ¹ø°Å·Î¿ì´Ï ÇнÀ¿¡ ÇÊ¿äÇÑ ±âº» ȯ°æºÎÅÍ ´Ü¼øÇÏ°Ô ²Ù¸ç º¸ÀÚ.
À¥ ¾ÛÀ» ±¸¼ºÇÏ´Â html, css, js´Â ÅØ½ºÆ® ÆÄÀÏÀ̶ó ÆíÁý±â¸¸
ÀÖÀ¸¸é °³¹ßÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¹èÆ÷±îÁö °í·ÁÇÏ¸é Æú´õ ±¸Á¶¸¦ Ä¡¹ÐÇÏ°Ô ¼³°èÇØ¾ß Çϰí Å×½ºÆ®¸¦ À§ÇØ
¸Å¹ø »õ·Î °íħÇÏ´Â °Íµµ ¹ø°Å·Î¿ö ¼öÁ¤ ÈÄ Áï½Ã °á°ú¸¦ º¼ ¼ö ÀÖ´Â ÅøÀ» °®Ãß´Â°Ô Æí¸®ÇÏ´Ù.
ÀÌ·± Á¤±³ÇÑ ±¸Á¶¸¦ Á÷Á¢ ¸¸µé±â´Â ¾î·Æ°í ºñÈ¿À²ÀûÀÌ¾î¼ ¸¶¹ý»ç, Àü¹®°¡
µîÀ¸·Î ºÒ¸®´Â »ý¼º ÅøÀ» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¸®¾×Æ®´Â vite, CRA(Create
React App)µî ¿É¼Ç¸¸ ÀÔ·ÂÇϸé ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¾î ÁÖ´Â »ý¼ºÅøÀ» Á¦°øÇÑ´Ù. ¶ÇÇÑ Æ®·£½ºÆÄÀÏ·¯, ¹øµé·¯, °£ÀÌ ¼¹ö±îÁö °®Ãß¾î ·ÎÄÿ¡¼ ¸ðµç °³¹ß°ú Å×½ºÆ®¸¦ ¼öÇàÇÒ
¼ö ÀÖ´Ù.
ÇÁ·ÎÁ§Æ® »ý¼ºÅøÀº ÀÚ¹Ù½ºÅ©¸³Æ® ½ÇÇà¿£ÁøÀÎ Node.jsÀÇ ÆÐŰÁö ÇüÅ·Î
Á¦°øµÈ´Ù. ³ëµå¸¦ ¸®¾×Æ®¿¡¼ Á÷Á¢ ¾²´Â °ÍÀº ¾Æ´ÏÁö¸¸ ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ´Â ÅøÀÌ ¸ðµÎ ÀÚ¹Ù½ºÅ©¸³Æ®·Î µÇ¾î
ÀÖÀ¸´Ï ÀÌ°Ô ¾øÀ¸¸é ¾Æ¹« °Íµµ ÇÒ ¼ö ¾ø´Ù. ´ÙÀ½ »çÀÌÆ®¸¦ ¹æ¹®ÇÑ´Ù.
https://nodejs.org
25³â 12¿ù ÃֽйöÀüÀº
24.11.1À̸ç LTS¹öÀüÀÌ´Ù. ³Ê¹« ÃֽйöÀüÀº ¾ÈÁ¤¼ºÀÌ ¶³¾îÁö¹Ç·Î ¸¶Áö¸· LTS ¹öÀüÀ» ¹Þ´Â
°ÍÀÌ ÁÁ´Ù. ´ë·« 30MÂ¥¸® ¼³Ä¡ ÆÄÀÏ Çϳª¸¦ ´Ù¿î·Îµå¹Þ¾Æ
½ÇÇàÇÑ´Ù. ¼³Ä¡ ¿É¼ÇÀº ¸ðµÎ µðÆúÆ®¸¦ ¹Þ¾ÆµéÀδÙ.

¼³Ä¡ ÈÄ °æ·Î¿¡ Ãß°¡µÇ¹Ç·Î ¹Ù·Î ¾µ ¼ö ÀÖ´Ù. ³ëµå´Â ±×·¡ÇÈ °³¹ß
ȯ°æÀÌ ¾Æ´Ï¾î¼ ¸í·ÉÇà¿¡¼ ½ºÅ©¸³Æ® Çü½ÄÀ¸·Î ¸í·ÉÀ» ³»·Á »ç¿ëÇÑ´Ù. ¸í·ÉÇà¿¡¼ node -v ¸í·ÉÀ¸·Î ¹öÀüÀ» Á¶»çÇØ º¸¸é ¼³Ä¡ ¿©ºÎ¸¦ È®ÀÎÇÒ ¼ö ÀÖ´Ù. ³ëµå¸¦
¼³Ä¡ÇÏ¸é ³ëµå ÆÐŰÁö °ü¸®ÀÚÀÎ npmµµ ÀÚµ¿À¸·Î ¼³Ä¡µÈ´Ù. Àß
¼³Ä¡µÇ¾ú´ÂÁö ¹öÀüÀ» È®ÀÎÇØ º¸ÀÚ.
C:\Users\soen>node -v
v24.11.1
C:\Users\soen>npm -v
11.6.2
À̰ɷΠ¸®¾×Æ® ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÏ°í ½ÇÇàÇÑ´Ù. Node.js´Â ¸®¾×Æ®
½ÇÇàȯ°æÀÏ »ÓÀ̹ǷΠµüÈ÷ ƯÁ¤ ¹öÀüÀ» »ç¿ëÇÒ ÇÊ¿ä¾øÀÌ ÃֽйöÀü¸¸ ±ò¾Æ ³õÀ¸¸é µÈ´Ù. ´çÀå ¹è¿ö¾ß ÇÒ
¼±¼ö °ú¸ñÀº ¾Æ´Ï¹Ç·Î ¼³Ä¡ÇØ ³õ°í »ç¿ëÇϱ⸸ ÇÏÀÚ. ÃßÈÄ¿¡ ¹é¿£µåµµ °³¹ßÇØ º¸·Á¸é ±×¶§´Â ¹è¿ö¾ß ÇÑ´Ù.
´ÙÀ½Àº ¾µ¸¸ÇÑ ÅØ½ºÆ® ÆíÁý±â¸¦ ¼³Ä¡ÇÑ´Ù. ½ºÅ©¸³Æ®´Â ´Ù ÅØ½ºÆ® Æ÷¸ËÀ̹ǷÎ
¿øÄ¢ÀûÀ¸·Î´Â ¸Þ¸ðÀåÀ¸·Îµµ ¸ðµç °ÍÀ» ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª »ý»ê¼ºÀÌ ³Ê¹« ¶³¾îÁö¹Ç·Î Àü¹® ÆíÁý±â¸¦ °®Ãß´Â
°ÍÀÌ ÁÁÀºµ¥ ¸®¾×Æ® °³¹ß¿¡´Â ÁÖ·Î VSCode¸¦ ¸¹ÀÌ ¾´´Ù.
https://code.visualstudio.com/download
ÇöÀç ÃֽйöÀüÀº 1.106.2ÀÌ´Ù.
¼¼ ¿î¿µÃ¼Á¦¸¦ ¸ðµÎ Áö¿øÇϸç À©µµ¿ì¿ëÀº ·Î±×ÀÎ °èÁ¤À¸·Î ¼³Ä¡ÇÏ´Â »ç¿ëÀÚ ¼³Ä¡º»°ú °ü¸®ÀÚ °èÁ¤À¸·Î ¼³Ä¡ÇÏ´Â ½Ã½ºÅÛ ¼³Ä¡º» µÎ °¡Áö¿Í CPU ŸÀÔ¿¡ µû¶ó x64¿Í
Arm64 ¹öÀüÀ» Á¦°øÇÑ´Ù. °ü¸®ÀÚ °èÁ¤À¸·Î ¼³Ä¡ÇÏ¸é ½Ã½ºÅÛ °ü·Ã ÇÁ·Î±×·¥ ¾÷µ¥ÀÌÆ®°¡ ½±´Ù´Â
ÀÌÁ¡ÀÌ ÀÖÁö¸¸ ÀϹÝÀûÀÎ °æ¿ì´Â »ç¿ëÀÚ ¼³Ä¡º»ÀÌ¸é ¹«³ÇÏ´Ù.

User Installer x64 ¹öÀü(100M)À» ¹Þ¾Æ ½ÇÇàÇÑ´Ù. ´ëºÎºÐÀÇ ¿É¼ÇÀº µðÆúÆ®·Î ¼±ÅÃÇÏ¸é µÈ´Ù. ÇʼöÀûÀÎ °ÍÀº ¾Æ´ÏÁö¸¸ Ãß°¡ÀÛ¾÷ ÆäÀÌÁö¿¡¼ "Code·Î
¿±â" ¿É¼Ç 2°³¸¸ ´õ ¼±ÅÃÇØ µÎ¸é Ž»ö±â¿¡¼ ÇÁ·ÎÁ§Æ®¸¦
¿±â ÆíÇÏ´Ù.

±âº» ¿É¼ÇÀÌ ¹«³ÇÏ°Ô ¼¼ÆÃµÇ¾î ÀÖÁö¸¸ ¸î°¡Áö ¿É¼ÇÀº ¹Ù²ã¼ ¾²´Â °ÍÀÌ ÁÁ´Ù. ¿É¼ÇÀº
ÆÄÀÏ/±âº» ¼³Á¤/¼³Á¤ ¸Þ´º¸¦ ¼±ÅÃÇϰųª ÁÂÇÏ´ÜÀÇ Åé´Ï¹ÙÄû
¾ÆÀÌÄÜÀ» Ŭ¸¯ÇÑ ÈÄ ¼³Á¤ ¸Þ´º¸¦ ¼±ÅÃÇÏ¿© Á¶Á¤ÇÑ´Ù. ´ÙÀ½Àº ¸®¾×Æ® °³¹ß¿¡ ±ÇÀåµÇ´Â ¿É¼ÇÀε¥ ÃëÇâ¿¡ µû¶ó
¼±ÅÃÇÏÀÚ.
¢º ¿µ¹®À¸·Î ½áµµ Å©°Ô ºÒÆíÇÏÁö´Â ¾ÊÁö¸¸ ÇÑ±Û ¾ð¾îÆÑ Á¤µµ´Â ¼³Ä¡ÇØ µÎ´Â
°ÍÀÌ ÁÁ´Ù. ¸Þ´º´Â »ç½Ç File/Save³ª ÆÄÀÏ/ÀúÀåÀ̳ª ±×°Ô ±×°ÅÁö¸¸ ¿É¼Ç¸íÀ̳ª È®Àå ÇÁ·Î±×·¥ÀÇ ¼³¸í µîÀº ¿µ¾îº¸´Ù´Â ÇѱÛÀÌ ÀÐ±â ÆíÇÑ ¸éÀÌ ÀÖ´Ù. ¿ÞÂÊ »çÀ̵å¹ÙÀÇ È®Àå ¹öưÀ» Ŭ¸¯ÇÑ ÈÄ Çѱ¹¾î·Î °Ë»öÇÏ¿© ¾ð¾îÆÑÀ» ¼³Ä¡ÇÑ´Ù.

¢º ¾Æ·¡ÂÊ Åé´Ï¹ÙÄû ¾ÆÀÌÄÜÀ» Ŭ¸¯Çϰí
Settings(¼³Á¤) Ç׸ñÀ» ¼±ÅÃÇÑ´Ù. ÅÇ
Å©±â ¿É¼ÇÀ» 4¿¡¼ 2·Î º¯°æÇÑ´Ù. º¸Åë 4¸¦ ¾²Áö¸¸ ¸®¾×Æ®´Â µé¿©¾²´Â ´Ü°è°¡ ±í¾î 2·Î ¸ÂÃç ¾µ °ÍÀ» ±ÇÀåÇÑ´Ù. ÀÌ ¿É¼ÇÀ» Á¶Á¤ÇÑ »óÅ¿¡¼ ´ÜÃàŰ Alt+Shift+F¸¦ ´©¸£¸é µé¿©¾²±â¸¦ °¡Áö·±È÷ Á¶Á¤ÇØ ÁØ´Ù

¢º ¼³Á¤Ã¢ÀÇ ¿ÞÂÊ Æ®¸®¿¡¼ ÅØ½ºÆ® ÆíÁý±â/±Û²ÃÀ»
¼±ÅÃÇÏ¿© Á¶Á¤ÇÑ´Ù. µðÆúÆ® ±Û²ÃÀÌ Consolas, 'Courier
New', monospace·Î µÇ¾î Àִµ¥ Çѱۿ¡ ¸Â´Â ÆùÆ®°¡ ¾Æ´Ï¾î¼ ±×¸® ¿¹»ÚÁö ¾Ê´Ù. °ø°³¿ë
ÇÑ±Û ±Û²ÃÀ» ¼³Ä¡Çؼ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁÀºµ¥ D2CodingÀÌ ¹«³ÇÏ´Ù.
°íÇØ»óµµ ¸ð´ÏÅÍ¿¡¼´Â Å©±âµµ Àû´çÈ÷ Ű¿ö¼ ¾²´Â °ÍÀÌ ÁÁ´Ù.

¢º º¸±â/¸ð¾ç ¸Þ´º¿¡¼ ¹Ì´Ï¸Ê, °íÁ¤½ºÅ©·Ñ ±â´ÉÀº ²ô°í ¾²´Â°Ô ÁÁ´Ù. ¹Ì´Ï¸ÊÀº ¿À¸¥ÂÊ¿¡ ±ä ¹®¼ÀÇ
³»¿ëÀ» À̹ÌÁö ÇüÅ·Πº¸¿© ÁÖ°í °íÁ¤½ºÅ©·ÑÀº ù ¸îÁÙÀ» »ó´Ü¿¡ °íÁ¤ÇØ Áִµ¥ µÑ ´Ù À¯¿ëÇÑ ±â´ÉÀÌÁö¸¸ óÀ½ ¾µ ¶§´Â ¿ÀÈ÷·Á Çò°¥¸®°í ȸ鸸 Â÷ÁöÇÏ´Ï
ÀÏ´Ü ²¨ µÎ°í ´ÙÀ½¿¡ ÇÊ¿äÇÒ ¶§ ¾²µµ·Ï ÇÏÀÚ.

¢º ¼³Á¤Ã¢¿¡¼ update mode¸¦
°Ë»öÇÏ¿© Á¶Á¤ÇÑ´Ù. ÃֽйöÀüÀÌ ¹ßÇ¥µÉ ¶§¸¶´Ù »õ ¹öÀüÀ» ¾È³»ÇØ ÁÖ´Â °ÍÀº Ä£ÀýÇÑ ±â´ÉÀÌÁö¸¸ Àæ¾Æµµ
³Ê¹« Àæ¾Æ °ÅÀÇ ½ºÆÔ ¼öÁØÀÌ´Ù. Áö±Ý ´çÀå ¸»½é¾øÀÌ Àß ¾²°í ÀÖ´Ù¸é ºÒÇÊ¿äÇÏ°Ô ¾÷µ¥ÀÌÆ®ÇÒ ÇÊ¿ä´Â ¾ø´Ù°í
»ý°¢ÇÏ¸ç °³ÀÎÀûÀ¸·Î noneÀ̳ª manualÀ» ¼±È£ÇÑ´Ù. °¢ÀÚ ÃëÇâ¿¡ ¸Â°Ô Á¶Á¤ÇÏÀÚ.

VSCode¿Ü¿¡µµ Sublime,
Notepad++ µîÀÇ ÆíÁý±â¸¦ ¸¹ÀÌ ¾´´Ù. ¼Õ¿¡ ÀÍÀº ÆíÁý±â¸¦ ¾²µÇ ÀÌ Ã¥Àº VSCode·Î ½Ç½ÀÀ» ÁøÇàÇÑ´Ù.
±× ¿Ü Å©·Ò ºê¶ó¿ìÀúµµ ¼³Ä¡ÇÏ´Â °ÍÀÌ ÁÁ´Ù. ¾Æ¸¶ ´ëºÎºÐ ¾²°í ÀÖ°ÚÁö¸¸
¾øÀ¸¸é ¼³Ä¡ÇÏÀÚ. ¿§Áö¿¡¼µµ È®ÀÎ °¡´ÉÇÏÁö¸¸ Å©·ÒÀÇ °³¹ßÅøÀÌ Àß Á¤ºñµÇ¾î ÀÖ¾î ÇнÀ¿¡ À¯¿ëÇÏ´Ù. ÀÌ Ã¥µµ Å©·Ò¿¡¼ ½ÇÇàÇÑ´Ù. ±âº» ºê¶ó¿ìÀúµµ Å©·ÒÀ¸·Î ¼³Á¤ÇØ ³õ´Â
°ÍÀÌ Æí¸®ÇÏ´Ù.
VSCode´Â ´Ù¾çÇÑ Ç÷¯±×ÀÎÀ¸·Î ±â´ÉÀ» ½±°Ô È®ÀåÇÒ ¼ö Àִٴ°Ô
ÀåÁ¡ÀÌ´Ù. Çʿ信 µû¶ó Ç÷¯±×ÀÎÀ» ¼±ÅÃÀûÀ¸·Î ¼³Ä¡Ç쵂 ESLint´Â
°ÅÀÇ ÇʼöÀûÀ¸·Î ¼³Ä¡ÇÏ´Â°Ô º¸ÅëÀÌ´Ù. ¿ÞÂÊ ÅÇÀÇ È®Àå ¹öưÀ» Ŭ¸¯ÇÏ¿© ¸¶ÄÏÇ÷¹À̽º¸¦ ¿°í °Ë»ö ¹× ¼³Ä¡ÇÑ´Ù.
ESLint´Â ¼Ò½º¸¦ ÆíÁýÇÒ ¶§ ÄÄÆÄÀÏÇÏÁö ¾Ê°í Á¤ÀûÀ¸·Î ¼Ò½º¸¦ °Ë»çÇÏ¿©
À߸øµÈ ³»¿ëÀ» ¾Ë·Á ÁØ´Ù. ÄÄÆÄÀÏÇØ º¸Áö ¾Ê°í ¼Ò½º ³»¿ë¸¸ ÀÐ¾î ¿À·ù °¡´É¼ºÀÌ ÀÖ´Â ºÎºÐÀ» ¾Ë·ÁÁØ´Ù. °³¹ßÇÒ ¶§µµ ¹°·ÐÀÌÁö¸¸ ÇнÀÇÒ ¶§ ½Ç¼ö¸¦ ±Ý¹æ ¾Ë ¼ö ÀÖ¾î Å« µµ¿òÀÌ µÈ´Ù.

¾Ë¾Æ¼ µ¿ÀÛÇϹǷΠµüÈ÷ »ç¿ë¹æ¹ýÀ» ÀÍÈú Çʿ䵵 ¾ø´Ù. Äڵ忡 ¸î °¡Áö
½Ç¼ö¸¦ ¸¸µé¾î º¸¸é ÀÌ»óÇÏ´Ù ½ÍÀº ºÎºÐ¿¡ »¡°£»ö ÁÙÀ» ±×¾îÁØ´Ù.

<h2>ÀÇ ´Ý´Â ű׸¦
</h3>·Î À߸ø ½è´Ù. <p> ű״ </p>·Î ´ÝÁö ¾Ê¾Ò´Ù. ÆíÁýâ¿¡ »¡°£ÁÙÀ» ±×¾î ¹®Á¦¸¦
º¸¿©ÁÖ¸ç ¹®Á¦Ã¢¿¡µµ º¸¿©ÁØ´Ù.

Á¤Àû °Ë»çÀ̱⠶§¹®¿¡ ÄÄÆÄÀÏÀ» ÇÏÁö´Â ¾Ê´Â´Ù. id ¼Ó¼ºÀ» idea·Î ¾²°Å³ª score º¯¼ö¸¦
noscore·Î ½áµµ Àâ¾Æ ³»Áö´Â ¸øÇÑ´Ù. ÀÌ·±°Ç ÄÄÆÄÀÏÇØ ºÁ¾ß ¾Ë ¼ö ÀÖ´Ù. ´Ü¼ø ½Ç¼ö µîÀº ½Å¼ÓÇÏ°Ô ¾Ë·ÁÁֹǷΠ½Ã°£À» ²Ï ¸¹ÀÌ Àý¾àÇØÁØ´Ù.
¿©±â¼´Â ÇнÀ¿¡ ÇʼöÀûÀÎ Ç÷¯±×Àθ¸ ¼³Ä¡Çß´Ù. ½Ç¹«¸¦ ÇÒ ¶§´Â ´õ
°·ÂÇÑ Åø°ú Ç÷¯±×ÀÎÀÌ ¸¹ÀÌ ÇÊ¿äÇÏÁö¸¸ óÀ½ ÇнÀÇÒ ¶§ºÎÅÍ ³Ê¹« ¿Ïº®ÇÏ°Ô °®Ãß·Á¸é ¹è¿ì±âµµ Àü¿¡ ÁöÃÄ ¹ö¸°´Ù. ¿ÀǼҽºÅøÀº
ÅëÇÕ¼ºÀÌ ¶³¾îÁö°í ¹ö±×°¡ ¸¹¾Æ Ãʺ¸ÀÚ°¡ ¹üÁ¢Çϱ⠸¸¸¸Ä¡ ¾Ê´Ù. ¶Ç Á¾·ù°¡ ³Ê¹« ¸¹°í ÃëÇâÀ» Ÿ´ÂÁö¶ó
¹¹°¡ ÇÊ¿äÇÑÁöµµ ¾ÆÁ÷Àº Àß ¸ð¸¥´Ù. ÃÖ¼Ò È¯°æÀ¸·Î ±âº»À» ÀÍÈù ÈÄ¿¡ ȯ°æÀ» Á¡Á¡ ¾÷±×·¹À̵åÇÏ´Â °ÍÀÌ
¹Ù¶÷Á÷ÇÏ´Ù.
À¥ ¾ÛÀÌ Á¦´ë·Î µ¿ÀÛÇÏ·Á¸é ¼ö ¸¹Àº ±¸¼º ÆÄÀÏÀÌ ¸ð¿©¾ß ÇÑ´Ù. ¹®¼
³»¿ëÀ» Á¤ÀÇÇÏ´Â HTML, ½ºÅ¸ÀÏÀ» Á¤ÀÇÇÏ´Â CSS, µ¿ÀÛÀ»
Á¤ÀÇÇÏ´Â ½ºÅ©¸³Æ® ÆÄÀÏÀº ¹°·ÐÀÌ°í ¼ö ¸¹Àº À̹ÌÁö ÆÄÀÏ, XML ÆÄÀÏ µîÀÌ ÇÊ¿äÇÏ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ½ÇÇàÇÏ°í ¹èÆ÷±îÁö ÇÏ·Á¸é ¼³Á¤ ÆÄÀϵµ Á¤±³ÇÏ°Ô ±¸¼ºµÇ¾î ÀÖ¾î¾ß Çϰí È¿À²ÀûÀÎ °³¹ßÀ» À§ÇØ µð·ºÅ丮
±¸Á¶µµ Àß ¸¸µé¾î¾ß ÇÑ´Ù.

ÀÌ ¸ðµç °ÍÀ» óÀ½ºÎÅÍ ¿Ïº®ÇÏ°Ô ¸¸µé¾î ³»´Â °ÍÀº ¾î·Á¿î ÀÏÀÌ´Ù. ÇÁ·ÎÁ§Æ®
°ñ°ÝÀ» ¸¸µé¾î ÁÖ´Â µµ±¸¸¦ ½ºÅ¸Æ® ŶÀ̶ó°í ºÎ¸£¸ç Àü¹® ¿ë¾î·Î´Â ½ºÄÉÆúµù(Scaffolding)À̶ó°í
Çϴµ¥ °Ç¹°À» ÁöÀ» ¶§ ¸ÕÀú ¼¼¿ì´Â ºñ°èó·³ »À´ë¸¦ ¸ÕÀú ¸¸µé¾î ÁÖ´Â °ÍÀÌ´Ù. ¸®¾×Æ®ÀÇ ½ºÅ¸ÅÍ Å¶µµ
¿©·¯ °¡Áö°¡ ÀÖ´Ù.
¢ºCRA(Create React App)
: ¸®¾×Æ®ÀÇ °ø½ÄÀûÀÎ ½ºÅ¸Åͷμ Áö±Ýµµ ¸¹ÀÌ »ç¿ëµÇ¸ç ¼±ÅÃÇÒ°Ô ¾ø¾î °£ÆíÇÏ´Ù. Babel·Î
ÄÄÆÄÀÏÇϰí WebPackÀ¸·Î ¹øµé¸µÇϴµ¥ ¼³Á¤ÀÌ ¾î·Æ°í ¼Óµµ°¡ ´À·Á ¿äÁòÀº Àß »ç¿ëÇÏÁö ¾Ê´Â´Ù.
¢ºVite : ES Build·Î
ÄÄÆÄÀÏÇϰí RollupÀ¸·Î ¹øµé¸µÇÑ´Ù. ¸®¾×Æ®ÀÇ °æÀï Á¦Ç°ÀÎ
Vue.js¿Í ÇÔ²² ¸¸µé¾úÀ¸³ª ÇöÀç´Â ¸®¾×Æ®»Ó¸¸ ¾Æ´Ï¶ó ´Ù¾çÇÑ ¶óÀ̺귯¸®¸¦ Áö¿øÇÑ´Ù. ¸ðµâ ±³Ã¼ ¼Óµµ°¡ »¡¶ó ½Ã¿ø½º·´´Ù. ¸®¾×Æ® 19ºÎÅÍ´Â CRA¸¦ °ÅÀÇ ´ëüÇÏ¿´´Ù.
¢ºParcel : ÀÛ°í °£ÆíÇØ
¼Ò±Ô¸ð³ª Å×½ºÆ®¿ë ¾Û Á¦ÀÛ¿¡ ½Ç¿ëÀûÀÌ´Ù. ½Ç¹« ÇÁ·ÎÁ§Æ®¿ëÀ¸·Î´Â Àß »ç¿ëÇÏÁö ¾Ê´Â´Ù.
¿ÀǼҽºÀÇ ¼¼°è¿¡¼´Â Ç×»ó »õ·Î¿î °ÀÚ°¡ ³ªÅ¸³ª±â ¸¶·ÃÀÌÁö¸¸ ÇöÀç´Â vite°¡
´ë¼¼ÀÌ¸ç ´çºÐ°£Àº ±×·² °ÍÀÌ´Ù. vite´Â ÇÁ¶û½º¾î·Î ºü¸£´Ù´Â ¶æÀÌ¸ç ¿øÁֹΠ¹ßÀ½Àº 'ºñÆ®'Àε¥ ª°Ô 'ºø'À̶ó°í ÀÐÀ¸¸é µÈ´Ù. À̸§ÀÌ ÀǹÌÇÏ´Â ¹Ù´ë·Î ºü¸¥ ¼Óµµ°¡ °¡Àå Å«
ÀåÁ¡ÀÌ¸ç ½ÇÁ¦·Îµµ ºü¸£´Ù.
½ºÅ¸ÅÍ Å¶Àº °ñ°ÝÀ» ¸¸µå´Â µµ±¸ÀÏ »ÓÀÌ¾î¼ ¹» ¼±ÅÃÇÏ´õ¶óµµ ¸®¾×Æ®¸¦ Ȱ¿ëÇÏ´Â ¹æ¹ýÀÌ ´Ù¸¥ °ÍÀº ¾Æ´Ï´Ù. ÇÁ·ÎÁ§Æ®ÀÇ ±¸Á¶¿Í »ùÇà Äڵ尡 ´Ù¸£°í ºôµå ¹æ½ÄÀÌ ´Þ¶óÁú »ÓÀÌ´Ù. ÃëÇâ¿¡
µû¶ó ¼±ÅÃÇ쵂 ÀÌ °Á´ ´ë¼¼¿¡ µû¶ó vite·Î ÁøÇàÇÑ´Ù.
°³¹ß ȯ°æÀ» ´Ù °®Ãß¾úÀ¸´Ï ÀÌÁ¦ ½Ç½ÀÀ» ÇØ º¸ÀÚ. ½Ç½ÀÁß¿¡ ¸¸µé ÆÄÀÏÀ»
ÇÑ °÷¿¡ ¸ð¾ÆµÑ ½Ç½À Æú´õ¸¦ ¸¸µç´Ù. ÀÌ °Á¿¡¼´Â ã±â ½±µµ·Ï C µå¶óÀ̺ê
·çÆ®¿¡ reactStudy Æú´õ¸¦ »ý¼ºÇÑ´Ù. ÀúÀå °ø°£ÀÇ
¿©À¯ »óȲ¿¡ µû¶ó ´Ù¸¥ À§Ä¡¸¦ »ç¿ëÇØµµ »ó°ü ¾øÁö¸¸ ¿©±â Àú±â¿¡ ÆÄÀÏÀ» Èð¾î µÎ´Â °Íº¸´Ù´Â ÇÑ Æú´õ¿¡ ¸ð¾Æ µÎ´Â °ÍÀÌ °ü¸®ÇÏ±â ÆíÇÏ´Ù.
vite´Â ³ëµåÀÇ ÆÐŰÁö ÇüÅ·ΠÁ¦°øµÇ¸ç ¸í·ÉÇà¿¡¼ µ¿ÀÛÇÑ´Ù. ±×·¡ÇÈ ÇÁ·Î±×·¥ÀÌ ¾Æ´Ï¶ó Á¶±Ý ºÒÆíÇÏÁö¸¸ ´ëÈÇüÀ¸·Î Áú¹®¿¡¸¸ ´äÇϸé ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇØ ÁØ´Ù. ¸í·ÉÇàÀ» ¿°í ÇÁ·ÒÇÁÆ®¿¡¼ ´ëÈÇüÀ¸·Î ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ´Ù. ½Ç½ÀÆú´õÀÎ reactStudy·Î À̵¿ÇÑ ÈÄ ´Ü°èº°·Î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¾î º¸ÀÚ.
1.npm create vite@latest ¸í·ÉÀ» ³»¸°´Ù. npmÀº ³ëµåÀÇ ÆÐŰÁö¸¦ °ü¸®ÇÏ´Â ÇÁ·Î±×·¥ÀÌ¸ç ³ëµå ȯ°æ¿¡¼ ÆÐŰÁö¸¦ ½ÇÇàÇÑ´Ù. create ¸í·ÉÀº ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇ϶ó´Â ¶æÀ̸ç vite@latest´Â viteÀÇ ÃֽоÈÁ¤ ¹öÀüÀ» »ç¿ëÇ϶ó´Â Áö½ÃÀÌ´Ù. @latest´Â
»ý·«Çصµ »ó°ü ¾øÁö¸¸ °¡±ÞÀûÀ̸é ÃֽоÈÁ¤ ¹öÀüÀ¸·Î ¸í½ÃÇÏ´Â °ÍÀ» ±ÇÀåÇÑ´Ù.
óÀ½ ½ÇÇàÇÒ ¶§´Â vite°¡ ´ç¿¬È÷ ¼³Ä¡µÇ¾î ÀÖÁö ¾Ê´Ù. ±×·¸´Ù°í Á÷Á¢ ¼³Ä¡ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ÆÐŰÁö °ü¸®ÀÚÀÎ npmÀÌ Ä£ÀýÇÏ°Ô vite ÆÐŰÁö¸¦ ¹Þ¾Æ ¼³Ä¡ºÎÅÍ ÇÑ´Ù. ÃֽйöÀüÀ» Ç¥½ÃÇÏ°í ¼³Ä¡ÇÒ °ÍÀÎÁö Áú¹®ÇÑ´Ù.
C:\reactStudy>npm create vite@latest
Need to install the following packages:
create-vite@8.2.0
Ok to proceed? (y)
µðÆúÆ®°¡ yÀ̹ǷΠEnter¸¸
´©¸£¸é ÆÐÁöÁö¸¦ ¼³Ä¡ÇÑ´Ù. ÃÖÃÊ Çѹø¸¸ ¼³Ä¡ÇÏ¸é µÇ´Ï µÎ ¹øÂ° ½ÇÇàÇÒ ¶§ºÎÅÍ´Â ÀÌ Áú¹®ÀÌ ³ªÅ¸³ªÁö ¾Ê´Â´Ù.
2.ÇÁ·ÎÁ§Æ® À̸§À» ¹°¾î º¸¸ç µðÆúÆ®·Î vite-project°¡ ÀԷµǾî ÀÖ´Ù. ¿øÇÏ´Â À̸§À» ÀÔ·ÂÇÏµÇ Ã³À½
¸¸µå´Â vite ÇÁ·ÎÁ§Æ®¶ó´Â Àǹ̷Πfitstvite·Î ÀÔ·ÂÇØ
º¸ÀÚ. ÀÔ·ÂÁß¿¡ BSŰ·Î ¿ÀŸ Á¤µµ´Â ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.

3.»ç¿ëÇÒ ÇÁ·¹ÀÓ¿öÅ©¸¦ ¼±ÅÃÇÑ´Ù. vite´Â
±²ÀåÈ÷ ¸¹Àº ÇÁ·¹ÀÓ¿öÅ©¸¦ Áö¿øÇϴµ¥ ÀÌ·¡¼ ºôµåÅøÀÇ Ç¥ÁØ ÀÚ¸®¸¦ Â÷ÁöÇÑ °ÍÀÌ´Ù. ¾Æ·¡ À§ Ä¿¼Å°·Î À̵¿ÇÏ¿© React¸¦ ¼±ÅÃÇϰí Enter¸¦ ´©¸¥´Ù.

4.»ç¿ëÇÒ ¾ð¾î¸¦ ¼±ÅÃÇÑ´Ù. ¿©·¯
¾ð¾î¸¦ ¾µ ¼ö ÀÖÁö¸¸ ¿äÁòÀº TypeScript¸¦ ¸¹ÀÌ »ç¿ëÇÏ°í ±ÇÀåÇÑ´Ù. ½Ç½ÀÁß¿¡´Â JavaScript¸¦ »ç¿ëÇØµµ Å« Â÷ÀÌ´Â ¾ø´Ù. µðÆúÆ®·Î ¼±ÅõǾî ÀÖÀ¸¹Ç·Î Enter¸¸ ´©¸£¸é µÈ´Ù.

5.½Ã¹üÀû ±â´ÉÀ» »ç¿ëÇÒ °ÍÀΰ¡¸¦ ¹°¾î º¸´Âµ¥ µðÆúÆ®°¡ NoÀ̹ǷΠÁ¦¿ÜÇÏÀÚ. ÀÌ·± Áú¹®Àº
vite ¹öÀü¿¡ µû¶ó ³ªÅ¸³ªÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù.

6.¼³Ä¡ ¹× ½ÇÇà±îÁö ÇϰڴÀ³Ä°í ¹¯´Âµ¥ µðÆúÆ®´Â Yes·Î µÇ¾î ÀÖ´Ù. µðÆúÆ®¸¦ ¼±ÅÃÇÏ¸é ¸ðµç °ÍÀ» ´Ù ÇØ ÁÖ°í ¹Ù·Î
½ÇÇà °á°ú±îÁö º¼ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù. Áö±ÝÀº ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÏ°í ½ÇÇàÇÏ´Â ¼¼ºÎ °úÁ¤À» »ìÆì º¸±â À§ÇØ
ÀÏ´Ü No¸¦ ¼±ÅÃÇØ º¸ÀÚ.

¿©±â±îÁö Çϸé ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ ÈÄ °á°ú º¸°í¼¸¦ º¸¿© ÁÖ°í ¸í·ÉÇàÀ¸·Î º¹±ÍÇÑ´Ù. ÀÏ´Ü ¸¸µé¾î ³ùÀ¸´Ï ÇÊ¿äÇÑ ¸í·ÉÀ» ½ÇÇàÇ϶ó´Â ¾È³»¸¦ º¸¿©ÁØ´Ù.

ÀÌ »óÅ¿¡¼ firstvite Æú´õ¿¡ ¹» ¸¸µé¾î ³ù´ÂÁö Ž»ö±â·Î »ìÆì
º¸ÀÚ. ÇÁ·ÎÁ§Æ® ·çÆ®¿¡´Â ¿©·¯ °¡Áö ¼³Á¤ ÆÄÀÏÀÌ ÀÖ°í public,
src Æú´õ¿¡´Â À̹ÌÁö¿Í ¼Ò½º°¡ µé¾î ÀÖ´Ù.

ÇÁ·ÎÁ§Æ®ÀÇ °ñ°ÝÀº °íÀÛ 14K ¿ë·®¹Û¿¡ ¾ÈµÇ´Âµ¥ ¼ø¼öÇÑ ¼Ò½º¸¸ Æ÷ÇԵǾî
ÀÖ´Ù. À̰͸¸ °¡Áö°í´Â À¥¾ÛÀ» ¹Ù·Î ½ÇÇàÇÒ ¼ö ¾ø°í ºôµå¿Í ½ÇÇà¿¡ ÇÊ¿äÇÑ ÆÐŰÁö¸¦ ¹Þ¾Æ¾ß ÇÑ´Ù. ÇÁ·ÎÁ§Æ® µð·ºÅ丮 ¾ÈÀ¸·Î µé¾î°¡ npm install ¸í·ÉÀ» ³»¸°´Ù.
C:\reactStudy>cd firstvite
C:\reactStudy\firstvite>npm install
vite´Â ºôµå¿¡ ÇÊ¿äÇÑ ¸ñ·Ï¸¸ ÀÛ¼ºÇÏ°í ½ÇÁ¦ ÆÐŰÁö´Â µû·Î ¹Þµµ·Ï
µÇ¾î ÀÖ´Ù. ÆÐŰÁöÀÇ ¾÷±×·¹ÀÌµå ¼Óµµ°¡ »¡¶ó ÇÁ·ÎÁ§Æ® »ý¼º ÈÄ¿¡µµ Áö¼ÓÀûÀÎ °ü¸®°¡ ÇÊ¿äÇϱ⠶§¹®ÀÌ´Ù. ¹ð±Û¹ð±Û µ¹¾Æ°¡´Â ¾Ö´Ï¸ÞÀ̼ÇÀÌ º¸ÀÌ°í ÆÐŰÁö¸¦ ´Ù¿î·Îµå ¹Þ´Â´Ù.

node_modules¶ó´Â Æú´õ°¡ »ý±â°í ÀÌ ¾È¿¡ ÆÐŰÁö¸¦ ¹Þ¾Æ ³õ´Â´Ù. ÇÁ·ÎÁ§Æ® Æú´õÀÇ ¿ë·®Àº °ÅÀÇ 100M¿¡ À°¹ÚÇÑ´Ù. ÆÐŰÁö´Â ¾ðÁ¦µçÁö ´Ù½Ã ¹ÞÀ» ¼ö ÀÖÀ¸¹Ç·Î ÇÁ·ÎÁ§Æ®ÀÇ ÀϺδ ¾Æ´Ï¸ç ¹é¾÷ÇÒ Çʿ䵵 ¾ø´Ù. ÇÊ¿äÇÒ ¶§ ÃֽйöÀüÀ¸·Î ´Ù½Ã ¹ÞÀ¸¸é µÈ´Ù. ÀÌÁ¦ ¸ðµç Áغñ°¡ ¿Ï·áµÇ¾úÀ¸´Ï npm run dev ¸í·ÉÀ¸·Î ½ÇÇàÇØ º¸ÀÚ.
C:\reactStudy\firstvite>npm run dev
°³¹ß ¸ðµå·Î ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇàÇ϶ó´Â ¶æÀÌ´Ù. ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÏ°í ½ÇÇàÇÏÁö¸¸
ȸ鿡´Â ¾È³»¸¸ ³ªÅ¸³¯ »Ó º°´Ù¸¥ º¯È´Â ¾ø´Ù.

À¥ ¾ÛÀº ³×Æ®¿öÅ©¸¦ ÅëÇØ Á¢¼ÓÇÏ°í ½ÇÇàÇÏ´Â ÇÁ·Î±×·¥À̹ǷΠ·ÎÄÿ¡¼ Á÷Á¢ ½ÇÇàÇÒ ¼ö´Â ¾ø°í ºê¶ó¿ìÀú¸¦ ¿¾î¾ß ÇÑ´Ù. vite´Â ·ÎÄÿ¡ À¥ ¼¹ö¸¦ ½ÇÇàÇÏ°í ±× ÁÖ¼Ò¸¦ ¾Ë·Á Áִµ¥ ¿©±â¿¡ Á¢¼ÓÇÏ¸é µÈ´Ù. ºê¶ó¿ìÀú¸¦ ½ÇÇàÇϰí ÁÖ¼Òâ¿¡ http://localhost:5173/À»
ÀÔ·ÂÇÏ¸é »ùÇà ÆäÀÌÁö°¡ ³ªÅ¸³´Ù.

À̹ÌÁö¿Í ÅØ½ºÆ®°¡ ÀÖ°í À̹ÌÁö¸¦ Ŭ¸¯Çϸé À̵¿ÇÏ´Â ¸µÅ©µµ °É·Á ÀÖ´Ù. °¡¿îµ¥
count is 0 ¹öưÀ» Ŭ¸¯Çϸé 1¾¿ Áõ°¡ÇÏ´Â °£´ÜÇÑ
µ¿ÀÛµµ º¸¿© ÁØ´Ù. ¾ÆÁ÷ º° ±â´ÉÀº ¾øÁö¸¸ ¾î¿³ÇÑ À¥ ¾ÛÀÌ¸ç ºñ·Ï ·ÎÄÿ¡ ÀÖÁö¸¸ À¥ ¼¹ö°¡ »ç¿ëÀÚÀÇ
¿äû¿¡ ÀÀ´äÇϰí ÀÖ´Ù.
À¥ ¼¹ö´Â º°µµÀÇ ¸í·ÉÀÌ ¾ø´Â ÇÑ °è¼Ó ´ë±âÇÑ´Ù. ºê¶ó¿ìÀú¸¦ Á¾·áÇϰųª
´Ù¸¥ ÆäÀÌÁö·Î À̵¿ÇÏ´Â °ÍÀº Á¢¼ÓÀ» ²÷´Â °ÍÀÌÁö À¥ ¾ÛÀ» ³¡³»´Â°Ô ¾Æ´Ï´Ù. ÇÁ·Î±×·¥À» Á¾·áÇÏ·Á¸é ¸í·ÉÇà¿¡¼ Ctrl + C¸¦ ´·¯ °Á¦ Á¾·áÇÑ´Ù. Á¤¸» ³¡³¾ °ÍÀÎÁö ¹°¾î º»´Ù.
Àϰý ÀÛ¾÷À» ³¡³»½Ã°Ú½À´Ï±î (Y/N)?
ÀÌ Áú¹®¿¡ ¸í½ÃÀûÀ¸·Î Y¶ó°í ´ë´äÇØ¾ß À¥ ¾ÛÀÌ Á¾·áµÇ°í ÇÁ·ÒÇÁÆ® »óÅ·Î
µ¹¾Æ¿Â´Ù. À¥ ¼¹ö¸¦ Á¾·áÇÏ¸é ´õ ÀÌ»ó »ç¿ëÀÚÀÇ ¸í·É¿¡ ÀÀ´äÇÒ ¼ö ¾øÀ¸´Ï ÀÌ »óÅ¿¡¼ ºê¶ó¿ìÀú¸¦ »õ·Î°íħÇϸé
¿¬°áÇÒ ¼ö ¾ø´Ù°í ³ª¿Â´Ù. ¹°·Ð ¾ðÁ¦µçÁö npm run dev ¸í·ÉÀ¸·Î
´Ù½Ã ½ÇÇàÇÏ¿© Àç±âµ¿ÇÏ¸é ¶Ç Á¢¼ÓÇÒ ¼ö ÀÖ´Ù.

vite·Î ÇÁ·ÎÁ§Æ®¸¦ »ý¼º, ½ÇÇàÇÏ´Â
½Ç½ÀÀ» ÇØ ºÃ´Âµ¥ Áú¹®ÀÌ ¸¹¾Æ º¹ÀâÇØ º¸ÀδÙ. ±×·¯³ª ¸î¹ø¸¸ ÇØ º¸¸é ±Ý¹æ Àͼ÷ÇØÁö¸ç 10Ãʳ»·Î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé ¼ö ÀÖ´Ù. ÀÔ·ÂÇØ¾ß ÇÒ °ÍÀº ÇÁ·ÎÁ§Æ® À̸§
»ÓÀÌ°í ³ª¸ÓÁö´Â ¿É¼Ç¸¸ ¼±ÅÃÇÏ¸é µÈ´Ù. secondvite, thirdvite ÇÁ·ÎÁ§Æ®¸¦ °è¼Ó ¸¸µé¾î
º¸ÀÚ.
À̰͵µ ±ÍÂú´Ù¸é Áú¹®¾øÀÌ Çѹ濡 ó¸®ÇÏ´Â ¸í·ÉÀ» ³»¸®´Â ¹æ¹ýµµ ÀÖ´Ù. Áö±Ý
¸í·ÉÇàÀÇ ÇöÀç Æú´õ°¡ firstvite ¾ÈÀ̹ǷΠcd.. ¸í·ÉÀ¸·Î
ÀÏ´Ü ½Ç½À Æú´õ·Î µ¹¾Æ¿Â´Ù. ±×¸®°í ´ÙÀ½ ¸í·ÉÀ» ³»¸®¸é ÇÁ·ÎÁ§Æ®¸í, ÇÁ·¹ÀÓ¿öÅ©, ¾ð¾î¸¦ Çѹ濡 ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ÀÌÈÄ ¼³Ä¡ ¿©ºÎ µîÀÇ Áú¹®¿¡¸¸ ´äÇϸé
µÈ´Ù.
C:\reactStudy>npm create vite@latest secondvite
-- --template react-ts
ÀÌ ¸í·ÉÀ» ³»¸®°í Enter¸¸ µÎ ¹ø ´©¸£¸é µÇ´Ï °¡Àå ½Å¼ÓÇÑ ¹æ¹ýÀÌ´Ù. ¹ßÀü ¼Óµµ°¡ »¡¶ó Áú¹® ³»¿ëÀ̳ª ¼±Åà °¡´ÉÇÑ ¿É¼ÇÀº vite ¹öÀü¿¡
µû¶ó Á¶±Ý¾¿ ´Þ¶óÁú ¼ö ÀÖ´Ù.
vite·Î ¸¸µç ÇÁ·ÎÁ§Æ®´Â Æú´õ ÀÚü°¡ ÇÁ·ÎÁ§Æ®ÀÌ¸ç Æú´õ ¾È¿¡ ¼ºê
µð·ºÅ丮·Î ±¸¼º ÆÄÀÏÀ» ºÐ·ùÇØ ³õ¾Ò´Ù. Ž»ö±â·Î Á÷Á¢ »ìÆì º¼ ¼öµµ ÀÖÁö¸¸ °³¹ßÅøÀÌ ±¸Á¶¸¦ ´õ Àß º¸¿©ÁÖ°í
¼Ò½ºµµ ¹Ù·Î ¿¾î¼ º¼ ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù. VSCode¸¦ ½ÇÇàÇÏ°í ÆÄÀÏ/Æú´õ ¿±â ¸í·ÉÀ» ¼±ÅÃÇÏ¿© Æú´õ¸¦ ¿¬´Ù.

ƯÁ¤ ÆÄÀÏÀ» ¿©´Â°Ô ¾Æ´Ï¶ó Æú´õ ÀÚü¸¦ ¼±ÅÃÇÑ´Ù.
c:\reactStudy\firstvite Æú´õ¸¦ ¼±ÅÃÇϸé ÀÌ Æú´õÀÇ ÇÁ·ÎÁ§Æ®¸¦ ¿¾î ÁÖ°í ¿ÞÂÊ Å½»ö±âºä¿¡ ÇÁ·ÎÁ§Æ®ÀÇ ±¸Á¶¸¦ º¸¿©
ÁØ´Ù. óÀ½ ½Ç½ÀÁßÀÌ¸é º¸¾È»óÀÇ ¹®Á¦°¡ ÀÖÀ½À» °æ°íÇÏ´Â ÆË¾÷âÀÌ ³ªÅ¸³´Ù.

³»°¡ ¹æ±Ý ÀÛ¼ºÇÑ °ÍÀ̹ǷΠ½Å·ÚÇØµµ µÉ °Å °°Áö¸¸ ¾îµð¼±°¡ ´Ù¿î¹ÞÀº ÆÄÀÏÀ̶ó¸é ¾î¶² Äڵ带 ½ÇÇàÇÒÁö ¾Ë ¼ö ¾øÀ¸¹Ç·Î
È®ÀÎÀ» °ÅÄ¡´Â °ÍÀÌ´Ù. ºÎ¸ð Æú´õ ¾Æ·¡ÀÇ ¸ðµç ÆÄÀÏÀ» ½Å·ÚÇѴٴ üũ¹Ú½º¸¦ ¼±ÅÃÇØ ³õÀ¸¸é ´Ù½Ã ¹¯Áö
¾Ê´Â´Ù. ÀÌ·¡¼ ½Ç½À Æú´õ¸¦ Çѱºµ¥·Î Á¤ÇØ µÎ´Â°Ô ÆíÇÏ´Ù.
Æú´õ¸¦ ¿¸é ¿ÞÂÊ Å½»ö±â¿¡ µð·ºÅ丮 ±¸Á¶¸¦ º¸¿© ÁØ´Ù. ¿©±â¼ ÆÄÀÏÀ»
¿¼ö ÀÖ°í ¿øÇϸé Áï½Ã ÆíÁýÇØ¼ ¼öÁ¤ÇØ º¼ ¼öµµ ÀÖ´Ù. ±×³É Ŭ¸¯Àº ÅÇÀÇ ÆÄÀϸíÀÌ ÀÌÅŸ¯Ã¤·Î Ç¥½ÃµÇ¸ç
Àá½Ã º¸´Â °ÍÀ̶ó ´Ù¸¥ ÆÄÀÏÀ» Ŭ¸¯ÇÏ¸é ´ÝÈù´Ù. ¹Ý¸é ´õºíŬ¸¯Àº °è¼Ó ¿¾î µÐ´Ù´Â Â÷À̰¡ ÀÖ´Ù. ·çÆ®ÀÇ index.htmlÀ» ´õºíŬ¸¯Çؼ ¿¾î º¸ÀÚ.

ÇÁ·ÎÁ§Æ® Æú´õÀÇ ¿ë·®Àº 92M Á¤µµ µÇ¸ç ºôµå ¹× ½ÇÇà¿¡ ÇÊ¿äÇÑ ¸ðµç
ÆÐŰÁö°¡ ´Ù Æ÷ÇԵǾî ÀÖ´Ù. µð·ºÅ丮 ±¸Á¶ºÎÅÍ »ìÆì º¸ÀÚ.
|
µð·ºÅ丮, ÆÄÀÏ |
|
|
node_modules |
³ëµå°¡ »ç¿ëÇÏ´Â ¶óÀ̺귯¸® ÁýÇÕÀÌ´Ù. ¿ë·®ÀÌ Å«µ¥ ¾ðÁ¦µçÁö npm install ¸í·ÉÀ¸·Î ´Ù½Ã ¹ÞÀ» ¼ö ÀÖÀ¸¹Ç·Î ÇÁ·ÎÁ§Æ® ¹é¾÷À̳ª Àü´Þ½Ã¿¡´Â Á¦¿ÜÇØµµ »ó°ü ¾ø´Ù. |
|
public |
¾ÆÀÌÄܰú À̹ÌÁö µîÀ» ÀúÀåÇÑ´Ù. µðÆúÆ®·Î
vite.svg À̹ÌÁö ÆÄÀÏÀÌ µé¾î ÀÖ´Ù. |
|
src |
ÇÁ·ÎÁ§Æ®ÀÇ ¼Ò½ºÀ̸ç ÁÖ·Î ÆíÁýÇØ¾ß ÇÒ ´ë»óÀÌ´Ù. È¸é ¹èÄ¡¿Í ½ºÅ¸ÀÏ ÆÄÀÏ µîÀÌ´Ù. |
|
index.html |
¸ÞÀÎ ÆäÀÌÁöÀÌ´Ù. À¥ ½ÃÀÛ ÆäÀÌÁöÀÌ¸ç ºê¶ó¿ìÀú¿¡¼ ¿±â À§ÇÑ ÆÄÀÏÀÏ »Ó °³¹ß
´ë»óÀº ¾Æ´Ï´Ù. |
|
package.json |
ÆÐŰÁö Á¤º¸¸¦ ´ãÀº ÆÄÀÏÀÌ¸ç ¾î¶² ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ´ÂÁö ¸ñ·ÏÀÌ ÀÛ¼ºµÇ¾î ÀÖ´Ù. |
|
vite.config.ts |
ºôµå ¼³Á¤ ÆÄÀÏÀÌ´Ù. |
´ëºÎºÐ ±âº» ±¸Á¶¸¦ ¸¸µé±â À§ÇÑ ÆÄÀÏÀ̸ç ÇÙ½É ¼Ò½º´Â src Æú´õ¿¡
ÀÖ´Ù. ÇÁ·ÎÁ§Æ® ±¸Á¶ À§ÁÖ·Î ¼ø¼´ë·Î ºÐ¼®ÇØ º¸µÇ Áö±ÝÀº °³º° ÄÚµå±îÁö ´Ù ÀÌÇØÇÒ ÇÊ¿ä´Â ¾ø´Ù. À¥ºê¶ó¿ìÀú°¡ óÀ½ Àд ÆÄÀÏÀº index.htmlÀÌ´Ù.
<!doctype
html>
<html
lang="en">
<head>
<meta
charset="UTF-8" />
<link
rel="icon" type="image/svg+xml" href="/vite.svg"
/>
<meta
name="viewport" content="width=device-width,
initial-scale=1.0" />
<title>firstvite</title>
</head>
<body>
<div
id="root"></div>
<script
type="module" src="/src/main.tsx"></script>
</body>
</html>
Æò¹üÇÑ HTML ÆÄÀÏÀÌ´Ù. vite.svg´Â
À¥ ÆäÀÌÁö¸¦ ´ëÇ¥ÇÏ´Â ÆÄºñÄÜÀ̸ç publicÆú´õ¿¡ ÀÖ´Ù. Çü½ÄÀÌ
image/svg+xml·Î µÇ¾î Àִµ¥ ÅØ½ºÆ® Çü½ÄÀÇ º¤ÅÍ À̹ÌÁö¶ó´Â ¶æÀÌ¸ç ½ÇÁ¦·Î ¿¾î º¸¸é ÅØ½ºÆ®
ÆÄÀÏÀÌ´Ù. ¿ª»ï°¢Çü ¸ð¾çÀÇ vite ·Î°í°¡ »õ°ÜÁ® ÀÖÀ¸¸ç
À¥ ºê¶ó¿ìÀúÀÇ ÅÇ¿¡ Ç¥½ÃµÈ´Ù.
![]()
¹Ùµð¿¡´Â <div> ¿¤¸®¸àÆ®°¡ ÀÖ°í À̸§ÀÌ root·Î µÇ¾î ÀÖ´Ù. ÄÄÆ÷³ÍÆ®¸¦ ºÙÀÏ Á¢ÇÕ ÁöÁ¡ÀÌ¸ç ¸®¾×Æ®´Â ÀÌ
¾È¿¡ ³»¿ë¹°À» ½Ç½Ã°£À¸·Î ä¿ö ³Ö´Â´Ù. HTML ±¸Á¶¿¡ ¸ÂÃß±â À§ÇÑ ½ÃÀÛÁ¡ÀÏ »ÓÀ̹ǷΠ±»ÀÌ À̸§À» ¹Ù²Ù°Å³ª
´Ù¸¥ ¼Ó¼ºÀ» ÁÙ ÇÊ¿ä ¾ø´Ù. ÆíÁýÇØ¼´Â ¾ÈµÇ¸ç »èÁ¦Çؼµµ ¾ÈµÈ´Ù. ±×³É
ÀÌ´ë·Î µÎ¸é µÈ´Ù.
<script> ű׷Π½ºÅ©¸³Æ® ¼Ò½º¸¦ °¡Á®¿À´Âµ¥ /src/main.tsx°¡ ½ÇÁúÀûÀÎ ½ÃÀÛÁ¡ÀÌ´Ù. À¥ ºê¶ó¿ìÀú´Â ¹«Á¶°Ç index.htmlÀ» Àеµ·Ï µÇ¾î ÀÖ°í ¿©±â¼ main.tsx¸¦ ÀÐÀ¸¹Ç·Î
ÀÌ ÁöÁ¡ºÎÅÍ ¸®¾×Æ®°¡ µ¿ÀÛÇÑ´Ù. ÁÖ¿ä ¶óÀ̺귯¸®¿Í ¼Ò½º¸¦ ÀÓÆ÷Æ®ÇÏ¿© ¿¬°áÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.
import {
StrictMode } from 'react'
import {
createRoot } from 'react-dom/client'
import
'./index.css'
import
App from './App.tsx'
createRoot(document.getElementById('root')!).render(
<StrictMode>
<App />
</StrictMode>,
)
¼Ò½º ¼±µÎ¿¡¼ ¸®¾×Æ®ÀÇ ÇÙ½É ¶óÀ̺귯¸®ÀÎ react¿Í ·£´õ¸µ ¶óÀ̺귯¸®ÀÎ
react-domÀ» ÀÓÆ÷Æ®ÇÑ´Ù. º°µµÀÇ °æ·Î¾øÀÌ ÆÄÀÏ¸í¸¸
ÁöÁ¤µÇ¾î Àִµ¥ ÀÌ °æ¿ì´Â node_modules Æú´õ¿¡¼ Àд´Ù.
vite°¡ ¹Ì¸® ¹Þ¾Æ ÇÁ·ÎÁ§Æ® Æú´õ¿¡ Æ÷ÇÔ½ÃÄÑ µÎ¾î ÀÓÆ÷Æ®¸¸ ÇÏ¸é ¾µ ¼ö ÀÖ´Ù. ÀÌ µÎ
ÆÄÀÏÀÌ ¸®¾×Æ® ±× ÀÚüÀÌ´Ù.
¢ºreact : ¸®¾×Æ®ÀÇ ÇÙ½É
°´Ã¼À̸ç ȯ°æ¿¡ ¹«°üÇÑ °øÅë ±â´ÉÀ» Á¦°øÇÑ´Ù. ¸®¾×Æ®ÀÇ ¿£Áø¿¡ ÇØ´çÇÑ´Ù.
¢ºreact-dom : ºê¶ó¿ìÀúÀÇ DOM¿¡ ¿¬°áÇÏ¿© ÀÔÃâ·ÂÀ» ´ã´çÇÏ´Â ·£´õ·¯ÀÌ´Ù. ȸéÀ» ±×¸®´Â ¿ªÇÒÀ»
ÇÑ´Ù.
¹öÀü 14 ÀÌÀü¿¡´Â ¼Ò½º°¡ Çϳª¿´´Âµ¥ ÀÌÈÄ¿¡´Â À¥»Ó¸¸ ¾Æ´Ï¶ó ´Ù¸¥
ȯ°æ¿¡¼µµ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇÙ½É ±â´É°ú Ç¥Çö ±â´ÉÀ» ºÐ¸®Çß´Ù. ¿£Áø°ú ·£´õ·¯°¡ ºÐ¸®µÇ¾î ÀÖ´Ù´Â °ÍÀº
À¥ ¿ÜÀÇ ´Ù¸¥ °÷¿¡µµ ¸®¾×Æ®¸¦ ¾µ ¼ö ÀÖ´Ù´Â ¾ê±âÀÌ´Ù. ¸®¾×Æ®´Â Çѹø ¹è¿ö ¿©±â Àú±â Ȱ¿ë(Learn Once, Write Anywhere)ÇÒ ¼ö ÀÖÀ¸¸ç À̸¦ À§ÇØ ·£´õ·¯¸¦ ¼¼ºÐÇØ ³õ¾Ò´Ù.
|
·£´õ·¯ |
¼³¸í |
|
react-dom |
À¥ ºê¶ó¿ìÀú¿¡ ±×¸°´Ù. |
|
react-native |
¾Èµå·ÎÀ̵峪 iOS °°Àº ¸ð¹ÙÀÏ ¾ÛÀ» »ý¼ºÇÑ´Ù. |
|
react-art |
<canvas> ¶Ç´Â SVG¿¡
±×·Á ±×·¡ÇÈÀ¸·Î Ãâ·ÂÇÑ´Ù. |
|
react-pdf |
PDF ¹®¼¸¦ »ý¼ºÇÑ´Ù. |
µÎ ¸ðµâÀ» ÀÓÆ÷Æ®ÇÏ¿© ¸®¾×Æ®·Î À¥ ¾ÛÀ» ¸¸µé Áغñ¸¦ ÇÑ´Ù. ´ÙÀ½Àº
°°Àº Æú´õ(./)ÀÇ ÇÁ·ÎÁ§Æ® ¼Ò½º¿Í ½ºÅ¸ÀÏÀ» Àоî¿Â´Ù. ´ë±Ô¸ð
°³¹ßÀ» À§ÇØ ±â´Éº°·Î ¼Ò½º ÆÄÀÏÀ» Àß°Ô ³ª´©¾î ³õ¾Ò´Ù. index.css´Â »ö»ó°ú Å׵θ® ¸ð¾ç, ÆùÆ® µîÀÇ Àü¿ª ½ºÅ¸ÀÏÀ» ÁöÁ¤Çϴµ¥ ¼Ò½º°¡ ±æ¾î ÀϺθ¸ º¸ÀδÙ. ÀüüÀûÀ¸·Î
Áß¾Ó Á¤·ÄµÇ¾î ÀÖ´Ù.
....
body {
margin: 0;
display: flex;
place-items: center;
min-width: 320px;
min-height: 100vh;
}
....
button {
border-radius: 8px;
border: 1px solid transparent;
....
./App.tsx´Â °°Àº µð·ºÅ丮ÀÇ
App.tsx ÆÄÀÏÀ» ÀǹÌÇϸç ÀÌ ÆÄÀÏ¿¡¼ App ÄÄÆ÷³ÍÆ®¸¦ Àд´Ù. AppÀÌ °ð ¿ì¸®°¡ ¸¸µé¾î¾ß ÇÒ È¸éÀÌ¸ç ½ÇÁ¦ À¥ ÆäÀÌÁö¸¦ Á¤ÀÇÇÏ´Â °¡»ó
DOMÀ» Á¤ÀÇÇϴµ¥ Àá½Ã ÈÄ µû·Î »ìÆì º¸ÀÚ.
½ºÅ©¸³Æ® Äڵ忡¼ root ¿¤¸®¸ÕÆ®¸¦ ã°í render ÇÔ¼ö¿¡¼ App ÄÄÆ÷³ÍÆ®¸¦ ¹èÄ¡ÇÏ¿© ·£´õ¸µÇÑ´Ù. index.html¿¡¼ Á¤ÀÇÇØ ³õÀº <div
id="root">¸¦ ã°í ÀÌ ¾È¿¡ <App /> ÄÄÆ÷³ÍÆ®¸¦
³¢¿ö ³Ö´Â´Ù. À¥ ºê¶ó¿ìÀú¿¡ Ç¥½ÃÇÏ·Á¸é index.html ²®µ¥±â°¡
ÇÊ¿äÇϰí ÀÌ ¾È¿¡ ½ÇÁ¦ ¾Ë¸ÍÀÌ´Â AppÀ¸·Î ä¿ì´Âµ¥ ÀÌ ±¸Á¶¸¦ ¸¸µé¾î ³»´Â°Ô main.tsxÀÇ ¿ªÇÒÀÌ´Ù.

<StrictMode>´Â ÀÌ ¾È¿¡¼ ¹®¹ý °Ë»ç¸¦ ¾ö°ÝÇϰÔ
¼öÇàÇÏ¿© À§ÇèÇÑ Äڵ峪 Æó±âµÈ Äڵ带 ½ÇÇàÇÒ ¶§ °æ°í¸¦ ¹ß»ý½ÃŲ´Ù. ÀÏÁ¾ÀÇ µð¹ö±ë ¿µ¿ªÀ̸ç ÃÖÁ¾ ºôµå¿¡¼´Â
¾Ë¾Æ¼ Á¦°ÅÇϹǷΠ¼º´É»óÀÇ ºÒÀÌÀÍÀº ¾ø´Ù. ´çÀå ¾ø¾îµµ µ¿ÀÛ¿¡´Â Å« ÁöÀåÀÌ ¾ø°í Áö¿ö¹ö·Áµµ µÇÁö¸¸ °³¹ßÁß¿¡´Â
¹®Á¦ ÆÄ¾Ç¿¡ ²Ï µµ¿òÀÌ µÇ¹Ç·Î ±×³É µÎ´Â °ÍÀÌ ÁÁ´Ù.
main.tsx´Â root¾È¿¡ AppÀ» ä¿ì´Â ¿ªÇÒ¸¸ ÇÏ¸ç ´ëºÎºÐÀÇ ¸®¾×Æ® ¾Û¿¡ ÀÌ ±¸Á¶°¡ ÀûÇÕÇϹǷΠÁ÷Á¢ ÆíÁýÇÒ ÀÏÀº ¾ø´Ù. ¾ÛÀÇ ¸ð¾ç°ú µ¿ÀÛÀ» °áÁ¤ÇÏ´Â ÁøÂ¥ ¾Ë¸ÍÀÌ´Â App.tsxÀÌ´Ù. JSX¶ó´Â °íÀ¯ÀÇ ¹®¹ýÀ¸·Î µÇ¾î ÀÖ°í ¸î °¡Áö Äڵ尡 ÀÖÁö¸¸ ÀÏ´ÜÀº HTMLÀ̶ó°í
»ý°¢ÇÏ°í ´ëÃæÀÇ ±¸Á¶¸¸ ºÁ µÎÀÚ.
import {
useState } from 'react'
import
reactLogo from './assets/react.svg'
import
viteLogo from '/vite.svg'
import
'./App.css'
function
App() {
const [count, setCount] = useState(0)
return (
<>
<div>
<a href="https://vite.dev" target="_blank">
<img src={viteLogo} className="logo" alt="Vite
logo" />
</a>
<a href="https://react.dev" target="_blank">
<img src={reactLogo} className="logo react" alt="React
logo" />
</a>
</div>
<h1>Vite +
React</h1>
<div
className="card">
<button onClick={() => setCount((count) => count + 1)}>
count is {count}
</button>
<p>
Edit <code>src/App.tsx</code> and save to test HMR
</p>
</div>
<p
className="read-the-docs">
Click on the Vite and React logos to learn more
</p>
</>
)
}
export
default App
vite ·Î°í¿Í react ·Î°í
À̹ÌÁö¸¦ ³ª¶õÈ÷ ¹èÄ¡ÇÏ°í °¢ »çÀÌÆ®·Î À̵¿ÇÏ´Â ¸µÅ©°¡ °É·Á ÀÖ´Ù. »ç¿ëÀÚÀÇ µ¿ÀÛ¿¡ ¹ÝÀÀÇÑ´Ù´Â °ÍÀ» º¸À̱â
À§ÇØ ¹öưÀ» ´©¸£¸é Ä«¿îÆ®¸¦ 1 Áõ°¡½ÃŰ´Â »ùÇà Äڵ尡 ÀÛ¼ºµÇ¾î ÀÖ´Ù.
ÀÌ Äڵ忡¼ count´Â »óÅ¿¡ ÇØ´çÇϸç useState
ÈÅÀ» »ç¿ëÇϴµ¥ Àá½Ã ÈÄ ¿¬±¸ÇØ º¼ °ÍÀÌ´Ù.
³ª¸ÓÁö´Â App.tsx¸¦ ¼öÁ¤ÇÑ ÈÄ ÀúÀåÇ϶ó´Â °Í°ú ´õ °øºÎÇÏ°í ½ÍÀ¸¸é
·Î±×¸¦ Ŭ¸¯Ç϶ó´Â ¾È³» ¹®ÀÚ¿ÀÌ´Ù. App() ÄÄÆ÷³ÍÆ® ÇÔ¼ö´Â °¡»ó
DOMÀ» »ý¼ºÇÏ¿© ¸®ÅÏÇÏ´Â JSX·Î ±â¼úµÇ¾î ÀÖ´Ù. À̹ÌÁö
¼Ò½º¿¡ {viteLogo}¸¦ ³¢¿ö ³ÖÀº °Í°ú ű×ÀÇ Å¬·¡½º ÁöÁ¤À»
classNameÀ¸·Î ÇÑ´Ù´Â °Í ¿Ü¿¡´Â HTML°ú À¯»çÇØ ´ëÃæ ºÁµµ ³»¿ëÀ» ÆÄ¾ÇÇÒ ¼ö ÀÖ´Ù.
¼Ò½ºÀÇ ¸¶Áö¸·¿¡¼ App ÇÔ¼ö¸¦ ¿¢½ºÆ÷Æ®ÇÏ¿© ¿ÜºÎ¿¡¼ È£ÃâÇÒ ¼ö ÀÖµµ·Ï
°ø°³ÇÑ´Ù. main.tsxÀÇ render ¸Þ¼µå¿¡¼ AppÀ» ÂüÁ¶Çϴµ¥ À̸¦ À§ÇØ °ø°³ÇØ µÐ °ÍÀÌ´Ù. export default
App;¹®ÀåÀ» »èÁ¦Çϸé ÄÄÆ÷³ÍÆ®¸¦ ãÁö ¸øÇØ ·£´õ¸µÀÌ ¾ÈµÈ´Ù. ¿¢½ºÆ÷Æ® ¸ñ·ÏÀ» ÇÑ´«¿¡ ÆÄ¾ÇÇÒ
¼ö ÀÖµµ·Ï ÆÄÀÏ ³¡¿¡ º°µµÀÇ export¹®À» ÀÛ¼ºÇÏ´Â°É ±ÇÀåÇÏÁö¸¸ ÇÔ¼ö ÀÚü¿¡ export ÁöÁ¤À» ÇØµµ »ó°ü ¾ø´Ù.
export default function App() {
....
ÀÌ ÇÔ¼ö°¡ »ý¼ºÇÏ´Â °¡»ó DOMÀÌ
root¾ÈÀ» ä¿ö À¥ ÆäÀÌÁö¸¦ ±×¸°´Ù. ½ºÅ¸ÀÏÀÌ º¹ÀâÇØ º¸ÀÏ »Ó °á±¹ <img>, <p>, <a> ű׷Π±¸¼ºÇÑ °£´ÜÇÑ »ùÇà ÆäÀÌÁöÀÏ »ÓÀÌ´Ù. App.css´Â Á¤·Ä, ¹è°æ»ö, ¿©¹é
µîÀ» ÁöÁ¤ÇÏ´Â ½ºÅ¸ÀÏ½ÃÆ®ÀÌ´Ù.
#root {
max-width: 1280px;
margin: 0 auto;
padding: 2rem;
text-align: center;
}
.logo {
height: 6em;
padding: 1.5em;
will-change: filter;
transition: filter 300ms;
}
.logo:hover
{
filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.react:hover
{
filter: drop-shadow(0 0 2em #61dafbaa);
}
@keyframes
logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@media
(prefers-reduced-motion: no-preference) {
a:nth-of-type(2) .logo {
animation: logo-spin
infinite 20s linear;
}
}
.card {
padding: 2em;
}
.read-the-docs
{
color: #888;
}
ÇÁ·ÎÁ§Æ®ÀÇ ±¸¼º ÆÄÀÏÀÌ ¸¹¾Æ º¹ÀâÇØ º¸ÀÌÁö¸¸ ÀÚ¼¼È÷ »ìÆì º¸¸é Á¢ÇÕ ÁöÁ¡°ú ÄÄÆ÷³ÍÆ®, ½ºÅ¸ÀÏ ½ÃÆ®·Î Âõ¾î ³õ¾ÒÀ» »ÓÀÌ´Ù. ÆÄÀϰ£ °ü°è¸¦ ÆÄ¾ÇÇÏ¸é ¾îµð¸¦
¾î¶»°Ô ¼öÁ¤ÇØ¾ß ÇÒÁö ¾Ë ¼ö ÀÖ´Ù.

¹®¼¸¦ Ãâ·ÂÇÒ Àå¼Ò°¡ ÀÖ¾î¾ß ÇϹǷΠindex.htmlÀÌ root <div>¸¦ Á¤ÀÇÇϴµ¥ ÀÌ°Ç À¢¸¸Çؼ± ¹Ù²Ü ÀÏÀÌ ¾ø´Ù. main.tsx´Â App ÄÄÆ÷³ÍÆ®¸¦ »ý¼ºÇÏ¿© root¿¡ ä¿ö ³Ö´Âµ¥ ÀÌ µ¿ÀÛµµ µüÈ÷
¹Ù²Ü Çʿ䰡 ¾ø´Ù. ÀÌ µÑÀº ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇϱâ À§ÇÑ ²®µ¥±â¿¡ ºÒ°úÇÏ´Ù.
ȸ鿡 ¹» º¸¿©ÁÖ°í ¾î¶»°Ô µ¿ÀÛÇÒ °ÍÀΰ¡¸¦ °áÁ¤ÇÏ´Â °ÍÀº App ÄÄÆ÷³ÍÆ®À̸ç
¾î¶»°Ô º¸¿©ÁÙ °ÍÀΰ¡´Â App.cssÀÇ ½ºÅ¸ÀÏ·Î ÁöÁ¤ÇÑ´Ù. °á±¹
ÀÌ µÎ ÆÄÀϸ¸ Àß ¼öÁ¤Çϸé À¢¸¸ÇÑ À¥¾ÛÀº ´Ù ¸¸µé ¼ö ÀÖ´Ù.
vite°¡ ¸¸µç ÇÁ·ÎÁ§Æ®¸¦ ¼öÁ¤ÇØ º¸ÀÚ. Áö±Ý ½ÇÇàÁßÀ̶ó¸é Crtl+C¸¦ ´·¯ ÀÏ´Ü Á¾·áÇÏ°í ¸í·ÉÇ൵ ´Ý¾Æ
¹ö¸®ÀÚ. Ãâ·ÂÇÒ ³»¿ëÀ» Á¤ÀÇÇÏ´Â App ÄÄÆ÷³ÍÆ®°¡ Á¦ÀÏ Áß¿äÇϸç
ÁÖ ÆíÁý ´ë»óÀÌ´Ù. ÀÌ ¾È¿¡ ¾î¶² ¹®¼¸¦ ÀÛ¼ºÇÏ°í ¾î¶² µ¿ÀÛÀ» ó¸®Çϴ°¡¿¡ µû¶ó ¾î¶² ¾ÛÀÌ µÉÁö °áÁ¤µÈ´Ù.
°ú¿¬ ±×·±Áö App.tsx¸¦ ¼öÁ¤ÇÏ¿© ÄÄÆ÷³ÍÆ® ³»ºÎ¸¦ ¹Ù²ã º¸ÀÚ. ·Î°í´Â À̹ÌÁö¸¦ ÁغñÇϱ⠹ø°Å·Î¿ì´Ï ¹®ÀÚ¿°ú ¸µÅ©¸¸ ¼öÁ¤ÇØ º¸ÀÚ. ¿µ¹®
¸Þ½ÃÁö¸¦ Çѱ۷Π¹Ù²Ù°í viteÀÇ ¸µÅ©´Â ³×À̹ö¸¦ °¡¸®Å°µµ·Ï ¼öÁ¤ÇÑ´Ù.
Á¦ÀÏ ¾Æ·¡ °øºÎÇ϶ó´Â ÀܼҸ® ¸Þ½ÃÁö´Â »èÁ¦ÇÏÀÚ.
function App() {
const
[count, setCount] = useState(0)
return (
<>
<div>
<a href="https://www.naver.com"
target="_blank">
<img src={viteLogo} className="logo" alt="Vite
logo" />
</a>
<a href="https://react.dev" target="_blank">
<img src={reactLogo} className="logo react" alt="React
logo" />
</a>
</div>
<h1>¸®¾×Æ®
»ùÇþÛ</h1>
<div
className="card">
<button onClick={() => setCount((count) => count + 1)}>
count is {count}
</button>
<p>
ÆíÁý ÈÄ ÀúÀåÇϼ¼¿ä.
</p>
</div>
</>
)
}
ÇѱÛÀ» »ç¿ëÇßÀ¸¹Ç·Î ¼Ò½º´Â UTF-8 ÀÎÄÚµùÀ¸·Î ÀúÀåÇÑ´Ù. VSCode´Â µðÆúÆ®°¡ UTF-8ÀÌÁö¸¸ ´Ù¸¥ ÆíÁý±â´Â ±×·¸Áö ¾ÊÀ»
¼öµµ ÀÖÀ¸¹Ç·Î ÀÎÄÚµùÀ» È®ÀÎÇØ¾ß ÇÑ´Ù. ¼öÁ¤ ÈÄ ÀúÀåÇÏ°í ´Ù½Ã ½ÇÇàÇ쵂 ¸í·ÉÇà âÀ¸·Î À̵¿ÇÒ ÇÊ¿ä¾øÀÌ VSCode¾È¿¡ ÀÖ´Â Å͹̳ÎÀ» »ç¿ëÇÏ¸é µÈ´Ù. º¸±â/Å͹̳Π¸í·ÉÀ» ½ÇÇàÇϰí npm run dev¸í·ÉÀ» ³»¸°´Ù.

´ëºÎºÐÀÇ °æ¿ì ÀÌ·± ¿¡·¯ ¸Þ½ÃÁö°¡ ³ªÅ¸³ª´Âµ¥ ÀÌÀ¯´Â ÆÄ¿ö½©ÀÇ ±âº» ¼³Á¤ÀÌ ½ºÅ©¸³Æ® ½ÇÇàÀ» ±ÝÁöÇϱ⠶§¹®ÀÌ´Ù. ÆÄ¿ö½©À» °ü¸®ÀÚ ±ÇÇÑÀ¸·Î ½ÇÇàÇϰí Set-ExecutionPolicy
Unrestricted ¸í·É ½ÇÇà ÈÄ Y¸¦ ÀÔ·ÂÇϸé ÇØ°áµÇ¸ç µü Çѹø¸¸ ÇÏ¸é µÈ´Ù. À̺¸´Ù ´õ °£´ÜÇÑ ¹æ¹ýÀº ÆÄ¿ö½© ´ë½Å ¸í·ÉÇàÀ¸·Î ¹Ù²ã ¹ö¸®´Â °ÍÀÌ´Ù.

¸í·ÉÇà¿¡¼´Â ½ºÅ©¸³Æ® ½ÇÇà Á¦ÇÑÀÌ ¾ø¾î npm run dev ¸í·ÉÀÌ
Àß ½ÇÇàµÈ´Ù. ¸í·ÉÇà°ú ¶È°°Àº ¸Þ½ÃÁö°¡ ³ªÅ¸³ª¸ç ºê¶ó¿ìÀú°¡ ½ÇÇàµÈ´Ù.
¸¸¾à ºê¶ó¿ìÀú°¡ ³ªÅ¸³ªÁö ¾ÊÀ¸¸é ¸í·ÉÇàÀÇ Local ¸µÅ©¸¦ Ctrl Ŭ¸¯ÇÏ¸é µÈ´Ù.

Á¾·áÇÒ ¶§ ÀÌ Ã¢¿¡¼ Ctrl+C¸¦ ´©¸£¸é µÈ´Ù. ´Ù¸¥ ÇÁ·ÎÁ§Æ®¸¦ ¿°Å³ª VSCode¸¦ Á¾·áÇÒ ¶§ ¸®¾×Æ® ¾Ûµµ ÀÚµ¿
Á¾·áµÇ¹Ç·Î °ÆÁ¤ÇÒ ÇÊ¿ä ¾ø´Ù. ÀÌÈÄ º°µµÀÇ ¸í·ÉÇàâÀ» ¿ ÇÊ¿ä¾øÀÌ Å͹̳ο¡¼ ½Ç½ÀÀ» ÁøÇàÇÏÀÚ. »õ·Î ¼öÁ¤ÇÑ ÆäÀÌÁö´Â ´ÙÀ½°ú °°´Ù.

¸¸¾à ÀÌ¹Ì ½ÇÇàÁßÀ̶ó¸é ÀúÀ常 ÇÏ¸é µÈ´Ù. ¼¹ö¸¦ ±âµ¿ÇØ ³õÀ¸¸é ¼öÁ¤ÇÒ
¶§¸¶´Ù ÀÏÀÏÀÌ Àç½ÇÇàÇÒ ÇÊ¿ä¾øÀÌ ¼Ò½º ÆÄÀϸ¸ ÀúÀåÇÏ¸é ¹øµé·¯°¡ À̸¦ ÀÎÁöÇϰí Áï½Ã Àç¹èÆ÷ÇÑ´Ù. À̸¦
HMR(Hot Module Replacement) ¶Ç´Â ÇÖ ¸®·Îµù(hot
reloading)À̶ó°í ÇÑ´Ù.
°ú¿¬ ±×·±Áö <h1>¸®¾×Æ® »ùÇþÛ</h1>ÀÇ ³»¿ëÀ» <h1>¹Ý°¡¿ö¿ä</h1>·Î ¹Ù²Û ÈÄ ÀúÀåÇØ º¸ÀÚ. ¸í·ÉÇà¿¡ ¾÷µ¥ÀÌÆ®Çß´Ù´Â
¸Þ½ÃÁö°¡ ³ªÅ¸³ª¸ç ºê¶ó¿ìÀúµµ ȸéÀ» ½Ç½Ã°£À¸·Î °»½ÅÇÑ´Ù. ÀÌ ±â´É ´öºÐ¿¡ ¸®¾×Æ®¸¦ ½Ç½ÀÇÏ±â ÆíÇÏ´Ù.
¿ÀÈÄ 8:35:23 [vite] (client) hmr update /src/App.tsx
ÆäÀÌÁöÀÇ µðÀÚÀÎÀº ½ºÅ¸ÀÏ½ÃÆ®°¡ °áÁ¤ÇÑ´Ù. ±Û²ÃÀ̳ª Á¤·Ä, »ö»óÀ» º¯°æÇÏ·Á¸Õ ½ºÅ¸ÀÏ½ÃÆ®¸¦ ¼öÁ¤ÇÑ´Ù. À̹ø¿¡´Â App.cssÀÇ ½ºÅ¸ÀÏ½ÃÆ®¸¦ ¼öÁ¤ÇØ º¸ÀÚ. ¸®¾×Æ® ·Î°í¿¡ ¾Ö´Ï¸ÞÀ̼Ç
󸮰¡ µÇ¾î Àִµ¥ ¹Ìµð¾îÄõ¸®¿¡ ÀÇÇØ Á¶°ÇºÎ 󸮵Ǿî ÀÖ´Ù. »ç¿ëÀÚ°¡ ¾Ö´Ï¸ÞÀÌ¼Ç ¿É¼ÇÀ» ÄÑ ³õ¾ÒÀ» ¶§¸¸
µ¿ÀÛÇϴµ¥ À©µµ¿ìÀÇ °æ¿ì ¼³Á¤/Á¢±Ù¼±/½Ã°¢ÀÇ ´ÙÀ½ ¿É¼ÇÀÌ´Ù.

ÀÌ ¿É¼ÇÀ» ÄÑ ³õ¾ÒÀ¸¸é ¿øÀÚ ¸ð¾çÀÌ ¹ð±Û¹ð±Û µ¹¾Æ°¡´Â ¾Ö´Ï¸ÞÀ̼ÇÀÌ µÇ¸ç ²¨ ³õ¾ÒÀ¸¸é ¾Æ¹« µ¿ÀÛµµ ÇÏÁö ¾Ê´Â´Ù. ÀÌ·± È¿°ú¸¦ ±ÍÂú°Ô »ý°¢ÇÏ´Â »ç¶÷Àº ¿É¼ÇÀ» ²¨ ³õ´Â °æ¿ì°¡ ¸¹´Ù. @media
(prefers-reduced-motion: no-preference) ¿É¼ÇÀº »ç¿ëÀÚ°¡ ¾Ö´Ï¸ÞÀÌ¼Ç ¿É¼ÇÀ» º°µµ·Î ±ÝÁöÇÏÁö ¾Ê¾ÒÀ¸¸é~ À̶ó´Â ¶æÀÌ´Ù.
¹Ìµð¾î Äõ¸®¹®À» ÁÖ¼® ó¸®ÇÏ¿© Á¶°ÇÀ» »©¸é ¿É¼Ç¿¡ »ó°ü¾øÀÌ Ç×»ó ¾Ö´Ï¸ÞÀÌ¼Ç µÈ´Ù. Âü°í·Î CSSÀÇ ÁÖ¼®Àº /* */
À̸ç ÇÑÁÙ ÁÖ¼®ÀÌ µû·Î ¾øÀ¸¹Ç·Î ¾Æ·¡ À§ µÎ ÁÙÀÇ ½ÃÀÛ°ú ³¡À» ´Ù ¸·¾Æ¾ß ÇÑ´Ù. ¾Ö´Ï¸ÞÀ̼Ç
½Ã°£Àº 20ÃÊ¿¡¼ 2ÃÊ·Î Á¶Á¤ÇÏ¿© ´õ ºü¸£°Ô ÇÑ´Ù.
#root {
....
background-color: greenyellow;
}
/* @media (prefers-reduced-motion: no-preference)
{ */
a:nth-of-type(2) .logo {
animation: logo-spin infinite 5s linear;
}
/* } */
¹è°æ»öÀº ¿¬µÎ»öÀ¸·Î ¹Ù²Ù¾ú´Ù. ±× ¿Ü¿¡ ¸¶Áø, ÆùÆ® Å©±â, ¹è°æ»ö, Á¤·Ä
µî ¿øÇÏ´Â ½ºÅ¸ÀÏÀ» ¾ó¸¶µçÁö ¹Ù²Ü ¼ö ÀÖ´Ù. À̹ø¿¡µµ ÀúÀåÇÏ´Â Áï½Ã À¥ÆäÀÌÁö¿¡ ¹Ý¿µµÈ´Ù. À©µµ¿ìÀÇ ¿É¼ÇÀ» ²¨ ³õ¾Ò´õ¶óµµ ·Î°í°¡ ºü¸£°Ô ȸÀüÇÏ¸ç ¾Ö´Ï¸ÞÀ̼ǵǴ °ÍÀ» º¼ ¼ö ÀÖ´Ù.

vite´Â È¿À²ÀûÀÎ ÀÛ¾÷ ºÐ´ãÀ» À§ÇØ ¼Ò½º ÆÄÀÏÀ» ³ª´©°í Àç¹èÆ÷ÀÇ
ÆíÀǸ¦ À§ÇØ º¹ÀâÇÑ ÇÁ·ÎÁ§Æ® ±¸Á¶¸¦ ¸¸µé¾î ³õ¾Ò´Ù. ÀÌ ±¸Á¶¸¦ ÀÛ ÀÍÇô µÎ¸é ¾ðÁ¦ ¾îµð¸¦ ¼öÁ¤ÇØ¾ß ÇÒÁö
½Å¼ÓÇÏ°Ô ÆÄ¾ÇÇÒ ¼ö ÀÖ´Ù.
App ÇÔ¼ö´Â JSX ±¸¹®À»
ÇØ¼®ÇÏ¿© °¡»ó DOMÀ» »ý¼ºÇÑ´Ù. ÀÌ ¹®¼´Â ¸Þ¸ð¸®»ó¿¡¼
¸¸µç °ÍÀÌ¾î¼ ¾ÆÁ÷ ȸ鿡 º¸ÀÌÁö ¾Ê´Â´Ù. °¡»ó DOMÀ»
ȸ鿡 ÀÖ´Â ½ÇÁ¦ ³ëµå¿¡ ºÙ¿© ±×¸®´Â °ÍÀ» ·£´õ¸µÀ̶ó°í ÇÑ´Ù.
½ÇÁ¦ DOM ³ëµå¸¦ ã¾Æ ºÙÀÓÀ¸·Î½á ȸ鿡 ³ªÅ¸³ª´Âµ¥ ÀÌ µ¿ÀÛÀº main.tsx¿¡¼ ó¸®ÇÑ´Ù. ¸ÕÀú ´ÙÀ½ ¸Þ¼µå¸¦ È£ÃâÇÏ¿© ºÙÀÏ ÁöÁ¡ÀÎ root¸¦ ã´Â´Ù. ù¹øÂ° Àμö domNode·Î DOM»óÀÇ ³ëµå¸¦ ÁöÁ¤ÇÏ¸ç µÎ¹øÂ° Àμö´Â »ý·« °¡´ÉÇÏ´Ù.
createRoot(domNode, options?)
Äڵ忡¼´Â document.getElementById('root')!¸¦
È£ÃâÇÏ¿© id°¡ rootÀΠű׸¦ ã´Â´Ù. µÚ¿¡ ºÙÀº ! ±âÈ£´Â ŸÀÔ½ºÅ©¸³Æ®ÀÇ ¿¬»êÀÚÀ̸ç nullÀÌ ¾Æ´ÔÀ» º¸ÀåÇÑ´Ù´Â ¶æÀÏ »Ó º° Àǹ̴ ¾ø´Ù. <div> ¿¤¸®¸ÕÆ®´Â index.html¿¡ ¹Ì¸® ¹èÄ¡ÇØ ³õ¾Ò´Ù. ÀÌ Å±׸¦ ·çÆ®·Î »ý¼ºÇϰí
°¡»ó DOMÀ» ºÎÂøÇÒ ¶§´Â ´ÙÀ½ ¸Þ¼µå¸¦ È£ÃâÇÑ´Ù.
render(reactNode)
¸®¾×Æ®·Î ¸¸µç ³ëµå¸¦ Àμö·Î Àü´ÞÇϴµ¥ º¸ÅëÀº JSX¸¦ ¸®ÅÏÇÏ´Â ÇÔ¼öÀÌ´Ù. ÀÌ ¿¹Á¦¿¡¼´Â App ÇÔ¼ö ÄÄÆ÷³ÍÆ®°¡ ±× ¿ªÇÒÀ» Çϸç <App />·Î ÁöÁ¤ÇÑ´Ù. ¸®¾×Æ®´Â ÄÄÆ÷³ÍÆ®µµ ű×ó·³
»ç¿ëÇϹǷΠÅÂ±×¿Í °°Àº ¹®¹ýÀ¸·Î Ç¥±âÇÑ´Ù.
<App /> Ç¥±â¹®Àº
App ÇÔ¼ö¸¦ È£ÃâÇÏ¿© °¡»ó DOMÀ» »ý¼ºÇϰí
render´Â ÀÌ °¡»ó DOMÀ» root ¾Æ·¡¿¡
·£´õ¸µÇÑ´Ù. Áï, DOMÀÇ ½ÇÁ¦ ³ëµå¿¡ JSX·Î Á¤ÀÇÇÑ °¡»ó DOMÀ» Ãß°¡ÇÏ¿© ȸ鿡 º¸À̵µ·Ï ÇÏ´Â °ÍÀÌ´Ù.

JSX ±¸¹®À¸·Î »ý¼ºÇÑ °¡»óµ¼Àº ½ÇÇàÁß¿¡ ÇÔ¼ö°¡ »ý¼ºÇϹǷΠ¾ó¸¶µçÁö
º¹ÀâÇÑ ±¸Á¶¸¦ ¸¸µé ¼ö ÀÖ°í º¯¼öµµ ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×¸®°í
HTML ¹®¼»óÀÇ ºÎÂøÁöÁ¡À» ã¾Æ ±× ¾Æ·¡¿¡ ºÙÀÓÀ¸·Î½á ºê¶ó¿ìÀú¿¡ º¸¿©Á٠ȸéÀ» ¿Ï¼ºÇß´Ù.
·£´õ¸µ ÄÚµå´Â µü µÎ ÁÙÀ̶ó ÀÌÇØÇÏ±â ¾î·ÆÁö ¾Ê´Ù. ±×·¡¼ main.tsx´Â À¢¸¸Çؼ´Â ¼öÁ¤ÇÒ ÀÏÀÌ ¾øÀ¸¸ç vite°¡ ÀÛ¼ºÇØÁØ´ë·Î
»ç¿ë¸¸ ÇÏ¸é µÈ´Ù. °í±Þ ±â¹ýÀ» ±¸»çÇÒ ¶§ ¿Ü¿¡´Â ÀÌ Äڵ带 ÆíÁýÇÒ ÀÏÀº °ÅÀÇ ¾ø´Ù.
firstvite ÇÁ·ÎÁ§Æ®´Â ±¸Á¶°¡ ´Ü¼øÇØ ÀÌÇØÇÏ±â ¾î·ÆÁö ¾ÊÀ¸¸ç
»ó¼¼È÷´Â ¹°¶óµµ ´ëÃæ ¾î¶»°Ô µ¹¾Æ°¡´ÂÁö °¨À» ÀâÀ» ¼ö ÀÖ´Ù. ±×·±µ¥ Àß »ý°¢ÇØ º¸¸é Á» ÀÌ»óÇÑ Á¡ÀÌ
ÀÖ´Ù. main.tsx¿¡¼ index.css¸¦ ÀÓÆ÷Æ®Çϰí App.tsx¿¡¼ App.css¸¦ ÀÓÆ÷Æ®Çϴµ¥ ÀÌ ¹æ½ÄÀÌ Á¤»óÀûÀÎ
±¸Á¶´Â ¾Æ´Ï´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ® Ç¥ÁØ¿¡ ½ºÅ¸ÀÏ½ÃÆ®¸¦ ´Ù·ç´Â ±â´ÉÀº ¾øÀ¸¸ç È®Àå ¾ð¾îÀΠŸÀÔ½ºÅ©¸³Æ®µµ ¸¶Âù°¡ÁöÀÌ´Ù. ½ºÅ¸ÀÏÀº HTML ÆÄÀÏ¿¡¼ ÂüÁ¶ÇÏ´Â °ÍÀÌÁö Äڵ忡¼ ó¸®ÇÏ´Â°Ô ¾Æ´Ï¾î¼
½ºÅ©¸³Æ®°¡ css¸¦ Àд °ÍÀº »ç½Ç ¸»ÀÌ ¾ÈµÈ´Ù. ÀÌ°Ô °¡´ÉÇÑ
ÀÌÀ¯´Â Áß°£¿¡¼ ¹øµé·¯°¡ °¡´ÉÇÏ°Ô ÇØ Áֱ⠶§¹®ÀÌ´Ù.
À¥ ÆäÀÌÁö Çϳª´Â ¿©·¯ Á¾·ùÀÇ ÆÄÀÏÀÌ ¸ð¿©¼ ±¸¼ºµÈ´Ù. HTML·Î
³»¿ëÀ» Ç¥ÇöÇϰí CSS·Î µðÀÚÀÎÀ» ÀÔÈ÷°í ½ºÅ©¸³Æ®(*.js,
*.tsx) ÆÄÀÏ·Î µ¿ÀÛÀ» ±â¼úÇÑ´Ù. ÀÌ ¿Ü¿¡µµ À̹ÌÁö ÆÄÀϰú ÆùÆ®, µ¥ÀÌÅÍ ÆÄÀÏ µîÀÌ ÇÊ¿äÇÏ´Ù. ±¸¼º ÆÄÀÏÀÌ ¸¹´Ù º¸´Ï °³¹ßÀ» ¿Ï·áÇÑ
ÈÄ ¹èÆ÷ÇÏ´Â °Íµµ ½±Áö ¾Ê´Ù.
Çϳª¶óµµ ºüÁö¸é Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. °Ô´Ù°¡ ½ºÅ©¸³Æ®³¢¸®´Â Á¾¼Ó
°ü°è°¡ ÀÖ¾î Æ÷ÇÔ ¼ø¼¿¡µµ ½Å°æ½á¾ß ÇÑ´Ù. ÀÌ·± º¹ÀâÇÑ ÀÛ¾÷À» ¹øµé·¯(Bundler)°¡
´ë½Å ó¸®ÇÑ´Ù. vite´Â RollupÀ̶ó´Â Ãֽйøµé·¯¸¦
»ç¿ëÇÏ¸ç ´ÙÀ½ µ¿ÀÛÀ» ¼öÇàÇÑ´Ù.
¢º ºÒÇÊ¿äÇÑ ÄÚµå´Â Á¦°ÅÇÑ´Ù. »ç¿ëµÇÁö
¾ÊÀº ÄÚµå´Â ¹èÆ÷ÇÏÁö ¾Ê´Â´Ù.
¢º ±ä º¯¼ö À̸§À» ÁÙÀÌ°í ºÒÇÊ¿äÇÑ °ø¹éÀ» Á¦°ÅÇÏ¿© Å©±â¸¦ ´õ ÁÙÀδÙ.
¢º ¾ÛÀÇ Äڵ带 ÀÛÀº ûũ(Chunk)·Î
ºÐÇÒÇÏ¿© ²À ÇÊ¿äÇÑ Ã»Å©¸¸ ·ÎµåÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
¢º Ãֽй®¹ýÀ» »ç¿ëÇÑ Äڵ带 ±¸Çü ºê¶ó¿ìÀú¿¡¼ ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
¢º CSS ½ºÅ¸ÀÏÀ» ½ºÅ©¸³Æ®°¡
ÀÌÇØÇÒ ¼ö ÀÖ´Â ÇüÅ·Π¹Ù²ãÁØ´Ù.
¢º ÄÚµå º¯°æ½Ã Áï½Ã Àç¹èÆ÷ÇÏ¿© °á°ú¸¦ ½Ç½Ã°£À¸·Î È®ÀÎÇÒ ¼ö ÀÖ´Ù.
º¸´Ù½ÃÇÇ »ý°¢º¸´Ù ¸¹Àº 󸮸¦ ÇØ ÁØ´Ù. ´öºÐ¿¡ ¸Å¹ø Å×½ºÆ®ÇÒ ¶§¸¶´Ù
¼¹ö·Î ÆÄÀÏÀ» ¿Ã¸®°í Àç±âµ¿ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ¼Ò½º¸¦ ¼öÁ¤Çϰí ÀúÀ常 Çϸé Áï½Ã °á°ú¸¦ º¼ ¼ö ÀÖ´Ù. ¿¹Àü¿¡´Â ´Ù ¼öÀÛ¾÷À¸·Î Çß´ø ¹èÆ÷, Å×½ºÆ® °úÁ¤À» ÀÚµ¿ÈÇß´Ù.
°³¹ßȯ°æ¿¡¼´Â ¹øµé·¯¸¦ »ç¿ëÇÏÁö ¾Ê°í ºê¶ó¿ìÀúÀÇ ESM ±â´ÉÀ» Ȱ¿ëÇÏ¿©
¿äûÇÑ ¸ðµâ¸¸ º¯È¯ÇÏ´Â ½ÄÀ¸·Î ´õ ÃÖÀûȵǾî ÀÖ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â ¿ø·¡ ¸ðµâ ±â´ÉÀÌ ¾ø¾î »ç¼ÒÇÑ º¯°æ¿¡µµ
¸ðµç Äڵ带 ´Ù½Ã ¹¾î ¹èÆ÷ÇØ¾ß Çß´Ù.
ES6ºÎÅÍ ESM(ECMAScript
Modules) ¸ðµâ ½Ã½ºÅÛÀ» µµÀÔÇÏ¿© Äڵ带 Á¶°¢ Á¶°¢ ³ª´ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ºê¶ó¿ìÀú´Â
º¯°æÀÌ ¹ß»ýÇÑ ¸ðµâ¸¸ ±³Ã¼ÇÏ´Â ½ÄÀ¸·Î ºü¸£°Ô ¾÷µ¥ÀÌÆ®¸¦ ¼öÇàÇÑ´Ù. vite´Â ºê¶ó¿ìÀú°¡ ¿äûÇÑ °Í¸¸
»õ·Î º¯È¯ÇÏ´Â ½ÄÀ¸·Î ¸ðµâ ±³Ã¼ ¼Óµµ¸¦ ³ô¿´´Ù. ¼Óµµ°¡ ºü¸¥ Á¤µµ°¡ ¾Æ´Ï¶ó °ÅÀÇ ½Ç½Ã°£ÀÌ´Ù.
ÀÌ ¿Ü¿¡µµ ¹øµé·¯´Â WebPack, Parcel µîÀÇ ¿©·¯ °¡Áö Á¦Ç°ÀÌ
¹ßÇ¥µÇ¾î ÀÖÀ¸¸ç °¢°¢ Àå´ÜÁ¡ÀÌ ÀÖ´Ù. ¹øµé·¯ÀÇ ¼¼ºÎÀûÀÎ µ¿ÀÛ±îÁö ´Ù ÀÌÇØÇÏÁö ¸øÇÏ´õ¶óµµ Áß°£¿¡ ÀÌ·±
ÀåÄ¡°¡ µ¿ÀÛÇϰí ÀÖ´Ù´Â °ÍÀº ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ·± ¹øµé·¯°¡ ±â°¡ ¸·È÷°Ô Àß µ¿ÀÛÇϵµ·Ï ÇÁ·ÎÁ§Æ®¸¦
±¸¼ºÇØ ÁÖ´Â°Ô ¹Ù·Î viteÀÌ´Ù.