๐จโ๐ป์ค๋ ๊ณต๋ถํ ๊ฒ
๋ณด๋ด์ฃผ์ ๋ฆฌ์กํธ ํ ์ค ๋ผ์ดํ์ฌ์ดํด ์ฌ์ง์ ๋ณด๋ฉด useEffect๋ ๋ชจ๋ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ ํ ํธ์ถ๋๋ ๊ฒ์ผ๋ก ์ดํดํ์ต๋๋ค. ๊ทธ๋ผ useEffect๋ ๋๋ฒ์งธ์ธ์๊ฐ ๋น๋ฐฐ์ด์ด๊ฑฐ๋, ํน์ ์๊ฑฐ๋ ํน์ ๋ฐฐ์ด์์ state๊ฐ ํ ๋น๋์ด์์ ๊ฒฝ์ฐ๋ผ๋ ๋ฌด์กฐ๊ฑด ์ปดํฌ๋ํธ๋ค์ด ๋ ๋๋ง ๋ํ ํธ์ถ์ด ๋๋ ๊ฒ์ผ๊น์?
๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ด ๋ ๋๋ง๋ ํ ๋ฑ ํ๋ฒ๋ง ์คํ์ด ๋๊ณ (๋๋ฒ์งธ ์ธ์๊ฐ ๋น๋ฐฐ์ด์ด๋ผ์), useEffect๋ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋ํ ๋งจ ๋ง์ง๋ง์ ํธ์ถ์ด ๋๋๊น.. ๊ทธ ์ ์ AJAX์์ฒญ์ ๋ฐ๊ธฐ์ ์๋ ์ฆ useEffect๊ฐ ์คํ๋๊ธฐ ์ ์๋ ๋ก๋ฉํ์ด์ง๋ฅผ ๋์ฐ๋ ์ฝ๋๊ฐ ์๋ค๊ณ ํ์๋ ์ด ๊ฒฝ์ฐ์ cleanupํจ์๋ฅผ ์ฐ์ง์์ผ๋ฉด ์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์ผ์ด๋๋์ง ์ดํด๊ฐ ๋์ง์์ต๋๋ค.
cleanupํจ์๋ฅผ ์ฐ์ง์์๋ ๋๋ฒ์งธ์ธ์๊ฐ ๋น๋ฐฐ์ด์ด๋ฏ๋ก ๋งจ์ฒ์ ๋ฑ ํ๋ฒ๋ง ์คํ์ด ๋๋ ๊ฒ์ผ๋ก ์๊ณ ์๋๋ฐ, ์ ๊ฐ ์๊ณ ์๋ ๋ฉ๋ชจ๋ฆฌ๋์๋ while๋ฌธ์ ๋ฌดํ๋ฃจํ๋ผ๋์ง ์ฌ๊ท์์ ๋๋ด์ผํ๋ if๋ฌธ์ ์กฐ๊ฑด์ด ์ ๋๋ก ๊ฐ์ถ์ด์ ธ์์ง์์ ๋ฌดํ์ฌ๊ท๊ฐ ๋๋ ๊ฒ์ด ๋ฉ๋ชจ๋ฆฌ๋์๋ก ์ ๊ณ ์๋ ๋ฐ, ๋ฑ ํ๋ฒ๋ง ์คํ๋๋ ์ด๊ฒฝ์ฐ์ ์ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ์ผ์ด๋๋์ง ๋ํ ๋๋ฒ์งธ ์ธ์๊ฐ ๋น๋ฐฐ์ด์ด๋ผ์ ๋ฑ ํ๋ฒ๋ง ์คํ๋๋๋ฐ ์ง๋ฌธ๋๋ฆฐ ์ฝ๋์ฒ๋ผ forCleanup์ด๋ผ๋ ๋ณ์๋ฅผ ์ฌ์ฉํด ๋ฑ ํ๋ฒ๋ง ๋ ์คํ๋๋๋ก ์กฐ์น๋ฅผ ์ทจํด์ผํ๋ ์ง ์ดํด๊ฐ ๋์ง ์์ต๋๋ค.