4-1.Props

Props

ÄÄÆ÷³ÍÆ®°¡ ºÎǰÀÌ µÇ·Á¸é Çҿ뼺À» ³ô¿©¾ß ÇÑ´Ù. °íÁ¤µÈ Á¤º¸¸¸ º¸¿©ÁÖ°í Á¤ÇØÁø´ë·Î¸¸ µ¿ÀÛÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó »ç¿ëÇÏ´Â Ãø¿¡¼­ ¿øÇϴ´ë·Î ¹Ù²Ü ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ·± ÀåÄ¡¸¦ ¼Ó¼ºÀ̶ó°í ºÎ¸£¸ç HTML ű׵µ ¼Ó¼ºÀ» °¡Áø´Ù.

 

<a href="...">

<img src="...">

 

¶È°°Àº a ÅÂ±×¶óµµ href ¼Ó¼ºÀÌ °¡¸®Å°´Â ÁÖ¼Ò¿¡ µû¶ó Ŭ¸¯ÇÒ ¶§ À̵¿ÇÒ °÷ÀÌ ´Þ¶óÁø´Ù. img ű׵µ src ¼Ó¼º¿¡ µû¶ó º¸¿©ÁÙ À̹ÌÁö¸¦ °áÁ¤Çϰí À̹ÌÁöÀÇ Å©±â¸¦ °­Á¦·Î ÁöÁ¤ÇÏ´Â ¼Ó¼ºµµ ÀÖ´Ù. ¼Ó¼ºÀÌ ¸¹À»¼ö·Ï ű×ÀÇ È°¿ë¼ºÀÌ ³ô¾ÆÁø´Ù.

ÄÄÆ÷³ÍÆ®µµ ¸¶Âù°¡Áö·Î È£ÃâÃø¿¡¼­ ¿øÇÏ´Â °ªÀ» Àü´ÞÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¼ºÀûÇ¥ ÄÄÆ÷³ÍÆ®ÀÎ AppÀº Ãâ·ÂÀÌ Á¤ÇØÁ® ÀÖ¾î Ç×»ó °°Àº ¸ð¾çÀÌ´Ù. score º¯¼ö¸¦ Ãâ·ÂÇÏÁö¸¸ ÇÔ¼ö ¼±µÎ¿¡ ¼±¾ðµÈ »ó¼öÀÏ »ÓÀÌ´Ù. ¼ºÀûÀ» º¸¿© ÁÖ´Â ÄÄÆ÷³ÍÆ®¶ó¸é ÃÖ¼ÒÇÑ ´©±¸ÀÇ ¼ºÀûÀ̰í Á¡¼ö´Â ¸î Á¡ÀÎÁö Àü´Þ¹Þ¾Æ¾ß ÇÑ´Ù.

È£ÃâÃø¿¡¼­ ÄÄÆ÷³ÍÆ®·Î Àü´ÞÇÏ´Â Àμö¸¦ props¶ó°í Çϴµ¥ Àμö´Â µü Çϳª¹Û¿¡ ¾øÁö¸¸ ¿©·¯ ¼Ó¼ºÀ» ÇѲ¨¹ø¿¡ Æ÷ÇÔÇÏ´Â °´Ã¼ÀÌ´Ù. È£ÃâÃøÀÌ Àü´ÞÇÑ °³º° Àμö¸¦ propsÀÇ ¸â¹ö·Î ÂüÁ¶ÇÑ´Ù.

 

¿¹Á¦ : namescore

function ScoreBoard(props) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard name = "È«±æµ¿" score = "89"/>

    </>

  );

}

 

ù ¿¹Á¦´Â ¿©·¯ °¡Áö ¹®¹ýÀ» ¼³¸íÇϱâ À§ÇÑ ¿ä¼Ò°¡ ÀÖ¾ú´Âµ¥ ÀÌÁ¦ ±âº»À» ÀÌÇØÇßÀ¸´Ï °¡±ÞÀû °£·«ÇÏ°Ô ÀÛ¼ºÇÏÀÚ. ¸íĪ ±ÔÄ¢À» ¼³¸íÇϱâ À§ÇØ ÀÛ¼ºÇÑ className, id ¼Ó¼ºÀº »©°í <div> ´ë½Å <> ºó ű׸¦ ¾´´Ù. Á¡¼ö´Â ¼Ó¼ºÀ¸·Î ¹ÞÀ¸¹Ç·Î score º¯¼öµµ ÇÊ¿ä ¾ø´Ù.

ÄÄÆ÷³ÍÆ®´Â °íÀ¯ÀÇ À̸§À» °¡Áö´Âµ¥ ¼ºÀûÇ¥ ÄÄÆ÷³ÍÆ®¿¡´Â ScoreBoard¶ó´Â ¸ÚÁø À̸§À» ºÙ¿´´Ù. AppÀº ÆäÀÌÁöÀÇ ·çÆ®¶ó À¢¸¸Çϸé À̸§À» À¯ÁöÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÄÄÆ÷³ÍÆ® À̸§Àº ¹Ýµå½Ã ´ë¹®ÀÚ·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù´Â ±ÔÄ¢ÀÌ ÀÖ´Ù. ÄÄÆ÷³ÍÆ® À̸§À» scoreBoard·Î ¹Ù²Û ÈÄ ½ÇÇàÇÏ¸é ´ÙÀ½ °æ°í°¡ ¹ß»ýÇϸç È­¸é¿¡ ¾Æ¹« °Íµµ ³ªÅ¸³ªÁö ¾Ê´Â´Ù.

 

Warning: <scoreBoard /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.

 

´ë¼Ò¹®ÀÚ ±¸¼ºÀÌ Æ²·ÈÀ¸¸ç ÄÄÆ÷³ÍÆ®¿¡ ´ëÇØ¼­´Â ÆÄ½ºÄ®ÄÉÀ̽º¸¦ »ç¿ëÇ϶ó°í µÇ¾î ÀÖ´Ù. À̸§¿¡ ´ëÇØ ÀÌ·± ±î´Ù·Î¿î ±ÔÄ¢À» °­¿äÇÏ´Â ÀÌÀ¯´Â HTML ÅÂ±×¿Í ±¸ºÐÇϱâ À§Çؼ­ÀÌ´Ù. ´ÙÀ½ »ùÇà ¹®¼­¸¦ º¸ÀÚ.

 

<h2>±â¸»°í»ç</h2>

<ScoreBoard name = "È«±æµ¿" score = "89"/>

<p>°øºÎ Á» ¿­½ÉÈ÷ ÇØ</p>

 

¸®¾×Æ® ÄÄÆ÷³ÍÆ®µµ HTML ÅÂ±×¿Í °°Àº Çü½ÄÀ¸·Î »ç¿ëÇϴµ¥ ¼¯¿© ÀÖÀ» ¶§ ´ë¼Ò¹®ÀÚ¸¸ ºÁµµ ÀÚ°ÝÀ» ¹Ù·Î ÆÇ´ÜÇÒ ¼ö ÀÖ´Ù. ÄÄÆ÷³ÍÆ®ÀÇ Á¾·ù¸¦ ½±°Ô ±¸ºÐÇÒ ¼ö ÀÖÀ¸¸é °¡µ¶¼ºÀÌ Çâ»óµÇ¹Ç·Î ÀÌ·± ±ÔÄ¢À» °­Á¦ÇÑ´Ù. ½ÃÀÛ¸¸ ´ë¹®ÀÚÀÌ¸é µÇ°í µÎ¹øÂ° ÀÌÈĺÎÅÍ´Â ÀÚÀ¯·Ó°Ô ¾µ ¼ö ÀÖ¾î SCOREBOARD¶ó°í ÇØµµ µÇÁö¸¸ ´«¿¡ Àß µé¾î¿ÀÁö ¾ÊÀ¸¹Ç·Î ´ë¼Ò¹®ÀÚ¸¦ ÀûÀýÈ÷ ¼¯¾î ¾²´Â °ÍÀÌ ÁÁ´Ù.

À̸§ ºÙÀ̴°űîÁö °£¼·Çϴ°¡ ½Í°ÚÁö¸¸ ½ÇÁ¦·Î <button>°ú <Button>ÀÌ ´Ù¸£°í <form>°ú <Form>ÀÌ ´Ù¸¥ ¿¹°¡ ÀÖ´Ù. ÀÌ ±ÔÄ¢ÀÌ ¾øÀ¸¸é À̸§À» MyButton, MyForm µûÀ§·Î Áö¾î¾ß ÇϹǷΠ´õ ºÒÆíÇØÁø´Ù.

ÇÔ¼ö ÄÄÆ÷³ÍÆ®ÀÇ Àμö´Â µü Çϳª¹Û¿¡ ¾øÁö¸¸ À̸§°ú °ªÀÇ ½ÖÀ¸·Î µÈ °´Ã¼¿©¼­ »ç½Ç»ó °³¼ö Á¦ÇÑÀÌ ¾ø´Ù. ÀμöÀÇ À̸§Àº ¾Æ¹«·¡µµ »ó°ü ¾ø¾î a³ª b·Î ½áµµ µÇÁö¸¸ ¼Ó¼ºÀÇ ÁýÇÕÀ̶ó´Â Àǹ̿¡ ¸Â°Ô °ü½ÀÀûÀ¸·Î props·Î Áþ´Â´Ù. props Àμö¾È¿¡ ÄÄÆ÷³ÍÆ®ÀÇ ¼Ó¼ºÀÌ µé¾î ÀÖÀ¸¸ç È£ÃâÃø¿¡¼­´Â HTML ű×ÀÇ ¼Ó¼ºÀ» ÁöÁ¤ÇÏµí ¼Ó¼º°ªÀ» Àü´ÞÇÑ´Ù.

 

<ScoreBoard name = "È«±æµ¿" score = "89"/>

<ScoreBoard name = "È«±æµ¿", score = "89"/>        // ¿¡·¯

 

ÄÄÆ÷³ÍÆ® À̸§ ´ÙÀ½¿¡ ¼Ó¼º="°ª" Çü½ÄÀ¸·Î Àü´ÞÇ쵂 ¼Ó¼ºÀÌ ¿©·¯ °³ÀÏ ¶§´Â °ø¹éÀ¸·Î ±¸ºÐÇÑ´Ù. ÄÄÆ÷³ÍÆ®´Â ÇÔ¼öÀÇ ÇüŸ¦ ¶ç°í ÀÖÁö¸¸ È£ÃâÃø¿¡¼­´Â ÅÂ±× ÇüŸ¦ ÃëÇÑ´Ù. ÇÔ¼ö·Î Àü´ÞÇÏ´Â Àμö°¡ ¾Æ´Ï°í ű×ÀÇ ¼Ó¼ºÀ̹ǷΠÄÞ¸¶³ª ¼¼¹ÌÄÝ·ÐÀÌ ¾Æ´ÔÀ» À¯ÀÇÇÏÀÚ. HTML ű׿¡ ¼Ó¼ºÀ» ÁÖµí Àü´ÞÇÏ¸é µÈ´Ù.

¼Ó¼ºÀÌ props °´Ã¼·Î ¹­¿© Àü´ÞµÇ¹Ç·Î JSX ³»¿¡¼­ ¼Ó¼ºÀ» ÂüÁ¶ÇÒ ¶§´Â propsÀÇ ¸â¹ö¸¦ Àд {props.Àμö¸í} Çü½ÄÀ¸·Î Àû´Â´Ù. <p> ¹®´Ü ¾È¿¡¼­ {props.name}, {props.score}À» ÀÐ¾î ¹®ÀÚ¿­¾È¿¡ »ðÀÔÇÏ¿© Ãâ·ÂÇß´Ù.

¸®¾×Æ®´Â ÄÄÆ÷³ÍÆ® È£Ãâ¹®ÀÇ ¼Ó¼ºÀ» °´Ã¼·Î ¹­¾î Àü´ÞÇÑ´Ù. È£ÃâÃøÀº ÀÌ °´Ã¼¸¦ props Àμö·Î ¹ÞÀº ÈÄ ÇÊ¿äÇÑ °÷¿¡¼­ ¸â¹ö¸¦ ÀÐ¾î »ç¿ëÇÑ´Ù.

Çü½Ä»ó ÄÄÆ÷³ÍÆ®·Î Àü´ÞµÇ´Â Àμö´Â props °´Ã¼ µü ÇϳªÁö¸¸ °´Ã¼¿¡´Â ¼ö¸¹Àº ¸â¹ö°¡ Æ÷ÇԵȴÙ. ÀÌÁ¦ ScoreBoard ÄÄÆ÷³ÍÆ®´Â Àü´Þ¹Þ´Â Àμö¿¡ µû¶ó Ãâ·Â ¸ð¾çÀÌ ´Þ¶óÁø´Ù.

 

<ScoreBoard name = "À̼ø½Å" score = "92"/>

<ScoreBoard name = "À¯°ü¼ø" score = "85"/>

 

ScoreBoard ÄÄÆ÷³ÍÆ®ÀÇ È°¿ë¼ºÀÌ ³ô¾ÆÁ³´Ù. ½ºÅ¸Àϳª µ¿ÀÛ¿¡ ´ëÇÑ ¿É¼Ç±îÁöµµ ¼Ó¼ºÀ¸·Î Àü´ÞÇÏ¸é ´õ ´Ù¾çÇÑ ÇüÅ·ΠȰ¿ëÇÒ ¼ö ÀÖ´Ù.

Á¤¼ö Àμö

ű×ÀÇ ¼Ó¼ºÀº Ç×»ó ¹®ÀÚ¿­ÀÌ¸ç µû¿ÈÇ¥·Î °¨½Î Àü´ÞÇÑ´Ù. HTML ¹®¼­¿¡¼­´Â °ªÀÇ Å¸ÀÔÀÌ Á¤¼ö¶óµµ <td colspan="2" rowspan="2"> ½ÄÀ¸·Î µû¿ÈÇ¥¸¦ ¾²´Â°Ô ¿øÄ¢ÀÌ´Ù. ¼ýÀÚ·Î ½áµµ ºÁ ÁÖÁö¸¸ XHTML ±ÔÁ¤»óÀº µû¿ÈÇ¥°¡ ²À ÇÊ¿äÇÏ´Ù.

Á¡¼ö´Â Á¤¼öÇüÀÌÁö¸¸ score = 89·Î ÀûÀ¸¸é ¿¡·¯ÀÌ¸ç ¹®ÀÚ¿­·Î Àü´ÞÇØ¾ß ÇÑ´Ù. ´Ü¼øÈ÷ Ãâ·Â¸¸ ÇÑ´Ù¸é "89"·Î Àü´ÞÇØµµ º° ¹®Á¦ ¾ø´Ù. ±×·¯³ª ÀÌ °ªÀ» ¿¬»ê¿¡ »ç¿ëÇÑ´Ù¸é ¾ê±â°¡ ´Þ¶óÁø´Ù. ¿¹¸¦ µé¾î ¸ðµç ¼ºÀû¿¡ º¸³Ê½º Á¡¼ö 2Á¡À» ´õ ÁÖ±â·Î Çß´Ù°í ÇØ º¸ÀÚ. score¿¡ 2¸¸ ´õÇÏ¸é µÈ´Ù.

 

