°øÀ¯Çϱâ
¸®¾×Æ® ÀßÇÏ´Â °³¹ßÀÚ µÇ±â
±¸¸ÅÈıâ 0°³ (0)
¤ýµµ¼­Á¤º¸ ÀúÀÚ : ¼º³«Çö
ÃâÆÇ»ç : °ñµç·¡ºø(ÁÖ)
2025³â 11¿ù 07ÀÏ Ãâ°£  |  ISBN : 119438353X  |  492ÂÊ  |  ±Ô°Ýèâ
¤ý±³º¸È¸¿ø ±³º¸¹®°í ID ¿¬°áÇϱâ
µµ¼­¸¦ ±¸ÀÔÇÏ½Ã¸é ±³º¸¹®°í¿Í ²É¸¶ÀÇ È¸¿øÇýÅÃÀ» ÇÔ²²
¹ÞÀ¸½Ç ¼ö ÀÖ½À´Ï´Ù.
¤ý²É¸¶°¡ 34,000¿ø 30,600¿ø 10%
¤ýÃß°¡ÇýÅÃ
²É 3¼ÛÀÌ
¤ý¹è¼ÛÁö¿ª ±¹³»
¤ý¹è¼Ûºñ
Á¶°ÇºÎ¹«·á¹è¼Û
  • ÀÌ °¡°ÔÀÇ ¹«·á¹è¼Û »óǰÀ» ÇÔ²² ÁÖ¹®Çϰųª, ÃÑÁÖ¹®±Ý¾×ÀÌ 15,000¿ø ÀÌ»óÀÌ¸é ¹«·á¹è¼Û.
  • 15,000¿ø ¹Ì¸¸ÀÌ¸é ¹è¼Ûºñ 2,500¿ø °í°´ºÎ´ã
  • µµ¼­»ê°£/Á¦ÁÖµµ´Â Ãß°¡¿îÀÓºñ ºÎ°úµÉ ¼ö ÀÖÀ½
1ÀÏ À̳» Ãâ°í
¤ý¼ö·®
ÃÑ ÇÕ°è±Ý¾×  ¿ø
Âò
¼±¹°
Àå¹Ù±¸´Ï ´ã±â
¹Ù·Î ±¸¸ÅÇϱâ

Àå¹Ù±¸´Ï¿¡ ´ã¾Ò½À´Ï´Ù. Àå¹Ù±¸´Ï¸¦ È®ÀÎ ÇϽðڽÀ´Ï±î?

¼îÇΰè¼ÓÇϱâ
Àå¹Ù±¸´Ïº¸±â
¤ýÀÌ °¡°ÔÀÇ ´Ù¸¥ »óǰ ¸ðµç»óǰº¸±â+
²ÞÀ» ÇÇ¿ì´Â ¼¼»ó, ÀÎÅÍ³Ý ±³º¸¹®°íÀÔ´Ï´Ù.
²ÞÀ» ÇÇ¿ì´Â ¼¼»ó, ÀÎÅÍ³Ý ±³º¸¹®°íÀÔ´Ï´Ù.
°¡°ÔÁÖÀÎ : ±³º¸¹®°í
ÀüÈ­ ¹× ÅùèÁ¤º¸
ÀüÈ­ ¹× ÅùèÁ¤º¸
»óǰ ¾È³» ¹× ȯºÒ, ±³È¯, ¹è¼Û¹®ÀÇ
- °¡°Ô ÀüÈ­¹øÈ£ : 1544-1900
- ÀüÈ­¹®ÀÇ ½Ã°£ : ¿ÀÀü 9½ÃºÎÅÍ ¿ÀÈÄ 6½Ã±îÁö
(¸ÅÁÖ ¿ù¿äÀÏ, È­¿äÀÏ, ¼ö¿äÀÏ, ¸ñ¿äÀÏ, ±Ý¿äÀÏ, °øÈÞÀÏ Á¦¿Ü)
- °¡°Ô À̸ÞÀÏ : ink@kyobobook.co.kr
- ÀÌ¿ë Åùèȸ»ç : CJ´ëÇÑÅë¿î
ÆÇ¸Å°¡°ÔÁ¤º¸
- »ç¾÷ÀÚ¸í : (ÁÖ)±³º¸¹®°í
- »ç¾÷ÀÚµî·Ï¹øÈ£ : 102-81-11670
- Åë½ÅÆÇ¸Å¾÷½Å°í : 01-0653
- Çö±Ý¿µ¼öÁõ : ¹ß±Þ°¡´É
ÀüÈ­ÁÖ¹® ¹× °áÁ¦¹®ÀÇ
- ²ÉÇÇ´Â ¾ÆÄ§¸¶À» : 1644-8422
°¡°Ô¿Í Á÷°Å·¡¸¦ ÇÏ½Ã¸é ²É¼ÛÀÌ Àû¸³ ¹× °¢Á¾ ÇýÅÿ¡¼­
Á¦¿ÜµÇ°í, ¸¸ÀÏÀÇ ¹®Á¦°¡ ¹ß»ýÇÏ´Â °æ¿ì¿¡µµ ²É¸¶ÀÇ
µµ¿òÀ» ¹ÞÀ¸½Ç ¼ö ¾ø½À´Ï´Ù. °¡°ÔÀÇ ºÎ´çÇÑ ¿ä±¸,
ºÒ°øÁ¤ ÇàÀ§ µî¿¡ ´ëÇØ¼­µµ ²É¸¶·Î Á÷Á¢ ÀüÈ­ÁÖ¼¼¿ä.
 À̾߱â²É¹ç
µî·ÏµÈ À̾߱Ⱑ ¾ø½À´Ï´Ù.
»ó¼¼Á¤º¸ ±¸¸ÅÈıâ (0) »óǰQ&A (0) ¹è¼Û/±³È¯/ȯºÒ ¾È³»

Ã¥¼Ò°³

¡Ú ¸®¾×Æ® ÇÁ·ÐÆ®¿£µå °³¹ß, ÀßÇÏ°í ½ÍÀ¸¼¼¿ä? ¡Ú 40¿© ¿¹Á¦ ÄÚµå¿Í ½Ç¹«Çü °Ô½ÃÆÇ, ½ºÄھµå, īī¿ÀÅå ÇÁ·ÎÁ§Æ®±îÁö ¡Ú ÃֽŠƮ·»µå ±â¼ú·Î ¸®¾×Æ®¸¦ ´çÀå ¾µ¸ð ÀÖ°Ô ÀÍÈ÷¼¼¿ä! ȯ¿µÇÕ´Ï´Ù. ¸®¾×Æ®¸¦ ÀßÇÏ°í ½ÍÀºµ¥ ¾î¶»°Ô ÇÒÁö ¸ð¸£°Ú´Â ºÐÀ̶ó¸é, Àß Ã£¾Æ¿À¼Ì½À´Ï´Ù. ÀÌ Ã¥Àº ¸®¾×Æ® ÇнÀ Àü¿¡ ÇÊ¿äÇÑ À¥ÀÇ ±âº» ¿ø¸®ºÎÅÍ ÃֽЏ®¾×Æ® ÈűîÁö ü°èÀûÀ¸·Î ¾È³»ÇÏ¿© źźÇÑ ±âÃÊ Áö½ÄÀ» Á¦°øÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹öÀÇ µ¿ÀÛ ¹æ½Ä, HTML/CSS/JSÀÇ ¿ªÇÒ, ºê¶ó¿ìÀú ·»´õ¸µ °úÁ¤, SPA, CSR, SSR, SSG¿Í °°Àº ÇÙ½É °³³ä µîÀ» ¸ÕÀú ÇнÀÇÏ¿©, ¿ø¸® Áß½ÉÀÇ Æ°Æ°ÇÑ ±â¹ÝÀ» ´ÙÁú ¼ö ÀÖ°Ô ÇÕ´Ï´Ù. 40¿© ¿¹Á¦¸¦ ¹ÙÅÁÀ¸·Î ¸®¾×Æ® ÀÔ¹®ÀÚ°¡ À̷аú ½Ç½ÀÀ» °âÇÏ¿© ½Ç·Â ÀÖ´Â ÇÁ·ÐÆ®¿£µå °³¹ßÀÚ·Î ¼ºÀåÇϵµ·Ï µ½½À´Ï´Ù. ¸®¾×Æ®ÀÇ ÇÙ½É °³³äÀÎ ÄÄÆ÷³ÍÆ®, ÇÁ·Ó½º, ½ºÅ×ÀÌÆ®ºÎÅÍ ¼º´É ÃÖÀûÈ­ ÈŰú ¸®´ö½º ŸŶ, ÁÖ½ºÅĵå¿Í °°Àº Àü¿ª »óÅ °ü¸®±îÁö ü°èÀûÀ¸·Î ´Ù·ì´Ï´Ù. ¶ÇÇÑ ½Ç¹«Çü °Ô½ÃÆÇ, ½ºÄھµå, īī¿ÀÅå ¾ÛÀ» Á÷Á¢ ¸¸µé°í ÆÄÀ̾À̽º ¿¬µ¿ ¹× ±êÇãºê ¹èÆ÷±îÁö °æÇèÇÏ¸ç ¿Ï¼ºµµ ³ôÀº À¥ ¼­ºñ½º ±¸Çö ¿ª·®À» ±â¸¦ ¼ö ÀÖ½À´Ï´Ù. [³»ÄÚºÎ] ä³Î·Î ¿À¼¼¿ä. °ñµç·¡ºøÀº ÇÔ²² ¸ð¿©¼­ ÇÔ²² °øºÎÇϰí, Åä·ÐÇϰí, ³×Æ®¿öÅ©¸¦ ½×À¸¸ç ¿Ïµ¶ÇÏ¸é ´õ źźÇÏ°Ô ¼ºÀåÇÒ ¼ö ÀÖ´Ù°í ¹Ï½À´Ï´Ù. °³¹ßÀÚ ¼ºÀå ÇÁ·ÎÁ§Æ®, ¡´³»ÄÚºÎ, ³»Äڵ带 ºÎÅ¹ÇØ¡µ µð½ºÄÚµå/Ä«Åå ä³Î·Î ¿À¼¼¿ä. - Ä«Å广 : open.kakao.com/o/ggK7EAJh - µð½ºÄÚµå : discord.com/invite/BYRpaDrfbH [µÇ±â] ½Ã¸®Á ¼Ò°³ÇÕ´Ï´Ù. [µÇ±â] ½Ã¸®Áî´Â ƯÁ¤ ¿µ¿ªÀÇ ÀÏ¿øÀ¸·Î¼­ ¾Ë¾Æ¾ß ÇÏ´Â Áö½ÄÀ» ³Ð°Ô ¾Ë·ÁÁÝ´Ï´Ù. ·Îµå¸ÊÀ» Á¦½ÃÇÏ°í ½Ç¹«¿¡ À¯¿ëÇÑ ±â¼ú¸¸ ¼±º°ÇÏ¿© ¾Ë·Áµå¸³´Ï´Ù.

