๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[๊ฐœ๋ฐœ] Practice/React

[React] props ๋ฅผ ์‘์šฉํ•œ ์ƒ์„ธํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

by Connecting-the-dots 2022. 3. 21.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ์‹ค์Šต ํฌ์ธํŠธ!

  • ๋ชจ๋‹ฌ์ฐฝ์ด ์—ด๋ ค์žˆ์„ ๋•Œ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ์„ ํด๋ฆญํ•˜๋ฉด, ๋ชจ๋‹ฌ์ฐฝ์˜ ์ œ๋ชฉ ๋ถ€๋ถ„์„ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ์„ ํ•ด์„œ ๋งˆ์น˜ ์ƒ์„ธํŽ˜์ด์ง€๋ฅผ ์—ฌ๋Š” ๋“ฏํ•œ ํšจ๊ณผ๋ฅผ ์ฃผ์—ˆ๋‹ค.

๐Ÿ’œ props ์ดํ•ดํ•˜๊ธฐ

๐Ÿค ๊ธฐ์กด ๋ชจ๋‹ฌ์ฐฝ ๋‹ค์‹œ ๋ณด๊ธฐ

  • ๊ธฐ์กด ๋ชจ๋‹ฌ์ฐฝ์„ ๋‹ค์‹œ ๋ณด๋ฉด ์ œ๋ชฉ, ๋‚ ์งœ, ์ƒ์„ธ๋‚ด์šฉ์ด ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘ ์ œ๋ชฉ ๋ถ€๋ถ„์ด ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ๋˜์–ด ๋ณด์—ฌ์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿค props ์ดํ•ดํ•˜๊ธฐ

// ์ฝ”๋“œ์—์„œ App Component ์™€ <Modal /> Component ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด
// ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ๋Š” ์ž„์˜๋กœ ์ œ์™ธํ–ˆ๋‹ค.

function App() {

  let [title, setTitle] = useState([
      '[React] React ์„ค์น˜์™€ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์…‹ํŒ…ํ•˜๊ธฐ', 
      '[React] JSX ๋ฅผ ์ด์šฉํ•ด HTML ํŽ˜์ด์ง€ ์ œ์ž‘ํ•ด๋ณด๊ธฐ', 
      '[React] React ์—์„œ state ๋ณ€๊ฒฝํ•ด๋ณด๊ธฐ'
  ]);
  
  let [modal, setModal] = useState(false);

  return (
    <div className="App">

      {
        title.map(function(content){
          return (
          <div className='list'>
            <h3>{content}</h3>
            <p>2022-03-18</p>
            <hr/>
          </div>            
          )
        })
      }
      
      <button onClick={ ()=>{ setModal(!modal) } }>๋ชจ๋‹ฌ์ฐฝ ์—ฌ๋‹ซ๊ธฐ</button>
      {modal === true ? <Modal /> : null}
    </div>
  );
}
  • ์œ„์˜ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๋ฉด App ์ด๋ผ๋Š” Component ์•ˆ์— <Modal /> ์ด๋ผ๋Š” Component ๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.
  • ์ด๋ฅผ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด ๋•Œ App ์ด ๋ถ€๋ชจ์— ํ•ด๋‹นํ•˜๋ฉฐ Modal ์ด ์ž์‹์— ํ•ด๋‹นํ•œ๋‹ค.
  • ๋ชจ๋‹ฌ์ฐฝ์˜ ์ œ๋ชฉ ๋ถ€๋ถ„์— ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ๋“ค์„ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉํ•ด์ฃผ๊ธฐ ์œ„ํ•ด์„œ๋Š” title ์ด๋ผ๋Š” state ๋ฅผ <Modal /> Component ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.  
  • ์ด๋ ‡๊ฒŒ ์ž์‹ Component ๊ฐ€ ๋ถ€๋ชจ Component ์•ˆ์— ์žˆ๋˜ state ๋ฅผ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” props ๋ผ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ state ๋ฅผ ์ „์†ก๋ฐ›์•„ { props.state์ด๋ฆ„ } ์˜ ํ˜•์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

  • props ์˜ ์‚ฌ์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    • < ์ž์‹_Component ์ „์†กํ• _๋•Œ_์‚ฌ์šฉํ• _์ด๋ฆ„ = { state_์ด๋ฆ„ } > ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
    • ์ž์‹ Component ๋ฅผ ์„ ์–ธํ•˜๋Š” function ์•ˆ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค€๋‹ค.

 