<p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score + 2}ÀÔ´Ï´Ù.</p>

 

ÀÌ·¯¸é 89Á¡¿¡ ´ëÇØ 2Á¡À» ´õÇØ 91Á¡ÀÌ ³ª¿Ã °Å °°Áö¸¸ score°¡ ¹®ÀÚ¿­À̹ǷΠ¿¬°áµÇ¾î 892Á¡ÀÌ µÇ¾î ¹ö¸°´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é ´ÙÀ½ µÑ Áß ÇϳªÀÇ ¹æ¹ýÀ» ½á¾ß ÇÑ´Ù.

 

1.¹®ÀÚ¿­·Î ¹ÞÀº Á¡¼ö¸¦ Á¤¼ö·Î ¹Ù²Û ÈÄ ¿¬»êÇÑ´Ù. {Number(props.score) + 2}·Î ¾²¸é 91Á¡ÀÌ µÈ´Ù.

2.È£ÃâºÎ¿¡¼­ Àü´ÞÇÒ ¶§ºÎÅÍ Á¤¼ö·Î Àü´ÞÇÑ´Ù. À̶§´Â Àμö¸¦ { } °ýÈ£·Î °¨½Î score = {89}·Î Ç¥±âÇÑ´Ù.

 

function ScoreBoard(props) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score + 2}ÀÔ´Ï´Ù.</p>

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard name = "È«±æµ¿" score = {89}/>

    </>

  );

}

 

"È«±æµ¿"À̳ª 89´Â ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¸®ÅÍ·²À̸ç JSX ±¸¹® ¾È¿¡¼­ ½ºÅ©¸³Æ®¸¦ ¾²·Á¸é { }°ýÈ£·Î °¨½Î´Â°Ô ¿øÄ¢ÀÌ´Ù. ¹®ÀÚ¿­ ¼Ó¼ºµµ {"È«±æµ¿"}À¸·Î ¾²´Â°Ô ¸ÂÁö¸¸ ¹ø°Å·Î¿ì¹Ç·Î Ưº°È÷ ¿¹¿Ü¸¦ ÀÎÁ¤ÇÏ¿© µû¿ÈÇ¥¸¸ °¨½Îµµ µÈ´Ù.

°´Ã¼ Àμö

ÄÄÆ÷³ÍÆ®ÀÇ ¼Ó¼ºÀº HTMLÀÇ ¼Ó¼º°ú »ç¿ë ¹æ¹ýÀ̳ª ÇüŰ¡ ºñ½ÁÇÏ´Ù. ±×·¯³ª HTMLÀÇ ¼Ó¼ºÀÌ ´Ü¼øÇÑ °ªÀε¥ ºñÇØ ÄÄÆ÷³ÍÆ®ÀÇ ¼Ó¼ºÀº °´Ã¼, ¹è¿­µµ °¡´ÉÇÏ¸ç ½ÉÁö¾î ÇÔ¼ö±îÁö Àü´ÞÇÒ ¼öµµ ÀÖ´Ù. { } °ýÈ£¾È¿¡´Â ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¸ðµç Ç¥Çö½ÄÀÌ ´Ù ¿Ã ¼ö ÀÖ´Ù. ´ÙÀ½ ÄÚµå´Â nameÀ» ¼º°ú À̸§ °´Ã¼·Î, Á¡¼ö´Â 3°ú¸ñ¿¡ ´ëÇÑ ¹è¿­·Î Àü´ÞÇÑ´Ù.

 

¿¹Á¦ : propsobj

function ScoreBoard(props) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{props.name.sung}{props.name.irum}´ÔÀÇ Á¡¼ö´Â

        {props.score[0]}, {props.score[1]}, {props.score[2]}ÀÔ´Ï´Ù.</p>

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard name = {{sung:"È«", irum:"±æµ¿"}} score = {[89, 75, 92]} />

    </>

  );

}

 

¼º°ú À̸§À» ºÙ¿©¼­ name °´Ã¼¸¦ ¸¸µé°í Á¡¼ö´Â ÄÞ¸¶·Î ±¸ºÐÇÏ¿© ³ª¿­Çß´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ °´Ã¼´Â { } °ýÈ£·Î, ¹è¿­Àº [ ] °ýÈ£·Î Ç¥ÇöÇÑ´Ù. JSX´Â ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ带 { } °ýÈ£·Î ¹­À¸¹Ç·Î °ýÈ£³¢¸®ÀÇ Áßø °ü°è°¡ º¹ÀâÇÏ´Ù. ¾î¶² °ýÈ£°¡ ¹«½¼ ¿ªÇÒÀ» ÇÏ´ÂÁö Àß ±¸ºÐÇØ¾ß ÇÑ´Ù.

propsÀÇ ¸â¹öÀÎ name °´Ã¼ÀÇ Á¤º¸¸¦ ÀÐÀ¸·Á¸é props.name.sung ½ÄÀ¸·Î . ¿¬»êÀÚ¸¦ ¿¬°ÅǪ »ç¿ëÇÑ´Ù. ¹è¿­Àº [÷ÀÚ] ½ÄÀ¸·Î ¿ä¼Ò¸¦ ÀÐµÇ ¿¹Á¦¿¡¼­´Â ¿ä¼Ò°¡ ¼¼ °³ ¹Û¿¡ ¾ø¾î Á÷Á¢ Àоú´Ù. ¿ä¼Ò°¡ ¾ÆÁÖ ¸¹À¸¸é map µîÀÇ ¹Ýº¹ ÇÔ¼ö·Î ·çÇÁ¸¦ µ¹¸®¸ç Àд´Ù.

Àμö ºÐÇØ ´ëÀÔ

props Àμö´Â °´Ã¼¿©¼­ ¾ó¸¶µçÁö ¸¹Àº ¼Ó¼ºÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ±×·±µ¥ Àμö¸¦ ÀÐÀ» ¶§¸¶´Ù ¸Å¹ø props. À» ¾Õ¿¡ ºÙÀÌ´Â °ÍÀº ±ÍÂúÀº ÀÏÀÌ´Ù. ÀÌ·² ¶§´Â ºÐÇØ ´ëÀÔ ¹®¹ýÀ» »ç¿ëÇÏ¿© Àμö¸¦ °³º° º¯¼ö¿¡ ´ëÀÔ¹Þ¾Æ ¾²¸é Æí¸®ÇÏ´Ù.  

 

¿¹Á¦ : splitprops

function ScoreBoard({name, score}) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{name}´ÔÀÇ Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard name = "È«±æµ¿" score = "89"/>

    </>

  );

}

 

Àμö ¸ñ·ÏÀÇ { } °ýÈ£¾È¿¡ °´Ã¼ÀÇ ¸â¹ö¸¦ ´ëÀÔ¹ÞÀ» º¯¼ö¸íÀ» ³ª¿­ÇÏ°í º»¹®¿¡¼­´Â À̸§¸¸À¸·Î Àμö¸¦ ÂüÁ¶ÇÑ´Ù. ºÐÇØ ´ëÀÔ ¹®¹ýÀº ÀÚ¹Ù½ºÅ©¸³Æ® ES6ºÎÅÍ µµÀÔµÈ °ÍÀÌ´Ù. Á» ¾î·Á¿ö º¸Àδٸé namescore ¿¹Á¦ÀÇ ÇÔ¼ö µµÀԺθ¦ ¾à°£ ¹Ù²ã º¸ÀÚ.

 

function ScoreBoard(props) {

  let name = props.name

  let score = props.score

 

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{name}´ÔÀÇ Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>

    ....

 

props °´Ã¼·Î Àμö¸¦ ¹ÞÀº ÈÄ ÇÔ¼ö ¼±µÎ¿¡¼­ °´Ã¼ÀÇ ¸â¹ö¸¦ °°Àº À̸§ÀÇ name, score °³º° º¯¼ö¿¡ ´ëÀÔ¹Þ¾Ò´Ù. ±×·¯´Ï »ç¿ëÇÒ ¶§´Â {name}, {score}·Î ¹Ù·Î ÀÐÀ» ¼ö ÀÖ´Ù. ÀÌ ÀýÂ÷¸¦ °£¼ÒÈ­ÇÑ °ÍÀÌ ºÐÇØ ´ëÀÔ ¹®¹ýÀÌ¸ç µÎ º¯¼ö¿¡ ´ëÇÑ ´ëÀÔÀ» Çϳª·Î ÇÕÄ¥ ¼ö ÀÖ´Ù.

 

function ScoreBoard(props) {

  let {name, score} = props

 

Àμö Àü´ÞÀº ´ëÀÔÀε¥ °´Ã¼¸¦ Àü´Þ¹Þ¾Æ ºÐÇØÇÏ´Â °Í°ú Àμö ¸ñ·Ï¿¡ ¾Æ¿¹ °³º° º¯¼ö¸¦ ½á Àü´Þ¹ÞÀ¸¸é¼­ ºÐÇØÇÏ´Â °Í°ú °°´Ù. ±× °á°ú°¡ ¹Ù·Î ¿¹Á¦ÀÇ ÄÚµåÀÌ´Ù.

 

function ScoreBoard({name, score}) {

 

ÄÄÆ÷³ÍÆ®ÀÇ ¼Ó¼ºÀº °³¼ö¿¡ »ó°ü¾øÀÌ ¿©·¯ °³ ¾µ ¼ö ÀÖ°í JSX´Â ¸ðµç ¼Ó¼ºÀ» props °´Ã¼¿¡ ¹­¾î Àü´ÞÇÑ´Ù. ÄÄÆ÷³ÍÆ®´Â ¹­¾î ³õÀº ¼Ó¼º°ªÀ» props.¼Ó¼º ½ÄÀ¸·Î ÀÐÀ» ¼öµµ ÀÖÁö¸¸ °³º° º¯¼ö·Î ÇØÃ¼ÇØ¼­ ÀÐÀ» ¼öµµ ÀÖ´Ù.

¾îÂ÷ÇÇ °´Ã¼¸¦ ¹Þ¾Æ ¸â¹ö¸¦ ÀÐÀ¸³ª °¢ ¸â¹ö¸¦ º¯¼ö·Î ¹Þ¾Æ ÀÐÀ¸³ª °á°ú´Â °°´Ù. ±×·¯³ª ¾à°£ÀÇ »ç¼ÒÇÑ Â÷À̰¡ Àִµ¥ props °´Ã¼·Î ¹ÞÀ¸¸é ¼Ó¼ºÀÌ Àбâ Àü¿ëÀÌÁö¸¸ º°µµÀÇ º¯¼ö·Î ºÐÇØÇØ¼­ ¹ÞÀ¸¸é Àбâ Àü¿ëÀÌ ¾Æ´Ï¾î¼­ °ªÀ» ¹Ù²Ü ¼ö ÀÖ´Ù.

 

function ScoreBoard(props) {

  props.name = "Á¤¿ì¼º"

function ScoreBoard({name, score}) {

  name = "Á¤¿ì¼º"

¿¡·¯

°¡´É

 

props·Î ¹ÞÀº Àμö´Â »ó¼ö¿©¼­ Àб⸸ ÇÏ´Â °ÍÀÌ ¿øÄ¢ÀûÀÌ´Ù. ºÐÇØÇØ¼­ º¯¼ö·Î ¹ÞÀ¸¸é º¯°æÇÒ ¼ö´Â ÀÖÁö¸¸ Àμö´Â ¿ø·¡ ÀԷ¿ëÀ̹ǷΠÀü´Þ¹ÞÀº Á¤º¸¸¦ ÀÓÀÇ·Î ¹Ù²Ù´Â °ÍÀº ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù. ±×·¡¼­ Àμö¸¦ ´ëÀÔ¹Þ´Â º¯¼ö´Â const·Î ¼±¾ðÇÒ °ÍÀ» ±ÇÀåÇÑ´Ù.

µðÆúÆ® ¼Ó¼º

ºÐÇØ ´ëÀÔ ±â¹ýÀ» ¾²¸é µðÆúÆ® Àμöµµ ¾µ ¼ö ÀÖ´Ù. props¿¡ ´ëÀÀµÇ´Â ¸â¹ö°¡ ¾øÀ¸¸é µðÆúÆ® Àμö¸¦ Àû¿ëÇÑ´Ù. ¿¹¸¦ µé¾î score Àμö¸¦ Àü´ÞÇÏÁö ¾ÊÀ¸¸é 50Á¡À» ±âº» Á¡¼ö·Î Áشٰí ÇØ º¸ÀÚ.

 

function ScoreBoard({name, score = 50}) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{name}´ÔÀÇ Á¡¼ö´Â {score}ÀÔ´Ï´Ù.</p>

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard name = "È«±æµ¿"/>

    </>

  );

}

 

score¿¡ µðÆúÆ®°ª 50À» ÁöÁ¤Çϰí È£ÃâÇÒ ¶§ score ¼Ó¼ºÀ» »ý·«ÇÏ¸é ±âº»°ª 50ÀÌ Àû¿ëµÈ´Ù. ¹°·Ð ¸í½ÃÀûÀÎ Á¡¼ö¸¦ Àü´ÞÇÏ¸é ±× °ªÀ» »ç¿ëÇÑ´Ù. ±âº» ¼Ó¼ºÀº undefined ÀÏ ¶§¸¸ Àû¿ëµÇ¸ç nullÀ̳ª 0Àº ±âº»°ªÀÌ Àû¿ëµÇÁö ¾ÊÀ½À» ÁÖÀÇÇÏÀÚ. ´ÙÀ½°ú °°ÀÌ Àü´ÞÇÏ¸é ±×³É ºó°ªÀ¸·Î ³ªÅ¸³­´Ù.

 

<ScoreBoard name = "È«±æµ¿" score = {null}/>

 

nullÀº °ªÀÌ ¾øÀ½À» ¸í½ÃÀûÀ¸·Î ÁöÁ¤ÇÑ °ÍÀÌÁö °ªÀ» Á¤ÀÇÇÏÁö ¾ÊÀº °Í°ú´Â ´Ù¸£´Ù. µðÆúÆ® ¼Ó¼ºÀº ¾Æ¿¹ ÁöÁ¤ÀÌ ¾øÀ» ¶§¸¸ Àû¿ëµÈ´Ù. Àμö¸¦ ºÐÇØÇÏÁö ¾Ê°í props °´Ã¼¸¦ ¹ÞÀ» ¶§´Â ÄÄÆ÷³ÍÆ®ÀÇ defaultProps ¼Ó¼º¿¡ µðÆúÆ®°ªÀÇ ¸ñ·ÏÀ» °´Ã¼·Î Á¤ÀÇÇÏ´Â ¹æ¹ýµµ ÀÖ´Ù.

 

function ScoreBoard(props) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

    </>

  )

}

 

ScoreBoard.defaultProps = {

  score : 50

}

 

function App() {

  return (

    <>

      <ScoreBoard name = "È«±æµ¿"/>

    </>

  );

}

 

props¸¦ Àü´ÞÇÒ ¶§ Àμö°¡ Àü´ÞµÇÁö ¾ÊÀ¸¸é defaultProps °´Ã¼¿¡¼­ Àμö À̸§°ú °°Àº ¸â¹ö¸¦ ã¾Æ ±âº»°ªÀ» Àû¿ëÇÑ´Ù. ¿¹Àü¿¡´Â ÀÌ ±â¹ýÀÌ ÅëÇߴµ¥ ÈÅÀ» µµÀÔÇÑ ÀÌÈĺÎÅÍ´Â ±ÇÀåÇÏÁö ¾Ê´Â´Ù. ÇÔ¼öÇü ÄÄÆ÷³ÍÆ®¿¡´Â µ¿ÀÛÇÏÁö ¾ÊÀ¸¸ç Ŭ·¡½ºÇü ÄÄÆ÷³ÍÆ®¿¡´Â ¾ÆÁ÷µµ ÀÌ ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¸®¾×Æ®ÀÇ º¯È­¶ó±âº¸´Ù´Â ES6¿¡ ±âº»°ª ¹®¹ýÀÌ µµÀÔµÈ ÈĺÎÅÍ´Â ¾µ Çʿ䰡 ¾ø¾îÁ³´Ù°í º¸´Â °ÍÀÌ Å¸´çÇÏ´Ù. ¾ÕÀ¸·Î ÀÌ·± Äڵ带 ¾µ ÇÊ¿ä´Â ¾øÁö¸¸ °ú°Å¿¡ ÀÌ ¹®¹ýÀ» »ç¿ëÇÑ ¼Ò½º°¡ ÀÖ¾î Á¸À縸 ¾Ë¾Æ µÎ¸é µÈ´Ù.

ŸÀÔ °Ë»ç

ÀÚ¹Ù½ºÅ©¸³Æ®´Â ¿ø·¡ ŸÀÔ¿¡ ´ëÇÑ Á¤Àǰ¡ ¾ø´Â ¾ð¾îÀÌ´Ù. ±×·¯´Ù º¸´Ï ¾Õ¼­ ¿¹¸¦ º¸ÀÎ Á¤¼ö Àü´Þ ¿¹¿¡¼­ ¹®ÀÚ¿­À» À߸ø Àü´ÞÇØµµ ÀÌ»ó¾øÀÌ ½ÇÇàµÇ¾î ¹ö¸°´Ù.

 

<p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score + 2}ÀÔ´Ï´Ù.</p>

