Firebase, 팀 프로젝트에서 활용하기

SIHA·2024년 12월 26일

지금까지 사용해왔던 DBMS는 주로 MySQL, MongoDB, Redis 등으로, PC에 설치해서 DB를 만들고, 만든 DB에 접근해 사용하는 방식이었다. 서버를 돌릴 때도 서버 컴퓨터에 DBMS를 설치하고 같이 돌리면 됐기 때문에, 따로 공유에 대해 고민해본 적은 없었다.

하지만 이번 팀 프로젝트에서 공유되는 DB의 필요성을 느꼈다. 그리고 스파르타 코딩 강의에서 Firebase를 사용하면서, DB에 대해 잘 모르는 팀원들을 고려해 Firebase를 활용해보기로 했다.

Firebase는 별도의 서버 없이 웹에서 동작하기 때문에, 공유 기능이 있을 것 같았다.

GCP?

Google Cloud Platform
Google에서 제공하는 클라우드 컴퓨팅 플랫폼으로, 간단히, 애플리케이션, 웹 서비스, 데이터베이스 등을 실행하고 관리할 수 있는 클라우드 환경을 제공한다.

주요 특징은 아래와 같다.

  1. 컴퓨팅: 가상 서버(VM), Kubernetes, 서버리스 애플리케이션 등 다양한 컴퓨팅 환경 제공.
  2. 스토리지: 데이터베이스(예: Firestore, BigQuery), 파일 저장(Google Cloud Storage) 등 데이터 관리 서비스 제공.
  3. 네트워크: 전 세계에 분산된 데이터 센터와 네트워크를 활용.
  4. 보안 및 권한 관리: IAM(Identity and Access Management)을 통해 세부적인 권한 설정 가능.

GCP의 IAM(Identity and Access Management)

  • GCP IAM은 사용자 권한을 세분화하여 팀원들에게 적합한 역할(Role)을 부여할 수 있음

  • Firebase 프로젝트는 GCP 프로젝트와 1:1로 연결되므로, 한 번의 설정으로 Firebase와 GCP의 리소스에 대해 동일한 권한 체계를 사용할 수 있음


프로젝트에서 사용자 권한 부여


해당 프로젝트의 '사용자 및 권한'에 들어간다.



프로젝트의 기본 사용자, 소유자는 구성원을 이메일 주소로 추가할 수 있고, 추가한 구성원의 역할을 소유자 / 편집자 / 뷰어로 지정할 수 있다.

권한 수준:
Owner: 프로젝트의 모든 권한을 가짐 (관리 및 삭제 포함)
Editor: 데이터 및 설정을 변경할 수 있음
Viewer: 읽기 전용 액세스


이번 프로젝트는 컬렉션이 2가지가 다였고, (profile, visit), 무엇보다 공유의 필요가 있던 profile의 컬렉션은 문서가 5개뿐이었기에 위의 내용은 참고만 했다.

그러나 다음번에, 데이터가 더 많고 복잡하다면 적극적으로 활용해볼 것이다.

profile
뭐라도 해보자

0개의 댓글