๐Ÿ’œ <Modal /> ์— ์ฒซ๋ฒˆ์งธ ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ ํ•˜๋‚˜๋งŒ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉํ•ด๋ณด๊ธฐ

๐Ÿค props ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

// ์ „์ฒด ์ฝ”๋“œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

function App() {

  let [title, setTitle] = useState([
      '[React] React ์„ค์น˜์™€ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์…‹ํŒ…ํ•˜๊ธฐ', 
      '[React] JSX ๋ฅผ ์ด์šฉํ•ด HTML ํŽ˜์ด์ง€ ์ œ์ž‘ํ•ด๋ณด๊ธฐ', 
      '[React] React ์—์„œ state ๋ณ€๊ฒฝํ•ด๋ณด๊ธฐ'
  ]);

  let [modal, setModal] = useState(false);

  return (
    <div className="App">

      {
        title.map(function(content, idx){
          return (
          <div className='list'>
            <h3>{content}</h3>
            <p>2022-03-18</p>
            <hr/>
          </div>            
          )
        })
      }

      <button onClick={ ()=>{ setModal(!modal) } }>๋ชจ๋‹ฌ์ฐฝ ์—ฌ๋‹ซ๊ธฐ</button>
      {modal === true ? <Modal title={title} : null}
    </div>
  );
}

function Modal(props){
  return (
    <div className='modal'>
      <h2>์ œ๋ชฉ: {props.title[0]}</h2>
      <p>๋‚ ์งœ: 2022-03-18</p>
      <p>์ƒ์„ธ๋‚ด์šฉ</p>
    </div>
  )
}
  • ์•ž์„œ <Modal /> ์ด๋ผ๋Š” ์ž์‹ Component ๊ฐ€ App ์ด๋ผ๋Š” ๋ถ€๋ชจ Component ๊ฐ€ ๊ฐ€์ง€๊ณ ์žˆ๋Š” state ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด props ๋ผ๋Š” ๋ฌธ๋ฒ•์œผ๋กœ state ๋ฅผ ์ „์†ก๋ฐ›์•„์•ผํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค.
{modal === true ? <Modal title={title} /> : null}
  • < ์ž์‹_Component ์ „์†กํ• _๋•Œ_์‚ฌ์šฉํ• _์ด๋ฆ„ = { state_์ด๋ฆ„ } > ๋ผ๋Š” ์–‘์‹์— ๋งž์ถ”์–ด ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.
    • ์ž์‹_Component : Modal
    • ์ „์†กํ• _๋•Œ_์‚ฌ์šฉํ• _์ด๋ฆ„ : title
    • state_์ด๋ฆ„ : title
function Modal(props){
  return (
    <div className='modal'>
      <h2>์ œ๋ชฉ: {props.title[0]}</h2>
      <p>๋‚ ์งœ: 2022-03-18</p>
      <p>์ƒ์„ธ๋‚ด์šฉ</p>
    </div>
  )
}
  • ๊ทธ๋Ÿฌ๊ณ  ๋‚˜์„œ, ์ž์‹ Component ๋ฅผ ์„ ์–ธํ•˜๋Š” function ์•ˆ์— ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์ค€๋‹ค.
  • ๋ณดํ†ต ๊ด€์Šต์— ๋”ฐ๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…์„ props ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฉด ๋ถ€๋ชจ Component ์—์„œ ์ „์†ก๋ฐ›์€ state ๋“ค์ด ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋กœ props ๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋ฆ„์œผ๋กœ ์ „๋‹ฌ์ด ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ props.์ „์†กํ• _๋•Œ_์‚ฌ์šฉํ• _์ด๋ฆ„ ๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 
  • ๋‹ค๋งŒ, ์œ„ ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ๋ฐ›์•„์˜จ title ์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ „์†ก๋ฐ›์€ title state ์˜ ์ž๋ฃŒํ˜•์ด array ์ด๋ฏ€๋กœ ์ธ๋ฑ์Šค๊นŒ์ง€ ์ฝ”๋“œ๋กœ ์ ์–ด์ฃผ์–ด์•ผ ์ œ๋Œ€๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿค ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ ์—ฌ๋ถ€ ํ™•์ธํ•ด๋ณด๊ธฐ

  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ชจ๋‹ฌ์ฐฝ์„ ํ™•์ธํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ title state ์˜ 0๋ฒˆ ์ธ๋ฑ์Šค ๊ฐ’์ด ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’œ <Modal /> ์— ํด๋ฆญํ•œ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ์„ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉํ•ด๋ณด๊ธฐ

