์ ํ๋ธ ์ฑ ์์ฑ
์ ํ๋ธ์ฑ ์ค๋ช ์๋ฃ: https://docs.google.com/document/d/1vHlO8lgIo1oXBYiecpE8TbG2tHnr3Hmv25UxK_7a5_g/edit#
๋ชฉํ: ์ ํ๋ธ ์ฑ์ ๋ง๋ ๋ค.
์ํ ๊ธฐ๊ฐ: 3.17(๊ธ) 18์๊น์ง
์ ์ถ ๋ฐฉ๋ฒ: main ํน์ ๋ค๋ฅธ ์ฌ๋์ ๋ธ๋์น๋ก ์ ๋ ๋ณํฉํ์ง ์๋๋ก ์ฃผ์ํ์ธ์!
ํน์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, ๋ฐ๋ก ๊ฐ์ฌ์๊ฒ ์๋ ค์ฃผ์ธ์! ํ์ฌ ๊นํ ์ ์ฅ์๋ฅผ ํด๋ก !
ํ์ธ ๊ฐ๋ฅํ๋๋ก ๋ณธ๋ช ์ผ๋ก ๋ธ๋์น ์์ฑ! ๊ณผ์ ์ํ ํ ์๊ฒฉ ์ ์ฅ์๋ก ํธ์!
ํ์ฌ ๊นํ ์ ์ฅ์์์ main ๋ธ๋์น๋ก Pull Request ์์ฑํ๋ฉด ์ ์ถ ์๋ฃ!
Pull Request ์ค๋ช ์ ๊ผผ๊ผผํ๊ฒ ์์ฑ!
์๊ตฌ์ฌํญ ๋ค์ ์๊ตฌ์ฌํญ์ ํ์๋ก ๊ตฌํํ๊ณ ๊ทธ ์ธ ๊ธฐ๋ฅ์ ๋ง์๋๋ก ์ถ๊ฐํ ์ ์๋ค.
- ์ ํ๋ธ api๋ฅผ ์ฌ์ฉํด์ ์ ํ๋ธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ ํ๋ธ Api ์ฌ์ฉ ๋ฐฉ๋ฒ (API KEY ์์ฑํ๋ ๋ฒ)
- Google cloud console๋ก ์ด๋ํ๊ธฐ (https://console.cloud.google.com/)
- Youtube Data API ํ์ฑํ ์ํค๊ธฐ
- API KEY ์์ฑํ๊ธฐ
์ ํ๋ธ API ์์ฒญ ๋ฐฉ๋ฒ
baseURL : https://youtube.googleapis.com/youtube/v3
๊ฒ์์ด๋ก ์ธํ ๋น๋์ค ๋ฐ์ดํฐ: /search?part=snippet&maxResults=10&q={๊ฒ์์ด}
ํน์ ๋น๋์ค ๋ฐ์ดํฐ : /videos?part=snippet&part=contentDetails&part=player&part=statistics&id={videoId}
ํน์ ์ฑ๋ ์ ๋ณด ๋ฐ์ดํฐ: /channels?part=snippet&part=statistics&part=contentDetails&id={channelId}
๋๊ธ ๋ฐ์ดํฐ: /commentThreads?part=snippet&videoId={videoId}
๊ด๋ จ ๋น๋์ค ๋ฐ์ดํฐ: /search?part=snippet&maxResults=10&relatedToVideoId=${videoId}&type=video
์์ฒญ ์ฃผ์ ์ฌํญ
-
ํ๋ฃจ์ ํ๋์ api_key์ ํ ๋น๋ ์์ฒญ ์๊ฐ ์์ต๋๋ค. ๊ทธ ์ด์ ๋์ด๊ฐ๋ฉด ๋ ์ด์ ์์ฒญ์ ๋ชปํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ฉด localStorage์ ๋ฃ์ด์ localStorage์ ์ด๋ฏธ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์์ฒญ์ ๋ณด๋ด์ง ๋ง๊ณ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ์ฑ์ ๊ฐ๋ฐํด ์ค๋๋ค.
-
<React.StrictMode>๋ฅผ ์์ ๋ ๊ฐ๋ฐ์ ํด์ฃผ์ธ์. (์์ฒญ์ด ๋ ๋ฒ์ฉ ๊ฐ์ ๋ ๋ง์ api ํธ์ถ์ ํ๊ฒ ๋ฉ๋๋ค.)
UI ๊ตฌํ ์์ ์์๋ฅผ ์ฐธ๊ณ ๋ก ์์ ๋กญ๊ฒ ๊ตฌํํ๋ค.
๋ฉ์ธ ํ๋ฉด
youtube api ๋ฅผ ์ด์ฉํด์ ์ํ๋ ๊ฒ์์ด์ ๋ง๋ ๋น๋์ค ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ์๋์ ๊ฐ์ UI๋ฅผ ๋ณด์ฌ์ค๋๋ค. Navigation bar (์์ชฝ ๋ถ๋ถ) side bar (์ผ์ชฝ ๋ถ๋ถ)์ UI๋ฅผ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ฒ๋ฆฌํด์ค๋๋ค.
๋น๋์ค ํ๋ฉด
youtube api ๋ฅผ ์ด์ฉํด์ ํน์ ๋น๋์ค, ๋๊ธ, ๊ด๋ จ ๋น๋์ค ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ์๋์ ๊ฐ์ UI๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๊ฒ์ ํ๋ฉด
youtube api ๋ฅผ ์ด์ฉํด์ ์ํ๋ ๊ฒ์์ด์ ๋ง๋ ๋น๋์ค ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด์ ์๋์ ๊ฐ์ UI๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ฃผ์ ์ฌํญ ์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋๋๊ธฐ ๋ฐ์ํ ์คํ์ผ๋ ์ ๊ฒฝ ์ฐ๋ ์คํ์ผ๋ณด๋ค๋ ๊ธฐ๋ฅ ์์ฃผ๋ก ๊ฐ๋ฐํ๊ธฐ ์ต๋ํ ์ดํดํ๊ธฐ ์ฌ์ด ๋ณ์๋ช , ํ์ผ๋ช , ์ปดํฌ๋ํธ๋ช ์ฌ์ฉํ๊ธฐ ์ด๋ ํ ๋ถ๋ถ(๋ฐ์ดํฐ)์ ์ํด์ State ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํ ์ง ์๊ฐํด ๋ณด๊ธฐ React-router-dom api์ ์ค์ฒฉ ๋ผ์ฐํ ์ ์ด์ฉํด์ ๋ ์ด์์์ ๋ง๋ค์ด์ฃผ๊ธฐ