3-1.°³¹ßÅø Ȱ¿ë

¼ºÀûÇ¥ ¾Û

ÇÁ·ÎÁ§Æ®ÀÇ °ñ°ÝÀº ´ëÃæ ÀÍÇû´Ù. ÀÌ °ñ°ÝÀ» Ȱ¿ëÇÏ¿© ¿¹Á¦¸¦ ¸¸µé°í ¸®¾×Æ®¸¦ ¿¬±¸ÇØ º¸µÇ ½ÇÁúÀûÀ¸·Î ¼öÁ¤ÇØ¾ß ÇÒ ¼Ò½º´Â 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

ÇÁ·ÎÁ§Æ®ÀÇ ±¸¼º Á¤º¸´Â ÇÁ·ÎÁ§Æ® µð·ºÅ丮 ·çÆ®¿¡ ÀÖ´Â 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)¸¸Å­ ¶ç¿î´Ù.

ÀÌÈÄ Áö¸é¿¡¼­´Â ³»¿ë ÆÄ¾Ç°ú ¹«°üÇÑ ºê¶ó¿ìÀú ÇÁ·¹ÀÓÀº »ý·«Çϰí ȸ»öÀÇ ÄÄÆ÷³ÍÆ® ¿µ¿ª¸¸ Ä¸Ã³ÇØ¼­ º¸ÀδÙ.

3-2.JSX ¹®¹ý

Æ®·£½ºÆÄÀÏ·¯

À¥Àº Çмú ³í¹® °øÀ¯¿ëÀ¸·Î °³¹ßµÇ¾úÀ¸¸ç Á¤ÀûÀÎ ¹®¼­¸¸ º¸¿© ÁÖ¸é ÃæºÐÇß´Ù. ¿äÁòÀÇ À¥Àº ½Ç½Ã°£À¸·Î °è»êÇÑ Á¤º¸¸¦ µ¿ÀûÀ¸·Î »ý¼ºÇÏ¿© º¸¿© ÁØ´Ù. 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 />·Î ¾²´Â°Ô Á¦ÀÏ °£ÆíÇÏ´Ù.

3-3.JSX ½Ç½À

ÄÚµå ³»Àå

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