๐Ÿค props ํ™œ์šฉํ•ด๋ณด๊ธฐ

// ์ „์ฒด ์ฝ”๋“œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

function App() {

  let [title, setTitle] = useState([
      '[React] React ์„ค์น˜์™€ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์…‹ํŒ…ํ•˜๊ธฐ', 
      '[React] JSX ๋ฅผ ์ด์šฉํ•ด HTML ํŽ˜์ด์ง€ ์ œ์ž‘ํ•ด๋ณด๊ธฐ', 
      '[React] React ์—์„œ state ๋ณ€๊ฒฝํ•ด๋ณด๊ธฐ'
  ]);

  let [modal, setModal] = useState(false);

  let [clickedNum, setClickedNum] = useState(0);

  return (
    <div className="App">

      {
        title.map(function(content, idx){
          return (
          <div className='list'>
            <h3 onClick={()=>{setClickedNum(idx)}}>{content}</h3>
            <p>2022-03-18</p>
            <hr/>
          </div>            
          )
        })
      }

      <button onClick={ ()=>{ setModal(!modal) } }>๋ชจ๋‹ฌ์ฐฝ ์—ฌ๋‹ซ๊ธฐ</button>
      {modal === true ? <Modal title={title} clickedNum={clickedNum}/> : null}
    </div>
  );
}