»ó¼¼À̹ÌÁö

¸ñÂ÷

00Àå ÇÁ·ÐÆ®¿£µå °³¹ßÀÚ°¡ ¾Ë¾ÆµÎ¸é ÁÁÀº Áö½Ä _0.1 À¥ÀÇ µ¿ÀÛ ¿ø¸® __0.1.1 Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö __0.1.2 ¿äû°ú ÀÀ´äÀÇ È帧 __0.1.3 »óÅ ÄÚµå·Î °á°ú È®ÀÎ _0.2 HTML, CSS, ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ±âº» ¿ªÇÒ __0.2.1 HTML : ÄÜÅÙÃ÷ÀÇ ±¸Á¶ ´ã´ç __0.2.2 CSS : ÄÜÅÙÃ÷ÀÇ ½ºÅ¸ÀÏ ´ã´ç __0.2.3 ÀÚ¹Ù½ºÅ©¸³Æ® : À¥ÆäÀÌÁöÀÇ µ¿ÀÛ ´ã´ç _0.3 À¥ Ç¥Áذú Á¢±Ù¼º __0.3.1 À¥ Ç¥ÁØÀ̶õ? __0.3.2 À¥ Á¢±Ù¼ºÀ̶õ? _0.4 ºê¶ó¿ìÀú ·»´õ¸µ°ú ¼º´É ÃÖÀûÈ­ __0.4.1 ºê¶ó¿ìÀú ·»´õ¸µ °úÁ¤ ÀÌÇØÇϱâ __0.4.2 ¸®ÇÃ·Î¿Í ¸®ÆäÀÎÆ®ÀÇ Â÷ÀÌ __0.4.3 ¼º´É¿¡ ¿µÇâÀ» ÁÖ´Â ¿ä¼Òµé _0.5 °³¹ß ȯ°æ°ú ¿öÅ©Ç÷Π__0.5.1 Çʼö °³¹ß µµ±¸ __0.5.2 ÃÖ°íÀÇ Ç°ÁúÀ» À§ÇÑ ÀÚµ¿È­ ½Ã½ºÅÛ __0.5.3 ºôµå µµ±¸¿Í Æ®·£½ºÆÄÀϸµ, ¹øµé¸µ _0.6 Çö´ë ÇÁ·ÐÆ®¿£µå Æ®·»µå¿Í °¨°¢ __0.6.1 ¹ÝÀÀÇü µðÀÚÀÎ __0.6.2 UI/UX ¼³°è ¿øÄ¢ __0.6.3 ÃֽŠÇÁ·ÐÆ®¿£µå Ű¿öµå _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ [LEVEL 1] óÀ½ ¸¸³ª´Â ¸®¾×Æ® 01Àå ¸®¾×Æ® °³¹ß ȯ°æ ÁغñÇϱâ _1.1 À©µµ¿ì¿¡ ¸®¾×Æ® ¼³Á¤Çϱâ __1.1.1 Node.js ¼³Ä¡Çϱâ __1.1.2 VSCode ¼³Ä¡Çϱâ _1.2 ¸ÆOS¿¡ ¸®¾×Æ® ¼³Á¤Çϱâ __1.2.1 Node.js ¼³Ä¡Çϱâ __1.2.2 VSCode ¼³Ä¡Çϰí ÇÁ·ÎÁ§Æ® Æú´õ ¼³Á¤Çϱâ _1.3 VSCode ȯ°æ ¼³Á¤Çϱâ __1.3.1 VSCode¿¡¼­ ÀÛ¾÷ °ø°£ ¼³Á¤Çϱâ __1.3.2 È®Àå ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ __1.3.3 ±âº» Å͹̳Πº¯°æÇϱâ : À©µµ¿ì __1.3.4 ÄÚµå ÀÔ·Â ½Ã ÅÇ Å©±â 4¿¡¼­ 2·Î º¯°æÇϱâ __1.3.5 ÀÚµ¿ ÀúÀå Äѱâ 02Àå ¸®¾×Æ® ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ _2.1 ºñÆ®·Î ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ _2.2 ÇÁ·ÎÁ§Æ® Á¤¸®Çϱâ _2.3 ¸®¾×Æ® °³¹ßÀ» À§ÇÑ Å©·Ò È®Àå ÇÁ·Î±×·¥ ¼³Ä¡ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ [LEVEL 2] ¸®¾×Æ®ÀÇ ±âÃÊ ¹è¿ì±â 03Àå ¸®¾×Æ® ÄÄÆ÷³ÍÆ® _3.1 ¸®¾×Æ® ÄÄÆ÷³ÍÆ® ¾Ë¾Æº¸±â _3.2 ÄÄÆ÷³ÍÆ® ±¸Á¶ »ìÆìº¸±â _3.3 JSX¶õ ¹«¾ùÀΰ¡¿ä? _3.4 ÄÄÆ÷³ÍÆ®´Â ¾î¶»°Ô Ç¥½ÃÇØ¾ß ÇÒ±î? _3.5 ÇÁ·ÎÁ§Æ® »ý¼º ¹× HTML·Î ±âÃÊ È­¸é ±¸¼ºÇϱâ _3.6 ¸®¾×Æ® ÄÄÆ÷³ÍÆ®·Î ±³Ã¼Çϱâ _3.7 ÄÄÆ÷³ÍÆ® ÀÛ¼ºÇغ¸±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 04Àå ÇÁ·Ó½º _4.1 ÇÁ·Ó½º ¾Ë¾Æº¸±â _4.2 ÇÁ·Ó½º »ç¿ëÇØº¸±â __4.2.1 ¹Ýº¹µÇ´Â ¿ä¼Ò¿¡ Áߺ¹µÇÁö ¾Ê´Â key prop Ãß°¡Çϱâ _4.3 ÇÁ·Ó½º ¿©·¯ °³ »ç¿ëÇØº¸±â __4.3.1 ±¸Á¶ ºÐÇØ ÇÒ´çÀ¸·Î ÇÁ·Ó½º ¿©·¯ °³ »ç¿ëÇØº¸±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 05Àå ¸®¾×Æ® À̺¥Æ® ó¸® _5.1 ¸®¾×Æ® À̺¥Æ® ó¸® ¾Ë¾Æº¸±â _5.2 À̺¥Æ® Çڵ鷯 onClick¿¡ ÇÔ¼ö Àü´ÞÇϱâ _5.3 FrontComp, BackComp¿¡¼­ ¹«¾ùÀÌ ´Þ¶úÀ»±î? __5.3.1 ű×ÀÇ À̺¥Æ® ó¸® ½Ã ±âº» µ¿ÀÛÀ» Â÷´ÜÇÏ´Â preventDefault( ) ÇÔ¼ö _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 06Àå ÄÄÆ÷³ÍÆ® ¸ðµâÈ­ _6.1 ÄÄÆ÷³ÍÆ® ¸ðµâÈ­ÀÇ Çʿ伺 _6.2 export default·Î ÄÄÆ÷³ÍÆ® ³»º¸³»±â _6.3 import·Î ÄÄÆ÷³ÍÆ® °¡Á®¿À±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 07Àå »óÅ _7.1 »óÅ ¾Ë¾Æº¸±â _7.2 »óÅ »ç¿ëÇØº¸±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 08Àå ½ºÅ¸Àϰú À̹ÌÁö _8.1 ¸®¾×Æ®¿¡¼­ ½ºÅ¸ÀÏÀ» Àû¿ëÇÏ´Â ¹æ¹ý _8.2 À̹ÌÁö¸¦ »ðÀÔÇÏ´Â ¹æ¹ý _8.3 CSS ÆÄÀÏ ÀÛ¼ºÇϱâ _8.4 CSS¿Í À̹ÌÁö Àû¿ëÇϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 09Àå Æû°ª Àü¼Û _9.1 Æû°ª Àü¼ÛÇϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 10Àå ¾èÀº ºñ±³ _10.1 ¾èÀº ºñ±³¿Í ±íÀº ºñ±³ ¾Ë¾Æº¸±â _10.2 ¾èÀº ºñ±³ ½Ç½ÀÇϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 11Àå ¶ó¿ìÅÍ _11.1 ¶ó¿ìÅÍ ¾Ë¾Æº¸±â _11.2 ÇÁ·ÎÁ§Æ® »ý¼º ¹× React Router DOM ¼³Ä¡Çϱâ _11.3 ¶ó¿ìÆÃ ó¸®Çغ¸±â _11.4 Outlet ÄÄÆ÷³ÍÆ® ¾Ë¾Æº¸±â _11.5 Outlet ÄÄÆ÷³ÍÆ®·Î °øÅë ·¹À̾ƿôÀ¸·Î »ç¿ëÇÒ ÄÄÆ÷³ÍÆ® ¸¸µé±â _11.6 ¶ó¿ìÅÍ ÈÅ ¾Ë¾Æº¸±â _11.7 ¶ó¿ìÅÍ ÈÅ »ç¿ëÇØº¸±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 12Àå »ý¸íÁÖ±â _12.1 »ý¸íÁֱ⠾˾ƺ¸±â _12.2 Ŭ·¡½ºÇü ÄÄÆ÷³ÍÆ®¿¡¼­ÀÇ »ý¸íÁÖ±â _12.3 ÇÔ¼öÇü ÄÄÆ÷³ÍÆ®¿Í useEffect ÈÅ _12.4 ·ÎÄà JSON ÆÄÀϰú Åë½ÅÇϱâ _12.5 ¿ÜºÎ API Åë½ÅÇϱâ __12.5.1 randomuser.me »ìÆìº¸±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ [LEVEL 3] ¸®¾×Æ® ÈÅ 13Àå ¼º´É ÃÖÀûÈ­¸¦ À§ÇÑ ÈÅ _13.1 ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ _13.2 useRef ÈÅ ¾Ë¾Æº¸±â _13.3 useMemo ÈÅ ¾Ë¾Æº¸±â _13.4 useCallback ÈÅ ¾Ë¾Æº¸±â _13.5 useId ÈÅ ¾Ë¾Æº¸±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 14Àå Àü¿ª »óÅ °ü¸®¸¦ À§ÇÑ ÈÅ _14.1 ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ _14.2 useReducer ÈÅ ¾Ë¾Æº¸±â _14.3 useContext ÈÅ ¾Ë¾Æº¸±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 15Àå °í±Þ ±â´ÉÀ» À§ÇÑ È®Àå ÈÅ _15.1 ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ _15.2 useOptimistic ÈÅ ¾Ë¾Æº¸±â _15.3 useActionState ÈÅ ¾Ë¾Æº¸±â _15.4 useFormStatus ÈÅ ¾Ë¾Æº¸±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ [LEVEL 4] ¸®¾×Æ® ¿¡ÄڽýºÅÛ 16Àå ¸®´ö½º ŸŶ _16.1 ¸®´ö½º ŸŶ ¾Ë¾Æº¸±â _16.2 ¸®´ö½º ŸŶÀÇ ¾ÆÅ°ÅØÃ³ _16.3 ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ _16.4 ¸®´ö½º ŸŶÀÇ ±âº» »ç¿ë¹ý ÀÍÈ÷±â _16.5 °£´ÜÇÑ ÇÒ ÀÏ °ü¸® ¾Û ¸¸µé±â _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 17Àå ÁÖ½ºÅĵå _17.1 ÁÖ½ºÅÄµå ¾Ë¾Æº¸±â _17.2 ÁÖ½ºÅÄµå ±âº» »ç¿ë¹ý ÀÍÈ÷±â _17.3 °£´ÜÇÑ Ãâ°á °ü¸® ¾Û ¸¸µé±â __17.3.1 logger ¹Ìµé¿þ¾î _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 18Àå ÆÄÀ̾À̽º _18.1 ÆÄÀ̾À̽º ¾Ë¾Æº¸±â _18.2 ÆÄÀ̾À̽º ½ÃÀÛÇϱâ _18.3 ÆÄÀ̾Åä¾î µ¥ÀÌÅͺ£À̽º »ç¿ëÇØº¸±â __18.3.1 ÆÄÀ̾Åä¾î µ¥ÀÌÅͺ£À̽º ¸¸µé±â __18.3.2 ÇÁ·ÎÁ§Æ® »ý¼º ¹× ±âº» ¼³Á¤ __18.3.3 ¿¬°á ¹× ÀÔ·Â Å×½ºÆ® __18.3.4 ȸ¿ø Á¤º¸ °ü¸® °Ô½ÃÆÇ _18.4 ¸®¾óŸÀÓ µ¥ÀÌÅͺ£À̽º »ç¿ëÇØº¸±â __18.4.1 ¸®¾óŸÀÓ µ¥ÀÌÅͺ£À̽º ¸¸µé±â __18.4.2 ÇÁ·ÎÁ§Æ® »ý¼º ¹× ±âº» ¼³Á¤Çϱâ __18.4.3 CRUD ±â´É Á¦ÀÛÇϱâ __18.4.4 ¸®½º³Ê Á¦ÀÛÇϱâ __18.4.5 ½Ç½Ã°£ äÆÃ ¸¸µé±â _18.5 ½ºÅ丮Áö »ç¿ëÇØº¸±â __18.5.1 ½ºÅ丮Áö ¸¸µé±â __18.5.2 ÇÁ·ÎÁ§Æ® »ý¼º ¹× ±âº» ¼³Á¤Çϱâ __18.5.3 ÆÄÀÏ ¾÷·Îµå ±â´É ±¸ÇöÇϱâ __18.5.4 ÆÄÀÏ ¸ñ·Ï ¹× »èÁ¦ ±â´É ±¸ÇöÇϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ [LEVEL 5] ¸®¾×Æ® ÇÁ·ÎÁ§Æ® 19Àå °Ô½ÃÆÇ Á¦ÀÛ 1(°´Ã¼Çü ¹è¿­ »ç¿ë) _19.1 ÇÁ·ÎÁ§Æ® »ý¼º ÈÄ °Ô½ÃÆÇ ±âº» È­¸é ¸¸µé±â __19.1.1 °Ô½ÃÆÇ ±âº» È­¸é HTML·Î ¸¸µé±â __19.1.2 °Ô½ÃÆÇ ±âº» È­¸é ÄÄÆ÷³ÍÆ®·Î Á¦ÀÛÇϱâ __19.1.3 Á¦ÀÛÇÑ ÄÄÆ÷³ÍÆ® App ÄÄÆ÷³ÍÆ®¿¡ ¹Ý¿µÇϱâ _19.2 °Ô½Ã±Û ¸ñ·Ï Ç¥ÇöÇϱâ __19.2.1 App ÄÄÆ÷³ÍÆ® ¼öÁ¤Çϱâ __19.2.2 ArticleList ÄÄÆ÷³ÍÆ® ¼öÁ¤Çϱâ _19.3 È­¸é ÀüȯÇϱâ __19.3.1 App ÄÄÆ÷³ÍÆ® ±¸Á¶ »ìÆìº¸°í ¼öÁ¤Çϱâ __19.3.2 NavList, NavView ÄÄÆ÷³ÍÆ® ¼öÁ¤Çϱâ _19.4 ÀÛ¼º ±â´É Ãß°¡Çϱâ _19.5 ¿­¶÷ ±â´É Ãß°¡Çϱâ _19.6 »èÁ¦ ±â´É Ãß°¡Çϱâ _19.7 ¼öÁ¤ ±â´É Ãß°¡Çϱâ __19.7.1 ¼öÁ¤ 1´Ü°è : ¼öÁ¤ Æû¿¡ ³»¿ë ºÒ·¯¿À±â __19.7.2 ¼öÁ¤ 2´Ü°è : ¼öÁ¤ ó¸®Çϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 20Àå °Ô½ÃÆÇ Á¦ÀÛ 2(REST API »ç¿ë) _20.1 ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ __20.1.1 ¾ÖÇø®ÄÉÀ̼ÇÀÇ °ñ°Ý ¸¸µé±â _20.2 API Key ¹ß±ÞÇϱâ _20.3 ¸ñ·Ï ±â´É ±¸ÇöÇϱâ _20.4 ÀÛ¼º ±â´É ±¸ÇöÇϱâ _20.5 ¿­¶÷ ±â´É ±¸ÇöÇϱâ _20.6 ¼öÁ¤ ±â´É ±¸ÇöÇϱâ _20.7 »èÁ¦ ±â´É ±¸ÇöÇϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 21Àå ¸ð´Þâ ÀÌ¿ëÇÑ ´ñ±Û ±¸ÇöÇϱâ with ·ÎÄýºÅ丮Áö _21.1 ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ _21.2 ±âº» UI ÀÛ¼º ¹× ±â´É ±¸ÇöÇϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 22Àå ½ºÄھµå ¸¸µé±â with ÁÖ½ºÅĵå _22.1 ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ _22.2 ±âº» UI »ý¼º ¹× ±â´É ±¸ÇöÇϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 23Àå īī¿ÀÅå ¸¸µé±â with ÆÄÀ̾À̽º _23.1 ÇÁ·ÎÁ§Æ® »ý¼º _23.2 ±âº» UI ÀÛ¼º ¹× ±â´É ±¸ÇöÇϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ 24Àå ±êÇãºê ÆäÀÌÁö·Î ¹èÆ÷Çϱâ _24.1 ¸®¾×Æ® ¾ÖÇø®ÄÉÀÌ¼Ç ¹èÆ÷º» ¸¸µé±â _24.2 À¥ ¼­¹ö·Î ¹èÆ÷ ½Ã ¶ó¿ìÆÃ ¿À·ù ÇØ°áÇϱâ _24.3 ±êÇãºê ÆäÀÌÁö·Î ¹èÆ÷Çϱâ _ÇнÀ ¸¶¹«¸® _¿¬½À¹®Á¦ ¡Ø PDF º°Ã¥ º¸³Ê½º ºÎ·Ï ¡¶¸®¾×Æ®¸¦ À§ÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÙ½É ¹®¹ý ÀÍÈ÷±â¡· Á¦°ø

