ÇÁ·ÎÁ§Æ®ÀÇ °ñ°ÝÀº ´ëÃæ ÀÍÇû´Ù. ÀÌ °ñ°ÝÀ» Ȱ¿ëÇÏ¿© ¿¹Á¦¸¦ ¸¸µé°í
¸®¾×Æ®¸¦ ¿¬±¸ÇØ º¸µÇ ½ÇÁúÀûÀ¸·Î ¼öÁ¤ÇØ¾ß ÇÒ ¼Ò½º´Â App.tsx ¹Û¿¡ ¾ø´Ù. study¶ó´Â À̸§À¸·Î ½Ç½À¿ë ÅëÇÕ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í ÀÌ ¾È¿¡ ¼Ò½º¸¦ °è¼Ó ÀÛ¼ºÇØ º¸ÀÚ.
ÇÁ·ÎÁ§Æ®ÀÇ °ñ°ÝÀº °°°í ¹Ù²î´Â ºÎºÐÀº ±ØÈ÷ ÀϺÎÀ̹ǷΠÇÁ·ÎÁ§Æ® Çϳª¿¡ Äڵ带 °è¼Ó ÀÛ¼ºÇÏ´Â ¹æ½ÄÀÌ Æí¸®ÇÏ´Ù. ¾Õ¿¡¼ ¸¸µç firstvite°¡ ½ÇÇàÁßÀ̸é Á¾·áÇÏ°í »óÀ§ µð·ºÅ丮·Î
À̵¿ÇÑ ÈÄ »õ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µç´Ù.
C:\reactStudy\firstvite>cd..
C:\reactStudy>npm create vite@latest
»óÀ§ µð·ºÅ丮·Î À̵¿ÇÏÁö ¾ÊÀ¸¸é ÇÁ·ÎÁ§Æ®¾È¿¡ ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°Ô µÈ´Ù. ±×·¡µµ
¹®Á¦´Â ¾øÁö¸¸ °ü¸®°¡ ¾î·Á¿öÁö´Ï ¸ðµç ¿¹Á¦´Â C:\reactStudy ¾Æ·¡¿¡ ¸¸µéÀÚ. ÇÁ·ÎÁ§Æ® À̸§Àº study·Î ÁöÁ¤Çϰí React ÇÁ·¹ÀÓ¿öÅ©¿¡ TypeScript¸¦ ¼±ÅÃÇÑ´Ù.
¼³Ä¡ ¹× ½ÇÇà(Install with npm and start now) ¿É¼ÇÀ»
¼±ÅÃÇÏ¿© ÀÏ´Ü ½ÇÇàÇÑ ÈÄ Á¾·áÇØµµ µÇ°í ¾Æ´Ï¸é study Æú´õ·Î µé¾î°£ ÈÄ npm install ¸í·ÉÀ» ³»·Á ¼³Ä¡¸¸ ÇØµµ µÈ´Ù. ÇÁ·ÎÁ§Æ® ÃʱâÈ
ÈÄ VSCode¿¡¼ Æú´õ¸¦ ¿¸é ÀÛ¼º Áغñ ¿Ï·áÀÌ´Ù. App.tsx¿¡
¾Õ¼ JSX¸¦ ¼Ò°³ÇÒ ¶§ º¸ÀÎ ¿¹Á¦¸¦ ¸¸µé¾î º¸ÀÚ.
import
'./App.css'
function
App() {
let score = 123;
return (
<div>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</div>
)
}
export
default App;
ÅÛÇø´¿¡ ÀÖ´Â ¼Ò½º´Â ¸ðµÎ Áö¿ì°í ²À ÇÊ¿äÇÑ Äڵ常 ÀÛ¼ºÇß´Ù. ÇÁ·ÎÁ§Æ®
µð·ºÅ丮 ¾ÈÀ¸·Î µé¾î°¡ ½ÇÇàÇØ º¸ÀÚ.
C:\reactStudy>cd study
C:\reactStudy\study>npm run dev
JSX ¾È¿¡ <h2>,
<p> ű׸¦ ¹èÄ¡ÇÏ°í ¹®´Ü¾È¿¡ score º¯¼ö¸¦ Ç¥½ÃÇß´Ù. À¥ ºê¶ó¿ìÀú°¡ ¿¸®°í µÎ °³ÀÇ ¹®´ÜÀ¸·Î µÈ ¼ºÀûÇ¥ ÆäÀÌÁö°¡ ³ªÅ¸³´Ù.

ºê¶ó¿ìÀú´Â ±âº»À¸·Î ¼³Á¤µÈ °ÍÀÌ ¿¸®´Âµ¥ °¡±ÞÀû Å©·ÒÀ¸·Î È®ÀÎÇØ º¸ÀÚ. ´Ù¸¥
ºê¶ó¿ìÀú·Î È®ÀÎÇØ º¸°í ½ÍÀ¸¸é http://localhost:5173 ÁÖ¼Ò¸¦ º¹»çÇÏ¿© À̵¿ÇÏ¸é µÈ´Ù.
°³¹ßÀÌ Ç×»ó ¼øÁ¶·Ó°Ô Àß µÇ±â¸¸ ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ÇнÀÁß¿¡´Â ¾ÆÁ÷
Àͼ÷ÇÏÁö ¾Ê¾Æ ¿ÀŸ¸¦ ÀÔ·ÂÇÒ °æ¿ìµµ ¸¹°í Á¦´ë·Î Çߴµ¥ °á°ú°¡ ³ª¿ÀÁö ¾Ê´Â »óȲµµ ÈçÇÏ°Ô ¸¸³¯ ¼ö ÀÖ´Ù. ÀÌ·²
¶§´Â °³¹ßÅøÀÇ µµ¿òÀ» Àß ¹Þ¾Æ¾ß ÇÑ´Ù.
°³¹ßÁßÀ̳ª ÇнÀÁß¿¡´Â º¯¼ö°ª È®Àΰú ÄÚµåÀÇ È帧À» »ìÆìº¼ Çʿ䰡 ÀÖÀ¸¸ç À̶§´Â º¸Åë ·Î±×¸¦ Âï¾î º»´Ù. ÄÚµå Áß°£¿¡ ·Î±× Ãâ·Â¹®À» ³Ö¾î score º¯¼ö°¡ °ªÀ» Á¦´ë·Î °¡Áö°í
ÀÖ´ÂÁö È®ÀÎÇØ º¸ÀÚ. App.tsxÀÇ Äڵ带 ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
import
'./App.css'
function
App() {
let score = 128
console.log("ÇöÀç Á¡¼ö : " + score)
return (
<div>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</div>
)
}
export
default App;
console.logÀÇ Àμö¿¿¡ È®ÀÎÇØ º¸°í ½ÍÀº º¯¼ö¸¦ Àû´Â´Ù. À¥ºê¶ó¿ìÀú´Â °³¹ßÀÚ µµ±¸¸¦ Á¦°øÇϴµ¥ Å©·Ò, ¿§Áö ¸ðµÎ ´ÜÃàŰ´Â F12ÀÌ´Ù. °³¹ßÀÚ µµ±¸ÀÇ
Elements ÅÇ¿¡¼ DOM ±¸Á¶¸¦ È®ÀÎÇϰí
ConsoleÅÇ¿¡¼ ¿¡·¯¸¦ È®ÀÎÇÑ´Ù.

