๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ก์›น ํ”„๋กœ์ ํŠธ/(ํ’€์Šคํƒ)YOUTUBE - ํด๋ก ์ฝ”๋”ฉ

(6)
ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ [SHTUBE : YOUTUBE ํด๋ก ์ฝ”๋”ฉ] SHTUBE : youtube clone site ์‹œ์—ฐ ๋™์˜์ƒ > www.youtube.com/watch?v=slHIeCxyuPU github ๋ฐ”๋กœ๊ฐ€๊ธฐ > github.com/seunghyun1003/youtube ๋ณธ ํ”„๋กœ์ ํŠธ๋Š” YOUTUBEํด๋ก ์ฝ”๋”ฉ์„ ํ†ตํ•ด ์ „๋ฐ˜์ ์ธ ์›น ๊ฐœ๋ฐœ ๊ณต๋ถ€๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์ œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1. ํ”„๋กœ์ ํŠธ ํŠน์ง• ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๊ณ  ์ˆœ์ˆ˜ JavaScript๋กœ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ „์ฒด ์›น ๊ฐœ๋ฐœ์„ ๊ฐœ์ธ์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. 2. ๊ตฌํ˜„ ๊ธฐ๋Šฅ ๋ฐ˜์‘ํ˜• ์›น ๋‹คํฌ ๋ชจ๋“œ ๋™์˜์ƒ ๊ฒŒ์‹œ๋ฌผ CRUD ๊ฒŒ์‹œ๋ฌผ ๊ฒ€์ƒ‰ ๋™์˜์ƒ ๋ณ„ ๋Œ“๊ธ€, ์ข‹์•„์š”, ๋ณด๊ด€ํ•จ ๊ธฐ๋Šฅ ๊ณ„์ • ์ •๋ณด๊ด€๋ฆฌ 3. ์‚ฌ์šฉํ•œ ์–ธ์–ด&ํ”„๋ ˆ์ž„์›Œํฌ ์–ธ์–ด ํ”„๋ ˆ์ž„์›Œํฌ Front-End javascript no framework Back-End python D..
๋‹คํฌ ๋ชจ๋“œ ๊ตฌํ˜„ ๋‹คํฌ ๋ชจ๋“œ, ๋ผ์ดํŠธ ๋ชจ๋“œ ํ† ๊ธ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์‚ฌ์ดํŠธ > A Complete Guide to Dark Mode on the Web "ํ† ๊ธ€ ํ…Œ๋งˆ" ์›น ์‚ฌ์ดํŠธ์˜ ํ…Œ๋งˆ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์•„๋ž˜ 3๊ฐ€์ง€์˜ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์šด์˜์ฒด์ œ ์ˆ˜์ค€์˜ ๋‹คํฌ ๋ชจ๋“œ ์‚ฌ์šฉ์ž์˜ ํ…Œ๋งˆ ์„ค์ • ์ €์žฅ ์œ„ ๋‘๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ๋ผ์ดํŠธ ๋ชจ๋“œ ์ฝ”๋“œ ์„ค๋ช… localStorage์˜ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์™€ ๊ทธ ๊ฐ’์ด "dark"๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ์Šคํƒ€์ผ ์‹œํŠธ ์—ฐ๊ฒฐ href ์†์„ฑ๊ฐ’์„ dark-theme.cssํŒŒ์ผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. "dark"๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” ์Šคํƒ€์ผ ์‹œํŠธ ์—ฐ๊ฒฐ href ์†์„ฑ๊ฐ’์„ light-theme.cssํŒŒ์ผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค. "ํ† ๊ธ€ ๋ฒ„ํŠผ" ํด๋ฆญ์‹œ ToggleThemeํ•จ์ˆ˜ ํ˜ธ์ถœ ToggleTheme() ํ•จ์ˆ˜ : ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ์Šคํ…œ ์„ค์ •์—์„œ ์„ ํƒํ•œ ํ…Œ๋งˆ์— ๋”ฐ๋ผ ..
๋™์˜์ƒํŒŒ์ผ ์ˆ˜์ •, ์‚ญ์ œ ๊ตฌํ˜„ firebase์˜ cloud-firestore์—์„œ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ๊ณผ ๋™์˜์ƒ ํŒŒ์ผ์„ url ๊ณต์œ ๋ฅผ ํ†ตํ•ด ๊ณต์œ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. "๋ฐ์ดํ„ฐ ์‚ญ์ œ" Cloud Firestore์—์„œ ๋ฐ์ดํ„ฐ ์‚ญ์ œ - Firebase๊ณต์‹ ์‚ฌ์ดํŠธ ์ฐธ๊ณ  ๊ฒŒ์‹œ๋ฌผ ์ฝ”๋“œ ์„ค๋ช… โ€ป ์ €๋ฒˆ ๊ฒŒ์‹œ๋ฌผ์—์„œ ์ €์žฅ๋œ ํŒŒ์ผ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ํ•จ์ˆ˜ ์˜€๋˜ renderFileํ•จ์ˆ˜์—์„œ "์‚ญ์ œ ๋ฒ„ํŠผ"์— ๊ด€๋ จ๋œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค. ๋ฆฌ์ŠคํŠธ ๋‚ด์—์„œ ํŒŒ์ผ๋ช… ์˜†์— ์ƒ์„ฑ๋œ ์‚ญ์ œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด removeChild()๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด element๋ฅผ ์‚ญ์ œํ•˜๊ณ , delete()๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด firestore๋‚ด์—์„œ ๋ฌธ์„œ๋ฅผ ์‚ญ์ œํ•œ๋‹ค. ๊ฒฐ๊ณผ
Firebase์˜ Firestore์™€ Storage๋ฅผ ์ด์šฉํ•ด ํŒŒ์ผ ์—…๋กœ๋“œ, ํŒŒ์ผ ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ firebase์˜ authAuthentication์„ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๋งŒ cloud-firestore์— ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค. Cloud Firestore ์ดํ•ดํ•˜๊ธฐ > Firebase ๊ณต์‹ ์‚ฌ์ดํŠธ ์ฐธ๊ณ  ๊ฒŒ์‹œ๋ฌผ "๋ฐ์ดํ„ฐ ์ถ”๊ฐ€" Cloud Firestore์— ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ - Firebase ๊ณต์‹ ์‚ฌ์ดํŠธ ์ฐธ๊ณ  ๊ฒŒ์‹œ๋ฌผ ์›น์—์„œ Storage๋กœ ํŒŒ์ผ ์—…๋กœ๋“œ - Firebase ๊ณต์‹ ์‚ฌ์ดํŠธ ์ฐธ๊ณ  ๊ฒŒ์‹œ๋ฌผ ์ฝ”๋“œ ์„ค๋ช… "ํŒŒ์ผ ์ €์žฅ ๋ฒ„ํŠผ"์„ ํด๋ฆญํ•˜๋ฉด ์ธ์ฆ ์ œ๊ณต์—…์ฒด(google)์— ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž๋ฉด firestore, storage์— ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” addFileํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๋กœ๊ทธ์ธ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋ผ๋ฉด ๋กœ๊ทธ์ธ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ํŒ์—…์ฐฝ์ด ๋œจ๋„๋ก ํ•œ๋‹ค. addF..
Firebase์„ ์ด์šฉํ•ด Authentication, Hosting ํ•˜๊ธฐ firebase์˜ ๊ธฐ์กด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , ํ”„๋กœ์ ํŠธ์— ๊ฐ„๋‹จํžˆ ๊ตฌ๊ธ€๋กœ ๋กœ๊ทธ์ธํ•˜๊ฑฐ๋‚˜ ๊ตฌ๊ธ€๋กœ ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์ œ๊ณต๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. "์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ์ ํŠธ์— Firebase์ถ”๊ฐ€" Firebase๊ณต์‹ ์‚ฌ์ดํŠธ ์ฐธ๊ณ  ๊ฒŒ์‹œ๋ฌผ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•ด ์„œ๋ฒ„ ์ด์šฉํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์›น์‚ฌ์ดํŠธ์—์„œ ํ™•์ธํ•˜๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์— firebase serve ์ž…๋ ฅ "Firebase์˜ Authentication๋กœ ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๊ตฌํ˜„" Firebase๊ณต์‹ ์‚ฌ์ดํŠธ ์ฐธ๊ณ  ๊ฒŒ์‹œ๋ฌผ 1. ๊ตฌ๊ธ€๋กœ ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ 1) ์ฝ”๋“œ ์„ค๋ช… firebase.auth().signInWithPopup(provider); // ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ํŒ์—… ์ฐฝ ์‹คํ–‰ firebase.auth().signOut(); //๊ตฌ๊ธ€ ๊ณ„์ • ๋กœ๊ทธ์•„์›ƒ (fireba..
ํ”„๋ก ํŠธ ์—”๋“œ ๊ฐœ๋ฐœ ๋ชจ๋ฐ”์ผ, ํƒœ๋ธ”๋ฆฟ, PC๋ฒ„์ „์˜ ๋ฐ˜์‘ํ˜• ์›น์‚ฌ์ดํŠธ iframeํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด ์œ ํŠœ๋ธŒ ์˜์ƒ ๊ฐ€์ ธ์˜ค๊ธฐ - ๋™์˜์ƒ๋„ ๋ฐ˜์‘ํ˜•์œผ๋กœ! ๋‹คํฌ๋ชจ๋“œ,๋ผ์ดํŠธ๋ชจ๋“œ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ํ† ๊ธ€๋ฒ„ํŠผ ์Šฌ๋ผ์ด๋“œ ๋ฉ”๋‰ด 1. ๋ชจ๋ฐ”์ผ, ํƒœ๋ธ”๋ฆฟ, PC๋ฒ„์ „์˜ ๋ฐ˜์‘ํ˜• ์›น์‚ฌ์ดํŠธ 2. iframeํƒœ๊ทธ๋ฅผ ์ด์šฉํ•ด ์œ ํŠœ๋ธŒ ์˜์ƒ ๊ฐ€์ ธ์˜ค๊ธฐ 3. ๋‹คํฌ๋ชจ๋“œ,๋ผ์ดํŠธ๋ชจ๋“œ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ํ† ๊ธ€๋ฒ„ํŠผ 4. ์Šฌ๋ผ์ด๋“œ ๋ฉ”๋‰ด