diff --git a/June/article/4-useState-Mistakes-You-Should-Avoid-in-React.md b/June/article/4-useState-Mistakes-You-Should-Avoid-in-React.md
new file mode 100644
index 0000000..b68e3d9
--- /dev/null
+++ b/June/article/4-useState-Mistakes-You-Should-Avoid-in-React.md
@@ -0,0 +1,252 @@
+## π [4 useState Mistakes You Should Avoid in Reactπ«](https://medium.com/gitconnected/4-usestate-mistakes-you-should-avoid-in-react-0d9d676869e2)
+
+### ποΈ λ²μ λ μ§: 2024.06.10
+
+### π§ λ²μν ν¬λ£¨: μν(μ΅μμ°)
+
+---
+
+## Reactμμ νΌν΄μΌ ν 4κ°μ§ `useState` μ€μπ«
+
+#### μκ°
+
+리μ‘νΈ(React.js)λ μ»΄ν¬λνΈ λ΄ μν κ΄λ¦¬μ λν λ
νΉν μ κ·Ό λ°©μμΌλ‘ νλ μΉ κ°λ°μ μ΄μμ΄ λμμ΅λλ€. μΌλ°μ μΈ ν
μ€ νλμΈ useStateλ κΈ°λ³Έμ μ΄μ§λ§ μ’
μ’
μλͺ» μ¬μ©λ©λλ€. ν¨μ¨μ μ΄κ³ λ²κ·Έ μλ μ ν리μΌμ΄μ
μ λ§λ€κ³ μ νλ μ΄λ³΄μμ κ²½νμ΄ νλΆν κ°λ°μ λͺ¨λμκ² μ΄λ¬ν μΌλ°μ μΈ μ€μλ₯Ό μ΄ν΄νκ³ νΌνλ κ²μ λ§€μ° μ€μν©λλ€.
+
+μ΄ λΈλ‘κ·Έμμλ 리μ‘νΈμμ useStateλ₯Ό μ¬μ©ν λ νΌν΄μΌ ν λ€ κ°μ§ μ€μν μ€μλ₯Ό μμΈν μ΄ν΄λ³΄κ² μ΅λλ€. ν¨κ» 리μ‘νΈ κΈ°μ μ ν₯μμμΌ λ΄
μλ€!
+
+본격μ μΌλ‘ μ΄ν΄λ³΄κΈ° μ μ [μ κ°μΈ μΉμ¬μ΄νΈ](https://programwithjayanth.com/?source=post_page-----0d9d676869e2--------------------------------)μμ μΉ κ°λ°μ λν λ³΄λ€ μ¬μΈ΅μ μΈ κΈ°μ¬λ₯Ό μ΄ν΄λ³΄μΈμ:
+
+#### μ€μ 1: μ΄μ μνλ₯Ό κ³ λ €νμ§ μμ π¨
+
+Reactμ useState ν
μ μ¬μ©ν λ κ°μ₯ μ΅κ·Όμ μνλ₯Ό μ
λ°μ΄νΈν λ μ΄μ μνλ₯Ό κ³ λ €νμ§ μλ κ²μ νν μ€μμ
λλ€. μ΄λ¬ν μ€μλ νΉν λΉ λ₯Έ λλ μ¬λ¬ μν μ
λ°μ΄νΈλ₯Ό μ²λ¦¬ν λ μμμΉ λͺ»ν λμμ μ΄λν μ μμ΅λλ€.
+
+#### β λ¬Έμ μ΄ν΄
+
+Reactμμ μΉ΄μ΄ν°λ₯Ό λ§λ λ€κ³ κ°μ ν΄ λ΄
μλ€. λ²νΌμ ν΄λ¦ν λλ§λ€ μΉ΄μ΄νΈλ₯Ό μ¦κ°μν€λ κ²μ΄ λͺ©νμ
λλ€. κ°λ¨ν μ κ·Ό λ°©λ²μ νμ¬ μν κ°μ 1μ λνλ κ²μΌ μ μμ΅λλ€. κ·Έλ¬λ μ΄κ²μ λ¬Έμ κ° λ μ μμ΅λλ€.
+
+```jsx
+import React, { useState } from 'react';
+
+const CounterComponent = () => {
+ const [counter, setCounter] = useState(0);
+
+ const incrementCounter = () => {
+ setCounter(counter + 1); // νμ μμλλ‘ μλνμ§ μμ μ μμ΅λλ€.
+ };
+
+ return (
+
+
Counter: {counter}
+
+
+ );
+};
+
+export default CounterComponent;
+```
+
+μμ μ½λμμ incrementCounterλ νμ¬ κ°μ κΈ°λ°μΌλ‘ μΉ΄μ΄ν°λ₯Ό μ
λ°μ΄νΈν©λλ€. μ΄κ²μ κ°λ¨ν΄ 보μ΄μ§λ§ λ¬Έμ λ₯Ό μΌμΌν¬ μ μμ΅λλ€. Reactλ μ¬λ¬ setCounter νΈμΆμ ν¨κ» λ¬Άκ±°λ λ€λ₯Έ μν μ
λ°μ΄νΈκ° κ°μνμ¬ μΉ΄μ΄ν°κ° λ§€λ² μ¬λ°λ₯΄κ² μ
λ°μ΄νΈλμ§ μμ μ μμ΅λλ€.
+
+#### β
μμ :
+
+μ΄λ¬ν λ¬Έμ λ₯Ό νΌνκΈ° μν΄ setCounter λ©μλμ ν¨μνμ μ¬μ©νμΈμ. μ΄ λ²μ μ Reactκ° κ°μ₯ μ΅κ·Όμ μν κ°μΌλ‘ νΈμΆνλ ν¨μλ₯Ό μΈμλ‘ λ°μ΅λλ€. μ΄λ κ² νλ©΄ νμ μ΅μ μν κ°μΌλ‘ μμ
ν μ μμ΅λλ€.
+
+```jsx
+import React, { useState } from 'react';
+
+const CounterComponent = () => {
+ const [counter, setCounter] = useState(0);
+
+ const incrementCounter = () => {
+ setCounter((prevCounter) => prevCounter + 1); // κ°μ₯ μ΅κ·Όμ μνμ λ°λΌ μ¬λ°λ₯΄κ² μ
λ°μ΄νΈλ©λλ€.
+ };
+
+ return (
+
+
Counter: {counter}
+
+
+ );
+};
+
+export default CounterComponent;
+```
+
+μμ λ μ½λμμλ incrementCounterκ° μνλ₯Ό μ
λ°μ΄νΈνλ λ° ν¨μλ₯Ό μ¬μ©ν©λλ€. μ΄ ν¨μλ κ°μ₯ μ΅κ·Όμ μν(prevCounter)λ₯Ό λ°μ μ
λ°μ΄νΈλ μνλ₯Ό λ°νν©λλ€. μ΄ μ κ·Ό λ°©μμ νΉν μ
λ°μ΄νΈκ° λΉ λ₯΄κ² μΌμ΄λκ±°λ μ°μμ μΌλ‘ μ¬λ¬ λ² λ°μν λ ν¨μ¬ λ μ λ’°μ±μ΄ λμ΅λλ€.
+
+React JS μ€μκ° κ΅μ‘μ κ΄μ¬μ΄ μλ€λ©΄ μμΈν λ΄μ©μ μ μκ² λ¬Έμν΄ μ£ΌμΈμ.
+
+#### μ€μ 2: μν λΆλ³μ± 무μ π§
+
+#### β λ¬Έμ μ΄ν΄
+
+Reactμμλ μνλ₯Ό λΆλ³μΌλ‘ μ·¨κΈν΄μΌ ν©λλ€. νν μ€μλ κ°μ²΄μ λ°°μ΄κ³Ό κ°μ 볡μ‘ν λ°μ΄ν° κ΅¬μ‘°λ‘ μνλ₯Ό μ§μ μμ νλ κ²μ
λλ€.
+
+μν κ°μ²΄μ λν μλͺ»λ μ κ·Ό λ°©μμ κ³ λ €ν΄ λ΄
μλ€:
+
+```jsx
+import React, { useState } from 'react';
+
+const ProfileComponent = () => {
+ const [profile, setProfile] = useState({ name: 'John', age: 30 });
+
+ const updateAge = () => {
+ profile.age = 31; // μ§μ μν μμ
+ setProfile(profile);
+ };
+
+ return (
+
+
Name: {profile.name}
+
Age: {profile.age}
+
+
+ );
+};
+
+export default ProfileComponent;
+```
+
+μ΄ μ½λλ profile κ°μ²΄λ₯Ό μλͺ» μμ ν©λλ€. μ΄λ¬ν μμ μ μ¬λ λλ§μ νΈλ¦¬κ±°νμ§ μμΌλ©° μμΈ‘ν μ μλ λμμ μ΄λν©λλ€.
+
+#### β
μμ :
+
+μνλ₯Ό μ
λ°μ΄νΈν λλ νμ λΆλ³μ±μ μ μ§νκΈ° μν΄ μ κ°μ²΄ λλ λ°°μ΄μ μμ±νμΈμ. μ΄λ₯Ό μν΄ μ€νλ λ μ°μ°μλ₯Ό μ¬μ©νμΈμ.
+
+```jsx
+import React, { useState } from 'react';
+
+const ProfileComponent = () => {
+ const [profile, setProfile] = useState({ name: 'John', age: 30 });
+
+ const updateAge = () => {
+ setProfile({ ...profile, age: 31 }); // μ¬λ°λ₯΄κ² μν μ
λ°μ΄νΈ
+ };
+
+ return (
+
+
Name: {profile.name}
+
Age: {profile.age}
+
+
+ );
+};
+
+export default ProfileComponent;
+```
+
+μμ λ μ½λμμ updateAgeλ μν λΆλ³μ±μ μ μ§νλ©΄μ μ
λ°μ΄νΈλ λμ΄λ‘ μ profile κ°μ²΄λ₯Ό μμ±νκΈ° μν΄ μ€νλ λ μ°μ°μλ₯Ό μ¬μ©ν©λλ€.
+
+#### μ€μ 3: λΉλκΈ° μ
λ°μ΄νΈ μ΄ν΄ λΆμ‘± β³
+
+#### β λ¬Έμ μ΄ν΄
+
+useStateλ₯Ό ν΅ν Reactμ μν μ
λ°μ΄νΈλ λΉλκΈ°μ μ
λλ€. νΉν μ¬λ¬ μν μ
λ°μ΄νΈκ° λΉ λ₯Έ μ°μμΌλ‘ μ΄λ£¨μ΄μ§ λ, μ΄λ μ’
μ’
νΌλμ μ΄λν©λλ€. κ°λ°μλ setState νΈμΆ μ§ν μνκ° μ¦μ λ³κ²½λ κ²μΌλ‘ μμν μ μμ§λ§, μ€μ λ‘λ Reactκ° μ±λ₯μμ μ΄μ λ‘ μ΄λ¬ν μ
λ°μ΄νΈλ₯Ό μΌκ΄ μ²λ¦¬ν©λλ€.
+
+μ΄λ¬ν μ€ν΄κ° λ¬Έμ λ₯Ό μΌμΌν¬ μ μλ μΌλ°μ μΈ μλ리μ€λ₯Ό μ΄ν΄λ΄
μλ€.
+
+```jsx
+import React, { useState } from 'react';
+
+const AsyncCounterComponent = () => {
+ const [count, setCount] = useState(0);
+
+ const incrementCount = () => {
+ setCount(count + 1);
+ setCount(count + 1);
+ // κ°λ°μλ countκ° λ λ² μ¦κ°ν κ²μ μμ
+ };
+
+ return (
+
+
Count: {count}
+
+
+ );
+};
+
+export default AsyncCounterComponent;
+```
+
+μ΄ μμ μμ κ°λ°μλ countλ₯Ό λ λ² μ¦κ°μν€λ €κ³ ν©λλ€. κ·Έλ¬λ μν μ
λ°μ΄νΈμ λΉλκΈ°μ νΉμ±μΌλ‘ μΈν΄ λ setCount νΈμΆμ λͺ¨λ λμΌν μ΄κΈ° μνλ₯Ό κΈ°λ°μΌλ‘ νλ―λ‘ countκ° ν λ²λ§ μ¦κ°ν©λλ€.
+
+#### β
μμ :
+
+λΉλκΈ° μ
λ°μ΄νΈλ₯Ό μ¬λ°λ₯΄κ² μ²λ¦¬νλ €λ©΄ setCountμ ν¨μν μ
λ°μ΄νΈ νμμ μ¬μ©νμΈμ. μ΄λ κ² νλ©΄ κ° μ
λ°μ΄νΈκ° κ°μ₯ μ΅κ·Όμ μνλ₯Ό κΈ°λ°μΌλ‘ μνλ©λλ€.
+
+```jsx
+import React, { useState } from 'react';
+
+const AsyncCounterComponent = () => {
+ const [count, setCount] = useState(0);
+
+ const incrementCount = () => {
+ setCount((prevCount) => prevCount + 1);
+ setCount((prevCount) => prevCount + 1);
+ // μ΄μ κ° μ
λ°μ΄νΈλ κ°μ₯ μ΅κ·Ό μνμ μ¬λ°λ₯΄κ² μμ‘΄
+ };
+ // μ νμ¬ν: useEffectλ₯Ό μ¬μ©νμ¬ μ
λ°μ΄νΈ λ μν νμΈ
+ useEffect(() => {
+ console.log(count); // 2
+ }, [count]);
+
+ return (
+
+
Count: {count}
+
+
+ );
+};
+
+export default AsyncCounterComponent;
+```
+
+μμ μ½λμμ κ° setCount νΈμΆμ μνμ κ°μ₯ μ΅κ·Ό κ°μ μ¬μ©νμ¬ μ ννκ³ μμ°¨μ μΈ μ
λ°μ΄νΈλ₯Ό 보μ₯ν©λλ€. νΉν μ¬λ¬ μν μ
λ°μ΄νΈκ° μ°μμ μΌλ‘ λΉ λ₯΄κ² λ°μν λ νμ¬ μνμ μμ‘΄νλ μμ
μλ μ΄ μ κ·Ό λ°©μμ΄ λ§€μ° μ€μν©λλ€.
+
+#### μ€μ 4: νμ λ°μ΄ν°μ λν μν μ€μ© π
+
+#### β λ¬Έμ μ΄ν΄
+
+κΈ°μ‘΄ μν λλ propsμμ νμ λ μ μλ λ°μ΄ν°μ μνλ₯Ό μ¬μ©νλ κ²μ λΉλ²ν μ€λ₯μ
λλ€. μ΄ μ€λ³΅ μνλ 볡μ‘νκ³ μ€λ₯κ° λ°μνκΈ° μ¬μ΄ μ½λλ₯Ό μ΄λν μ μμ΅λλ€.
+
+μλ₯Ό λ€μ΄:
+
+```jsx
+import React, { useState } from 'react';
+
+const GreetingComponent = ({ name }) => {
+ const [greeting, setGreeting] = useState(`Hello, ${name}`);
+
+ return {greeting}
;
+};
+
+export default GreetingComponent;
+```
+
+μ¬κΈ°μ greeting μνλ nameμμ μ§μ νμ λ μ μμΌλ―λ‘ λΆνμν©λλ€.
+
+#### β
μμ :
+
+μνλ₯Ό μ¬μ©νλ λμ , κΈ°μ‘΄ μν λλ propsμμ λ°μ΄ν°λ₯Ό μ§μ νμμν€μΈμ.
+
+```jsx
+import React from 'react';
+
+const GreetingComponent = ({ name }) => {
+ const greeting = `Hello, ${name}`; // propsμμ μ§μ νμ
+
+ return {greeting}
;
+};
+
+export default GreetingComponent;
+```
+
+μμ λ μ½λμμλ greetingμ name propμμ μ§μ κ³μ°λλ―λ‘ μ»΄ν¬λνΈκ° λ¨μνλκ³ λΆνμν μν κ΄λ¦¬λ₯Ό νΌν μ μμ΅λλ€.
+
+#### κ²°λ‘ π
+
+Reactμμ useState ν
μ ν¨κ³Όμ μΌλ‘ μ¬μ©νλ κ²μ μ λ’°μ± μκ³ ν¨μ¨μ μΈ μ ν리μΌμ΄μ
μ ꡬμΆνλ λ° λ§€μ° μ€μν©λλ€. μ΄μ μν 무μ, μν λΆλ³μ± κ΄λ¦¬ μ€λ₯, λΉλκΈ° μ
λ°μ΄νΈ κ°κ³Ό, νμ λ°μ΄ν°μ λν μ€λ³΅ μν λ°©μ§μ κ°μ μΌλ°μ μΈ μ€μλ₯Ό μ΄ν΄νκ³ νΌν¨μΌλ‘μ¨ λ³΄λ€ λ§€λλ½κ³ μμΈ‘ κ°λ₯ν μ»΄ν¬λνΈ λμμ 보μ₯ν μ μμ΅λλ€. μ΄λ¬ν μΈμ¬μ΄νΈλ₯Ό μΌλμ λκ³ React κ°λ° μ¬μ μ ν₯μμν€κ³ λ³΄λ€ κ²¬κ³ ν μ ν리μΌμ΄μ
μ λ§λ€μ΄λ³΄μΈμ.
+
+μ΄ κΈμ΄ λ§μμ λμ
¨λμ? μΉ κ°λ°μ λν μ¬μΈ΅μ μΈ ν λ‘ κ³Ό μΈμ¬μ΄νΈλ₯Ό λ³΄λ €λ©΄ μ κ°μΈ λΈλ‘κ·ΈμΈ Program With Jayanth λ₯Ό λ°©λ¬Έν΄μ£ΌμΈμ.
+
+Happy Coding!!