·Î±×°¡ µÎ ¹ø ÂïÈ÷´Â ÀÌÀ¯´Â ¾ö°Ý ¸ðµå(<StrictMode>)¿¡¼
µð¹ö±ëÀ» À§ÇØ ·£´õ¸µÀ» µÎ ¹ø¾¿ Çϵµ·Ï µÇ¾î Àֱ⠶§¹®ÀÌ´Ù. ¾ö°Ý ¸ðµå¸¦ Á¦°ÅÇÏ¸é ·Î±×°¡ Çѹø¸¸ ³ª¿ÀÁö¸¸
¾îÂ÷ÇÇ È®Àθ¸ ÇÏ¸é µÇ´Ï µÎ ¹ø¾¿ ÂïÇôµµ º° »ó°üÀº ¾ø´Ù.
°³¹ßÁß¿¡ ¿ÀŸ´Â ÇÇÇÒ ¼ö ¾ø´Â ¼÷¸íÀÌ´Ù. ±ä ÄÚµå Áß°£¿¡ ÀǵµÄ¡ ¾Ê°Ô
µé¾î°£ ¿ÀŸ·Î ÀÎÇØ ½ÇÇàÀÌ ¾ÈµÇ´Â °æ¿ì°¡ Çã´ÙÇÏ´Ù. ÀÌ·² ¶§ ¿ÀŸ¸¦ ¾î¶»°Ô Àâ´ÂÁö ½Ç½ÀÇØ º¸ÀÚ. ·Î±× Ãâ·Â¹®¿¡ ÀǵµÀûÀ¸·Î ¿ÀŸ¸¦ ³» º»´Ù.
consol.log("ÇöÀç Á¡¼ö :
" + score)
consol¿¡¼ ¸¶Áö¸· e¸¦
»© ¸Ô¾ú´Ù. VSCode´Â ÆíÁý±âÀÏ »Ó ÄÄÆÄÀÏ·¯°¡ ¾Æ´Ï¹Ç·Î À̰ÍÀÌ ¿ÀŸÀÎÁö È®ÀÎÇØ ÁÖÁö ¾Ê´Â´Ù. ´ë½Å ESLint Ç÷¯±×Àο¡ ¹º°¡ ÀÌ»óÇÏ´Ù´Â Àǹ̷Π»¡°£ ÁÙÀ» ±×¾î
º¸¿© ÁØ´Ù.
![]()
±×·¯³ª ÀÌ »¡°£ÁÙ¸¸ ºÁ¼´Â ¹¹°¡ À߸øµÈ °ÍÀÎÁö ¹Ù·Î ´«Ä¡Ã¤±â ¾î·Æ´Ù. ÀÌ
»óÅ¿¡¼ ¼Ò½º¸¦ ÀúÀåÇϸé Àç½ÇÇàµÇ¸é¼ ºê¶ó¿ìÀúÀÇ ·Î±×â¿¡ ¿¡·¯ ¸Þ½ÃÁö°¡ ³ªÅ¸³´Ù.

5Çà 3¿¿¡ ÀÖ´Â consolÀÌ Á¤ÀǵÇÁö ¾Ê¾Ò´Ù´Â ¶æÀÌ´Ù. ÀÌ ¸Þ½ÃÁö¸¦ ÅëÇØ ¿ÀŸ¸¦
È®ÀÎÇÏ°í ¼öÁ¤ ÈÄ ÀúÀåÇÏ¸é µÈ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â ÄÄÆÄÀÏ ¹æ½ÄÀ¸·Î Àϰý ¹ø¿ªÇÏÁö ¾Ê°í ¹ø¿ªÇÏ¸é¼ ½ÇÇàÇÏ´Â
¹æ½ÄÀ̶ó ½ÇÇàÁß¿¡ ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. ÆíÁýâ, ºê¶ó¿ìÀú, ÄÜ¼Ö µî ¿©·¯ °÷¿¡¼ ¿¡·¯¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇØ ÁØ´Ù.
¹º°¡ ¶æ´ë·Î µÇÁö ¾ÊÀ¸¸é Ç×»ó ÄܼÖâÀ» È®ÀÎÇØ ºÁ¾ß ÇÑ´Ù. ¿ÀŸ¸¦
¼öÁ¤Çؼ ÀúÀåÇϸé Áï½Ã ÇØ°áµÈ´Ù. eÀ» ´Ù½Ã »ðÀÔÇÏ¿© ¿ÀŸ¸¦ ¹Ù·Î Àâ°í ÀúÀåÇÏ¸é ±ò²ûÇÏ°Ô ¼öÁ¤µÈ´Ù.
ÇÁ·ÎÁ§Æ®ÀÇ ±¸¼º Á¤º¸´Â ÇÁ·ÎÁ§Æ® µð·ºÅ丮 ·çÆ®¿¡ ÀÖ´Â package.json¿¡
±â·ÏµÇ¾î ÀÖ´Ù. ÇÁ·ÎÁ§Æ® À̸§°ú ¹öÀü, Á¾¼Ó¼º Á¤º¸°¡ ¸í½ÃµÇ¾î
Àִµ¥ ÇÁ·ÎÁ§Æ® »ý¼º ½ÃÁ¡¿¡ µû¶ó ½ÇÁ¦ ¸ð½ÀÀº Á¶±Ý¾¿ ´Ù¸£´Ù. ¿ÀǼҽº´Â ¹ßÀüÀÌ ¿ö³« »¡¶ó ´Ê°Ô ¸¸µç
ÇÁ·ÎÁ§Æ®Àϼö·Ï ÆÐŰÁöÀÇ ¹öÀüÀÌ ³ô´Ù.
{
"name": "study",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev":
"vite",
"build": "tsc
-b && vite build",
"lint":
"eslint .",
"preview":
"vite preview"
},
"dependencies": {
"react":
"^19.2.0",
"react-dom":
"^19.2.0"
},
"devDependencies": {
"@eslint/js":
"^9.39.1",
"@types/node":
"^24.10.1",
"@types/react":
"^19.2.5",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.1",
"eslint":
"^9.39.1",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
"globals":
"^16.5.0",
"typescript":
"~5.9.3",
"typescript-eslint": "^8.46.4",
"vite":
"^7.2.4"
}
}
name, private, version Çʵå´Â ÀÌ ÇÁ·ÎÁ§Æ®ÀÇ ¼Ó¼ºÀÌ´Ù. nameÀº »ý¼ºÇÒ ¶§ ÁØ ÇÁ·ÎÁ§Æ® À̸§À̸ç study·Î ÁöÁ¤µÇ¾î
ÀÖ´Ù. private´Â
ÇÁ·ÎÁ§Æ®ÀÇ °ø°³ ¿©ºÎ¸¦ ÁöÁ¤Çϴµ¥ µðÆúÆ®´Â true¿©¼ ºñ°ø°³ÀÌ´Ù. ´©±¸³ª
¾µ ¼ö ÀÖµµ·Ï °ø°³ÇÒ ¿ÀǼҽº ÇÁ·ÎÁ§Æ®À̰ųª Àü»çÀûÀ¸·Î Àç»ç¿ë °¡´ÉÇÑ ¸ðµâÀÏ ¶§ false·Î ¼³Á¤ÇÑ´Ù.
°ø°³ ÇÁ·ÎÁ§Æ®´Â ÆÐŰÁö °ü¸® ½Ã½ºÅÛÀ» ÅëÇØ ´Ù¸¥ °³¹ßÀÚ¿¡°Ô ¹èÆ÷ÇÒ ¼ö ÀÖ´Ù. »ç¿ëÀÚ¿¡°Ô
Á÷Á¢ ¹èÆ÷ÇÒ ÃÖÁ¾ ÇÁ·ÎÁ§Æ®ÀÎ °æ¿ì´Â ±»ÀÌ °ø°³ÇÒ ÇÊ¿ä ¾øÀ¸¹Ç·Î ÀÌ ¼Ó¼ºÀ» true¸¦ ÁöÁ¤ÇÏ¿© »çÀû ÇÁ·ÎÁ§Æ®·Î
»ý¼ºÇÑ´Ù. versionÀº óÀ½ ¸¸µé¾ú´Ù´Â Àǹ̷Π0.0.0À¸·Î
ÃʱâȵǾî ÀÖ´Ù.
typeÀº ÇÁ·ÎÁ§Æ®ÀÇ ¸ðµâ ½Ã½ºÅÛÀ» ÁöÁ¤Çϴµ¥ ÀÌ °ªÀ» module·Î ÁöÁ¤Çϸé ÃֽŠǥÁØÀÎ ESMÀ» µû¸¥´Ù´Â ¶æÀ̸ç export, import Ű¿öµå¸¦ »ç¿ëÇÑ´Ù. ÀÌ ÁöÁ¤ÀÌ ¾øÀ¸¸é ES6 ÀÌÀüÀÇ require ±¸¹®À» »ç¿ëÇϴµ¥ Áö±ÝÀº ±×·² Çʿ䰡
ÀüÇô ¾ø´Ù.
scripts ¼½¼ÇÀº ÀÚÁÖ »ç¿ëÇÏ´Â ¸í·ÉÀÇ º°ÄªÀ» Á¤ÀÇÇϸç npm run ´ÙÀ½¿¡ º°ÄªÀ» ¾²¸é ±× µÚÀÇ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù. ÀÌ º°ÄªÀÌ
Á¤ÀǵǾî Àֱ⠶§¹®¿¡ npm run dev ¸í·ÉÀ¸·Î ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸í·ÉÀº npx vite·Î ¹Ù²î¾î ½ÇÇàµÈ´Ù. ³ª¸ÓÁö ½ºÅ©¸³Æ® ¸í·É¿¡ ´ëÇØ¼´Â õõÈ÷ ¾Ë¾Æ º¸ÀÚ.
dependencies ¼½¼Ç¿¡´Â ÇÁ·ÎÁ§Æ®¿¡ »ç¿ëÇÒ ÆÐŰÁö¿Í ¹öÀüÀ»
ÁöÁ¤ÇÑ´Ù. ¹öÀü¿¡ 1.2.3°ú °°ÀÌ ¼ýÀÚ¸¦ ¸íÈ®È÷ ÀûÀ¸¸é
ÇØ´ç ¹öÀü¸¸ »ç¿ëÇ϶ó´Â ¶æÀÌ´Ù. ÆÐŰÁö°¡ °è¼Ó ¾÷µ¥ÀÌÆ®µÇ¹Ç·Î ±»ÀÌ Æ¯Á¤ ¹öÀüÀ» °íÁ¤ÇÒ ÇÊ¿ä´Â ¾ø°í ¾î´À
Á¤µµ À¶Å뼺À» ¹ßÈÖÇϴµ¥ ±âÈ£¿¡ µû¶ó Çã¿ë ¹üÀ§°¡ ´Ù¸£´Ù.
|
±âÈ£ |
¼³¸í |
|
^ |
¸¶ÀÌ³Ê ¹öÀü±îÁö´Â ¹Ù²î´õ¶óµµ ¾÷µ¥ÀÌÆ® °¡´ÉÇÏ´Ù. ^1.2.3À¸·Î ÁöÁ¤Çߴµ¥ 1.4.5°¡ ³ª¿Ô´Ù¸é ÀÌ ¹öÀüÀ» ¾´´Ù. ¾ÕÀÚ¸®°¡ 2.0.0ÀÌ µÇ¸é ÀÌ ¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ®ÇÏÁö´Â ¾Ê´Â´Ù. |
|
~ |
ÆÐÄ¡ ¹öÀü±îÁö´Â ¾÷µ¥ÀÌÆ® ´ë»óÀÌ´Ù. ~1.2.3À¸·Î ÁöÁ¤ÇÑ °æ¿ì 1.2.9±îÁöÀÇ ÆÐÄ¡ ¹öÀü±îÁö´Â ¾´´Ù. |
|
* |
¸ðµç ¹öÀüÀ» Çã¿ëÇÏ¸ç °¡Àå ÃֽйöÀüÀ» Àû¿ëÇÑ´Ù. ¹®Á¦ ¹ß»ý ¼ÒÁö°¡ ¸¹¾Æ ±ÇÀåÇÏÁö
¾Ê´Â´Ù. |
|
>, <, >=, <= |
ÁöÁ¤ÇÑ ¹öÀüº¸´Ù ³ô°Å³ª ³·Àº ¹öÀüÀ» Çã¿ëÇÑ´Ù. ´õ ³ôÀº ¹öÀüÀ» ¾µ ¼ö ¾ø´Â
°æ¿ìµµ ÀÖ´Ù. |
|
- |
¹öÀüÀÇ ¹üÀ§¸¦ ÁöÁ¤ÇÑ´Ù. 1.2.3 - 1.5.0À¸·Î ÁöÁ¤Çϸé ÀÌ ¹üÀ§ ³»¿¡¼
ÃֽйöÀüÀ» »ç¿ëÇÑ´Ù. |
|
|| |
»ó±âÀÇ ¿©·¯ ±ÔÄ¢À» Á¶ÇÕÇÑ´Ù. ^1.2.3 || 2.3.4´Â 1.x.x¸¦ Çã¿ëÇϰí 2.x.x´Â Çã¿ëÇÏÁö ¾ÊµÇ 2.3.4´Â Çã¿ëÇÑ´Ù. |
´ëºÎºÐÀÇ ÆÐŰÁö´Â ^À¸·Î ¹öÀüÀÌ ÁöÁ¤µÇ¾î ÀÖ´Ù. react ¹öÀüÀ» ^19.2.0À¸·Î ÁöÁ¤Çϸé 19.9.9±îÁö´Â ¾÷µ¥ÀÌÆ®Çصµ µÈ´Ù´Â ¶æÀÌ´Ù. ±×·¯³ª ¸®¾×Æ® 20.0.0ÀÌ ³ª¿Ô´õ¶óµµ ÀÌ ¹öÀüÀ» ¾²Áö´Â ¾Ê´Â´Ù. ¸¸¾à 20.0.0À» ¾²°í ½Í´Ù¸é ¹öÀüÀ» Á÷Á¢ ÆíÁýÇϰí Àß ½ÇÇàµÇ´ÂÁöµµ Å×½ºÆ®ÇØ¾ß ÇÑ´Ù.
devDependencies´Â °³¹ß ȯ°æ¿¡¼¸¸ »ç¿ëÇÏ´Â ¶óÀ̺귯¸®ÀÌ´Ù. ¾Õ¿¡ @±âÈ£°¡ ºÙ¾î ÀÖ´Â °ÍÀº ÆÐŰÁö¸¦ ¸¸µç Á¶Á÷À» ¸í½ÃÇÏ¿© ±×·ìÈÇϰí
À̸§ Ãæµ¹À» ¹æÁöÇÑ´Ù. Á¶Á÷¸í µÚÀÇ / ´ÙÀ½ÀÌ ÆÐŰÁö À̸§ÀÌ´Ù. eslint³ª typescript µîÀº °³¹ßÁß¿¡¸¸ ÇÊ¿äÇÒ »Ó ½ÇÁ¦
Á¦Ç°¿¡ Æ÷ÇÔÇÒ ÇÊ¿ä´Â ¾ø´Ù.
ÆÐŰÁöÀÇ ¹öÀüÀÌ °¡º¯ÀûÀÌ´Ù º¸´Ï À¶Å뼺Àº ÀÖÁö¸¸ Â÷Ä©ÇÏ¸é ¹öÀü°£ ȣȯ¼ºÀÌ ¸ÂÁö ¾Ê¾Æ ¹®Á¦°¡ »ý±æ À§ÇèÀÌ ÀÖ´Ù. ¹öÀüÀ» ^1.2.3À¸·Î ÁöÁ¤Çߴµ¥ ´õ ÃֽйöÀüÀÎ 1.3.0ÀÌ ³ª¿ÔÀ» ¶§ ÀÌ°É Àû¿ëÇÏ¸é °³¹ßÇßÀ» ¶§¿Í´Â Á¶±ÝÀÌ¶óµµ ´Þ¶óÁú °¡´É¼ºÀÌ ´ÙºÐÇÏ´Ù. ¿ÀǼҽº°¡ ¿ø·¡ ÇÏÀ§ È£¿Ï¼ºÀ» Àß ÁöŰÁö ¾Ê´Â´Ù.
ÀÌ·± ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ npm ¹öÀü 5ºÎÅÍ´Â Á¤È®ÇÑ ÀÇÁ¸¼º Á¤º¸¸¦ ±â·ÏÇÏ´Â package-lock.jsonÀ»
µû·Î °ü¸®ÇÑ´Ù. ÀÌ ÆÄÀÏ ¾È¿¡´Â ºôµå½Ã¿¡ »ç¿ëÇÑ Á¤È®ÇÑ ¹öÀüÀ» ¸í½ÃÇÏ¿© ÀÌ Á¤º¸¸¦ ¹ÙÅÁÀ¸·Î ºôµåÇϸé
ÃÖÁ¾ ºôµå½Ã¿Í ¶È°°ÀÌ ¸¸µé ¼ö ÀÖÀ½À» º¸ÀåÇÑ´Ù. ÀÌ ÆÄÀÏÀº ÅøÀÌ ÀÚµ¿À¸·Î »ý¼ºÇØ ³»¹Ç·Î ¼öµ¿À¸·Î ÆíÁýÇØ¼´Â
¾ÈµÈ´Ù.
»õ·Î¿î ÆÐŰÁö¸¦ ¼³Ä¡Ç߰ųª package.jsonÀÌ ¹Ù²ð ¶§ npm install ¸í·ÉÀ¸·Î Àç»ý¼ºÇØ ÁÖ¸é µÈ´Ù. ÀÌ ÆÄÀϵµ ¹öÀü
°ü¸® ´ë»óÀ̸ç ÀúÀå¼Ò¿¡ ¿Ã·Á µÎ¾î¾ß ´Ù¸¥ °³¹ßÀÚ°¡ ¶È°°Àº ºôµå ȯ°æÀ» ±¸ÃàÇÒ ¼ö ÀÖ´Ù. µ¿·á°¡ ÆÐŰÁö¸¦
Ãß°¡Çß´Ù¸é ³ªµµ ¼Ò½º¸¦ ¹Þ¾Æ Ãß°¡ÇÑ ÆÐŰÁö¸¦ ´Ù¿î·Îµå¹Þ¾Æ ½ÌÅ©¸¦ ¸ÂÃá´Ù.
study ÇÁ·ÎÁ§Æ®´Â ¾ÆÁÖ ´Ü¼øÇÑ ±â´É¸¸ ±¸ÇöÇßÁö¸¸ ¿ë·®Àº 100M¿¡ ´ÞÇÑ´Ù. ±× ÀÌÀ¯´Â ºôµå¿¡ ÇÊ¿äÇÑ ÆÐŰÁö¸¦ node_modules Æú´õ ³»¿¡ ¸ðµÎ ³»ÀåÇϰí Àֱ⠶§¹®ÀÌ´Ù. ±×·¸´Ù¸é
ÀÌ ÇÁ·ÎÁ§Æ®¸¦ ¹é¾÷ÇØ µÎ°Å³ª ´Ù¸¥ »ç¶÷¿¡°Ô Àü´ÞÇÏ·Á¸é Åë°·Î ¾ÐÃàÇØ¼ º¸³»¾ßÇÒ±î? ´ÙÇàÈ÷ ±×·¸Áö´Â ¾Ê´Ù.
node_modules Æú´õ´Â ¾ðÁ¦µçÁö À籸¼ºÇÒ ¼ö ÀÖÀ¸¹Ç·Î Áö¿ö
¹ö·Áµµ µÈ´Ù. ÀÌ Æú´õ¸¦ Áö¿ì¸é ÇÁ·ÎÁ§Æ® Æú´õ´Â °íÀÛ 1Mµµ
¾ÈµÈ´Ù. package.json¿¡ ¾î¶² ÆÐŰÁö°¡ ÇÊ¿äÇÑÁö ¸ðµÎ ±â·ÏµÇ¾î ÀÖ¾î ºôµåÇϱâ Àü¿¡ ´ÙÀ½ ¸í·ÉÀ¸·Î
À缳ġÇÏ¸é µÈ´Ù.
C:\reactStudy\study>npm install
ÆÐŰÁö °ü¸®ÀÚ´Â ¸®¾×Æ® ÇÁ·ÎÁ§Æ® ±¸¼º¿¡ ÇÊ¿äÇÑ ÆÐŰÁö¸¦ °ü¸®ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.
ÁÖ¿ä ¸í·É¾î¸¦ Á¤¸®ÇØ º¸ÀÚ.
|
¸í·É |
¼³¸í |
|
npm -v |
¹öÀü ¹× ¼³Ä¡ ¿©ºÎ È®ÀÎ |
|
npm install |
ÆÐŰÁö ¼³Ä¡ |
|
npm uninstall |
ÆÐŰÁö »èÁ¦ |
|
npm update |
ÆÐŰÁö ÃֽйöÀüÀ¸·Î ¾÷µ¥ÀÌÆ® |
|
npm run |
package.jsonÀÇ scripts ¼½¼Ç¿¡
Á¤ÀÇµÈ ½ºÅ©¸³Æ® ½ÇÇà |
¿¬½À»ï¾Æ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¹è¿, °´Ã¼¸¦ ´Ù·ç´Â À¯Æ¿¸®Æ¼ ¶óÀ̺귯¸®ÀÎ loadash¸¦ ¼³Ä¡ÇØ º¸ÀÚ. À̶§´Â Àá½Ã ½ÇÇàÀ» ÁßÁöÇÏ´Â °ÍÀÌ ÁÁ´Ù. ´Ü¼ø À¯Æ¿¸®Æ¼ ÆÐŰÁö´Â ½ÇÇàÁß¿¡ ¼³Ä¡ÇÏ´Â °Íµµ °¡´ÉÀº ÇÏÁö¸¸ ȯ°æÀ» ¹Ù²Ù´Â ÆÐŰÁö´Â Á¤»ó µ¿ÀÛÀ» º¸ÀåÇÒ ¼ö
¾øÀ¸¹Ç·Î Á¾·á ÈÄ ¼³Ä¡Çϰí Àç½ÃÀÛÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
C:\reactStudy\study>npm install lodash
added 1 package, and audited 178 packages in 1s
45 packages are looking for funding
run
`npm fund` for details
found 0 vulnerabilities
node_mudules Æú´õ¿¡
lodash °ü·Ã ÆÐŰÁö°¡ ¼³Ä¡µÇ¸ç package.jsonÀÇ dependencies ¼½¼Ç¿¡µµ ±â·ÏµÈ´Ù. ÀÌÈÄ node_mudules¸¦ ´Ù Áö¿øµµ ¾ðÁ¦µçÁö À缳ġÇÒ ¼ö ÀÖ´Ù.
"dependencies": {
"lodash": "^4.17.21",
"react": "^19.2.0",
"react-dom": "^19.2.0"
},
¼³Ä¡ ÇØÁ¦ ¸í·ÉÀº npm uninstall loadshÀ̸ç ÀÌ ¸í·ÉÀ»
³»¸®¸é ÀÇÁ¸¼ºµµ Á¦°ÅµÈ´Ù. npmÀº ³ëµåÀÇ ±âº» ÆÐŰÁö °ü¸®ÀÚ¿©¼ ³ëµå¿Í ÇÔ²² ¼³Ä¡µÇ¾î °£ÆíÇÏ°Ô ¾µ
¼ö ÀÖ´Ù. ´õ ¹ßÀüµÈ ´Ù¸¥ ÆÐŰÁö °ü¸®ÀÚµµ ÀÖÁö¸¸ ´çºÐ°£Àº npm¿¡
Àͼ÷ÇØÁöÀÚ.
package.jsonÀÇ
"scripts" ¶õ¿¡´Â °³¹ßÁß¿¡ »ç¿ëÇÒ ½ºÅ©¸³Æ®°¡ ÀÛ¼ºµÇ¾î Àִµ¥ ´ÙÀ½ 4°¡Áö
µ¿ÀÛÀÌ Á¤ÀǵǾî ÀÖ´Ù. ÀÌ ¸í·ÉÀº ¸®¾×Æ® ½ºÅ©¸³Æ®·Î µ¿ÀÛÇÏ´Â ÀÏÁ¾ÀÇ ½ÇÇà ÆÄÀÏÀ̸ç npmÀ¸·Î ¹Ù·Î È£ÃâÇÒ ¼ö ÀÖ´Ù.
|
¸í·É |
¼³¸í |
|
npm run dev |
ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇàÇÑ´Ù. |
|
npm run build |
ÇÁ·ÎÁ§Æ®¸¦ ¹èÆ÷ °¡´ÉÇÑ »óÅ·ΠºôµåÇÑ´Ù. |
|
npm run lint |
¼Ò½º¸¦ Á¡°ËÇÏ¿© ÀáÀçÀûÀÎ ¹®Á¦¸¦ °Ë»çÇÑ´Ù. |
|
npm run preview |
ºôµåÇÑ ¹èÆ÷¿ë Äڵ带 ·ÎÄÿ¡¼ ¹Ì¸® È®ÀÎÇÑ´Ù. |
½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÒ ¶§´Â npm run ´ÙÀ½¿¡ ¸í·É¾î¸¦ Àü´ÞÇÑ´Ù. dev´Â °³¹ß ¸ðµå¿¡¼ ÇÁ·ÎÁ§Æ®¸¦ ½ÇÇàÇ϶ó´Â ¶æÀε¥ ÀÏÁ¾ÀÇ µð¹ö±× ¸ðµå·Î µ¹¸®¸ç Å×½ºÆ®ÇÏ´Â °ÍÀÌ´Ù.
ÀÌ¿¡ ºñÇØ ºôµå´Â ¹èÆ÷¸¦ À§ÇØ À¥ ¼¹ö°¡ ¹Ù·Î ½ÇÇàÇÒ ¼ö ÀÖ´Â ÆÄÀÏÀ» ¸¸µé¾î³½´Ù. build¸í·ÉÀº tsc -b && vite build·Î
Á¤ÀǵǾî Àִµ¥ tsc -b´Â ŸÀÔ½ºÅ©¸³Æ®°¡ ¾ð¾î Â÷¿ø¿¡¼ ¿À·ù°¡ ¾ø´ÂÁö È®ÀÎÇÑ´Ù. ¿À·ù°¡ ¾øÀ¸¸é vite°¡
Rollup ¹øµé·¯¸¦ È£ÃâÇÏ¿© ½ÇÇà¿¡ ÇÊ¿äÇÑ ÆÄÀÏÀ» ¸ðÀ¸°í ¾ÐÃàÇϰí ÃÖÀûȱîÁö ¼öÇàÇÑ´Ù. °ú¿¬
¾î¶² ÆÄÀÏÀÌ ¸¸µé¾îÁö´Â ºôµåÇØ º¸ÀÚ.
C:\reactStudy\study>npm run build
> study@0.0.0 build
> tsc -b && vite build
vite v7.2.7 building client environment for
production...
✓ 29 modules
transformed.
dist/index.html
0.45 kB ¦¢ gzip: 0.29 kB
dist/assets/index-DQ3P1g1z.css 0.91 kB ¦¢ gzip: 0.49 kB
dist/assets/index-CD5vsBHE.js 193.50 kB ¦¢ gzip: 60.79 kB
✓ built in
472ms
À¥ ¹èÆ÷¿ë ÆÄÀÏÀ» ºôµåÇϰí dist Æú´õ¿¡ ¹øµé¸µÇÑ ÆÄÀÏÀ» »ý¼ºÇÑ´Ù. ¾î¶² ÆÄÀÏÀ» »ý¼ºÇØ ³ù´ÂÁö »ìÆì º¸ÀÚ. index.htmlÀº ±âº»
±¸Á¶¸¸ °¡Áö°í ½ºÅ©¸³Æ® ÆÄÀÏ¿¡ ½ÇÁ¦ ³»¿ëÀ» ÀÛ¼ºÇÑ´Ù. ½ºÅ©¸³Æ® ÆÄÀÏ,
½ºÅ¸ÀÏ ÆÄÀÏÀº assets Æú´õ ¾È¿¡ ÀÖ´Ù.
index-CD5vsBHE.js ÀÌ·± ÇüÅ·ΠÀÛ¼ºÇϴµ¥ ij½Ã ¹æÁö¸¦
À§ÇØ ÇØ½Ã Äڵ带 ºÙÀδÙ. ³»¿ëÀÌ Á¶±ÝÀÌ¶óµµ ¹Ù²î¸é ÇØ½Ãµµ ¹Ù²î¾î ºê¶ó¿ìÀúÀÇ Ä³½Ã¸¦ ¹«È¿ÈÇÏ´Â ¿ªÇÒÀ»
ÇÑ´Ù. ¾î¶² Äڵ尡 ÀÛ¼ºµÇ¾î ÀÖ´ÂÁö ¿¾î º¸ÀÚ.

