๋ฆฌ์กํธ์ ์คํ์ Scope Boundary๋ฅผ ํตํด ํฅ์๋ ์ค์ฝํ ๊ฒฉ๋ฆฌ๋ฅผ ์์๋ณด๊ณ , ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ธก ๊ฐ๋ฅ์ฑ, ์ฑ๋ฅ, ์ ์ง๋ณด์์ฑ์ ๋์ฌ๋ณด์ธ์.
๋ฆฌ์กํธ์ ์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ(Scope Boundary) ๊ณต๊ฐ: ์ค์ฝํ ๊ฒฉ๋ฆฌ ๊ด๋ฆฌ ์ฌ์ธต ๋ถ์
๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ, ํนํ ๋ฆฌ์กํธ ์ํ๊ณ์์ ๊ฐ๋ฐ์๋ค์ ๋ ๊ฒฌ๊ณ ํ๊ณ ์์ธก ๊ฐ๋ฅํ๋ฉฐ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๋ฐฉ๋ฒ์ ๋์์์ด ๋ชจ์ํ๊ณ ์์ต๋๋ค. ๋ฆฌ์กํธ๋ ์ค๋ซ๋์ ์ ์ธ์ UI ๊ฐ๋ฐ์ ์ ๋ ์ฃผ์์์ง๋ง, ๋ค๋ฅธ ๋ณต์กํ ํ๋ ์์ํฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฏธ๋ฌํ ๋ถ๋ถ๋ค์ด ์์ต๋๋ค. ๊ทธ์ค์์๋ ์ปดํฌ๋ํธ ๋ฆฌ๋ ๋๋ง, ๊ฐ๋ณ ์ํ, ์ฌ์ด๋ ์ดํํธ๋ฅผ ๋ค๋ฃฐ ๋ ํนํ ์ด๋ ค์์ ๊ฒช๋ ์์ญ์ด ๋ฐ๋ก ์ค์ฝํ ๊ด๋ฆฌ์ ๋๋ค. ์ด์ ๋ฆฌ์กํธ์ ์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ(Scope Boundary)๊ฐ ๋ฑ์ฅํ์ต๋๋ค. ์ด๋ ์ค์ฝํ ๊ฒฉ๋ฆฌ ๊ด๋ฆฌ์ ์๋ก์ด ์ฐจ์์ ์๊ฒฉํจ์ ๋ํ์ฌ ์ ์ธ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ก ์๋ ์์ธก ๊ฐ๋ฅ์ฑ๊ณผ ์ต์ ํ ์ ์ฌ๋ ฅ์ ์ด์ด์ค ๊ฒ์ผ๋ก ๊ธฐ๋๋๋ ํต์ฌ ๊ฐ๋ ์ ๋๋ค.
์ด ์ข ํฉ ๊ฐ์ด๋์์๋ ๋ฆฌ์กํธ์ ์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ์ ๋ณธ์ง์ ๊น์ด ํ๊ณ ๋ค์ด, ์ด๊ฒ์ด ํด๊ฒฐํ๊ณ ์ ํ๋ ๋ฌธ์ , ์ ์ฌ์ ์ด์ , ๊ทธ๋ฆฌ๊ณ ์ ์ธ๊ณ์ ์ผ๋ก ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ ๋ฐฉ์์ ๋ฏธ์น ํ์ ์ ์ธ ์ํฅ์ ํ๊ตฌํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ ๊ธฐ์ ์ ์๋ ์์น, ์ค์ ์ ํจ์, ๊ทธ๋ฆฌ๊ณ ์ด ๊ธฐ๋ฅ์ด ํ๋ ์์ํฌ์ ๊ฐ์ ธ์ฌ ํฅ๋ฏธ๋ก์ด ๋ฏธ๋๋ฅผ ์ดํด๋ณผ ๊ฒ์ ๋๋ค.
๊ทผ๋ณธ์ ์ธ ๊ณผ์ : ์ต์ UI ๊ฐ๋ฐ์์ ์ค์ฝํ ์ดํดํ๊ธฐ
ํด๊ฒฐ์ฑ ์ ํ๊ตฌํ๊ธฐ์ ์์, ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ , ํนํ ๋ฆฌ์กํธ์ ๊ฐ์ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ํ๋ ์์ํฌ์์ ์ค์ฝํ๊ฐ ์ผ๊ธฐํ๋ ๋ด์ฌ์ ๊ณผ์ ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ค์ฝํ๋ ์ฝ๋์ ํน์ ๋ถ๋ถ์์ ๋ณ์, ํจ์, ๊ฐ์ฒด์ ์ ๊ทผ์ฑ์ ์ ์ํฉ๋๋ค. ์ด๋ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ์ด์ง๋ง, ๊ทธ ๋ฏธ๋ฌํจ ๋๋ฌธ์ ๋ณต์กํ ๋ฒ๊ทธ์ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
์ผ๋ฐ์ ์ธ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํด ๋ด ์๋ค. ์ปดํฌ๋ํธ๋ ์คํ๋๊ณ , JSX๋ฅผ ๊ณ์ฐํ๋ฉฐ, ์ ์ฌ์ ์ผ๋ก ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ ๋ฐํ๋ ํจ์์ ๋๋ค. ์ปดํฌ๋ํธ๊ฐ ๋ฆฌ๋ ๋๋ง๋ ๋๋ง๋ค ์ด ํจ์๋ ๋ค์ ์คํ๋ฉ๋๋ค. ์ปดํฌ๋ํธ์ ๋ ๋ ํจ์(๋๋ ํ ) ๋ด์ ์ ์ธ๋ ๋ณ์๋ค์ ํด๋น ํน์ ๋ ๋์ ์ค์ฝํ์ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํด๋ก์ , ๊ฐ๋ณ ์ฐธ์กฐ, ๊ทธ๋ฆฌ๊ณ ๋ฆฌ์กํธ์ ์ฌ์กฐ์ ํ๋ก์ธ์ค ๊ฐ์ ์ํธ์์ฉ์ ์ค์ฝํ๊ฐ ๋ชจํธํด์ง๊ฑฐ๋ ๋์๋๋ ์๋๋ฆฌ์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
-
์ค๋๋ ํด๋ก์ (Stale Closures): ํํ ํจ์ ์ค ํ๋๋ ํจ์(์: ์ด๋ฒคํธ ํธ๋ค๋ฌ ๋๋
useEffect์ ์ ๋ฌ๋ ์ฝ๋ฐฑ)๊ฐ ๋ฆฌ๋ ๋๋ง ์ฌ์ด์ ๋ณ๊ฒฝ๋๋ ๋ณ์๋ฅผ ํด๋ก์ ๋ก ๊ฐ๋๋ ๊ฒฝ์ฐ์ ๋๋ค.useEffect,useCallback, ๋๋useMemo์ ์์กด์ฑ ๋ฐฐ์ด๋ก ์ ์คํ๊ฒ ๊ด๋ฆฌํ์ง ์์ผ๋ฉด, ์ด๋ฌํ ํด๋ก์ ๋ '์ค๋๋' ๊ฐ์ ํฌ์ฐฉํ์ฌ ์๊ธฐ์น ์์ ๋์์ด๋ ์ถ์ ํ๊ธฐ ์ด๋ ค์ด ๋ฒ๊ทธ๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ฒคํธ ํธ๋ค๋ฌ๊ฐ ์ปดํฌ๋ํธ๊ฐ ์ ๋ฐ์ดํฐ๋ก ๋ฆฌ๋ ๋๋ง๋ ํ์๋ ์ด์ ๋ ๋๋ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์คํ๋ ์ ์์ต๋๋ค.์์: ๋ฒํผ์
onClickํธ๋ค๋ฌ๊ฐ ์์ฑ๋ ์์ ์ ๋ ๋๋ง์์count๋ณ์๋ฅผ ํฌ์ฐฉํ ์ ์์ต๋๋ค. ์ดํ ์ปดํฌ๋ํธ์ ์ํ๊ฐcount๋ฅผ ์ ๋ฐ์ดํธํ๋๋ผ๋, ํ์ ํด๋ฆญ์์๋ ๊ทธ ์ค๋๋count๊ฐ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. -
๊ณต์ ์ฐธ์กฐ์ ์๋์น ์์ ๋ณ๊ฒฝ: ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๋ฐฐ์ด์ ์ฐธ์กฐ๋ก ์ ๋ฌ๋ฉ๋๋ค. ๋ง์ฝ ์ปดํฌ๋ํธ๊ฐ prop์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋ฐ๊ฑฐ๋ state์ ๋ณด๊ดํ๊ณ ์์ ๋, (์ ๋ณต์ฌ๋ณธ์ ๋ง๋๋ ๋์ ) ํด๋น ๊ฐ์ฒด๋ฅผ ์ง์ ๋ณ๊ฒฝํ๋ฉด ๋์ผํ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ณต์ ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ค๋ฅธ ๋ถ๋ถ์์ ์๋์น ์์ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ด๋ ๋ฆฌ์กํธ์ ์
๋ฐ์ดํธ ๋ฉ์ปค๋์ฆ์ ์ฐํํ์ฌ ์ํ๋ฅผ ์์ธก ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค.
์์: ์์ ์ปดํฌ๋ํธ๊ฐ ์ค์ ๊ฐ์ฒด๋ฅผ prop์ผ๋ก ๋ฐ์ต๋๋ค. ๋ง์ฝ ์ด ์ปดํฌ๋ํธ๊ฐ ํด๋น ๊ฐ์ฒด์ ์์ฑ์ ์ง์ ์์ ํ๋ฉด, ์๋ณธ ์ค์ ๊ฐ์ฒด์ ์์กดํ๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ค์ ์ ์ ํ ์ํ ์ ๋ฐ์ดํธ ์์ด ์๊ธฐ์น ์์ ๋ณ๊ฒฝ์ ๊ฒช์ ์ ์์ต๋๋ค.
-
์๋ ๋ฉ๋ชจ์ด์ ์ด์
์ ๋ํ ๊ณผ๋ํ ์์กด: ๊ฐ๋ฐ์๋ค์ ๋ถํ์ํ ์ฌ๊ณ์ฐ์ด๋ ํจ์ ์ฌ์์ฑ์ ๋ฐฉ์งํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํ๊ธฐ ์ํด ์ข
์ข
useMemo์useCallback์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์กด์ฑ ๋ฐฐ์ด์ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ๊ณ ์ธ์ง์ ๋ถ๋ด์ ๊ฐ์ค์ํต๋๋ค. ์๋ชป๋ ์์กด์ฑ์ ์ค๋๋ ํด๋ก์ ๋ฅผ ์ ๋ฐํ๊ฑฐ๋(์์กด์ฑ์ด ๋๋ฝ๋ ๊ฒฝ์ฐ) ์ต์ ํ ํจ๊ณผ๋ฅผ ๋ฌดํจํํ ์ ์์ต๋๋ค(์์กด์ฑ์ด ๊ณผ๋ํ๊ฒ ์ง์ ๋๊ฑฐ๋ ๋๋ฌด ์์ฃผ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ).์์:
useMemo๋ก ๊ฐ์ผ ๊ณ์ฐ ๋น์ฉ์ด ๋น์ผ ํจ์๋ผ๋ ์์กด์ฑ ๋ฐฐ์ด์ด ์๋ฒฝํ๊ฒ ์ง์ ๋์ง ์์ผ๋ฉด ์ฌ์ ํ ์ฌ์คํ๋ ์ ์์ผ๋ฉฐ, ์์กด์ฑ์ด ๋๋ฝ๋๋ฉด ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ํฌ์ฐฉํ ์ ์์ต๋๋ค. -
์ฌ์ด๋ ์ดํํธ์ ์ ๋ฆฌ(Cleanup):
useEffect๋ด์์ ์ฌ์ด๋ ์ดํํธ(์: ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ, ๊ตฌ๋ , DOM ์กฐ์)์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด ์์กด์ฑ๊ณผ ์ ๋ฆฌ ํจ์์ ์ธ์ฌํ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ์ด ๋ถ๋ถ์ ์ค๋ฅ๋ ์ข ์ข ์ดํํธ๊ฐ ์ธ์ ์คํ๋๊ณ ์ฃผ๋ณ ์ค์ฝํ์์ ์ด๋ค ๊ฐ์ ํฌ์ฐฉํ๋์ง์ ๋ํ ๋ถ์ ํํ ์ดํด์์ ๋น๋กฏ๋ฉ๋๋ค.
์ด๋ฌํ ๊ณผ์ ๋ค์ ํน์ ์ง์ญ์ด๋ ํ์ ๊ตญํ๋ ๊ฒ์ด ์๋๋ผ, ์ ์ธ๊ณ ๋ฆฌ์กํธ ๊ฐ๋ฐ์๋ค์ด ๊ณตํต์ผ๋ก ๊ฒช๋ ๊ณ ์ถฉ์ ๋๋ค. ์ด๋ ๋๋ฒ๊น ์๊ฐ ์ฆ๊ฐ, ์ฝ๋ ์ ๋ขฐ์ฑ ์ ํ, ๊ทธ๋ฆฌ๊ณ ์ข ์ข ์๋ก์ด ๋ณต์ก์ฑ์ ์ ๋ฐํ์ง ์๊ณ ๋ ์ฑ๋ฅ์ ํจ๊ณผ์ ์ผ๋ก ์ต์ ํํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
๋ฆฌ์กํธ์ ์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ ์๊ฐ: ๊ทธ๊ฒ์ ๋ฌด์์ด๋ฉฐ ์ด๋ป๊ฒ ๋์์ด ๋๋๊ฐ
๋ฆฌ์กํธ์์ ์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ๋ผ๋ ๊ฐ๋ ์ ์ด๋ฌํ ๊ณผ์ ๋ค์ ์ ๋ฉด์ผ๋ก ํด๊ฒฐํ๊ธฐ ์ํ ์ค์ํ ๋์ฝ์ ์๋ฏธํฉ๋๋ค. ์ ํํ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ์์ง ๋ฐ์ ์ค์ด๊ณ ์ฃผ๋ก ๋ฆฌ์กํธ์ ์คํ์ ๋น๋ ๋ด๋ถ์ ์์ง๋ง(์ข ์ข React Forget๊ณผ ๊ฐ์ ํ๋ก์ ํธ์ ํจ๊ป ๋ ผ์๋จ), ํต์ฌ ์์ด๋์ด๋ ์ปดํฌ๋ํธ ์ค์ฝํ์ ๋ ์๊ฒฉํ๊ณ ๋ช ์์ ์ธ ๊ฒฉ๋ฆฌ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค.
'์ค์ฝํ ๊ฒฝ๊ณ'๋ ๋ฌด์์ ์๋ฏธํ๋๊ฐ?
๋ ๋๋ง ์ค ๊ฐ ์ปดํฌ๋ํธ์ ์คํ ์ปจํ ์คํธ ์ฃผ์์ ๋ช ํํ๊ณ ๋ณด์ด์ง ์๋ ์ธํ๋ฆฌ๊ฐ ์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ์ด ์ธํ๋ฆฌ๋ ํด๋น ์ปดํฌ๋ํธ์ ์ค์ฝํ ๋ด์ ์ ์๋ ๋ณ์์ ์ฐธ์กฐ(ํ ์์ ์จ ๊ฒ ํฌํจ)๊ฐ ํด๋น ํน์ ์ปดํฌ๋ํธ ์ธ์คํด์ค์ ํน์ ๋ ๋๋ง ์ฃผ๊ธฐ์ ์๊ฒฉํ๊ฒ ๊ฒฉ๋ฆฌ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด ๊ฒฉ๋ฆฌ๋ ์ด ๊ฒฝ๊ณ ์ธ๋ถ๋ ์ด์ ๋ ๋๋ง ์ฃผ๊ธฐ์ ๋ณ์๋ก๋ถํฐ์ ์๋์น ์์ ๋์๋ ๊ฐ์ญ์ ๋ฐฉ์งํฉ๋๋ค.
์ค์ฝํ ๊ฒฝ๊ณ๋ ๋ณธ์ง์ ์ผ๋ก ๋ฆฌ์กํธ(๊ทธ๋ฆฌ๊ณ ์ ์ฌ์ ์ผ๋ก React Forget๊ณผ ๊ฐ์ ์ปดํ์ผ๋ฌ)์ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ๋ ฅํ ๋ณด์ฅ์ ์ ๊ณตํฉ๋๋ค:
- ์ค์ฝํ ๋ด ๋ถ๋ณ์ฑ: ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ ๊ทผ๋ณธ์ ์ผ๋ก ๊ฐ๋ณ์ ์ด์ง๋ง, ์ด ๊ฒฝ๊ณ๋ ๊ฐ๋ ์ ์ผ๋ก ๋ ๋๋ง์ ์ํด ํ ๋ฒ ์ค์ ๋ ์ปดํฌ๋ํธ์ ๋ด๋ถ ์ํ๋ ๊ณ์ฐ๋ ๊ฐ์ด ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ์ธ๋ถ ์์ธ์ด๋ ์ค๋๋ ์ฐธ์กฐ์ ์ํด ์ฐ์ฐํ ๋ณ๊ฒฝ๋์ง ์๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.
- ์ฐธ์กฐ ์์ ์ฑ: ์ด๋ ์ด๋ค ๊ฐ์ด ๋ ๋๋ง ๊ฐ์ ์ค์ ๋ก ๋ณ๊ฒฝ๋๊ณ , ์ด๋ค ๊ฐ์ด ๊ฐ๋ ์ ์ผ๋ก๋ ๋ด์ฉ์ด ๋น์ทํ๋๋ผ๋ ์ฐธ์กฐ์ ์ผ๋ก ์์ ์ ์ธ์ง๋ฅผ ํ๋จํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด๊ฒ์ ์ต์ ํ์ ๋งค์ฐ ์ค์ํฉ๋๋ค.
- ์์กด์ฑ ์ธ์: ์ฝ๋ ์กฐ๊ฐ์ '์ง์ง' ์์กด์ฑ์ ์ดํดํจ์ผ๋ก์จ, ์ด ๊ฒฝ๊ณ๋ ๋ฆฌ์กํธ๊ฐ ๊ฐ๋ฐ์๊ฐ ๋ชจ๋ ์์กด์ฑ ๋ฐฐ์ด์ ๊ณ ํต์ค๋ฌ์ธ ์ ๋๋ก ์ ๋ฐํ๊ฒ ์๋์ผ๋ก ์ง์ ํ ํ์ ์์ด ์ธ์ ๋ฆฌ๋ ๋๋ง, ์ฌ๊ณ์ฐ ๋๋ ์ดํํธ๋ฅผ ์ฌ์คํํ ์ง์ ๋ํด ๋ ์ค๋งํธํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋๋ก ๋์ต๋๋ค.
๊ธฐ์กด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋๊ฐ
์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ๋ ๋จ์ํ ์๋ก์ด ๊ท์น์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฆฌ์กํธ๊ฐ ์ปดํฌ๋ํธ ๋์์ ์ดํดํ๊ณ ์ต์ ํํ๋ ๋ฐฉ์์ ๊ทผ๋ณธ์ ์ผ๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค:
-
์๋ํ๋๊ณ ๋ ํจ๊ณผ์ ์ธ ๋ฉ๋ชจ์ด์ ์ด์
: ์๋ง๋ ๊ฐ์ฅ ํฐ ์ํฅ์ React Forget์ด ๊ตฌ์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๊ณ ๊ธ ์ปดํ์ผ๋ฌ ์ต์ ํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ ์ฌ๋ ฅ์ผ ๊ฒ์
๋๋ค. ์ค์ฝํ์ ์์กด์ฑ์ ์ ํํ๊ฒ ์ดํดํ๋ฉด, ์ปดํ์ผ๋ฌ๋ ์ปดํฌ๋ํธ ๋ด์ ๊ฐ๊ณผ ํจ์๋ฅผ ์๋์ผ๋ก ๋ฉ๋ชจ์ด์งํ์ฌ ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก์์
useMemo์useCallback์ ๊ฑฐ์ ๋ถํ์ํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ ๊ฐ๋ฐ์์ ์ธ์ง์ ๋ถ๋ด์ ํฌ๊ฒ ์ค์ด๊ณ ์๋ ์์กด์ฑ ๋ฐฐ์ด๊ณผ ๊ด๋ จ๋ ์ผ๋ฐ์ ์ธ ์ค๋ฅ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.์ด์ : ๊ฐ๋ฐ์๋ค์ ๋ช ํํ๊ณ ์ต์ ํ๋์ง ์์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ง์คํ ์ ์์ผ๋ฉฐ, ์ปดํ์ผ๋ฌ๊ฐ ์ฑ๋ฅ ํฅ์์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ ๋ ๋น ๋ฅธ ๊ฐ๋ฐ ์ฃผ๊ธฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ ๋ ๊ฐ๋ ฅํ ์ต์ ํ๋ฅผ ์๋ฏธํฉ๋๋ค.
-
๋ณด์ฅ๋ ์์ธก ๊ฐ๋ฅ์ฑ: ์ค์ฝํ๋ฅผ ๊ฒฉ๋ฆฌํจ์ผ๋ก์จ, ์ด ๊ฒฝ๊ณ๋ ์ปดํฌ๋ํธ์ ๋์์ด ์ค์ง ํ์ฌ์ props์ state, ๊ทธ๋ฆฌ๊ณ ํ์ฌ ๋ ๋๋ง์ ์ํ ๋ด๋ถ ๋ก์ง์ ์ํด์๋ง ๊ฒฐ์ ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด๋ ์ด์ ๋ ๋๋ง์ด๋ ์ธ๋ถ ์์ธ์ผ๋ก ์ธํ ์ค๋๋ ํด๋ก์ ๋ ์๋์น ์์ ๋ณ๊ฒฝ์ ์ํ์ ์ํํ์ฌ ํจ์ฌ ๋ ์์ธก ๊ฐ๋ฅํ ์ปดํฌ๋ํธ ๋์์ ์ด๋์ด๋
๋๋ค.
์ด์ : ์ปดํฌ๋ํธ ๋์์ ์ง์ค ๊ณต๊ธ์(source of truth)์ด ๊ตญ์ํ๋๊ณ ๋ช ํํ๊ฒ ์ ์๋๋ฏ๋ก ๋๋ฒ๊น ์ด ํจ์ฌ ์ฌ์์ง๋๋ค. '๋ง๋ฒ' ๊ฐ์ ๋์์ด ์ค๊ณ ๋ ๊ฒฐ์ ๋ก ์ ์ธ ๊ฒฐ๊ณผ๊ฐ ๋์ต๋๋ค.
-
๊ฒฌ๊ณ ํ ์ฌ์ด๋ ์ดํํธ ๊ด๋ฆฌ: ๊ฒฝ๊ณ๊ฐ ์ ๊ณตํ๋ ๋ ์๊ฒฉํ ์ค์ฝํ ์ดํด๋ ๋ ์ ๋ขฐํ ์ ์๋
useEffect๋์์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๋ฆฌ์กํธ(๋๋ ๊ทธ ์ปดํ์ผ๋ฌ)๊ฐ ์ด๋ค ๋ณ์๊ฐ ์ดํํธ์ ์์กด์ฑ์ ์ง์ ์ผ๋ก ์ํ๋์ง ์ ํํ ์๊ฒ ๋๋ฉด, ์ดํํธ๊ฐ ํ์ํ ์์ ์ ์ ํํ๊ฒ ์คํ๋๊ณ ์ ๋ฆฌ๋๋๋ก ๋ณด์ฅํ์ฌ ๋๋ฝ๋ ์์กด์ฑ์ด๋ ๋ถํ์ํ ์ฌ์คํ๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.์ด์ : ์๋ชป ๊ด๋ฆฌ๋ ์ฌ์ด๋ ์ดํํธ๋ก ์ธํ ๋ฆฌ์์ค ๋์, ๋ถ์ ํํ ๋ฐ์ดํฐ ๊ตฌ๋ ๋๋ ์๊ฐ์ ๊ฒฐํจ์ ๊ฐ๋ฅ์ฑ์ ์ค์ ๋๋ค.
-
๋์์ฑ ๋ฆฌ์กํธ ๊ธฐ๋ฅ ์ด์ง: ์ค์ฝํ ๊ฒฉ๋ฆฌ๋ ๋์์ฑ ๋ ๋๋ง ๋ฐ Suspense์ ๊ฐ์ ๋ฏธ๋ ๋ฆฌ์กํธ ๊ธฐ๋ฅ์ ํผ์ฆ์์ ์ค์ํ ์กฐ๊ฐ์
๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ ๋ฆฌ์กํธ๊ฐ ๋ ๋๋ง ์์
์ ์์ ํ๊ฒ ์ผ์ ์ค์ง, ์ฌ๊ฐ ๋ฐ ํ๊ธฐํ๋ ๋ฅ๋ ฅ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. ๋ช
ํํ ์ค์ฝํ ๊ฒฝ๊ณ๋ ์ถ์ธก์ฑ ๋ ๋๋ง์ด ์ฐ์ฐํ ์ํ๋ ์ดํํธ๋ฅผ ๋์ถํ์ง ์๋๋ก ๋ณด์ฅํ์ฌ ๋ณต์กํ ๋น๋๊ธฐ ์์
์ค ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํฉ๋๋ค.
์ด์ : ๋ฐ์ดํฐ๊ฐ ๋ง๊ฑฐ๋ ์ํธ์์ฉ์ด ํ๋ฐํ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ฐ์์ฑ ์๊ณ ์ ์ฐํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ๋ฐํํ ์ ์์ต๋๋ค.
๋ณธ์ง์ ์ผ๋ก, ์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ๋ ๋ฆฌ์กํธ์๊ฒ ์ปดํฌ๋ํธ ๋ด ๊ฐ๋ค์ ์์กด์ฑ๊ณผ ์๋ช ์ฃผ๊ธฐ์ ๋ํ ๋ ๊น์ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ด ํต์ฐฐ๋ ฅ์ ๋ฆฌ์กํธ๊ฐ ๋ ์ค๋งํธํ๊ณ , ๋ ๋น ๋ฅด๊ณ , ๋ ๊ฒฌ๊ณ ํด์ง๋๋ก ํ์ ์ค์ด์ฃผ๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด ์ด๋ฌํ ๋ณต์กํ ์ํธ์์ฉ์ ์๋์ผ๋ก ๊ด๋ฆฌํด์ผ ํ๋ ๋ถ๋ด์ ์ค์ฌ์ค๋๋ค.
ํฅ์๋ ์ค์ฝํ ๊ฒฉ๋ฆฌ ๊ด๋ฆฌ์ ํ์ ์ ์ธ ์ด์
๊ฒฌ๊ณ ํ ์ค์ฝํ ๊ฒฝ๊ณ์ ๋์ ์ ๋จ์ํ ์ ์ง์ ์ธ ๊ฐ์ ์ด ์๋๋ผ, ๊ฐ์ธ ๊ฐ๋ฐ์, ๊ฐ๋ฐํ, ๊ทธ๋ฆฌ๊ณ ์ ์ธ๊ณ์ ๋ฆฌ์กํธ ์ํ๊ณ ์ ์ฒด์ ๊ด๋ฒ์ํ ์ด์ ์ ๊ฐ์ ธ๋ค์ฃผ๋ ํจ๋ฌ๋ค์์ ์ ํ์ ์๋ฏธํฉ๋๋ค.
1. ํฅ์๋ ์์ธก ๊ฐ๋ฅ์ฑ ๋ฐ ์ ๋ขฐ์ฑ
- ์์์น ๋ชปํ ๋ฒ๊ทธ ๊ฐ์: ์๋์น ์์ ์ค์ฝํ ์ํธ์์ฉ์ ๋ฐฉ์งํจ์ผ๋ก์จ, ๊ฐ๋ฐ์๋ค์ ์ํ๊ฐ ๋ถ๊ฐ์ฌ์ํ๊ฒ ๋ณ๊ฒฝ๋๊ฑฐ๋ ํจ์๊ฐ ์ค๋๋ ๊ฐ์ผ๋ก ์คํ๋๋ '์ ๋ น' ๋ฒ๊ทธ๋ฅผ ๋ ๋ง์ฃผํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ปดํฌ๋ํธ์ ๋์์ ๋ ๊ฒฐ์ ๋ก ์ ์ด ๋๊ณ ์ถ๋ก ํ๊ธฐ ์ฌ์์ง๋๋ค.
- ํ๊ฒฝ ์ ๋ฐ์ ๊ฑธ์น ์ผ๊ด๋ ๋์: ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ํฅ ์์ฅ์ ์ ์ฌ์ ๊ธฐ๊ธฐ์ ๋ฐฐํฌ๋๋ ์ ์ง๊ตญ์ ๊ณ ์ฌ์ ์ํฌ์คํ ์ด์ ์ ๋ฐฐํฌ๋๋ , ์ ๊ฒฉ๋ฆฌ๋ ์ค์ฝํ์์ ํ์๋ ํต์ฌ ๋ก์ง์ ์ผ๊ด๋๊ฒ ๋์ํ์ฌ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋ ์ ๋ขฐํ ์ ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ์ธ์ง์ ๋ถ๋ด ๊ฐ์: ๊ฐ๋ฐ์๋ค์ ์ฐพ๊ธฐ ํ๋ ์ค์ฝํ ๊ด๋ จ ๋ฒ๊ทธ๋ฅผ ์ถ์ ํ๋ ๋ฐ ์๊ฐ์ ๋ ์ฐ๊ณ , ๊ธฐ๋ฅ ๊ตฌํ ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ ๊ฐ์ ์ ๋ ๋ง์ ์๊ฐ์ ์ง์คํ ์ ์์ต๋๋ค. ์ด ์ด์ ์ ๋ฌธํ์ ๋ฐฐ๊ฒฝ์ด๋ ํ ๊ท๋ชจ์ ๊ด๊ณ์์ด ๋ณดํธ์ ์ผ๋ก ํ์๋ฐ์ต๋๋ค.
2. ํฅ์๋ ์ฑ๋ฅ ๋ฐ ์ต์ ํ
- ์๋ํ๋ ์ต์ ์ ๋ฉ๋ชจ์ด์ ์ด์ : ์ปดํ์ผ๋ฌ๊ฐ ์ ํํ ์ค์ฝํ ์ดํด๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ๊ณผ ์ฝ๋ฐฑ์ ์๋์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ๋ฉ๋ชจ์ด์งํ๋ ๋ฅ๋ ฅ์ ๊ฐ๋ฐ์์ ๋ช ์์ ์ธ ๋ ธ๋ ฅ ์์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋นํ ์ฑ๋ฅ ํฅ์์ ๊ฐ์ ธ๋ค์ค๋๋ค. ์ด๋ ๊ณผ๋ํ ๋ฆฌ๋ ๋๋ง์ผ๋ก ๊ณ ํต๋ฐ์ ์ ์๋ ํฌ๊ณ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ํนํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
-
๋ ์์ ๋ฒ๋ค ํฌ๊ธฐ: ์๋
useMemo๋ฐuseCallback์ ํ์์ฑ์ด ์ค์ด๋ค๋ฉด์ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋์ ์์ด ๊ฐ์ํ์ฌ ์ ์ฌ์ ์ผ๋ก ๋ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์ด๋ ํนํ ์ธ๊ณ ์ฌ๋ฌ ์ง์ญ์์ ํํ ๋๋ฆฐ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ์ ์๋ฏธํฉ๋๋ค. - ๋ ํจ์จ์ ์ธ ๋ฆฌ์์ค ํ์ฉ: ๋ถํ์ํ ๊ณ์ฐ๊ณผ ๋ฆฌ๋ ๋๋ง์ ์ต์ํํจ์ผ๋ก์จ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ํจ์จ์ ์ด ๋์ด CPU์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์๋นํฉ๋๋ค. ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ฐ์ผ ์ฅ์น์ ๋ฐฐํฐ๋ฆฌ ์๋ช ์ ์ฐ์ฅํ๊ณ ์ ์ธ๊ณ์ ์ผ๋ก ๋ถ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ๋น์ฉ์ ์ ๊ฐํ ์ ์์ต๋๋ค.
3. ๋ ์ฌ์ด ๋๋ฒ๊น ๋ฐ ์ ์ง๋ณด์
- ๋ฌธ์ ์ ๊ตญ์ํ: ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ์ ๋, ๊ฐ์ ๋ ์ค์ฝํ ๊ฒฉ๋ฆฌ๋ ์ ์ฌ์ ๋ฌธ์ ์ 'ํญ๋ฐ ๋ฐ๊ฒฝ'์ด ํฌ๊ฒ ์ค์ด๋ค๊ธฐ ๋๋ฌธ์ ์ฑ ์์ด ์๋ ์ ํํ ์ปดํฌ๋ํธ๋ ์ฝ๋ ์น์ ์ ์ฐพ์๋ด๊ธฐ ํจ์ฌ ์ฌ์์ง๋๋ค. ์ด๋ ๋๋ฒ๊น ์ ๋จ์ํํ๊ณ ํด๊ฒฐ์ ๊ฐ์ํํฉ๋๋ค.
- ๋จ์ํ๋ ์ฝ๋ ๋ฆฌ๋ทฐ: ๋ ๋ช ํํ ์ค์ฝํ ๊ฒฝ๊ณ๋ก ์ฝ๋๋ฅผ ์ดํดํ๊ณ ๋ฆฌ๋ทฐํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค. ๋ฆฌ๋ทฐ์ด๋ค์ ๋ณต์กํ ๊ต์ฐจ ์ค์ฝํ ์์กด์ฑ์ ์ ์ ์ ์ผ๋ก ์ถ์ ํ ํ์ ์์ด ์ปดํฌ๋ํธ์ ์๋๋ ๋์์ ์ ์ํ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
- ํฅ์๋ ์ ์ง๋ณด์์ฑ: ์ฅ๊ธฐ์ ์ผ๋ก ๋ณผ ๋, ๊ฒฌ๊ณ ํ ์ค์ฝํ ๊ฒฉ๋ฆฌ๋ฅผ ๊ฐ์ถ ์ฝ๋๋ฒ ์ด์ค๋ ๋ณธ์ง์ ์ผ๋ก ์ ์ง, ๋ฆฌํฉํ ๋ง ๋ฐ ํ์ฅ์ด ๋ ์ฝ์ต๋๋ค. ํ ์ปดํฌ๋ํธ์ ๋ณ๊ฒฝ์ด ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ฅผ ์๋์น ์๊ฒ ์์์ํฌ ๊ฐ๋ฅ์ฑ์ด ์ ์ด, ๋๊ท๋ชจ ๊ตญ์ ํ์ด ๋ฐฉ๋ํ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ธ ์ง์ ๊ฐ๋ฅํ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ์ด์งํฉ๋๋ค.
4. ๋ฏธ๋ ๋ฆฌ์กํธ ํ์ ์ด์ง
- React Forget์ ๊ธฐ๋ฐ: ์ค์ฝํ ๊ฒฝ๊ณ๋ React Forget๊ณผ ๊ฐ์ ํ๋ก์ ํธ์ ์ด์์ ๋๋ค. React Forget์ ์ปดํ์ผ ํ์์ ๋ฆฌ์กํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ์๋์ผ๋ก ๋ฉ๋ชจ์ด์งํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. ์ค์ฝํ์ ๋ํ ๋ช ํํ ์ดํด ์์ด๋ ์ด๋ฌํ ์ผ์ฌ ์ฐฌ ํ๋ก์ ํธ๊ฐ ํจ์ฌ ๋ ์ด๋ ค์ธ ๊ฒ์ ๋๋ค.
- ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ฌ๋ ฅ ๊ทน๋ํ: ๋์์ฑ ๋ชจ๋, Suspense, ์๋ฒ ์ปดํฌ๋ํธ๋ ๋ชจ๋ ๋ ๋๋ง๊ณผ ์ํ๋ฅผ ๊ณ ๋๋ก ์ ์ด๋๊ณ ๋ ผ๋ธ๋กํน ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฆฌ์กํธ์ ๋ฅ๋ ฅ์ ์์กดํฉ๋๋ค. ๊ฒฌ๊ณ ํ ์ค์ฝํ ๊ฒฉ๋ฆฌ๋ ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ด ์์ ํ๊ณ ํจ๊ณผ์ ์ผ๋ก ์๋ํ๋ ๋ฐ ํ์ํ ๋ณด์ฆ์ ์ ๊ณตํ์ฌ, ๋งค์ฐ ์ํธ์์ฉ์ ์ด๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ธธ์ ๋ฆ์ต๋๋ค.
๊ฐ๋ฐ์๋ฅผ ์ํ ์ค์ง์ ์ํฅ: ๋ฏธ๋ ์ํฌํ๋ก์ฐ ์ฟ๋ณด๊ธฐ
์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ๊ฐ ์์ง ์ฃผ๋ฅ ๊ธฐ๋ฅ์ ์๋์ง๋ง, ๊ทธ ์ํฅ์ ์ดํดํ๋ ๊ฒ์ ๊ฐ๋ฐ์๋ค์ด ๋ฏธ๋์ ๋ฆฌ์กํธ ์ํฌํ๋ก์ฐ์ ๋๋นํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ํต์ฌ์ ์๋ ์์กด์ฑ ๊ด๋ฆฌ์์ ๋ ์๋ํ๋๊ณ ์ปดํ์ผ๋ฌ๊ฐ ์ง์ํ๋ ์ ๊ทผ ๋ฐฉ์์ผ๋ก์ ์ ํ์ ๋๋ค.
๋ฆฌ์กํธ ์ฝ๋ ์์ฑ ๋ฐฉ์์ ์ ์ฌ์ ๋ณํ:
์ค์ฝํ ๊ฒฝ๊ณ๋ก ๊ตฌ๋๋๋ React Forget๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ด ์์ ํ๋๋ฉด, ๊ฐ๋ฐ์๋ค์ ์ฝ๋ฉ ๊ดํ์์ ์ฃผ๋ชฉํ ๋งํ ๋ณํ๋ฅผ ๊ฒฝํํ ์ ์์ต๋๋ค:
-
์๋ ๋ฉ๋ชจ์ด์ ์ด์
๊ฐ์: ๊ฐ์ฅ ํฐ ๋ณํ๋ ์๋ง๋ ๋ช
์์ ์ธ
useCallback๋ฐuseMemoํ ์ ํ์์ฑ์ด ์ค์ด๋๋ ๊ฒ์ผ ๊ฒ๋๋ค. ๊ฐ๋ฐ์๋ค์ ์ปดํฌ๋ํธ ๋ด์์ ํ๋ฒํ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์์ ๊ฐ์ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ปดํ์ผ๋ฌ๊ฐ ํ์ํ ๋ ์ฐธ์กฐ ์์ ์ฑ์ ์ํด ์๋์ผ๋ก ์ต์ ํํ ๊ฒ์ ๋๋ค. ์ด๋ ์ฝ๋๋ฅผ ๊ฐ์ํํ๊ณ ํํ ๋ฒ๊ทธ์ ์์ธ์ ์ ๊ฑฐํฉ๋๋ค.ํ์ฌ:
const memoizedValue = useMemo(() => calculateExpensiveValue(a, b), [a, b]);๋ฏธ๋ (์ค์ฝํ ๊ฒฝ๊ณ + Forget):
const memoizedValue = calculateExpensiveValue(a, b); // ์ปดํ์ผ๋ฌ๊ฐ ์ด๊ฒ์ ์ต์ ํํจ - ๋ ๋ช ํํ ๋ฐ์ดํฐ ํ๋ฆ: ์ค์ฝํ ๊ฒฉ๋ฆฌ์ ๋ํ ๋ ๊ฐ๋ ฅํ ๋ณด์ฅ์ผ๋ก, ์ปดํฌ๋ํธ ๋ด ๋ฐ์ดํฐ ํ๋ฆ์ ๋ํ ์ ์ ๋ชจ๋ธ์ด ๋ ๋จ์ํด์ง๋๋ค. ๋ด๋ถ์ ์ ์๋ ๊ฒ์ ๋ช ์์ ์ผ๋ก ์ ๋ฌ๋์ง ์๋ ํ ๋ด๋ถ์ ๋จธ๋ญ ๋๋ค. ์ด๋ ๋ ์์ธก ๊ฐ๋ฅํ ์ปดํฌ๋ํธ ์ค๊ณ๋ฅผ ์ฅ๋ คํฉ๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง์ ์ง์ค: ๊ฐ๋ฐ์๋ค์ ์ต์ ํ ๊ธฐ๋ณธ ์์์ ์จ๋ฆํ๊ฑฐ๋ ๋ฏธ๋ฌํ ์ค์ฝํ ๊ด๋ จ ๋ฒ๊ทธ๋ฅผ ์ซ๋ ๋์ , ์ค์ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ ์ ์์ต๋๋ค.
- ์๋ก์ด ๋ฆฐํ ๋ฐ ๋๊ตฌ: ์ปดํ์ผ๋ฌ๊ฐ ๋ ๊น์ ํต์ฐฐ๋ ฅ์ ์ป๊ฒ ๋จ์ ๋ฐ๋ผ, ์ ์ฌ์ ์ธ ์ค์ฝํ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์ฌ์ ์ ์๋ณํ๊ฑฐ๋ ๋ฐํ์ ์ด์ ์๋ ์ต์ ์ ํจํด์ ์ ์ํ ์ ์๋ ๋ ์ง๋ฅ์ ์ธ ๋ฆฐํ ๊ท์น๊ณผ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
์ค๋ ์ฑํํด์ผ ํ ๋ชจ๋ฒ ์ฌ๋ก (๋ด์ผ์ ์ํ ์ค๋น):
์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ์ ์ง์ ์ ๊ทผํ ์ ์๋๋ผ๋, ํน์ ๊ดํ์ ์ฑํํ๋ฉด ์ฝ๋๋ฅผ ๊ทธ ๊ธฐ๋ณธ ์์น๊ณผ ์ผ์น์ํฌ ์ ์์ต๋๋ค:
-
๋ถ๋ณ์ฑ ์์ฉ: ์ํ๋ฅผ ์
๋ฐ์ดํธํ ๋ ํญ์ ๊ธฐ์กด ๊ฐ์ฒด๋ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ๋ ๋์ ์๋ก์ด ๊ฐ์ฒด๋ ๋ฐฐ์ด์ ๋ง๋์ญ์์ค. ์ด๊ฒ์ ๋ฆฌ์กํธ ์ฒ ํ์ ์ด์์ด์ ์ค์ฝํ ๊ฒฉ๋ฆฌ ์ด๋ฉด์ ๊ธฐ๋ณธ ์์น์
๋๋ค.
ํผํ ๊ฒ:
state.obj.property = newValue; setState(state);์ ํธํ ๊ฒ:
setState(prev => ({ ...prev, obj: { ...prev.obj, property: newValue } })); - ์ปดํฌ๋ํธ๋ฅผ ์์ํ๊ฒ ์ ์ง: ๋์ผํ props์ state๊ฐ ์ฃผ์ด์ก์ ๋ ํญ์ ๋์ผํ ์ถ๋ ฅ์ ๋ ๋๋งํ๊ณ ์์ ์ ์ค์ฝํ ์ธ๋ถ์์ ์ฌ์ด๋ ์ดํํธ๋ฅผ ์ผ์ผํค์ง ์๋ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ์ญ์์ค.
-
์ ํํ ์์กด์ฑ ๋ฐฐ์ด: ๋ชฉํ๋ ์๋ ๋ฉ๋ชจ์ด์ ์ด์
์ ์ค์ด๋ ๊ฒ์ด์ง๋ง, ํ์ฌ๋ก์๋
useEffect,useCallback,useMemo์์กด์ฑ ๋ฐฐ์ด์ ์ถฉ์คํ์ญ์์ค. ๋๋ฝ๋ ์์กด์ฑ์ ๋ฒ๊ทธ๋ก ์ทจ๊ธํ์ญ์์ค. - ์๋ฐ์คํฌ๋ฆฝํธ ํด๋ก์ ์ดํด: ํด๋ก์ ๊ฐ ์๋ํ๋ ๋ฐฉ์์ ๋ํ ๊น์ ์ดํด๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด๋ ๋ฆฌ์กํธ์์ ์ค์ฝํ ๊ด๋ จ ๋ง์ ๊ณผ์ ์ ํด๊ฒฐ์ฑ ์ ๊ธฐ์ด๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ ๋ณด ์ ์ง: ๋ฆฌ์กํธ์ ๊ณต์ ๋ฐํ์ ์คํ์ ๊ธฐ๋ฅ ํ ๋ก ์ ์ฃผ๋ชฉํ์ญ์์ค. ๋ฆฌ์กํธ์ ๋ฏธ๋๋ ๋์์์ด ํ์ฑ๋๊ณ ์์ผ๋ฉฐ, ์ด๋ฌํ ๋ฐ์ ์ ์ธ์งํ๋ ๊ฒ์ ์ฅ๊ธฐ์ ์ธ ํ๋ก์ ํธ ๊ฑด์ ์ฑ์ ์ค์ํฉ๋๋ค.
์ฑํ ๋ฐ ์ํฅ์ ๋ํ ๊ธ๋ก๋ฒ ๊ด์
๋ฆฌ์กํธ์ ์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ์ ์ํฅ์ ๊ฐ๋ณ ํ๋ก์ ํธ๋ฅผ ํจ์ฌ ๋ฐ์ด๋์ด, ๋ชจ๋ ๊ท๋ชจ์ ์ง์ญ์ ํ์ ์ํด ๊ณ ์ฑ๋ฅ ๋ฆฌ์กํธ ๊ฐ๋ฐ์ ๋ฏผ์ฃผํํ ์ ์ฌ๋ ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ค์ํ ํ๊ณผ ํ๋ก์ ํธ์ ๋ฏธ์น๋ ์ํฅ:
- ๋๊ธฐ์ : ์ข ์ข ๋ค๋ฅธ ์๊ฐ๋์ ๋ถ์ฐ๋ ํ์ด ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐฉ๋ํ๊ณ ๋ณต์กํ ๋ฆฌ์กํธ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง ๊ธ๋ก๋ฒ ๊ธฐ์ ์ ์์ฒญ๋ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค. ๋ฒ๊ทธ ํ๋ฉด ๊ฐ์, ์์ธก ๊ฐ๋ฅ์ฑ ํฅ์, ์๋ ์ต์ ํ๋ ์ง์ ์ ์ผ๋ก ๋ ๋์ ์ฝ๋ ํ์ง, ๋ ์ ์ ์ด์ ๋ฌธ์ , ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์ ๋น์ฉ์ ์๋นํ ์ ๊ฐ์ผ๋ก ์ด์ด์ง๋๋ค.
- ์คํํธ์ ๋ฐ ์ค์๊ธฐ์ (SMEs): ์ ํ๋ ์์๊ณผ ๋น ๋ฏํ ๋ง๊ฐ์ผ๋ก ์์ ํ๋ ์๊ท๋ชจ ํ์๊ฒ, ์ ์์ค ๋ฆฌ์กํธ ์ต์ ํ ๊ธฐ์ ์ ๋ํ ๊น์ ์ ๋ฌธ ์ง์ ์์ด๋ ์ฑ๋ฅ์ด ๋ฐ์ด๋๊ณ ์ ๋ขฐํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฒ์ ์ฒด์ธ์ ์ ๋๋ค. ์ด๋ ์ธ๊ณ์ ์์ค์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ถฅ๋๋ค.
- ์คํ์์ค ๊ธฐ์ฌ์: ๋ฆฌ์กํธ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๋ ๋ ์์ ์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ ๊ธฐ๋ฐ์ ํํ์ ๋ณผ ๊ฒ์ ๋๋ค. ์ด๋ ๋ ๊ฒฌ๊ณ ํ ์ํ๊ณ ๋๊ตฌ์ ๋ ์ฌ์ด ๊ธฐ์ฌ๋ก ์ด์ด์ ธ ์ ์ธ๊ณ์ ์ผ๋ก ํ์ ์ ์ด์งํ ์ ์์ต๋๋ค.
- ๊ต์ก ๊ธฐ๊ด ๋ฐ ๋ถํธ์บ ํ: ๋ฆฌ์กํธ์ ์ ์ ๋ชจ๋ธ, ํนํ ๋ฉ๋ชจ์ด์ ์ด์ ๊ด๋ จ ๋ถ๋ถ์ ๋จ์ํ๋ ๊ฐ๋ฅด์น๊ณ ๋ฐฐ์ฐ๊ธฐ๋ฅผ ๋ ์ฝ๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค. ์๋ก์ด ๊ฐ๋ฐ์๋ค์ ์ต์ ํ ์ธ๋ถ ์ฌํญ์ ์กฐ๊ธฐ์ ์ฝ๋งค์ด์ง ์๊ณ ํต์ฌ ๊ฐ๋ ์ ๋ ๋นจ๋ฆฌ ํ์ ํ ์ ์์ต๋๋ค.
๋ณดํธ์ ์ธ ๋งค๋ ฅ:
์์ ์ฑ ํฅ์, ์ฑ๋ฅ ๊ฐ์ , ๊ฐ๋ฐ ๋จ์ํ๋ผ๋ ํต์ฌ ์ด์ ์ ๋ฌธํ์ ๋งฅ๋ฝ์ด๋ ๊ฒฝ์ ์ ์กฐ๊ฑด์ ๊ด๊ณ์์ด ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋ณดํธ์ ์ผ๋ก ์ํ๋ ํน์ฑ์ ๋๋ค. ๋ ์ ๋ขฐํ ์ ์๊ณ ํจ์จ์ ์ธ ํ๋ ์์ํฌ๋ ๋ชจ๋ ๊ณณ์ ๊ฐ๋ฐ์๋ค์ด ์ฌ์ฉ์๋ฅผ ์ํด ๋ ๋์ ๋์งํธ ๊ฒฝํ์ ๋ง๋ค ์ ์๋๋ก ํ์ ์ค์ด์ค๋๋ค.
์๋ฅผ ๋ค์ด, ์ด๋ฌํ ๊ณ ๊ธ ์ต์ ํ๋ก ๊ตฌ์ถ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ถ ๊ฐ๋ฐ ๋์ ์ง์ญ์์ ํํ ๊ตฌํ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ๋ ๋ถ๋๋ฌ์ด ๊ฒฝํ์ ์ ๊ณตํ๋ ๋์์, ๊ธฐ์ ์ ์ผ๋ก ๋ฐ์ ๋ ์์ฅ์ ๊ณ ์ฌ์ ๋ฐ์คํฌํฑ์์๋ ๋๋ถ์ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ด๋ ๊ธฐ์ ์ ๋ ์ ๊ทผ ๊ฐ๋ฅํ๊ณ ํฌ์ฉ์ ์ผ๋ก ๋ง๋ญ๋๋ค.
๋ฏธ๋ ์ ๋ง: ์ค์ฝํ ๊ฒฉ๋ฆฌ์ ํจ๊ปํ๋ ๋ฆฌ์กํธ์ ๋ฏธ๋
์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ๋ ๋ ๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ด ์๋๋ผ ๋ฆฌ์กํธ์ ๋ฏธ๋ ๋น์ ์ ๊ธฐ์ด์ ์ธ ๋ถ๋ถ์ ๋๋ค. ์ด๋ ๋ค๋ฅธ ์ผ์ฌ ์ฐฌ ํ๋ก์ ํธ ๋ฐ ํ๋ ์์ํฌ์ ์ ๋ฐ์ ์ธ ์งํ์ ๋ณธ์ง์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค.
- React Forget๊ณผ์ ํตํฉ: ๊ฐ์ฅ ์ฆ๊ฐ์ ์ด๊ณ ์ค์ํ ์ํฅ์ React Forget์ ๊ฐ๋ฅํ๊ฒ ํ๋ ์ญํ ์ผ ๊ฒ์ ๋๋ค. React Forget์ ์ปดํฌ๋ํธ์ ํ ์ ์๋์ผ๋ก ๋ฉ๋ชจ์ด์งํ๋ ์ปดํ์ผ๋ฌ๋ก, ๊ฐ๋ฐ์๋ค์ด ์๋ ์ต์ ํ์ ๋ํด ๊ฑฑ์ ํ์ง ์๊ณ ๋ ๊ด์ฉ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์๊ฒ ํด์ค๋๋ค. ์ค์ฝํ ๊ฒฝ๊ณ๋ React Forget์ด ๊ทธ ๋ง๋ฒ์ ์์ ์ ์ผ๋ก ์ํํ๋ ๋ฐ ํ์ํ ๋ณ์ ์๋ช ๊ณผ ์์กด์ฑ์ ๋ํ ์๊ฒฉํ ๋ณด์ฆ์ ์ ๊ณตํฉ๋๋ค.
- ๋์์ฑ ๋ฆฌ์กํธ์ ์ถ๊ฐ ํฅ์: ๋ฆฌ์กํธ๊ฐ ๋์์ฑ ๋ ๋๋ง, Suspense, ์๋ฒ ์ปดํฌ๋ํธ์ ๊ฒฝ๊ณ๋ฅผ ๊ณ์ ๋ํ๊ฐ์ ๋ฐ๋ผ, ๊ฒฝ๊ณ๊ฐ ์ ๊ณตํ๋ ๊ฒฌ๊ณ ํ ์ค์ฝํ ๊ฒฉ๋ฆฌ๋ ๋งค์ฐ ์ค์ํ ๊ฒ์ ๋๋ค. ์ด๋ ์ถ์ธก์ฑ ๋ ๋๋ง๊ณผ ๋น๋๊ธฐ ์์ ์ด ์๋์น ์์ ์ฌ์ด๋ ์ดํํธ๋ ์ํ ์์ ์์ด ์์ ํ๊ฒ ์ํ๋ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
- ๋ฆฌ์กํธ ์ํ๊ณ์ ๋จ์ํ: ํต์ฌ ํ๋ ์์ํฌ๊ฐ ์ต์ ํ์ ์ค์ฝํ์ ๋ํด ๋ ๋๋ํด์ง์ ๋ฐ๋ผ, ํน์ ํจํด๊ณผ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋จ์ํ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๋ฆฌ์กํธ ์์ฒด๊ฐ ์ด๋ฌํ ์ฐ๋ ค ์ฌํญ๋ค์ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ฒ ๋จ์ ๋ฐ๋ผ, ์ํ ๊ด๋ฆฌ๋ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ์ผ๋ถ ํ์ฌ ์๋ฃจ์ ์ ๋ ํ์์ ์ด ๋ ์ ์์ต๋๋ค.
- ์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ๊ณผ ์งํ: ๋ชจ๋ ์คํ์ ๊ธฐ๋ฅ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ์ค์ฝํ ๊ฒฝ๊ณ์ ๊ด๋ จ ๊ฐ๋ ๋ค์ ๋ฆฌ์กํธ ์ปค๋ฎค๋ํฐ์ ํผ๋๋ฐฑ์ ๋ฐํ์ผ๋ก ์งํํ ๊ฒ์ ๋๋ค. ์ผ๋ฆฌ ์ด๋ตํฐ์ ์ฐ๊ตฌ์๋ค์ ๊ทธ ์ต์ข ํํ๋ฅผ ๋ง๋ค๊ณ ์ค์ ๊ฐ๋ฐ์์ ์๊ตฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ๋๋ก ๋ณด์ฅํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ ๋๋ค.
๋ ์์ธก ๊ฐ๋ฅํ๊ณ ์๋์ผ๋ก ์ต์ ํ๋๋ ๋ฆฌ์กํธ๋ฅผ ํฅํ ์ฌ์ ์ ๋ฆฌ์กํธ ํ๊ณผ ๊ทธ ๊ด๋ฒ์ํ ์ปค๋ฎค๋ํฐ๊ฐ ์ฃผ๋ํ๋ ์ง์์ ์ธ ํ์ ์ ์ฆ๊ฑฐ์ ๋๋ค. ์ค์ฝํ ๊ฒฝ๊ณ๋ ์ด ๋ฐฉํฅ์ผ๋ก์ ๋๋ดํ ๋ฐ๊ฑธ์์ด๋ฉฐ, ๊ฐ๋ฐ์๋ค์ด ๋ ํฐ ์์ ๊ฐ๊ณผ ์ ์ ๋ณด์ผ๋ฌํ๋ ์ดํธ๋ก ๋ณต์กํ UI๋ฅผ ๊ตฌ์ถํ ์ ์๋ ๋ฏธ๋๋ฅผ ์ฝ์ํฉ๋๋ค.
๊ฒฐ๋ก
๋ฆฌ์กํธ์ ์คํ์ ์ค์ฝํ ๊ฒฝ๊ณ๋ ํ๋ ์์ํฌ๊ฐ ์ปดํฌ๋ํธ ๋ด ๋ณ์์ ์ดํํธ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ดํดํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ์์ด ์ฌ์คํ ๋ณํ๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ ์๊ฒฉํ ์ค์ฝํ ๊ฒฉ๋ฆฌ๋ฅผ ๊ฐ์ ํจ์ผ๋ก์จ, ์ด๋ ์ ๋ก ์๋ ์์ค์ ์์ธก ๊ฐ๋ฅ์ฑ, ์ฑ๋ฅ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ์ธ์ฒด๊ณตํ์ ์ํ ๊ธฐ๋ฐ์ ๋ง๋ จํฉ๋๋ค.
์๋ ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ธ์ง์ ๋ถ๋ด์ ์ค์ด๋ ๊ฒ๋ถํฐ ๋์์ฑ ๊ธฐ๋ฅ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ๋ฐํํ๊ณ ๋๋ฒ๊น ์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋๋ ๊ฒ๊น์ง, ๊ทธ ์ด์ ์ ๋ช ํํ๊ณ ๊ด๋ฒ์ํฉ๋๋ค. ์ด ํ์ ์ ๊ฐ์ธ ๊ธฐ์ฌ์๋ถํฐ ๋๊ท๋ชจ ๊ธฐ์ ํ์ ์ด๋ฅด๊ธฐ๊น์ง ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ด ๋ ๊ฒฌ๊ณ ํ๊ณ ํจ์จ์ ์ด๋ฉฐ ์ ์ง๋ณด์ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ํ์ ์ค์ด์ค ๊ฒ์ ๋๋ค.
์์ง ์คํ ๋จ๊ณ์ด์ง๋ง, ์ค์ฝํ ๊ฒฝ๊ณ ์ด๋ฉด์ ๊ฐ๋ ๋ค์ ๋ฆฌ์กํธ ๊ฐ๋ฐ์ ๋ฏธ๋์ ๋ํ ์ค๋๋ ฅ ์๋ ๋น์ ์ ์ ์ํฉ๋๋ค. ์ฆ, ํ๋ ์์ํฌ๊ฐ ์ต์ ํ ๋ถ๋ด์ ๋ ๋ง์ด ๋ ์์ ๊ฐ๋ฐ์๋ค์ด ๊ฐ์ฅ ์ํ๋ ์ผ์ธ ํ์ํ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ง๋๋ ๋ฐ ์ง์คํ ์ ์๊ฒ ํ๋ ๋ฏธ๋์ ๋๋ค. ์ ๋ณด๋ฅผ ๊ณ์ ์ ํ๊ณ ์ด๋ฌํ ์์น๊ณผ ์ผ์นํ๋ ๊ดํ์ ์ ์ง์ ์ผ๋ก ์ฑํํ๋ ๊ฒ์ ์์ฌํ ์ฌ์ง์์ด ์ญ๋์ ์ธ ์น ๊ฐ๋ฐ ์ธ๊ณ์์ ์ฌ๋ฌ๋ถ์ ํ๋ก์ ํธ๋ฅผ ์ฅ๊ธฐ์ ์ธ ์ฑ๊ณต์ผ๋ก ์ด๋ ๊ฒ์ ๋๋ค.
์คํ ๊ฐ๋ฅํ ํต์ฐฐ:
- ์ํ ๊ด๋ฆฌ์์ ๋ถ๋ณ์ฑ์ ์ฌ๊ณ ๋ฐฉ์์ ๊ธฐ๋ฅด๊ธฐ ์์ํ์ญ์์ค.
- React Forget๊ณผ ๋์์ฑ ๋ ๋๋ง์ ๊ฐ๋ ์ ์ต์ํด์ง์ญ์์ค.
- ์ด๋ฌํ ๊ฐ๋ ฅํ ๋ณํ์ ์์ ๋๊ฐ๊ธฐ ์ํด ๋ฆฌ์กํธ์ ๊ณต์ ๋ธ๋ก๊ทธ์ ์คํ์ ๊ธฐ๋ฅ ํ ๋ก ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ญ์์ค.
- ์คํ์ ์ธ ๋ฆฌ์กํธ ๋น๋๋ฅผ ์ฌ์ฉํด ๋ณธ๋ค๋ฉด ํ ๋ก ์ ๊ธฐ์ฌํ๊ณ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ญ์์ค.