Áö±ÝÀÌ¶óµµ ¾Ë¾ÆµÎ¸é ¾µµ¥ ÀÖ´Â Å×½ºÆ® ÀÚµ¿È Àü·«ÃֽŠÀ¥ ¾ÖÇø®ÄÉÀ̼ǿ¡¼´Â Ç°Áú°ú À¯Áöº¸¼ö¼ºÀ» À§ÇØ Å×½ºÆ® ÀÚµ¿È°¡ Áß¿äÇÏÁö¸¸, Å×½ºÆ® Äڵ带 ÀÛ¼ºÇغ» °æÇèÀÌ ¾ø¾î Å×½ºÆ® ÄÚµå ÀÛ¼ºÀ» ¾î·Á¿öÇÏ´Â °³¹ßÀÚ°¡ ¸¹´Ù. ÀÌ Ã¥Àº Å×½ºÆ® Äڵ带 óÀ½ ÀÛ¼ºÇÏ´Â ÇÁ·±Æ®¿£µå °³¹ßÀÚ¸¦ ´ë»óÀ¸·Î, ±âº»ÀûÀÎ Å×½ºÆ® ÄÚµå ÀÛ¼º¹ýÀº ¹°·Ð »óȲº° Å×½ºÆ® ÄÚµå ÀÛ¼º¹ý, ´Ù¾çÇÑ µµ±¸ »ç¿ë¹ý±îÁö dzºÎÇÑ ¿¹Á¦¿Í ÇÔ²² ¼³¸íÇÑ´Ù. ƯÈ÷ ŸÀÔ½ºÅ©¸³Æ®, Next.js·Î ¸¸µç ¿¹Á¦¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î ÃֽŠ½Ç¹« Áö½Ä°ú ³ëÇϿ츦 ÀÍÈú ¼ö ÀÖ´Ù. Çѱ¹¾îÆÇ ºÎ·ÏÀ¸·Î ±êÇãºê ¾×¼Ç¿¡¼ÀÇ UI ÄÄÆ÷³ÍÆ® Å×½ºÆ®¿Í E2E Å×½ºÆ®¸¦ Ãß°¡ ¼ö·ÏÇØ ¿Ï¼ºµµ¸¦ ´õ¿í ³ô¿´´Ù.
ÇÁ·±Æ®¿£µå ¿£Áö´Ï¾î. ÇÁ·±Æ®¿£µå °³¹ß ÇöÀåÀÇ ½Ç¹« ³ëÇϿ츦 À¥»çÀÌÆ®(https://zenn.dev/takepepe)¿¡ ¿Ã¸®°í ÀÖÀ¸¸ç, ÀâÁö ¡¶WEB+DB PRESS¡·¿¡ ±ÛÀ» ±â°íÇϱ⵵ ÇÑ´Ù. Àú¼·Î ¡¶??TypeScript(½ÇÀü ŸÀÔ½ºÅ©¸³Æ®)¡·, ¡¶??Next.js(½ÇÀü Next.js)¡·°¡ ÀÖ´Ù.
¿Å±äÀÌ ¸Ó¸®¸» xiiiº£Å¸¸®´õ Èıâ xv½ÃÀÛÇϸç xviÀÌ Ã¥¿¡ ´ëÇÏ¿© xviiCHAPTER 1 Å×½ºÆ® ¸ñÀû°ú Àå¾Ö¹° 11.1 ÀÌ Ã¥ÀÇ ±¸¼º 11.2 Å×½ºÆ®¸¦ ÀÛ¼ºÇØ¾ß ÇÏ´Â ÀÌÀ¯ 41.3 Å×½ºÆ® ÀÛ¼ºÀÇ À庮 9CHAPTER 2 Å×½ºÆ® ¹æ¹ý°ú Å×½ºÆ® Àü·« 132.1 Å×½ºÆ® ¹üÀ§¿Í ¸ñÀû 132.2 ÇÁ·±Æ®¿£µå Å×½ºÆ®ÀÇ ¹üÀ§ 152.3 ÇÁ·±Æ®¿£µå Å×½ºÆ®ÀÇ ¸ñÀû 182.4 Å×½ºÆ® Àü·« ¸ðµ¨ 212.5 Å×½ºÆ® Àü·« °èȹ 23CHAPTER 3 óÀ½ ½ÃÀÛÇÏ´Â ´ÜÀ§ Å×½ºÆ® 273.1 ȯ°æ ¼³Á¤ 273.2 Å×½ºÆ® ±¸¼º ¿ä¼Ò 283.3 Å×½ºÆ® ½ÇÇà ¹æ¹ý 313.4 Á¶°Ç ºÐ±â 353.5 ¿¡Áö ÄÉÀ̽º¿Í ¿¹¿Ü ó¸® 373.6 ¿ëµµº° ¸Åó 433.7 ºñµ¿±â ó¸® Å×½ºÆ® 48CHAPTER 4 ¸ñ °´Ã¼ 534.1 ¸ñ °´Ã¼¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯ 534.2 ¸ñ ¸ðµâÀ» È°¿ëÇÑ ½ºÅÓ 554.3 À¥ API ¸ñ °´Ã¼ ±âÃÊ 594.4 À¥ API ¸ñ °´Ã¼ »ý¼º ÇÔ¼ö 644.5 ¸ñ ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â ½ºÆÄÀÌ 684.6 À¥ API ¸ñ °´Ã¼ÀÇ ¼¼ºÎ »çÇ× 724.7 ÇöÀç ½Ã°¢¿¡ ÀÇÁ¸ÇÏ´Â Å×½ºÆ® 75CHAPTER 5 UI ÄÄÆ÷³ÍÆ® Å×½ºÆ® 795.1 UI ÄÄÆ÷³ÍÆ® Å×½ºÆ® ±âÃÊ Áö½Ä 795.2 ¶óÀ̺귯¸® ¼³Ä¡ 825.3 óÀ½ ½ÃÀÛÇÏ´Â UI ÄÄÆ÷³ÍÆ® Å×½ºÆ® 845.4 ¾ÆÀÌÅÛ ¸ñ·Ï UI ÄÄÆ÷³ÍÆ® Å×½ºÆ® 895.5 ÀÎÅÍ·¢Æ¼ºê UI ÄÄÆ÷³ÍÆ® Å×½ºÆ® 945.6 À¯Æ¿¸®Æ¼ ÇÔ¼ö¸¦ È°¿ëÇÑ Å×½ºÆ® 1015.7 ºñµ¿±â 󸮰¡ Æ÷ÇÔµÈ UI ÄÄÆ÷³ÍÆ® Å×½ºÆ® 1085.8 UI ÄÄÆ÷³ÍÆ® ½º³À¼ô Å×½ºÆ® 1145.9 ¾Ï¹¬Àû ¿ªÇÒ°ú Á¢±Ù °¡´ÉÇÑ À̸§ 118CHAPTER 6 Ä¿¹ö¸®Áö ¸®Æ÷Æ® Àбâ 1256.1 Ä¿¹ö¸®Áö ¸®Æ÷Æ® °³¿ä 1256.2 Ä¿¹ö¸®Áö ¸®Æ÷Æ® Àбâ 1276.3 Ä¿½ºÅÒ ¸®Æ÷ÅÍ 132CHAPTER 7 À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÅëÇÕ Å×½ºÆ® 1357.1 Next.js ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß°ú ÅëÇÕ Å×½ºÆ® 1357.2 React Context¿Í ÅëÇÕ Å×½ºÆ® 1377.3 Next.js ¶ó¿ìÅÍ¿Í ·»´õ¸µ ÅëÇÕ Å×½ºÆ® 1417.4 Next.js ¶ó¿ìÅÍ¿Í ÀÔ·Â ÅëÇÕ Å×½ºÆ® 1457.5 React Hook FormÀ¸·Î Æû ½±°Ô ´Ù·ç±â 1497.6 Æû À¯È¿¼º °Ë»ç Å×½ºÆ® 1517.7 À¥ API ÀÀ´äÀ» ¸ñ °´Ã¼ÈÇÏ´Â MSW 1597.8 À¥ API ÅëÇÕ Å×½ºÆ® 1617.9 À̹ÌÁö ¾÷·Îµå ÅëÇÕ Å×½ºÆ® 167CHAPTER 8 UI ÄÄÆ÷³ÍÆ® Ž»ö±â 1758.1 ½ºÅ丮ºÏ ±âÃÊ 1758.2 ½ºÅ丮ºÏ Çʼö ¾Öµå¿Â 1808.3 Context API¿¡ ÀÇÁ¸ÇÏ´Â ½ºÅ丮 µî·Ï 1858.4 À¥ API¿¡ ÀÇÁ¸ÇÏ´Â ½ºÅ丮 µî·Ï 1888.5 Next.js Router¿¡ ÀÇÁ¸ÇÏ´Â ½ºÅ丮 µî·Ï 1928.6 play functionÀ» È°¿ëÇÑ ÀÎÅÍ·¢¼Ç Å×½ºÆ® 1938.7 addon-a11y¸¦ È°¿ëÇÑ Á¢±Ù¼º Å×½ºÆ® 1988.8 ½ºÅ丮ºÏ Å×½ºÆ® ·¯³Ê 2028.9 ½ºÅ丮¸¦ ÅëÇÕ Å×½ºÆ®¿¡ Àç»ç¿ëÇϱâ 207CHAPTER 9 ½Ã°¢Àû ȸ±Í Å×½ºÆ® 2119.1 ½Ã°¢Àû ȸ±Í Å×½ºÆ®ÀÇ Çʿ伺 2119.2 reg-cli·Î À̹ÌÁö ºñ±³Çϱâ 2149.3 ½ºÅ丮ĸ µµÀÔ 2189.4 reg-suit µµÀÔÇϱâ 2229.5 ¿ÜºÎ ½ºÅ丮Áö ¼ºñ½º ¼³Á¤ 2289.6 ±êÇãºê ¾×¼Ç¿¡ reg-suit ¿¬µ¿Çϱâ 2329.7 ½Ã°¢Àû ȸ±Í Å×½ºÆ®¸¦ È°¿ëÇÑ Àû±ØÀû ¸®ÆÑÅ͸µ 236CHAPTER 10 E2E Å×½ºÆ® 23910.1 E2E Å×½ºÆ®¶õ 23910.2 Ç÷¹À̶óÀÌÆ® ¼³Ä¡ ¹× ±âÃÊ 24210.3 Å×½ºÆ®ÇÒ ¾ÖÇø®ÄÉÀÌ¼Ç 24610.4 °³¹ß ȯ°æ¿¡¼ E2E Å×½ºÆ® ½ÇÇàÇϱâ 25010.5 ÇÁ¸®Á¸¦ È°¿ëÇÑ Å×½ºÆ® 25410.6 ·Î±×ÀÎ ±â´É E2E Å×½ºÆ® 25910.7 ÇÁ·ÎÇÊ ±â´É E2E Å×½ºÆ® 26310.8 Like ±â´É E2E Å×½ºÆ® 26610.9 ½Å±Ô ÀÛ¼º ÆäÀÌÁö E2E Å×½ºÆ® 26910.10 ±â»ç ÆíÁý ÆäÀÌÁö E2E Å×½ºÆ® 27210.11 °ÔÀçµÈ ±â»ç ¸ñ·Ï ÆäÀÌÁö E2E Å×½ºÆ® 27510.12 ºÒ¾ÈÁ¤ÇÑ Å×½ºÆ® ´ëó ¹æ¹ý 278APPENDIX A Çѱ¹¾îÆÇ ºÎ·Ï: ±êÇãºê ¾×¼Ç¿¡¼ UI ÄÄÆ÷³ÍÆ® Å×½ºÆ® ½ÇÇàÇϱâ 281A.1 ±êÇãºê ¾×¼Ç ÇÚÁî¿Â 281A.2 ¿öÅ©Ç÷ΠÆÄÀÏ ÀÛ¼º¹ý 288A.3 ÀÛ¾÷À» º´·Äó¸®Çؼ ¿öÅ©Ç÷ΠÃÖÀûÈÇϱâ 291APPENDIX B Çѱ¹¾îÆÇ ºÎ·Ï: ±êÇãºê ¾×¼Ç¿¡¼ E2E Å×½ºÆ® ½ÇÇàÇϱâ 299B.1 ±êÇãºê ¾×¼Ç¿¡¼ E2E Å×½ºÆ® ½ÇÇàÇϱâ 299B.2 µµÄ¿ÆÄÀÏ ÀÛ¼º¹ý 301B.3 µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ ÀÛ¼º¹ý 304ã¾Æº¸±â 310