Ã¥¼ÓÀ¸·Î

[PART 1] óÀ½ ¸¸³ª´Â ¸®¾×Æ®

01. hello-react-project : Vite(ºñÆ®)¸¦ »ç¿ëÇÏ¿© ¸®¾×Æ® ÇÁ·ÎÁ§Æ®¸¦ óÀ½ »ý¼ºÇÏ°í ½ÇÇàÇØº¸´Â ±âº» ¿¹Á¦·Î, ¼ýÀÚ Ä«¿îÅÍ ±â´ÉÀÌ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù(2Àå).

[PART 2] ¸®¾×Æ®ÀÇ ±âÃÊ ¹è¿ì±â

02. react01-basic(HTML·Î ±âÃÊ È­¸é ±¸¼º) : ¸®¾×Æ®¸¦ »ç¿ëÇϱâ Àü, ¼ø¼ö HTML¸¸À¸·Î °Ô½ÃÆÇÀÇ ±âº» UI(ÇÁ·ÐÆ®¿£µå/¹é¿£µå ±â¼ú ¸ñ·Ï ¹× ÀÔ·Â Æû)¸¦ ±¸¼ºÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(3Àå).

03. react01-basic(¸®¾×Æ® ÄÄÆ÷³ÍÆ®·Î ±³Ã¼) : HTML·Î ¸¸µç °Ô½ÃÆÇ UI¸¦ ¸®¾×Æ®ÀÇ ±âº» ´ÜÀ§ÀÎ ÄÄÆ÷³ÍÆ®(App.jsx)·Î º¯È¯ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ´Â ¿¹Á¦ÀÔ´Ï´Ù(3Àå).