´Ù¿î·Îµå ¿ë·®À» ÁÙÀ̱â À§ÇØ °³ÇàÀº ÀüÇô ¾ø°í °ø¹éµµ ²À ÇÊ¿äÇÑ °Í¸¸ ³²±â°í ´Ù Áö¿ö ¹ö·È´Ù. ±×³ª¸¶ HTMLÀ̳ª CSS´Â
Á» ºÒÆíÇØµµ ÀÐÀ»¸¸ ÇÏÁö¸¸ ½ºÅ©¸³Æ®´Â °ÅÀÇ ÆÇµ¶ÀÌ ºÒ°¡ÇÒ Á¤µµ·Î ¾ÐÃàµÇ¾î ÀÖ´Ù.
»ç¶÷ÀÌ º¸±â¿¡´Â ¿å³ª¿ÀÁö¸¸ ÄÄÇ»ÅÍ´Â ¿ÀÈ÷·Á ÀÌ·± ÆÄÀÏÀ» ´õ ÁÁ¾ÆÇÑ´Ù. ´Ù¿î·ÎµåÇÒ
¾çÀÌ ÁÙ¾îµé¾î ±âµ¿ ¼Óµµµµ ºü¸£´Ù. ÀÌ·¡¼ °³¹ß¿ë°ú ¹èÆ÷¿ëÀ» ±»ÀÌ ±¸ºÐÇÏ´Â °ÍÀÌ´Ù. ºôµåÇÑ °á°ú¸¦ À¥ ¼¹ö¿¡ ¿Ã·Á ½ÇÇàÇϴµ¥ °³¹ß¿¡¼ »ç¿ëÇÏ´Â °Íº¸´Ù ´õ °¡º¿î À¥ ¼¹ö°¡ ÇÊ¿äÇÏ´Ù. °æ·® ¼¹ö¸¦ ½ÇÇàÇÏ¿© ¹èÆ÷º»À» ¹Ì¸® Á¡°ËÇÏ´Â ¸í·ÉÀÌ previewÀÌ´Ù.
C:\reactStudy\study>npm run preview
> study@0.0.0 preview
> vite preview
➜ Local: http://localhost:4173/
➜ Network: use --host to expose
➜ press h + enter to show help
°³¹ß°ú ¶È°°ÀÌ ½ÇÇàµÇ¸ç ÀÌ»ó ¾ø´ÂÁö È®ÀÎÇÑ´Ù. ÀÌ»ó¾øÀ½À» È®ÀÎÇÑ ÈÄ¿¡´Â
½ÇÁ¦ À¥ ¼¹ö¿¡ ¿Ã·Á ÇÁ·ÎÁ§Æ®¸¦ ¹èÆ÷ÇÑ´Ù. ÇнÀÁß¿¡´Â ±»ÀÌ ºôµå±îÁö ÇØ º¼ ÇÊ¿ä¾øÀÌ npm run dev·Î °á°ú¸¸ È®ÀÎÇØ º¸¸é µÈ´Ù.
ÀÌÈÄ ¸®¾×Æ® ÇнÀÀ» À§ÇØ ¼ö¸¹Àº ¿¹Á¦¸¦ ¸¸µé¾î º¸°í ¼öÁ¤ÇØ ºÁ¾ß ÇÑ´Ù. ´ÙÇàÈ÷
¸®¾×Æ®´Â ¼Ò½º¸¦ ¼öÁ¤ÇÏ°í °á°ú¸¦ È®ÀÎÇÏ´Â °úÁ¤ÀÌ ±²ÀåÈ÷ ½±´Ù. ¼öÁ¤ ÈÄ ÀúÀ常 ÇÏ¸é º¯°æµÈ °á°ú¸¦ ºê¶ó¿ìÀú¿¡
¹Ù·Î Ãâ·ÂÇÑ´Ù.
VSCode¿Í Å©·ÒÀ» ³ª¶õÈ÷ µÎ°í Äڵ常 ¼öÁ¤ÇÑ ÈÄ ÀúÀåÇÏ¸é ºê¶ó¿ìÀú¿¡
°á°ú°¡ ¹Ù·Î ³ªÅ¸³ª´Ï Æí¸®ÇÏ°Ô °øºÎÇÒ ¼ö ÀÖ´Ù. score º¯¼ö¸¦
98Á¡À¸·Î ¼öÁ¤Çϰí ÀúÀåÇØ º¸ÀÚ. ¼Ò½º°¡ º¯°æµÇ´Â Áï½Ã ESM
¸ðµâ¿¡ ÀÇÇØ º¯°æµÈ ºÎºÐ¸¸ Àç¹èÆ÷ÇÏ°í ºê¶ó¿ìÀúÀÇ »õ·Î°íħ±îÁö ÇØ ÁØ´Ù. 1Ãʵµ ¾È°É¸°´Ù.

»ó´çÈ÷ Àç¹ÌÀִµ¥ 98Á¡À» ´Ù½Ã
123Á¡À¸·Î ¹Ù²Û ÈÄ ¶Ç ÀúÀåÇØ º¸ÀÚ. ½Å±âÇÒ Á¤µµ·Î ºü¸£°í Á¤È®ÇÏ´Ù. ÀúÀ常 ÇÏ¸é ¹Ù·Î °á°ú¸¦ ½Å¼ÓÇÏ°Ô º¼ ¼ö ÀÖ¾î ÇнÀÇÏ±â Æí¸®ÇÏ´Ù.
¸®¾×Æ® ÇÁ·ÎÁ§Æ®ÀÇ ±¸Á¶´Â °ÅÀÇ µ¿ÀÏÇÏ¸ç º¯°æÀÌ ÇÊ¿äÇÑ ºÎºÐÀº App.tsx ¾ÈÀÇ
ÄÚµå»ÓÀÌ´Ù. ÀÌÁ¦ºÎÅÍ App.tsx¸¦ ¼öÁ¤ÇØ °¡¸ç ¹®¹ýÀ»
¿¬±¸ÇØ ºÁ¾ß Çϴµ¥ ¸Å¹ø »õ·Î ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé±â´Â ±ÍÂú°í ºñÈ¿À²ÀûÀÌ´Ù. study ÇÁ·ÎÁ§Æ®ÀÇ App.tsx¿¡ Äڵ带 ¼öÁ¤ÇØ °¡¸ç ½Ç½ÀÇÏ´Â °ÍÀÌ ºü¸£´Ù.
¹èÆ÷ ÇÁ·ÎÁ§Æ®ÀÇ App.tsx ÆÄÀÏ¿¡´Â °¢ ¿¹Á¦°¡ ½Ç½À ¼ø¼´ë·Î ÀÛ¼ºµÇ¾î
ÀÖµÇ ½ÃÀÛ ºÎºÐÀº /*·Î ³¡ ºÎºÐÀº //*/ ÁÖ¼®À¸·Î °¨½ÎÁ®
ÀÖ´Ù. ½ÇÇàÇØ º¼ ¿¹Á¦ÀÇ ÁÖ¼® ù ºÎºÐ¿¡ / Çϳª¸¸ ³ÖÀ¸¸é
Áï½Ã ½ÇÇàÇØ º¼ ¼ö ÀÖ´Ù. ¼Ò½º ¼±µÎ¿¡´Â °øÅëÀûÀ¸·Î »ç¿ëÇÏ´Â
import ±¸¹®ÀÌ ÀÖ°í Á¦ÀÏ ³¡¿¡´Â App ÄÄÆ÷³ÍÆ®¸¦ ¿ÜºÎ·Î °ø°³ÇÏ´Â export default App; ¼±¾ðÀÌ ÀÖ´Ù.
import React from 'react';
//*
¿¹Á¦ 1
//*/
/*
¿¹Á¦ 2
//*/
export default App;
ÁÖ¼® ½ÃÀÛ ºÎºÐ¿¡´Â °£´ÜÇÑ ¼³¸íÀÌ ÀÛ¼ºµÇ¾î ÀÖ°í À̸§ÀÌ ÀÖ´Â ¿¹Á¦´Â À̸§:¼³¸í
Çü½ÄÀ¸·Î ÀÛ¼ºÇØ µÎ¾ú´Ù. ÀÌ Çü½ÄÀ¸·Î study ÇÁ·ÎÁ§Æ®¿¡
ÀÌ Ã¥ÀÇ ¸ðµç ¿¹Á¦°¡ ´Ù Æ÷ÇԵǾî ÀÖ´Ù. Ã¥À» Àд ½ÃÁ¡¿¡´Â ÇÁ·ÎÁ§Æ®ÀÇ ±¸Á¶°¡ ´Þ¶óÁú ¼ö Àִµ¥ ÀÌ
°æ¿ì »õ·Î ÇÁ·ÎÁ§Æ®¸¦ »ý¼ºÇÑ ÈÄ App.tsx¿Í App.css¸¸
º¹»çÇØ ³ÖÀ¸¸é ÃֽйöÀü¿¡¼µµ ¿¹Á¦¸¦ ½ÇÇàÇØ º¼ ¼ö ÀÖ´Ù.
Á÷Á¢ Äڵ带 ŸÀÌÇÎÇØ°¡¸ç °øºÎÇÏ´Â°Ô ½Ã°£Àº °É¸®Áö¸¸ ²Ä²ÄÈ÷ »ìÆìº¼ ¼ö ÀÖ°í ÄÚµåÀÇ ±¸Á¶¿¡µµ Àͼ÷ÇØÁú ¼ö ÀÖ¾î
¹Ù¶÷Á÷ÇÏ¸ç ±ÇÀåÇÏ´Â ¹ÙÀÌ´Ù. ½Ã°£ÀÌ ³Ë³ËÄ¡ ¾Ê´Ù¸é ¹èÆ÷ ¿¹Á¦¸¦ Ȱ¿ëÇÏ¿© ºü¸¥ ¼Óµµ·Î ÇнÀÇ쵂 ±×·¸´Ù°í
ÇØ¼ °Ç¼ºÀ¸·Î Àб⸸ ÇÏ¸é ¾ÈµÇ°í ¾îµð°¡ ¾î¶»°Ô ¹Ù²î¾ú´ÂÁö´Â Àß °üÂûÇØ º¸ÀÚ. ¿¹Á¦ Çϳª¸¦ º¼ ¶§¸¶´Ù
Â÷ºÐÇÏ°Ô Á¤¸®ÇÏ°í ³Ñ¾î°¡¾ß ÇÏ¸ç ±×·¯´Ù º¸´Ï °øºÎ¿¡´Â ¿ø·¡ ½Ã°£ÀÌ ¸¹ÀÌ °É¸°´Ù.
vite·Î »ý¼ºÇÑ ÇÁ·ÎÁ§Æ®ÀÇ ±âº» ½ºÅ¸ÀÏÀº Áß¾Ó Á¤·Ä¿¡ Èò ¹ÙÅÁÀ¸·Î
µÇ¾î ÀÖ´Ù. ȸ鿡¼ º¸±â¿¡´Â ¹«³ÇÏÁö¸¸ Áö¸éÀ̳ª °Á¿¡ ½ÇÇà °á°ú·Î º¸±â¿¡´Â ¿©¹é°ú Àß ±¸ºÐµÇÁö ¾Ê¾Æ
°¡µ¶¼ºÀÌ ¶³¾îÁø´Ù. ±×·¡¼ App.cssÀÇ #root ½ºÅ¸ÀÏÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇØ µÎ¾ú´Ù.
#root {
max-width: 1280px;
margin: 0 auto;
padding: 1rem;
text-align: left;
background-color: rgb(224, 224, 224);
}
½ÇÇà °á°ú¸¦ ĸÃÄÇßÀ» ¶§ ÄÄÆ÷³ÍÆ® ¿µ¿ªÀ» ºÐ¸íÈ÷ Ç¥½ÃÇϱâ À§ÇØ ¹ÙÅÁ»öÀº ¿¶Àº ȸ»öÀ¸·Î ÁöÁ¤ÇÏ°í ¹®ÀÚ¿Àº ¿ÞÂÊ
Á¤·ÄÇß´Ù. ¾ÈÂÊ ¿©¹éÀº 1´ÜÀ§(=16px)¸¸Å ¶ç¿î´Ù.