<ScoreBoard name = "È«±æµ¿" score = "89"/>

 

Á¡¼ö¿¡ 2¸¦ ´õÇÏ´Â ¿¬»êÀ» ÇÏ´Â ÄÄÆ÷³ÍÆ®¿¡°Ô "89"¸¦ Àü´ÞÇÑ °ÍÀº ºÐ¸í ½Ç¼öÀÌ´Ù. ±×·¯³ª props·Î Àü´ÞµÇ´Â ¼Ó¼ºÀÌ ¹«½¼ ŸÀÔÀÎÁö Á¤ÀǵǾî ÀÖÁö ¾Ê¾Æ ÄÄÆÄÀÏ·¯´Â °³¹ßÀÚÀÇ Àǵµ¸¦ Á¤È®È÷ ¾Ë ¼ö ¾ø´Ù. ÀÌ·± ÇѰ踦 ±Øº¹Çϱâ À§ÇØ ÃÖ±Ù¿¡´Â ÀÚ¹Ù½ºÅ©¸³Æ®¿¡ ŸÀÔ Á¡°Ë ±â´ÉÀ» Ãß°¡ÇÑ Å¸ÀÔ½ºÅ©¸³Æ®¸¦ ¸¹ÀÌ »ç¿ëÇÑ´Ù.

vite·Î ¸¸µç study ÇÁ·ÎÁ§Æ®µµ ŸÀÔ½ºÅ©¸³Æ®¸¦ ¾²°í ÀÖÀ¸¹Ç·Î ŸÀÔ Á¡°Ë ±â´ÉÀ» Àû±ØÀûÀ¸·Î »ç¿ëÇØ º¸ÀÚ. props ´ÙÀ½¿¡ ¸â¹öÀÇ Á¾·ù¿Í ŸÀÔÀ» ºÐ¸íÈ÷ ÁöÁ¤ÇÏ¸é ¸ÂÁö ¾Ê´Â Àμö¿¡ ´ëÇØ °æ°í¸¦ Ç¥½ÃÇÑ´Ù.

 

function ScoreBoard(props: {

  name: string;

  score: number;

}) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score + 2}ÀÔ´Ï´Ù.</p>

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard name = "È«±æµ¿" score = "89"/>

    </>

  );

}

 

props ¼Ó¼º ´ÙÀ½¿¡ ¹®ÀÚ¿­ÀÎ name°ú ¼ýÀÚÀÎ score¸¦ ¸â¹ö·Î °¡Áö´Â °´Ã¼ÀÓÀ» ºÐ¸íÈ÷ ÁöÁ¤Çß´Ù. ÀÌ °´Ã¼ ŸÀÔÀ» ÀÌÈÄ¿¡µµ °è¼Ó »ç¿ëÇÑ´Ù¸é ¾Æ¿¹ interface·Î ŸÀÔÀ» Á¤ÀÇÇÑ ÈÄ ÁöÁ¤ÇÏ´Â °ÍÀÌ ÁÁ´Ù.

 

interface ScoreBoardProps {

  name: string;

  score: number;

}

 

function ScoreBoard(props: ScoreBoardProps) {

....

 

score¸¦ ¹®ÀÚ¿­·Î Àü´ÞÇÏ¸é ¹ØÁÙÀÌ ±×¾îÁö°í Ä¿¼­¸¦ °¡Á®°¡¸é °æ°í¸¦ º¸¿©ÁØ´Ù.

ÀÌ °æ°í¸¦ º¸°í °³¹ßÀÚ´Â ÀÚ½ÅÀÇ ½Ç¼ö¸¦ ¾Ë ¼ö ÀÖÀ¸¸ç ¹Ù·ÎÀâÀ» ¼ö ÀÖ´Ù. À̸§¿¡ ¼ýÀÚ¸¦ Àü´ÞÇϰųª Çʼö Á¤º¸¸¦ Àü´ÞÇÏÁö ¾ÊÀ» ¶§µµ °æ°íÀÌ´Ù.

 

<ScoreBoard name = {1004} score = {89}/>

<ScoreBoard name = "È«±æµ¿"/>

<ScoreBoard score = {89}/>

 

À̸§°ú Á¡¼ö°¡ ´Ù ÇÊ¿äÇÏÁö¸¸ µÑ Áß Çϳª°¡ »ý·«µÇ¾úÀ¸´Ï ¼ºÀûÀ» Á¦´ë·Î Ãâ·ÂÇÒ ¼ö ¾ø´Ù. ±×·¯³ª °æ°íÀÏ »ÓÀ̾ ÀÌ »óÅ·Π½ÇÇàÀº °¡´ÉÇÏ´Ù. ºñ·Ï À߸øµÈ °á°úÀÌÁö¸¸ À¥Àº À¯¿¬Çؼ­ ¿¡·¯°¡ ÀÖ´õ¶óµµ À¢¸¸Çϸé ÀÏ´Ü º¸¿© ÁÖ·Á´Â °æÇâÀÌ ÀÖ´Ù.

ŸÀÔ½ºÅ©¸³Æ®°¡ µ¶¸³ÀûÀÎ ¾ð¾î°¡ ¾Æ´Ï´Ù º¸´Ï ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ÇѰ踦 ¶Ù¾î ³Ñ±â ¾î·Æ´Ù´Â ¹®Á¦µµ ÀÖ´Ù. vite´Â ŸÀÔ½ºÅ©¸³Æ®¸¦ ¾²´õ¶óµµ °ú°Å¿¡ µÇ´ø ÄÚµå´Â ¿©ÀüÈ÷ À¯È¿ÇØ¾ß ÇϹǷΠ°æ°í¸¸ ÇÒ »Ó ½ÇÇàÀ» ¸·µµ·Ï ¼³Á¤ÇØ ³õÁö´Â ¾Ê´Â´Ù.

°Ô´Ù°¡ Áö±ÝÀº ÇÁ·Î´ö¼Ç ¸ðµå°¡ ¾Æ´Ñ °³¹ß ¸ðµåÀ̹ǷΠ»ç¼ÒÇÑ ½Ç¼ö±îÁö ÄÄÆÄÀÏÀ» ¹æÇØÇÒ ÇÊ¿ä´Â ¾ø´Ù. ÇÁ·ÎÁ§Æ®¸¦ Àá½Ã Áß´ÜÇÏ°í ºôµåÇØ º¸¸é °æ°í°¡ ¾Æ´Ñ ¿¡·¯¸¦ º¸¿© ÁÖ¸ç ÀÌ »óÅ·δ ¹èÆ÷ÇÏÁö ¸»¶ó´Â °ÍÀ» ºÐ¸íÈ÷ ¾Ë·Á ÁØ´Ù.

 

error TS2322: Type 'string' is not assignable to type 'number'.

<ScoreBoard name = "È«±æµ¿" score = "89"/>

 

ÀÌ »óÅ·δ ¹èÆ÷ÇÒ ¼ö ¾øÀ¸¹Ç·Î ¿¡·¯¸¦ ÇØ°áÇÑ ÈÄ ´Ù½Ã ºôµåÇØ¾ß ÇÑ´Ù. °³¹ßÁß¿¡ ŸÀÔ ºÒÀÏÄ¡ °æ°í´Â Ä¡¸íÀûÀÎ ¹ö±×ÀÇ ¿øÀÎÀÌ µÇ¹Ç·Î ¹«½ÃÇÏÁö ¸»°í Àß »ìÆì º¸ÀÚ.

4-2.ÄÄÆ÷³ÍÆ®

ÄÄÆ÷³ÍÆ® ¹Ýº¹

ÄÄÆ÷³ÍÆ®´Â ¿©·¯ ¹ø »ç¿ëÇÒ ¼ö ÀÖ´Ù. HTML ¹®¼­¾È¿¡ <a> ű׳ª <img> ű׸¦ ÇÊ¿äÇѸ¸Å­ ¾µ ¼ö ÀÖµíÀÌ <ScoreBoard> ÄÄÆ÷³ÍÆ®µµ ÇÊ¿äÇѸ¸Å­ ¾µ ¼ö ÀÖ´Ù. ºÎ¸ð ÄÄÆ÷³ÍÆ®¾È¿¡ ³ª¿­ÇÏ¸é µÈ´Ù.

 

function ScoreBoard(props) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard name = "À̼ø½Å" score = "50"/>

      <ScoreBoard name = "À»Áö¹®´ö" score = "60"/>

      <ScoreBoard name = "°­°¨Âù" score = "70"/>

    </>

  );

}

 

ScoreBoard ÄÄÆ÷³ÍÆ®¸¦ ¼¼ ¹ø ³ª¿­ÇßÀ¸´Ï ¼¼ ¸í¿¡ ´ëÇÑ ¼ºÀûÇ¥°¡ Ãâ·ÂµÈ´Ù. ¶È°°Àº ÄÄÆ÷³ÍÆ®Áö¸¸ ¼Ó¼º¿¡ µû¶ó ½ÇÁ¦ ³»¿ëÀº ´Þ¶óÁø´Ù. ³Ê¹« ³Ê¹« »ó½ÄÀûÀÎ ¾ê±âÀÌ´Ù.

Çѹø Àß ¸¸µé¾î ³õÀ¸¸é ´Ù¸¥ ÇÁ·ÎÁ§Æ®¿¡ Àç»ç¿ëÇϱ⵵ ½±´Ù. ¾ÆÁ÷ ½ºÅ¸ÀÏÀ» ÁÖÁö ¾Ê¾Æ ¹Ô¹ÔÇØ º¸ÀÌÁö¸¸ °¢ ¼ºÀûÇ¥¿¡ ¹Ú½º¸¦ µÎ¸£°í ¹è°æ»ö¸¸ ÀÔÇôµµ ±×·²µíÇØ º¸ÀδÙ. ÀÌ·± ¹Ú½º¸¦ Æ÷°³°í °ãÃÄ ¸ÚÁø À¥ ÆäÀÌÁö¸¦ ¸¸µç´Ù. ÀÌ·¡¼­ ÄÄÆ÷³ÍÆ®¸¦ ºÎǰÀ̶ó°í ÇÏ¸ç ¸®¾×Æ®¸¦ ÄÄÆ÷³ÍÆ® ±â¹ÝÀ̶ó°í ÇÏ´Â °ÍÀÌ´Ù.

Àß ¸¸µé¾î ³õÀº ÄÄÆ÷³ÍÆ®¸¦ ´Ù¸¥ ÇÁ·ÎÁ§Æ®¿¡ º¹»çÇϱ⸸ ÇÏ¸é ¹Ù·Î Àç»ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç À¥¿¡ Àü¹®°¡µéÀÌ ¸¸µç ÄÄÆ÷³ÍÆ®°¡ ³Î·Á ÀÖ´Ù. ScoreBoard ÇÔ¼ö¸¦ º¹»çÇØ ºÙ¿© ³ÖÀ¸¸é µÈ´Ù. ´Ü, ÄÄÆ÷³ÍÆ®´Â ½Ç¿ëÀûÀÎ ¼Ó¼ºÀ» ¸¹ÀÌ Á¦°øÇØ¾ß ÇÏ¸ç »ç¿ëÇÏ´Â ÂÊ¿¡¼­´Â ¿ä±¸ÇÏ´Â ¼Ó¼ºÀ» Á¤È®È÷ Àü´ÞÇØ¾ß ÇÑ´Ù.

ÄÄÆ÷³ÍÆ® Áßø

Ä¿´Ù¶õ ÄÄÆ÷³ÍÆ® Çϳªº¸´Ù´Â ÀÚÀßÇÑ ÄÄÆ÷³ÍÆ® ¿©·¯ °³·Î ³ª´©¾î ³õÀ¸¸é ´Ù¾çÇÑ ¹æ½ÄÀ¸·Î Á¶ÇÕÇØ¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸¶Ä¡ ÇÔ¼ö¸¦ Àß°Ô ³ª´©¸é ÆíÀǼºÀÌ Áõ°¡ÇÏ´Â °Í°ú °°´Ù. ¼ºÀûÇ¥´Â ¿ö³« À۾Ƽ­ ´õ ³ª´­ °Íµµ ¾øÁö¸¸ Á» ¾ïÁö½º·´´õ¶óµµ ½ÃÇèÀ̸§°ú ¼ºÀûÇ׸ñÀ¸·Î ºÐ¸®ÇØ º¸ÀÚ.

 