04. react01-basic(ÄÄÆ÷³ÍÆ® ÀÛ¼º ¹× Àç»ç¿ë) : °Ô½ÃÆÇ UI¸¦ FrontComp, BackComp, FormComp µî ¿©·¯ °³ÀÇ ÀÛÀº ÄÄÆ÷³ÍÆ®·Î ºÐ¸®Çϰí, À̸¦ Á¶ÇÕÇÏ¿© Àç»ç¿ëÇÏ´Â ¹æ¹ýÀ» ÇнÀÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(3Àå).

05. react01-basic(ÇÁ·Ó½º¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅÍ Àü´Þ) : ºÎ¸ð ÄÄÆ÷³ÍÆ®(App)¿¡¼­ ÀÚ½Ä ÄÄÆ÷³ÍÆ®(FrontComp, BackComp)·Î ¹è¿­ µ¥ÀÌÅ͸¦ ÇÁ·Ó½º·Î Àü´ÞÇÏ¿© µ¿ÀûÀ¸·Î ¸ñ·ÏÀ» »ý¼ºÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(4Àå).

06. react01-basic(À̺¥Æ® ó¸®) : ÄÄÆ÷³ÍÆ® ³»ÀÇ ¸µÅ©(¡´a¡µ ű×) Ŭ¸¯ ½Ã onClick À̺¥Æ®¸¦ ó¸®Çϰí, ÀÚ½Ä ÄÄÆ÷³ÍÆ®¿¡¼­ ºÎ¸ð ÄÄÆ÷³ÍÆ®·Î µ¥ÀÌÅ͸¦ Àü´ÞÇÏ´Â ¹æ¹ýÀ» ´Ù·ç´Â ¿¹Á¦ÀÔ´Ï´Ù(5Àå).

07. react01-basic(½ºÅ×ÀÌÆ®(state)¸¦ ÀÌ¿ëÇÑ È­¸é Àüȯ) : useState ÈÅÀ» »ç¿ëÇÏ¿© mode »óŸ¦ ¸¸µé°í, ÀÌ »óŰª¿¡ µû¶ó 'ÇÁ·ÐÆ®¿£µå', '¹é¿£µå', ¶Ç´Â 'Àüü' ÄÄÆ÷³ÍÆ®¸¦ Á¶°ÇºÎ·Î ·»´õ¸µÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(7Àå).

08. react01-basic(½ºÅ¸Àϰú À̹ÌÁö Àû¿ë) : ÀζóÀÎ ½ºÅ¸ÀÏ, CSS ÆÄÀÏ(className), ´Ù¾çÇÑ À̹ÌÁö »ðÀÔ ¹æ½Ä(import, public Æú´õ, URL)À» »ç¿ëÇÏ¿© ÄÄÆ÷³ÍÆ®¸¦ ²Ù¹Ì´Â ¹æ¹ýÀ» ÇнÀÇÕ´Ï´Ù(8Àå).

09. react01-basic(Æû°ª Àü¼Û ¹× ó¸®) : onSubmit À̺¥Æ® ¸®½º³Ê¸¦ ÅëÇØ Æû µ¥ÀÌÅ͸¦ ¹Þ¾Æ ºÎ¸ð ÄÄÆ÷³ÍÆ®·Î Àü´ÞÇϰí, ÀԷ°ª À¯È¿¼ºÀ» °ËÁõÇÏ¿© »óŸ¦ ¾÷µ¥ÀÌÆ®ÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(9Àå).

10. react01-basic(¾èÀº ºñ±³ ½Ç½À) : °´Ã¼ »óŸ¦ Á÷Á¢ ¼öÁ¤ÇÒ ¶§¿Í º¹»çº»À» ¸¸µé¾î ¼öÁ¤ÇÒ ¶§ÀÇ Â÷À̸¦ ºñ±³Çϸç, ¸®¾×Æ®ÀÇ ¾èÀº ºñ±³ ¿ø¸®¿Í ¸®·»´õ¸µ ÃÖÀûÈ­ ¹æ¹ýÀ» ÇнÀÇÕ´Ï´Ù(10Àå).

[PART 3] ¸®¾×Æ® ÈÅ(Hooks)

11. react02-router(¶ó¿ìÆÃ ±âº» ¿¹Á¦) : react-router-domÀ» ¼³Ä¡Çϰí Routes, Route¸¦ ÀÌ¿ëÇØ Home, À߸øµÈ URL(NotFound) µî ±âº»ÀûÀÎ ÆäÀÌÁö ¶ó¿ìÆÃÀ» ¼³Á¤ÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(11Àå).

12. react02-router(OutletÀ» ÀÌ¿ëÇÑ Áßø ¶ó¿ìÆÃ) : °øÅë ·¹À̾ƿô(CommonLayout) ¾È¿¡ OutletÀ» ¹èÄ¡ÇÏ¿©, ÇÏÀ§ °æ·Î¿¡ µû¶ó ´Ù¸¥ ÀÚ½Ä ÄÄÆ÷³ÍÆ®(LayoutIndex)°¡ ·»´õ¸µµÇµµ·Ï ±¸¼ºÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(11Àå).

13. react02-router(¶ó¿ìÅÍ ÈÅ »ç¿ë) : useLocation ÈÅÀ¸·Î ÇöÀç URL Á¤º¸¸¦, useSearchParams ÈÅÀ¸·Î Äõ¸®½ºÆ®¸µ(?mode=list&pageNum=1)À» ÀÐ°í ¼öÁ¤ÇÏ´Â ¹æ¹ýÀ» ´Ù·ç´Â ¿¹Á¦ÀÔ´Ï´Ù(11Àå).

14. react03-lifecycle(useEffect »ý¸íÁֱ⠰ü¸®) : useEffect ÈÅÀÇ ÀÇÁ¸¼º ¹è¿­À» º¯°æÇذ¡¸ç ÄÄÆ÷³ÍÆ®ÀÇ ¸¶¿îÆ®, ¾÷µ¥ÀÌÆ®, ¾ð¸¶¿îÆ® ½ÃÁ¡¿¡ Äڵ带 ½ÇÇàÇÏ´Â ¹æ¹ýÀ» ÇнÀÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(12Àå).

15. react03-lifecycle(·ÎÄà JSON ÆÄÀÏ Åë½Å) : fetch ÇÔ¼ö¿Í useEffect¸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ® ³»ºÎ¿¡ ÀÖ´Â ·ÎÄà JSON ÆÄÀÏÀÇ µ¥ÀÌÅ͸¦ ºñµ¿±âÀûÀ¸·Î ºÒ·¯¿Í È­¸é¿¡ ¸ñ·Ï°ú »ó¼¼ ³»¿ëÀ» Ç¥½ÃÇÕ´Ï´Ù(12Àå).

16. react03-lifecycle(¿ÜºÎ API Åë½Å) : ¿ÜºÎ API(randomuser.me)¿¡ µ¥ÀÌÅ͸¦ ¿äûÇÏ¿© ¹«ÀÛÀ§ »ç¿ëÀÚ ¸ñ·ÏÀ» ¹Þ¾Æ¿À°í, Ŭ¸¯ ½Ã »ó¼¼ Á¤º¸¸¦ °æ°íâÀ¸·Î º¸¿©ÁÖ´Â ¿¹Á¦ÀÔ´Ï´Ù(12Àå).

17. react04-hook-optimization(useRef·Î °ª ÀúÀå ¹× DOM Á¢±Ù) : useRef¸¦ »ç¿ëÇÏ¿© ¸®·»´õ¸µ°ú ¹«°üÇÏ°Ô °ªÀ» À¯ÁöÇÏ´Â ¹æ¹ý°ú ƯÁ¤ DOM ¿ä¼Ò(input)¿¡ Á÷Á¢ Á¢±ÙÇÏ¿© Æ÷Ä¿½º¸¦ Á¦¾îÇÏ´Â ¹æ¹ýÀ» ÇнÀÇÕ´Ï´Ù(13Àå).

18. react04-hook-optimization(useMemo·Î ¿¬»ê ÃÖÀûÈ­) : °è»ê ºñ¿ëÀÌ Å« ÇÔ¼ö(¼Ò¼ö ÆÇº°)ÀÇ °á°ú¸¦ useMemo·Î ¸Þ¸ðÀÌÁ¦À̼ÇÇÏ¿© ºÒÇÊ¿äÇÑ À翬»êÀ» ¹æÁöÇÏ°í ¼º´ÉÀ» °³¼±ÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(13Àå).

19. react04-hook-optimization(useCallbackÀ¸·Î ÇÔ¼ö ÃÖÀûÈ­) : ÀÚ½Ä ÄÄÆ÷³ÍÆ®¿¡ Àü´ÞÇÏ´Â ÇÔ¼ö¸¦ useCallbackÀ¸·Î ¸Þ¸ðÀÌÁ¦À̼ÇÇÏ¿© ºÒÇÊ¿äÇÑ ÇÔ¼ö Àç»ý¼º°ú ÀÚ½Ä ÄÄÆ÷³ÍÆ®ÀÇ ¸®·»´õ¸µÀ» ¹æÁöÇÕ´Ï´Ù(13Àå).

20. react04-hook-optimization(useId·Î °íÀ¯ ID »ý¼º) : useId ÈÅÀ» »ç¿ëÇÏ¿© Æû ¿ä¼Ò(¡´label¡µ, ¡´input¡µ)¿¡ Á¢±Ù¼ºÀ» À§ÇÑ °íÀ¯Çϰí ÀϰüµÈ ID¸¦ ÀÚµ¿À¸·Î »ý¼ºÇÏ´Â ¹æ¹ýÀ» ´Ù·ì´Ï´Ù(13Àå).

21. react05-hook-global-state(useReducer·Î »óÅ °ü¸®) : useState ´ë½Å useReducer¸¦ »ç¿ëÇÏ¿© ÀÔÃâ±Ý ·ÎÁ÷°ú °°ÀÌ º¹ÀâÇÑ »óÅ º¯°æ ±ÔÄ¢À» ÄÄÆ÷³ÍÆ® ¿ÜºÎ¿¡¼­ °ü¸®ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù(14Àå).