ÀÌÈÄ Áö¸é¿¡¼´Â ³»¿ë ÆÄ¾Ç°ú ¹«°üÇÑ ºê¶ó¿ìÀú ÇÁ·¹ÀÓÀº »ý·«Çϰí ȸ»öÀÇ ÄÄÆ÷³ÍÆ® ¿µ¿ª¸¸ Ä¸Ã³ÇØ¼ º¸ÀδÙ.
À¥Àº Çмú ³í¹® °øÀ¯¿ëÀ¸·Î °³¹ßµÇ¾úÀ¸¸ç Á¤ÀûÀÎ ¹®¼¸¸ º¸¿© ÁÖ¸é ÃæºÐÇß´Ù. ¿äÁòÀÇ
À¥Àº ½Ç½Ã°£À¸·Î °è»êÇÑ Á¤º¸¸¦ µ¿ÀûÀ¸·Î »ý¼ºÇÏ¿© º¸¿© ÁØ´Ù. DB¿¡¼ ÀÐÀº °ªÀ̵ç, »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ °ªÀÌµç ´Ù ½ÇÇàÁß¿¡ °áÁ¤µÇ´Â °ªÀÌ¾î¼ ÄÚµå·Î ¹®¼¸¦ »ý¼ºÇÏ¿© º¸¿© ÁÖ¾î¾ß ÇÑ´Ù.
Á¦¸ñÀ̳ª ·¹À̾ƿô ¿ÜÀÇ °ÅÀÇ ¸ðµç ³»¿ëÀº ´Ù ½ÇÇàÁß¿¡ °è»êÇÑ °ÍÀÌ´Ù. ³×À̹ö¸¦
º¸¸é Ç×»ó °°Àº °Ç ¾ø°í ´º½º³ª ±¤°í³ª ¸Å¹ø ¹Ù²ï´Ù. ½ÇÇàÁß¿¡ ¹º°¡¸¦ ¸¸µé¾î ³»·Á¸é °á±¹ ÄÚµùÀ» ÇØ¾ß
ÇÑ´Ù. 1Àå¿¡¼ ¼ø¼ö ÀÚ¹Ù½ºÅ©¸³Æ®·Î ¸¸µç ¿¹Á¦¸¦ º¸ÀÎ ÀûÀÌ Àִµ¥ ´Ù½Ã Çѹø ´õ »ìÆì º¸ÀÚ.
score.html
<!DOCTYPE
html>
<html>
<head>
<meta
charset="utf-8">
<title>sample</title>
</head>
<body>
<div id =
"root"></div>
<script>
// Ãâ·ÂÇÒ
Á¡¼ö
let
score = 123
//
<h2> ÅÂ±× »ý¼º
let
head = document.createElement("h2");
head.setAttribute("class","head")
let
text = document.createTextNode("¼ºÀûÇ¥");
head.appendChild(text);
// ·çÆ®¿¡ <h2> ÅÂ±× Ãß°¡
let
root = document.getElementById("root")
root.appendChild(head);
//
<p> ÅÂ±× »ý¼º
let
para = document.createElement("p");
para.setAttribute("id","result")
let
textpara = document.createTextNode("Á¡¼ö´Â" +
score + "ÀÔ´Ï´Ù.");
para.appendChild(textpara);
// ·çÆ®¿¡ <p> ÅÂ±× Ãß°¡
root.appendChild(para);
</script>
</body>
</html>
HTML ÆÄÀÏÀº ºê¶ó¿ìÀú¿¡¼ Á÷Á¢ ¿¾î °á°ú¸¦ È®ÀÎÇÑ´Ù. ÀÌ ¿¹Á¦ÀÇ score º¯¼ö´Â ¿ÜºÎ¿¡¼ ÁÖ¾îÁö´Â °¡º¯ÀûÀÎ °ªÀÌ´Ù. ³ëµå ¸¸µé°í ¼Ó¼º ¼³Á¤ÇÏ°í ³ëµå³¢¸® ¿¬°áÇÏ´Â ¸ðµç ÀÛ¾÷À» ÇÔ¼ö È£Ãâ·Î ó¸®ÇÑ´Ù. score º¯¼ö°ªÀ» ¹®´Ü¿¡ Áý¾î ³Ö´Â °Íµµ ¸¶Âù°¡ÁöÀÌ´Ù. ¸®¾×Æ®¸¦
¾²Áö ¾Ê¾ÒÁö¸¸ ½ÇÇà °á°ú´Â °°´Ù.
¾î·Á¿î ÄÚµå´Â ¾Æ´ÏÁö¸¸ ³Ê¹« ±æ°í º¹ÀâÇÏ´Ù. ÀÏÀÏÀÌ Å¸ÀÌÇÎÇÏ¸é »ý»ê¼º
¶³¾îÁö°í ¿ÀŸÀÇ À§Çèµµ ³ô´Ù. À̺¸´Ù ´õ Æí¸®ÇÑ ¹æ¹ýÀÌ ÇÊ¿äÇѵ¥ ±×°Ô ¹Ù·Î ¸®¾×Æ®ÀÌ´Ù. study ÇÁ·ÎÁ§Æ®¿¡ ÀÌ¹Ì ¼ºÀûÇ¥¸¦ »ý¼ºÇÏ´Â JSX ±¸¹®ÀÌ ÀÛ¼ºµÇ¾î
Àִµ¥ ÀÌ ±¸¹®À» ÇÔ¼ö È£Ãâ¹®À¸·Î ¹Ù²ã º¸ÀÚ. ÄÚµå´Â App¿¡¸¸
ÀÛ¼ºÇÏ¸é µÈ´Ù. ÀÌ ¾È¿¡¼ React ÆÐŰÁöÀÇ ±â´ÉÀ» »ç¿ëÇϹǷΠReact¸¦ ÀÓÆ÷Æ®ÇÑ´Ù.
import
React from 'react';
import
'./App.css';
function
App() {
let score = 123
return (
React.createElement('div',
null,
React.createElement('h2', { className: 'head' }, '¼ºÀûÇ¥'),
React.createElement('p', { id: 'result' }, 'Á¡¼ö´Â
' + score + 'ÀÔ´Ï´Ù.')
)
)
}
export
default App;
JSX´Â »ç¿ëÇÏÁö ¾Ê°í ÇÔ¼ö È£Ãâ°ú ¼ø¼öÇÑ ÀÚ¹Ù½ºÅ©¸³Æ®¸¸À¸·Î ÀÛ¼ºÇß´Ù. ¸®¾×Æ®ÀÇ createElement ¸Þ¼µå¸¦ È£ÃâÇÏ¿© ¿¤¸®¸ÕÆ®¸¦ ¸¸µéµÇ
ÀÚ½Ä ¿¤¸®¸ÕÆ®±îÁö ÇѲ¨¹ø¿¡ »ý¼ºÇß´Ù. ÀÌ·¸°Ô ¸¸µç App ÄÄÆ÷³ÍÆ®¸¦ div root¿¡ ºÙ¿© ·£´õ¸µÇÑ´Ù. ¾Õ ¿¹Á¦¿Í ½ÇÇà °á°ú´Â °°Áö¸¸
³ëµå¸¦ ¸¸µé ¶§ »ç¿ëÇÑ ÇÔ¼ö°¡ ´Ù¸£´Ù´Â Á¡À» ÁÖÀÇÇÏÀÚ.
ÀÚ¹Ù½ºÅ©¸³Æ® :
document.createElement
¸®¾×Æ® : React.createElement
ÀüÀÚ´Â ºê¶ó¿ìÀú°¡ ¹Ù·Î ÀνÄÇÒ ¼ö ÀÖ´Â ³ëµå¸¦ »ý¼ºÇϸç appendChild·Î
¾î´À ³ëµå ¹Ø¿¡³ª Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ÀÌ¿¡ ºñÇØ ÈÄÀÚ´Â ¸Þ¸ð¸®»ó¿¡¸¸ Á¸ÀçÇÏ´Â ³ëµå °´Ã¼¸¦ »ý¼ºÇÏ¸ç ºê¶ó¿ìÀú°¡
Á÷Á¢ ÀνÄÇÏÁö ¸øÇÑ´Ù. ±×·¡¼ ½ÇÁ¦ ³ëµå·Î ¹Ù²ã È¸é ±×¸®´Â
render ÇÔ¼ö°¡ ÇÊ¿äÇÏ´Ù. App ÄÄÆ÷³ÍÆ®¸¦ ·£´õ¸µÇÏ´Â ÄÚµå´Â main.tsx¿¡ ÀÌ¹Ì ÀÛ¼ºµÇ¾î ÀÖ´Ù.
createRoot(document.getElementById('root')!).render(
<StrictMode>
<App />
</StrictMode>,
)
¸®¾×Æ®ÀÇ °¡»ó DOM »ý¼º ±¸¹®Àº ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ ºñÇØ Ãà¾àÀûÀ̰í ªÁö¸¸
±×·¡µµ ÇÔ¼ö¸íÀÌ ±æ°í ÀÏÀÏÀÌ °´Ã¼·Î °¨½Î¾ß ÇϹǷΠ»ý»ê¼ºÀÌ ¶³¾îÁö±â´Â ¸ÅÇѰ¡ÁöÀÌ´Ù. ÀÌ°É ´õ ª°Ô ÁÙ¿©
²À ÇÊ¿äÇÑ Á¤º¸¸¸ °£·«ÇÏ°Ô ±â¼úÇÏÀÚ´Â ¾ÆÀ̵ð¾î°¡ ¹Ù·Î JSXÀÌ´Ù.
JSX·Î ¹Ù²Ù¸é study ÇÁ·ÎÁ§Æ®ÀÇ Ã³À½¿¡ ¸¸µé¾ú´ø Äڵ尡 µÈ´Ù.
function App() {
let
score = 123
return (
<div>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</div>
)
}
ÇÔ¼ö È£Ãâ¹® µûÀ§´Â ¾ø°í ¸¸µé°íÀÚ Çϴ ű׸í°ú ¼Ó¼º, ¹®ÀÚ¿·Î¸¸
±¸¼ºµÇ¾î ÀÖ´Ù. ¸¶Ä¡ HTML ¹®¼¸¦ ¸¸µéµí ª°í °£·«ÇϰÔ
³»¿ë¸¸ ±â¼úÇÏ¸é µÇ´Ï ¾²±â ÆíÇϰí Àбâ ÁÁ°í È®ÀåÇϱ⵵ Æí¸®ÇÏ´Ù.
¹®Á¦´Â JSX°¡ À¥Ç¥ÁØÀÌ ¾Æ´Ï¶ó´Â Á¡ÀÌ´Ù. HTMLó·³ »ý°åÀ» »Ó °°Áö´Â ¾Ê¾Æ ºê¶ó¿ìÀú°¡ ÀÌ ¹®¼¸¦ Ç¥½ÃÇÒ ¼ö ¾ø´Ù. °Ô´Ù°¡
ÀÚ¹Ù½ºÅ©¸³Æ®µµ ¾Æ´Ï¾î¼ ½ÇÇà¿£Áøµµ ÀνÄÇÏÁö ¸øÇÑ´Ù. JSX´Â HTML°ú
ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ µ¿½Ã¿¡ Ç¥ÇöÇÒ ¼ö ÀÖ´Â °íÀ¯ÀÇ ¹®¹ýÀ» °¡Áö´Â XML ¹®¼ÀÏ »ÓÀÌ´Ù.
´©±º°¡°¡ JSX¸¦ ÀÚ¹Ù½ºÅ©¸³Æ® ½ÇÇà¿£ÁøÀÌ ÀÌÇØÇÒ ¼ö ÀÖ´Â ÄÚµå·Î ¹ø¿ªÇؾß
ÇÑ´Ù. ±× ¿ªÇÒÀ» ÇÏ´Â ÁÖü°¡ Æ®·£½ºÆÄÀÏ·¯ÀÌ´Ù. ÄÄÆÄÀÏ·¯´Â
¼Ò½º¸¦ ÀÌÁø ÆÄÀÏ·Î ¹ø¿ªÇϴµ¥ ºñÇØ Æ®·£½ºÆÄÀÏ·¯´Â ¼Ò½º¸¦ ´Ù¸¥ ¼Ò½º·Î ¹ø¿ªÇÑ´Ù. JSX´Â Æ®·£½ºÆÄÀÏ·¯¿¡
ÀÇÇØ ÀÚ¹Ù½ºÅ©¸³Æ® ÄÚµå·Î ¹Ù²î°í ¸®¾×Æ®°¡ ÀÌ Äڵ带 ½ÇÇàÇÏ¿© HTML ¹®¼ ¸¸µé°í ºê¶ó¿ìÀú¿¡ º¸À̰Ô
µÈ´Ù.
JSX ±¸¹®¿¡ ÀÖ´Â
<div>, <h2>, <p>´Â űװ¡ ¾Æ´Ï¶ó´Â °ÍÀ» ÀÌÇØÇØ¾ß ÇÑ´Ù.
ÀÌ·± ű׸¦ »ý¼ºÇÏ´Â ÇÔ¼ö È£Ãâ¹®À¸·Î ¹ø¿ªµÇ´Â ÀÏÁ¾ÀÇ ÄÄÆ÷³ÍÆ®ÀÌ´Ù. ¿Ü¿ì±â ½±µµ·Ï °¡±ÞÀûÀ̸é HTML ÅÂ±×¿Í °°Àº À̸§À¸·Î ÇØ ³õ¾Ò°í HTML·Î ¹Ù²Ù±â ½¬¿î °´Ã¼ÀÏ
»ÓÀÌ´Ù.
Æ®·£½ºÆÄÀÏ·¯´Â ¶ÇÇÑ ÃֽŠÀÚ¹Ù½ºÅ©¸³Æ® ¹®¹ýÀ» ¿¹Àü ºê¶ó¿ìÀú°¡ ½ÇÇàÇÒ ¼ö ÀÖ´Â ±¸Çü ¹®¹ýÀ¸·Î º¯È¯ÇÏ¿© ȣȯ¼ºÀ»
³ôÀÌ´Â ¿ªÇÒµµ ÇÑ´Ù. JSX¸¦ ÀÚ¹Ù½ºÅ©¸³Æ®·Î º¯È¯ÇÏ´Â Æ®·£½ºÆÄÀÏ·¯µµ ¿©·¯ °¡Áö°¡ ÀÖ´Ù.
¢º¹Ùº§(Babel) : ¿øÁ¶
Æ®·£½ºÆÄÀÏ·¯À̸ç Çѵ¿¾È Ç¥ÁØÀ̾ú´Ù. ȣȯ¼ºÀÌ ¶Ù¾î³ª°í À¯¿¬ÇÏÁö¸¸ ¼Óµµ°¡ ´À¸®´Ù.
¢ºSWC(Speedy Web
Compiler) : ŸÀÔ½ºÅ©¸³Æ®¸¦ ó¸®ÇÒ ¼ö ÀÖ°í Rust·Î ÀÛ¼ºµÇ¾î ¼Óµµ°¡ ºü¸£´Ù.
¢ºTSC(TypeScript
Compiler) : ŸÀÔ½ºÅ©¸³Æ®¸¦ ÀÚ¹Ù½ºÅ©¸³Æ®·Î ¹ø¿ªÇÏ´Â °ÍÀÌ º»¿¬ÀÇ ±â´ÉÀÌÁö¸¸ JSX º¯È¯µµ
Áö¿øÇÑ´Ù.
¢ºESBuild : Go ¾ð¾î
±â¹ÝÀ̸ç Ãʰí¼ÓÀ¸·Î ¹ø¿ªÇÑ´Ù. ¹Ùº§º¸´Ù ÃÖ¼Ò 10¹è, ÃÖ´ë 100¹è±îÁö ºü¸£´Ù.
¾î¶² Æ®·£½ºÆÄÀÏ·¯¸¦ »ç¿ëÇÒ °ÍÀΰ¡´Â ÇÁ·ÎÁ§Æ® ¼³Á¤¿¡ µû¶ó ´Þ¶óÁø´Ù. CRA´Â
¹Ùº§À» »ç¿ëÇÏ¿© ¹ø¿ª ¼Óµµ°¡ ´À·È´Ù. vite´Â ¸ðµå³ª ¼³Á¤¿¡ µû¶ó ÃÖÀûÈµÈ ¹æ¹ýÀ» ¼±ÅÃÇÑ´Ù. °³¹ß¿¡´Â ESBuild¸¦ »ç¿ëÇÏ¿© ºü¸¥ ¼Óµµ¿¡ ÁßÁ¡À» µÐ´Ù. ÇÁ·Î´ö¼Ç¿¡´Â Rollup ¹øµé·¯°¡ ¹Ùº§À̳ª SWC¸¦ Ç÷¯±×ÀÎ ÇüÅ·Π»ç¿ëÇÏ¿© ¹ø¿ª »Ó¸¸ ¾Æ´Ï¶ó ÃÖÀûÈµÈ ¹øµé¸µ±îÁö ¼öÇàÇÑ´Ù.
¿©±â¼ Áß¿äÇÑ °ÍÀº JSX°¡ ±×³É ½ÇÇàµÇ´Â°Ô ¾Æ´Ï¶ó ¾î¶² ÇüÅÂµç Æ®·£½ºÆÄÀÏ·¯¸¦
°ÅÃÄ ¹ø¿ªµÇ°í ¹øµé¸µµÈ´Ù´Â Á¡ÀÌ´Ù. °á±¹¿¡´Â ºê¶ó¿ìÀú°¡ ÀÌÇØÇÒ ¼ö Àִ ű׷Π¹Ù²î¾î À¥ ÆäÀÌÁö¿¡ Ç¥½ÃÇØ¾ß
ÇÑ´Ù.
JSX ¾È¿¡¼´Â °íÀ¯ÀÇ ¾ö°ÝÇÑ ¹®¹ýÀÌ Àû¿ëµÈ´Ù. °¡±ÞÀû HTML°ú ºñ½ÁÇÏ°Ô ¸¸µé¾î ³õ¾ÒÀ¸³ª ±Ùº»ÀûÀ¸·Î ¾ð¾î°¡ ´Ù¸£´Ï
Àû¿ëµÇ´Â ±ÔÄ¢µµ ´Ù¸£´Ù. ¾î¶² °ÍÀÌ µÇ°í ¾ÈµÇ´ÂÁö »ó¼¼È÷ ¾Ë¾Æ¾ß ÇÑ´Ù.
¸®¾×Æ®ÀÇ °¡Àå ±âÃÊÀûÀÎ ±ÔÄ¢À̶ó ´Ù ¾Ï±âÇÏ°í ½À°üÀÌ µé¾î¾ß ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é "ÀÌ°Ô ¿Ö ¾ÈµÇÁö?"ÇÏ°í °¼¿ô°¼¿ô ÇÒ ¶§°¡ ²À ÀÖÀ»
°ÍÀÌ´Ù.
study ÇÁ·ÎÁ§Æ®ÀÇ JSX ±¸¹®À»
¼öÁ¤ÇØ °¡¸ç ¾î¶² ±ÔÄ¢ÀÌ ÀÖ´ÂÁö ½Ç½ÀÇØ º¸ÀÚ. JSX ±¸¹®Àº °á±¹Àº À¥ÆäÀÌÁö¿¡ º¸ÀÏ Å±׸¦ Á¤ÀÇÇÑ´Ù. űװ¡ Çϳª »ÓÀ̶ó¸é ±× ű׸¦ ¸®ÅÏÇÏ¸é µÈ´Ù. ¼ºÀûÇ¥¿¡¼ Á¦¸ñÀº
»©°í ¼ºÀû ÀÚü¸¸ Ãâ·ÂÇÏ°Ú´Ù¸é ´ÙÀ½°ú °°ÀÌ ÀûÀ¸¸é µÇ°í ÀÌ»ó¾øÀÌ Àß Ãâ·ÂµÈ´Ù.
function
App() {
let score = 123
return (
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
)
}
<p> űװ¡ °¡»ó
DOMÀÇ ·çÆ®°¡ µÇ¸ç Á¹°³´Â ¾ø´Â ´Üµ¶ ´ëÀåÀÌ´Ù. ±×·¯³ª űװ¡ µÎ °³ ÀÌ»óÀÏ ¶§´Â ±ÔÄ¢ÀÌ
´Þ¶óÁø´Ù. Á¦¸ñÀ» ´Ù½Ã Ãß°¡ÇØ º¸ÀÚ.
function
App() {
let score = 123
return (
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
)
}
ÀÌ°Ç ¾ÈµÈ´Ù. À¥ÆäÀÌÁö¿¡´Â ¿¡·¯°¡ ÀÜ¶à ³ªÅ¸³´Ù. °³¹ß ¹öÀüÀ̶ó ¾îµð°¡ À߸øµÇ¾ú´ÂÁö ¾Ë·ÁÁØ´Ù.

ÀÎÁ¢ÇÑ Å±״ ¹Ýµå½Ã ÇϳªÀÇ Å±׷Π°¨½Î¾ß ÇÑ´Ù°í µÇ¾î ÀÖ´Ù. JSX·Î
»ý¼ºÇÏ´Â °¡»ó DOMÀº À¯ÀÏÇÑ ·çÆ® ³ëµå°¡ ÀÖ¾î¾ß ÇÑ´Ù. ¾ó¸¶µçÁö
¸¹Àº ű׸¦ Æ÷ÇÔÇÒ ¼ö ÀÖÁö¸¸ ±× ¸ðµÎ¸¦ Æ÷ÇÔÇÏ´Â ´ëÀåÀÌ Á¸ÀçÇØ¾ß ÇÑ´Ù. ù ¿¹Á¦¿¡´Â h2¿Í p¸¦ °¨½Î´Â div ű׸¦
»óÀ§¿¡ Àû¾î ÁÖ¾ú´Ù.
function App() {
let
score = 123
return (
<div>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</div>
)
}
À̶§ div ű״ h2¿Í p¸¦ ¹´Â ºÎ¸ðÀÇ ¿ªÇÒÀ» ÇÒ »Ó ȸ鿡 º¸ÀÌÁöµµ ¾Ê°í ¾Æ¹« ±â´Éµµ ¾ø´Ù. ÀÌ·±
¿ëµµ¶ó¸é ¾î¶² ÅÂ±×µç »ó°ü ¾ø´Ù. section, article, header µîÀÇ ºí·Ï ű׵µ °¡´ÉÇѵ¥
Àǹ̷ÐÀû ¿ëµµ°¡ Á¤ÇØÁ® ÀÖÀ» »Ó div¿Í °ÅÀÇ °°´Ù. ½ÉÁö¾î
½ÇÁ¦ ÆùÆ®°¡ ¹Ù²î´Â ºÎÀÛ¿ëÀÌ ÀÖ´õ¶óµµ b, i, u °°Àº ű׵µ ·çÆ®·Î ¾µ ¼ö ÀÖ´Ù.
<div>´Â ¾Æ¹« ±â´ÉÀÌ ¾ø¾îµµ ¾î·°Ç°£¿¡ ³ëµåÀ̹ǷΠ¾à°£
¼ÕÇØ¸¦ º»´Ù. ¾îÂ÷ÇÇ Â÷Àϵ带 ¹´Â ¿ëµµ·Î¸¸ »ç¿ëÇÑ´Ù¸é ºó ű׸¦ ¾µ ¼öµµ ÀÖ´Ù. ¸®¾×Æ®´Â ÀÌ·± ¿ëµµ·Î React.Fragment ű׸¦ Á¦°øÇÑ´Ù. ÅÂ±× À̸§ÀÌ ³Ê¹« ±æ´Ù¸é <> </>·Î ÁÙ¿©
¾²´Â ¹æ¹ýµµ Á¦°øÇϸç import ¾øÀ̵µ ¾µ ¼ö ÀÖ¾î ÀÌ ¹æ¹ýÀÌ Á¦ÀÏ °£´ÜÇÏ´Ù.
|
import React from 'react'; function App() { let
score = 123
return ( <React.Fragment> <h2
className="head">¼ºÀûÇ¥</h2> <p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p> </React.Fragment> ) } |
function App() { let
score = 123
return ( <> <h2
className="head">¼ºÀûÇ¥</h2> <p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p> </> ) } |
·çÆ®¸¦ ¿ä±¸ÇÏ´Â ÀÌÀ¯´Â °¡»ó DOMÀ» ºÎÂøÇÒ ¶§ ÇϳªÀÇ ¿¤¸®¸ÕÆ®¸¸
ºÎÂøÇÏ¿© ±× ÀڽĵéÀ» Åë°·Î ºÙÀ̱â À§ÇؼÀÌ´Ù. °¡º¯ °³¼öÀÇ ¿¤¸®¸ÕÆ®¸¦ Çѹø¿¡ ºÙÀÌ·Á¸é ±×µé »çÀÌÀÇ
Á¾¼Ó °ü°è³ª ¼ø¼ µîÀÇ º¹ÀâÇÑ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö Àִµ¥ ÀÌ ±¸Á¶¸¦ JSX¿¡¼ ¹Ì¸® ¿Ï¼ºÇØ ¿À¶ó´Â ÀǹÌÀÌ´Ù.
¶Ç ÄÄÆ÷³ÍÆ®º°·Î ·çÆ®°¡ ÇϳªÀ̸é Àüü Æ®¸®¸¦ ¼øÈ¸ÇÏ´Â ¹æ¹ýÀÌ ´Ü¼øÇØÁ® º¯È¸¦ °¨ÁöÇÏ´Â ¼Óµµ°¡ »¡¶óÁø´Ù. ±×·¡¼ ·£´õ¸µÇÏ´Â ÇÔ¼ö´Â Àμö·Î ¸®¾×Æ® ³ëµå'µé'À» ¿ä±¸ÇÏ´Â°Ô ¾Æ´Ï¶ó ¸®¾×Æ® ³ëµå Çϳª¸¦ ¿ä±¸ÇÑ´Ù. ¾ó¸¶µçÁö ¸¹Àº
³ëµå¸¦ °¡Á®µµ µÇÁö¸¸ ÄÄÆ÷³ÍÆ®·Î Æ÷ÀåÇÏ¿© ÀçȰ¿ëÇÏ·Á¸é ·çÆ®´Â µü Çϳª¸¸ ÀÖ¾î¾ß ÇÑ´Ù.
root.render(reactNode)
»ç½Ç HTMLµµ
<html> ´ÜÀÏ ·çÆ® ±¸Á¶¸¦ °¡Áö¸ç XMLµµ ¸¶Âù°¡Áö·Î ·çÆ® Çϳª¸¦ µÎ°í ±×
¾Æ·¡¿¡ ¿¤¸®¸ÕÆ®¸¦ ³ª¿ÇÏ´Â ½ÄÀÌ´Ù. ¾Ë°í¸®Áò»ó ´ÜÀÏ ·çÆ®°¡ ÀÖ´Â°Ô ´õ °£´ÜÇϰí Àǹ̰¡ ºÐ¸íÇϱ⠶§¹®ÀÌ´Ù.
´ÙÀ½Àº ´ÜÀÏ ·çÆ®ÀÏ ¶§ JSXÀÇ Ç¥±â¹ý¿¡ ´ëÇØ ¿¬±¸ÇØ º¸ÀÚ. ¿¹¸¦ µé¾î Àλ縻¸¸ ÅÁ÷ÇÏ°Ô Ãâ·ÂÇÏ°í ½Í´Ù¸é h2¿¤¸®¸ÕÆ® Çϳª¸¸
ÀÖÀ¸¸é µÇ°í h2 ÀÚü°¡ ·çÆ®À̹ǷΠµû·Î div·Î °¨½Ò Çʿ䵵
¾ø´Ù.
function
App() {
return <h2>°¨»çÇÕ´Ï´Ù.</h2>
}
Á¤»óÀûÀ¸·Î Àß Ãâ·ÂµÈ´Ù.
±×·¯³ª Çü½Ä¼ºÀ» °®Ãá´ä½Ã°í ÀÌ°É µÎ ÁÙ·Î ³»·Á ¾²¸é ¾ÈµÈ´Ù. ÅÂ±×¿Í ³»¿ëÀ» °³ÇàÇÏ´Â °Íµµ µÎ ÁÙÀÌ ³ÑÀ¸¹Ç·Î ¿ª½Ã ¾ÈµÈ´Ù. ´ÙÀ½°ú
°°ÀÌ ¼öÁ¤ÇÑ ÈÄ ´Ù½Ã ½ÇÇàÇØ º¸ÀÚ.
function App() {
return
<h2>°¨»çÇÕ´Ï´Ù.</h2>
}
¿¡·¯´Â ¹ß»ýÇÏÁö ¾ÊÁö¸¸ ȸ鿡 ¾Æ¹« °Íµµ ³ª¿ÀÁö ¾Ê´Â´Ù. ²À µÎ ÁÙ·Î
¾²°í ½Í´Ù¸é °ýÈ£¸¦ °¨½Î¾ß ÇÑ´Ù. °ýÈ£ ³»¿¡¼´Â ÀÚÀ¯·Ó°Ô °³ÇàÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÅÂ±×¿Í ³»¿ëÀ» °³ÇàÇØµµ
»ó°ü ¾ø´Ù. ´ÙÀ½ µÎ ÄÚµå´Â °¡´ÉÇÏ´Ù.
|
return (
<h2>°¨»çÇÕ´Ï´Ù.</h2> ) |
return (
<h2> °¨»çÇÕ´Ï´Ù.
</h2> ) |
return ´ÙÀ½¿¡ °³ÇàÀ» ÇØ¼´Â ¾ÈµÇ´Â ÀÌÀ¯´Â JSXÀÇ ¹®Á¦°¡ ¾Æ´Ï¶ó Á¤È®ÇϰԴ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ÀÚµ¿ ¼¼¹ÌÄÝ·Ð »ðÀÔ(ASI) ¹®Á¦ÀÌ´Ù. µÎ ¼öÀÇ ÇÕÀ» ¸®ÅÏÇÏ´Â °£´ÜÇÑ ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö·Î Å×½ºÆ®ÇØ º¸ÀÚ. ÀÚ¹Ù½ºÅ©¸³Æ®¸¦
Àß ¾Ë¾Æµµ ¼ö½Ã·Î ¹®¹ýÀ» º¹½ÀÇÒ Çʿ䰡 ÀÖ´Ù.
|
function add(a, b) {
return a + b } |
function add(a, b) {
return a + b } |
function add(a, b) {
return ( a + b ) } |
|
°¡´É |
ºÒ°¡´É |
°¡´É |
ù ¹øÂ° ¿¹´Â Á¤¼®ÀûÀÌ¸ç µÎ ¹øÂ° ¿¹´Â °³Çà ¶§¹®¿¡ ÇÕÀ» ¸®ÅÏÇÏÁö ¸øÇÑ´Ù.
return¹®¿¡¼ ÀÌ¹Ì ¸®ÅÏÀÌ °áÁ¤µÇ¾ú°í µÚ¿¡ ¾Æ¹« °ªµµ ¾øÀ¸´Ï ¿©±â¼ ¹®ÀåÀÌ ³¡³µ´Ù°í ÆÇ´ÜÇÑ´Ù.
return ´ÙÀ½¿¡ ¼¼¹ÌÄÝ·ÐÀÌ ÀÚµ¿À¸·Î ºÙÀ¸¸ç undefined¸¦ ¸®ÅÏÇϴµ¥ ÀÌ´Â ¿ø·¡
¸ñÀûÀÎ ÇÕÀÌ ¾Æ´Ï´Ù. ¿¡·¯´Â ¹ß»ýÇÏÁö ¾ÊÁö¸¸ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇØµµ ÇÕÀ» ¾òÀ» ¼ö´Â ¾ø´Ù.
ÀÌ·¸°Ô µ¿ÀÛÇÒ ¼ö¹Û¿¡ ¾ø´Â ±Ùº»ÀûÀÎ ÀÌÀ¯´Â ÇÔ¼ö ¼±¾ðºÎ¿¡ ¸®ÅÏŸÀÔÀÌ ¸í½ÃµÇÁö ¾Ê¾Æ ¹» ¸®ÅÏÇÒÁö ¹Ì¸® ¾Ë ¼ö ¾ø±â
¶§¹®ÀÌ´Ù. »ç½Ç ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ÇÔ¼ö´Â ¸®ÅÏŸÀÔÀÌ ¹«Á¶°Ç ÀÖÀ¸¸ç ¸®ÅÏÇÏÁö ¾ÊÀ» °æ¿ì´Â undefined¸¦ ¸®ÅÏÇÏ´Â °ÍÀ¸·Î µÇ¾î ÀÖ´Ù. return¹®À» ¸¸³ª¸é
µÚÂÊ °ªÀ» ¸®ÅÏÇ쵂 °ª ¾øÀÌ °³ÇàµÇ¾î ÀÖÀ¸¸é ´ÙÀ½ ÁÙÀ» ÀÐÁöµµ ¾Ê°í undefined·Î ¿ÀÇØÇØ ¹ö¸®´Â
°ÍÀÌ´Ù.
°Ô´Ù°¡ ¼¼¹ÌÄݷеµ °Á¦ »çÇ×ÀÌ ¾Æ´Ï´Ù º¸´Ï °³ÇàÀ» ¹®ÀåÀÇ ³¡À¸·Î »ý°¢ÇÒ ¼ö¹Û¿¡ ¾ø´Ù. ÀÌ·± ¿ÀÇØ¸¦ ¹æÁöÇϱâ À§ÇØ ¸®ÅϰªÀ» ¿©·¯ ÁÙ·Î ÀûÀ» ¶§´Â ¹Ýµå½Ã °ýÈ£¸¦ ¿¾î ³õ°í ´ÙÀ½ÁÙ¿¡ ¸®ÅϰªÀ» Àû´Â´Ù. ÀÌ·¯¸é ´Ý´Â °ýÈ£¸¦ ¸¸³ª±â Àü±îÁö ÇϳªÀÇ ¸í·ÉÀ¸·Î ÀνÄÇÑ´Ù. ½ÉÁö¾î
´ÙÀ½ ±¸¹®µµ ¾ÈµÇ´Âµ¥ ÀÌÀ¯´Â ¶È°°´Ù. ¿©´Â °ýÈ£°¡ return°ú
°°Àº ÁÙ¿¡ ÀÖ¾î¾ß ÇÑ´Ù.
return
(
a + b
)
JSX°¡ ¿¤¸®¸ÕÆ® Çϳª¸¸ ¸®ÅÏÇÏ´Â °æ¿ì´Â °ÅÀÇ ¾ø°í ¼³»ç ÀÖ´Ù ÇÏ´õ¶óµµ
³»¿ëÀÌ ±×¸® °£´ÜÇÏÁö´Â ¾ÊÀ» °ÍÀÌ´Ù. ¶Ç ·çÆ®µµ ÇÊ¿äÇÏ´Ï return¹®ÀÇ
Çü½ÄÀº ´ÙÀ½ Æ÷¸ËÀÌ ¹«³ÇÏ´Ù. ÃÖ¼ÒÇÑ 5ÁÙÀº µÇ¾î¾ß ÇÑ´Ù.
return (
<>
¿©±â¿¡ °¡»ó DOM¿¡ ¹èÄ¡ÇÒ ¿¤¸®¸ÕÆ®¸¦ ±â¼úÇÑ´Ù.
</>
)
return ´ÙÀ½¿¡ ( °ýÈ£ºÎÅÍ
¿¾î ³õ°í, ¼³»ç űװ¡ Çϳª¹Û¿¡ ¾ø´õ¶óµµ ´ÙÀ½¿¡ È®ÀåÇÒ ¼öµµ ÀÖÀ¸´Ï
<> </>·Îµµ °¨½Î ³õ´Â °ÍÀÌ ÁÁ´Ù. ±ÇÀåµÇ´Â Çü½Ä´ë·Î ¾²¸é º°
¹®Á¦¾øÁö¸¸ ÃÖ¼ÒÇÑ ¿Ö Àú·± ±¸¹®À» ¾²°í ´Ù¸¥ º¯ÇüÀº ¾ÈµÇ´ÂÁö ÀÌÇØÇϰí ÀÖ¾î¾ß ÇÑ´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ®´Â Çü½Ä¿¡ ±¸¾Ö¾øÀÌ ¾µ ¼öÀÖ´Â ÇÁ¸®Æ÷¸Ë(free format)À»
Áö¿øÇÑ´Ù. °ø¹éÀ̳ª °³Çà, µé¿©¾²±â¸¦ ¸¶À½´ë·Î ÇØµµ µÈ´Ù. ´Ü, return ¹® ´ÙÀ½ÀÇ °³ÇàÀº Àǹ̰¡ ´Þ¶óÁö¹Ç·Î ¾ÈµÈ´Ù. ÀÌ·¡¼ ÀÚ¹Ù½ºÅ©¸³Æ®´Â Çü½Ä¼ºÀÌ ¶³¾îÁø´Ù´Â ¼Ò¹®ÀÌ Àִµ¥ ºÎÁ¤ÇÒ ¼ö ¾ø´Â »ç½ÇÀÌ´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ®º¸´Ù ŸÀÔÀ» ´õ ¾ö°ÝÇÏ°Ô Ãë±ÞÇϴ ŸÀÔ½ºÅ©¸³Æ®µµ ÀÌ ¹®Á¦´Â ÇØ°áÇÏÁö ¸øÇÑ´Ù. ±Ùº»ÀûÀ¸·Î ÇÔ¼ö°¡ ¹» ¸®ÅÏÇÏ´ÂÁö ¹Ì¸® ¾Ë ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. ±×·¯³ª
returnÀÇ ¾Æ·§ÁÙÀÌ ½ÇÇàµÉ ¼ö ¾øÀ½Àº ÀνÄÇÏ¸ç °æ°í¸¦ º¸¿© ÁØ´Ù.

¾Æ¹« ÀܼҸ®µµ ÇÏÁö ¾Ê´Â ÀÚ¹Ù½ºÅ©¸³Æ®º¸´Ù´Â È®½ÇÈ÷ ´õ ³´´Ù. º°°Å
¾Æ´ÏÁö¸¸ Ãʺ¸ ½ÃÀý¿¡ ´çÇØº¸¸é Ȳ´çÇÒ ¼ö ÀÖÀ¸´Ï ¾ð¾îÀÇ Æ¯¼ºÀ» Àß ¾Ë¾Æ µÎÀÚ.
HTML ÃÊâ±â¿¡´Â ÀÛ¼ºÀÚ°¡ ½Ç¼ö¸¦ ÇØµµ ºê¶ó¿ìÀú°¡ ´ëÃæ ºÁ ÁÖ´Â
°æ¿ì°¡ ¸¹¾Ò´Ù. ½ÃÀÛ°ú ³¡ ű×ÀÇ Â¦ÀÌ ¾È ¸Â¾Æµµ, ¼Ó¼º°ªÀ»
µû¿ÈÇ¥·Î °¨½ÎÁö ¾Ê¾Æµµ, ½ÉÁö¾î ű׳¢¸® Æ÷ÇÔ °ü°è°¡ ¾î±ß³ªµµ Àǵµ¸¦ À¯ÃßÇÏ¿© ¹®¼¸¦ º¸¿© ÁÖ¾ú´Ù. ±×·¯³ª ±Ô¸ð°¡ Á¡Á¡ Ä¿Áö¸é¼ ¹æ¸¸ÇÑ ¹®¹ýÀº À¥ ¹ßÀü¿¡ °É¸²µ¹ÀÌ µÇ¾ú°í
HTML5 Ç¥ÁØ ÀÛ¼º½Ã µÎ ±×·ìÀÌ Ã·¿¹ÇÏ°Ô ´ë¸³Çß´Ù.
¢ºW3C : ¹®¹ýÀ» XML ¼öÁØÀ¸·Î Á¤±³ÇÏ°í ¾ö°ÝÇÏ°Ô Á¦ÇÑÇÑ XHTMLÀ» Á¦½Ã
¢ºWHATWG : ȣȯ¼ºÀ» ÃÖ´ëÇÑ
ÁöŰ´Â ¼öÁØ¿¡¼ ±â´ÉÀ» È®Àå, Á¤¸®ÇÑ HTML5 Á¦½Ã
°á±¹ ½ÃÀåÀº ¾ö°ÝÇÑ ¹®¹ýº¸´Ù ȣȯ¼º¿¡ ¹«°Ô¸¦ µÐ HTML5¸¦ ¼±ÅÃÇß´Ù. ³Ê¹« ¾ö°ÝÇÏ¸é ±âÁ¸ °³¹ßÀÚ°¡ ÀûÀÀÇÏ±â ¾î·Æ°í ÀÌÀü ¹®¼¿ÍÀÇ È£È¯ À¯Áöµµ ¾î·Æ´Ù. ±×·¯´Ù º¸´Ï ÇöÀçµµ HTMLÀº À¯¿¬ÇÑ ÆíÀÌ¸ç ´ëÃæ ÀÛ¼ºÇصµ Àß µ¹¾Æ°£´Ù. ±×·¯³ª HTMLµµ ȣȯ¼ºÀÇ ¾Ð¹ÚÀ¸·Î ¾î¿ ¼ö ¾øÀÌ Çã¿ëÇÏ´Â °ÍÀÏ
»Ó °¡±ÞÀûÀ̸é XHTMLÀÇ ¾ö°ÝÇÑ ¹®¹ýÀ» ÁöŰ´Â °ÍÀÌ ÁÁ´Ù.
JSX °°Àº Á¤±³ÇÑ ±¸¹®Àº HTMLÀÇ
¹°··ÇÑ ¹®¹ý°ú ¸ÂÁö ¾Ê°í ÆÄ¼°¡ À¥ºê¶ó¿ìÀú ¼öÁØÀÇ °ü¿ë±îÁö Çã¿ëÇÏ±â ¾î·Æ´Ù. °ú¿¬ ¾î¶² Â÷À̰¡ ÀÖ´ÂÁö study ÇÁ·ÎÁ§Æ®³»ÀÇ ¼ºÀûÇ¥ ¼Ò½º¸¦ ¼öÁ¤ÇØ º¸¸ç ¿¬±¸ÇØ º¸ÀÚ.
index.htmlÀÇ div root¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
<DIV id=root></div>
DIV ¿©´Â ű׸¦ ´ë¹®ÀÚ·Î ¾²°í ´Ý´Â ű״ ¼Ò¹®ÀÚ·Î ½è°í idÀÇ ¼Ó¼º°ªÀÎ root¸¦ µû¿ÈÇ¥·Î °¨½ÎÁö ¾Ê¾Ò´Ù. ÀÌ »óÅ¿¡¼ ¼Ò½º¸¦ ÀúÀåÇØµµ ¾Æ¹« ÀÌ»ó¾øÀÌ Àß ½ÇÇàµÈ´Ù. ÀÌ ¿µ¿ªÀº HTMLÀ̸ç ÀÌ·¸°Ô ¾û¸ÁÀ¸·Î ½áµµ ¹®Á¦ »ïÁö ¾Ê´Â´Ù. ±×·¯³ª JSX ±¸¹®Àº È£¶ôÈ£¶ôÇÏÁö ¾Ê´Ù. AppÀÇ ¼ºÀûÇ¥¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤Çϸé
¿¡·¯°¡ ¿ì¼ö¼ö ¹ß»ýÇÑ´Ù. HTML¿¡¼´Â ¹®Á¦ »ïÁö ¾ÊÁö¸¸ JSX¿¡¼´Â
Çã¿ëµÇÁö ¾Ê´Â´Ù.
function App() {
let
score = 123
return (
<DIV>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id=result>Á¡¼ö´Â {score}ÀÔ´Ï´Ù.
</div>
)
}
DIV ¿©´Â ű׸¦ ´ë¹®ÀÚ·Î ¾²¸é ¾ÈµÇ¸ç ¼Ò¹®ÀÚ·Î ½á¾ß ÇÑ´Ù. ´Ý´Â ű׵µ ´ë¹®ÀÚ·Î ½á ¦À» ¸ÂÃçµµ ¾ÈµÇ°í Divµµ ¾ÈµÈ´Ù. <div></div>·Î¸¸ ½á¾ß ÇÑ´Ù. id ¼Ó¼º°ª result´Â ¹Ýµå½Ã µû¿ÈÇ¥·Î °¨½Î¾ß ÇÑ´Ù. <p
id='result'> ½ÄÀ¸·Î ÀÛÀº µû¿ÈÇ¥¸¦ ¾²´Â °ÍÀº Çã¿ëÇÑ´Ù. <p> ű×ÀÇ
´Ý´Â űװ¡ ¾ø¾îµµ ¸ÅÁ¤ÇÏ°Ô ¿¡·¯ÀÌ´Ù.
JSX´Â XML ¹®¼À̰í
±ÔÄ¢ÀÌ ¾ö°ÝÇØ Á¤È®ÇÏ°Ô ÀÛ¼ºÇØ¾ß ÇÑ´Ù. ´ëºÎºÐÀº HTML°ú
À¯»çÇÏ°Ô ÀÛ¼ºÇÒ ¼ö ÀÖÁö¸¸ ¸î °¡Áö ÁÖÀÇÇÒ °ÍÀÌ ÀÖ´Ù. ±âÁ¸ HTML
°³¹ßÀÚ°¡ ÁÖ·Î ½Ç¼öÇÏ´Â ºÎºÐÀ» Á¤¸®ÇØ º¸ÀÚ.
¸ÕÀú ¿©´Â ÅÂ±×¿Í ´Ý´Â ű״ ¹Ýµå½Ã ¦À» ÀÌ·ç¾î¾ß ÇÑ´Ù. ű׶õ
¿°í ´Ý´Â°Ô ¿øÄ¢ÀÌÁö¸¸ HTMLÀº ÆíÀÇ»ó ¿©´Â ű׸¸ µÎ´Â °Íµµ Çã¿ëÇÑ´Ù. ´ëÇ¥ÀûÀÎ ¿¹°¡ ¸ñ·ÏÀ» ³ª¿ÇÏ´Â <li>Àε¥ ´ëºÎºÐÀÇ Ç׸ñÀÌ
ÇÑÁÙ·Î ³¡³ª </li>°¡ ±»ÀÌ ¾ø¾îµµ µÈ´Ù. ±×·¯³ª JSX¿¡¼´Â ¾ÈµÈ´Ù. ¼ºÀûÇ¥ ¾Æ·¡¿¡ °ú¸ñº° Á¡¼ö¸¦ ¸ñ·ÏÀ¸·Î Àû¾î º¸ÀÚ.
function App() {
let
score = 123
return (
<>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
<ul>
<li> ±¹¾î : 80
<li> ¿µ¾î : 43
</ul>
</>
)
}
HTML¿¡¼´Â Àû¹ýÇÏ°í ´ç¿¬È÷ Àß ³ª¿À´Â ¹®¼ÀÌ´Ù. ±×·¯³ª JSX¿¡¼´Â
<li>ÀÇ ´Ý´Â űװ¡ ¾ø¾î ¾îµð±îÁö°¡ ³¡ÀÎÁö ¾Ö¸ÅÇÏ¸ç ¿©·¯ ÁÙ·Î ±â¼úÇÒ ¶§´Â ³¡À» ã±â ¾î·Á¿ö ¿¡·¯ ó¸®ÇØ ¹ö¸°´Ù. ¹Ýµå½Ã </li>·Î ´Ý¾Æ¾ß ÇÑ´Ù.
<li> ±¹¾î :
80</li>
<li> ¿µ¾î :
43</li>

Ȧ·Î ¾²´Â ű׵µ ²À ´Ý¾Æ¾ß ÇÑ´Ù. ¸¸¾à ´Ý´Â ű׸¦ ²À »ý·«Çϰí
½Í´Ù¸é ¿©´Â ű×ÀÇ ³¡À» />·Î Àû´Â´Ù. ¼ºÀûÇ¥ ¾Æ·¡¿¡
À̹ÌÁö Çϳª¸¦ ´õ Ãâ·ÂÇØ º¸ÀÚ. img ű׷ΠÀ̹ÌÁöÀÇ ÁÖ¼Ò¸¦ ÀûÀ¸¸é µÈ´Ù.
function
App() {
let score = 123
return (
<>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
<img
src="http://www.soen.kr/data/soen.png" />
</>
)
}

±×·¯³ª ´ÙÀ½Àº ¾ÈµÈ´Ù. HTML¿¡¼´Â ÈçÇÏ°Ô »ç¿ëÇÏ´Â ±¸¹®ÀÌÁö¸¸ JSX¿¡¼´Â Ȧű×ÀÇ ³¡À» ¿¸° ä·Î ¹æÄ¡ÇÏ¸é ³¡À» ãÁö ¸øÇØ ¿¡·¯´Ù.
<img
src="http://www.soen.kr/data/soen.png">
¾Æ´Ï¸é <img src=~></img> Çü½ÄÀ¸·Î
³¡ ű׸¦ ´Þ¾Æ Áà¾ß ÇÑ´Ù. ¹®´Ü Áß°£¿¡ °³ÇàÇÒ ¶§ HTMLÀº
º¸Åë <br>ű׸¦ ³¢¿ö ³ÖÁö¸¸ JSX¿¡¼´Â <br></br>·Î ¿°í ´Ý´Â ű×ÀÇ Â¦À» ¸ÂÃç¾ß ÇÑ´Ù. <br
/>·Î ¾²´Â°Ô Á¦ÀÏ °£ÆíÇÏ´Ù.
JSX´Â ¿ÜÇüÀûÀ¸·Î HTML°ú
À¯»çÇÏÁö¸¸ ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ带 Æ÷ÇÔÇϱ⵵ ÇÑ´Ù. À̶§´Â ÀÏ¹Ý ¹®ÀÚ¿°ú ±¸ºÐÇϱâ À§ÇØ { } °ýÈ£·Î Äڵ带 °¨½Î´Âµ¥ ¿¹Á¦¿¡¼ ÀÌ¹Ì score º¯¼ö¸¦ ¹®ÀÚ¿
»çÀÌ¿¡ ³Ö¾î º¸¾Ò´Ù.
Á¡¼ö´Â {score}ÀÔ´Ï´Ù.
ÀÌ ¹®ÀÚ¿À» ÇØ¼®ÇÒ ¶§ { } °ýÈ£¾ÈÀÇ ½ÄÀ» Æò°¡ÇÏ¿© ½ÇÁ¦°ªÀ» ½á
³Ö´Â´Ù. score°¡ 123À¸·Î ÃʱâÈµÈ º¯¼öÀ̹ǷΠ{score} ÀÚ¸®¿¡ 123ÀÌ µé¾î°£´Ù. { } °ýÈ£°¡ ¾øÀ¸¸é score´Â º¯¼ö°¡ ¾Æ´Ï¶ó ±×³É ¹®ÀÚ¿À̸ç "Á¡¼ö´Â scoreÀÔ´Ï´Ù."·Î
Ãâ·ÂµÈ´Ù.
Á¤¼ö°¡ ¾Æ´Ñ ¹®ÀÚ¿µµ °¡´ÉÇÏ´Ù. { }·Î °¨½Î¸é Á¤¼öµç ¹®ÀÚ¿À̵ç
º¯¼öÀÇ °ªÀ» Æò°¡ÇÏ¿© ¹®ÀÚ¿ »çÀÌ¿¡ ³Ö¾î ÁØ´Ù. º¯¼öÀÓÀ» °Á¶Çϱâ À§ÇØ letÀ¸·Î ¼±¾ðÇߴµ¥ const·Î Á¤ÀÇÇÑ »ó¼öµµ ¹°·Ð °¡´ÉÇÏ´Ù.
function
App() {
let name = "È«±æµ¿"
let score = 123
return (
<div>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">{name} ÇлýÀÇ Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</div>
)
}

±×·¯³ª { } °ýÈ£¾È¿¡ °´Ã¼¸¦ ³Ö´Â °ÍÀº ¾ÈµÈ´Ù. °¡´ÉÇÏ°Ô ¸¸µé ¼öµµ ÀÖÁö¸¸ ¾î¶² ¸â¹ö°¡ Ãâ·Â ´ë»óÀÌ°í °¢ ¸â¹ö¸¦ ¾î¶»°Ô ·£´õ¸µÇÒÁö ¾Ö¸ÅÇϹǷΠ°³¹ßÀÚ°¡ Á÷Á¢
¸â¹öº°·Î Ãâ·ÂÇϵµ·Ï µÇ¾î ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â Àß ½ÇÇàµÈ´Ù.
function
App() {
let student = {
name : "È«±æµ¿",
score : 123
}
return (
<div>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">{student.name} ÇлýÀÇ Á¡¼ö´Â
{student.score}ÀÔ´Ï´Ù.</p>
</div>
)
}
{ } ¾ÈÀÇ ÀÚ¹Ù½ºÅ©¸³Æ® ÄÚµå´Â ÇϳªÀÇ °ªÀ» ¸®ÅÏÇϴ ǥÇö½Ä(expression)¸¸ ³ÖÀ» ¼ö ÀÖ´Ù. º¯¼ö´Â ±× ÀÚü°¡ °ªÀ̹ǷÎ
´ç¿¬È÷ Ç¥Çö½ÄÀ̸ç ÇÔ¼ö È£Ãâ¹®À̳ª º¹ÀâÇÑ ¿¬»ê¹®ÀÇ °á°úµµ Ç¥Çö½ÄÀ̹ǷΠ°¡´ÉÇÏ´Ù. ´ÙÀ½ ¹®ÀåÀº ¸ðµÎ Çã¿ëµÈ´Ù.
<p id="result">Á¡¼ö´Â {score + 100}ÀÔ´Ï´Ù.</p>
<p id="result">Á¡¼ö´Â {score >
100 ? "ÇÕ°Ý":"ºÒÇÕ°Ý"}ÀÔ´Ï´Ù.</p>
<p id="result">Á¡¼ö´Â {Math.PI}ÀÔ´Ï´Ù.</p>
<p id="result">Á¡¼ö´Â {add(88, 99)}ÀÔ´Ï´Ù.</p>
score + 100 ¿¬»ê½ÄÀº µ¡¼À °á°ú¸¦ ¸®ÅÏÇϴ ǥÇö½ÄÀÌ´Ù. »ïÇ× Á¶°Ç ¿¬»ê¹®µµ µÑ Áß Çϳª¸¦ ¸®ÅÏÇϹǷΠ{ } °ýÈ£¾È¿¡ ¾µ
¼ö ÀÖ´Ù. Math.PI´Â »ó¼öÀ̰í add ÇÔ¼öÀÇ È£Ãâ °á°úµµ
ÇϳªÀÇ °ªÀÌ´Ù. ±×·¯³ª ¾î¶² µ¿ÀÛÀ» ó¸®ÇÏ´Â ¸í·É(Statement)Àº
ÀÛ¼ºÇÒ ¼ö ¾ø´Ù. ´ÙÀ½ ¹®ÀåÀº ¸ðµÎ ¿¡·¯ÀÌ´Ù.
<p id="result">Á¡¼ö´Â {return
score}ÀÔ´Ï´Ù.</p>
<p id="result">Á¡¼ö´Â {if (score
> 100) console.log('ÇÕ°Ý')}ÀÔ´Ï´Ù.</p>
return score´Â score¸¦
¸®ÅÏÇ϶ó´Â ¸í·ÉÀÌ¸ç ½ÇÇà °á°ú´Â °ªÀÌÁö¸¸ ÀÌ ¹®Àå ÀÚü´Â °ªÀÌ ¾Æ´Ï´Ù. if ¹®À¸·Î °ªÀ» Æò°¡ÇÒ ¼ö´Â
ÀÖÁö¸¸ console.log·Î ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â µ¿ÀÛµµ ¸í·ÉÀÏ »Ó °ªÀÌ ¾Æ´Ï¹Ç·Î ¾µ ¼ö ¾ø´Ù. { } ¾È¿¡¼ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â °ÍÀº °¡´ÉÇÏ´Ù.
function
App() {
function calcScore() { return 123 }
return (
<div>
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {calcScore()}ÀÔ´Ï´Ù.</p>
</div>
)
}
À̶§µµ ¶È°°Àº ¿øÄ¢ÀÌ Àû¿ëµÇ´Âµ¥ ÇÔ¼ö°¡ Á¤¼ö³ª ¹®ÀÚ¿À» ¸®ÅÏÇÏ¿© °ªÀ¸·Î Æò°¡µÇ¾î¾ß ÇÑ´Ù. °´Ã¼¸¦ ¸®ÅÏÇÏ¸é ¾ÈµÈ´Ù.
ű×ÀÇ ¼Ó¼º°ªÀº ¹®ÀÚ¿À̹ǷΠ´ëºÎºÐÀÇ ¼Ó¼ºÀ» ±×´ë·Î ´Ù Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ¾Õ¿¡¼ <img> ű×ÀÇ src ¼Ó¼ºÀ» HTML°ú °°Àº ¹æ½ÄÀ¸·Î ÀÌ¹Ì »ç¿ëÇØ ºÃ´Ù. ±×·¯³ª style ¼Ó¼ºÀº º¹ÀâÇØ¼ ¹®ÀÚ¿·Î Á÷Á¢ ÁöÁ¤ÇÏ´Â °ÍÀ» Çã¶ôÇÏÁö ¾Ê´Â´Ù. ´ÙÀ½
¹®ÀåÀº HTML¿¡¼´Â Àû¹ýÇÏÁö¸¸ JSX¿¡¼´Â µ¿ÀÛÇÏÁö ¾Ê´Â´Ù.
<h2 style = "font-size:20;color:blue">¼ºÀûÇ¥</h2>
ÀÌ ±¸¹®À» Áö¿øÇÏ·Á¸é °¡´ÉÀº ÇϰÚÁö¸¸ Æ®·£½ºÆÄÀÏ·¯°¡ CSS ±¸¹®±îÁö
Á¤È®È÷ ÆÄ¾ÇÇÏ´Â °ÍÀº ¹«¸®Àε¥´Ù ÀζóÀÎ ½ºÅ¸ÀÏ ÀÚü¸¦ ±ÇÀåÇÏÁö ¾Ê´Â´Ù. Á¤ ½ºÅ¸ÀÏÀ» ÀζóÀÎÀ¸·Î Á÷Á¢
ÁöÁ¤ÇÏ·Á¸é ¼Ó¼º°ú °ªÀÇ ½ÖÀ» °´Ã¼·Î Á¤ÀÇÇÏ¿© ÁöÁ¤ÇÑ´Ù. ´ÙÀ½ ÄÚµå´Â Á¦¸ñÀ» ÆÄ¶õ»öÀÇ 40Çȼ¿·Î Å©°Ô Ãâ·ÂÇÑ´Ù.
function
App() {
let score = 123;
const h2style = {
fontSize:40,
color:'blue'
}
return (
<>
<h2 style =
{h2style}>¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</>
)
}
h2style °´Ã¼ ¾È¿¡ ÆùƮũ±â¿Í »ö»óÀ» ÁöÁ¤Çϰí h2 ű×ÀÇ style ¼Ó¼ºÀÌ ÀÌ °´Ã¼¸¦ ÁöÁ¤Çß´Ù.

°´Ã¼¸¦ µû·Î Á¤ÀÇÇÏ´Â°Ô ±ÍÂúÀ¸¸é °´Ã¼ ¸®ÅÍ·²À» ¼Ó¼º¿¡ ÀζóÀÎÀ¸·Î Áý¾î ³ÖÀ» ¼ö ÀÖ´Ù. ´ÙÀ½ ±¸¹®Àº °¡´ÉÇϸç È¿°úµµ °°´Ù. °´Ã¼ ¸®ÅÍ·²À» ¹Ù·Î Àû¾î Áִ°Ŷó
h2style °´Ã¼¸íÀ» ÁöÁ¤ÇÒ ÇÊ¿ä ¾ø´Ù.
function App() {
let
score = 123;
return (
<>
<h2 style =
{{fontSize:40,color:'blue'}}>¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</>
)
}
ÀÌ ±¸¹®Àº ÁÖÀÇÇØ¼ º¼°Ô ¸¹´Ù. style ¼Ó¼º°ª¿¡ {} °ýÈ£¸¦ ÀÌÁßÀ¸·Î ½è´Âµ¥ ¾ÈÂʰú ¹Ù±ùÂÊ °ýÈ£ÀÇ Àǹ̰¡ ´Ù¸£´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼
°´Ã¼ ¸®ÅÍ·²Àº { } °ýÈ£·Î °¨½Ñ´Ù. ±×¸®°í JSX°¡ ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ带 °¨½Ò ¶§µµ { } °ýÈ£¸¦ »ç¿ëÇÑ´Ù. ±×·¡¼ °ýÈ£°¡ µÎ °³´Ù.

¾ÈÂÊ, ¹Ù±ùÂÊ °ýÈ£ÀÇ ¿ªÇÒÀÌ ´Þ¶ó µÑ ´Ù ÇÊ¿äÇÏ´Ù. ¸®¾×Æ®¿¡¼´Â ÀÌ·± ½ÄÀ¸·Î °ýÈ£°¡ ÁßøµÇ´Â °æ¿ì°¡ ÈçÇѵ¥ }])} ½ÄÀ¸·Î 4Áß, 5ÁßÀ¸·Î ÁßøµÇ±âµµ ÇÑ´Ù. ±ÔÄ¢À»
Àß ¾Ë¾Æ µÖ¾ß Çò°¥¸®Áö ¾Ê´Â´Ù.
ÀÌ Äڵ忡¼ ¶Ç ÁÖÀÇÇØ¼ º¼ ºÎºÐÀº fontSizeÀε¥ CSS¿¡¼ ÀÌ ¼Ó¼ºÀÇ ¿ø·¡ À̸§Àº font-sizeÀÌÁö¸¸ ÀÚ¹Ù½ºÅ©¸³Æ®´Â
¸íĪ Áß°£¿¡ -°¡ ¿Ã ¼ö ¾ø´Ù. ±×·¡¼ -¸¦ »©°í ij¸ÖÄÉÀ̽º·Î °¢ ´Ü¾îÀÇ Ã¹ ±ÛÀÚ¸¦ ´ë¹®ÀÚ·Î ¹Ù²ã fontSize·Î
Ç¥±âÇÑ´Ù. line-height, text-indent µîÀÇ ¼Ó¼º¸íµµ lineHeight, textIndent·Î Àû´Â´Ù.
¸¸¾à Á¤ CSS ½ºÅ¸ÀÏ·Î ¼Ó¼º¸íÀ» »ç¿ëÇÏ·Á¸é µû¿ÈÇ¥·Î °¨½Î 'font-size'·Î ÀûÀ¸¸é µÈ´Ù. Å©±â°ªÀº ´ÜÀ§¸¦ »ý·«Çϸé px¸¦ ±âº» Àû¿ëÇ쵂 ´Ù¸¥ ´ÜÀ§¸¦ ºÙÀÌ·Á¸é À̰͵µ µû¿ÈÇ¥·Î °¨½Î¾ß ÇÑ´Ù. ´ÙÀ½
½ºÅ¸ÀÏÀº ÆùÆ® Å©±â¸¦ 40pt·Î ÁöÁ¤ÇÑ´Ù.
<h2 style =
{{'font-size':'40pt',color:'blue'}}>¼ºÀûÇ¥</h2>
40pt¶ó°í Àû´Â°Ô ¿Ö ¾ÈµÇ´ÂÁö´Â ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼ ÀÌ·± ¸íĪÀ¸·Î º¯¼ö³ª
»ó¼ö¸¦ Á¤ÀÇÇÒ ¼ö ¾øÀ½À» »ý°¢ÇØ º¸¸é µÈ´Ù. HTML, CSS¿¡¼ °¡´ÉÇß´ø ¸íĪ Áß Äڵ忡¼ ¾²±â¿¡
ºÎÀûÇÕÇÒ °Å °°Àº ¸íĪÀº µû¿ÈÇ¥·Î °¨½Ñ´Ù.
¸®¾×Æ®¿¡¼ ½ºÅ¸ÀÏÀ» ÁöÁ¤ÇÏ´Â Á¤¼®Àº css ÆÄÀÏ¿¡ ½ºÅ¸ÀÏÀ» ¾²°í ÀÓÆ÷Æ®ÇÏ´Â
°ÍÀÌ´Ù. ÀζóÀÎÀ¸·Î °´Ã¼¸¦ ÁöÁ¤ÇÏ´Â ¹æ½Äµµ °¡´ÉÀº ÇÏÁö¸¸ ³»¿ë°ú Ç¥ÇöÀÇ ºÐ¸® ¿øÄ¢¿¡ ¸ÂÁö ¾Ê°í ºÐ¾÷¿¡µµ
ºÒ¸®ÇÏ´Ù. App.css¿¡ ´ÙÀ½ ½ºÅ¸ÀÏÀ» Ãß°¡ÇÑ´Ù. <p>ÀÇ idÀÎ result¿¡µµ ´«¿¡ Àß ¶ç°Ô ³ë¶õ»ö ¹è°æ ½ºÅ¸ÀÏÀ» ÁöÁ¤ÇØ
º¸ÀÚ.
....
.head {
font-size:40px;
color:blue;
}
#result {
background:yellow;
font-size:20px;
}
CSS ÆÄÀÏ ¾È¿¡¼´Â CSSÀÇ
¹®¹ý´ë·Î ÀÛ¼ºÇÑ´Ù. App.tsx¿¡¼´Â ½ºÅ¸ÀÏÀ» ÀÓÆ÷Æ®ÇÏ¿© Àû¿ëÇÑ´Ù.
¹èÆ÷ ¿¹Á¦ ¼±µÎ¿¡´Â import¹®ÀÌ ¹Ì¸® ÀÛ¼ºµÇ¾î ÀÖ´Ù.
´ç¿¬ÇÑ ¾ê±âÁö¸¸ µÎ ÆÄÀÏÀ» °°ÀÌ ÆíÁýÇÒ ¶§´Â ¸ðµÎ ÀúÀåÇØ¾ß È¿°ú°¡ ³ªÅ¸³´Ù. ¿©·¯ °³ÀÇ
ÆÄÀÏÀ» ÆíÁýÇßÀ» ¶§´Â ÆÄÀÏ/¸ðµÎ ÀúÀå ¸í·ÉÀ» »ç¿ëÇÏ´Â°Ô ºü¸£´Ù.