¿¹Á¦ : twocompo

function ScoreBoard(props) {

  return (

    <>

      <h2>{props.exam} ¼ºÀûÇ¥</h2>

      {<ScoreItem name = {props.name} score = {props.score}/>}

    </>

  )

}

 

function ScoreItem(props) {

  return (

    <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard exam = "Áß°£°í»ç" name = "È«±æµ¿" score = "89"/>

    </>

  );

}

 

Àüü ¼ºÀûÇ¥¿¡¼­ ÇÑ »ç¶÷ÀÇ ¼ºÀûÀ» Ç¥½ÃÇÏ´Â ¹®´ÜÀ» ScoreItemÄÄÆ÷³ÍÆ®·Î ºÐ¸®Çß´Ù. <p> ÅÂ±× Çϳª¸¦ ¸®ÅÏÇÏ´Â ÄÄÆ÷³ÍÆ®¿©¼­ ±»ÀÌ <div>³ª <>·Î °¨½ÎÁö ¾Ê¾Æµµ µÈ´Ù. ÇÑÁÙ·Î ¾µ ¼öµµ ÀÖÁö¸¸ È®À强À» °í·ÁÇÏ¿© ( ) °ýÈ£´Â ºÙ¿© µÎ¾ú´Ù.

¼ºÀûÀº ScoreItem ÇÏÀ§ ÄÄÆ÷³ÍÆ®·Î ºÐ¸®Çϰí ScoreBoard´Â ½ÃÇè À̸§¸¸ Ç¥½ÃÇÑ´Ù. ½ÃÇèµµ ¿©·¯ Á¾·ù°¡ ÀÖÀ¸¹Ç·Î À̸§À» exam ¼Ó¼ºÀ¸·Î Àü´Þ¹Þ¾Æ Ç¥½ÃÇÑ´Ù. ¼Ó¼ºÀÌ Çϳª ´õ ´Ã¾úÀ¸¹Ç·Î È£ÃâÇÒ ¶§´Â exam ¼Ó¼ºµµ ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

ScoreBoard´Â ¼¼ °³ÀÇ ¼Ó¼ºÀ» ¹Þ¾Æ examÀº ÀÚ½ÅÀÌ Ãâ·ÂÇϰí name, score´Â ÀÚ½Ä ÄÄÆ÷³ÍÆ®ÀÎ ScoreItemÀ¸·Î Àü´ÞÇÑ´Ù. µÎ °³ÀÇ ÄÄÆ÷³ÍÆ®°¡ ÁßøµÇ¾î ÀÖÀ¸¸ç ScoreBoard ÄÄÆ÷³ÍÆ®°¡ ScoreItemÀ» Æ÷ÇÔÇÏ¿© ¸®ÅÏÇÑ´Ù.

°ãÄ¡´Ï±î º¹ÀâÇØ º¸ÀÌÁö¸¸ »ç½ÇÀº ±²ÀåÈ÷ »ó½ÄÀûÀÎ ±¸Á¶ÀÌ´Ù. HTML ¹®¼­¿¡¼­ <p>ÅÂ±× ¾È¿¡ <b>, <a> űװ¡ Æ÷ÇԵǾî ÀÖ´Â °Í°ú °³³äÀûÀ¸·Î ¶È°°Àº ±¸Á¶ÀÌ´Ù. <p>, <a> ó·³ ¼Ò¹®ÀÚ·Î ½ÃÀÛÇÏ´Â °Ç HTML ű×À̰í <ScoreBoard>, <ScoreItem> ó·³ ´ë¹®ÀÚ·Î ½ÃÀÛÇÏ´Â °Ç ¸®¾×Æ® ÄÄÆ÷³ÍÆ®ÀÏ »ÓÀÌ´Ù. 

 

<p>°³¹ßÀÚÀÇ <b>õ±¹</b> :

  <a href="http://www.soen.kr">Soen</a>

</p>

 

ÄÄÆ÷³ÍÆ®¸¦ Àß°Ô ³ª´©¾î ³õÀ¸¸é ÀÚ±âµé³¢¸® ÁßøÇÒ ¼ö ÀÖ°í °°Àº ÄÄÆ÷³ÍÆ®¸¦ ³ª¿­ÇÒ ¼öµµ ÀÖ´Ù. °ú¿¬ ±×·±Áö App¿¡¼­ ÄÄÆ÷³ÍÆ®¸¦ ³ª¿­ÇÏ¿© ¼ºÀûÇ¥¿Í ¼ºÀû Ç׸ñÀ» ¿©·¯ °³ ¸¸µé¾î º¸ÀÚ. ¿©·¯ °³ÀÇ ÄÄÆ÷³ÍÆ®¸¦ ³ª¿­ÇÒ ¶§´Â ´ÜÀÏ ·çÆ® ¿øÄ¢¿¡ µû¶ó <> </>·Î °¨½Î¾ß ÇÑ´Ù.

 

function ScoreBoard(props) {

  return (

    <>

      <h2>{props.exam} ¼ºÀûÇ¥</h2>

      {<ScoreItem name = {props.name} score = {props.score}/>}

    </>

  )

}

 

function ScoreItem(props) {

  return (

    <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard test = "Áß°£°í»ç" name = "È«±æµ¿" score = "89"/>

      <ScoreBoard test = "±â¸»°í»ç" name = "±èÇö¼ö" score = "76"/>

      <ScoreItem name = "±èÇѽ½" score = "92"/>

    </>

  );

}

 

¶È°°Àº ÄÄÆ÷³ÍÆ®¶óµµ ¼Ó¼ºÀ» ¹Þ¾Æ µéÀ̹ǷΠ°¢°¢ ½ÃÇè°ú À̸§, Á¡¼ö¸¦ ´Ù¸£°Ô Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ¶Ç ScoreItemÀº ScoreBoard¿¡ Æ÷ÇԵǾî ÀÖÁö¸¸ ±× ÀÚüµµ µ¶¸³ÀûÀÎ ÄÄÆ÷³ÍÆ®À̹ǷΠ´Üµ¶À¸·Î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. 

Áö±ÝÀº ´Ü¼øÇÑ ¹æ¹ýÀ¸·Î ÄÄÆ÷³ÍÆ®¸¦ ¹Ýº¹ÇßÁö¸¸ ¹è¿­, ·çÇÁ¿Í °áÇÕÇÏ¿© ÄÄÆ÷³ÍÆ®¸¦ µ¿ÀûÀ¸·Î »ý¼ºÇÏ¸é ´ë·®ÀÇ ÀڷḦ Ãâ·ÂÇϰí ÇÊÅ͸µ, Á¤·Ä µîÀÇ ±â¹ýÀ» ´Ù Ȱ¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ ½Ç½ÀÀº Àá½Ã ÈÄ ÇØ º¼ °ÍÀÌ´Ù.

ÄÄÆ÷³ÍÆ® ÇÔ¼ö Áßø

ScoreItem°ú ScoreBoard´Â ±ä¹ÐÈ÷ ¿¬°üµÇ¾î ÀÖ´Ù. Á¡¼ö´Â ¼ºÀûÇ¥ ¾È¿¡ ÀÖ¾î¾ß Àǹ̰¡ ÀÖÀ¸´Ï ÁßÃ¸ÇØ¼­ ¾²´Â°Ô ´ç¿¬ÇÏ´Ù. ±×·¯³ª ÄÄÆ÷³ÍÆ®³¢¸® Áßø°ü°è¶ó°í ÇØ¼­ ÇÔ¼ö¸¦ ÁßøÇÏ´Â °ÍÀº ¹Ù¶÷Á÷ÇÏÁö ¾Ê´Ù.

 

function ScoreBoard(props) {

  function ScoreItem(props) {

    return (

      <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

    )

  }

 

    return (

    <>

      <h2>{props.exam} ¼ºÀûÇ¥</h2>

      {<ScoreItem name = {props.name} score = {props.score}/>}

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard exam = "Áß°£°í»ç" name = "È«±æµ¿" score = "89"/>

    </>

  );

}

 

ScoreBoard ÇÔ¼ö¾È¿¡ ScoreItem Áö¿ª ÇÔ¼ö¸¦ ¼±¾ðÇß´Ù. ¾îÂ÷ÇÇ ¼ºÀûÇ¥ ¾È¿¡ ¼ºÀûÀÌ µé¾î°¡¾ß Çϰí ÀÚ¹Ù½ºÅ©¸³Æ®°¡ Áö¿ª ÇÔ¼ö¸¦ Áö¿øÇÏ´Ï ¹®¹ýÀûÀ¸·Î´Â ¾Æ¹« ¹®Á¦°¡ ¾øÀ¸¸ç ½ÇÇ൵ Àß µÈ´Ù. ±×·¯³ª ¿©·¯ °¡Áö ÀÌÀ¯·Î ÀÌ·± ÇüÅ´ ±ÇÀåÇÏÁö ¾Ê´Â´Ù.

 

¢º ´Ù¸¥ °÷¿¡¼­ ScoreItem ¸¸ ÀçȰ¿ëÇÏ°í ½ÍÀ» ¶§ ºÎ¸ð¿Í ¿«ÀÎ Äڵ带 ºÐ¸®ÇÑ ÈÄ °¡Á® °¡¾ß ÇϹǷΠ¹ø°Å·Î¿öÁø´Ù.

¢º ºÎ¸ð¸¦ ·£´õ¸µÇÒ ¶§¸¶´Ù ÀÚ½Ä ÄÄÆ÷³ÍÆ®¸¦ °­Á¦·Î »õ·Î »ý¼ºÇϹǷΠ¸Þ¸ð¸®µµ ¸¹ÀÌ ¾²°í ´À·ÁÁø´Ù.

¢º ÇÑÂÊ¿¡ ¹ö±×°¡ »ý±æ ¶§ Å×½ºÆ®ÇÏ±â ¾î·Æ´Ù.

 

ÄÄÆ÷³ÍÆ®³¢¸® ±â´ÉÀûÀ¸·Î´Â Áßø °ü°èÀÌ´õ¶óµµ ÇÔ¼ö´Â ¹Ýµå½Ã ÃÖ»óÀ§ ·¹º§¿¡ µ¶¸³ÀûÀ¸·Î ÀÛ¼ºÇÒ °ÍÀ» ±ÇÇÑ´Ù. ScoreBoard¿Í ScoreItemÀº °°Àº ·¹º§ÀÇ ÆòµîÇÑ ÇÔ¼ö·Î Á¤ÀÇÇϰí Á¶ÇÕÇÒ ¶§¸¸ ÁßÃ¸ÇØ¼­ ½á¾ß ÇÑ´Ù. ´õ ÀÌ»óÀûÀ¸·Î´Â ¾Æ¿¹ ¸ðµâÀ» ºÐ¸®ÇÏ´Â °ÍÀÌ ÁÁ´Ù.

Á¤¸» ±Ø´ÜÀûÀ¸·Î °£´ÜÇÑ ÄÄÆ÷³ÍÆ®´Â ±âµ¿¼ºÀ» À§ÇØ ÇÔ¼ö¸¦ ÁßøÇÏ´Â °æ¿ìµµ ÀÖ´Ù. ±×·¯³ª ¹®¹ýÀûÀ¸·Î °¡´ÉÇÏ´õ¶óµµ ±ÇÀåÇÏÁö ¾Ê´Â´Ù. ´Ù ÀÌÀ¯°¡ À־ ¸¸µé¾îÁø °üÇàÀ̹ǷΠ°¡±ÞÀû ÁöŰ´Â °ÍÀÌ ÁÁ´Ù. ¸®¾×Æ®¸¦ Àß È°¿ëÇÏ·Á¸é ÀÌ·± °üÇàÀ» Á¦´ë·Î ÀÍÈ÷´Â °Íµµ Áß¿äÇÏ´Ù.

children

ÄÄÆ÷³ÍÆ®µµ ÀÏÁ¾ÀÇ Å±×ÀÌ´Ù. ÄÄÆ÷³ÍÆ®¸¸ »ðÀÔÇÒ ¶§´Â <ScoreBoard /> ½ÄÀ¸·Î ¾²Áö¸¸ <p></p>³ª <div></div>ó·³ ¿©´Â ÅÂ±×¿Í ´Ý´Â ű׸¦ °¢°¢ ¾µ ¼öµµ ÀÖ´Ù. ÀÌ·¯¸é ÅÂ±× »çÀÌ¿¡ ¹º°¡¸¦ ´õ ³ÖÀ» ¼ö ÀÖ´Ù. ¿ä·¸°Ô Àü´ÞµÈ ű״ PropsÀÇ ¼û°ÜÁø Àμö childrenÀ¸·Î ÂüÁ¶ÇÑ´Ù.

 

function ScoreBoard(props) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

      <hr />

      <p>°øÁö »çÇ× : {props.children}</p>

    </>

  )

}

 

function App() {

  return (

    <>

      <ScoreBoard name = "È«±æµ¿" score = "89">

          ±â¸»°í»çµµ Àß ÁغñÇØ ÁÖ¼¼¿ä.

      </ScoreBoard>

    </>

  );

}

 

<ScoreBoard> ű×ÀÇ ³»¿ëÀ¸·Î Àü´Þ »çÇ×À» ¸í½ÃÇϸé ÄÄÆ÷³ÍÆ®´Â ÀÌ ³»¿ëÀ» {props.children}À¸·Î Àоî Ãâ·ÂÇÑ´Ù. °øÁö »çÇ×À» ¼ºÀûÇ¥¿Í ±¸ºÐÇϱâ À§ÇØ ¼öÆò¼±À» ±ß°í ¾Æ·¡ÂÊ¿¡ ¹®´ÜÀ¸·Î Ãâ·ÂÇß´Ù.

<p> ÅÂ±× ¾ÈÂÊ¿¡ ¹®´ÜÀÇ ³»¿ëÀÌ µé¾î°¡´Â °Í°ú °³³äÀûÀ¸·Î °°´Ù. ÅÂ±× ¾È¿¡ ¹®ÀÚ¿­ »Ó¸¸ ¾Æ´Ï¶ó ÀÚ½Ä Å±װ¡ µé¾î°¥ ¼ö ÀÖµíÀÌ ÄÄÆ÷³ÍÆ®µµ ¸¶Âù°¡ÁöÀÌ´Ù. ÄÄÆ÷³ÍÆ® ³»ºÎÀÇ ¼öÆò¼±°ú °øÁö»çÇ× ¹®´ÜÀ» È£ÃâÃø¿¡ ³Ö°í ÄÄÆ÷³ÍÆ®´Â ÀÌ°É ±×´ë·Î Ãâ·ÂÇØµµ µÈ´Ù.

 