22. react05-hook-global-state(useContext·Î Àü¿ª »óÅ °øÀ¯) : useContext¸¦ »ç¿ëÇÏ¿© ´ÙÅ©/¶óÀÌÆ® ¸ðµå Å׸¶ »óŸ¦ ¿©·¯ ÇÏÀ§ ÄÄÆ÷³ÍÆ®¿¡¼­ ÇÁ·Ó½º(props) Àü´Þ ¾øÀÌ Á÷Á¢ °øÀ¯ÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(14Àå).

23. react06-hook-enhanced(useOptimisticÀ¸·Î ³«°üÀû ¾÷µ¥ÀÌÆ®) : ¸Þ½ÃÁö Àü¼Û ½Ã ¼­¹ö ÀÀ´äÀ» ±â´Ù¸®Áö ¾Ê°í useOptimisticÀ» ÅëÇØ UI¿¡ Áï½Ã ¹Ý¿µÇÏ¿© »ç¿ëÀÚ °æÇèÀ» Çâ»ó½ÃŰ´Â ¿¹Á¦ÀÔ´Ï´Ù(15Àå).

24. react06-hook-enhanced(useActionState·Î Æû »óÅ °ü¸®) : useActionState¸¦ »ç¿ëÇÏ¿© Æû Á¦Ãâ(·Î±×ÀÎ)ÀÇ ºñµ¿±â ó¸® °á°ú(¼º°ø/½ÇÆÐ)¸¦ »óÅ·Π°ü¸®Çϰí UI¿¡ Çǵå¹éÀ» Á¦°øÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(15Àå).

25. react06-hook-enhanced(useFormStatus·Î Æû Á¦Ãâ »óÅ ÃßÀû) : useFormStatus¸¦ »ç¿ëÇÏ¿© Æû Á¦Ãâ ÁßÀÏ ¶§ ¹öưÀ» ºñȰ¼ºÈ­Çϰųª ·Îµù ÅØ½ºÆ®¸¦ Ç¥½ÃÇÏ´Â µî UI¸¦ µ¿ÀûÀ¸·Î Á¦¾îÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(15Àå).

[PART 4] ¸®¾×Æ® ¿¡ÄڽýºÅÛ

26. react07-redux-toolkit(¸®´ö½º ŸŶ ±âº» »ç¿ë¹ý) : ¸®´ö½º ŸŶÀÇ createSlice, configureStore¸¦ »ç¿ëÇÏ¿© Àü¿ª »óÅ·Π¼ýÀÚ Ä«¿îÅ͸¦ ¸¸µé°í, useSelector, useDispatch·Î »óŸ¦ Á¦¾îÇÕ´Ï´Ù(16Àå).

27. react07-redux-toolkit(ÇÒ ÀÏ °ü¸® ¾Û) : ¸®´ö½º ŸŶÀ» ÀÌ¿ëÇØ ÇÒ ÀÏ(Todo) ¸ñ·ÏÀ» Ãß°¡, ¿Ï·á, »èÁ¦ÇÏ´Â ±â´ÉÀ» ±¸ÇöÇÏ¸ç ½Ç¿ëÀûÀÎ Àü¿ª »óÅ °ü¸® ¹æ¹ýÀ» ÇнÀÇÕ´Ï´Ù(16Àå).

28. react08-zustand(ÁÖ½ºÅÄµå ±âº» »ç¿ë¹ý) : ÁÖ½ºÅĵå(Zustand)¸¦ »ç¿ëÇÏ¿© ÃÖ¼ÒÇÑÀÇ ¼³Á¤À¸·Î ¼ýÀÚ Ä«¿îÅÍ Àü¿ª »óŸ¦ ¸¸µé°í ÄÄÆ÷³ÍÆ®¿¡¼­ »ç¿ëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù(17Àå).

29. react08-zustand(Ãâ°á °ü¸® ¾Û) : ÁÖ½ºÅĵ带 Ȱ¿ëÇØ Çлý ¸ñ·ÏÀ» °ü¸®(Ãß°¡, »èÁ¦, Ãâ¼® Åä±Û)Çϰí, ¹Ìµé¿þ¾î(persist, devtools, logger)¸¦ Àû¿ëÇÏ´Â ¹æ¹ýÀ» ´Ù·ì´Ï´Ù(17Àå).

30. react09-firestore(ÆÄÀ̾À̽º Firestore CRUD °Ô½ÃÆÇ) : ÆÄÀ̾À̽ºÀÇ Firestore µ¥ÀÌÅͺ£À̽º¿Í ¿¬µ¿ÇÏ¿© ȸ¿ø Á¤º¸¸¦ ÀÔ·Â(Create), Á¶È¸(Read), ¼öÁ¤(Update), »èÁ¦(Delete)ÇÏ´Â °Ô½ÃÆÇ ¿¹Á¦ÀÔ´Ï´Ù(18Àå).

31. react10-realtime(ÆÄÀ̾À̽º Realtime Database CRUD) : ÆÄÀ̾À̽ºÀÇ ½Ç½Ã°£ µ¥ÀÌÅͺ£À̽º¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ ½Ç½Ã°£À¸·Î ÀÔ·Â, Á¶È¸, ¼öÁ¤, »èÁ¦ÇÏ´Â ±âº»ÀûÀÎ CRUD ±â´ÉÀ» ±¸ÇöÇÕ´Ï´Ù(18Àå).

32. react10-realtime(Realtime Database ¸®½º³Ê) : onValue ¸®½º³Ê ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ½Ç½Ã°£ µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅÍ º¯°æÀ» ½Ç½Ã°£À¸·Î °¨ÁöÇϰí È­¸é¿¡ ÀÚµ¿À¸·Î ¹Ý¿µÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù(18Àå).

33. react10-realtime(½Ç½Ã°£ äÆÃ ¾Û) : ½Ç½Ã°£ µ¥ÀÌÅͺ£À̽ºÀÇ ½Ç½Ã°£ µ¿±âÈ­ ±â´ÉÀ» Ȱ¿ëÇÏ¿© ¿©·¯ »ç¿ëÀÚ°¡ µ¿½Ã¿¡ ´ëÈ­ÇÒ ¼ö ÀÖ´Â ±âº»ÀûÀΠäÆÃ ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇÕ´Ï´Ù(18Àå).

34. react11-storage(ÆÄÀ̾À̽º ½ºÅ丮Áö ÆÄÀÏ ¾÷·Îµå/¸ñ·Ï) : ÆÄÀ̾À̽º ½ºÅ丮Áö¸¦ »ç¿ëÇÏ¿© À̹ÌÁö ÆÄÀÏÀ» ƯÁ¤ Æú´õ¿¡ ¾÷·ÎµåÇϰí, ÀúÀåµÈ ÆÄÀÏ ¸ñ·ÏÀ» Á¶È¸ ¹× »èÁ¦ÇÏ´Â ±â´ÉÀ» ±¸ÇöÇÕ´Ï´Ù(18Àå).

[PART 5] ¸®¾×Æ® ÇÁ·ÎÁ§Æ®

35. project01-board-array(°´Ã¼ ¹è¿­À» ÀÌ¿ëÇÑ °Ô½ÃÆÇ) : ¿ÜºÎ ¼­¹ö ¾øÀÌ ¼ø¼ö ¸®¾×Æ® useState¿Í °´Ã¼ ¹è¿­¸¸À¸·Î °Ô½ÃÆÇÀÇ CRUD(»ý¼º, Àбâ, ¼öÁ¤, »èÁ¦) ±â´ÉÀ» ¸ðµÎ ±¸ÇöÇÏ´Â Á¾ÇÕ ½Ç½À ¿¹Á¦ÀÔ´Ï´Ù(19Àå).

36. project02-board-api(REST API¸¦ ÀÌ¿ëÇÑ °Ô½ÃÆÇ) : ¿ÜºÎ REST API¿Í fetch ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ½ÇÁ¦ ¼­¹ö¿Í µ¥ÀÌÅ͸¦ ÁÖ°í¹ÞÀ¸¸ç °Ô½ÃÆÇÀÇ CRUD ±â´ÉÀ» ±¸ÇöÇÏ´Â ½Ç¹« Áß½ÉÀÇ ¿¹Á¦ÀÔ´Ï´Ù(20Àå).

37. project03-live-comments(·ÎÄà ½ºÅ丮Áö¸¦ ÀÌ¿ëÇÑ ´ñ±Û ±â´É) : ºÎÆ®½ºÆ®·¦ ¸ð´Þâ UI¿Í ºê¶ó¿ìÀúÀÇ ·ÎÄà ½ºÅ丮Áö¸¦ Ȱ¿ëÇÏ¿© ´ñ±ÛÀ» ÀÛ¼º, ¼öÁ¤, »èÁ¦Çϰí 'ÁÁ¾Æ¿ä' ±â´ÉÀ» ±¸ÇöÇÕ´Ï´Ù(21Àå).

38. project04-scoreboard(ÁÖ½ºÅĵ带 ÀÌ¿ëÇÑ ½ºÄھµå) : Àü¿ª »óÅ °ü¸® ¶óÀ̺귯¸® ÁÖ½ºÅĵ带 »ç¿ëÇÏ¿© ¿©·¯ ÄÄÆ÷³ÍÆ®¿¡ °ÉÃÄ Ç÷¹À̾î Á¡¼ö¿Í Á¤º¸¸¦ °ü¸®ÇÏ´Â ½ºÄھµå¸¦ Á¦ÀÛÇÕ´Ï´Ù(22Àå).

39. project05-kakaotalk(ÆÄÀ̾À̽º¸¦ ÀÌ¿ëÇÑ Ä«Ä«¿ÀÅå) : ÆÄÀ̾À̽ºÀÇ ½Ç½Ã°£ µ¥ÀÌÅͺ£À̽º¿Í ½ºÅ丮Áö¸¦ ¿¬µ¿ÇÏ¿© ÇÁ·ÎÇÊ »çÁø ¾÷·Îµå ±â´ÉÀÌ Æ÷ÇÔµÈ ½Ç½Ã°£ äÆÃ ¾ÖÇø®ÄÉÀ̼ÇÀ» Á¦ÀÛÇÕ´Ï´Ù(23Àå).

