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

โœ”๏ธ Etc.

[Firebase] Firebase ์›น ํ˜ธ์ŠคํŒ… ์ƒ์„ฑ, ๋ฐฐํฌํ•˜๊ธฐ + ๊ด€๋ จ ์—๋Ÿฌ

728x90

ํŒŒ์ด์–ด๋ฒ ์ด์Šค์— ์›น ํ˜ธ์ŠคํŒ… ์ƒ์„ฑ, ๋ฐฐํฌํ•˜๊ธฐ

ํŒŒ์ด์–ด๋ฒ ์ด์Šค์˜ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด๋ณด์ž

Firebase ?

  • ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋Š” 14๋…„๋„์— ๊ตฌ๊ธ€์—์„œ ์ธ์ˆ˜ํ•œ ๋ชจ๋ฐ”์ผ, ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœํ”Œ๋žซํผ! 16๋…„๋„ ๋ถ€ํ„ฐ ๊ตฌ๊ธ€์—์„œ ์„œ๋น„์Šค๋ฅผ ๋Œ€ํญ ๊ฐ•ํ™”ํ•œ Baas(Backend as a service) ์„œ๋น„์Šค ์ด๋ฏ€๋กœ, ๋ฐฑ์—”๋“œ๋ฅผ ๋Œ€์‹ ํ•ด ์ค˜์„œ ํ”„๋ก ํŠธ์—”๋“œ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•ด์ค€๋‹ค.
  • ์ ์šฉ๋Œ€์ƒ : android, ios, web 
  • ๋Œ€ํ‘œ์ ์ธ ๊ธฐ๋Šฅ : ์ธ์ฆ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์Šคํ† ๋ฆฌ์ง€, ์›๊ฒฉ ๊ตฌ์„ฑ, ํ‘ธ์‹œ ์•Œ๋žŒ, Analytics
  • ์žฅ์ 
    1. ๊ฐ„ํŽธํ•œ ๊ตฌ์ถ• : ์ธํ”„๋ผ ์ „๋ฐ˜์˜ ํ™˜๊ฒฝ ๊ตฌ์„ฑ๊ณผ ํ™•์žฅ ๋“ฑ์„ ์•Œ์•„์„œ ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž๋Š” ๊ทธ์ € ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์—ฐ๋™์‹œ์ผœ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
    2. ๊ฐ€๊ฒฉ : ํŠน์ • ์‚ฌ์šฉ๋Ÿ‰ ์ดˆ๊ณผ์‹œ ๊ฐ€๊ฒฉ ์ง€๋ถˆ์ด ์žˆ์ง€๋งŒ, ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋Š” ๊ธฐ๊ฐ„ ์ƒ๊ด€์—†์ด ๋ฌด๋ฃŒ๋กœ ๊ฐ€๋Šฅ!!
    3. ๋‹ค์–‘ํ•œ ๊ธฐํƒ€ ์„œ๋น„์Šค : ๊ตฌ๊ธ€์—์„œ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ตฌ๊ธ€ ์„œ๋น„์Šค ์—ฐ๋™ ๊ฐ€๋Šฅ

Firebase Web Hosting?

  • ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ”„๋กœ๋•์…˜ ๋“ฑ๊ธ‰ ์›น ์ฝ˜ํ…์ธ  ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค
  • ๋ฐฑ์—”๋“œ ๊ธฐ๋Šฅ์„ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ํ˜•ํƒœ๋กœ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ
  • Pricing :
    • ์ €์žฅ์†Œ: 10 GB
    • Data transfer : 360 MB/day

Firebase ์›น ํ˜ธ์ŠคํŒ… ์ƒ์„ฑ, ๋ฐฐํฌํ•˜๊ธฐ ์ž‘์—… ์ˆœ์„œ๋Š” ํฌ๊ฒŒ ๋‹ค์Œ ์ˆœ์„œ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

  1.  Firebase ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
  2.  Firebase ํ˜ธ์ŠคํŒ… ์„ค์ •
  3.  Firebase ์ดˆ๊ธฐํ™” 
  4.  Firebase ๋ฐฐํฌ ๋ฐ ํ™•์ธ

 

1. Firebase ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

1-1 ๋กœ๊ทธ์ธ

์•„๋ž˜ ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€์„œ ์ฝ˜์†”๋กœ ์ด๋™ > ๊ณ„์ • ์„ ํƒ ๊ตฌ๊ธ€ ๊ณ„์ •์„ ํ†ตํ•ด ๋กœ๊ทธ์ธ์„ ์ง„ํ–‰ํ•ด ์ฃผ์„ธ์š”.

https://console.firebase.google.com/

1-2 ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ํด๋ฆญ

ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์ค๋‹ˆ๋‹ค.

'๊ณ„์†' ํด๋ฆญ!

๊ธฐ๋‹ค๋ฆฌ๋‹ค ๋ณด๋ฉด~