function ScoreBoard(props) {

  return (

    <>

      <h2>¼ºÀûÇ¥</h2>

      <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

      {props.children}

    </>

  )

}

 

function App() {

  return (

    <>

    <ScoreBoard name = "È«±æµ¿" score = "89">

      <hr />

      <p>±â¸»°í»çµµ Àß ÁغñÇØ ÁÖ¼¼¿ä.</p>

    </ScoreBoard>

    <ScoreBoard name = "À̽¿ì" score = "52">

      <p><b>ÇÐ»ç °æ°í</b></p>

    </ScoreBoard>

  </>

  );

}

 

childrenÀº ¸®¾×Æ® ÄÄÆ÷³ÍÆ®ÀÇ ¹è¿­Àε¥ {props.children}¸¸ ¾²¸é ¹è¿­ÀÌ ±×´ë·Î Ãâ·ÂµÈ´Ù. ÀÌ·¸°Ô µÇ¸é È£ÃâÃø¿¡¼­ Àü´Þ»çÇ×À» ÄÄÆ÷³ÍÆ®¸¶´Ù ´Ù¸£°Ô Àü´ÞÇÒ ¼ö ÀÖ¾î Ȱ¿ë¼ºÀÌ Áõ°¡ÇÑ´Ù. ¼ºÀû¿¡ µû¶ó ´Ù¸¥ Àü´Þ »çÇ×À» ³Ñ±æ ¼öµµ ÀÖ°í ´Ù¸¥ ½ºÅ¸ÀÏÀ» Àû¿ëÇÒ ¼öµµ ÀÖ¾î È£ÃâÃø¿¡ ·£´õ¸µ ¹æ½Ä±îÁö Áö½ÃÇÒ ¼ö ÀÖ´Ù.

props·Î´Â ÄÄÆ÷³ÍÆ®ÀÇ ¼Ó¼º »Ó¸¸ ¾Æ´Ï¶ó ÀÚ½Ä ÄÄÆ÷³ÍÆ®±îÁöµµ ´Ù Àü´ÞµÈ´Ù. È£ÃâÃøÀÇ ¸ðµç Á¤º¸°¡ ÀÌ ¾È¿¡ ´Ù µé¾î°¡´Â ¼ÀÀÌ´Ù. childrenÀº Â÷Àϵå Àüü¸¦ °¡Áö´Â ¹è¿­À̸ç ÀϺθ¸ Àд ¹®¹ýÀº µû·Î Á¦°øÇÏÁö ¾Ê´Â´Ù. ÀϺθ¸ »ç¿ëÇÏ·Á¸é ¹è¿­À» °Ë»öÇØ¼­ ÇÊÅ͸µÇÑ ÈÄ »ç¿ëÇÏ¸é µÈ´Ù.

ÄÄÆ÷³ÍÆ®º° ¼Ò½º ºÐ¸®

Áö±Ý±îÁöÀÇ ¿¹Á¦¿¡¼­´Â ÄÄÆ÷³ÍÆ®°¡ ¿©·¯ °³ÀÌ´õ¶óµµ º¸±â ½±µµ·Ï °¡±ÞÀû ÇÑ ÆÄÀÏ¿¡ ÀÛ¼ºÇß´Ù. ±×·¯³ª ½Ç¹«¿¡¼­´Â ÄÄÆ÷³ÍÆ®º°·Î °¢°¢ÀÇ ¼Ò½º ÆÄÀÏ¿¡ ÀÛ¼ºÇÏ´Â°Ô ¿øÄ¢ÀÌ´Ù. ÀÌ ¿øÄ¢´ë·Î App, ScoreBoard, ScoreItem 3°³ÀÇ ÄÄÆ÷³ÍÆ®¸¦ µû·Î ¸¸µé¾î º¸ÀÚ. ÅëÇÕ ¹èÆ÷ ¿¹Á¦¿¡µµ ÀÛ¼ºµÇ¾î ÀÖÁö¸¸ ÀÌ·± ½Ç½ÀÀº º°µµÀÇ ÇÁ·ÎÁ§Æ®¸¦ µû·Î ¸¸µé¾î ½Ç½ÀÇÏ´Â°Ô ÁÁ´Ù.

App.tsx´Â ÀÌ¹Ì ÀÖÀ¸´Ï ³ª¸ÓÁö µÎ °³ÀÇ ÆÄÀϸ¸ ¸¸µé¸é µÈ´Ù. º°µµÀÇ ÇÏÀ§ Æú´õ¸¦ ¸¸µé¾îµµ µÇÁö¸¸ ±ÍÂúÀ¸´Ï src Æú´õ¿¡ ¸¸µéÀÚ. Ž»ö±â¿¡¼­ src Æú´õ¸¦ ¼±ÅÃÇØ ³õÀº »óÅ¿¡¼­ ¿À¸¥ÂÊ Åø¹ÙÀÇ µÎ ¹øÂ° »õ ÆÄÀÏÀ» ¹öưÀ» Ŭ¸¯Çϸé src ¾Æ·¡ »õ ÆÄÀÏ À̸§À» ÀÔ·ÂÇÏ´Â ¿¡µðÆ®°¡ ¿­¸°´Ù.

°¡Àå ÇÏÀ§ÀÇ ÄÄÆ÷³ÍÆ®ÀÎ ScoreItemºÎÅÍ ¸¸µé¾î º¸ÀÚ. src¿¡ ScoreItem.tsx ÆÄÀÏÀ» Ãß°¡ÇÏ¸é ºó ÆíÁý±â°¡ ¿­¸®´Âµ¥ ´ÙÀ½ ¼Ò½º¸¦ ÀÛ¼ºÇÑ´Ù.

 

function ScoreItem(props) {

  return (

    <p>{props.name}´ÔÀÇ Á¡¼ö´Â {props.score}ÀÔ´Ï´Ù.</p>

  )

}

 

export default ScoreItem

 

ÄÄÆ÷³ÍÆ®ÀÇ ÄÚµå´Â ÀÌ¹Ì º» °ÍÀÌ°í ¼Ò½º Á¦ÀÏ ¾Æ·¡ÂÊ¿¡ ÄÄÆ÷³ÍÆ®¸¦ ¿ÜºÎ·Î °ø°³ÇÏ´Â export¹®ÀÌ ÀÛ¼ºµÇ¾î ÀÖ´Ù. ÀÚ½ÅÀ» ¹ÛÀ¸·Î °ø°³ÇØ¾ß »ç¿ëÇÏ´ÂÂÊ¿¡¼­ ÀÌ ÄÄÆ÷³ÍÆ®¸¦ ºÒ·¯´Ù ¾µ ¼ö ÀÖ´Ù. °°Àº ÀýÂ÷´ë·Î À̹ø¿¡´Â ScoreBoard.tsx¸¦ Ãß°¡ÇÑ´Ù.

 

import ScoreItem from './ScoreItem';

 

function ScoreBoard(props) {

  return (

    <>

      <h2>{props.exam} ¼ºÀûÇ¥</h2>

      {<ScoreItem name = {props.name} score = {props.score}/>}

    </>

  )

}

 

export default ScoreBoard;

 

¼Ò½º ¼±µÎ¿¡¼­ import¹®À¸·Î ScoreItem.tsxÀÇ ScoreItem ÄÄÆ÷³ÍÆ®¸¦ Àоî¿Â´Ù. ÀÌ ¹®ÀåÀÌ ÀÖ¾î¾ß <ScoreItem> ÄÄÆ÷³ÍÆ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ScoreBoard Àڽŵµ ¿ÜºÎ·Î °ø°³ÇØ¾ß ÇϹǷΠ¼Ò½º ¸»¹Ì¿¡ export ¼±¾ðÀ» ÇØ¾ß ÇÑ´Ù. ÄÄÆ÷³ÍÆ®°¡ ÁغñµÇ¾úÀ¸´Ï App.tsx¿¡¼­ ÄÄÆ÷³ÍÆ®¸¦ ¹èÄ¡ÇÑ´Ù.

 

import ScoreBoard from './ScoreBoard';

import './App.css'

 

function App() {

  return (

    <>

      <ScoreBoard exam = "Áß°£°í»ç" name = "È«±æµ¿" score = "89"/>

    </>

  );

}

 

export default App

 

¼ºÀûÇ¥¸¦ Ãâ·ÂÇϱâ À§ÇØ ScoreBoard¸¦ ÀÓÆ÷Æ®Çϰí <ScoreBoard>¸¦ ¹èÄ¡ÇÑ´Ù. ¼ºÀûÇ¥ ¾ÈÀÇ ScoreItemÀº Á÷Á¢ »ç¿ëÇÏÁö ¾ÊÀ¸´Ï ±»ÀÌ ±»ÀÌ ÀÓÆ÷Æ®ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. App ÄÄÆ÷³ÍÆ® Àڽŵµ main.tsx¿¡¼­ »ç¿ëÇϹǷΠexport Çϴµ¥ ¹èÆ÷ ¿¹Á¦¿¡´Â ÀÌ¹Ì ÀÛ¼ºµÇ¾î ÀÖ´Ù.

ÄÄÆ÷³ÍÆ®°£ÀÇ Æ÷ÇÔ °ü°è°¡ ¿©·¯ ´Ü°èÀÌ´Ù. »ç½Ç mainµµ ¿ìµÎ¸Ó¸®´Â ¾Æ´Ï¸ç index.htmlÀÇ root ¾Æ·¡·Î µé¾î°£´Ù. ½ÇÇàÇØ º¸¸é ¼ºÀûÇ¥°¡ È­¸é Áß¾Ó¿¡ ³ªÅ¸³ª ÇÑ ¼Ò½º ÆÄÀÏ¿¡ ¸ðµÎ ÀÛ¼ºÇÑ °Í°ú °á°ú´Â °°´Ù.

Çö´ëÀûÀÎ ÇÁ·Î±×·¡¹ÖÀº °¡±ÞÀû Àß°Ô ºÐÇÒ °³¹ßÇÏ´Â ¸ðµâÈ­°¡ ¿øÄ¢ÀÌ´Ù. ÇÑ ÆÄÀÏÀº µü ÇϳªÀÇ ÀÓ¹«¸¸ ¶ç°í ±×°Í¸¸ Àß ÇÏ¸é µÈ´Ù. ÀÌ ¿øÄ¢À» µû¸£¸é ¿©·¯ °¡Áö ÀåÁ¡ÀÌ »ý±ä´Ù.

 

¢º ºÐÇÒ ÀÛ¾÷ÀÌ ¿ëÀÌÇØ °¢ÀÚ ¸ÃÀº ¼Ò½º¸¸ ÀÛ¼ºÇÏ¸é µÈ´Ù. ¼­·Î °£¼·ÇÒ ÀÏÀÌ ¾ø°í git¿¡¼­ÀÇ Ãæµ¹µµ ÃÖ¼ÒÈ­ÇÒ ¼ö ÀÖ´Ù.

¢º ÄÄÆ÷³ÍÆ®°¡ ¼Ò½º°¡ 1:1 ´ëÀÀµÇ¹Ç·Î Àç»ç¿ëÇϱ⠽±´Ù. ¼Ò½º ÆÄÀϸ¸ º¹»çÇØ ºÙ¿© ³ÖÀ¸¸é ´Ù¸¥ ÇÁ·ÎÁ§Æ®¿¡¼­µµ ¶È°°ÀÌ µ¿ÀÛÇÑ´Ù.

¢º ¹Ù²ï ºÎºÐ¸¸ ´Ù½Ã ÄÄÆÄÀÏÇÏ¸é µÇ¹Ç·Î °³¹ß ¼Óµµ°¡ »¡¶óÁö°í ¹èÆ÷ÇÒ ¶§µµ ¾÷µ¥ÀÌÆ®ÇÑ ºÎºÐ¸¸ ´Ù½Ã ·ÎµåÇÏ¸é µÇ´Ï ºü¸£´Ù.

 

½Ç¹« ÇÁ·ÎÁ§Æ®¿¡¼­´Â ÀåÁ¡ÀÌ ¸¹¾Æ Àû±ØÀûÀ¸·Î ºÐÇÒÇØ¾ß ÇÑ´Ù. ±×·¯³ª ½Ç½ÀÇÒ ¶§´Â Äڵ带 ÀÛ¼ºÇÏ´Â °Íº¸´Ù ÆÄÀÏÀ» ¸¸µé°í import, export Çϴµ¥ ¼ÕÀÌ ´õ ¸¹ÀÌ °¡ ¹ø°Å·Ó´Ù. °íÀÛ ´Ù¼¸ÁÙ¹Û¿¡ ¾ÈµÇ´Â Äڵ带 À§ÇØ º°µµÀÇ ÆÄÀÏÀ» ¸¸µå´Â °ÍÀº ³¶ºñÀÌ´Ù.

¶Ç ÇнÀÇÏ´Â »ç¶÷ÀÌ ¼Ò½º¸¦ ÀÐÀ» ¶§µµ ¿©·¯ ÆÄÀÏ¿¡ Èð¾îÁø Äڵ带 µû·Î ºÁ¾ß ÇÏ´Ï °¡µ¶¼ºµµ ½ÉÇÏ°Ô ¶³¾îÁø´Ù. ÀÌ·± ÀÌÀ¯·Î ÀÌ °­Á´ ÇÑ ÁÖÁ¦¿¡ ´ëÇØ¼­´Â °¡±ÞÀû ÇÑ ¼Ò½º ÆÄÀÏ¿¡ ÀÛ¼ºÇÏ¿´´Ù. ¾Æ·¡ À§·Î °ü·Ã ÄÄÆ÷³ÍÆ®°¡ ÀÎÁ¢ÇØ ÀÖÀ¸¸é ±¸Á¶ ÆÄ¾ÇÀÌ ¿ëÀÌÇÏ´Ù.

4-3.ÄÄÆ÷³ÍÆ® °ü¸®

¹è¿­ Ãâ·Â

À¥ ÆäÀÌÁö´Â ºñ½ÁÇÑ Á¤º¸°¡ °è¼Ó ¹Ýº¹µÇ´Â ÇüŰ¡ ¸¹´Ù. ¼îÇθôÀº »óǰÀÇ ³ª¿­ÀÌ°í °Ô½ÃÆÇÀº ±ÛÀÇ ³ª¿­ÀÌ´Ù.

ÀÌ·± ³ª¿­µÇ´Â ºÎºÐÀ» ÄÄÆ÷³ÍÆ®·Î Á¤ÀÇÇÏ¿© ¹Ýº¹ÇÏ¸é µÈ´Ù. ¾Õ¿¡¼­ ScoreItemÀ» µÎ ¹ø ³ª¿­ÇØ ºÃ´Âµ¥ ´ë¿ë·®Àº ÀÌ·± ±â°èÀûÀÎ ¹æ¹ýÀ¸·Î´Â ¸¸µé ¼ö ¾ø´Ù. ¹«½ÄÇÏ°Ô ¸¸µç ÄÚµå´Â °ü¸®µµ ¾ÈµÈ´Ù.