function Modal(props){
  return (
    <div className='modal'>
      <h2>์ œ๋ชฉ: {props.title[props.clickedNum]}</h2>
      <p>๋‚ ์งœ: 2022-03-18</p>
      <p>์ƒ์„ธ๋‚ด์šฉ</p>
    </div>
  )
}
  • ์ด๋ฒˆ์—๋Š” ๋ฐฐ์šด ๊ฒƒ๋“ค์„ ์‘์šฉํ•˜์—ฌ ๊ฐ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ์„ ํด๋ฆญํ•˜๋ฉด, ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ์ด ๋ชจ๋‹ฌ์ฐฝ์˜ ์ œ๋ชฉ ๋ถ€๋ถ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ๋˜๋„๋ก ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด๋ณด์•˜๋‹ค.
  • ํ˜„์žฌ Modal ํ•จ์ˆ˜์˜ ์ œ๋ชฉ ๋ถ€๋ถ„์— props.title[0] ์ด ๋“ค์–ด๊ฐ€๋‹ˆ๊นŒ title ์ด๋ผ๋Š” state ์˜ 0๋ฒˆ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์ œ๋ชฉ์ด ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ 1๋ฒˆ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์ œ๋ชฉ์ด ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ์ด ๋˜๋ ค๋ฉด props.title[1], 2๋ฒˆ ์ธ๋ฑ์Šค์— ํ•ด๋‹นํ•˜๋Š” ์ œ๋ชฉ์ด ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ์ด ๋˜๋ ค๋ฉด props.title[2] ๊ฐ€ ๋˜๋ฉด ๋œ๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด ์–ด๋”˜๊ฐ€์—๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  ๊ทธ์— ์ ํ•ฉํ•œ ๊ฒŒ ๋ฐ”๋กœ ๊ฐ ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ ๋ถ€๋ถ„์ด๋ฏ€๋กœ ๊ฐ ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์— ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
  • ๊ฐ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ ๋ชจ๋‹ฌ์ฐฝ์˜ ์ œ๋ชฉ ๋ถ€๋ถ„ ์ธ๋ฑ์Šค๋ฅผ ํด๋ฆญํ•œ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ ๋ถ€๋ถ„์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค๋กœ ๋ฐ”๊พธ์–ด์ฃผ๋ฉด ํด๋ฆญํ•œ ๊ฒŒ์‹œ๋ฌผ์˜ ์ œ๋ชฉ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
  let [clickedNum, setClickedNum] = useState(0);
  • ์ธ๋ฑ์Šค๋ฅผ ๋ฐ”๊พผ๋‹ค๋Š” ๊ฒƒ์€ ์ฆ‰, ์ธ๋ฑ์Šค ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ํ•จ์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์œ„์™€ ๊ฐ™์ด useState() ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.
  {
    title.map(function(content, idx){
      return (
      <div className='list'>
        <h3 onClick={()=>{setClickedNum(idx)}}>{content}</h3>
        <p>2022-03-18</p>
        <hr/>
      </div>            
      )
    })
  }
  • ๊ทธ๋ฆฌ๊ณ  ๊ฐ ๊ฒŒ์‹œ๋ฌผ ์ œ๋ชฉ์— ์ธ๋ฑ์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผํ•˜๋Š”๋ฐ, map() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋‘๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๋ถ€๋ถ„์ด ์ธ๋ฑ์Šค์™€ ๊ฐ™์€ ์—ญํ• (๋ฐ˜๋ณต๋ฌธ์ด ๋Œ๋ฉด์„œ 0,1,2.. ์™€ ๊ฐ™์ด ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ •์ˆ˜๋ฅผ ์˜๋ฏธ)์„ ํ•˜๋ฏ€๋กœ ์šฐ์„  ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์„ idx ๋ผ๊ณ  ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.
  • ๋‹ค์Œ์œผ๋กœ ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ clickedNum ์ด๋ผ๋Š” state ์˜ ๊ฐ’์„ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›์€ idx ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•˜๋ฏ€๋กœ onClick={ ()=>{ setClickedNum(idx) } ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.
{modal === true ? <Modal title={title} clickedNum={clickedNum}/> : null}
  • ์ด์ œ ๊ทธ๋ ‡๊ฒŒ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ์„ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ๋ณ€๊ฒฝ๋˜๋Š” clickedNum ์„ Modal function ์œผ๋กœ ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ•œ๋‹ค. 
  • ๋”ฐ๋ผ์„œ props ๋ฌธ๋ฒ•์— ๋”ฐ๋ผ <์ž์‹_Component์ „์†กํ• _๋•Œ_์‚ฌ์šฉํ• _์ด๋ฆ„= {state_์ด๋ฆ„} > ๋ผ๋Š” ์–‘์‹์— ๋งž์ถ”์–ด ์œ„์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ์ž‘์„ฑํ•ด์ฃผ์—ˆ๋‹ค.
    • ์ž์‹_Component : Modal
    • ์ „์†กํ• _๋•Œ_์‚ฌ์šฉํ• _์ด๋ฆ„ : clickedNum
    • state_์ด๋ฆ„ : clickedNum

 

function Modal(props){
  return (
    <div className='modal'>
      <h2>์ œ๋ชฉ: {props.title[props.clickedNum]}</h2>
      <p>๋‚ ์งœ: 2022-03-18</p>
      <p>์ƒ์„ธ๋‚ด์šฉ</p>
    </div>
  )
}
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฐ›์•„์˜จ props.clickedNum ์„ props.title[] ์•ˆ์— ์ž‘์„ฑํ•ด์ฃผ๋ฉด ์ •๋ง ๊ฒŒ์‹œ๋ฌผ์„ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๊ฒŒ์‹œ๋ฌผ ์ œ๋ชฉ์— ํ•ด๋‹นํ•˜๋Š” idx ๋ฅผ ๋ฐ›์•„์™€ props.title[0], props.title[1], props.title[2] ... ์ด๋Ÿฐ ์‹์œผ๋กœ ์ ์šฉ๋˜์–ด ๋ชจ๋‹ฌ์ฐฝ์˜ ์ œ๋ชฉ ๋ถ€๋ถ„์— ์ •์ƒ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿค ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ ์—ฌ๋ถ€ ํ™•์ธํ•ด๋ณด๊ธฐ

728x90
๋ฐ˜์‘ํ˜•