๐Ÿฅฌ๐Ÿ–ํ”„๋ก ํŠธ๋ฅผ Firebase์— ์‹ธ์„œ ๋“œ์…”๋ณด์„ธ์š” | 3 - Firebase ์„ค์น˜์™€ Deploy

Dongjun Kimยท2022๋…„ 12์›” 4์ผ
2
post-thumbnail

์ด๋ฒˆ์—๋Š” deploy๊นŒ์ง€ ํ•ด๋ณด์ž!
1, 2ํŽธ์„ ๋†“์ณค๋‹ค๋ฉด ๊ผญ ๋ณด๊ณ  ์˜ค์ž!

Firebase ์„ค์น˜ ๋ฐ config

npm i firebase

Firebase๋ฅผ ์„ค์น˜ํ•ด์ค€๋‹ค.


์ด์ œ ์•„๊นŒ ์ƒ์„ฑํ–ˆ๋˜ Firebase ํ”„๋กœ์ ํŠธ์—์„œ api key๋‚˜ id ๋“ฑ์ด ๋‹ด๊ธด config object๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค.


์ขŒ์ธก์˜ ํ–„๋ฒ„๊ฑฐ ๋ฉ”๋‰ด๋ฅผ ๋ˆ„๋ฅธ ํ›„ ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ์˜†์˜ ์„ค์ •๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ๋‹ค.


ํ”„๋กœ์ ํŠธ ์„ค์ •์— ๋“ค์–ด๊ฐ€๋ฉด ํ•„์š”ํ•œ ๋‚ด์šฉ์ด ์žˆ๋‹ค.


๋‚ด๋ฆฌ๋‹ค ๋ณด๋ฉด SDK ์„ค์ • ๋ฐ ๊ตฌ์„ฑ์ด ๋‚˜์˜จ๋‹ค. npm์„ ์„ ํƒํ•˜๋ฉด ๋‚˜์˜ค๋Š” ๋‚ด์šฉ์„ src/index.js ์•ˆ์— ๊ทธ๋Œ€๋กœ ๋„ฃ์–ด์ค€๋‹ค. (ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฐ’์ด ๋“ค์–ด ์žˆ์œผ๋‹ˆ๊นŒ ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์ ธ์˜ค๋ฉด ๋œ๋‹ค.)

// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries

// Your web app's Firebase configuration
const firebaseConfig = {
  apiKey: "AIzaSyAP7b_6QFUUs5DjlePHzDP4PN1iZ-yFrPA",
  authDomain: "myproject-daf20.firebaseapp.com",
  projectId: "myproject-daf20",
  storageBucket: "myproject-daf20.appspot.com",
  messagingSenderId: "534036629128",
  appId: "1:534036629128:web:51db7081a6f9f37c3d813d"
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);

Firebase Tools ์„ค์น˜ํ•˜๊ธฐ

Firebase๋ฅผ ์ด์šฉํ•ด ์‚ฌ์ดํŠธ์— deploy๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” firebase-tools ํŒจํ‚ค์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

npm install firebase-tools -g

Firebase์— ๋กœ๊ทธ์ธํ•˜๊ธฐ

firebase login

ํ”„๋กœ์ ํŠธ ํด๋”์—์„œ Firebase์— ๋กœ๊ทธ์ธํ•ด์ค€๋‹ค. (Gitpod ๋“ฑ, ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ๋กœ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” firebase login โ€”no-localhost๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.


๋งํฌ๋ฅผ ํƒ€๊ณ  ๋“ค์–ด๊ฐ€๋ฉด ๋‚ด๊ฐ€ ๋กœ๊ทธ์ธ ํ•˜๋ ค๋Š”๊ฒŒ ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์ด ์žˆ๋‹ค.


๋งž์œผ๋‹ˆ๊นŒ ๋„˜์–ด๊ฐ€์ฃผ์ž.


Authentication Code๋ฅผ ๋ณต์‚ฌํ•œ๋‹ค.


ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋กœ๊ทธ์ธ์ด ๋๋‚œ๋‹ค.


firebase init ์‹คํ–‰ํ•˜๊ธฐ

Firebase init

Firebase ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•ด์ค€๋‹ค.


๋ฐฉํ–ฅํ‚ค๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ๋‚˜์˜จ๋‹ค.
์ŠคํŽ˜์ด์Šค๋ฐ”๋กœ ์„ ํƒํ•˜๊ณ  ์—”ํ„ฐ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

๋Œ€๋ถ€๋ถ„ Storage๋„ ํ•„์š”ํ•˜๊ฒ ์ง€๋งŒ, ์ผ๋‹จ์€ ์‚ฌ์ดํŠธ์— ์˜ฌ๋ฆฌ๋Š”๊ฒŒ ๋ชฉ์ ์ด๋‹ˆ Hosting๋งŒ ์„ ํƒํ•ด์ฃผ๊ณ  ๋„˜์–ด๊ฐ€์ž.

Hosting์ด 2๊ฐœ๊ฐ€ ์žˆ๋Š”๋ฐ ์œ— ์‚ฌ์ง„์ฒ˜๋Ÿผ ์ฒซ๋ฒˆ์งธ๋ฅผ ์„ ํƒํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


public ๋””๋ ‰ํ† ๋ฆฌ ๋กœ ์–ด๋–ค ํด๋”๋ฅผ ์„ ํƒํ• ์ง€ ๋ฌผ์–ด๋ณธ๋‹ค. ์šฐ๋ฆฌ๋Š” dist๋กœ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ๊นŒ dist๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

single-page app๋กœ ์„ค์ •ํ•˜๋ƒ๋Š” ์งˆ๋ฌธ์—๋Š” yes, ๋‚˜๋จธ์ง€๋Š” No๋ผ๊ณ  ํ•ด์ค€๋‹ค.


firebase deploy

์ด์ฏค์—์„œ ํ˜น์‹œ ์ค‘๊ฐ„์— ๊บผ์ง„ ์ ์ด ์žˆ๊ฑฐ๋‚˜ ํ•ด์„œ webpack์œผ๋กœ ํ˜„์žฌ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ bundlingํ•ด์ค˜์•ผํ•˜๋Š” ์ƒํ™ฉ์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ด์ค€๋‹ค.

npm run build

์ด์ œ deploy๋งŒ ๋‚จ์•˜๋‹ค!

firebase deploy

Hosting URL ๋’ค์˜ ์ฃผ์†Œ๋กœ ๊ฐ€๋ณด์ž!


์ž˜ ๋‚˜์˜ค๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๐Ÿ”ฅ๐Ÿ‘๐Ÿป๐Ÿ‘๐Ÿป

๋‹ค์Œ์—๋Š” ์‚ฌ์ดํŠธ๋งˆ๋‹ค ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” Sign in with Google์„ ๊ตฌ์ถ•ํ•ด๋ณด์ž.

profile
์ค‘์š”ํ•œ ๊ฒƒ์€ ๊บพ์ด์ง€ ์•Š๋Š” ๋งˆ์Œโ˜•๏ธ

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