BE
[Firebase] 웹 앱에 Firebase 추가
| 서론
안녕하세요 팡일입니다.
현재 저는 우아한테크코스 8기 프리코스 오픈미션에서 're:log'라는 회고 서비스를 제작중에 있는데요?
백엔드 서비스로 Firebase를 사용하게 되어서,
오늘은 Firebase 프로젝트를 생성하고, 서비스를 추가하는 방법을 정리해보려고 합니다.
| Firebase 프로젝트 생성하기
1) Firebase Console에 접속합니다.
2) 좌측의 '새 Firebase 프로젝트 만들기'를 선택합니다.

3) 프로젝트 이름을 입력합니다.

| 앱 추가하기 (웹 서비스로)
1) 생성된 프로젝트 가운데 상단에 있는 '앱 추가' 버튼을 클릭합니다.

2) 여러 플랫폼 중 '웹'을 클릭합니다.

3) 앱의 닉네임을 입력합니다.

4) 호스팅을 희망하기에, 호스팅도 체크했습니다.

5) Firebase SDK를 추가합니다.

(1) npm install firebase 명령어를 프로젝트 root에서 설치하여 패키지를 추가합니다.
npm install firebase(2) firebase.ts 파일을 만들어 아래의 내용을 추가합니다.
// src/lib/firebase.ts
import { initializeApp } from 'firebase/app';
import { getFirestore } from 'firebase/firestore';
const firebaseConfig = {
apiKey: import.meta.env.VITE_FIREBASE_API_KEY,
authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN,
projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID,
storageBucket: import.meta.env.VITE_FIREBASE_STORAGE_BUCKET,
messagingSenderId: import.meta.env.VITE_FIREBASE_SENDER_ID,
appId: import.meta.env.VITE_FIREBASE_APP_ID
};
const app = initializeApp(firebaseConfig);
export const db = getFirestore(app);(3) .env 파일을 만들고 SDK 관련 정보를 추가합니다.
VITE_FIREBASE_API_KEY=your-api-key
VITE_FIREBASE_AUTH_DOMAIN=your-auth-domain
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-storage-bucket
VITE_FIREBASE_MESSAGING_SENDER_ID=your-messaging-sender-id
VITE_FIREBASE_APP_ID=your-app-id6) Firebase CLI를 설치합니다.

이후 호스팅을 사용하기 위해서 터미널을 켜서 전역적으로 Firebase CLI를 설치해줍니다. (이미 설치했다면 패스)
npm install -g firebase-tools7) Firebase 호스팅 배포를 진행합니다.


(1) firebase login
: 해당 명령어를 입력하여, google 계정으로 로그인합니다.
“Enable Gemini in Firebase features?” → Yes
: Yes 선택 시, Firebase CLI에서 Gemini 관련 기능을 사용할 수 있습니다.“Allow Firebase to collect CLI and Emulator Suite usage and error reporting information?” → Yes
: Firebase CLI 사용 통계 수집 동의 여부입니다.
즉, 두 항목 모두 “Yes”로 선택해도 보안상 문제는 전혀 없으며,
Firebase CLI가 정상적으로 작동하고, 추후 AI 기반 설정 보조 기능(Gemini)도 사용할 수 있게 되는 이점이 있습니다.
(2) firebase init (또는 firebase init hosting)
Please select an option: 프로젝트 연결 방법을 선택합니다. -> 기존 프로젝트를 사용하기 위해 Use an existing project를 선택합니다.
Select a default Firebase project for this directory
: 여러 프로젝트 중 현재 로컬 디렉토리와 연결할 Firebase 프로젝트를 선택합니다.-> 저는 re-log-920ae (re-log)를 선택했습니다.What do you want to use as your public directory? -> build
: firebase가 배포할 정적 파일 폴더를 지정합니다.
-> npm run build 과정을 거쳐 만들어진 build 폴더를 사용할 예정이기에, build를 입력했습니다.Configure as a single-page app (rewrite all urls to /index.html)? (y/n) -> Yes
: SvelteKit은 SPA(Single Page Application)이므로, Firebase가 라우트를 요청 받을 대 자동으로 index.html로 리다이렉트 하도록 설정해야 하므로, Yes를 선택합니다.Set up automatic builds and deploys with GitHub? (y/n)
: CI/CD (자동배포)를 구성할 것인지를 선택합니다.
-> 현재는 로컬에서 수동으로 firebase deploy를 실행하므로 불필요하다.
단, 나중에 CI/CD (자동 배포) 를 구성하고 싶을 때는 “Yes”로 선택하면Firebase가 GitHub Actions 워크플로우(.github/workflows/firebase-hosting.yml)를 자동 생성해줍니다.
(3) firebase deploy
: 해당 명령어를 입력하여, build 폴더를 바탕으로 배포를 진행합니다.
| 앱 추가하기 (웹 서비스로) - 트러블 슈팅
하지만 처음 firebase init 명령어를 입력했더니, 아래와 같은 오류가 발생했습니다.

이 현상은 Firebase CLI가 여전히 “hellopangil”을 기본 프로젝트 캐시로 기억하고 있어서, 새로운 프로젝트 목록을 불러오지 못하는 경우였습니다.
로그아웃만으로는 완전히 초기화되지 않아서, CLI 내부의 전역 캐시 파일(~/.config/configstore/firebase-tools.json) 을 한 번 지워줘야 했었습니다.
rm -rf ~/.config/configstore/firebase-tools.json그래서 위의 명령어를 입력한 뒤에, 다시 firebase init을 진행한 결과,
성공적으로 세팅을 완료했고, Firebase가 아래 두 파일을 자동으로 생성했습니다.
1) .firebaserc
{
"projects": {
"default": "re-log-920ae"
}
}2) firebase.json
{
"hosting": {
"public": "build",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "/index.html"
}
]
}
}| 결론
이번 과정을 통해 Firebase 프로젝트 생성부터 웹 앱 등록, SDK 연동, 그리고 호스팅 배포까지 전 과정을 직접 수행해보았습니다.
처음에는 CLI 캐시 문제로 약간의 오류가 있었지만, 설정을 재정비한 후 정상적으로 프로젝트를 연결하고 배포할 수 있었습니다.
결국 re:log 서비스는 SvelteKit으로 빌드된 정적 파일을 Firebase Hosting을 통해 성공적으로 배포하게 되었고,
앞으로는 이 환경을 기반으로 데이터베이스(Firestore)와 인증 기능까지 확장해 나갈 계획입니다.
이번 경험은 “개발에서 배포까지의 전 과정을 스스로 세팅할 수 있다”는 자신감을 얻게 된 좋은 기회였습니다.