
팀 회의 중 브랜치에 대한 이야기가 나와서 튜터님에게 질문하고 GitFlow에 대해서 배웠다.
Git 에는 Branch 를 통해 프로젝트의 버전 더욱 편리하게 관리하고 충돌을 예방할 수 있다.
Main (Master) : 최상위 브랜치. 최종적으로 배포되는 버전이 관리된다. (이전에는 Master 명칭을 쓰기도 했으나 노예 제도 연상으로 인해 현재는 지양하는 표현)
Dev : 개발 브랜치. Feature 브랜치에서 개발이 완성된 기능들을 병합하여 관리.
Feature : 기능별로 분리한 브랜치. 각 기능은 독립적이며 로컬 브랜치로 생성. 서로 영향을 주지 않아 효율적으로 협업 가능.
현재 진행 중인 팀프로젝트는 Main, Dev, Feature(로컬 브랜치) 3가지로 나누어 관리하기로 하였다. 프로젝트 규모가 큰 것은 아니라 브랜치 전략 없이도 충돌 가능성은 낮겠지만 배운 김에 써먹어 봐야겠다.
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";
$(document).ready(async function () {
let docs = await getDocs(collection(db, collection_name));
docs.forEach((doc) => {
let row = doc.data(); // row.필드명 을 통해 값 접근 가능
});
});
let docs = await getDocs(collection(db, collection_name));
await updateDoc(doc(db, collection_name, userid), updateInfo); // userId(문서 Id) 문서 내의 필드 값을 업데이트
필드 값(updateInfo)은 딕셔너리 {key:value} 형태로 넘겨줘야 한다.
await deleteDoc(doc(db, collection_name, userId)); // userId(문서 Id)와 일치하는 문서 제거