๊ฐœ๋ฐœ.log/firebase

[Firebase] ๊ฐ€๊ณ ์‹ถ์€ ํšŒ์‚ฌ ๋ฌด์ž‘์ • ๋”ฐ๋ผํ•ด๋ณด๊ธฐ#2 - Firebase ์„ค์น˜/Node.js/Vscode/Backend Server๊ตฌ์ถ•

๊ฐœ๋ฐœํ•˜๋Š” ์ฃผ๋””์”จ 2023. 1. 3. 10:23

 

Firebase๋กœ ๋‹น๊ทผ๋งˆ์ผ“์„ ์–ด๋Š ์ •๋„ ๊ตฌํ˜„ํ•œ ์œ ํŠœ๋ธŒ ์ฑ„๋„(์ฝ”๋”ฉ์• ํ”Œ)์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๐Ÿ˜Ž ๋•๋ถ„์— ์ดˆ๋ฐ˜์€ ํด๋ก ์ฝ”๋”ฉ์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉฐ, ํ‹€์„ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ž์„ธํ•œ ์ฝ”๋“œ๋Š” ํ•ด๋‹น ์ฑ„๋„์—์„œ ๋ชจ๋‘ ๊ฒŒ์‹œํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ฑ„๋„๋กœ ๋ฐฉ๋ฌธํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ํ™”๋ฉด ๊ตฌ์„ฑ์— ํ•„์š”ํ•œ node.js์™€ vscode ์—๋””ํ„ฐ๋Š” ๋ฏธ๋ฆฌ ์„ค์น˜๋˜์–ด์žˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ํฌ์ŠคํŒ…ํ•˜์˜€๋‹ค.

 

 

1) Firebase console ์ ‘์†

 

Google์— firebase console ๊ฒ€์ƒ‰ํ•ด์„œ ๋“ค์–ด๊ฐ„ ๋’ค ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€ ํ•ด์ค€๋‹ค. Google ๊ณ„์ •์ด ์žˆ์–ด์•ผํ•˜๋‹ˆ ํ˜น์‹œ๋ผ๋„ ๊ฐ€์ž…ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์€ ๊ฐ€์ž…์„ ํ•ด์•ผ ํ•œ๋‹ค.

 

 

 

2) Firebase console์—์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ถ”๊ฐ€

 

์ดํ›„ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ [์‹œ์ž‘ํ•˜๊ธฐ] ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ์ค€๋น„๊ฐ€ ๋์ด๋‹ค. 

 

๐Ÿ”” Firestore Database : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

Cloud Firestore ์œ„์น˜๋Š” asia-northeast3(์„œ์šธ)๋กœ ์„ค์ •ํ•˜๋ฉด ๋œ๋‹ค. ์œ„์น˜๊ฐ€ ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ˆ ๋ฏธ๊ตญ์ด๋‚˜ ํ•ด์™ธ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋˜์ง€๋งŒ ์†๋„๋Š” ์ฑ…์ž„์ ธ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

 

 

๐Ÿ”” Authentication : ํšŒ์›์ธ์ฆ/๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ

๐Ÿ”” Storage : ์‚ฌ์ง„ ์ €์žฅ

๐Ÿ”” Hosting : ํ˜ธ์ŠคํŒ…

 

 

 

์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ํ•„์š”๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— ์šฐ์„  ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋จผ์ € ์ถ”๊ฐ€ํ•ด ๋ณด์•˜๋‹ค. ์ด ๋ฐ–์—๋„ ๊ฐœ์ธ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋ฉด ์ถ”๊ฐ€ํ•˜์—ฌ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ Backend ๊ตฌ์„ฑ์€ ๋์ด๋‹ค(?) ์ž๋ฐ”๋‚˜ C์–ธ์–ด๋กœ ํž˜๋“ค๊ฒŒ ๋งŒ๋“ค์—ˆ๋˜ ๊ฒƒ์— ๋น„ํ•ด ๋„ˆ๋ฌด ํ—ˆ๋ฌดํ•˜๊ฒŒ ๋ชจ๋“  ๊ฒƒ์„ ํ•ด์ฃผ๋Š” Firebase๋Š” ์ฐธ ์ข‹์€ ์นœ๊ตฌ ๊ฐ™๋‹ค.

 

 

ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ํƒญ์œผ๋กœ ์ด๋™ํ•˜๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ์„ค์ •ํ•œ ๋ถ€๋ถ„์„ ๋ณด์—ฌ์ค€๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค์ •ํ–ˆ๋‹ค๋ฉด Backend ๊ตฌ์„ฑ์ด ์ž˜๋œ ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ์€ VS code๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•œ firebase๋ฅผ ์ ์šฉํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. 

 

 

3) Firebase SDK ์„ค์น˜

 

 

[ํ”„๋กœ์ ํŠธ ๊ฐœ์š”] > [ํ”„๋กœ์ ํŠธ ์„ค์ •] ์— ๋“ค์–ด๊ฐ€ ํ”„๋กœ์ ํŠธ ํ”Œ๋žซํผ์„ ์„ ํƒํ•ด์ค€๋‹ค.