์งœ์ž”! '๊ณ„์†' ํด๋ฆญ!

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์™„๋ฃŒ!

 

2. Firebase  ํ˜ธ์ŠคํŒ… ์„ค์ •

2-1 Firebase CLI ์„ค์น˜

ํ„ฐ๋ฏธ๋„์— ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด npm์ด ์ž๋™์œผ๋กœ Firebase CLI ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

Firebase CLI๋Š” npm์„ ํ†ตํ•ด ๋ฐฐํฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— npm์ด ์„ค์น˜๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$ npm install -g firebase-tools

 

 

2-2 Firebase Login

Firebase CLI๊ฐ€ Firebase์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.

npm์œผ๋กœ ์„ค์น˜ํ•œ firebase-tools ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.

$ firebase login

 

Firebase์˜ CLI ์‚ฌ์šฉ ๋ฐ ์—๋Ÿฌ ๋ฆฌํฌํŒ… ์ •๋ณด์— ๊ด€ํ•œ ์ˆ˜์ง‘์„ ํ—ˆ์šฉํ•˜๊ฒ ๋ƒ๋Š” ์งˆ๋ฌธ์œผ๋กœ y ํ˜น์€ n ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ!

Waiting for authentication...์ด๋ผ๋Š” ๋ฌธ๊ตฌ์™€ ํ•จ๊ป˜ ์ดํ›„์— ๊ณ„์ • ์„ ํƒ์„ ์š”์ฒญํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ € ์ฐฝ์ด ๋œจ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ณ„์ •์„ ์„ ํƒํ•˜๊ณ  ํ—ˆ์šฉ! ํด๋ฆญ

 

๋กœ๊ทธ์ธ์ด ์™„๋ฃŒ๋˜๋ฉด  Firebase CLI ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜์˜€๋‹ค๋Š” ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

cmd์—์„œ๋„ ์„ฑ๊ณต ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค~!๐Ÿ˜„

 

3. ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”

ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™”๋ฅผ ํ†ตํ•ด Firebase ํ”„๋กœ์ ํŠธ์— ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.

3-1 firebase init

์›น ํŒŒ์ผ์„ ๋‹ด์„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ ํ›„ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. 

$ firebase init

Firebase Project๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋ณด์ด๋ฉฐ,

Firebase์˜ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๊ฑด์ง€ ๋ฌผ์–ด๋ณด๋Š” ์„ ํƒ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Hosting์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ํ™”์‚ดํ‘œ ๋ฒ„ํŠผ์œผ๋กœ ์ด๋™ ํ›„ ์ŠคํŽ˜์ด์Šค๋ฐ”๋กœ ์ฒดํฌ ํ•œ ๋‹ค์Œ ์—”ํ„ฐ!

์ด์ „ 1. firebase ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ง„ํ–‰์„ ํ†ตํ•ด ์ƒ์„ฑํ•˜์˜€๋˜ ํ”„๋กœ์ ํŠธ(hostingdemo)๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— 

Use an existing project ๋ฅผ ์„ ํƒํ•œ ํ›„ ์—”ํ„ฐ!

ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก์—์„œ ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ  ์—”ํ„ฐ!

์›น์—์„œ public์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” directory์˜ ์ด๋ฆ„์„ ๋ฌด์—‡์œผ๋กœ ํ• ์ง€ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๊ธฐ๋ณธ ์›น ํŒŒ์ผ(html, css, js ํŒŒ์ผ)๋“ค์ด ๋“ค์–ด๊ฐ€๋Š” repo ์ด๋ฆ„์ด์ฃ !!

์›น ํ™”๋ฉด์€ ์ œ๊ฐ€ ๊ฐ„๋‹จํžˆ to do list๋กœ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ€์กฑํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ ํ•„์š”ํ•˜์‹  ๋ถ„๋“ค ์‚ฌ์šฉํ•˜์„ธ์š” :)

 : https://github.com/lxxyeon/LetsHybrid/tree/main/hosting

ํ˜ธ์ŠคํŒ… ํŒŒ์ผ ๊ตฌ์กฐ

ํŒŒ์ด์–ด๋ฒ ์ด์Šค ๊ธฐ๋ณธ ๊ถŒ์žฅ ๊ฐ’์ธ "public"์œผ๋กœ ์„ค์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€๋Š” ๋‹ค No!

๋ชจ๋“  ์งˆ๋ฌธ์ด ๋์ด ๋‚˜๋ฉด ์„ค์น˜ ์™„๋ฃŒ๊ฐ€ ๋˜๋ฉด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ๋ฌธ๊ตฌ์™€ ํ•จ๊ป˜ CLI์˜ command line์œผ๋กœ ๋ณต๊ท€ํ•ฉ๋‹ˆ๋‹ค.

 

4. Firebase ๋ฐฐํฌ ๋ฐ ํ™•์ธ