ÀÌ·¸°Ô ÀÛ¼ºÇØ ³õÀ¸¸é ¹øµé·¯°¡ ½ºÅ¸ÀÏ ½ÃÆ®ÀÇ ½ºÅ¸ÀÏÀ» °´Ã¼·Î ¹Ù²ã JSX ¿¤¸®¸ÕÆ®¿¡
Àû¿ëÇØ ÁØ´Ù. App.css¿¡ ÁöÁ¤ÇÑ ½ºÅ¸ÀÏÀº Àü¿ªÀûÀ¸·Î ¹Ý¿µµÇ¹Ç·Î ÅëÇÕ ¹èÆ÷ ÆÄÀÏÀÇ ´Ù¸¥ ¿¹Á¦¿¡µµ
¿µÇâÀ» ¹ÌÄ£´Ù. °á°ú¸¦ È®ÀÎÇÑ ÈÄ¿¡´Â ÁÖ¼®À¸·Î ¸·¾Æ µÎÀÚ.
Áö±Ý±îÁöÀÇ ¿¹¿¡¼ ºÃ´Ù½ÃÇÇ JSX´Â µ¶Æ¯ÇÏ´Ù. HTML°ú ºñ½ÁÇϸ鼵µ { }¾È¿¡ ½ºÅ©¸³Æ® Äڵ带 °¡Áö±âµµ Çϰí style ¼Ó¼º¿¡ CSS ±¸¹®ÀÌ µé¾î°¡±âµµ ÇÑ´Ù. ¼¼ ¾ð¾î¸¦ «»ÍÇÏ´Ù º¸´Ï ºÒ°¡ÇÇÇÏ°Ô ¸íÄªÃæµ¹ÀÌ ¹ß»ýÇÒ ¼ö ¹Û¿¡ ¾ø´Ù. Ű¿öµå
¸ñ·Ïµµ ´Ù¸£°í ¸íĪ ±ÔÄ¢µµ Á¦°¢°¢À̱⠶§¹®¿¡ °íÀ¯ÇÑ Á¦¾àÀ» Ãß°¡ÇÒ ¼ö¹Û¿¡ ¾ø´Ù.
¾Õ ½Ç½ÀÇØ¼ App.css¿¡ head
Ŭ·¡½º¿Í result ID¿¡ ½ºÅ¸ÀÏÀ» ÁöÁ¤Çߴµ¥ CSS ÆÄÀÏÀº
¿ø·¡ ½ºÅ¸ÀÏ½ÃÆ®¸¦ ÀÛ¼ºÇÏ´Â °÷À̹ǷΠbackGround³ª
fontSize·Î ÀûÀ¸¸é ¾ÈµÇ°í CSSÀÇ ¼Ó¼º¸íÀ» ±×³É Àû¾î¾ß ÇÑ´Ù. ±×·±µ¥ ÀÇ¿ÜÀÇ °÷¿¡¼ ÀÌ»óÇÑ Á¡ÀÌ ÀÖ´Ù. ű×ÀÇ class ¼Ó¼ºÀ» ÁöÁ¤ÇÏ´Â ¼Ó¼º¸íÀÌ classNameÀε¥ ÀÌ·¸°Ô µÇ¾î
ÀÖ´Â »çÁ¤Àº º¹ÀâÇÏ´Ù.
<h2 className="head">¼ºÀûÇ¥</h2>
HTML¿¡¼ class´Â
¼Ó¼ºÀÇ À̸§ÀÌÁö¸¸ ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼´Â Ŭ·¡½º¸¦ Á¤ÀÇÇϴ Ű¿öµåÀÌ´Ù. JSX´Â ÀÌ µÑÀ» ÇÕÄ£ °ÍÀÌ´Ù º¸´Ï
¸íĪ Ãæµ¹ÀÌ ¹ß»ýÇÑ´Ù. ±×³É class¶ó°í ÀûÀ¸¸é ¼Ó¼ºÀÇ
À̸§À» ÀǹÌÇÏ´Â °ÍÀÎÁö Ŭ·¡½º¸¦ Á¤ÀÇÇϴ Ű¿öµåÀÎÁö ¸ðÈ£ÇÏ´Ù. ±×·¡¼
JSX¿¡¼´Â ű×ÀÇ Å¬·¡½º¸íÀ» ÁöÁ¤ÇÒ ¶§ classNameÀ̶ó´Â º°µµÀÇ ¼Ó¼º¸íÀ» »ç¿ëÇÑ´Ù.
±×·¸´Ù¸é ÀÌ »óÅ¿¡¼ ¼Ó¼º¸íÀ» ±×³É class·Î ¹Ù²Ù¸é ¾î¶»°Ô µÉ±î? V16 ÀÌÀü¿¡´Â ¸ÅÁ¤ÇÏ°Ô ¿¡·¯ ó¸®ÇßÁö¸¸ ±× ÀÌÈÄ¿¡´Â ¹®¸ÆÀ» ÆÄ¾ÇÇÏ¿© °æ°í·Î ó¸®Çϵµ·Ï ¿ÏÈÇß´Ù. ÀúÀå ÈÄ »õ·Î Àо¸é Äֿܼ¡ ´ÙÀ½ °æ°í°¡ ¹ß»ýÇÏÁö¸¸ ½ÇÇàÀº Á¤»óÀûÀ¸·Î µÇ¸ç ½ºÅ¸Àϵµ Àß Àû¿ëµÈ´Ù.
Warning: Invalid DOM property `class`. Did you
mean `className`? at h2 at App
öÀÚ´Â °°Áö¸¸ h2 ű׿¡ µé¾î ÀÖ´Â class´Â ¼Ó¼º¸íÀÓÀ» Ãß·ÐÇÒ ¼ö ÀÖ¾î ´çÀåÀº Å« ¹®Á¦°¡ ¾ø´Ù. ±×·¯³ª
¾î¶² °æ¿ì´Â ÀÌ·± Ãß·ÐÀÌ Æ²¸± ¼öµµ ÀÖ°í Àå·¡¿¡ ¹Ì¹¦ÇÑ ¹®Á¦¸¦ ÀÏÀ¸Å³Áö Àå´ãÇÒ ¼ö ¾ø´Ù. ¹®¸Æ»ó ±¸ºÐÀº
°¡´ÉÇÏÁö¸¸ ¸íÈ®ÇÏÁö ¾Ê°í »ç¶÷ÀÌ º¸±â¿¡µµ Çò°¥¸°´Ù.
±×·¡¼ ¸®¾×Æ®´Â ¹Ì·¡¿¡ ¾î¶² ¸»½éÀ» ÀÏÀ¸Å³Áö ¾Ë ¼ö ¾ø´Â ¸íĪ¿¡ ´ëÇØ º°µµÀÇ ´Ù¸¥ ¸íĪÀ» »ç¿ëÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù. ±×·¡¼ classNameÀ̶ó´Â º°µµÀÇ ¼Ó¼º¸íÀ» µû·Î Á¤ÀÇÇÑ °ÍÀÌ´Ù. ´ë¼Ò¹®ÀÚµµ ¾ö°ÝÇÏ°Ô ±¸ºÐÇϹǷΠclassnameÀ̳ª ClassNameÀ¸·Î ÀûÀ¸¸é ¾ÈµÈ´Ù.
class ¿Ü¿¡
<label> ű×ÀÇ ´ÜÃà۸¦ ÁöÁ¤ÇÏ´Â for ¼Ó¼ºµµ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¹Ýº¹¹®ÀÎ for¿Í öÀÚ°¡ °°¾Æ htmlFor¸¦ ´ë½Å »ç¿ëÇÑ´Ù. ¹Ý¸é ¾Æ·¡ÂÊ p ű׿¡ ºÙÀÎ id="result"
¼Ó¼ºÀº ±×³É ½áµµ µÈ´Ù. id´Â ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¿¹¾à¾î°¡ ¾Æ´Ï±â ¶§¹®ÀÌ´Ù.
öÀÚ°¡ °°Àº ¼Ó¼ºÀº ´ë¼Ò¹®ÀÚ ±¸¼º¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù. HTMLÀº ¾Æ¹«·¸°Ô³ª
Àû¾îµµ µÇÁö¸¸ JSX¿¡¼´Â maxLength, tabIndex,
colSpan, rowSpan µî µÎ ´Ü¾î·Î µÈ ¼Ó¼ºÀº ¸ðµÎ ij¸ÖijÀ̽º·Î Á¤È®ÇÏ°Ô Àû¾î¾ß ÇÑ´Ù.
JSX¿¡ Á¤ÀÇÇÑ Å±×ÀÇ À̺¥Æ® Çڵ鷯¸¦ ÁöÁ¤ÇÏ´Â ¹æ¹ýÀº ÀÚ¹Ù½ºÅ©¸³Æ®¿Í
ºñ½ÁÇÏ´Ù. ű×ÀÇ À̺¥Æ® ¼Ó¼º¿¡ Çڵ鷯 ÇÔ¼ö¸¦ ÁöÁ¤ÇÑ´Ù. º¸Åë <button>À̳ª <input> °°Àº UI ű׿¡ À̺¥Æ®¸¦ ¿¬°áÇÑ´Ù. HTML ű״ DOM ¿ä¼ÒÀ̹ǷΠǥÁØ À̺¥Æ®°¡ Á¸ÀçÇÏ°í ºê¶ó¿ìÀú°¡ À̺¥Æ®¸¦ °ËÃâÇØÁØ´Ù.
±×·¯³ª ¿ì¸®°¡ Á÷Á¢ ¸¸µç ¸®¾×Æ® ÄÄÆ÷³ÍÆ®´Â ¸ð¾çÀ̳ª ±â´ÉÀÌ ÃµÂ÷¸¸º°ÀÌ°í ºê¶ó¿ìÀú°¡ Á÷Á¢ °ü¸®ÇÏ´Â DOM ¿ä¼Ò°¡ ¾Æ´Ï¶ó À̺¥Æ®¸¦ ¿¬°áÇÒ ¼ö ¾ø´Ù. ÄÄÆ÷³ÍÆ®¾È¿¡ ÀÖ´Â DOM ¿ä¼Ò¿¡ À̺¥Æ®¸¦ ¿¬°áÇØ¾ß ÇÑ´Ù. Áï <App> ÄÄÆ÷³ÍÆ® ÀÚü¿¡´Â À̺¥Æ®¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø°í ±× ¾È¿¡ ÀÖ´Â
<h2>³ª <p>¿¡ À̺¥Æ®¸¦ ¿¬°áÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â h2¸¦ Ŭ¸¯ÇÒ ¶§ ¸Þ½ÃÁö ¹Ú½º¸¦ ¿¬´Ù.
function
headerClick() {
alert("Ŭ¸¯Çß½À´Ï´Ù.");
}
function
App() {
let score = 123;
return (
<>
<h2
onClick={headerClick}>¼ºÀûÇ¥</h2>
<p >Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</>
)
}
´ëÈ»óÀÚ¸¦ ¿©´Â headerClick ÇÔ¼ö¸¦ Á¤ÀÇÇϰí h2ÀÇ onClick À̺¥Æ®¿¡ ÀÌ ÇÔ¼ö¸¦ ÁöÁ¤Çß´Ù. À̺¥Æ® À̸§ÀÌ onclickÀÌ ¾Æ´Ï¶ó onClickÀ̶ó´Â Á¡À» À¯ÀÇÇÏÀÚ. º¯¼ö°ªÀ» ÂüÁ¶ÇÒ ¶§¿Í ¸¶Âù°¡Áö·Î
ÇÔ¼ö¸¦ ÂüÁ¶ÇÒ ¶§µµ {headerClick} Çü½ÄÀ¸·Î { } °ýÈ£·Î
°¨½Ñ´Ù. ½ÇÇà ÈÄ h2À» Ŭ¸¯ÇÏ¸é ´ëÈ»óÀÚ°¡ ¿¸°´Ù.

