Firebase 설명 전 참고
참고로 과제 보면 github에 올린 코드를 제출해야 돼서 github에 현재 프로젝트를 올려뒀는데, 문제가 있다.
firebase Configuration을 firebase 폴더의 index.ts에 쓰게 되는데, 여기 API KEY가 있기 때문에 보안상 문제가 된다. 이러한 사항들은 .env와 .gitignore를 이용해서 빼주는 것이 맞다.
실제로
![image.png]()
깃허브 연동 메일을 통해서도 이런식으로 API KEY 같은 secret이 있는 코드가 있다고 메일이 왔다. 처음 겪어보는 메일이라 굉장히 신기했다.
어쨌든 .env로 빼주니까 깔끔하게 해결이 됐다.
Firebase
Google에서 제공하는 백엔드 서비스(Backend as a Service) 플랫폼
백엔드를 직접 만들지 않아도 인증, DB, 호스팅, 스토리지, 푸시 알림 같은 기능을 쉽게 붙일 수 있어서 프론트엔드 개발자나 개인 프로젝트에서 많이 씀
백엔드 서버 + 데이터베이스 + 인증 + 파일저장소 + 호스팅 + 알림 기능을 구글이 다 운영해주고, 우리는 API만 쓰면 되는 것
핵심 기능
- Authentication (회원가입 / 로그인): 이메일/비밀번호 로그인, OAuth 소셜 로그인, 폰(문자) 인증
- Cloud Firestore (NoSQL DB): 실시간 DB, Realtime Database의 개선 버전, document/collection 구조(NoSQL), 실시간 동기화 지원
- Realtime Database: 실시간 DB, Firestore보다 실시간 동기화가 더 빠르지만 구조가 유연하지 않음
- Cloud Storage (파일 저장소): 이미지, 동영상, PDF 업로드 가능, 접근 권한/보안 규칙 설정 가능
- Hosting: 정적 사이트 React/Vite/Next.js 호스팅 가능, 글로벌 CDN 제공, SSL 자동 적용(https)
- Cloud Functions (서버리스 백엔드): Firebase에 이벤트 발생 시 자동 실행되는 백엔드 함수, Node.js 기반, 서버 없이 백엔드 로직을 작성할 수 있는 게 장점
- Cloud Messaging (푸시 알림): 모바일/웹 푸시 알람 기능, 앱 푸시 알림 구현할 때 거의 표준처럼 사용됨
장점
- 백엔드 없이 빠르게 개발 가능
- 실시간 동기화 매우 강력
- 무료 플랜이 꽤 넉넉함
- 서버 관리를 할 필요가 전혀 없음
단점
- SQL이 아니라 NoSQL
- 복잡한 비즈니스 로직에는 한계가 있음
- 트래픽이 커지면 비용이 많이 증가함
- 벤더 락인, 즉 Google에 종속됨