Flutter Firebase Hosting ์—ฐ๋™

ํ–ฅ์‹ ๋ฃŒยท2023๋…„ 6์›” 23์ผ
0

Flutter Firebase

๋ชฉ๋ก ๋ณด๊ธฐ
2/2

๐Ÿšง ํ•ด๋‹น ๊ธ€์€ Mac์„ ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.





1. Firebase ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ๋ฐ ์„ค์ •ํ•˜๊ธฐ


Firebase ์ฝ˜์†”๋กœ ์ด๋™ํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€ ํ›„๋กœ๋Š” ํ”„๋กœ์ ํŠธ ์ด๋ฆ„๋งŒ ์„ค์ • ํ›„ ์ญ‰ ๋ฒ„ํŠผ๋งŒ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.



์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์˜ ๋นŒ๋“œ ํƒญ์„ ๋ˆ„๋ฅด๋ฉด ๋ณด์ด๋Š” Firebase Hosting์„ ํด๋ฆญ ํ›„ ์‹œ์ž‘ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

์ดํ›„ ๋‚˜์˜ค๋Š” ์•ˆ๋‚ด ํ™”๋ฉด์˜ ์„ค์ • ์ˆœ์„œ๋ฅผ ๋”ฐ๋ผ ์—ฐ๊ฒฐ์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.


ํ”„๋กœ์ ํŠธ ๋ฐ”๋กœ ๊ฐ€๊ธฐ์˜ ๊ฒฝ์šฐ ํด๋ฆญํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค!

์ฒซ ๋ฒˆ์งธ ๊ณผ์ •

Firebase CLI๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด, Node.js๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค!

Node.js๋ฅผ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด, https://nodejs.org/ko/ ์—์„œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



์ดํ›„ ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
npm install -g firebase-tools



๋‘ ๋ฒˆ์งธ ๊ณผ์ •

firebase login ์˜ ๊ฒฝ์šฐ ํ„ฐ๋ฏธ๋„์—์„œ

firebase init ์˜ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ํ„ฐ๋ฏธ๋„์—์„œ ์ง„ํ–‰ ํ•ด ์ฃผ์„ธ์š”.


๐Ÿ“ข firebase init ์‹œ์— ํ„ฐ๋ฏธ๋„์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋œจ๊ฒŒ ๋˜๋Š”๋ฐ
์„ค๋ช…์ด ์ ํ˜€์žˆ๋‹ค์‹œํ”ผ space๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ์–ด์•ผ์ง€ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.


๊ทธ๋ƒฅ ์œ„์•„๋ž˜๋กœ ์ด๋™ ํ›„ space ๋ˆ„๋ฅด์ง€ ์•Š๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋‹ˆ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”!



ํ˜ธ์ŠคํŒ… ์—”ํ„ฐ ์ดํ›„์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ• ์ง€ ์„ค์ •์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“  ํ›„์ด๋‹ˆ ์ฒซ ๋ฒˆ์งธ๋ฅผ ์„ ํƒํ•ด ์ฃผ์„ธ์š”.


์ดํ›„์—๋Š” ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋‚˜์˜ค๋‹ˆ, ์ž์‹ ์ด ํ˜ธ์ŠคํŒ… ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ด ์ฃผ์„ธ์š”



๋ฐฐํฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ public์œผ๋กœ ํ• ์ง€์— ๊ด€ํ•œ ์งˆ๋ฌธ์ด ๋“ค์–ด์˜ต๋‹ˆ๋‹ค.

๋ณ„๋„๋กœ ์ž…๋ ฅํ•˜์—ฌ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค! ์ผ๋‹จ๋ฝ ์ €๋Š” ์—”ํ„ฐ๋ฅผ ๋ˆŒ๋Ÿฌ public์œผ๋กœ ์„ค์ •ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜์ค‘์— firebase.json์—์„œ ๋ณ€๊ฒฝ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.



single-page-app ๊ตฌ์กฐ์™€ github ์ž๋™ ๋นŒ๋“œ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ ํ•„์š”์— ๋”ฐ๋ผ ๋‹ต๋ณ€ํ•˜๋„๋ก ํ•ฉ์‹œ๋‹ค.


๊ทธ๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉดโ€ฆ ์„ค์ • ์™„๋ฃŒ!


Firebase Web์—์„œ๋„ ๋‹ค์Œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ค๋‹ˆ๋‹ค.

์•„๋ž˜ ํ™”๋ฉด์ด ๋‚˜์™”๋‹ค๋ฉด ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ Firebase ์„ค์ •์€ ์ „๋ถ€ ์ง„ํ–‰๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๊ทธ๋Ÿผ ์ด ์ƒํƒœ์—์„œ ํ”„๋กœ์ ํŠธ ํ„ฐ๋ฏธ๋„์—์„œ firebase deploy ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜์˜จ URL๋กœ ๋“ค์–ด๊ฐ€ ๋ณผ๊นŒ์š”?

Flutter ํ”„๋กœ์ ํŠธ์—์„œ ์„ค์ •ํ•œ ํ™”๋ฉด์ด ์•„๋‹Œ, ์œ„์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

์ €ํฌ๋Š” ์–ด๋””๊นŒ์ง€ Firebase ์„ค์ •๋งŒ์„ ์™„๋ฃŒํ•˜์˜€๊ฑฐ๋“ ์š”. ๐Ÿฅน





2. Flutter Web ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋“œํ•˜๊ธฐ


Flutter Web ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œ ํ•˜๊ธฐ ์ „์— ๋ช‡ ๊ฐ€์ง€ ์„ค์ •์„ ๋ณ€๊ฒฝํ•ด ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿšจ ๋ฐฐํฌ ๋””๋ ‰ํ† ๋ฆฌ ์„ค์ •์„ build/web์œผ๋กœ ์ง„ํ–‰ํ•˜์…จ๋‹ค๋ฉด ์•„๋ž˜์˜ ์„ค์ • ๋ณ€๊ฒฝ์€ ์ง„ํ–‰ํ•˜์ง€ ์•Š์œผ์…”๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค!



ํ”„๋กœ์ ํŠธ์˜ firebase.json ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€๋ฉด ์•„๋ž˜์™€ ๊ธฐ๋ณธ ์„ค์ •์ด ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}


์ด ์ค‘ public์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
"public": "build/web"



์ดํ›„ Flutter Web ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ flutter build web ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ช…๋ น์–ด๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ build/web ํด๋”์— ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค!



๋นŒ๋“œํ•œ ์•ฑ์„ ์›น์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ firebase deploy ๋ฅผ ์ง„ํ–‰ํ•˜์‹ ๋‹ค๋ฉด

๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ Firebase Hosting URL์„ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!



์ฒซ ๋นŒ๋“œ๊ฐ€ ์ ์šฉ๋˜๋Š” ๋ฐ์—๋Š” ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•˜์„ธ์š”!

profile
๋“œ๋ฌธ๋“œ๋ฌธ ๊ธฐ์ดˆ ์ •๋ณด๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ธ”๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€