๋“œ๋””์–ด ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„!!

4-1 Firebase serve

ํ˜ธ์ŠคํŒ…์„ Firebase์— ์˜ฌ๋ฆฌ๊ธฐ ์ „ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ž‘๋™์ด ์ž˜๋˜๋Š”์ง€ ํ™•์ธ!

$ firebase serve --only hosting

๋ช…๋ น์–ด ์ž…๋ ฅ ์‹œ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์˜ 5000๋ฒˆ ํฌํŠธ์— ์‹คํ–‰๋˜์—ˆ๋‹ค๊ณ  ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

๋‚˜์˜ค๋Š” ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€๋ฉด

์งœ์ž”! ํŽ˜์ด์ง€๊ฐ€ ์ž˜ ๋กœ๋”ฉ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํœด~ ์ด์ œ ๋ฐฐํฌ๋งŒ ๋‚จ์•˜์–ด์š”!!๐Ÿ‘๐Ÿป

+ ์›นํŒŒ์ผ ์ˆ˜์ • ํ›„ ๋กœ์ปฌํ…Œ์ŠคํŠธํ•˜๋‹ˆ 

์œ„ ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€๋‹ˆ ์›นํŒŒ์ผ ์˜ฌ๋ฆฐ๋Œ€๋กœ ์›น ํ™”๋ฉด์ด ์ž˜ ๋‚˜์˜ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

 

4-2 Firebase deploy

์ด์ œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด Firebase ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ ํ˜ธ์ŠคํŒ… ์‚ฌ์ดํŠธ(projectID.web.app ๋ฐ projectID.firebaseapp.com)์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Firebase ํ”„๋กœ์ ํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ์˜ ๋ฐ์ดํ„ฐ์™€ ๋™๊ธฐํ™”ํ•˜๋Š” ์ž‘์—…์ด๋ผ๊ณ  ๋ณด๋ฉด ๋ฉ๋‹ˆ๋‹ค.

$ firebase deploy

๋ช…๋ น์–ด ์ž…๋ ฅ ์‹œ ๋ช‡ ๊ฐœ์˜ ํŒŒ์ผ์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€, ํ˜ธ์ŠคํŒ… ์„ฑ๊ณต ์—ฌ๋ถ€, ํ˜ธ์ŠคํŒ… ์ฃผ์†Œ ๋“ฑ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™„๋ฃŒ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์ถœ๋ ฅ๋œ Hosting URL์— ์ ‘๊ทผํ•˜์—ฌ

๋‹ค์Œ๊ณผ ๊ฐ™์ด Setup Complete ๋ฌธ๊ตฌ์™€ ํ•จ๊ป˜ ๋ฐฐํฌ๊ฐ€ ์ž˜ ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์–ด์š”~:)

hosting ์ฃผ์†Œ๋กœ ๋“ค์–ด๊ฐ€๋„ ๋™์ผํ•œ ํ™”๋ฉด์ด ์ž˜ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ ํ™•์ธ!

๋˜ํ•œ, Firebase Console์—์„œ ๋ฐฐํฌ ๊ธฐ๋ก์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋„๋ฉ”์ธ์— ๋“ค์–ด๊ฐ€๋ฉด ํ…Œ์ŠคํŠธํ•œ ๊ทธ๋Œ€๋กœ ์ž˜ ๋ฐฐํฌ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋„ค์š”!

public ํด๋” ์•ˆ์— ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ deploy ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ฐฐํฌํ•˜๋ฉด ๋ฐ”๋กœ๋ฐ”๋กœ ์ ์šฉ๋œ ์›น ํ™”๋ฉด์„ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


๋ฌด๋ฃŒ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์›น ํ˜ธ์ŠคํŒ… ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค๋‹ˆ !! ๐Ÿ‘๐Ÿป


์˜ค๋žœ๋งŒ์— ํŒŒ์ด์–ด๋ฒ ์ด์Šค ์›น ํ˜ธ์ŠคํŒ…ํ•˜๋‹ˆ๊นŒ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ!

 

Error: Failed to get Firebase project hostingdemo-a9104. Please make sure the project exists and your account has permission to access it.

 

๊ถŒํ•œ์ด ๋งŒ๋ฃŒ๋˜์—ˆ์œผ๋ฏ€๋กœ ์•„๋ž˜ ๋ช…๋ น์–ด ์ˆ˜ํ–‰ํ•˜์—ฌ ๋‚˜์˜ค๋Š” ์ฃผ์†Œ๋กœ ์ž๋™ ์—ฐ๊ฒฐ๋˜์–ด ๊ณ„์ • ๊ถŒํ•œ์„ ๋‹ค์‹œ ๋ฐ›์œผ๋ฉด ํ•ด๊ฒฐ!

firebase login --reauth

๋ฐ˜์‘ํ˜•