°¡º¯ °³¼öÀÇ ÄÄÆ÷³ÍÆ®¸¦ ´Ù·ê¶§´Â ¹è¿­°ú ·çÇÁ¸¦ »ç¿ëÇÑ´Ù. JSX ÀÚü´Â ÀÌ·± ±â´ÉÀ» Á¦°øÇÏÁö ¾ÊÀ¸¸ç ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¹®¹ýÀ» Ȱ¿ëÇÑ´Ù. ÀÚ¹Ù½ºÅ©¸³Æ®¸¸ ¾Ë¸é ±²ÀåÈ÷ ½¬¿î ³»¿ëÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â ¿ì¸®³ª¶ó µµ½Ã¿¡ ´ëÇÑ °£´ÜÇÑ µ¥ÀÌÅͺ£À̽º¸¦ À¥ ÆäÀÌÁö¿¡ Ãâ·ÂÇÑ´Ù.

 

¿¹Á¦ : compmap

const cities = [

  { name: '¼­¿ï', area: 605, popu: 974, metro: true, region: '°æ±â' },

  { name: '¿©ÁÖ', area: 608, popu: 11, metro: false, region: '°æ±â' },

  { name: 'ºÎ»ê', area: 765, popu: 342, metro: true, region: '°æ»ó' },

  { name: 'ûÁÖ', area: 940, popu: 83, metro: false, region: 'ÃæÃ»' },

  { name: 'ÀüÁÖ', area: 205, popu: 65, metro: false, region: 'Àü¶ó' },

  { name: 'ȫõ', area: 1819, popu: 7, metro: false, region: '°­¿ø' },

]

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {cities.map(city =>

          <li>

            {city.name} : {city.region}µµ {city.area}Km2, {city.popu}¸¸¸í

          </li>

        )}

      </ul>

    </>

  )

}

 

function App() {

  return (

    <>

      <CityList />

    </>

  );

}

 

ÀÌ ¿¹Á¦ÀÇ cities ¹è¿­Àº µµ½Ã Á¤º¸¸¦ °¡Áø´Ù. µµ½Ã Á¤º¸ Çϳª°¡ °´Ã¼ÀÌ¸ç ±×·± °´Ã¼ ¿©·¯ °³°¡ ¸ð¿© ¹è¿­À» ÀÌ·é´Ù. ½Ç¹« ȯ°æ¿¡¼­ ÀÌ·± Á¤º¸´Â ´ç¿¬È÷ µ¥ÀÌÅͺ£À̽º¿¡¼­ ÀÐ¾î ¿À°ÚÁö¸¸ Áö±ÝÀº ±×·±°Ô ¾øÀ¸´Ï °´Ã¼ ¹è¿­·Î »ùÇÃÀ» °£´ÜÈ÷ ¸¸µé¾ú´Ù.

CityList ÄÄÆ÷³ÍÆ®´Â µµ½Ã Á¤º¸¸¦ ArrayÀÇ map ¸Þ¼­µå·Î ¹Ýº¹Çϸç HTML ű׷ΠÀüȯÇÑ´Ù. Á¦¸ñÀº <h2>·Î ºÙÀÌ°í µµ½Ã³¢¸® ¼ø¼­°¡ ÀÖ´Â °ÍÀº ¾Æ´Ï¹Ç·Î <ul> ¸ñ·ÏÀ¸·Î ³ª¿­ÇÑ´Ù. °¢ µµ½Ã´Â <li> ű׷Πǥ½ÃÇÑ´Ù. ½ÇÇà °á°úºÎÅÍ º¸ÀÚ.

<h2>¿Í <ul>Àº ¹Ýº¹ ´ë»óÀÌ ¾Æ´Ï¹Ç·Î JSX ¾È¿¡ ±×³É Àû´Â´Ù. °¢ µµ½ÃÀÇ Ç׸ñÀÎ <li>´Â µµ½Ã¼ö¸¸Å­ ¹Ýº¹Çϴµ¥ ÀÌ ¹Ýº¹À» map ¸Þ¼­µå·Î ó¸®Çß´Ù. ÀÌ Äڵ尡 ±²ÀåÈ÷ ¿ä»óÇØ º¸À̰í óÀ½ º¸´Â »ç¶÷¿¡°Ô´Â ¾î·Á¿îµ¥ ½Ã°£ÀÌ Á» °É¸®´õ¶óµµ »ó¼¼È÷ ºÐÇØÇØ º¸ÀÚ.

mapÀº ¹è¿­ÀÇ °¢ ¿ä¼Ò¸¦ ¼øÈ¸ÇÏ¸ç ¿ä¼Ò°ªÀ» º¯ÇüÇÑ °á°ú·Î ±¸¼ºµÈ »õ·Î¿î ¹è¿­À» ¸¸µé¾î ³½´Ù. ¼­¿ï, ºÎ»ê, ûÁÖ °°Àº µµ½Ã °´Ã¼¸¦ city¶ó´Â À̸§À¸·Î ¹Þ¾Æ ÀÌ µµ½ÃÀÇ Á¤º¸¸¦ <li> ű׷ΠÆ÷ÀåÇÏ¿© Ãâ·ÂÇÑ´Ù. mapÀº Ãâ·Â°ªÀ» ¸ð¾Æ »õ·Î¿î ¹è¿­À» ¸®ÅÏÇϸç À¥ÆäÀÌÁö¿¡ ±× ¹è¿­ÀÌ ³ª¿­µÈ´Ù.

mapÀº ¿ä¼Ò¸¦ Á÷Á¢ º¯ÇüÇÏÁö ¾Ê°í °¢ ¿ä¼Ò¿¡ ´ëÇØ »ç¿ëÀÚ°¡ Á¦°øÇÑ ÇÔ¼ö¸¦ È£ÃâÇÑ ÈÄ ±× °á°ú¸¦ ¸ð¾Æ »õ·Î¿î ¹è¿­À» ¸¸µç´Ù. º¯ÇüÀ» ¾î¶»°Ô ÇÒ °ÍÀΰ¡´Â »ç¿ëÀÚ ÇÔ¼ö°¡ °áÁ¤Çϴµ¥ ÀÌ ÇÔ¼ö´Â sub(value)ÀÇ ÇüŸ¦ °¡Áö°í º¯ÇüÇÑ °ªÀ» ¸®ÅÏÇÑ´Ù. mapÀº sub ÇÔ¼ö¸¦ ºÒ·¯ ÀÏÀ» ½Ãų »ÓÀÌ´Ù. ÀÌ µ¿ÀÛÀ» ºÐÇØÇÏ¿© Äڵ带 ´Ù½Ã ÀÛ¼ºÇØ º¸ÀÚ.

 

function CityList() {

  function sub(city) {

    return (

      <li>

        {city.name} : {city.region}µµ {city.area}Km2, {city.popu}¸¸¸í

      </li>

    )

  }

 

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {cities.map(sub)}

      </ul>

    </>

  )

}

 

°á°ú´Â ¹°·Ð °°´Ù. sub´Â °¢ µµ½Ã¸¦ Çϳª¾¿ Àü´Þ¹Þ¾Æ <li> ű׷Π°¨½Î°í µµ½ÃÀÇ Á¤º¸¸¦ ¹®ÀÚ¿­·Î Á¶¸³ÇÑ´Ù. °´Ã¼·Î Á¤ÀǵǾî ÀÖ´Â µµ½Ã Á¤º¸¸¦ ºÐÇØÇÏ¿© À¥ ÆäÀÌÁö¿¡ Ãâ·ÂÇÒ ¼ö ÀÖ´Â ÅÂ±× ÁýÇÕÀ¸·Î ¸¸µç´Ù.

sub°¡ ÇÑ µµ½ÃÀÇ Á¤º¸¸¦ Àß ¹Ù²ãÁÖ°í ÀÖÀ¸´Ï mapÀº ¹è¿­ÀÇ µµ½Ã¸¦ Çϳª¾¿ ²¨³» sub¸¦ ºÎ¸£±â¸¸ ÇÏ¸é µÈ´Ù. ÀÌ ±¸¹®¿¡¼­ sub¸¦ È­»ìÇ¥ ÇÔ¼ö·Î ¹Ù²ã ÀûÀº°Ô À§ ¿¹Á¦ÀÌ´Ù. ÇÔ¼ö È£Ãâ¹® ¾È¿¡ ¶Ç ´Ù¸¥ ÇÔ¼ö Á¤Àǹ®ÀÌ ÀÖ¾î Çò°¥¸± »Ó ¿ÏÀüÈ÷ °°Àº ÄÚµåÀÌ´Ù.

¸¸¾à ÀÌ Äڵ嵵 ¾î·Æ´Ù¸é map ÇÔ¼öÀÇ µ¿ÀÛÀ» ÆòÀÌÇÑ ÄÚµå·Î ´õ ºÐÇØÇØ º¸ÀÚ. µµ½Ã¸¦ ¹Ýº¹ ó¸®ÇÏ´Â µ¿ÀÛÀ̹ǷΠ°á±¹Àº for ¹Ýº¹¹®ÀÌ´Ù. ´ÙÀ½ ÄÚµåÀÇ arraymap ÇÔ¼ö´Â ¶È°°Àº µ¿ÀÛÀ» ÇÏ¸ç °á°ú´Â ¿ª½Ã °°´Ù.

 

function CityList() {

  function arraymap() {

    let ar = []

    for (let c in cities) {

      ar.push(

        <li>

          {cities[c].name} : {cities[c].region}µµ {cities[c].area}Km2, {cities[c].popu}¸¸¸í

        </li>

      )

    }

 

    return ar

  }

 

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {arraymap()}

      </ul>

    </>

  )

}

 

ºó ¹è¿­ ar¸¦ ¼±¾ðÇϰí citiesÀÇ µµ½Ã¸¦ ¼øÈ¸ÇÏ¸ç °¢ µµ½Ã Á¤º¸¸¦ <li> ¿¤¸®¸ÕÆ®·Î Á¶¸³ÇÏ¿© ¹è¿­¿¡ Ãß°¡ÇÑ´Ù. ·çÇÁ¸¦ ´Ù µ¹¸é µµ½Ã Á¤º¸¸¦ ¸ñ·ÏÀ¸·Î ³ª¿­ÇÑ ÅÂ±× ÁýÇÕÀÌ µÈ´Ù. ÀÌ°É °¡»ó DOMÀ¸·Î ¸®ÅÏÇÏ¿© ·£´õ¸µÇϸé À¥ ÆäÀÌÁö¿¡ µµ½Ã ¸ñ·ÏÀÌ ³ªÅ¸³­´Ù.

À§ ÄÚµå´Â ÆòÀÌÇØ¼­ ÀÌÇØÇÏ±â ¾î·ÆÁö ¾Ê´Ù. ÇÑ ÀÛ¾÷ÀÌ µÎ ºí·ÏÀ¸·Î ³ª´©¾îÁ® º¸±â ½ÈÀºµ¥ ±×·¸´Ù¸é for ¹® ÀÚü¸¦ <ul> ¾È¿¡ ³Ö¾î ¹ö¸®¸é ¾î¶³±î? JSX ¾È¿¡´Â Ç¥Çö½Ä¸¸ µé¾î°¥ ¼ö ÀÖ¾î ¸í·É¹®À» ³Ö´Â °ÍÀº ¾ÈµÈ´Ù. Á¤ ÇÏ·Á¸é À͸í ÇÔ¼ö¸¦ ¸¸µé°í ¹Ù·Î È£ÃâÇÏ´Â ¹®¹ýÀ» ¾µ ¼ö´Â ÀÖ´Ù.

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {

          (() => {

            let ar = []

            for (let c in cities) {

              ar.push(

                <li>

                  {cities[c].name} : {cities[c].region}µµ {cities[c].area}Km2, {cities[c].popu}¸¸¸í

                </li>

              )

            }

            return ar

          }

          )()

        }

      </ul>

    </>

  )

}

 

°ýÈ£ Áßø °ü°è°¡ º¹ÀâÇÑ´Ù. (() => { })±îÁö°¡ ¶÷´Ù ÇÔ¼öÀÌ°í ±× µÚÀÇ ()´Â ±× ÇÔ¼ö¸¦ È£ÃâÇÏ¿© Ç¥Çö½ÄÀ» ¸®ÅÏÇÏ´Â ¹®ÀåÀÌ´Ù. Á¦ÀÏ ¹Ù±ùÀÇ { }´Â JSX°¡ Äڵ带 Æ÷ÇÔÇÒ ¶§ ¿ä±¸ÇÏ´Â °ýÈ£ÀÌ´Ù. µé¿©¾²±â¸¦ Àß ÇØ ³ö¼­ ÀÚ¼¼È÷ º¸¸é °¢ °ýÈ£ÀÇ Àǹ̸¦ ÆÄ¾ÇÇÒ ¼ö ÀÖ´Ù.

compmap ¿¹Á¦°¡ ¾ÐÃàÀûÀÌ´Ù º¸´Ï ¾ó¸¥ ´«¿¡ µé¾î¿ÀÁö ¾ÊÁö¸¸ ÀÚ¹Ù½ºÅ©¸³Æ® ¹®¹ýÀ» ÀÌÇØÇϰí ÀÖÀ¸¸é ±×¸® ¾î·Á¿î ÄÚµå´Â ¾Æ´Ï´Ù. ù ¿¹Á¦¶ó °úµµÇÏ°Ô ºÐÇØÇØ ºÃ´Âµ¥ ¸®¾×Æ®¿¡¼­ È­»ìÇ¥ ÇÔ¼ö¸¦ ¸¹ÀÌ ¾²¹Ç·Î ÀÏ·ÃÀÇ ÄÚµå º¯È­¸¦ ¿Ïº®ÇÏ°Ô ÀÌÇØÇØ¾ß ÇÑ´Ù. ¸®¾×Æ®°¡ ¾î·Á¿î°Ô ¾Æ´Ï°í ÀÚ¹Ù½ºÅ©¸³Æ®°¡ ¾î·Æ´Ù.

PK ÁöÁ¤

Ä÷º¼ÇÀ» ´Ù·ê ¶§´Â °¢ Ç׸ñ³¢¸® ±¸ºÐ °¡´ÉÇÑ Å°°¡ ÇÊ¿äÇÏ´Ù. ۸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Æµµ Ãâ·Â¿¡´Â ¹®Á¦°¡ ¾øÁö¸¸ ½É°¢ÇÑ ¼º´É ÀúÇϰ¡ ¹ß»ýÇÑ´Ù. ¿¹Á¦¸¦ ½ÇÇàÇϸé ÄܼÖâ¿¡ ´ÙÀ½ °æ°í°¡ ³ªÅ¸³­´Ù.

 

Warning: Each child in a list should have a unique "key" prop

 