์›น์•ฑ์„ ์„ ํƒํ•ด ๋งŒ๋“ค์–ด์ฃผ๋ฉด, ๋‹‰๋„ค์ž„๊ณผ SDK๊ตฌ์„ฑ์ด ๋‚˜์˜จ๋‹ค. ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด ์•„๋ž˜์—์„œ ์ƒ์„ฑํ•  ํ”„๋กœ์ ํŠธ index.html์— ๋ถ™์—ฌ๋„ฃ์–ด์ฃผ๋ฉด ๋์ด๋‹ค.

 

 

4) Vscode์—์„œ Firebase ์„ค์น˜

 

vscode์—์„œ firebase๋ฅผ ์„ค์น˜ํ•ด์ฃผ๋„๋ก ํ•œ๋‹ค. ํ˜น์‹œ๋ผ๋„ node.js๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ง€๊ธˆ node.js๋ฅผ ์„ค์น˜ํ•ด๋„ ๊ดœ์ฐฎ๋‹ค. node.js์˜ ๋ฒ„์ „์ด ์ตœ์‹ ๋ฒ„์ „์ด ์•„๋‹๊ฒฝ์šฐ ๊ฐ„ํ˜น ์•Œ ์ˆ˜ ์—†๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ตœ์‹ ๋ฒ„์ „์„ ์„ค์น˜ํ•ด์ฃผ๋„๋ก ํ•œ๋‹ค. 

 

ํ„ฐ๋ฏธ๋„์„ ์—ด๊ณ  ๋ณธ๊ฒฉ์ ์œผ๋กœ firebase๋ฅผ ์„ค์น˜ํ•ด์ค€๋‹ค.

 

npm intall -g firebase-tools@9.12.1

 

5) Firebase ๊ณ„์ • ๋กœ๊ทธ์ธ

 

์„ค์น˜๊ฐ€ ์™„๋ฃŒ ๋œ ํ›„ firebase์— ๋กœ๊ทธ์ธ ํ•ด์ฃผ์–ด ์œ„์—์„œ ์ƒ์„ฑํ•œ ์ •๋ณด๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.

firebase login

 

6) Firebase ์ดˆ๊ธฐํ™”

 

firebase๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ŠคํŽ˜์ด์Šค๋ฐ” + ๋ฐฉํ–ฅํ‚ค๋กœ ๋ฉ”๋‰ด๋ฅผ ์กฐ์ž‘ํ•˜๋ฉฐ ์งˆ๋ฌธ์— ๋‹ต์„ ์ฒดํฌํ•˜์—ฌ init ํ•ด์ค€๋‹ค. ์ด๋•Œ firebase console์—์„œ ๋งŒ๋“  ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‚˜์™€์•ผ ์ •์ƒ์ด๋‹ค. ํ•„์š”์—†๋Š” ์งˆ๋ฌธ์€ ๋ชจ๋‘ Enterํ•˜์—ฌ ๋„˜๊ฒจ์ฃผ๋ฉด ๋œ๋‹ค.

firebase init

 

๋ชจ๋“  ๊ณผ์ •์„ ํ†ตํ•ด init์ด ์ข…๋ฃŒ๋˜๋ฉด Firebase์— ์„ค์น˜๋œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ด ๋๋‚˜๋ฉฐ ์™ผ์ชฝ ํƒ์ƒ‰์ฐฝ์— ์ž๋™์œผ๋กœ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๋์œผ๋กœ..ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์ด ๋œ ํ›„ index.html์„ ์ฐพ์•„ ์œ„์—์„œ ์„ค๋ช…ํ•œ 3) ๊ณผ์ • SDK๋ฅผ ํ™•์ธํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์„ค์ •์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ์ •๋ง ๋์ด๋‹ค.

 

<script src="/__/firebase/8.6.5/firebase-auth.js"></script>
<script src="/__/firebase/8.6.5/firebase-firestore.js"></script>
<script src="/__/firebase/8.6.5/firebase-storage.js"></script>

๋จผ์ € 2)์—์„œ ์ถ”๊ฐ€ํ•œ ๊ธฐ๋Šฅ์— ๋งž๋Š” SDK๋ฅผ <script>ํƒœ๊ทธ์— ์กด์žฌํ•˜๋Š” ์ง€ ํ™•์ธํ•˜๊ณ  ํ•„์š”ํ•œ ๊ฒƒ ์™ธ์—๋Š” ๋ชจ๋‘ ์ง€์›Œ์ค€๋‹ค. ๋‚˜๋Š” ์ธํ„ฐ๋„ท์— ๋น„๊ต์  ๊ฒฐ๊ณผ๊ฐ€ ๋งŽ์€ firebase 8.X๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ž„์˜ ์กฐ์ •ํ•ด์ฃผ์—ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ํ”„๋กœ์ ํŠธ ์„ค์ •์ฝ”๋“œ๋ฅผ script์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

<script>
    // Your web app's Firebase configuration
    var firebaseConfig = {
      apiKey: "",
      authDomain: "",
      projectId: "",
      storageBucket: "",
      messagingSenderId: "",
      appId: ""
    };

    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);

  </script>

 

๋ชจ๋“  Backend ๊ตฌ์„ฑ์ด ๋๋‚ฌ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ Front์˜ ํ™”๋ฉด์„ ์ž‘์„ฑํ•˜์—ฌ ๋ณธ๊ฒฉ ๊ธฐ๋Šฅ์„ ๋ถ™์—ฌ๋ณด๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค :)