{"id":929,"date":"2025-06-18T23:29:33","date_gmt":"2025-06-18T14:29:33","guid":{"rendered":"https:\/\/nangchang.nes.or.kr\/?p=929"},"modified":"2025-06-24T00:16:22","modified_gmt":"2025-06-23T15:16:22","slug":"%f0%9f%a7%be-react%ec%97%90%ec%84%9c-%ec%97%ac%eb%9f%ac-%ec%9e%85%eb%a0%a5-%ed%95%84%eb%93%9c%eb%a5%bc-%ed%95%9c-%eb%b2%88%ec%97%90-%ea%b4%80%eb%a6%ac%ed%95%98%eb%8a%94-%eb%b2%95","status":"publish","type":"post","link":"https:\/\/nangchang.nes.or.kr\/?p=929","title":{"rendered":"[React] \ud83e\uddfe React\uc5d0\uc11c \uc5ec\ub7ec \uc785\ub825 \ud544\ub4dc\ub97c \ud55c \ubc88\uc5d0 \uad00\ub9ac\ud558\ub294 \ubc95"},"content":{"rendered":"\n<p>\ub9ac\uc561\ud2b8\ub97c \uc4f0\ub2e4 \ubcf4\uba74 <strong>\uc774\ub984, \uc774\uba54\uc77c, \ube44\ubc00\ubc88\ud638 \ub4f1<\/strong> \uc785\ub825\ud544\ub4dc\uac00 \uc5ec\ub7ec \uac1c\uc778 \uacbd\uc6b0\uac00 \uc0dd\uae41\ub2c8\ub2e4. \uadf8\ub7f4 \ub54c\ub9c8\ub2e4 <code>useState<\/code>\ub97c \ud558\ub098\uc529 \ub9cc\ub4e4\uba74 \ub108\ubb34 \ubcf5\uc7a1\ud574\uc9c0\uaca0\uc8e0?<\/p>\n\n\n\n<p>\uc624\ub298\uc740 <strong>\uac1d\uccb4 \uc0c1\ud0dc<\/strong>\ub97c \uc0ac\uc6a9\ud574\uc11c \uc5ec\ub7ec \uc785\ub825\uac12\uc744 \ud558\ub098\uc758 \uc0c1\ud0dc\ub85c \uad00\ub9ac\ud558\ub294 \ubc29\ubc95\uc744 \ubc30\uc6cc\ubd05\uc2dc\ub2e4!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">1. \ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66 \uc0c1\ud0dc\ub97c \uac1d\uccb4\ub85c \ub9cc\ub4e4\uc5b4\uc694<\/h3>\n\n\n\n<p>\uc544\ub798\uc640 \uac19\uc774 <code>form<\/code> \uc0c1\ud0dc\ub97c \uac1d\uccb4 \ud615\ud0dc\ub85c \ub9cc\ub4e4\uace0, \uac01 \uc785\ub825 \ud544\ub4dc\uc758 \uc774\ub984\uc744 \ud0a4(key)\ub85c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">const [form, setForm] = useState({\n  name: '',\n  email: ''\n});<\/code><\/pre>\n\n\n\n<p>\uc774\uc81c \uc785\ub825\uac12\uc774 \ubc14\ub014 \ub54c\ub9c8\ub2e4 <strong>\ud574\ub2f9 \ud0a4\ub9cc \uc5c5\ub370\uc774\ud2b8<\/strong>\ud558\uba74 \ub3fc\uc694!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2. \u270f\ufe0f onChange \ud568\uc218 \uc7ac\uc0ac\uc6a9\ud558\uae30<\/h3>\n\n\n\n<p>\ubaa8\ub4e0 <code>input<\/code>\uc5d0 \uac19\uc740 <code>handleChange<\/code> \ud568\uc218\ub97c \uc5f0\uacb0\ud574\ub3c4 \ub429\ub2c8\ub2e4. <code>e.target.name<\/code>\uc744 \ud65c\uc6a9\ud574 \uc5b4\ub5a4 \ud544\ub4dc\uac00 \ubc14\ub00c\uc5c8\ub294\uc9c0 \uc790\ub3d9\uc73c\ub85c \uad6c\ubd84\ud558\uac70\ub4e0\uc694.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">function handleChange(e) {\n  const { name, value } = e.target;\n  setForm(prev =&amp;gt; ({\n    ...prev,\n    [name]: value\n  }));\n}\n<\/code><\/pre>\n\n\n\n<p>\uc774\uc81c <code>name=\"email\"<\/code> \ub610\ub294 <code>name=\"name\"<\/code> \uc18d\uc131\ub9cc \uc798 \ubd99\uc774\uba74 \uc644\uc131!<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3. \ud83e\uddea \uc804\uccb4 \uc608\uc81c \ucf54\ub4dc<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">function SignupForm() {\n  const [form, setForm] = useState({\n    name: '',\n    email: ''\n  });\n\n  function handleChange(e) {\n    const { name, value } = e.target;\n    setForm(prev =&amp;gt; ({\n      ...prev,\n      [name]: value\n    }));\n  }\n\n  return (\n    &lt;div>\n      &lt;input\n        name=\"name\"\n        value={form.name}\n        onChange={handleChange}\n        placeholder=\"\uc774\ub984\"\n      \/>\n      &lt;input\n        name=\"email\"\n        value={form.email}\n        onChange={handleChange}\n        placeholder=\"\uc774\uba54\uc77c\"\n      \/>\n      &lt;p>\n        \uc774\ub984: {form.name} &lt;br \/>\n        \uc774\uba54\uc77c: {form.email}\n      &lt;\/p>\n    &lt;\/div>\n  );\n}\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\uddbc\ufe0f \uc0c1\ud0dc \uc5c5\ub370\uc774\ud2b8 \ud750\ub984\ub3c4<\/h3>\n\n\n\n<p>\uc544\ub798 \uadf8\ub9bc\uc740 \uc785\ub825\uac12\uc774 \uac1d\uccb4 \uc0c1\ud0dc\uc5d0 \uc800\uc7a5\ub418\uace0, \ud574\ub2f9 \uac12\uc744 UI\uc5d0 \ubc18\uc601\ud558\ub294 \uacfc\uc815\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"1024\" src=\"https:\/\/nangchang.nes.or.kr\/wp-content\/uploads\/2025\/06\/image-2-683x1024.png\" alt=\"\" class=\"wp-image-930\" srcset=\"https:\/\/nangchang.nes.or.kr\/wp-content\/uploads\/2025\/06\/image-2-683x1024.png 683w, https:\/\/nangchang.nes.or.kr\/wp-content\/uploads\/2025\/06\/image-2-200x300.png 200w, https:\/\/nangchang.nes.or.kr\/wp-content\/uploads\/2025\/06\/image-2-768x1152.png 768w, https:\/\/nangchang.nes.or.kr\/wp-content\/uploads\/2025\/06\/image-2-624x936.png 624w, https:\/\/nangchang.nes.or.kr\/wp-content\/uploads\/2025\/06\/image-2.png 1024w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udccc \ud575\uc2ec \uc694\uc57d<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc5ec\ub7ec \uc785\ub825\uac12\uc740 <strong>\uac1d\uccb4\ub85c \ubb36\uc5b4\uc11c \uc0c1\ud0dc \uad00\ub9ac<\/strong>\ud558\uba74 \ud6e8\uc52c \uac04\ub2e8\ud574\uc694<\/li>\n\n\n\n<li><code>name<\/code> \uc18d\uc131\uacfc <code>e.target.name<\/code>\uc744 \ud65c\uc6a9\ud558\uba74 <strong>onChange \ud568\uc218 \uc7ac\uc0ac\uc6a9<\/strong>\uc774 \uac00\ub2a5\ud574\uc694<\/li>\n\n\n\n<li><code>...prev<\/code>\ub85c \uc774\uc804 \uac12\uc744 \ubcf4\uc874\ud55c \ud6c4 \uc5c5\ub370\uc774\ud2b8\ud558\uc138\uc694<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>\ub9ac\uc561\ud2b8\ub97c \uc4f0\ub2e4 \ubcf4\uba74 \uc774\ub984, \uc774\uba54\uc77c, \ube44\ubc00\ubc88\ud638 \ub4f1 \uc785\ub825\ud544\ub4dc\uac00 \uc5ec\ub7ec \uac1c\uc778 \uacbd\uc6b0\uac00 \uc0dd\uae41\ub2c8\ub2e4. \uadf8\ub7f4 \ub54c\ub9c8\ub2e4 useState\ub97c \ud558\ub098\uc529 \ub9cc\ub4e4\uba74 \ub108\ubb34 \ubcf5\uc7a1\ud574\uc9c0\uaca0\uc8e0? \uc624\ub298\uc740 \uac1d\uccb4 \uc0c1\ud0dc\ub97c \uc0ac\uc6a9\ud574\uc11c \uc5ec\ub7ec \uc785\ub825\uac12\uc744 \ud558\ub098\uc758 \uc0c1\ud0dc\ub85c \uad00\ub9ac\ud558\ub294 \ubc29\ubc95\uc744 \ubc30\uc6cc\ubd05\uc2dc\ub2e4! 1. \ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66 \uc0c1\ud0dc\ub97c \uac1d\uccb4\ub85c \ub9cc\ub4e4\uc5b4\uc694 \uc544\ub798\uc640 \uac19\uc774 form \uc0c1\ud0dc\ub97c \uac1d\uccb4 \ud615\ud0dc\ub85c \ub9cc\ub4e4\uace0, \uac01 \uc785\ub825 \ud544\ub4dc\uc758 \uc774\ub984\uc744 \ud0a4(key)\ub85c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc774\uc81c \uc785\ub825\uac12\uc774 \ubc14\ub014 \ub54c\ub9c8\ub2e4 \ud574\ub2f9 \ud0a4\ub9cc \uc5c5\ub370\uc774\ud2b8\ud558\uba74 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[80],"class_list":["post-929","post","type-post","status-publish","format-standard","hentry","category-pogramming","tag-react"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts\/929","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=929"}],"version-history":[{"count":4,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts\/929\/revisions"}],"predecessor-version":[{"id":955,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=\/wp\/v2\/posts\/929\/revisions\/955"}],"wp:attachment":[{"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=929"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=929"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nangchang.nes.or.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=929"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}