[TIL] 250218 - 2일차

YJin·2025년 2월 18일

0. 오늘의 학습 키워드

  • Git flow 관리 전략
  • Firebase CRUD (JavaScript)


1. Git Flow 관리 전략

팀 회의 중 브랜치에 대한 이야기가 나와서 튜터님에게 질문하고 GitFlow에 대해서 배웠다.

Git 에는 Branch 를 통해 프로젝트의 버전 더욱 편리하게 관리하고 충돌을 예방할 수 있다.

Main (Master) : 최상위 브랜치. 최종적으로 배포되는 버전이 관리된다. (이전에는 Master 명칭을 쓰기도 했으나 노예 제도 연상으로 인해 현재는 지양하는 표현)
Dev : 개발 브랜치. Feature 브랜치에서 개발이 완성된 기능들을 병합하여 관리.
Feature : 기능별로 분리한 브랜치. 각 기능은 독립적이며 로컬 브랜치로 생성. 서로 영향을 주지 않아 효율적으로 협업 가능.


현재 진행 중인 팀프로젝트는 Main, Dev, Feature(로컬 브랜치) 3가지로 나누어 관리하기로 하였다. 프로젝트 규모가 큰 것은 아니라 브랜치 전략 없이도 충돌 가능성은 낮겠지만 배운 김에 써먹어 봐야겠다.


2. Firebase CRUD (JavaScript)

(0) 기본 설정

import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js";
import { getFirestore } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";
import { doc, collection,addDoc, getDocs, updateDoc, deleteDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";


// Firebase App Config
const firebaseConfig = {
    apiKey: "apiKey",
    authDomain: "authDomain",
    projectId: "projectId",
    storageBucket: "storageBuckek",
    messagingSenderId: "messagingSenderId",
    appId: "appId"
  };

const app = initializeApp(firebaseConfig);
const db = getFirestore(app);
const collection_name = "collection_name";

(1) Create

$(document).ready(async function () {
    let docs = await getDocs(collection(db, collection_name));
    docs.forEach((doc) => {
        let row = doc.data();		// row.필드명 을 통해 값 접근 가능
    });
});

(2) Read

let docs = await getDocs(collection(db, collection_name));

(3) Update

await updateDoc(doc(db, collection_name, userid), updateInfo);	// userId(문서 Id) 문서 내의 필드 값을 업데이트

필드 값(updateInfo)은 딕셔너리 {key:value} 형태로 넘겨줘야 한다.

(4) Delete

await deleteDoc(doc(db, collection_name, userId));      // userId(문서 Id)와 일치하는 문서 제거



profile
백엔드 개발도 락이다

0개의 댓글