40. project05-kakaotalk(±êÇãºê ÆäÀÌÁö·Î ¹èÆ÷Çϱâ) : npm run build·Î ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇϰí, ¶ó¿ìÆÃ ¹®Á¦¸¦ ÇØ°á(HashRouter)ÇÏ¿© ¿Ï¼ºµÈ īī¿ÀÅå ¾ÛÀ» ±êÇãºê ÆäÀÌÁö¿¡ ¹èÆ÷ÇÏ´Â °úÁ¤À» ´Ù·ì´Ï´Ù(24Àå).

ÃâÆÇ»ç ¼­Æò

¡Ú dzºÎÇÑ ±×¸²°ú µµÇ¥ + ¿¬½À¹®Á¦ 125¹®Ç× + ÇÙ½É Á¤¸® 117°¡Áö! ¡Ú ü°èÀûÀÎ ·¹º§º° ÇнÀ ÄÚ½º, ½Ç¹«¿¡ ¹Ù·Î Àû¿ë °¡´ÉÇÑ ÇÁ·ÎÁ§Æ® ÁøÇà±îÁö! ¡Ú ÇÁ·ÐÆ®¿£µå ¸¸µé°í ? DB ºÙÀ̰í ? ±êÇãºê·Î ¹èÆ÷ÇÏ´Â Àü°úÁ¤ ¼ö·Ï! ¹ÙÀ̺ê ÄÚµù ½Ã´ë, ¸®¾×Æ®´Â ÇÁ·ÐÆ®¿£µå¶ó´Â ¸¶Áö¸· ¿À¾Æ½Ã½ºÀÔ´Ï´Ù. Á÷Á¢ ¸ðµç °É ÇÏÁö´Â ¾ÊÁö¸¸, AI°¡ »ý¼ºÇÑ Äڵ带 ºÐ¼®Çϰí Äڵ带 ¼öÁ¤ÇÒ ÁÙ ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ±¸Á¶¸¦ ÆÄ¾ÇÇÏ´Â ´É·Âµµ ÇÊ¿äÇÕ´Ï´Ù. ±×·¡¼­ ¸®¾×Æ®¸¦ Á¦´ë·Î ¹è¿ö¾ß ÇÕ´Ï´Ù. ¸ð´ø ÇÁ·ÐÆ®¿£µå´Â ¸®¾×Æ®°¡ ÇʼöÀÔ´Ï´Ù. ±×·¸´Ù¸é ¸®¾×Æ® ¾î¶»°Ô Á¦´ë·Î ¹è¿ï ¼ö ÀÖÀ»±î¿ä? ¡®ÀÌ·Ð + ¿¹Á¦ + ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¡¯¶ó´Â »ï¹ÚÀÚ°¡ ¸Â¾Æ¾ß ÇÕ´Ï´Ù. ÀÌ Ã¥Àº ´ÙÀ½°ú °°ÀÌ ¼¼ °¡Áö ÇÙ½ÉÀûÀΠƯ¡À¸·Î ¿©·¯ºÐÀÌ ¸®¾×Æ® ÇÁ·ÐÆ®¿£µå °³¹ßÀÚ·Î ¼ºÀåÇϵµ·Ï µ½½À´Ï´Ù. _ù°, À¥ °³¹ßÀÇ ±âÃʺÎÅÍ ÃֽŠƮ·»µå±îÁö ÇÑ ¹ø¿¡ Àâ´Â źźÇÑ ÀÌ·Ð ÀÌ Ã¥Àº ¸®¾×Æ® ¹®¹ý¸¸ ´Ù·ç´Â °ÍÀ» ³Ñ¾î, À¥ÀÇ ±âº» µ¿ÀÛ ¿ø¸®(Ŭ¶óÀ̾ðÆ®/¼­¹ö, HTTP)ºÎÅÍ ÃֽŠÇÁ·ÐÆ®¿£µå Æ®·»µå(SPA, CSR/SSR/SSG µî)±îÁö Æø³Ð°Ô ¼³¸íÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ¹è°æÁö½ÄÀº ½Ç¹«¿¡¼­ ¹®Á¦ÀÇ ¿øÀÎÀ» ´õ »¡¸® ã°í ÇØ°áÇÏ´Â ´É·ÂÀ» ±æ·¯ÁÖ¸ç, º¹ÀâÇÑ °³³äÀ» ½¬¿î ºñÀ¯·Î ¼³¸íÇÏ¿© ½Ç¹« °¨°¢À» Ű¿ì´Â µ¥ µµ¿òÀ» ÁÝ´Ï´Ù. °á°úÀûÀ¸·Î, À¥ °³¹ßÀÇ ÀüüÀûÀÎ È帧 ¼Ó¿¡¼­ ¸®¾×Æ®¸¦ ÀÌÇØÇÏ¸ç ¿ø¸® Áß½ÉÀÇ Æ°Æ°ÇÑ ±â¹ÝÀ» ´ÙÁú ¼ö ÀÖ½À´Ï´Ù. _µÑ°, ÄÄÆ÷³ÍÆ®ÀÇ °³³ä°ú Àç»ç¿ë¼ºÀ» ü°¨ÇÏ¸ç ¹è¿ì´Â ½Ç½À Á᫐ ÇнÀ ´Ü¼øÈ÷ Äڵ带 µû¶ó Ä¡´Â °ÍÀ» ³Ñ¾î, ¸ÕÀú HTML·Î È­¸éÀ» ±¸¼ºÇÑ µÚ À̸¦ ¸®¾×Æ® ÄÄÆ÷³ÍÆ®·Î ÀüȯÇÏ´Â °úÁ¤À» ÅëÇØ ÄÄÆ÷³ÍÆ®ÀÇ ÀåÁ¡°ú Àç»ç¿ë¼ºÀ» Á÷Á¢ ü°¨Çϵµ·Ï ¾È³»ÇÕ´Ï´Ù. °¢ À帶´Ù ¹è¿î ÇÙ½É °³³äÀ» °Ô½ÃÆÇ, ½ºÄھµå, äÆÃ ¾Û µî ½Ç¿ëÀûÀÎ ¹Ì´Ï ÇÁ·ÎÁ§Æ®¿¡ ¹Ù·Î Àû¿ëÇϸç Áö½ÄÀ» ÀÀ¿ëÇÏ´Â ´É·ÂÀ» ±â¸¦ ¼ö ÀÖ½À´Ï´Ù. ÀÌó·³ ½Ç½À Áß½ÉÀÇ Ã¼°èÀûÀÎ ÇнÀ ·Îµå¸ÊÀº ¸®¾×Æ®ÀÇ ÇÙ½ÉÀÎ ÄÄÆ÷³ÍÆ® ±â¹Ý »ç°í¹æ½ÄÀ» ÀÚ¿¬½º·´°Ô ÀÍÈ÷µµ·Ï µ½½À´Ï´Ù. _¼Â°, ¸®´ö½º, ÁÖ½ºÅĵå, ÆÄÀ̾À̽º µî ½Ç¹« ¿¡ÄڽýºÅÛ±îÁö È®Àå ¸®¾×Æ® ÀÚü¿¡¸¸ ¸Ó¹«¸£Áö ¾Ê°í, ½Ç¹«¿¡¼­ ÇʼöÀûÀ¸·Î »ç¿ëµÇ´Â Àü¿ª »óÅ °ü¸® ¶óÀ̺귯¸®ÀÎ ¸®´ö½º ŸŶ(Redux Toolkit)°ú ÁÖ½ºÅĵå(Zustand)¸¦ ½Éµµ ÀÖ°Ô ´Ù·ì´Ï´Ù. ¶ÇÇÑ, º°µµÀÇ ¹é¿£µå ¼­¹ö ¾øÀ̵µ »ç¿ëÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅͺ£À̽º(Firestore, Realtime Database)¿Í ½ºÅ丮Áö ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Â ÆÄÀ̾À̽º(Firebase) ¿¬µ¿ ¹æ¹ýÀ» ÇнÀÇÕ´Ï´Ù. À̸¦ ÅëÇØ ´Ü¼øÇÑ UI °³¹ßÀ» ³Ñ¾î, ½ÇÁ¦ ¼­ºñ½º¿¡ °¡±î¿î ¿Ï¼ºµµ ³ôÀº ¾ÖÇø®ÄÉÀ̼ÇÀ» Á÷Á¢ ±¸ÃàÇÏ¸ç ¸®¾×Æ® »ýŰè Àü¹Ý¿¡ ´ëÇÑ ÀÌÇØ¸¦ ³ÐÈú ¼ö ÀÖ½À´Ï´Ù. ¡Ú ¸®¾×Æ® ÀÔ¹®ÀÚ¸¦ À§ÇÑ À¥ ¹è°æÁö½Ä ¡Ú ¸®¾×Æ®¸¦ Àß ¾²·Á¸é ²À ¾Ë¾Æ¾ß ÇÏ´Â 40°¡Áö ½Ç½À ¡Ú ¸®¾×Æ® °³¹ßÀ» ÇÙ½É ±â¼ú 4´ëÀåÀ¸·Î È®½ÇÇÏ°Ô ¾Ë·Áµå·Á¿ä ÀÌ Ã¥Àº ÀÌ·¯ÇÑ ¼ºÀåÀ» À§ÇØ À¥ÀÇ ±âÃʺÎÅÍ ¸®¾×Æ® ÇٽɱîÁö ü°èÀûÀÎ ÀÌ·ÐÀ» Á¦½ÃÇϰí, °Ô½ÃÆÇ, ½ºÄھµå, īī¿ÀÅå À¯»ç ½Ç½Ã°£ äÆÃ ¾Û µî ´Ùä·Î¿î ½ÇÀü ÇÁ·ÎÁ§Æ®¸¦ Æ÷ÇÔÇÑ ÃÑ 40°³ ÀÌ»óÀÇ Ç³ºÎÇÑ ½Ç½À ¿¹Á¦¸¦ ÅëÇØ ±íÀÌ ÀÖ´Â ÇнÀ °æÇèÀ» Á¦°øÇÕ´Ï´Ù. ¶ÇÇÑ ´ÙÀ½°ú °°Àº 4°¡Áö ÁÖ¿ä ±â¼úÀ» ÅëÇØ À̷аú ½Ç½ÀÀ» °âºñÇÏ¸ç ½Ç·Â ÀÖ´Â ¸®¾×Æ® °³¹ßÀÚ·Î ¼ºÀåÇÒ ¼ö ÀÖµµ·Ï µ½½À´Ï´Ù. _[1´ëÀå] ¸®¾×Æ® ÄÄÆ÷³ÍÆ® ¹× ÈÅ À¥ UI¸¦ È¿À²ÀûÀ¸·Î ±¸ÃàÇÏ´Â ¶óÀ̺귯¸®ÀÎ ¸®¾×Æ®¿Í Àç»ç¿ë °¡´ÉÇÑ ÄÄÆ÷³ÍÆ®¸¦ ¹è¿ó´Ï´Ù. useState, useEffect µî ´Ù¾çÇÑ ÈÅÀ» Ȱ¿ëÇÏ¿© »óÅ °ü¸®, »ý¸íÁÖ±â Á¦¾î, ¼º´É ÃÖÀûÈ­ µî Çö´ë ¸®¾×Æ® °³¹ßÀÇ ÇÙ½É ¿ª·®À» Ű¿ï ¼ö ÀÖ½À´Ï´Ù. _[2´ëÀå] ¶ó¿ìÆÃ (Routing) react-router-dom ¶óÀ̺귯¸®¸¦ Ȱ¿ëÇÏ¿© SPASingle Page Application¿¡¼­ ¿©·¯ ÆäÀÌÁö¸¦ °¡Áø °Íó·³ °æ·Î¸¦ °ü¸®Çϰí È­¸éÀ» ÀüȯÇÏ´Â ¹æ¹ýÀ» ¹è¿ó´Ï´Ù. À̸¦ ÅëÇØ URL °ü¸®, ºê¶ó¿ìÀú ÀÌ·Â ±â´É µî ½ÇÁ¦ À¥ ¾ÖÇø®ÄÉÀ̼ǿ¡ ÇʼöÀûÀÎ »ç¿ëÀÚ °æÇèÀ» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù. _[3´ëÀå] Àü¿ª »óÅ °ü¸® ¶óÀ̺귯¸® º¹ÀâÇÑ ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ ¿©·¯ ÄÄÆ÷³ÍÆ®°¡ °øÀ¯ÇÏ´Â µ¥ÀÌÅ͸¦ È¿À²ÀûÀ¸·Î °ü¸®Çϱâ À§ÇÑ Çʼö ±â¼úÀÔ´Ï´Ù. ¸®´ö½º ŸŶ(Redux Toolkit)°ú ÁÖ½ºÅĵå(Zustand)¸¦ ÅëÇØ »óŸ¦ Áß¾Ó¿¡¼­ ü°èÀûÀ¸·Î ´Ù·ç´Â ¹æ¹ýÀ» ÀÍÈú ¼ö ÀÖ½À´Ï´Ù. _[4´ëÀå] ÆÄÀ̾À̽º ÆÄÀ̾À̽º´Â ±¸±Û¿¡¼­ Á¦°øÇÏ´Â ¼­¹ö¸®½º ¹é¿£µå ¼­ºñ½º Ç÷§ÆûÀ¸·Î, Á÷Á¢ ¼­¹ö¸¦ ±¸ÃàÇÒ ÇÊ¿ä ¾øÀÌ µ¥ÀÌÅͺ£À̽º, ½Ç½Ã°£ Åë½Å, ÆÄÀÏ ½ºÅ丮Áö µî °­·ÂÇÑ ¹é¿£µå ±â´ÉÀ» ¸®¾×Æ® ¾Û¿¡ ¿¬µ¿ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¡Ú µð½ºÄÚµå & Ä«Å广À¸·Î QnA Á¦°øÇÕ´Ï´Ù ¡Ú ½Ç½À¿¡ ÇÊ¿äÇÑ Äڵ带 Á¦°øÇÕ´Ï´Ù ¡Ú º¸³Ê½º PDF ¡´¸®¾×Æ®¸¦ À§ÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÙ½É ¹®¹ý ÀÍÈ÷±â¡µµµ µå¸³´Ï´Ù ¡Ú ½Ç½À ¹× Äڵ忡 ±Ã±ÝÇÑ Á¡ÀÌ ÀÖ´Ù¸é, ±êÇãºê À̽´¶õ¿¡ ÄÚ¸àÆ®¸¦ ³²°Üº¸¼¼¿ä ¸®¾×Æ®¸¦ È®½ÇÈ÷ ÀÍÈú ¼ö ÀÖ°Ô Ã¬°Üµå¸³´Ï´Ù. ÇнÀÀ» ÇÏ´Ù º¸¸é È¥ÀÚ °í¹ÎÇϱ⺸´Ù´Â ´©±º°¡¿Í ÇÔ²² À̾߱⠳ª´©°í ½ÍÀ» ¶§°¡ ÀÖ½À´Ï´Ù. Áøµµ¸¦ ³ª°¡¸ç ¸·È÷´Â ºÎºÐÀ̳ª ´õ ±íÀÌ ÀÖ´Â ³»¿ëÀ» ÇÔ²² ¿¬±¸ÇÏ°í ½Í´Ù¸é, µð½ºÄÚµå & ¿ÀÇ īÅ广 & ±êÇãºê À̽´¶õ¿¡¼­ ÀÚÀ¯·Ó°Ô ÀǰßÀ» ³ª´²º¸¼¼¿ä. ¿©·¯ ¾ð¾î¸¦ Çö¾÷¿¡ ¿À°¡¸ç »ç¿ëÇϸé, °¡²û ¹®¹ýÀÌ Çò°¥¸± ¶§°¡ ÀÖ½À´Ï´Ù. ±×·¡¼­ ¡´¸®¾×Æ®¸¦ À§ÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÙ½É ¹®¹ý ÀÍÈ÷±â¡µ¸¦ ¹«·á PDF·Î Á¦°øÇÕ´Ï´Ù. ¸®¾×Æ®¿¡ ÇÊ¿äÇÑ °ÅÀÇ ¸ðµç °ÍÀ» Áø½ÉÀ¸·Î Á¦°øÇÕ´Ï´Ù. ¿©·¯ºÐÀÇ ·¹º§¾÷À» ÀÀ¿øÇÕ´Ï´Ù! ¡Ú ÀÌ Ã¥À» ÀÐ°í ³ª¸é ¾ò¾îÁö´Â ³î¶ó¿î È¿°ú¸¦ üÇèÇϼ¼¿ä! ÀÌ Ã¥À» ¼º½ÇÇÏ°Ô ÇнÀÇÏ¸é ´ÙÀ½°ú °°ÀÌ 7°¡Áö ÇÙ½É ¿ª·®À» ¾ò°Ô µË´Ï´Ù. _1. À¥ÀÇ ±âº» ¿ø¸® ¹× ÃֽŠÇÁ·ÐÆ®¿£µå ȯ°æ ±¸Ãà ´É·Â : À¥ÀÇ ±âº» ¿ø¸®¸¦ ÀÌÇØÇϰí, Node.js, VSCode, ESLint µî ÃֽŠÇÁ·ÐÆ®¿£µå °³¹ß ȯ°æÀ» ¿Ïº®ÇÏ°Ô ±¸ÃàÇÒ ¼ö ÀÖ½À´Ï´Ù. _2. ¸®¾×Æ® ÇÙ½É ¹®¹ýÀ» ÀÌ¿ëÇÑ µ¿Àû UI ±¸Çö ´É·Â : ÄÄÆ÷³ÍÆ®, JSX ¹®¹ý, ÇÁ·Ó½º, useState ÈÅÀ» Ȱ¿ëÇÏ¿© µ¿ÀûÀ¸·Î º¯È­ÇÏ´Â ¸®¾×Æ® UI¸¦ ±¸¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. _3. ÄÄÆ÷³ÍÆ® °£ »óÈ£ÀÛ¿ë ¹× µ¥ÀÌÅÍ Ã³¸® ´É·Â : ÄÄÆ÷³ÍÆ®¸¦ ¸ðµâÈ­Çϰí, À̺¥Æ® Çڵ鷯 ¹× Æû°ª Àü¼Û ±â´ÉÀ» ±¸ÇöÇÏ¸ç ºÎ¸ð-ÀÚ½Ä °£ À¯¿¬ÇÑ »óÈ£ÀÛ¿ëÀ» ó¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. _4. ºê¶ó¿ìÀú ·»´õ¸µ ÀÌÇØ ¹× ¼º´É ÃÖÀûÈ­ ´É·Â : ºê¶ó¿ìÀú ·»´õ¸µ °úÁ¤À» ÀÌÇØÇϰí, useMemo¿Í useCallbackÀ» »ç¿ëÇØ ºÒÇÊ¿äÇÑ ¿¬»ê°ú ÇÔ¼ö Àç»ý¼ºÀ» ¹æÁöÇÏ¸ç ¼º´ÉÀ» ÃÖÀûÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. _5. ¶ó¿ìÆÃ ¹× °í±Þ »óÅ °ü¸® ±¸Á¶ ¼³°è ´É·Â : react-router-domÀ¸·Î URL ¶ó¿ìÆÃÀ» ±¸ÇöÇϰí, useReducer¿Í useContext¸¦ Ȱ¿ëÇØ º¹ÀâÇÑ »óÅ ·ÎÁ÷ ¹× Àü¿ª »óÅ °øÀ¯ ±¸Á¶¸¦ ¼³°èÇÒ ¼ö ÀÖ½À´Ï´Ù. _6. Àü¹®ÀûÀÎ Àü¿ª »óÅ °ü¸® ¹× °í±Þ UX ±â´É ±¸Çö ´É·Â : ¸®´ö½º ŸŶ ¶Ç´Â ÁÖ½ºÅĵå·Î Àü¹®ÀûÀÎ Àü¿ª »óŸ¦ °ü¸®Çϸç, useOptimistic µî È®Àå ÈÅÀ¸·Î »ç¿ëÀÚ °æÇèÀ» ³ôÀÌ´Â °í±Þ ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. _7. ½ÇÁ¦ ÇÁ·ÎÁ§Æ® Á¦ÀÛ ¹× ¹èÆ÷ ´É·Â (Ç®½ºÅà °æÇè) : °´Ã¼Çü ¹è¿­ °Ô½ÃÆÇ, REST API ¿¬µ¿ °Ô½ÃÆÇ, Firebase¸¦ Ȱ¿ëÇÑ ½Ç½Ã°£ ¾ÛÀ» Á¦ÀÛÇϰí ÃÖÁ¾ÀûÀ¸·Î GitHub Pages¿¡ ¹èÆ÷ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±¸¸ÅÈıâ
ÀÌ »óǰ¿¡ ´ëÇÑ ±¸¸ÅÈıâ´Â ±¸¸ÅÇϽŠºÐ¿¡ ÇÑÇØ 'ÁÖ¹®/¹è¼ÛÁ¶È¸'¿¡¼­ ÀÛ¼ºÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
ÀÛ¼ºµÈ ±¸¸ÅÈıⰡ ¾ø½À´Ï´Ù.
ù ¹øÂ° ÈıâÀÇ ÁÖÀΰøÀÌ µÇ¾îº¸¼¼¿ä!
    »óǰQ&A
    »óǰ¿¡ °üÇØ ±Ã±ÝÇÑ »çÇ×À» ¹°¾îº¸¼¼¿ä!
    ±Û¾²±â
    ±Û¾²±â
    µî·ÏµÈ ¹®Àǰ¡ ¾ø½À´Ï´Ù.
    ±Ã±ÝÇÑ Á¡ÀÌ ÀÖ´Ù¸é ¾ðÁ¦µç ¹°¾îº¸¼¼¿ä!
      ¹è¼Û/±³È¯/ȯºÒ ¾È³»
      ¹è¼Û¾È³»
      - ÁÖ¹®±Ý¾×ÀÌ 15,000¿ø ÀÌ»óÀÎ °æ¿ì ¹«·á¹è¼Û, 15,000 ¹Ì¸¸ÀÎ °æ¿ì ¹è¼Ûºñ 2,500¿øÀÌ ºÎ°úµË´Ï´Ù. (´Ü, ¹«·á¹è¼Û »óǰÀÇ °æ¿ì Á¦¿Ü)
      - ÁÖ¹® ÈÄ ¹è¼ÛÁö¿ª¿¡ µû¶ó ±¹³» ÀϹÝÁö¿ªÀº ±Ù¹«ÀÏ(¿ù-±Ý) ±âÁØ 1Àϳ» Ãâ°íµÊÀ» ¿øÄ¢À¸·Î Çϳª, ±â»ó»óȲ µîÀÇ ÀÌÀ¯·Î Áö¿¬µÉ ¼öµµ ÀÖ½À´Ï´Ù. (´Ü, ÀÏ¿äÀÏ ¹× °øÈÞÀÏ¿¡´Â ¹è¼ÛµÇÁö ¾Ê½À´Ï´Ù.)
      - µµ¼­ »ê°£ Áö¿ª ¹× Á¦ÁÖµµÀÇ °æ¿ì´Â Ç×°ø/µµ¼± Ãß°¡¿îÀÓÀÌ ºÎ°úµÉ ¼ö ÀÖ½À´Ï´Ù.
      - ÇØ¿ÜÁö¿ªÀ¸·Î´Â ¹è¼ÛµÇÁö ¾Ê½À´Ï´Ù.
      ±³È¯/ȯºÒ ¾È³»
      - »óǰÀÇ Æ¯¼º¿¡ µû¸¥ ±¸Ã¼ÀûÀÎ ±³È¯ ¹× ȯºÒ±âÁØÀº °¢ »óǰÀÇ '»ó¼¼Á¤º¸'¸¦ È®ÀÎÇϽñ⠹ٶø´Ï´Ù.
      - ±³È¯ ¹× ȯºÒ½ÅûÀº °¡°Ô ¿¬¶ôó·Î ÀüÈ­ ¶Ç´Â À̸ÞÀÏ·Î ¿¬¶ôÁֽøé ÃÖ¼±À» ´ÙÇØ ½Å¼ÓÈ÷ ó¸®ÇØ µå¸®°Ú½À´Ï´Ù.

      ±³È¯ ¹× ȯºÒ °¡´É »óǰ¿¡
      ¹®Á¦°¡ ÀÖÀ» °æ¿ì
      1) »óǰÀÌ Ç¥½Ã/±¤°íµÈ ³»¿ë°ú ´Ù¸£°Å³ª ºÒ·®(ºÎÆÐ, º¯Áú, ÆÄ¼Õ, Ç¥±â¿À·ù, À̹°È¥ÀÔ, Áß·®¹Ì´Þ)ÀÌ ¹ß»ýÇÑ °æ¿ì
      - ½Å¼±½Äǰ, ³ÃÀå½Äǰ, ³Ãµ¿½Äǰ : ¼ö·ÉÀÏ ´ÙÀ½³¯±îÁö ½Åû
      - ±âŸ »óǰ : ¼ö·ÉÀϷκÎÅÍ 30ÀÏ À̳», ±× »ç½ÇÀ» ¾È ³¯ ¶Ç´Â ¾Ë ¼ö ÀÖ¾ú´ø ³¯·ÎºÎÅÍ 30ÀÏ À̳» ½Åû
      2) ±³È¯ ¹× ȯºÒ½Åû ½Ã ÆÇ¸ÅÀÚ´Â »óǰÀÇ »óŸ¦ È®ÀÎÇÒ ¼ö ÀÖ´Â »çÁøÀ» ¿äûÇÒ ¼ö ÀÖÀ¸¸ç »óǰÀÇ ¹®Á¦ Á¤µµ¿¡ µû¶ó Àç¹è¼Û, ÀϺÎȯºÒ, ÀüüȯºÒÀÌ ÁøÇàµË´Ï´Ù. ¹Ýǰ¿¡ µû¸¥ ºñ¿ëÀº ÆÇ¸ÅÀÚ ºÎ´ãÀ̸ç ȯºÒÀº ¹ÝǰµµÂøÀϷκÎÅÍ ¿µ¾÷ÀÏ ±âÁØ 3ÀÏ À̳»¿¡ ¿Ï·áµË´Ï´Ù.
      ´Ü¼øº¯½É ¹×
      ÁÖ¹®Âø¿ÀÀÇ °æ¿ì
      1) ½Å¼±½Äǰ, ³ÃÀå½Äǰ, ³Ãµ¿½Äǰ
      ÀçÆÇ¸Å°¡ ¾î·Á¿î »óǰÀÇ Æ¯¼º»ó, ±³È¯ ¹× ȯºÒÀÌ ¾î·Æ½À´Ï´Ù.
      2) È­Àåǰ
      ÇǺΠƮ·¯ºí ¹ß»ý ½Ã Àü¹®ÀÇ Áø´Ü¼­ ¹× ¼Ò°ß¼­¸¦ Á¦ÃâÇϽøé ȯºÒ °¡´ÉÇÕ´Ï´Ù. ÀÌ °æ¿ì Á¦¹Ýºñ¿ëÀº ¼ÒºñÀÚ ºÎ´ãÀ̸ç, ¹è¼Ûºñ´Â ÆÇ¸ÅÀÚ°¡ ºÎ´ãÇÕ´Ï´Ù. ÇØ´ç È­Àåǰ°ú ÇǺΠƮ·¯ºí°úÀÇ »ó´çÇÑ Àΰú°ü°è°¡ ÀÎÁ¤µÇ´Â °æ¿ì ¶Ç´Â Áúȯġ·á ¸ñÀûÀÇ °æ¿ì¿¡´Â Áø´Ü¼­ ¹ß±Þºñ¿ëÀ» ÆÇ¸ÅÀÚ°¡ ºÎ´ãÇÕ´Ï´Ù.
      3) ±âŸ »óǰ
      ¼ö·ÉÀϷκÎÅÍ 7ÀÏ À̳» ½Åû, ¿Õº¹¹è¼Ûºñ´Â ¼ÒºñÀÚ ºÎ´ã
      4) ¸ð´ÏÅÍ ÇØ»óµµÀÇ Â÷ÀÌ·Î »ö»óÀ̳ª À̹ÌÁö°¡ ´Ù¸¥ °æ¿ì ´Ü¼øº¯½É¿¡ ÀÇÇÑ ±³È¯ ¹× ȯºÒÀÌ Á¦ÇÑµÉ ¼ö ÀÖ½À´Ï´Ù.
      ±³È¯ ¹× ȯºÒ ºÒ°¡ 1) ½Åû±âÇÑÀÌ Áö³­ °æ¿ì
      2) ¼ÒºñÀÚÀÇ °ú½Ç·Î ÀÎÇØ »óǰ ¹× ±¸¼ºÇ°ÀÇ Àüü ¶Ç´Â ÀϺΰ¡ ¾ø¾îÁö°Å³ª ÈѼÕ, ¿À¿°µÇ¾úÀ» °æ¿ì
      3) °³ºÀÇÏ¿© ÀÌ¹Ì ¼·ÃëÇÏ¿´°Å³ª »ç¿ë(Âø¿ë ¹× ¼³Ä¡ Æ÷ÇÔ)ÇØ »óǰ ¹× ±¸¼ºÇ°ÀÇ °¡Ä¡°¡ ¼Õ»óµÈ °æ¿ì
      4) ½Ã°£ÀÌ °æ°úÇÏ¿© »óǰÀÇ °¡Ä¡°¡ ÇöÀúÈ÷ °¨¼ÒÇÑ °æ¿ì
      5) »ó¼¼Á¤º¸ ¶Ç´Â »ç¿ë¼³¸í¼­¿¡ ¾È³»µÈ ÁÖÀÇ»çÇ× ¹× º¸°ü¹æ¹ýÀ» ÁöŰÁö ¾ÊÀº °æ¿ì
      6) »çÀü¿¹¾à ¶Ç´Â ÁÖ¹®Á¦ÀÛÀ¸·Î ÅëÇØ ¼ÒºñÀÚÀÇ ÁÖ¹®¿¡ µû¶ó °³º°ÀûÀ¸·Î »ý»êµÇ´Â »óǰÀÌ ÀÌ¹Ì Á¦ÀÛÁøÇàµÈ °æ¿ì
      7) º¹Á¦°¡ °¡´ÉÇÑ »óǰ µîÀÇ Æ÷ÀåÀ» ÈѼÕÇÑ °æ¿ì
      8) ¸À, Çâ, »ö µî ´Ü¼ø ±âÈ£Â÷ÀÌ¿¡ ÀÇÇÑ °æ¿ì