Çڵ鷯°¡ º°µµÀÇ ÇÔ¼öÀÓÀ» º¸À̱â À§ÇØ headerClick ÇÔ¼ö¸¦ App ÄÄÆ÷³ÍÆ® ¹Ù±ù¿¡ ÀÛ¼ºÇߴµ¥ ¾ÈÂÊÀ¸·Î ³Ö¾îµµ »ó°ü ¾ø´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â
ÇÔ¼ö¾È¿¡ Áö¿ªÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â °ÍÀ» Çã¿ëÇÑ´Ù. ÄÄÆ÷³ÍÆ®°¡ ¸ðµç °ÍÀ» Æ÷ÇÔÇϸé ÀçȰ¿ëÀÌ ½±´Ù´Â ÀÌÁ¡ÀÌ ÀÖ¾î
Çڵ鷯´Â °¡±ÞÀû ¾È¿¡ ÀÛ¼ºÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.
function
App() {
let score = 123;
function headerClick() {
alert("Ŭ¸¯Çß½À´Ï´Ù.");
}
return (
<>
<h2
onClick={headerClick}>¼ºÀûÇ¥</h2>
<p >Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</>
)
}
JSXÀÇ À̺¥Æ® ¼Ó¼ºÀº ¸®½º³Ê ¹æ½ÄÀ¸·Î µ¿ÀÛÇÑ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®´Â ÀζóÀÎ ¸ðµ¨À» Áö¿øÇÏ¿© ÇÔ¼ö È£Ãâ¹®À» Àû°Å³ª Á÷Á¢ Äڵ带 ÀÛ¼ºÇÒ ¼öµµ ÀÖÁö¸¸ JSX¿¡¼´Â ÇÔ¼öÀÇ ÂüÁ¶¸¦ ´ëÀÔÇÏ´Â ¹æ½Ä¸¸ Áö¿øÇÑ´Ù. ´ÙÀ½ ÄÚµå´Â
À̺¥Æ® Çڵ鷯¸¦ ÁöÁ¤ÇÏ´Â °Í°ú´Â ´Ù¸£´Ù.
<h2 onClick={headerClick()}>¼ºÀûÇ¥</h2>
<h2 onClick={alert('Ŭ¸¯Çß½À´Ï´Ù')}>¼ºÀûÇ¥</h2>
<h2 onClick="alert('Ŭ¸¯Çß½À´Ï´Ù')">¼ºÀûÇ¥</h2>
JSXÀÇ { }³»ÀÇ ÄÚµå´Â
Æò°¡¸¦ À§ÇØ Áï½Ã ½ÇÇàÇÑ´Ù. ÀÌ·¸°Ô ÀûÀ¸¸é ·£´õ¸µÇÒ ¶§ ÇÔ¼ö°¡ È£ÃâµÇ¾î ¹ö¸®¹Ç·Î Ŭ¸¯°ú »ó°ü¾øÀÌ ´ëÈ»óÀÚ°¡
¿·Á ¹ö¸°´Ù. À̺¥Æ® ó¸® Äڵ带 ¹®ÀÚ¿ Çü½ÄÀÇ ÀζóÀÎÀ¸·Î Á÷Á¢ ÀÛ¼ºÇÏ´Â °Íµµ ¾ÈµÈ´Ù. ºê¶ó¿ìÀú´Â ¹®ÀÚ¿³»ÀÇ ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ带 Àоî Á÷Á¢ ½ÇÇàÇØ ÁÖÁö¸¸ JSX´Â
À̺¥Æ®¿Í ÇÔ¼ö¸¦ ¿¬°áÇØÁÙ »ÓÀÌ´Ù.
À̺¥Æ® ó¸® ±¸¹®ÀÌ ÂªÀ» ¶§´Â º°µµÀÇ ÇÔ¼ö·Î Á¤ÀÇÇÏ´Â°Ô ±ÍÂú±âµµ Çϰí Àç»ç¿ëÀÇ Àǹ̵µ ¾ø´Ù. ÀÌ·² ¶§´Â ÀζóÀÎÀ¸·Î ÇÔ¼ö¸¦ ÀÛ¼ºÇ쵂 ÇÔ¼ö ¸®ÅÍ·²µµ °ªÀ̹ǷΠ{ } °ýÈ£¾È¿¡
³Ö´Â´Ù. ´ÙÀ½ ÄÚµå´Â Àß µ¿ÀÛÇÑ´Ù.
function
App() {
let score = 123;
return (
<>
<h2
onClick={function() {alert('Ŭ¸¯Ç߰ɶû¿ä')}}>¼ºÀûÇ¥</h2>
<p >Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</>
)
}
functionŰ¿öµå·Î ÇÔ¼ö ¸®ÅÍ·²À» À̺¥Æ® Çڵ鷯¸¦ ÀÛ¼ºÇß´Ù. µÚÂÊ¿¡ °ýÈ£°¡ )}}>·Î 4°³³ª
°ãÃÄ Àִµ¥ °¢°¢ÀÌ ¾î¶² ¿ªÇÒÀÎÁö Àß ±¸ºÐÇØ¾ß ÇÑ´Ù. ÇÔ¼ö ¸®ÅÍ·²ÀÇ º»Ã¼¸¦ {}·Î °¨½Î¾ß Çϰí ÀÌ°É JSX¾È¿¡ ³Ö¾î¾ß ÇÏ´Ï ¹Ù±ù¿¡ {}µµ ÇÊ¿äÇÏ´Ù. ¸®¾×Æ®¿¡¼´Â ÇÔ¼ö ¸®ÅÍ·²º¸´Ù´Â È»ìÇ¥ ÇÔ¼ö¸¦ ´õ
¸¹ÀÌ ¾´´Ù.
<h2 onClick={() => alert('Ŭ¸¯ÇßÀ»°É¿ä')}>¼ºÀûÇ¥</h2>
¹®¹ýÀû Ư¼ºÀÌ ¾à°£ ´Ù¸£¸ç ¾ó¸¶ Â÷ÀÌ ³ªÁö ¾ÊÁö¸¸ ´õ ª°Ô ¾µ ¼ö ÀÖ´Ù. ÀÌ·±
°æ¿ì¿¡´Â °£ÆíÇÏ°Ô ¾µ ¼ö ÀÖÁö¸¸ È»ìÇ¥ ÇÔ¼ö³¢¸® ÁßøµÉ ¶§´Â Á¶±Ý Çò°¥¸®´Â ¸éÀÌ ÀÖ´Ù.
ÁÖ¼®Àº Äڵ带 À¯Áö °ü¸®Çϱâ À§ÇØ ²À ÇÊ¿äÇÏ´Ù. HTML¿¡´Â ÃÖ¼Ò 3°¡Áö ¾ð¾î°¡ ¼¯¿© ÀÖÀ¸¸ç ¿©±â¿¡ JSX±îÁö ´õÇØÁ³´Ù. °¢ ¾ð¾î¸¶´Ù Ç¥ÁØ ÁÖ¼®Àº Á¦°¢°¢ÀÌ´Ù. ³ÀâÇÑ Áö°æÀÌÁö¸¸ ¸¸µç ÁÖü°¡
´Ù¸£´Ù º¸´Ï ¾î¿ ¼ö ¾ø´Â »óȲÀÌ´Ù.
|
¾ð¾î |
ÁÖ¼® |
|
HTML |
<!-- --> |
|
ÀÚ¹Ù½ºÅ©¸³Æ® |
ÇÑÁÙ // ¿©·¯ÁÙ /* */ |
|
CSS |
/* */ |
|
JSX |
{/* */} |
ÁÖ¼®°£ÀÇ °ü°è°¡ º¹ÀâÇѵ¥ ÀÚ¹Ù½ºÅ©¸³Æ®³ª CSS´Â HTML ÁÖ¼® ÁöÁ¤À» ¿ÏÀüÈ÷ ¹«½ÃÇÑ´Ù. Áï <!-- -->·Î °¨½Ñ´Ù°í ÇØ¼ ¾ø´Â ¹®ÀåÀÌ ¾Æ´Ï´Ù. ¿Ö
ÀÌ·¸°Ô µÇ¾î Àִ°¡ ÇÏ¸é °ú°Å ºê¶ó¿ìÀú ȣȯ¼ºÀÌ ÁÁÁö ¾ÊÀ» ¶§ ½ºÅ©¸³Æ®³ª CSS¸¦ <!-- -->·Î °¨½Î Áö¿øÇÏÁö ¾Ê´Â ºê¶ó¿ìÀú¿¡¼´Â ¹«½ÃÇϵµ·Ï ÇÏ´Â Á¤Ã¥À» ½è±â ¶§¹®ÀÌ´Ù.
ÀÌÈÄ ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼µµ HTML ÁÖ¼®À» Çã¿ëÇÏ´Â ºê¶ó¿ìÀú°¡ ÀÖ¾úÁö¸¸
¿øÄ¢ÀûÀ¸·Î Çã¿ëÇÏÁö ¾Ê´Â´Ù. JSX°¡ HTML°ú À¯»çÇÑ ÇüÅ¿©¼
ÁÖ¼®À» HTML Çü½ÄÀ¸·Î ´Þ ¼ö ÀÖÀ» °Å °°Áö¸¸ ¾ÈµÈ´Ù. ¾Æ¿¹
´Ù¸¥ ¾ð¾îÀ̱⠶§¹®¿¡ ÁÖ¼®µµ ´ç¿¬È÷ ´Ù¸£´Ù. ´ÙÀ½ ÄÚµå´Â ¿¡·¯ÀÌ´Ù.
function
App() {
let score = 123;
return (
<>
<!-- À̰ÍÀº
ÁÖ¼®ÀÌ´Ù. -->
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</>
)
}
<> °ýÈ£ ¾È¿¡ µé¾î ÀÖÀ¸´Ï ű׷ΠÀνÄÇÒ·Á°í ½ÃµµÇϴµ¥
!--À̶ó´Â űװ¡ ¾øÀ¸´Ï ¿¡·¯À̸ç ȸ鿡 ¾Æ¹« °Íµµ ³ª¿ÀÁö ¾Ê´Â´Ù.
±×·³ JSX¿¡¼ ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ÁÖ¼®Àº ¾î¶³±î?
function
App() {
let score = 123;
return (
<>
// À̰ÍÀº ÁÖ¼®ÀÌ´Ù.
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</>
)
}
ÀÌ ¹®ÀåÀº ¿¡·¯´Â ¹ß»ýÇÏÁö ¾ÊÁö¸¸ ÁÖ¼®ÀÌ À¥ ºê¶ó¿ìÀú¿¡ ±×´ë·Î ³ªÅ¸³ª ¹ö¸°´Ù.
űװ¡ ¾Æ´Ñ °ÍÀº ¹®ÀÚ¿·Î ÇØ¼®ÇÏ´Ï ÁÖ¼®Á¶Â÷µµ À¥ÆäÀÌÁöÀÇ ÀϺΰ¡ µÇ¾î ¹ö¸°´Ù.

