React, TypeScript, Recoil, scss
Youtube API, Figma
- ๋งํฌ ์ ์ https://console.cloud.google.com/apis/dashboard
- ์ ํ๋ก์ ํธ ์์ฑ
- API ๋ฐ ์๋น์ค ์ฌ์ฉ์ค์ ์์ Youtube Data API v3 ๊ฒ์ ํ ์ฌ์ฉ ํด๋ฆญ
- ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด ๋ง๋ค๊ธฐ์์ ์ ๋ณด ์ ๋ ฅ ํ API Key ๋ฐ๊ธ ๋ฐ๊ธฐ
ํด๋น ํ๋ก์ ํธ์ ๊ธฐํ์ ์ด๋ ์ต๋๋ค!
"๊ทธ๋ ์ ๋ถ์๊ธฐ์ ๊ธฐ๋ถ์ ๋ฐ๋ผ ์์ ์ ์ถ์ฒํด์ฃผ๋ ๋ฎค์งํ๋ ์ด์ด๋ ์ด๋ ์์๊น?"
์์ ๊ฐ์ ์๊ฐ์ ํ๊ฒ๋์๊ณ ๋๋ง์ ๊ฐ์ ๋ฎค์งํ๋ ์ด๋ฅผ ๋ง๋ค์ด๋ณด๊ณ ์ ํด๋น ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ์์ต๋๋ค.
๋ฉ๋ด๋ ๋ฌด๋ ์ ํ, ๋ฌด๋ํ๋ ์ด, ๋ง์ดํ๋ ์ด, ๊ฒ์
์ด ์์ต๋๋ค.
- ์ ์ ๊ฐ ์ค๋ ํ๋ฃจ์ ๊ธฐ๋ถ, ๋ถ์๊ธฐ ๋ฐ ๊ฐ์ ์ ์๋ง๋ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ ํํ ์ ์๋ ํ์ด์ง ์ ๋๋ค.
- ๋ ๊ฐ์ง ์ ํ์ง๋ฅผ ๋ชจ๋ ํด๋ฆญํ์ ์์๋ง ํ๋จ MOOD PLAY๋ฒํผ์ ๋๋ฅด๋ฉด ๋ฌด๋ํ๋ ์ด ํ๋ฉด์ผ๋ก ๋์ด๊ฐ๋๋ค.
- ๋ ๊ฐ์ง ์ ํ์ง ์ค ํ๋๋ผ๋ ํด๋ฆญํ์ง ์์์ ๋๋ ์๋ด ๋ชจ๋ฌ์ฐฝ์ด ๋ํ๋ฉ๋๋ค.
- ๋จผ์ ์๋จ์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ ํํฉ๋๋ค.
- ํด๋น ์นดํ
๊ณ ๋ฆฌ๋ ํ์ฌ
'์ฐจ๋ถํ'
,'์ ๋๋'
๋๊ฐ์ง๊ฐ ์์ผ๋ฉฐ ํผ๋๋ฐฑ์ ๋ฐ์ ํ ์ถ๊ฐํ ์์ ์ ๋๋ค.
- ์๋จ์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ ํํ๋ฉด ๊ทธ ํค์๋์ ์๋ง๋ ๋๋ฒ์งธ ์นดํ ๊ณ ๋ฆฌ๊ฐ ๋ํ๋ฉ๋๋ค.
์ฐจ๋ถํ
์ ํด๋ฆญ ์์ ์ ๋
,์ง์คํ ๋
,ํ์ด ํ์ํ ๋
,ํธ์ํ ๋ถ์๊ธฐ
์ ์นดํ ๊ณ ๋ฆฌ๊ฐ ๋์ค๋ฉฐ ๋ ๋ง์ ์นดํ ๊ณ ๋ฆฌ๋ ์ถํ์ ์ถ๊ฐํ ์์ ์ ๋๋ค.์ ๋๋
์ ํด๋ฆญ ์๊ธฐ๋ถ ์ข์ ๋
,์ด๋ํ ๋
,๋๋ผ์ด๋ธํ ๋
,ํ์ด ํ์ํ ๋
์ ์นดํ ๊ณ ๋ฆฌ๊ฐ ๋์ค๋ฉฐ ๋ ๋ง์ ์นดํ ๊ณ ๋ฆฌ๋ ์ถํ์ ์ถ๊ฐํ ์์ ์ ๋๋ค.
- ์ ์ ๊ฐ ์ ํํ ๊ธฐ๋ถ, ๋ถ์๊ธฐ์ ์ด์ธ๋ฆฌ๋ ์ฅ๋ฅด๋ค์ ์ ํํ ์ ์๋ ํ์ด์ง์ ๋๋ค.
์ฐจ๋ถํ
์ ์ด์ธ๋ฆฌ๋ ์ฅ๋ฅด ๋ฆฌ์คํธ๋์ด์ฟ ์คํฑ
,์ธ๋
,์ง๋ธ๋ฆฌ
,๋ด์์ด์ง
,๋กํ์ด
,๋ฐ๋ผ๋
,ํ
,์ฌ์ฆ
๊ฐ ์์ผ๋ฉฐ ์ถํ์ ์ฅ๋ฅด ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ ์์ ์ ๋๋ค.์ ๋๋
์ ์ด์ธ๋ฆฌ๋ ์ฅ๋ฅด ๋ฆฌ์คํธ๋๋์ค
,K-POP
,ํ
,์ด์ฟ ์คํฑ
,R&B
,ํํฉ
์ด ์์ผ๋ฉฐ ์ถํ์ ์ฅ๋ฅด ๋ฆฌ์คํธ๋ฅผ ์ถ๊ฐํ ์์ ์ ๋๋ค.- ์ ์ ๊ฐ ์ํ๋ ์ฅ๋ฅด๋ฅผ ํด๋ฆญํ๋ฉด ํ๋จ์ ๋ฎค์ง ๋ฆฌ์คํธ๊ฐ ๋ํ๋ฉ๋๋ค.
- ๋ฎค์ง๋ฆฌ์คํธ ์ค ๋ฃ๊ณ ์ถ์ ์์ ์ ํด๋ฆญํ๋ฉด ์์ ์ด ์์๋๋ฉฐ ํ๋จ์ ์์ ์ ๋ณด๊ฐ ๋ํ๋ฉ๋๋ค.
- ํ๋จ ๋ฎค์ง ํ๋ ์ด์ด์ ๋ถ๋งํฌ ์์ด์ฝ์ด ์์ผ๋ฉฐ ํด๋น ์์ด์ฝ์ ํด๋ฆญ ์ ๋๋ง์ ํ๋ ์ด ๋ฆฌ์คํธ์ ์ถ๊ฐํ ์๋, ์ถ๊ฐ ๋์ด์๋ ๋ฆฌ์คํธ๋ฅผ ์ญ์ ํ ์๋ ์๋ ์ฐฝ์ด ๋ํ๋ฉ๋๋ค.
- ๋ํ, ๋ณผ๋ฅจ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
- ๋๋ง์ ํ๋ ์ด๋ฆฌ์คํธ์ ์ ๋ณด๋ค์ด ๋์ด๋์ด ๋ํ๋ฉ๋๋ค.
- ํด๋น ํ๋ ์ด ๋ฆฌ์คํธ๋
localStorage
์ ์ ์ฅ์ด ๋์ด์์ต๋๋ค. - ํ๋ ์ด ๋ฆฌ์คํธ ์ค ๋ฃ๊ณ ์ถ์ ์์ ์ ํด๋ฆญํ๋ฉด ์์ ์ด ์์๋๋ฉฐ ํ๋จ์ ์์ ์ ๋ณด๊ฐ ๋ํ๋ฉ๋๋ค.
- ํ๋จ ๋ฎค์ง ํ๋ ์ด์ด์ ๋ถ๋งํฌ ์์ด์ฝ์ด ์์ผ๋ฉฐ ํด๋น ์์ด์ฝ์ ํด๋ฆญ ์ ํ๋ ์ด ๋ฆฌ์คํธ์์ ์ญ์ ํ ์ ์๋ ์ฐฝ์ด ๋ํ๋ฉ๋๋ค.
- ์ ๊ณต๋๋ ์นดํ ๊ณ ๋ฆฌ์์ ์ ์ ๊ฐ ์ํ๋ ํญ๋ชฉ์ด ์์ ๊ฒฝ์ฐ ๊ฒ์ํ ์ ์๋ ํ์ด์ง์ ๋๋ค.
- ์ํ๋ ๊ฒ์ ํค์๋๋ฅผ ์ ๋ ฅํ ๋ค enter ๋๋ ์ฐ์ธก ๊ฒ์๋ฒํผ์ ๋๋ฅด๋ฉด ํด๋น ํค์๋์ ํ๋ ์ด๋ฆฌ์คํธ๊ฐ ๊ฒ์๋ฉ๋๋ค.
- ๊ฒ์๊ฒฐ๊ณผ๋ ํ๋จ์ ๋ํ๋๋ฉฐ ๋ฃ๊ณ ์ถ์ ๋ ธ๋๋ฅผ ํด๋ฆญํ๋ฉด ์์ ์ด ์์๋๋ฉฐ ํ๋จ์ ์์ ์ ๋ณด๊ฐ ๋ํ๋ฉ๋๋ค.
- ํ๋จ ๋ฎค์ง ํ๋ ์ด์ด์ ๋ถ๋งํฌ ์์ด์ฝ์ด ์์ผ๋ฉฐ ํด๋น ์์ด์ฝ์ ํด๋ฆญ ์ ๋๋ง์ ํ๋ ์ด ๋ฆฌ์คํธ์ ์ถ๊ฐํ ์๋, ์ถ๊ฐ ๋์ด์๋ ๋ฆฌ์คํธ๋ฅผ ์ญ์ ํ ์๋ ์๋ ์ฐฝ์ด ๋ํ๋ฉ๋๋ค.
- Navigation์ ์ข์ธก ์ฌ์ด๋๋ฐ๋ก ๋ํ๋ด์์ผ๋ฉฐ ๋ฉ๋ด๋
๋ฌด๋ ์ ํ, ๋ฌด๋ํ๋ ์ด, ๋ง์ดํ๋ ์ด, ๊ฒ์
์ด ์์ต๋๋ค. Yoon-Play
์ ๋ฉ์ธ ์์์ ๊ทธ๋ฆฐ๊ณ์ด๋ก ๋ํ๋ด์์ต๋๋ค.- ํ๋จ ๋ฎค์ง ํ๋ ์ด์ด๋ ๋ธ๋ฌ์ฒ๋ฆฌ๋ฅผ ํ์ฌ UI๊ฐ ๊น๋ํด๋ณด์ด๊ณ ์์ ์ ๋ณด์ ๋ ์ง์คํ ์ ์๋๋ก ํ์์ต๋๋ค.
- ํ๋จ ๋ฎค์ง ํ๋ ์ด์ด์ ์คํ๋๊ณ ์๋ ๋ฎค์ง์ ์ด๋ฏธ์ง๋ฅผ border-radius์ beforeํ๊ทธ๋ฅผ ์ด์ฉํ์ฌ CD์ ์ด๋ฏธ์ง๋ฅผ ์ฐ์์ํฌ ์ ์๋๋ก ํ์์ต๋๋ค.
- ๋ฐ์ดํฐ์ ์ํ๊ด๋ฆฌ๋
Recoil
์ ์ด์ฉํ์์ต๋๋ค. - ์ ํํ ๋ถ์๊ธฐ,๊ธฐ๋ถ์ ์นดํ ๊ณ ๋ฆฌ์ ์ฅ๋ฅด ํค์๋๋ฅผ ํ๋ ์ด๋ฆฌ์คํธ ํค์๋์ ํจ๊ป API๋ฅผ ํธ์ถํ๋๋ก ํ์์ต๋๋ค.
- Axios์ useQuery๋ฅผ ์ด์ฉํ์ฌ API ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ก์ ๊ฒฝ์ฐ ๊ฒ์๊ฒฐ๊ณผ๊ฐ ๋ํ๋๋ฉฐ ๋ฃ๊ณ ์ถ์ ํน์ ์ํ๋ ๋ฎค์ง์ ํด๋ฆญํ์ฌ ์ฆ๊ฒจ์ฐพ๊ธฐ๋ฅผ ํ ์ ์์ผ๋ฉฐ, ์์ ์ ์ ์ง/์ฌ์ํ ์ ์๊ณ ๋ณผ๋ฅจ ์กฐ์ ๋ ๊ฐ๋ฅํฉ๋๋ค. ์ฆ๊ฒจ์ฐพ๊ธฐํ ๋ฐ์ดํฐ๋ localStorage์ ์ ์ฅํ๋๋ก ํ์์ต๋๋ค.
- recoil-persist๋ฅผ ์ด์ฉํ์ฌ ์๋ก๊ณ ์นจํ์ฌ๋ ๋ฐ์ดํฐ๊ฐ localStorage์ ์ ์ฅ๋๋๋ก ํ์์ต๋๋ค.
- localStorage์ ์ ์ฅ๋์ด์๋ ๋ฎค์ง ๋ฐ์ดํฐ๋ ๋ง์ด ํ๋ ์ด์ ๋ถ๋ฌ์ map()์ ์ด์ฉํ์ฌ ๋ํ๋ด์์ต๋๋ค.
- ๋ง์ด ํ๋ ์ด์ ์ ์ฅ๋์ด์๋ ๋ฎค์ง์ ๋ฌด๋ํ๋ ์ด์์ ๊ตฌ๋ถํ ์ ์๋๋ก ํํธ ์์ด์ฝ์ผ๋ก ๋ํ๋ด์๊ณ , ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ์์ด ์ฑ์์ง ํํธ๊ฐ, ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ์ฑ ์ด ์ฑ์์ ธ์์ง ์์ ํํธ๊ฐ ๋ํ๋ฉ๋๋ค.
Yoon-Play๋ฅผ ๊ตฌํํ๋ฉด์ ๋์์ธ์ ์ค์ํ๊ฒ ์๊ฐํ์๊ณ ์๋ง์ ๋ ํผ๋ฐ์ค๋ฅผ ํ์๊ณ ์ํ๋ ํ๋ฉด์ด ๋์ฌ ๋๊น์ง ํผ๊ทธ๋ง๋ก ๊ทธ๋ฆผ์ ๊ทธ๋ ค๊ฐ๋ฉฐ ์์ฑ์ ํ์ต๋๋ค. ๊ธฐํ๋ถํฐ ๋์์ธ ๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ฅ ๊ตฌํ๊น์ง ๋ชจ๋ ๊ฒ์ ํผ์ ํ๋ค๋ณด๋ ์ฒ์ ์์ํ๋ ๊ฒ ์ด๋ ค์ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ง๋ง ํ๋์ฉ ๊ธฐํ์ ํ๋ฉฐ ์ ํ๊ณ ๋ ๋ค ์กฐ๊ธ์ฉ ์๋๋ฅผ ๋ถ์ผ ์ ์์๊ณ 2์ผ๋์ ๋ฐค์์๊ฐ๋ฉฐ ์์ฑํ ํ๋ก์ ํธ์
๋๋ค. ์ข ๋ ์๋ฒฝํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ณ ์ถ์์ง ๊ทธ๋ ์ง ๋ชปํ ๊ฒ์ ์์ฌ์์ด ๋จ๋ ๊ฒ ๊ฐ์ต๋๋ค. Youtube Api๋ฅผ ์ด์ฉํ์ฌ ํ๋ ๊ฒ์ด๊ธฐ๋๋ฌธ์ ํ๋ฃจ ํ ๋น๋์ ๋ค ์ฌ์ฉํ๊ณ ๋๋ฉด 403
์๋ฌ๊ฐ ๋๋ฉฐ ํ๋ฉด์ด ๋ํ๋์ง ์๋๋ฐ ์ด๋ถ๋ถ์ ์๋ฌ๊ฐ ๋๋ฉด ๋ฌธ๊ตฌ๋ฅผ ๋ํ๋ด์ด ์ฒ๋ฆฌํ ์ ์์ ๊ฒ ๊ฐ์์ง๋ง ๋ง์ฒ๋ผ ์ฝ๊ฒ ๋์ง์์ ํด๋น ๊ธฐ๋ฅ์ ๊ตฌํ์ ํ์ง ๋ชปํ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฎค์ง์ ์ ์งํ๊ณ ์ฌ์ํ๋ ๊ธฐ๋ฅ๊ณผ ๋ณผ๋ฅจ ์กฐ์ ์ ๊ฐ๋ฅํ์ง๋ง ์ด์ ์ด๋ ๋ค์ ๋ฎค์ง ๋ฆฌ์คํธ๋ก ๋์ด๊ฐ๋ ๊ฒ์ด ๊ตฌํ๋์ด์์ง ์์ ์์ฌ์์ด ๋จ์ต๋๋ค. ์ถํ์ ์ถ๊ฐ์ ์ผ๋ก ๋ณด์์ ํด์ผ๊ฒ ๋ค ๋ผ๋ ์๊ฐ์ ํ๊ฒ๋์์ต๋๋ค.
์์ฌ์์ด ๋จ๊ธฐ๋ ํ์ง๋ง ๋์์ธ์ด๋ ๊ธฐํ์ ์์ด์ ๋ง์กฑํ๋ ํ๋ก์ ํธ์ด๋ฉฐ React์ ๋ํด ๋ ๊น๊ฒ ์ ์ ์๋ ์๊ฐ์ด์๊ณ ํ๋ค์๋ ๋งํผ ๋ฟ๋ฏํจ์ด 2-3๋ฐฐ๊ฐ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค!
ํด๋น ์ฝ์ค์ ๋ง์ง๋ง ๊ณผ์ ๋ผ๋ ๊ฒ์ ๋์ฑ ๋ ์ด์ฌํ ์ํ์๊ณ ๋ง๋ฌด๋ฆฌ๋ฅผ ์ข๊ฒํ ์ ์๊ฒ ๋์ด์ ์ข์ต๋๋ค! ํ๋ฌ๋์ ์ ๋ง ๋ง์ด ๋ฐฐ์ ๊ณ ํ๋ก์ ํธ๋ฅผ ํ๋ฉฐ React์ ๋ํด ์ ์ ์ ์๊ฒ ๋๋ ์๊ฐ์ด์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.