ÄÜÅÙÃ÷ »ó¼¼º¸±â
React 18 µðÀÚÀÎ ÆÐÅÏ°ú º£½ºÆ® ÇÁ·¢Æ¼½º 4/e


React 18 µðÀÚÀÎ ÆÐÅÏ°ú º£½ºÆ® ÇÁ·¢Æ¼½º 4/e

React 18 µðÀÚÀÎ ÆÐÅÏ°ú º£½ºÆ® ÇÁ·¢Æ¼½º 4/e

<Ä«¸¦·Î½º »êŸ³ª ·Ñ´Ü> Àú | ¿¡ÀÌÄÜÃâÆÇ»ç

Ãâ°£ÀÏ
2024-11-25
ÆÄÀÏÆ÷¸Ë
ePub
¿ë·®
11 M
Áö¿ø±â±â
PC½º¸¶Æ®ÆùÅÂºí¸´PC
ÇöȲ
½Åû °Ç¼ö : 0 °Ç
°£·« ½Åû ¸Þ¼¼Áö
ÄÜÅÙÃ÷ ¼Ò°³
¸ñÂ÷
ÇÑÁÙ¼­Æò

ÄÜÅÙÃ÷ ¼Ò°³

¸®¾×Æ®´Â ÄÄÆ÷³ÍÆ®¶ó ºÒ¸®´Â Á¶°¢µéÀ» »ç¿ëÇØ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ÀÚÀ¯·Ó°Ô ¸¸µé ¼ö ÀÖ´Â ¶óÀ̺귯¸®ÀÌ´Ù. ÀÌ Ã¥À» ÀÐ°í ³ª¸é ¸®¾×Æ® ÃֽŠ¹öÀüÀÎ ¸®¾×Æ® 18À» »ç¿ëÇØ º¸´Ù ³ªÀº »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ ¸¸µå´Â ´Ù¾çÇÑ »ç°í ¹æ½Ä°ú ±â¹ýÀ» ÀÍÈú ¼ö ÀÖÀ» °ÍÀÌ´Ù.

¸ñÂ÷