¸ñ·ÏÀÇ ÀÚ½Ä, ÀÌ °æ¿ì´Â °¢ µµ½Ã¿¡ À¯ÀÏÇÑ Å°°¡ ÇÊ¿äÇÏ´Ù´Â ¾ê±â´Ù. ۰¡ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é Ç׸ñ³¢¸® ¸íÈ®È÷ ±¸ºÐÇÒ ¼ö ¾ø°í ÀÌ »óÅ¿¡¼­´Â °Ë»öÀ̳ª °»½Å¿¡ ºÒÇÊ¿äÇÑ ½Ã°£ÀÌ ¼Ò¿äµÈ´Ù. µ¥ÀÌÅͺ£À̽º Å×ÀÌºí¿¡ PK°¡ ÇÊ¿äÇÑ ÀÌÀ¯¿Í °°´Ù.

°¢ Ç׸ñÀ» ³ª¿­ÇÒ ¶§ ¿¤¸®¸ÕÆ®ÀÇ key ¼Ó¼º¿¡ Ű·Î »ç¿ëÇÒ °ªÀ» ÁöÁ¤ÇÑ´Ù. µµ½Ã ¸ñ·Ï¿¡¼­ Ű·Î »ç¿ëÇÒ¸¸ÇÑ Ç׸ñÀº ´ç¿¬È÷ À̸§ÀÌ´Ù. Àü¶óµµ ±¤ÁÖ, °æ±âµµ ±¤ÁÖó·³ Áߺ¹µÇ´Â ¿¹°¡ ÀÖÁö¸¸ Àû¾îµµ ÀÌ Å×ÀÌºí¿¡´Â ¾ø´Ù. compmap¿¹Á¦¿¡ ´ÙÀ½°ú °°ÀÌ city.nameÀ» Ű·Î ÁöÁ¤ÇÑ´Ù.

 

<li key={city.name}>

 

¸¸¾à Ű·Î ÁöÁ¤ÇÒ¸¸ÇÑ Á¤º¸°¡ ¾ø´Ù¸é mapÀÇ Äݹé ÇÔ¼ö·Î ¹è¿­ÀÇ Ã·ÀÚÀÎ index¸¦ ¹Þ¾Æ ¼ø¼­°ªÀÌ¶óµµ Å°·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

 

{cities.map((city, index) =>

  <li key={index}>

 

¼ø¼­°ªÀº ÆíÁýÀ̳ª Á¤·Ä¿¡ ÀÇÇØ ¹Ù²ð À§ÇèÀÌ ÀÖÁö¸¸ ´Ü¼øÈ÷ ¼ø¼­´ë·Î Ãâ·Â¸¸ ÇÑ´Ù¸é Ű·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. Á¤ °íÀ¯Å°°¡ ¾ø´Ù¸é ¿øº» µ¥ÀÌÅÍ¿¡ ¹®Á¦°¡ ÀÖ´Â °ÍÀ̹ǷΠ¿øº»ºÎÅÍ Á¤±ÔÈ­ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.

۸¦ ÁöÁ¤Çß´Ù°í ÇØ¼­ µüÈ÷ ´Þ¶óÁö´Â °Ç ¾ø°í ½ÇÇà °á°ú´Â °°´Ù. ´Ù¸¸ ÄܼÖâ¿¡ °æ°í¸¸ »ç¶óÁú »ÓÀÌ´Ù. ÀÌ ¿¹Á¦¿¡¼­´Â º° Â÷À̰¡ ¾øÁö¸¸ »ðÀÔ, »èÁ¦°¡ ÀæÀ» ¶§´Â ۰¡ ÀÖ´Â °æ¿ì¿Í ¾ø´Â °æ¿ìÀÇ ¼º´ÉÂ÷°¡ È®¿¬È÷ ¹ú¾îÁø´Ù.

key ¼Ó¼ºÀº ¸®¾×Æ® ¶óÀ̺귯¸®¿¡°Ô Àü´ÞµÇ´Â ÀÏÁ¾ÀÇ ÃÖÀûÈ­ ÈùÆ®ÀÌ´Ù. ÀÌ Á¤º¸°¡ ÀÖÀ¸¸é ƯÁ¤ Ç׸ñÀÌ º¯°æµÉ ¶§ ¸ñ·Ï Àüü¸¦ °»½ÅÇÒ ÇÊ¿ä ¾øÀÌ key·ÎºÎÅÍ °»½ÅÇÒ ³ëµå¸¦ Á¤È®È÷ ã¾Æ µü ±× ºÎºÐ¸¸ °»½ÅÇÒ ¼ö ÀÖ¾î ¼Óµµ°¡ »¡¶óÁø´Ù.

ÇÊÅ͸µ

ArrayÀÇ filter ¸Þ¼­µå´Â Á¶°Ç¿¡ ¸Â´Â Ç׸ñ¸¸ ã¾Æ »õ·Î¿î ¹è¿­À» »ý¼ºÇÑ´Ù. »ç¿ëÀÚ ÇÔ¼ö·Î °¢ ¿ä¼Ò¸¦ Àü´ÞÇϸç ÀÌ ÇÔ¼ö°¡ true¸¦ ¸®ÅÏÇÏ´Â Ç׸ñ¸¸À¸·Î »õ·Î¿î ¹è¿­À» ¸¸µç´Ù. °¢ Ç׸ñÀÇ ¿øÇÏ´Â ¸â¹ö¸¦ Á¡°ËÇÏ¿© Á¶°Ç¿¡ ¸Â´Â °Í¸¸ °ñ¶ó ³»¸é µÈ´Ù. ´ÙÀ½ ¿¹Á¦´Â Àα¸ 100¸¸ ÀÌ»óÀÎ µµ½Ã¸¸ Ãâ·ÂÇÑ´Ù.

 

function CityList() {

  const bigcity = cities.filter(city => city.popu > 100)

 

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {bigcity.map(city =>

          <li key={city.name}>

            {city.name} : {city.region}µµ {city.area}Km2, {city.popu}¸¸¸í

          </li>

        )}

      </ul>

    </>

  )

}

 

city.popu > 100 Á¶°ÇÀ» ¸¸Á·ÇÏ´Â µµ½Ã¸¸ bigcity ¹è¿­¿¡ ³Ö¾ú´Ù. bigcity´Â ¿øº»ÀÎ cities ¹è¿­¿¡¼­ Á¶°Ç¿¡ ¸Â´Â °Í¸¸ ÇÊÅ͸µÇÑ »õ·Î¿î ¹è¿­ÀÌ´Ù. mapÀ¸·Î bigcity¸¦ ¼øÈ¸Çϸé ÇÊÅ͸µÇÑ µµ½Ã¸¸ ³ªÅ¸³­´Ù.

bigcity¸¦ »ý¼ºÇÏ´Â filter È£Ãâ¹®Àº return ÀÌÀü¿¡ ÀÖ¾î¾ß ÇÏ¸ç ¹Ì¸® °¡°øÀ» ÇØ µÎ¾î¾ß ÇÑ´Ù. return¹® ¾È¿¡ ³ÖÀ¸¸é ÇÊÅ͸µÇÑ ÈÄ ¹Ù·Î Ãâ·ÂÇÒ ¼ö ÀÖ¾î ±ò²ûÇϰÚÁö¸¸ ÀÌ°Ç ¾ÈµÈ´Ù.

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

      {

      const bigcity = cities.filter(city => city.popu > 100)

      bigcity.map(city =>

        <li key={city.name}>

          {city.name} : {city.region}µµ {city.area}Km2, {city.popu}¸¸¸í

        </li>

      )}

      </ul>

    </>

  )

}

 

ÀÌ ¾ÈÀº JSX ¿µ¿ªÀ̱⠶§¹®¿¡ ¸í·ÉÀº µé¾î°¥ ¼ö ¾ø°í µü ÇϳªÀÇ °á°ú¸¦ ¸®ÅÏÇϴ ǥÇö½Ä¸¸ µé¾î°¥ ¼ö ÀÖ´Ù. ÇÔ¼ö¸¦ È£ÃâÇÏ°í ±× °á°ú¸¦ º¯¼ö¿¡ ´ëÀÔÇÏ´Â °ÍÀº ¸í·ÉÀÌÁö Ç¥Çö½ÄÀÌ ¾Æ´Ï´Ù. Á¤ ÇÑ °÷¿¡¼­ ÇÊÅ͸µ°ú Ãâ·ÂÀ» °°ÀÌ ÇÏ·Á¸é ÇÊÅ͸µ ÈÄ ¹Ù·Î ¿¬¼âÀûÀΠȣÃâ·Î Ãâ·ÂÇÒ ¼ö´Â ÀÖ´Ù.  

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

      {cities.filter(city => city.popu > 100).map(city =>

        <li key={city.name}>

          {city.name} : {city.region}µµ {city.area}Km2, {city.popu}¸¸¸í

        </li>

      )}

      </ul>

    </>

  )

}

 

filter ¸Þ¼­µå È£ÃâÀÇ °á°ú´Â ¹è¿­À̹ǷΠÀÌ ¹è¿­¿¡ ´ëÇØ map ¸Þ¼­µå¸¦ È£ÃâÇÒ ¼ö ÀÖ°í mapÀÇ °á°ú´Â °¡»ó DOMÀ¸·Î º¯È¯ÇÑ Ç¥Çö½ÄÀ̹ǷΠº° ¹®Á¦ ¾ø´Ù. ´Ù¸¸ »ç¶÷ÀÌ º¸±â¿¡ °¡µ¶¼ºÀÌ ÁÁÁö´Â ¾Ê´Ù. ÀÌ·² ¶§´Â ÆòÀÌÇÏ°Ô ¹Û¿¡¼­ ÇÊÅ͸µÀ» ¸ÕÀú ÇÏ´Â°Ô ÁÁ´Ù.

filter(city => ´ÙÀ½¿¡ ¿øÇÏ´Â Á¶°Ç½ÄÀ» ³Ö¾î ÇÊÅ͸µÀº ¾ó¸¶µçÁö ¹Ù²Ü ¼ö ÀÖ´Ù. ³í¸®½ÄÀ¸·Î Æò°¡ÇÒ ¼ö¸¸ ÀÖ´Ù¸é ¾î¶² Á¶°ÇÀÌµç ¾µ ¼ö ÀÖ´Ù. ´ÙÀ½Àº ¸î °¡Áö ¿¹ÀÌ´Ù.

 

¸éÀû 500 Ãʰú city => city.area > 500

À̸§¿¡ 'ÁÖ'ÀÚ°¡ µé¾î°¡´Â µµ½Ã city => city.name.search('ÁÖ') != -1

Àα¸ 80 ¹Ì¸¸ ¶Ç´Â ¸éÀû 1000Ãʰú city => city.popu < 80 || city.area > 1000

 

ºñ±³ ¿¬»êÀÚ, ³í¸® ¿¬»êÀÚ, ÇÔ¼ö È£Ãâ µîÀ» ÅëÇØ true ¶Ç´Â false Áß Çϳª¸¦ ¸®ÅÏÇÏ¸é µÈ´Ù.

Á¶°Çó¸®

Á¶°Ç¿¡ µû¶ó ´Ù¸£°Ô Ãâ·ÂÇØ¾ß ÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ¿¹¸¦ µé¾î ±¤¿ª½ÃÀÎ °æ¿ì´Â Ưº°³­ Ç¥½ÄÀ» ºÙÀδٰųª Àα¸¼ö¿¡ µû¶ó Å©±â¸¦ ´Ù¸£°Ô Ãâ·ÂÇÒ ¼ö ÀÖ´Ù. cities ¹è¿­¿¡´Â metro°¡ ÁøÀ§ÇüÀε¥ trueÀ̸é ' ±¤¿ª½Ã'¸¦ ºÙÀ̰í falseÀ̸é '½Ã'¸¸ ºÙ¿© º¸ÀÚ. Áï ¼­¿ïÀº ¼­¿ï ±¤¿ª½Ã·Î Ç¥½ÃÇϰí ÀüÁÖ´Â ÀüÁֽ÷Πǥ½ÃÇÏ´Â °ÍÀÌ´Ù.

¸®¾×Æ®¿¡¼­ Á¶°ÇÀ» ó¸®ÇÏ´Â ¹æ¹ýÀº Å©°Ô ¼¼ °¡Áö°¡ ÀÖ´Ù. °¢ ¹æ¹ý¸¶´Ù Àå´ÜÁ¡ÀÌ ÀÖ°í »óȲ¿¡ µû¶ó ÀûÀýÇÑ ¹æ¹ýÀÌ ÀÖ¾î ´Ù ¾Ë¾Æ µÎ¾î¾ß ÇÑ´Ù. ¶Ç JSX ¾È¿¡¼­ Á¶°ÇÀ» ó¸®ÇÏ´Â ¹æ¹ýÀÌ ´Þ¶ó ¸®¾×Æ®¸¦ ÀÌÇØÇϴµ¥µµ ÇʼöÀûÀÎ ±â¹ýÀÌ´Ù.

 

1.Á¶°ÇÀ» ó¸®ÇÏ´Â ¿ø·ÐÀûÀÎ ¹æ¹ýÀº if¹®ÀÌ´Ù. metro ÇʵåÀÇ °ª¿¡ µû¶ó µÚ¿¡ ºÙÀÏ Á¢¹Ì¾î¸¦ if ¹®À¸·Î ¼±ÅÃÇÏ¿© {city.name}µÚ¿¡ µ¡ºÙÀδÙ. ÄÚµå·Î Â¥ º¸¸é ´ÙÀ½°ú °°´Ù.

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {cities.map(city =>

          <li key={city.name}>

            {city.name}{if (city.metro) return ' ±¤¿ª½Ã' else return '½Ã'}

            : {city.region}µµ {city.area}Km2, {city.popu}¸¸¸í

          </li>

        )}

      </ul>

    </>

  )

}

 

¾ðµí º¸±â¿¡´Â µÉ °Å °°Áö¸¸ µ¿ÀÛÇÏÁö ¾Ê´Â´Ù. ¿Ö³ÄÇϸé JSX ³»ÀÇ { } °ýÈ£¾È¿¡´Â Ç¥Çö½Ä¸¸ ¾µ ¼ö ÀÖ°í ¸í·ÉÀº µé¾î°¥ ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. if returnÀº °á°úÀûÀ¸·Î´Â °ªÀ» ¸®ÅÏÇÏÁö¸¸ Çü½Ä»ó ÀÓÀÇÀÇ ¸ðµç µ¿ÀÛÀ» ÇÒ ¼ö ÀÖ´Â ¸í·É¹®ÀÌ´Ù. ¶Ç { } ºí·ÏÀÌ ÇÔ¼ö°¡ ¾Æ´Ñµ¥ returnÀ» ¾´´Ù´Â °ÍºÎÅÍ ¹®¹ýÀûÀ¸·Î ¸»ÀÌ ¾ÈµÈ´Ù.

