{"id":172,"date":"2026-06-26T13:33:09","date_gmt":"2026-06-26T13:33:09","guid":{"rendered":"https:\/\/aabbee.cafe24.com\/?p=172"},"modified":"2026-06-26T14:02:46","modified_gmt":"2026-06-26T14:02:46","slug":"%ec%bb%b4%ed%8f%ac%eb%84%8c%ed%8a%b8-%eb%8d%b0%ec%9d%b4%ed%84%b0%ea%b4%80%eb%a6%ac","status":"publish","type":"post","link":"https:\/\/coalacoding.com\/?p=172","title":{"rendered":"\ucef4\ud3ec\ub10c\ud2b8-\ub370\uc774\ud130\uad00\ub9ac"},"content":{"rendered":"<p>3\ucc28\uc2dc \ucef4\ud3ec\ub10c\ud2b8\uc758 props \ub97c \uae30\uc5b5 \ud560 \uac83\uc774\ub2e4.<br \/>\nprops\ub780 \ucef4\ud3ec\ub10c\ud2b8 \uac04 \uc8fc\uace0\ubc1b\ub294 \ub370\uc774\ud130\uc774\uba70 \ubd80\ubaa8\uac00 \uc790\uc2dd\uc5d0\uac8c \uc804\ub2ec\ud560\uc218 \uc788\ub2e4\uace0 \ubc30\uc6e0\ub2e4.<br \/>\n\uc608\uc2dc\ub85c \uc5ec\ub7ec \uce5c\uad6c\ub97c \ucd08\ub300\ud558\uace0 \ud55c \ud14c\uc774\ube14 \uc704 3\uac1c\uc758 \ub3d9\uc77c\ud55c \uc811\uc2dc\uc5d0 3\uc885\ub958\uc758 \uac01\uae30 \ub2e4\ub978 \uc74c\uc2dd\uc744 \uc804\ub2ec\ud558\ub294 \uc0ac\ub840\ub97c \ub4e4\uc5b4 \uc124\uba85\ud558\uc600\ub2e4.\u00a0<a href=\"https:\/\/www.youtube.com\/watch?v=ReP1iOyNxF4\"><strong>\ud83d\udd17\u00a0\uc601\uc0c1\ub9c1\ud06c 18:29<\/strong><\/a><br \/>\n<strong>\uadf8\ub9bc 1<\/strong>\u00a0\uc744 \ub9ac\uc561\ud2b8 \ucef4\ud3ec\ub10c\ud2b8\ub85c \uad6c\ud604 \ud560 \uacbd\uc6b0\u00a0<strong>\uadf8\ub9bc 2<\/strong>\u00a0\uc758 \uad6c\uc870\uac00 \ub420 \uac83 \uc774\ub2e4.<br \/>\n\ud584\ubc84\uac70,\ub538\uae30,\uc0ac\uacfc\ub294 \ucef4\ud3ec\ub10c\ud2b8\ub85c \uc804\ub2ec\ub418\ub294 props \uc989 \uc18d\uc131\uc758 \uac12\uc774 \ub41c\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-26.png\" alt=\"\"><\/p>\n<p>\uc774\ubc88 \ucc28\uc2dc\uc758 \ud559\uc2b5 \ub0b4\uc6a9\uc740 \uc544\ub798\uc758 \uadf8\ub9bc\ucc98\ub7fc \uce5c\uad6c\uac00 \uc74c\uc2dd\uc744 \uba39\uc5b4\ubc84\ub838\uc744 \uacbd\uc6b0 \uc774\ub2e4.<br \/>\n<strong>Plate \ucef4\ud3ec\ub10c\ud2b8\uc758 \ud584\ubc84\uac70\ub77c\ub294 \uac12\uc774 \uc788\ub2e4\uac00 \uc5c6\uc5b4\uc9c0\uac8c \ud558\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c \ud560\uae4c?<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-27.jpg\" alt=\"\"><\/p>\n<p>Plate \ucef4\ud3ec\ub10c\ud2b8\uc758 \ud584\ubc84\uac70\uac00<br \/>\n\uc788\ub294 \uc0c1\ud0dc\uc5d0\uc11c \uc5c6\ub294 \uc0c1\ud0dc\ub85c \ubc14\uafb8\uba74<br \/>\n\ub41c\ub2e4.<br \/>\n<strong>\ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0c1\ud0dc\uad00\ub9ac \uc640 \ub77c\uc774\ud504 \uc0ac\uc774\ud074\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uc790<\/strong><\/p>\n<hr>\n<h3><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#1-%EC%8B%9C%EC%9E%91%ED%8C%8C%EC%9D%BC\"><strong>#<\/strong><\/a><strong>1. \uc2dc\uc791\ud30c\uc77c<\/strong><\/h3>\n<blockquote>\n<p>\ub9cc\uc57d \uc804\uc2dc\uac04 \ud30c\uc77c\uc774 \uc5c6\uc744 \uacbd\uc6b0 \uc544\ub798\uc758 \ud30c\uc77c\uc744 \ub2e4\uc6b4\ub85c\ub4dc \ud558\uc5ec \uc9c4\ud589\ud55c\ub2e4<\/p>\n<\/blockquote>\n<p>  <a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/05\/start.zip\"><strong>\uc9c0\ub09c \uc218\uc5c5 \ud30c\uc77c<\/strong><\/a><br \/>\n<strong>\ud30c\uc77c\ud65c\uc6a9\ubc29\ubc95<\/strong><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/05-02_643.jpg\" alt=\"\"><\/p>\n<h3><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#2-component-state%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC\"><strong>#<\/strong><\/a><strong>2. Component State(\uc0c1\ud0dc\uad00\ub9ac)<\/strong><\/h3>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#21-%ED%81%B4%EB%9E%98%EC%8A%A4%ED%98%95-vs-%ED%95%A8%EC%88%98%ED%98%95-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC\"><strong>#<\/strong><\/a><strong>2.1. \ud074\ub798\uc2a4\ud615 vs \ud568\uc218\ud615 \uc0c1\ud0dc\uad00\ub9ac<\/strong><br \/>\n<strong>\ud074\ub798\uc2a4\ud615 vs \ud568\uc218\ud615 \uc0c1\ud0dc\uad00\ub9ac<\/strong><br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#22-%ED%95%A8%EC%88%98%ED%98%95-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EC%9D%98-%EC%83%81%ED%83%9C%EA%B4%80%EB%A6%AC\"><strong>#<\/strong><\/a><strong>2.2. \ud568\uc218\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0c1\ud0dc\uad00\ub9ac<\/strong><br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#221-usestate\"><strong>#<\/strong><\/a><strong>2.2.1. useState()<\/strong><br \/>\n<strong>\uacf5\uc2dd\ucc38\uc870\ubb38\uc11c<\/strong><br \/>\n\uc704\uc5d0\uc11c \uc5b8\uae09\ud588\ub4ef \ucef4\ud3ec\ub10c\ud2b8 \ub0b4\ubd80\uc5d0\uc11c A -&gt; B \ub85c \ubcc0\uacbd\ub3fc\uc57c \ud558\ub294 \uac83\ub4e4\uc774 \uc788\ub2e4.<br \/>\n\uc608\ub97c \ub4e4\uba74 \uc544\ub798\uc758 \ubc84\ud2bc \ucef4\ud3ec\ub10c\ud2b8\ucc98\ub7fc \ud074\ub9ad\uc2dc \ud14d\uc2a4\ud2b8\uac00 \ub85c\uadf8\uc778 -&gt; \ub85c\uadf8\uc544\uc6c3 \uc73c\ub85c \ubc14\ub00c\ub294 \uacbd\uc6b0\ub97c \uc0dd\uac01\ud574 \ubcfc\uc218 \uc788\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/button.gif\" alt=\"\"><\/p>\n<p>\uc774\ub7f0 \uacbd\uc6b0\u00a0<code>useState()<\/code>\u00a0\ub77c\ub294 \ub9ac\uc561\ud2b8\uc758\u00a0<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/reference\/hooks\/\"><strong>\ud83d\udd17Hook<\/strong><\/a>\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<br \/>\nHook\uc774\ub780 \uac04\ub2e8\ud788 \ub9d0\ud558\uba74 \ub9ac\uc561\ud2b8\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uba54\uc11c\ub4dc\uc774\ub2e4.<br \/>\n<em>\ub9ac\uc561\ud2b8 v16 \uc774\ud558\uc5d0\uc11c\ub294 \ucef4\ud3ec\ub10c\ud2b8\uc758 \ud615\ud0dc\uc5d0 \ub530\ub77c state \uc640 Hook \uc744 \uad6c\ubd84\ud558\uc600\uc73c\ub098 v16.8\uc774\uc0c1\ubd80\ud130\ub294 useState \ub97c \uc0ac\uc6a9\ud558\uc5ec \ucc98\ub9ac\ud55c\ub2e4.<\/em><br \/>\n<strong>\ud568\uc218\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c\ub294 useState() \ub77c\ub294 \ud6c5\uc744 \uc0ac\uc6a9\ud558\uc5ec \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0c1\ud0dc\uad00\ub9ac\ub97c \ud55c\ub2e4<\/strong><\/p>\n<p><Accordion title=\"\ud83d\udc28*\ubcf4\ucda9\uc124\uba85 : \ucef4\ud3ec\ub10c\ud2b8 \ub0b4\ubd80\uc758 \ub370\uc774\ud130 \ubcc0\uacbd\uc774 \ub3c4\ub300\uccb4 \ubb34\uc2a8 \ub9d0\uc77c\uae4c?*\"><br \/>\n&#8220;`text<\/p>\n<pre><code>\n\n```text\n<\/code><\/pre>\n<pre><code class=\"language-text\">\n<\/code><\/pre>\n<pre><code class=\"language-text\">\n<\/code><\/pre>\n<p><\/Accordion><\/p>\n<p><strong>\uae30\ubcf8\ubb38\ubc95<\/strong><\/p>\n<pre><code class=\"language-javascript\">import { useState } from &#39;react&#39;;\nconst [&lt;\uc0c1\ud0dc \uac12 \uc800\uc7a5 \ubcc0\uc218&gt;, &lt;\uc0c1\ud0dc \uac12 \uac31\uc2e0 \ud568\uc218&gt;] = useState(&lt;\uc0c1\ud0dc \ucd08\uae30 \uac12&gt;);\n<\/code><\/pre>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#2211-%EC%B9%B4%EC%9A%B4%ED%84%B0%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EC%9E%90-1\"><strong>#<\/strong><\/a><strong>2.2.1.1. \uce74\uc6b4\ud130\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uc790-1<\/strong><\/p>\n<ol>\n<li>src\/Counter.js \ud30c\uc77c\uc744 \uc0dd\uc131\ud55c\ub2e4.<br \/>\n  Counter.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">const Counter = () =&gt; {\n return (\n \t&lt;&gt;\n \t\t&lt;div&gt;Counter&lt;\/div&gt;\n \t&lt;\/&gt;\n );\n};\nexport default Counter;\n<\/code><\/pre>\n<ol>\n<li>Counter \ucef4\ud3ec\ub10c\ud2b8\ub97c App \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c \uc784\ud3ec\ud2b8\ud55c\ub2e4.<br \/>\n  App.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import Counter from &quot;.\/Counter&quot;;\n...\nfunction App() {\n return (\n...\n \t&lt;Counter \/&gt;\n...\n<\/code><\/pre>\n<ol>\n<li>Counter \ucef4\ud3ec\ub10c\ud2b8 \uc0c1\ub2e8\uc5d0 useState \uc784\ud3ec\ud2b8\ud55c\ub2e4.useState\ub780 \ub9ac\uc561\ud2b8\uc758 \ud6c5 \uc885\ub958\uc758 \ud558\ub098\ub85c \ub9ac\uc561\ud2b8\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ub0b4\uc7a5 \ud568\uc218\uc774\ub2e4.\uc81c\uc774\ucffc\ub9ac\uc758 show(), hide() \uc640 \uc720\uc0ac\ud558\ub2e4.Counter \ucef4\ud3ec\ub10c\ud2b8\uc758 \ub0b4\ubd80\uc5d0 \ucf58\uc194\ub85c\uadf8\ub85c useState \ud568\uc218\uc758 \ubc18\ud658\uac12\uc744 \ucd9c\ub825\ud574\ubcf8\ub2e4.<br \/>\n  Counter.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import { useState } from &#39;react&#39;;\nconst Counter = () =&gt; {\n console.log(useState());\n...\n<\/code><\/pre>\n<blockquote>\n<p>useState\ud568\uc218(\ud6c5)\ub97c \ucf58\uc194\ucc3d\uc5d0\uc11c \ud638\ucd9c\uc2dc \ubc18\ud658\ub418\ub294 \uac12\uc774 \uc788\ub294\ub370 \ubc30\uc5f4\uc784\uc744 \uc54c\uc218\uc788\ub2e4.<\/p>\n<\/blockquote>\n<pre><code>\ub450\uac1c\uc758 \uac12\uc774 \ubc18\ud658\ub418\uba70 0\ubc88\uc5d0\ub294 \ubcc0\uc218\ub97c \uc120\uc5b8\ud558\uc600\uc73c\ub098 \ucd08\uae30\ud654\ud558\uc9c0 \uc54a\uc558\uc744\ub54c \ubcfc\uc218\uc788\ub294 undefined \uc790\ub8cc\ud615\uc774 \ubcf4\uc774\uace0 1\ubc88\uc5d0\ub294 \ud568\uc218\uac00 \ubcf4\uc778\ub2e4.\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-1.jpg\" alt=\"\"><\/p>\n<pre><code>**\ub9ac\uc561\ud2b8\uc758 \ud6c5\uc740 \uc0ac\uc6a9\uc2dc import \ud574\uc57c\ud558\uba70 \ucef4\ud3ec\ub10c\ud2b8 \ud568\uc218\ub0b4\uc5d0 \uc791\uc131\ud574\uc57c \ud55c\ub2e4.**\n<\/code><\/pre>\n<hr>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#2212-%EC%B9%B4%EC%9A%B4%ED%84%B0%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EC%9E%90-2\"><strong>#<\/strong><\/a><strong>2.2.1.2. \uce74\uc6b4\ud130\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uc790-2<\/strong><\/p>\n<ol>\n<li>\ubcc0\uc218 num \uc744 \uc120\uc5b8\ud558\uace0 useState\ud6c5\uc744 \ud638\ucd9c\ud558\uba74\uc11c \ucd08\uae30\uac12\uc73c\ub85c 0 \uc804\ub2ec\ud55c\ub2e4.<br \/>\n  Counter.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import { useState } from &#39;react&#39;;\nconst Counter = () =&gt; {\n let num = useState(0);\n \tconsole.log(num);\n...\n<\/code><\/pre>\n<blockquote>\n<p>\ucf58\uc194\ub85c\uadf8\uc5d0 num \ubcc0\uc218\uc758 \uac12\uc744 \ud655\uc778\ud558\uba74 undefined \uac00 \uc544\ub2cc 0\uc774 \ud655\uc778\ub41c\ub2e4.<\/p>\n<\/blockquote>\n<pre><code>\uc778\ub371\uc2a4\ubc88\ud638 1\ubc88\uc5d0 \ubc18\ud658 \ub418\ub294 \ud568\uc218\ub294 \uc9c0\uae08 \ucd08\uae30\ud654\ud55c \uc774 \ubcc0\uc218\uc758 \uac12\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\ub294 \ud568\uc218\uc774\ub2e4.\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-2.png\" alt=\"\"><\/p>\n<ol>\n<li>num\uc758 \ubc18\ud658\uac12\uc774 \ubc30\uc5f4\uc774\ubbc0\ub85c \ubc30\uc5f4\ub0b4 \uc6d0\uc18c\ub4e4\uc744 \uac01\uac01 \ubcc0\uc218\uc5d0 \ud560\ub2f9\ud574\ubcf4\uc790<br \/>\n  Counter.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">...\nconst Counter = () =&gt; {\n let num = useState(0);\n let count=num[0];\n let setCount=num[1];\n console.log(count);\n console.log(setCount);\n...\n<\/code><\/pre>\n<blockquote>\n<p>\ubcc0\uc218 count \uc5d0\ub294 num \uc758 \uccab\ubc88\uc9f8 \uac12\uc774 \ud655\uc778\ub41c\ub2e4.<\/p>\n<\/blockquote>\n<pre><code>\ubcc0\uc218 setCount \uc5d0\ub294 num \uc758 \ub450\ubc88\uc9f8 \uac12\uc774 \ud655\uc778\ub41c\ub2e4.\n<\/code><\/pre>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-3.png\" alt=\"\"><\/p>\n<hr>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#2213-%EC%B9%B4%EC%9A%B4%ED%84%B0%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%96%B4%EB%B3%B4%EC%9E%90-3\"><strong>#<\/strong><\/a><strong>2.2.1.3. \uce74\uc6b4\ud130\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uc790-3<\/strong><\/p>\n<ol>\n<li>\uce74\uc6b4\ud2b8\ud568\uc218\ub97c \uc791\uc131\ud55c\ub2e4.<br \/>\n  Counter.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">...\nconst updateCount = () =&gt; {\n\tsetCount(count + 1);\n};\n...\n<\/code><\/pre>\n<ol>\n<li>\ubc84\ud2bc\uc5d0 \uc774\ubca4\ud2b8\ub9ac\uc2a4\ub108\ub97c \uc5f0\uacb0\ud55c\ub2e4. <code>h1<\/code> \uc0ac\uc774\uc758 \ub370\uc774\ud130\ub97c \ubcc0\uc218\ub85c \uc218\uc815\ud55c\ub2e4.<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-4.png\" alt=\"\"><\/p>\n<pre><code class=\"language-text\">`&lt;button onClick={()=&gt;setCount(count + 1)}&gt;\ub354\ud558\uae30&lt;\/button&gt;`\n:::\n<\/code><\/pre>\n<hr>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#2214-%EC%B9%B4%EC%9A%B4%ED%84%B0%EB%A5%BC-%EA%B0%9C%EC%84%A0-%ED%95%B4%EB%B3%B4%EC%9E%90\"><strong>#<\/strong><\/a><strong>2.2.1.4. \uce74\uc6b4\ud130\ub97c \uac1c\uc120 \ud574\ubcf4\uc790<\/strong><\/p>\n<ol>\n<li>useState \ud6c5\uc758 \ubc18\ud658\uac12\uc744 \ubcc0\uc218\uc5d0 \ud560\ub2f9 \ubc1b\ub294 \ubd80\ubd84\uc744 \uad6c\uc870 \ubd84\ud574 \ud560\ub2f9 \ubb38\ubc95\uc744 \uc0ac\uc6a9\ud558\uba74 \uac04\uacb0\ud558\uac8c \uc218\uc815\ud560\uc218 \uc788\ub2e4.<br \/>\n  Counter.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">...\nlet [count, setCount] = useState(0);\n...\n<\/code><\/pre>\n<p>  1<br \/>\n  2<br \/>\n  3<br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#23-%ED%80%B4%EC%A6%88%ED%80%B4%EC%A6%88\"><strong>#<\/strong><\/a><strong>2.3. \ud034\uc988\ud034\uc988<\/strong><br \/>\n\uc2e4\ud589\ud654\uba74<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-1.gif\" alt=\"\"><\/p>\n<p>\uc9c0\uc2dc\ubb38<\/p>\n<pre><code class=\"language-markdown\">\ucef4\ud3ec\ub10c\ud2b8\ub97c \uc0dd\uc131\ud558\uc5ec \uc704\uc758 \uadf8\ub9bc\ucc98\ub7fc \ud074\ub9ad\ud558\uba74 \uc0c1\ud0dc\ub97c \uc5c5\ub370\uc774\ud2b8 \ud55c\ub2e4.\n\ud83c\udf54 \ub97c \ud074\ub9ad\ud558\uba74 \ud83c\udf57 \uc73c\ub85c \uc0c1\ud0dc\uac00 1\ud68c \ubcc0\uacbd\ub418\ub3c4\ub85d \ud55c\ub2e4. (\ud1a0\uae00\uc544\ub2d8)\n<\/code><\/pre>\n<h3><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#3-component-lifecycle%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0\"><strong>#<\/strong><\/a><strong>3. Component LifeCycle(\uc0dd\uba85\uc8fc\uae30)<\/strong><\/h3>\n<blockquote>\n<p>\ucef4\ud3ec\ub10c\ud2b8 \ub77c\uc774\ud504\uc0ac\uc774\ud074\uc740 \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0dd\uc131\ubd80\ud130 \uc18c\uba78\uc5d0 \uc774\ub974\ub294 \uc77c\ub828\uc758 \uc8fc\uae30\ub97c \ub9d0\ud55c\ub2e4.<\/p>\n<\/blockquote>\n<p>  \ubaa8\ub4e0 \ub9ac\uc561\ud2b8 \ucef4\ud3ec\ub10c\ud2b8\ub294 Lifecycle\uc744 \uac00\uc9c4\ub2e4.<br \/>\n  \ub9ac\uc561\ud2b8\uc758 \ucef4\ud3ec\ub10c\ud2b8 \uc720\ud615\ubcc4(\ud074\ub798\uc2a4,\ud568\uc218) \uc0dd\uba85\uc8fc\uae30 \uad00\ub9ac\ubc29\uc2dd\uc758 \ucc28\uc774\uac00 \uc788\ub2e4<br \/>\n  \uc6b0\ub9ac\ub294 \ud568\uc218\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0dd\uba85\uc8fc\uae30\ub9cc\uc744 \ub2e4\ub8f0 \uac83\uc774\uba70 \ud074\ub798\uc2a4\ud615\uc758 \uc0dd\uba85\uc8fc\uae30\ub294 \uc544\ub798 2.1\uc758 \uc790\ub8cc\ub97c \ucc38\uace0\ud558\ub3c4\ub85d \ud558\uc790.<br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#31-%ED%81%B4%EB%9E%98%EC%8A%A4%ED%98%95-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EC%99%80-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0\"><strong>#<\/strong><\/a><strong>3.1. \ud074\ub798\uc2a4\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc640 \uc0dd\uba85\uc8fc\uae30<\/strong><br \/>\n<strong>\ud074\ub798\uc2a4\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc640 \uc0dd\uba85\uc8fc\uae30<\/strong><br \/>\n1. <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/p2.jpg\" alt=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/p3.jpg\" alt=\"\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-8.png\" alt=\"\"><\/p>\n<ol>\n<li><\/li>\n<li><\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-7.png\" alt=\"\"><\/p>\n<ol>\n<li><\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-9.png\" alt=\"\"><\/p>\n<hr>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#32-%ED%95%A8%EC%88%98%ED%98%95-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EC%9D%98-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0\"><strong>#<\/strong><\/a><strong>3.2. \ud568\uc218\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0dd\uba85\uc8fc\uae30<\/strong><br \/>\n\uc55e\uc11c \uc5b8\uae09\ud588\ub4ef \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0dd\uba85\uc8fc\uae30\ub294 \uc0ac\ub78c\uc758 \uc131\uc7a5 \uacfc\uc815 \ucc98\ub7fc \ucef4\ud3ec\ub10c\ud2b8\uac00 \ud654\uba74\uc5d0\uc11c \ub80c\ub354\ub418\ub294 \uc77c\ub828\uc758 \uacfc\uc815\uc744 \uc758\ubbf8\ud55c\ub2e4.<br \/>\n\uc774\uac83\uc744 \ud559\uc2b5\ud574\uc57c \ud558\ub294 \uc774\uc720\ub294 \uc0dd\uba85\uc8fc\uae30\ubcc4 \uc0ac\uc6a9\ud560\uc218 \uc788\ub294 \ud568\uc218\ub098 \ubc1c\uc0dd\ud560\uc218 \uc788\ub294 \ud6a8\uacfc\uac00 \ub2e4\ub974\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-33.jpg\" alt=\"\"><\/p>\n<p>\ud568\uc218\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0dd\uba85\uc8fc\uae30\ub294 3\ub2e8\uacc4\ub85c \uad6c\uc131\ub41c\ub2e4.<br \/>\n\uc544\ub798 \uadf8\ub9bc\uacfc \ud45c\ub97c \ucc38\uace0\ud558\uc790.<\/p>\n<table>\n<thead>\n<tr>\n<th><strong>\ub2e8\uacc4<\/strong><\/th>\n<th><strong>\uc124\uba85<\/strong><\/th>\n<th><strong>useEffect \uc6a9\ubc95<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Mount (\uc0dd\uc131)<\/td>\n<td>\ucef4\ud3ec\ub10c\ud2b8\uac00 \uc0dd\uc131\ub418\ub294 \ub2e8\uacc4<\/td>\n<td><code>useEffect(()=&gt;{},[])<\/code><\/td>\n<\/tr>\n<tr>\n<td>Update (\uac31\uc2e0)<\/td>\n<td>\ucef4\ud3ec\ub10c\ud2b8\uac00 \uadf8\ub824\uc9c0\uace0 \ubcc0\ud654\ud558\ub294 \ub2e8\uacc4<\/td>\n<td><code>useEffect(()=&gt;{})useEffect(()=&gt;{},[\ubcc0\uc218\uba85])<\/code><\/td>\n<\/tr>\n<tr>\n<td>UnMount (\uc18c\uba78)<\/td>\n<td>\ucef4\ud3ec\ub10c\ud2b8\uac00 \uc0ac\ub77c\uc9c0\ub294 \ub2e8\uacc4<\/td>\n<td><code>useEffect(()=&gt;{ return \uc2e4\ud589\ubb38 },[])<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\ud568\uc218\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc0dd\uba85\uc8fc\uae30 \ub2e4\uc774\uc5b4\uadf8\ub7a8<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-27.png\" alt=\"\"><\/p>\n<p>react-hooks-flow : <a href=\"https:\/\/github.com\/donavon\/hook-flow\">https:\/\/github.com\/donavon\/hook-flow<\/a><br \/>\n<strong>\ud568\uc218\ud615 \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c\ub294\u00a0<strong><strong><code>useEffect()<\/code><\/strong><\/strong>\u00a0\ud6c5\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc0dd\uba85\uc8fc\uae30\ub97c \uad00\ub9ac\ud55c\ub2e4.<\/strong><br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#321-useeffect\"><strong>#<\/strong><\/a><strong>3.2.1. useEffect<\/strong><\/p>\n<blockquote>\n<p><strong>Info<\/strong>: \ud83d\udca1 <code>useEffect<\/code>\ub97c \uac00\uc7a5 \uac04\ub2e8\ud558\uac8c \uc124\uba85\ud558\uba74,<br \/>\n<strong>&quot;\ucef4\ud3ec\ub10c\ud2b8\uac00 \ud654\uba74\uc5d0 \ub2e4 \uadf8\ub824\uc9c4(\ub80c\ub354\ub9c1 \ub41c) <em><strong><strong>\ud6c4\uc5d0<\/strong><\/strong><\/em>, \ucd94\uac00\uc801\uc73c\ub85c \ud574\uc57c \ud560 \uc77c\uc744 \uc2dc\ud0ac \ub54c&quot;<\/strong> \uc0ac\uc6a9\ud558\ub294 \uc57d\uc18d(Hook)\uc774\uc5d0\uc694.<\/p>\n<\/blockquote>\n<p>  React \ucef4\ud3ec\ub10c\ud2b8\uc758 &#39;\uc8fc\ub41c \uc784\ubb34&#39;\ub294 UI(\ud654\uba74)\ub97c \uadf8\ub9ac\ub294 \uac70\uc8e0?<br \/>\n\ud558\uc9c0\ub9cc \uc885\uc885 \ud654\uba74\uc744 \ub2e4 \uadf8\ub9b0 <em>\ud6c4\uc5d0<\/em> \ud574\uc57c \ud560 \ubd80\uc218\uc801\uc778 \uc77c\ub4e4\uc774 \uc0dd\uaca8\uc694. \uc608\ub97c \ub4e4\uba74:<\/p>\n<ul>\n<li>\uc11c\ubc84\uc5d0\uc11c \ub370\uc774\ud130\ub97c \ubd88\ub7ec\uc640\uc11c \ud654\uba74\uc5d0 \ubcf4\uc5ec\uc8fc\uae30 (API \ud638\ucd9c)<\/li>\n<li>1\ucd08\ub9c8\ub2e4 \uc2dc\uac04\uc774 \ubc14\ub00c\uac8c \ud558\uae30 (\ud0c0\uc774\uba38 \uc124\uc815)<\/li>\n<li>\ube0c\ub77c\uc6b0\uc800 \ud0ed\uc758 \uc81c\ubaa9 \ubc14\uafb8\uae30<\/li>\n<\/ul>\n<p>\uc774\ub807\uac8c \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc8fc\ub41c \uc784\ubb34(\ub80c\ub354\ub9c1) \uc678\uc5d0 \uc77c\uc5b4\ub098\ub294 \ubaa8\ub4e0 \uc791\uc5c5\uc744 <strong>&quot;\ubd80\uc218 \ud6a8\uacfc(Side Effect)&quot;<\/strong>\ub77c\uace0 \ubd88\ub7ec\uc694.<br \/>\n  <code>useEffect<\/code>\ub294 \ubc14\ub85c \uc774 \ubd80\uc218 \ud6a8\uacfc\ub4e4\uc744 \ucc98\ub9ac\ud558\uae30 \uc704\ud574 \ud0dc\uc5b4\ub0ac\ub2f5\ub2c8\ub2e4!<\/p>\n<p>useEffect \ub294 \ub450\uac1c\uc758 \uc778\uc218\ub97c \ubc1b\ub294\ub370 \uccab\ubc88\uc9f8\ub294 \ud544\uc218\uc774\uace0 \ub450\ubc88\uc9f8\ub294 \uc120\ud0dd\uc774\ub2e4.<br \/>\n\uccab\ubc88\uc9f8 \uc778\uc218\ub294 \ud568\uc218\ub97c \ub450\ubc88\uca30 \uc778\uc218\ub294 \ubc30\uc5f4\uc744 \ubc1b\ub294\ub370 \uc774 \ub450\ubc88\uc9f8 \ubc30\uc5f4\uc5d0 \ub530\ub77c \uc0dd\uba85\uc8fc\uae30\uac00 \ub2ec\ub77c\uc9c4\ub2e4.<br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#3211-%EB%AC%B4%ED%95%9C%EB%A3%A8%ED%94%84-%EB%AC%B8%EC%A0%9C%EC%83%81%ED%99%A9-%EB%A7%8C%EB%93%A4%EA%B8%B0\"><strong>#<\/strong><\/a><strong>3.2.1.1. \ubb34\ud55c\ub8e8\ud504 \ubb38\uc81c\uc0c1\ud669 \ub9cc\ub4e4\uae30<\/strong><\/p>\n<ol>\n<li>LifeCycle \ucef4\ud3ec\ub10c\ud2b8\ub97c \ub9cc\ub4e4\uace0 \ucef4\ud3ec\ub10c\ud2b8 \ucf54\ub4dc\ub97c \uc791\uc131\ud55c\ub2e4.App \ucef4\ud3ec\ub10c\ud2b8\uc5d0 LifeCycle \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc784\ud3ec\ud2b8 \ud55c\ub2e4.<br \/>\n  LifeCycle.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import { useState } from &#39;react&#39;;\n\n    const LifeCycle = () =&gt; {\n    \tconst [mount, setMount] = useState(0);\n    \tsetMount(mount + 1);\n    \treturn (\n    \t\t&lt;&gt;\n    \t\t\t&lt;h1&gt;Mount:{mount}&lt;\/h1&gt;\n    \t\t&lt;\/&gt;\n    \t);\n    };\n    export default LifeCycle;\n<\/code><\/pre>\n<ol>\n<li>\uc544\ub798\uc640 \uac19\uc740 \uc5d0\ub7ec\uac00 \ub72c\ub2e4.<br \/>\nsetMount\ub85c \uc778\ud574 mount \uac00 \ubc14\ub00c\uba74 LifeCycle \uc774 \ub9ac\ub79c\ub354\ub9c1 \ub428.<br \/>\nstate\uac00 \ubcc0\uacbd\ub418\uba74\uc11c \ucef4\ud3ec\ub10c\ud2b8 \ud568\uc218\uac00 \ud638\ucd9c\ub418\uba70 \ub9ac\ub80c\ub354\ub9c1\ub418\uace0<br \/>\n\ucef4\ud3ec\ub10c\ud2b8 \ud568\uc218\ub0b4\uc758 \ud568\uc218\uac00 \uc2e4\ud589 \ub418\uba74\uc11c \ubb34\ud55c \ubc18\ubcf5\uc774 \uc77c\uc5b4\ub09c\ub2e4<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-11.png\" alt=\"\"><\/p>\n<hr>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#3212-mount-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EB%A0%8C%EB%8D%94%EB%A7%81-%EC%A7%81%EC%A0%84-%EB%94%B1-%ED%95%9C%EB%B2%88-%EC%8B%A4%ED%96%89\"><strong>#<\/strong><\/a><strong>3.2.1.2. Mount-\ucef4\ud3ec\ub10c\ud2b8 \ub80c\ub354\ub9c1 \uc9c1\uc804 \ub531 \ud55c\ubc88 \uc2e4\ud589<\/strong><br \/>\n\uc704\uc758 \uc5d0\ub7ec\ub97c \ud574\uacb0\ud574\ubcf4\uc790<br \/>\n<strong>[\ub9c8\uc6b4\ud2b8\uc2dc \ub531\ud55c\ubc88 \uc2e4\ud589] \uc758\uc874\uc131\ubc30\uc5f4\uc744 \ube44\uc6c0<\/strong><\/p>\n<pre><code class=\"language-javascript\">\/\/\uc758\uc874\uc131 \ubc30\uc5f4\uc5d0 \ube48\uac12\uc744 \ub123\uc73c\uba74 \ucef4\ud3ec\ub10c\ud2b8 \ub9c8\uc6b4\ud2b8\uc2dc \ud55c\ubc88\ub9cc \uc2e4\ud589\ub41c\ub2e4.\nuseEffect(() =&gt; {\n\t\/\/\uc2e4\ud589\ubb38\n}, []);\n<\/code><\/pre>\n<p>LifeCycle \ucef4\ud3ec\ub10c\ud2b8\uc5d0\uc11c useEffect \ub97c \uc784\ud3ec\ud2b8 \ud55c\ub2e4.<\/p>\n<ol>\n<li>useEffect \ub97c \uc791\uc131\ud55c\ub2e4.<br \/>\n  LifeCycle.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import { useState, useEffect } from &#39;react&#39;;\nconst LifeCycle = () =&gt; {\n const [mount, setMount] = useState(0);\n useEffect(() =&gt; {\n \tconsole.log(&#39;\ub9c8\uc6b4\ud2b8 \ub428&#39;);\n }, []);\n return (\n \t&lt;&gt;\n \t\t&lt;h1&gt;\n \t\t\tMount:{mount} &lt;button onClick={() =&gt; setMount((mount) =&gt; mount + 1)}&gt;click&lt;\/button&gt;\n \t\t&lt;\/h1&gt;\n \t&lt;\/&gt;\n );\n};\nexport default LifeCycle;\n<\/code><\/pre>\n<ol>\n<li>\uc774\uc81c \uc624\ub958\uac00 \uc0ac\ub77c\uc9c0\uace0 LifeCycle \ucef4\ud3ec\ub10c\ud2b8\uc758 mount \ubcc0\uc218\uc758 \uac12\uc740 \ubc84\ud2bc\uc744 \ud074\ub9ad\ud560\ub584 \ub9c8\ub2e4 \uc99d\uac00\ud55c\ub2e4.<\/li>\n<li><code>setMount()<\/code>\u00a0\ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec\u00a0<code>mount<\/code>\ubcc0\uc218\uc758 \uac12\uc744 \uc5c5\ub370\uc774\ud2b8 \ud560 \uacbd\uc6b0 \ubc14\ub85c \uc7ac\ud560\ub2f9\uc774 \ubd88\uac00\ud558\uba70 \ucf5c\ubc31\ud568\uc218\ub97c \uc0ac\uc6a9\ud574\uc57c \ud558\ub294 \uc810\uc744 \uc8fc\uc758\ud55c\ub2e4.<a href=\"https:\/\/react.dev\/reference\/react\/useState#examples-updater\"><strong>\ud83d\udd17\ucc38\uc870\ub9c1\ud06c<\/strong><\/a>\uc704\uc758 \uacf5\uc2dd\uc0ac\uc774\ud2b8 \ucc38\uc870\ubb38\uc11c\ub9c1\ud06c\ub97c \ubcf4\uba74 \uc774\uc804\uc0c1\ud0dc\ub97c \uae30\ubc18\uc73c\ub85c \uc0c1\ud0dc\ub97c \uc5c5\ub370\uc774\ud2b8 \ud560 \uacbd\uc6b0 \ubcc0\uc218\uc758 \uac12\uc744 \ubc14\ub85c \ubcc0\uacbd\ud558\uc9c0 \ub9d0\uace0 \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubcc0\uacbd\ud558\ub77c\uace0 \ub418\uc5b4\uc788\ub2e4.<\/li>\n<li><code>useEffect()<\/code>\uc758 \uc778\uc218\ub85c \ud568\uc218\uc640 \ube48\ubc30\uc5f4\uc744 \uc804\ub2ec\ud558\uba74 \ucef4\ud3ec\ub10c\ud2b8\uac00\u00a0<strong>\ub9c8\uc6b4\ud2b8(\uadf8\ub824\uc9c0\uae30 \uc9c1\uc804) \ub420\ub54c \ub531 \ud55c\ubc88 \uc804\ub2ec\ubc1b\uc740 \ud568\uc218\ub97c \uc2e4\ud589<\/strong>\ud55c\ub2e4.<\/li>\n<li>\ucf58\uc194\ucc3d\uc744 \uc5f4\uace0 \uba54\uc2dc\uc9c0\ub97c \ud655\uc778\ud558\uba74 useEffect \ub0b4\uc5d0 \uc791\uc131\ud55c \ucf58\uc194\ud568\uc218\ub294 1\ud68c\ub9cc \uc2e4\ud589\ub418\uace0 \ub354\uc774\uc0c1 \uc2e4\ud589\ub418\uc9c0 \uc54a\ub294\ub2e4.<\/li>\n<\/ol>\n<hr>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#3213-update-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EB%A0%8C%EB%8D%94%EC%8B%9C\"><strong>#<\/strong><\/a><strong>3.2.1.3. Update-\ucef4\ud3ec\ub10c\ud2b8 \ub80c\ub354\uc2dc<\/strong><br \/>\n\uc774\ubc88\uc5d0\ub294 \ucef4\ud3ec\ub10c\ud2b8\uac00 \ub9ac\ub80c\ub354 \ub420 \ub54c \ub9c8\ub2e4 \uc2e4\ud589\ud574\ubcf4\uc790.<br \/>\n<strong>[\ucef4\ud3ec\ub10c\ud2b8 \ub9ac\ub80c\ub354\uc2dc \uc2e4\ud589] \uc758\uc874\uc131\ubc30\uc5f4\uc744 \uc9c0\uc6c0<\/strong><\/p>\n<pre><code class=\"language-javascript\">\/\/\uc758\uc874\uc131 \ubc30\uc5f4\uc744 \uc0ad\uc81c\ud558\uba74 \ucef4\ud3ec\ub10c\ud2b8 \ub9ac\ub80c\ub354\uc2dc \ub9c8\ub2e4 \uc2e4\ud589\ub41c\ub2e4.\nuseEffect(() =&gt; {\n\t\/\/\uc2e4\ud589\ubb38\n});\n<\/code><\/pre>\n<ol>\n<li>LifeCycle.js \ub97c \uc218\uc815\ud55c\ub2e4. \uc0c1\ud0dc\uad00\ub9ac\ub97c \ucd94\uac00\ud55c\ub2e4.<br \/>\n  LifeCycle.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">....\nconst [rerender, setRerender] = useState(0);\n...\nuseEffect(() =&gt; {\n console.log(&#39;\ub9ac\ub80c\ub354 \ub428&#39;);\n});\nreturn (\n &lt;h1&gt;\n \trerender:{rerender} &lt;button onClick={() =&gt; setRerender((rerender) =&gt; rerender + 1)}&gt;click&lt;\/button&gt;\n &lt;\/h1&gt;\n...\n\n\n\n\n<\/code><\/pre>\n<ol>\n<li>\ucf58\uc194\ucc3d\uc744 \uc5f4\uace0 \ub9c8\uc6b4\ud2b8 \ubc84\ud2bc\uacfc \ub9ac\ub80c\ub354 \ubc84\ud2bc\uc744 \ub9c8\uad6c \ub20c\ub7ec \ucf58\uc194 \uba54\uc2dc\uc9c0 \ucd9c\ub825\ud69f\uc218\ub97c \ube44\uad50\ud574\ubcf8\ub2e4.<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-2.gif\" alt=\"\"><\/p>\n<hr>\n<p>\uc774\ubc88\uc5d0\ub294 \ud2b9\uc815 \uac12 \ubcc0\uacbd\uc2dc \ud568\uc218\ub97c \uc2e4\ud589\ud574\ubcf4\uc790<br \/>\n<strong>[\ud2b9\uc815\uac12\uc758 \uc5c5\ub370\uc774\ud2b8\uc2dc \uc2e4\ud589] \uc758\uc874\uc131\ubc30\uc5f4\uc758 \uac12\uc744 \ud2b9\uc815\ud568<\/strong><\/p>\n<pre><code class=\"language-javascript\">\/\/ \uc758\uc874\uc131 \ubc30\uc5f4\uc5d0 \uc791\uc131\ud55c \ubcc0\uc218\uc758 \uac12\uc774 \ubcc0\uacbd\ub420\ub54c \ub9c8\ub2e4 \uc2e4\ud589\ub41c\ub2e4.\nuseEffect(() =&gt; {\n\t\/\/\uc2e4\ud589\ubb38\n}, [\ubcc0\uc218\uba85]);\n<\/code><\/pre>\n<ol>\n<li>\uc544\ub798 \ucf54\ub4dc\uc911 \ud45c\uc2dc\ub41c \ubd80\ubd84\uc744 \ucd94\uac00\ud55c\ub2e4.<br \/>\n  LifeCycle.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import { useState, useEffect } from &#39;react&#39;;\n\nconst LifeCycle = () =&gt; {\n const [mount, setMount] = useState(0);\n const [rerender, setRerender] = useState(0);\n const [update, setUpdate] = useState(0);\n useEffect(() =&gt; {\n \tconsole.log(&#39;\ub9c8\uc6b4\ud2b8 \ub428&#39;);\n }, []);\n useEffect(() =&gt; {\n \tconsole.log(&#39;\ub9ac\ub80c\ub354 \ub428&#39;);\n });\n useEffect(() =&gt; {\n \tconsole.log(&#39;\uc5c5\ub370\uc774\ud2b8 \ub428&#39;);\n }, [update]);\n\n return (\n \t&lt;&gt;\n \t\t&lt;h1&gt;\n \t\t\tMount:{mount} &lt;button onClick={() =&gt; setMount((mount) =&gt; mount + 1)}&gt;click&lt;\/button&gt;\n \t\t&lt;\/h1&gt;\n \t\t&lt;h1&gt;\n \t\t\trerender:{rerender} &lt;button onClick={() =&gt; setRerender((rerender) =&gt; rerender + 1)}&gt;click&lt;\/button&gt;\n \t\t&lt;\/h1&gt;\n \t\t&lt;h1&gt;\n \t\t\tUpdate:{update} &lt;button onClick={() =&gt; setUpdate((update) =&gt; update + 1)}&gt;click&lt;\/button&gt;\n \t\t&lt;\/h1&gt;\n \t&lt;\/&gt;\n );\n};\nexport default LifeCycle;\n\n\n\n\n\n\n\n\n\n<\/code><\/pre>\n<ol>\n<li>\ubc84\ud2bc\uc744 \ubc88\uac08\uc544 \ud074\ub9ad\ud558\uba74\uc11c \ucf58\uc194\uba54\uc2dc\uc9c0\ub97c \uc0b4\ud3b4\ubcf4\uc790.<br \/>\n  \uc5c5\ub370\uc774\ud2b8 \ubc84\ud2bc \ud074\ub9ad\uc2dc update \ubcc0\uc218\uc758 \uac12\uc774 \ubcc0\uacbd\ub418\uc5c8\uae30 \ub54c\ubb38\uc5d0 \ucef4\ud3ec\ub10c\ud2b8\uc758 \ub9ac\ub80c\ub354\ud6c4 \uc5c5\ub370\uc774\ud2b8\uac00 \uc2e4\ud589\ub41c\ub2e4.<br \/>\n  \uadf8\ub798\uc11c \ucf58\uc194\uba54\uc2dc\uc9c0\ub294 \ub9ac\ub80c\ub354\ub428-&gt;\uc5c5\ub370\uc774\ud2b8\ub428 \uc774 \ud655\uc778\ub41c\ub2e4.<br \/>\n  <strong>useEffect\uc758 \uc758\uc874\uc131\ubc30\uc5f4\uc5d0 \uac12\uc744 \ub123\uc73c\uba74 \ud574\ub2f9 \uac12\uc774 \uc5c5\ub370\uc774\ud2b8 \ub420\ub54c \uc2e4\ud589\ub41c\ub2e4.<\/strong><\/li>\n<\/ol>\n<hr>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#3214-unmount-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8%EA%B0%80-%EC%82%AC%EB%9D%BC%EC%A7%88%EB%95%8C-%EC%8B%A4%ED%96%89\"><strong>#<\/strong><\/a><strong>3.2.1.4. UnMount-\ucef4\ud3ec\ub10c\ud2b8\uac00 \uc0ac\ub77c\uc9c8\ub54c \uc2e4\ud589<\/strong><br \/>\n<strong>[UnMount] \uc758\uc874\uc131\ubc30\uc5f4 \ube44\uc6c0 &amp; return<\/strong><\/p>\n<pre><code class=\"language-javascript\">useEffect(() =&gt; {\n\treturn; \/\/\uc2e4\ud589\ubb38\n}, []);\n<\/code><\/pre>\n<p>\ube48 \uc758\uc874\uc131 \ubc30\uc5f4\uacfc \ub9ac\ud134\ubb38\uc5d0 \ud568\uc218\ub97c \uc791\uc131\ud558\uba74 \ucef4\ud3ec\ub10c\ud2b8 \uc18c\uba78\uc2dc \ud574\ub2f9\ud568\uc218\ub97c \uc2e4\ud589\ud558\uac8c \ub41c\ub2e4.<\/p>\n<ol>\n<li>UnMount \ucef4\ud3ec\ub10c\ud2b8\ub97c LifeCycle\uc5d0 \uc911\ucca9\ud558\uc5ec \uc791\uc131\ud55c\ub2e4.<br \/>\n  LifeCycle.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">import { useState, useEffect } from &#39;react&#39;;\n\nconst UnMount = () =&gt; {\n console.log(&#39;\ud0c0\uc774\uba38\uc900\ube44\uc911&#39;);\n useEffect(() =&gt; {\n \tconst timer = setInterval(() =&gt; {\n \t\tconsole.log(&#39;\ud0c0\uc774\uba38\uc9c4\ud589\uc911&#39;);\n \t}, 1000);\n });\n return &lt;p&gt;\ud0c0\uc774\uba38\uc9c4\ud589\uc911&lt;\/p&gt;;\n};\n\nconst LifeCycle = () =&gt; {\n...\n return (\n \t&lt;&gt;\n...\n \t\t&lt;UnMount \/&gt;\n \t&lt;\/&gt;\n...\n<\/code><\/pre>\n<ol>\n<li>\ucf58\uc194\ucc3d\uc5d0\uc11c\ub97c \ud655\uc778\ud558\uba74 \ucd08\ub2e8\uc704\ub85c \uacc4\uc18d \uba54\uc2dc\uc9c0\uac00 \uc2e4\ud589\ub418\ub294\uac83\uc744 \ud655\uc778\ud55c\ub2e4.<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-25.jpg\" alt=\"\"><\/p>\n<ol>\n<li>\ud0c0\uc774\uba38\ub97c \uc885\ub8cc\ud558\ub294 \ubc84\ud2bc\uc744 \ucd94\uac00\ud574\ubcf4\uc790. LifeCycle \ucef4\ud3ec\ub10c\ud2b8 \ub0b4\uc5d0 \uc791\uc131\ud55c\ub2e4.<br \/>\n  <a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A6%AC%EC%95%A1%ED%8A%B8%EC%A2%80%ED%95%B4%EB%9D%BC\/7\/\"><strong>\ud83d\udd17\ub3d9\uc801\uc2a4\ud0c0\uc77c&amp;\uc870\uac74\ubd80\ub80c\ub354\ub9c1 \uac15\uc758 \ub9c1\ud06c<\/strong><\/a><br \/>\n  LifeCycle.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">const [stop, setStop] = useState(false);\n...\n<\/code><\/pre>\n<p>  1<\/p>\n<ol>\n<li><code>return<\/code>\ubb38 \ub0b4\uc5d0 \uc791\uc131\ud55c\ub2e4.<br \/>\n  LifeCycle.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">&lt;div&gt;\n {!stop ? &lt;UnMount \/&gt; : &quot;\ud0c0\uc774\uba38\uc900\ube44\uc911&quot;}\n &lt;button onClick={() =&gt; setStop(!stop)}&gt;stop&lt;\/button&gt;\n&lt;\/div&gt;\n...\n<\/code><\/pre>\n<ol>\n<li>\uc2e4\ud589\ud654\uba74\uc5d0\uc11c stop \ud074\ub9ad\uc2dc \ud654\uba74\uc740 \uc5c5\ub370\uc774\ud2b8 \ub418\ub098 \ucf58\uc194\uba54\uc2dc\uc9c0\ub294 \uacc4\uc18d \uc9c4\ud589 \ub418\uace0 \uc788\ub2e4.<\/li>\n<\/ol>\n<p><img decoding=\"async\" src=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/5-26.jpg\" alt=\"\"><\/p>\n<ol>\n<li>\uc774\uc81c \uc815\ub9ac\ud568\uc218\ub97c \uc791\uc131\ud55c\ub2e4.\u00a0<code>UnMount<\/code>\u00a0\ucef4\ud3ec\ub10c\ud2b8\uc758 useEffect \ud568\uc218\uc5d0 \uc791\uc131\ud574\uc57c \ud55c\ub2e4.<br \/>\n  LifeCycle.js<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">const UnMount = () =&gt; {\n console.log(&#39;\ud0c0\uc774\uba38\uc900\ube44\uc911&#39;);\n useEffect(() =&gt; {\n \tconst timer = setInterval(() =&gt; {\n \t\tconsole.log(&#39;\ud0c0\uc774\uba38\uc9c4\ud589\uc911&#39;);\n \t}, 1000);\n \treturn () =&gt; {\n \t\tconsole.log(&#39;\ud0c0\uc774\uba38\uc885\ub8cc&#39;);\n \t\tclearInterval(timer);\n \t};\n }, []);\n return &lt;p&gt;\ud0c0\uc774\uba38\uc9c4\ud589\uc911&lt;\/p&gt;;\n};\n\n\n\n\n\n<\/code><\/pre>\n<ol>\n<li>\uc774\uc81c stop \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uba74 \uc2e4\ud589\ud654\uba74\uacfc \ucf58\uc194\uba54\uc2dc\uc9c0\uac00 \ubaa8\ub450 \uc885\ub8cc \ub418\uc5c8\ub2e4.<\/li>\n<\/ol>\n<h3><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#4-%EA%B4%80%EB%A0%A8%EC%98%81%EC%83%81%EB%A7%81%ED%81%AC\"><strong>#<\/strong><\/a><strong>4. \uad00\ub828\uc601\uc0c1\ub9c1\ud06c<\/strong><\/h3>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#41-%EB%A6%AC%EC%95%A1%ED%8A%B8%EC%9D%98-%EC%9D%B4%EB%B2%A4%ED%8A%B8\"><strong>#<\/strong><\/a><strong>4.1. \ub9ac\uc561\ud2b8\uc758 \uc774\ubca4\ud2b8<\/strong><br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A6%AC%EC%95%A1%ED%8A%B8%EC%A2%80%ED%95%B4%EB%9D%BC\/4\/\"><strong>\uc774\ubca4\ud2b8<\/strong><\/a><br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#42-%EC%A1%B0%EA%B1%B4%EB%B6%80%EB%A0%8C%EB%8D%94%EB%A7%81\"><strong>#<\/strong><\/a><strong>4.2. \uc870\uac74\ubd80\ub80c\ub354\ub9c1<\/strong><br \/>\n<a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A6%AC%EC%95%A1%ED%8A%B8%EC%A2%80%ED%95%B4%EB%9D%BC\/7\/\"><strong>\ub3d9\uc801\uc2a4\ud0c0\uc77c&amp;\uc870\uac74\ubd80\ub80c\ub354\ub9c1<\/strong><\/a><\/p>\n<h3><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#5-%EC%97%AC%EA%B8%B0%EA%B9%8C%EC%A7%80-%EA%B9%83%ED%97%88%EB%B8%8C%EC%97%90-%EC%98%AC%EB%A6%AC%EA%B8%B0\"><strong>#<\/strong><\/a><strong>5. \uc5ec\uae30\uae4c\uc9c0 \uae43\ud5c8\ube0c\uc5d0 \uc62c\ub9ac\uae30<\/strong><\/h3>\n<pre><code class=\"language-text\">git add .\ngit commit -m &quot;05 \ub9ac\uc561\ud2b8 \ud6c5&quot;\ngit push origin main\n<\/code><\/pre>\n<h3><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/5\/#6-%EC%99%84%EB%A3%8C%ED%8C%8C%EC%9D%BC\"><strong>#<\/strong><\/a><strong>6. \uc644\ub8cc\ud30c\uc77c<\/strong><\/h3>\n<p><a href=\"https:\/\/qwerewqwerew.github.io\/retype-react\/%EB%A0%88%EC%8B%9C%ED%94%BC%EC%95%B1\/assets\/05\/05_fin.zip\"><strong>\uc720\ud29c\ube0c\uac15\uc758 \uc644\ub8cc \ud30c\uc77c<\/strong><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>3\ucc28\uc2dc \ucef4\ud3ec\ub10c\ud2b8\uc758 props \ub97c \uae30\uc5b5 \ud560 \uac83\uc774\ub2e4. props\ub780 \ucef4\ud3ec\ub10c\ud2b8 \uac04 \uc8fc\uace0\ubc1b\ub294 \ub370\uc774\ud130\uc774\uba70 \ubd80\ubaa8\uac00 \uc790\uc2dd\uc5d0\uac8c \uc804\ub2ec\ud560\uc218 \uc788\ub2e4\uace0 \ubc30\uc6e0\ub2e4. \uc608\uc2dc\ub85c \uc5ec\ub7ec \uce5c\uad6c\ub97c \ucd08\ub300\ud558\uace0 \ud55c \ud14c\uc774\ube14 \uc704 3\uac1c\uc758 \ub3d9\uc77c\ud55c \uc811\uc2dc\uc5d0 3\uc885\ub958\uc758 \uac01\uae30 \ub2e4\ub978 \uc74c\uc2dd\uc744 \uc804\ub2ec\ud558\ub294 \uc0ac\ub840\ub97c \ub4e4\uc5b4 \uc124\uba85\ud558\uc600\ub2e4.\u00a0\ud83d\udd17\u00a0\uc601\uc0c1\ub9c1\ud06c 18:29 \uadf8\ub9bc 1\u00a0\uc744 \ub9ac\uc561\ud2b8 \ucef4\ud3ec\ub10c\ud2b8\ub85c \uad6c\ud604 \ud560 \uacbd\uc6b0\u00a0\uadf8\ub9bc 2\u00a0\uc758 \uad6c\uc870\uac00 \ub420 \uac83 \uc774\ub2e4. \ud584\ubc84\uac70,\ub538\uae30,\uc0ac\uacfc\ub294 \ucef4\ud3ec\ub10c\ud2b8\ub85c \uc804\ub2ec\ub418\ub294 props \uc989 \uc18d\uc131\uc758 \uac12\uc774 &#8230; <a title=\"\ucef4\ud3ec\ub10c\ud2b8-\ub370\uc774\ud130\uad00\ub9ac\" class=\"read-more\" href=\"https:\/\/coalacoding.com\/?p=172\" aria-label=\"\ucef4\ud3ec\ub10c\ud2b8-\ub370\uc774\ud130\uad00\ub9ac\uc5d0 \ub300\ud574 \ub354 \uc790\uc138\ud788 \uc54c\uc544\ubcf4\uc138\uc694\">\ub354 \uc77d\uae30<\/a><\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-172","post","type-post","status-publish","format-standard","hentry","category-react-basics"],"_links":{"self":[{"href":"https:\/\/coalacoding.com\/index.php?rest_route=\/wp\/v2\/posts\/172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/coalacoding.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coalacoding.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/coalacoding.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=172"}],"version-history":[{"count":1,"href":"https:\/\/coalacoding.com\/index.php?rest_route=\/wp\/v2\/posts\/172\/revisions"}],"predecessor-version":[{"id":2239,"href":"https:\/\/coalacoding.com\/index.php?rest_route=\/wp\/v2\/posts\/172\/revisions\/2239"}],"wp:attachment":[{"href":"https:\/\/coalacoding.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coalacoding.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coalacoding.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}