1Àå. ¸®¾×Æ® óÀ½ »ç¿ëÇϱâ
±â¼ú ¿ä±¸ »çÇ×
¼±¾ðÀû ÇÁ·Î±×·¡¹Ö°ú ¸í·ÉÀû ÇÁ·Î±×·¡¹ÖÀÇ Â÷ÀÌ
¸®¾×Æ® ¿¤¸®¸ÕÆ®°¡ µ¿ÀÛÇÏ´Â ¹æ¹ý
¸ðµç °Í ¹ö¸®±â
ÀÚ¹Ù½ºÅ©¸³Æ® ÇǷΰ¨ ÀÌÇØÇϱâ
¸®¾×Æ®¿¡ °üÇÑ ¿ÀÇØ
ÇǷΰ¨ ¾øÀÌ ¸®¾×Æ® ½ÃÀÛÇϱâ
ÀÚ¹Ù½ºÅ©¸³Æ® »ýÅ°谡 ÁÖ´Â ÀÌÁ¡
Create-¸®¾×Æ®-AppÀº ÀÌÁ¦ ±×¸¸, Vite ¸¸³ª±â!
Á¤¸®
2Àå. ŸÀÔ½ºÅ©¸³Æ® ¼Ò°³
±â¼ú ¿ä±¸ »çÇ×
ŸÀÔ½ºÅ©¸³Æ®ÀÇ ±â´É
ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ带 ŸÀÔ½ºÅ©¸³Æ®·Î º¯È¯Çϱâ
ŸÀÔ
ÀÎÅÍÆäÀ̽º
ÀÎÅÍÆäÀ̽º¿Í ŸÀÔ È®ÀåÇϱâ
ÀÎÅÍÆäÀ̽º¿Í ŸÀÔ ±¸ÇöÇϱâ
ÀÎÅÍÆäÀ̽º º´ÇÕÇϱâ
¿­°ÅÇü
À̸§ °ø°£
ÅÛÇø´ ¸®ÅÍ·²
ŸÀÔ½ºÅ©¸³Æ® ±¸¼º ÆÄÀÏ
Á¤¸®
3Àå. ÄÚµå Á¤¸®Çϱâ
±â¼ú ¿ä±¸ »çÇ×
JSX »ç¿ëÇϱâ
¹Ùº§
ù ¹ø° ¿¤¸®¸ÕÆ® ¸¸µé±â
DOM ¿¤¸®¸ÕÆ®¿Í ¸®¾×Æ® ÄÄÆ÷³ÍÆ®
Props
ÀÚ³à
HTML°úÀÇ Â÷ÀÌÁ¡
Àü°³ ¼Ó¼º
ÅÛÇø´ ¸®ÅÍ·²
ÀϹÝÀûÀÎ (°øÅë) ÆÐÅÏ
ÄÚµå ½ºÅ¸ÀϸµÇϱâ
EditorConfig
Prettier
ESLint
ÇÔ¼öÇü ÇÁ·Î±×·¡¹Ö
1±Þ ÇÔ¼ö
¼ø¼ö¼º
ºÒº¯¼º
Ä¿¸µ
ÇÕ¼º
Á¤¸®
4Àå. Àαâ ÀÖ´Â ÇÕ¼º ÆÐÅÏ »ìÆ캸±â
±â¼ú ¿ä±¸ »çÇ×
ÄÄÆ÷³ÍÆ® °£ Åë½ÅÇϱâ
children prop »ç¿ëÇϱâ
ÄÁÅ×ÀÌ³Ê ÆÐÅÏ ¹× ÇÁ·¹Á¨Å×À̼ųΠÆÐÅÏ
°íÂ÷ ÄÄÆ÷³ÍÆ® ÀÌÇØÇϱâ
FunctionAsChild ÀÌÇØÇϱâ
Á¤¸®
5Àå. ºê¶ó¿ìÀú¸¦ À§ÇÑ ÄÚµå ÀÛ¼ºÇϱâ
±â¼ú ¿ä±¸ »çÇ×
Æû ÀÌÇØ ¹× ±¸ÇöÇϱâ
ÅëÁ¦µÇÁö ¾ÊÀº ÄÄÆ÷³ÍÆ®
ÅëÁ¦µÈ ÄÄÆ÷³ÍÆ®
À̺¥Æ® ´Ù·ç±â
refs »ìÆ캸±â
forwardRef ÀÌÇØÇϱâ
¾Ö´Ï¸ÞÀÌ¼Ç ±¸ÇöÇϱâ
SVG »ìÆ캸±â
Á¤¸®
6Àå. ÄÄÆ÷³ÍÆ®¸¦ ¾Æ¸§´ä°Ô º¸ÀÌ°Ô ¸¸µé±â
±â¼ú ¿ä±¸ »çÇ×
ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ÀÇ CSS
ÀζóÀÎ ½ºÅ¸ÀÏ ÀÌÇØÇϱâ¿Í ±¸ÇöÇϱâ
CSS ¸ðµâ »ç¿ëÇϱâ
Webpack 5
ÇÁ·ÎÁ§Æ® ¼³Á¤Çϱâ
·ÎÄà ¹üÀ§ CSS
¾ÆÅä¹Í CSS ¸ðµâ
styled-components ±¸ÇöÇϱâ
Á¤¸®
7Àå. ÇÇÇØ¾ß ÇÒ ¾ÈƼ ÆÐÅÏ
±â¼ú ¿ä±¸ »çÇ×
¼Ó¼ºÀ» ÀÌ¿ëÇØ »óÅ ÃʱâÈ­Çϱâ
À妽º¸¦ key·Î »ç¿ëÇϱâ
DOM ¿¤¸®¸ÕÆ®¿¡ ¼Ó¼º ÀüÆÄÇϱâ
Á¤¸®
8Àå. ¸®¾×Æ® ÈÅ
±â¼ú ¿ä±¸ »çÇ×
¸®¾×Æ® ÈÅ ¼Ò°³
±âÁ¸ÀÇ Æ²À» ±ú´Â º¯È­´Â ¾ø´Ù
State ÈÅ »ç¿ëÇϱâ
ÈÅ ±ÔÄ¢
±ÔÄ¢ 1: Åé ·¹º§¿¡¼­¸¸ ÈÅÀ» È£ÃâÇÑ´Ù
±ÔÄ¢ 2: ¸®¾×Æ® ÇÔ¼ö¿¡¼­¸¸ ÈÅÀ» È£ÃâÇÑ´Ù
Ŭ·¡½º ÄÄÆ÷³ÍÆ®¸¦ ¸®¾×Æ® ÈÅÀ¸·Î ¸¶À̱׷¹À̼ÇÇϱâ
¸®¾×Æ® ÀÌÆåÆ® ÀÌÇØÇϱâ
useEffect ÀÌÇØÇϱâ
Á¶°ÇºÎ·Î ÀÌÆåÆ® ½ÇÇàÇϱâ
useCallback, useMemo, memo ÀÌÇØÇϱâ
useReducer ÈÅ ÀÌÇØÇϱâ
Á¤¸®
9Àå. ¸®¾×Æ® ¶ó¿ìÅÍ
±â¼ú ¿ä±¸ »çÇ×
¸®¾×Æ® ¶ó¿ìÅÍ ¼³Ä¡ ¹× ±¸¼ºÇϱâ
¼½¼Ç »ý¼ºÇϱâ
¶ó¿ìÆ®¿¡ ¸Å°³º¯¼ö Ãß°¡Çϱâ
¸®¾×Æ® ¶ó¿ìÅÍ v6.4
¸®¾×Æ® ¶ó¿ìÅÍ ·Î´õ
Á¤¸®
10Àå. ¸®¾×Æ® 18ÀÇ »õ·Î¿î ±â´Éµé
µ¿½Ã ¸ðµå
ÀÚµ¿ ¹èÄ¡
Æ®·£Áö¼Ç
¼­¹ö¿¡¼­ÀÇ Suspense
½Å±Ô API
createRoot
hydrateRoot
renderToPipeableStream
½Å±Ô ÈÅ
useId
useTransition
useDeferredValue
useInsertionEffect
¾ö°ÝÇÑ ¸ðµå
Node.jsÀÇ ÃֽŠ±â´Éµé
½ÇÇèÀûÀÎ Fetch API
½ÇÇèÀûÀÎ test runner ¸ðµâ
½ÇÇèÀûÀÎ node watch
Node 18Àº ÀÌÁ¦ Àå±â Áö¿ø ¹öÀüÀÌ´Ù(LTS)
Á¤¸®
11Àå. µ¥ÀÌÅÍ °ü¸®Çϱâ
±â¼ú ¿ä±¸ »çÇ×
¸®¾×Æ® Context API ¼Ò°³
ù ¹ø° ÄÄÆ÷³ÍÆ® »ý¼ºÇϱâ
ÇÁ·Î¹ÙÀÌ´õ·Î ÄÄÆ÷³ÍÆ® °¨½Î±â
useContext¸¦ »ç¿ëÇØ ÄÁÅؽºÆ® ¼ÒºñÇϱâ
SWRÀ» »ç¿ëÇÑ ¸®¾×Æ® ´ë±â µµÀÔÇϱâ
SWR µµÀÔÇϱâ
Pokedex ¸¸µé±â
¸®´ö½º ÅøŶ: ¸®´ö½º¿¡ ´ëÇÑ Çö´ëÀûÀÎ Á¢±Ù ¹æ½Ä
ÇÙ½É ±â´É
½ÃÀÛÇϱâ
½ºÅä¾î »ý¼ºÇϱâ
½½¶óÀ̽º »ý¼ºÇϱâ
¸®µà¼­ Á¶ÇÕÇϱâ
ÄÄÆ÷³ÍÆ®¸¦ ½ºÅä¾î¿Í ¿¬°áÇϱâ
½ºÅä¾î¸¦ ¸®¾×Æ® ¾ÖÇø®ÄÉÀ̼ǰú ÅëÇÕÇϱâ
Á¤¸®
12Àå. ¼­¹ö »çÀÌµå ·»´õ¸µ
±â¼ú ¿ä±¸ »çÇ×
À¯´Ï¹ö¼³ ¾ÖÇø®ÄÉÀÌ¼Ç ÀÌÇØÇϱâ
SSRÀ» ±¸ÇöÇØ¾ß ÇÏ´Â ÀÌÀ¯
SEO ±¸ÇöÇϱâ
°øÅë ÄÚµå º£À̽º
´õ ³ªÀº ¼º´É
SSRÀÇ º¹À⼺ °ú¼ÒÆò°¡ÇÏÁö ¸»±â
±âº»ÀûÀÎ SSR ¿¹Á¦ ¸¸µé±â
À¥ÆÑÀ» »ç¿ëÇØ ÇÁ·ÎÁ§Æ® óÀ½ºÎÅÍ ±¸¼ºÇϱâ
¾ÖÇø®ÄÉÀÌ¼Ç »ý¼ºÇϱâ
µ¥ÀÌÅÍ °¡Á®¿À±â ±¸ÇöÇϱâ
Next.js¸¦ »ç¿ëÇØ ¸®¾×Æ® ¾ÖÇø®ÄÉÀÌ¼Ç »ý¼ºÇϱâ
Á¤¸®
13Àå. ½ÇÁ¦ ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ GraphQL ÀÌÇØÇϱâ
±â¼ú ¿ä±¸ »çÇ×
PostgreSQL, Apollo ¼­¹ö, GraphQL, Sequelize,
JSON À¥ ÅäÅ«À» »ç¿ëÇØ ¹é¿£µå ·Î±×ÀÎ ½Ã½ºÅÛ ±¸ÃàÇϱâ
Postgres ¼³Ä¡Çϱâ
PostgreSQL µ¥ÀÌÅͺ£À̽º °ü¸®¸¦ À§ÇÑ ÃÖ°íÀÇ µµ±¸µé
¹é¿£µå ÇÁ·ÎÁ§Æ® »ý¼ºÇϱâ
.env ÆÄÀÏ ±¸¼ºÇϱâ
±âº» config ÆÄÀÏ »ý¼ºÇϱâ
Apollo ¼­¹ö ±¸¼ºÇϱâ
GraphQL À¯Çü, Äõ¸®, ¹ÂÅ×ÀÌ¼Ç Á¤ÀÇÇϱâ
½ºÄ®¶ó ŸÀÔ
Äõ¸®
¹ÂÅ×À̼Ç
ŸÀÔ Á¤ÀÇ º´ÇÕÇϱâ
¸®Á¹¹ö »ý¼ºÇϱâ
getUsers Äõ¸® »ý¼ºÇϱâ
getUser Äõ¸® »ý¼ºÇϱâ
¹ÂÅ×ÀÌ¼Ç »ý¼ºÇϱâ
¸®Á¹¹ö º´ÇÕÇϱâ
Sequelize ORM »ç¿ëÇϱâ
Sequelize¿¡¼­ »ç¿ëÀÚ ¸ðµ¨ »ý¼ºÇϱâ
Sequelize¸¦ PostgreSQL µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇϱâ
ÀÎÁõ ÇÔ¼ö
JWT ÇÔ¼ö »ý¼ºÇϱâ
ÀÎÁõ ÇÔ¼ö »ý¼ºÇϱâ
ŸÀÔ°ú ÀÎÅÍÆäÀ̽º Á¤ÀÇÇϱâ
óÀ½À¸·Î ÇÁ·ÎÁ§Æ® ½ÇÇàÇϱâ
GraphQL Äõ¸®¿Í ¹ÂÅ×ÀÌ¼Ç Å×½ºÆÃÇϱâ
¸ðµ¨ °ËÁõ Å×½ºÆ®Çϱâ¿Í »ç¿ëÀÚ ÁúÀÇÇϱâ
·Î±×ÀÎ ¼öÇàÇϱâ
Apollo Ŭ¶óÀ̾ðÆ®¸¦ »ç¿ëÇØ ÇÁ·±Æ®¿£µå ·Î±×ÀÎ ½Ã½ºÅÛ ±¸ÇöÇϱâ
À¥ÆÑ 5 ±¸¼ºÇϱâ
ŸÀÔ½ºÅ©¸³Æ® ±¸¼ºÇϱâ
Express ¼­¹ö ±¸¼ºÇϱâ
ÇÁ·±Æ®¿£µå ±¸¼º »ý¼ºÇϱâ
»ç¿ëÀÚ ¹Ìµé¿þ¾î »ý¼ºÇϱâ
JWT ÇÔ¼ö »ý¼ºÇϱâ
GraphQL Äõ¸®¿Í ¹ÂÅ×ÀÌ¼Ç »ý¼ºÇϱâ
·Î±×ÀÎ ¹× ¿¬°áµÈ »ç¿ëÀÚ¸¦ ó¸®Çϱâ À§ÇÑ »ç¿ëÀÚ ÄÁÅؽºÆ® »ý¼ºÇϱâ
Apollo Ŭ¶óÀ̾ðÆ® ±¸¼ºÇϱâ
¾ÖÇø®ÄÉÀÌ¼Ç ¶ó¿ìÆ® »ý¼ºÇϱâ
ÆäÀÌÁö »ý¼ºÇϱâ
·Î±×ÀÎ ÄÄÆ÷³ÍÆ® »ý¼ºÇϱâ
dashboard ÄÄÆ÷³ÍÆ® »ý¼ºÇϱâ
·Î±×ÀÎ ½Ã½ºÅÛ Å×½ºÆ®Çϱâ
Á¤¸®
14Àå. ´ÜÀÏ ÀúÀå¼Ò ¾ÆÅ°ÅØó
±â¼ú ¿ä±¸ »çÇ×
´ÜÀÏ ÀúÀå¼ÒÀÇ ÀåÁ¡°ú ´ÜÀÏ ÀúÀå¼Ò°¡ ÇØ°áÇÏ´Â ¹®Á¦µé
NPM Workspaces¸¦ »ç¿ëÇØ ´ÜÀÏ ÀúÀå¼Ò »ý¼ºÇϱâ
´ÜÀÏ ÀúÀå¼Ò¿¡¼­ ŸÀÔ½ºÅ©¸³Æ® ±¸ÇöÇϱâ
À¥ÆÑÀ» »ç¿ëÇØ ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏÇϱâ À§ÇÑ devtools ÆÐÅ°Áö »ý¼ºÇϱâ
´Ù¾çÇÑ »ö»óÀÇ ·Î±× »ý¼ºÇϱâ
À¥ÆÑ °øÅë ±¸¼º
À¥ÆÑ °³¹ß ±¸¼º
À¥ÆÑ ÇÁ·Î´ö¼Ç ±¸¼º
utils ÆÐÅ°Áö »ý¼ºÇϱâ
API ÆÐÅ°Áö »ý¼ºÇϱâ
»ç¿ëÀÚ °øÀ¯ ¸ðµ¨ »ý¼ºÇϱâ
»ç¿ëÀÚ °øÀ¯ GraphQL ŸÀÔ ¹× ¸®Á¹¹ö
Ä¿½ºÅÒ ¼­ºñ½º »ý¼ºÇϱâ
¼­ºñ½º ±¸¼º ºôµåÇϱâ
Ä¿½ºÅÒ ¸ðµ¨ »ý¼ºÇϱâ
¸ðµ¨ ½Ãµå »ý¼ºÇϱâ
Ä¿½ºÅÒ GraphQL ŸÀÔ°ú ¸®Á¹¹ö »ý¼ºÇϱâ
¸ðµ¨ µ¿±âÈ­Çϱâ¿Í Apollo ¼­¹ö ½ÃÀÛÇϱâ
CRM ¼­ºñ½º Å×½ºÆ®Çϱâ
ÇÁ·±Æ®¿£µå ÆÐÅ°Áö »ý¼ºÇϱâ
Sites ½Ã½ºÅÛ »ý¼ºÇϱâ
ÆäÀÌÁö ½ºÀ§Ã³ »ý¼ºÇϱâ
Login ½Ã½ºÅÛ »ý¼ºÇϱâ
Sites ±¸¼º »ý¼ºÇϱâ
¸ðµç °ÍÀ» ÇÕÄ¡±â
µ¥¸ð ½Ã°£
Á¤¸®
15Àå. ¾ÖÇø®ÄÉÀÌ¼Ç ¼º´É °³¼±Çϱâ
±â¼ú ¿ä±¸ »çÇ×
Á¶Á¤ÀÌ µ¿ÀÛÇÏ´Â ¹æ¹ý
Å° »ç¿ëÇϱâ
ÃÖÀûÈ­ ±â¹ý
µµ±¸¿Í ¶óÀ̺귯¸®
ºÒº¯¼º
¹Ùº§ Ç÷¯±×ÀÎ
Á¤¸®
16Àå. Å×½ºÆðú µð¹ö±ë
±â¼ú ¿ä±¸ »çÇ×
Å×½ºÆÃÀÇ ÀÌÁ¡ ÀÌÇØÇϱâ
Jest¸¦ »ç¿ëÇÑ °íÅë ¾ø´Â ÀÚ¹Ù½ºÅ©¸³Æ® Å×½ºÆÃ
À̺¥Æ® Å×½ºÆ®Çϱâ
Vitest µµÀÔÇϱâ
Vitest ¼³Ä¡ ¹× ±¸¼ºÇϱâ
globals È°¼ºÈ­Çϱâ
Àμҽº Å×½ºÆÃ
¸®¾×Æ® DevTools »ç¿ëÇϱâ
¸®´ö½º DevTools »ç¿ëÇϱâ
Á¤¸®
17Àå. ÇÁ·Î´ö¼ÇÀ¸·Î ¹èÆ÷Çϱâ
±â¼ú ¿ä±¸ »çÇ×
ù ¹ø° DigitalOcean Droplet »ý¼ºÇϱâ
DigitalOcean¿¡ °¡ÀÔÇϱâ
ù ¹ø° Droplet »ý¼ºÇϱâ
Node.js ¼³Ä¡Çϱâ
±ê, ±êÇãºê ±¸¼ºÇϱâ
Droplet Á¾·áÇϱâ
nginx, PM2 ¹× µµ¸ÞÀÎ ±¸¼ºÇϱâ
nginx ¼³Ä¡ ¹× ±¸¼ºÇϱâ
¿ªÇÁ·Ï½Ã ¼­¹ö ¼³Á¤Çϱâ
Droplet¿¡ µµ¸ÞÀÎ Ãß°¡Çϱâ
Áö¼ÓÀûÀÎ ÅëÇÕÀ» À§ÇÑ CircleCI ±¸ÇöÇϱâ
CircleCI¿¡ SSH Å° Ãß°¡Çϱâ
CircleCI ±¸¼ºÇϱâ
CircleCI¿¡¼­ ȯ°æº¯¼ö »ý¼ºÇϱâ
Á¤¸®