±×·¸´Ù°í if ¹®ÀÌ ²À ºÒ°¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù. JSX ¾È¿¡¼­ ¸í·É¹®À» ¾µ ¼ö ¾ø´Ù¸é JSX ¹ÛÀ¸·Î »©³»¸é µÈ´Ù. if ¹®À¸·Î Ãâ·ÂÇÒ ¹®ÀÚ¿­À» º°µµÀÇ º¯¼ö¿¡ ¸ÕÀú ¼±ÅÃÇØ ³õ°í ÀÌ º¯¼ö¸¦ JSX±¸¹®¿¡ ¾²¸é µÈ´Ù.

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

      {cities.map(city =>

        {

          let isMetro

          if (city.metro) {

            isMetro = ' ±¤¿ª½Ã'

          } else {

            isMetro = '½Ã'

          }

         

          return <li key={city.name}>

            {city.name}{isMetro} : {city.region}

            µµ {city.area}Km2, {city.popu}¸¸¸í

          </li>

        }

      )}

      </ul>

    </>

  )

}

 

isMetro º¯¼ö¸¦ ¼±¾ðÇϰí Á¶°Ç¿¡ µû¶ó ÀÌ º¯¼öÀÇ °ªÀ» °áÁ¤ÇÑ´Ù. ÀÌ ±¸¹®À» ¾µ ¼ö ÀÖ´Â ÀÌÀ¯´Â À͸í ÇÔ¼ö ¾ÈÀ̱⠶§¹®ÀÌ´Ù. cities.map È£Ãâ¹®Àº JSX¾È¿¡ ÀÖÁö¸¸ city => { } ºí·ÏÀº mapÀ¸·Î Àü´ÞµÇ´Â ÇÔ¼öÀÏ »ÓÀÌ´Ù. ±×·¡¼­ Áö¿ª º¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ÀÖ°í if¹®µµ ¾µ ¼ö ÀÖ´Ù.

JSX ±¸¹®¿¡¼­´Â °áÁ¤µÈ º¯¼ö°ªÀ» »ðÀÔÇÑ´Ù. ³í¸®´Â °£´ÜÇÏÁö¸¸ È­»ìÇ¥ ÇÔ¼ö¾È¿¡ µÎ °³ ÀÌ»óÀÇ ¸í·ÉÀÌ µé¾î ÀÖ¾î Çü½ÄÀÌ º¹ÀâÇÏ´Ù. º»Ã¼¸¦ { } °ýÈ£·Î Çѹø ´õ °¨½Î¾ß Çϰí Ç¥Çö½Ä ÀÌÀü¿¡ ¸í·ÉÀÌ µé¾î°¬À¸¹Ç·Î °¡»óDOMÀ» returnÇÏ´Â ¸í·Éµµ ÇÊ¿äÇÏ´Ù.

¼­¿ï ±¤¿ª½Ã´Â ¶ç¿ì°í ÀüÁֽô ºÙ¿©¾ß ÇÏ´Ï {city.name}{isMetro} »çÀÌ¿¡´Â °ø¹éÀÌ ¾ø¾î¾ß Çϰí Á¢¹Ì¿¡ Çʿ信 µû¶ó °ø¹éÀ» ³Ö¾î¾ß ÇÑ´Ù. °ø¹é 󸮸¦ À߸øÇϸé ûÁÖ ½Ã, ÀüÁÖ ½Ã µîÀ¸·Î ºÒÇÊ¿äÇÑ °ø¹éÀÌ µé¾î°£´Ù. ¹ø°Å·ÓÁö¸¸ ¾î·°Å³ª °¡´ÉÀº ÇÏ´Ù. if ¹®Àº ¿ø·ÐÀûÀÎ Á¶°Ç 󸮹®À̰í ÀÌ ¾È¿¡¼­´Â º¹ÀâÇÑ Á¶°ÇÀ» Æò°¡ÇÒ ¼ö ÀÖ´Ù´Â ¸é¿¡¼­ À¯¿¬ÇÏ´Ù.

 

2.Á¶°ÇÀ» ó¸®ÇÏ´Â µÎ ¹øÂ° ¹æ¹ýÀº »ïÇ×Á¶°Ç ¿¬»êÀÚÀÎ ?:ÀÌ´Ù. µÑ Áß Çϳª¸¦ °í¸£±â¸¸ ÇÑ´Ù¸é if¹® º¸´Ù ª°í °¡µ¶¼ºµµ ³ô´Ù.

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {cities.map(city =>

          <li key={city.name}>

            {city.name}{city.metro ? ' ±¤¿ª½Ã':'½Ã'} : {city.region}

            µµ {city.area}Km2, {city.popu}¸¸¸í

          </li>

        )}

      </ul>

    </>

  )

}

 

?:Àº ÇϳªÀÇ °ªÀ» ¸®ÅÏÇϴ ǥÇö½ÄÀ̹ǷΠJSX³»¿¡¼­ ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. Áß°£ º¯¼öµµ ÇÊ¿ä¾ø°í Á¶°Ç ÆÇ´ÜÀÌ ÇÊ¿äÇÑ °÷¿¡ ¹Ù·Î ½á¸ÔÀ» ¼ö ÀÖ¾î Æí¸®ÇÏ´Ù. µÑ Áß ÇϳªÀÇ °ªÀ» ¹ÝȯÇÏ´Â if else¸¦ ¿Ïº®È÷ ´ëüÇÒ ¼ö ÀÖ´Ù.

µÎ °³ÀÇ Á¶°ÇÀ» Á¡°ËÇÏ´Â ´ÙÁß ¼±Åõµ »ïÇ× Á¶°Ç ¿¬»êÀÚ¸¦ ÁßÃ¸ÇØ¼­ ¾²¸é µÈ´Ù. ¿¹¸¦ µé¾î ±¤¿ª½Ã Áß¿¡µµ ¼­¿ïÀº ´õ Ưº°³ª°Ô Ç¥½ÃÇÏ°í ½Í´Ù¸é metro°¡ trueÀÓÀ» Á¡°ËÇÑ ÈÄ Çѹø ´õ À̸§À» Á¡°ËÇØ º¸¸é µÈ´Ù.

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {cities.map(city =>

          <li key={city.name}>

            {city.name}{city.metro ? (city.name == '¼­¿ï' ?' Ưº°½Ã':' ±¤¿ª½Ã'):'½Ã'} : {city.region}

            µµ {city.area}Km2, {city.popu}¸¸¸í

          </li>

        )}

      </ul>

    </>

  )

}

 

¼­¿ïÀº Ưº°½Ã·Î Ç¥½ÃÇÏ°í ºÎ»êÀº ±¤¿ª½Ã·Î Ç¥½ÃÇÑ´Ù. Äڵ尡 ¾à°£ º¹ÀâÇÏÁö¸¸ µÎ ¹ø Áßø Á¤µµ´Â Å« ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù. JSX ±¸¹® ³»¿¡¼­ °ªÀ» ¼±ÅÃÇÒ ¶§´Â »ïÇ× Á¶°Ç ¿¬»êÀÚ¸¦ ¾²´Â °ÍÀÌ ÇÕ¸®ÀûÀÌ´Ù.

 

3.¼¼¹øÂ° ¹æ¹ýÀº ³í¸® ¿¬»êÀÚÀÇ ¼îÆ®¼­Å°Æ®¸¦ Ȱ¿ëÇÏ´Â °ÍÀÌ´Ù.

 

function CityList() {

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {cities.map(city =>

          <li key={city.name}>

            {city.name}{city.metro && ' ±¤¿ª½Ã'}{city.metro || '½Ã'} : {city.region}

            µµ {city.area}Km2, {city.popu}¸¸¸í

          </li>

        )}

      </ul>

    </>

  )

}

 

city.metro°¡ ÂüÀÏ ¶§¸¸ µÚÂÊ ½ÄÀ» Æò°¡ÇÏ¿© ¸®ÅÏÇÏ°í °ÅÁþÀ̸é Àüü¸¦ ¹«½ÃÇÑ´Ù. Ç¥Çö½Ä Çϳª¸¦ ¸®ÅÏÇϹǷΠJSX¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¹Ý´ë·Î city.metro°¡ falseÀÏ ¶§¸¦ ¼±ÅÃÇÏ°í ½Í´Ù¸é || ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù.

¼îÆ® ¼­Å°Æ®´Â ¾ÕÂÊ ³í¸®½ÄÀÇ ÁøÀ§ ¿©ºÎ¿¡ µû¶ó µÚÂÊ Á¶°ÇÀÇ Æò°¡ ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù´Â ¸é¿¡¼­ °£ÆíÇÏ´Ù. ±×·¯³ª ÇϳªÀÇ Á¶°Ç¿¡ ´ëÇØ¼­¸¸ ó¸®ÇÒ ¼ö ÀÖ¾î if¹®À» ´ëüÇÒ ¼ö´Â À־ if else¸¦ ´ëüÇÒ ¼ö´Â ¾ø´Ù. ±×·¡¼­ Âü, °ÅÁþ¿¡ ´ëÇØ °¢°¢ Á¶°Ç Æò°¡¸¦ µû·Î ÇØ¾ß ÇÑ´Ù.

Äڵ尡 ª´Ù´Â ¸é¿¡¼­ ½Ç¿ëÀûÀÌÁö¸¸ ¼îÆ® ¼­Å°Æ®¸¦ Àß ¸ð¸£´Â »ç¶÷¿¡°Ô´Â ²Ï »ý¼ÒÇÑ ÄÚµå¶ó Á÷°üÀûÀÌÁö´Â ¾Ê´Ù. ÀÌ·¸°Ôµµ ¾µ ¼ö ÀÖ´Ù´Â °ÍÀÌÁö »ïÇ×Á¶°Ç ¿¬»êÀÚº¸´Ù µüÈ÷ ´õ ½¬¿î °ÍÀº ¾Æ´Ï´Ù.

Á¤·Ä

¹è¿­ÀÇ Á¤·ÄÀº Array.sort ¸Þ¼­µå·Î ó¸®ÇÑ´Ù. sort´Â »ç¿ëÀÚ ÇÔ¼ö·Î µÎ ¿ä¼Ò¸¦ Àü´ÞÇÏ°í ¸®ÅϰªÀ¸·Î ¼ø¼­¸¦ ÆÇ´ÜÇÏ¿© Àç¹èÄ¡ÇÑ´Ù. ¿ÞÂÊÀÌ ´õ ¾ÕÂÊÀ̸é À½¼ö, °°À¸¸é ¾ç¼ö, ¿À¸¥ÂÊÀÌ ´õ ¾ÕÂÊÀÌ¸é ¾ç¼ö¸¦ ¸®ÅÏÇÑ´Ù. Á¤¼ö°ªÀº »¬¼ÀÀ¸·Î ´õ ÀÛÀº°ªÀÌ ¾Õ¿¡ ¿Àµµ·Ï ÇÏ¿© ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇÑ´Ù. ¹è¿­ Ãâ·Â ¿¹Á¦¿¡ ´ÙÀ½ ¹®Àå Çϳª¸¸ ³ÖÀ¸¸é Àα¸ÀÇ ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇÑ´Ù.

 

function CityList() {

  cities.sort((c1, c2) => c1.popu - c2.popu)

  return (

  ....

 

 sort ¸Þ¼­µå´Â mapÀ̳ª filter¿Í´Â ´Þ¸® »õ·Î¿î ¹è¿­À» ¸®ÅÏÇÏÁö ¾Ê°í ¹è¿­ ÀÚü¸¦ Á¤·ÄÇÑ´Ù. »çº» ¹è¿­À» ´ëÀÔÇÒ ÇÊ¿ä´Â ¾ø°í Ãâ·ÂÇϱâ Àü¿¡ Á¤·Ä¸¸ ÇÏ¸é µÈ´Ù.

³»¸²Â÷¼øÀ¸·Î Á¤·ÄÇÏ·Á¸é c2.popu - c1.popuÀ¸·Î ¼ø¼­¸¦ ¹Ù²Û´Ù. »¬¼À °á°úÀÇ ºÎÈ£°¡ ¹Ù²î¹Ç·Î Á¤·Äµµ ¿ª¼øÀÌ µÈ´Ù.

¹®ÀÚ¿­³¢¸® ºñ±³ ¿¬»êÀÚ¸¦ ¾²¸é »çÀü¼øÀ¸·Î ´©°¡ ´õ ¾ÕÂÊÀÎÁö´Â ¾Ë ¼ö ÀÖÁö¸¸ °°ÀºÁö±îÁö ¾Ë¾Æ³»·Á¸é Á¶°Ç¹®ÀÌ ÇÊ¿äÇÏ´Ù. »¬¼À ¿¬»êÀÚ¸¦ ¾µ¼ö´Â ¾ø°í ´ë½Å localeCompare ¸Þ¼­µå·Î ºñ±³Çϸé Á¤·Ä¿¡ ÇÊ¿äÇÑ ¼¼ °¡Áö »óŸ¦ ¸®ÅÏÇÑ´Ù. ´ÙÀ½ ÄÚµå´Â ¼Ò¼Ó Áö¿ª¿¡ ´ëÇÑ ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇÑ´Ù.

 

cities.sort((c1, c2) => c1.region.localeCompare(c2.region))

 

2Â÷ Á¤·Ä±îÁö ÇÏ·Á¸é ´õ º¹ÀâÇÑ Äڵ尡 ÇÊ¿äÇÏ´Ù. ¿¹¸¦ µé¾î ±¤¿ª½Ã¸¦ ¿ì¼± ¹èÄ¡ÇÏ°í °°Àº ±Þ³¢¸®´Â ¸éÀûÀÇ ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù.

 

function CityList() {

  cities.sort((c1, c2) => {

    if (c1.metro == c2.metro) {

      return c1.area - c2.area

    } else if (c1.metro) {

      return -1;

    } else {

      return 1;

    }

  })

 

  return (

    <>

      <h2>¿ì¸®³ª¶ó µµ½Ã</h2>

      <ul>

        {cities.map(city =>

          <li key={city.name}>

            {city.name} : {city.region}µµ {city.area}Km2, {city.popu}¸¸¸í

          </li>

        )}

      </ul>

    </>

  )

}

 

±¤¿ª½Ã´Â ³»¸²Â÷¼øÀÌ°í ¸éÀûÀº ¿À¸§Â÷¼øÀÌ´Ù.

¿µ¹®ÀÇ °æ¿ì ´ë¼Ò¹®ÀÚ ¹«½Ã, Çѱ۰ú ¿µ¹®ÀÇ ¼ø¼­, ¼±ÇàÁ¦·Î°¡ ÀÖ´Â ¼ýÀÚ³¢¸®ÀÇ ºñ±³ µî¿¡ ´ëÇØ¼­µµ ºñ±³ ÇÔ¼ö¸¦ Á¤È®È÷ ÀÛ¼ºÇØ¾ß ÇÑ´Ù.