setInterval
์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์์ฒญ์ ํ ์ ์์ต๋๋ค. // API ๋ฐ์ดํฐ ํธ์ถ ํจ์
const dataApi = async () => {
const rankApi = await fetcher(METHOD.GET, `/domestic/rank`);
setRankList(rankApi.data);
};
useEffect(() => {
let polling = setInterval(() => {
dataApi();
}, 60000);
// ํ์ด์ง์ ๋ฒ์ด๋ ๊ฒฝ์ฐ polling X
return () => {
clearInterval(polling);
};
}, []);
์ด๋ฐ์์ผ๋ก setInterval ์ ์ฌ์ฉํ์ฌ ์ฃผ๊ธฐ ์๊ฐ์ ๋ฃ๊ณ (60000 = 1๋ถ) 1๋ถ์ ํ ๋ฒ์ฉ API๋ฅผ ์๋กญ๊ฒ call ์ํด์ผ๋ก์จ ์ค์๊ฐ์ผ๋ก ๋ณ๋๋๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์์ ๋ณผ ์ ์์ต๋๋ค.
useEffect๋ฅผ ์ฌ์ฉํด์ ํ์ด์ง๊ฐ ๋ฒ์ด๋ ๋ willdidMount
์ ๊ฐ์ ์ญํ ์ธ useEffect์ return ๋ฌธ ์์ clearInterval
์ ํด์ค๋๋ค.
๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก๋ ์น์์ผ์ ์ฌ์ฉํด ๋ณผ ์ ์์ต๋๋ค. ์น์์ผ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์๋ฐฉํฅ ํต์ ์ ์๋ฏธํฉ๋๋ค.