๐ง์ํฉ
YouTube API ํ์ฉํ ํ๋ก์ ํธ๋ฅผ ํ๋ ์ค์ ํ๋ฃจ ์์ฒญ ์๋ฅผ ์ด๊ณผํด์ ์์ฒญ์ด ์ ํ๋์๋ค.๐ฎ
์์ฒญ ์๋ฅผ ์ค์ด๊ธฐ ์ํด ๊ฐ์ ์์ฒญ์ด ๋ฐ๋ณต๋๋ค๋ฉด ์์ฒญ์ ๋ณด๋ด์ง ์๋๋ก React Query๋ฅผ ์ ์ฉํด ๋ณด๊ธฐ๋ก ๊ฒฐ์ฌโ๐ฅ
๊ฐ ์์ฒญ์ ์ด๋ค ํค, ์ผ๋ง์ staleTime์ ์ฃผ์๋์ง, ์์ฒญ์ ์ค์ด๊ธฐ ์ํด ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์ณค๋์ง ๊ธฐ๋กํด ๋ณด์๋ค.โ๐ป
๐React Query ํ๋ก์ ํธ์์ ์ฌ์ฉํ๊ธฐ
๐กํ์ํ ์์ฒญ
๐กํ์ฌ ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ฐ ๋ฌธ์ ์
- ํ์ฌ ํ๋ก์ ํธ ๊ตฌ์กฐ
๊ฐ๊ฐ์ ์ปดํฌ๋ํธ์์ ์์ฒญ(๋นจ๊ฐ์)
- ๊ฐ์ ์ฑ๋์์
VideoCard
์ปดํฌ๋ํธ๋ฅผ ํด๋ฆญํ๋ค๋ฉด, ์ฑ๋ ์ ๋ณด
์ ํด๋น ์ฑ๋์ด ์ฌ๋ฆฐ ๋ค๋ฅธ ๋์์
์์ฒญ์ ๋ค์ ํ ํ์๊ฐ ์์
- ๊ทธ๋ฌ๋ ์ด ๊ตฌ์กฐ์ ๊ฒฝ์ฐ
VideoDetail
์ ๋ด์ฉ์ด ๋ฐ๋ ๋ ๋ง๋ค ํ์ ์ปดํฌ๋ํธ๊ฐ ์๋ก ๋ง์ดํธ๋ผ์ ์ฑ๋ ์ ๋ณด
์ ํด๋น ์ฑ๋์ด ์ฌ๋ฆฐ ๋ค๋ฅธ ๋์์
์์ฒญ ๋ฐ์
- ์๋ก์ด ๋น๋์ค๋ฅผ ํด๋ฆญํ์ ๋
์ฑ๋ ์ ๋ณด
, ํด๋น ์ฑ๋์ด ์ฌ๋ฆฐ ๋ค๋ฅธ ๋์์
์ ๋ณด๋ฅผ ๊ณ์ ๋ฐ์์ด - ๊ฐ์ key๋ก ์ฟผ๋ฆฌ ์์ฒญ 2๊ฐ์ฉ ๊ณ์ ๋ฐ์
- ๋ณ๊ฒฝํ ํ๋ก์ ํธ ๊ตฌ์กฐ
๊ฐ์ ์ฑ๋์ VideoCard ์ปดํฌ๋ํธ ํด๋ฆญํ์ ๋, ์ฑ๋ ์ ๋ณด
์ ํด๋น ์ฑ๋์ด ์ฌ๋ฆฐ ๋ค๋ฅธ ๋์์
์์ฒญ ๋ฐ์ํ์ง ์์
๐กkey ๊ฐ๊ณผ staleTime ์ง์
- ๋๋ถ๋ถ ์์ฃผ ๋ณํํ๋ ์ ๋ณด๊ฐ ์๋๊ธฐ ๋๋ฌธ์ staleTime 5๋ถ์ผ๋ก ์ค์
- ์ธ๊ธฐ ๋์์, ๊ฒ์ํ ๋์์ staleTime 1๋ถ์ผ๋ก ์ค์
๊ฒ์ํ์ ๋ 1๋ถ์ ๋ ์ง๋๋ฉด ์๋ก์ด ์ ๋ณด๋ฅผ ๋ฐ์์์ผ ํ๋ค๊ณ ํ๋จ
- ๋น๋์ค ๋๊ธ staleTime 10์ด๋ก ์ค์
๋๊ธ์ ๋น๊ต์ ๋นจ๋ฆฌ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ 10์ด๊ฐ ์ ๋นํ๋ค ํ๋จ
์ธ๊ธฐ ๋์์
- key :
['videos', null]
- staleTime : 1๋ถ
๊ฒ์ํ ๋์์
- key :
['videos', ๊ฒ์ํ keyword]
๊ฐ์ keyword๋ก ๊ฒ์ํ ๊ฒฝ์ฐ staleTime ๋์์ ์ฌ์์ฒญ X
- staleTime : 1๋ถ
๋น๋์ค ์ ๋ณด
- key :
['video', 'detail', videoId]
- staleTime : 5๋ถ
ํด๋น ์ฑ๋์ด ์ฌ๋ฆฐ ๋ค๋ฅธ ๋์์
- key :
['videos', 'related', channelId]
- staleTime : 5๋ถ
์ฑ๋ ์ ๋ณด
- key :
['channel', channelId]
- staleTime : 5๋ถ
ํด๋น ๋น๋์ค ๋๊ธ
- key :
['comment', videoId]
- staleTime : 10์ด