¿©·¯ ÁÙ ÁÖ¼®ÀÎ /* */ µµ ¸¶Âù°¡Áö·Î JSX¿¡¼´Â ¾µ ¼ö ¾ø´Ù. ÀÌ ¾ê±â¸¦ ´Ù¸£°Ô ÇØ¼®Çϸé JSX ¹Ù±ùÀÏ ¶§´Â ¾µ ¼öµµ ÀÖ´Ù´Â ¶æÀÌ´Ù. ´ÙÀ½ ¹®ÀåÀº ¸ðµç ÁÖ¼®ÀÌ
ÇÕ¹ýÀûÀÌ´Ù.
function App() {
let
score = 123;
/* ¿©±â´Â JSX ¹Ù±ùÀÌ¶ó ¾µ ¼ö ÀÖ´Ù. */
return (
// ¿©±âµµ ¾ÆÁ÷ JSX ±¸¹® ½ÃÀÛÀüÀÌ´Ù.
<>
{/* À̰ÍÀº ÁÖ¼®ÀÌ´Ù. */}
<h2
className="head">¼ºÀûÇ¥</h2>
<p
id="result">Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>
</>
)
}
Æ®·£½ºÆÄÀÏ·¯°¡ ¹ø¿ªÇÏ´Â JSXÀÇ ¹üÀ§°¡ ¾îµðºÎÅÍÀΰ¡¸¦ Àß »ý°¢ÇØ º¸¸é
½±°Ô ±¸ºÐÇÒ ¼ö ÀÖ´Ù. ·çÆ®ÀÎ <> ~ </>±îÁö°¡ JSX ±¸¹®ÀÌ´Ù. JSX ¾È¿¡¼ Á¤ ÁÖ¼®À» ¾²°í ½ÍÀ¸¸é °íÀ¯ÀÇ ÁÖ¼®
Ç¥±â¹ýÀÎ {/* */} °ýÈ£¸¦ »ç¿ëÇÑ´Ù. JSX ¾È¿¡¼ ÀÚ¹Ù
½ºÅ©¸³Æ® Äڵ带 { }·Î °¨½Îµµ·Ï µÇ¾î ÀÖÀ¸´Ï /* */µµ { }·Î °¨½Î¸é µÈ´Ù. ¾Æ½±°Ôµµ ÇÑÁÙ ÁÖ¼®Àº ¾ø´Ù.
JSX ±¸¹® ¹Ù±ù, ¿¹¸¦µé¾î <> ÅÂ±× ¾ÕÀ̳ª return¹® ¾Õ¿¡´Â ÀÌ ÁÖ¼®À» ¾µ ¼ö
¾ø´Ù. ÄÚµåÀÇ ¾îµðÂëÀΰ¡¿¡ µû¶ó »ç¿ëÇØ¾ß ÇÒ ÁÖ¼®ÀÌ Á¦°¢°¢ÀÌ´Ù. ÀÌ°Ç JSXÀÇ ¹®Á¦°¡ ¾Æ´Ï¶ó ÀÌÀü¿¡µµ HTML, CSS, ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ
ÁÖ¼®ÀÌ ´Ù ´Þ¶ú¾ú´Ù. ¾ð¾î¸¦ Á¶ÇÕÇØ¼ ¾²´Ù º¸´Ï Çò°¥¸± ¼ö¹Û¿¡ ¾ø´Ù.
JSXÀÇ ±âº» ¹®¹ý¿¡ ´ëÇØ ¾Ë¾Æ ºÃ´Âµ¥ ´õ º¹ÀâÇÑ ±ÔÄ¢µµ ÀÖ´Ù. HTML, CSS¿Í ÀÚ¹Ù½ºÅ©¸³Æ®, °Ô´Ù°¡ JSX±îÁö ¿©·¯ ¾ð¾î°¡ µÚ¼¯¿© ÀÖ´Â ÇüÅÂÀÌ´Ùº¸´Ï ±ÔÄ¢ÀÌ ±î´Ù·Î¿ï ¼ö¹Û¿¡ ¾ø´Ù.
±×·¯³ª Àß »ý°¢ÇØ º¸¸é ´Ù ÇÕ¸®ÀûÀÎ ÀÌÀ¯°¡ ÀÖ°í ³³µæÇÒ¸¸ÇÑ ±ÔÄ¢ÀÌ´Ù.
HTML ¹®¼¸¦ Àß ÀÛ¼ºÇÏ´ø »ç¶÷µµ »õ·Î¿î ±ÔÄ¢¿¡ Àͼ÷ÇØÁö´Âµ¥´Â ½Ã°£ÀÌ
°É¸®¸ç ´çºÐ°£Àº ½ÃÇàÂø¿À¸¦ °Þ¾î¾ß ÇÒ °ÍÀÌ´Ù. ÀÌ·± »ç¶÷À» À§ÇØ ¿Â¶óÀÎ º¯È¯±â¸¦ Á¦°øÇÑ´Ù. ¿ÞÂÊ¿¡ HTML ¹®¼¸¦ ÀÛ¼ºÇϸé
JSX ±¸¹®À¸·Î ½Ç½Ã°£ ¹ø¿ªÇØ ÁØ´Ù.
https://transform.tools/html-to-jsx

¹¹°¡ ¹ºÁö Çϳªµµ ¸ð¸£°Ú´Ù¸é HTML°ú CSS, ÀÚ¹Ù½ºÅ©¸³Æ® ¹®¹ýÀÌ ÅºÅºÇÏÁö ¾Ê¾Æ¼ÀÏ È®·üÀÌ ³ô´Ù. Àú±â¼´Â
µÇÁö¸¸ ¿©±â¼´Â ¾ÈµÈ´Ù¸¦ ÀÌÇØÇØ¾ß Çϴµ¥ Àú±â¿¡¼ ¿ø·¡ ¾î¶®´ÂÁö¸¦ ¸ð¸£´Ï ´õ Çò°¥¸®´Â °ÍÀÌ´Ù. ÀÌ Âü¿¡
°ü·Ã ºÎºÐÀ» ã¾Æ º¹½ÀÇÏ°í ¿ÀÀÚ. ¿©±â¼ °¥ÆÎÁúÆÎÇÏ¸é ¸®¾×Æ® ¿¬±¸¸¦ ¿øÈ°È÷ ÁøÇàÇÏ±â ¾î·Æ´Ù.