공부 모음집/WEB

FireBase란? (+ cloud 서비스란?)

leedaramji 2024. 3. 26. 18:50

사용자를 대상으로 하는 개발을 해야 하는 프론트엔드 개발자. 구글의  FireBase는 프론트엔드 개발자에게 백엔드의 화력을 지원한다. FireBase는 서버 없는(서버리스) 개발을 가능하게 하기 때문에 백엔드에 대한 지식이 없어도 웹 서비스를 출시할 수 있다. 

 

Firebase 플랫폼을 사용한다면 개발자는 실제로 아무것도(DB, 사용자 정보, 서버) 소유하고 있지 않는 것과 같다. 구글의 힘을 빌려쓰는 것이기 때문에 개인적으로만 사용하는 앱이나, 이윤를 추구하지 않는 간다한 수준의 앱을 테스트 할 때 사용하는 게 좋다. 이러한 점들로 인해 규모가 큰 회사에서 엔터프라이즈 급의 앱을 만든다면 파이어베이스는 사용하지 않는다.

 

🕵🏻‍♀️ Q. 이러한 서버리스(serverless) 개발은 어떻게 가능하게 되었을까?

 

웹 서비스를 만들기 위해서 개발자는 매번 유저인증, API, 데이터베아스 등 서버 개발의 모든 것을 해야만 했다. 하지만 이 과정을 매번 반복하는 것은 비효율적이지 않은가. 예를 들면, 네이버 가입하기와 다음 가입하기의 절차가 비슷한 것 같이, 웹 서비스의 주체는 다를 수 있지만 구축하기 이해 필요한 기능들은 비슷하기 때문이다. 일종의 정형화가 이루어져 있다고 볼 수 있다. 이러한 정형화를 패턴으로 하여 개발에 필요한 기능을 미리 구현해 그때그때 제공하는 서비스가 필요하게 되었다.

 

🌏 웹 서버를 구축하기 위한 과정

 

1. Web Server는 웹 브라우저에서 요청하는 HTML, CSS, JS를 전송해주는 서비스 프로그램을 말한다. 요청에 따른 정적인 콘텐츠를 전달하기 때문에 정적 서버라 부르기도 한다.

2. Web Server가 회원가입, DB 저장 등의 기능을 만들기 위해서는 Database 서버를 하나 더 만들어야 한다. 이것이 우리가 쓰는 MySQL이나 Oracle 등을 의미한다.

3. Web 서버가 DB 안에 접속할 수 있으려면 중간 다리 역할을 하는 Back-end 서버가 필요하다. Front-end에서 Back-end 서버로 요청을 보내면 서버에서 Database에서 제공하는 라이브러리를 이용해 필요한 데이터를 리턴해주는 구조를 가지고 있다. 결록적으로 웹 페이지를 만들고 싶었는데 알고 보니 Web 서버, Back-end 서버, Database 서버를 구축해야 했던 것이다. (axios: HTTP 비동기 통신 라이브러리)

 

💡 Firebase는 유저가 서버로 데이터를 전송하고, 받은 데이터를 DB에 저장하도록 도와준다. 즉, Firebase는 서버와 DB 역할을 동시에 하게 된다. 그렇기 때문에 Firebase를 이용하면 Web Server도 필요없고, Back-end Server도 필요 없고, Database Server Application(Cloud)도 필요 없게 된다.

Web Server  Firebase에서 제공하는 JavaScript Database Server Application(Cloud)

 

 

🌏 Firebase는 대표적인 클라우드 서비스의 한 종류!

📌 클라우드(cloud) 서비스란?

인터넷을 통해 사용자가 필요한 기능을 서비스 형태로 제공받아 이용하는 방식을 말한다.

'As a service'는 일반적으로 서비스 모델이 클라우드에서 제3자에 의해 제공된다는 의미입니다. 즉, 온프레미스 데이터 센터에서 하드웨어, 소프트웨어, 도구 또는 애플리케이션을 구매, 관리 또는 사용할 필요가 없습니다. 대신 구독 요금을 지불하거나 사용한 만큼만 지불하는 방식으로 인터넷 연결을 통해 주문형으로 필요한 항목에 액세스할 수 있습니다. 


1. IaaS (Infrastructure-as-a-service)

원격으로 사용할 수 있는 운영체제 없는 컴퓨터를 대여해준다고 볼 수 있다. 컴퓨터를 관리하는 것은 전적으로 사용자에게 달려있다.

2. PaaS (Platform-as-a-Servis)

애플리케이션을 개발, 실행 및 관리, 배포하기 위한 모든 플랫폼을 제공한다. 사용자는 애플리케이션과 데이터를 개발하는데만 집중한다. 관련된 이프라를 구축하고 유지관리할 필요가 없다.


3. SaaS (Software-as-a-Service)

사용자는 서버를 이용하기만 하면 된다. 대표적으로 G-mail, 구글드라이브, 드롭박스 등이 있다.

4. BaaS (Software-as-a-Service) ✅ firebase

개발자가 백엔드 서비스를 가능한 한 가장 빠르고 간단하게 관리하는 데 집중된 백엔드 특화 서비스인다. 특히 이메일 알림이나 사용자 인증, 푸시 알림, 소결 로그인 등과 같은 백에드 DB 관련 기능들이 즉시 사용 가능하도록 비즈니스 로직이 완성되어 자체적으로 내장되어 있다.

📌  클라우드 IaaS, PaaS, SaaS, CaaS의 주요 차이점

클라우드 컴퓨팅에서 IaaS, PaaS, SaaS, CaaS의 차이점을 한 마디로 요약하면 제어와 책임의 수준입니다. 각 모델은 자체 온프레미스 데이터 센터를 관리할 수 있는 대안을 제공하지만 선택한 유형에 따라 서비스 제공업체에서 컴퓨팅 스택의 다양한 요소를 관리합니다. 


 

PaaS, IaaS, SaaS 비교: 차이점은 무엇인가요?  |  Google Cloud

PaaS, IaaS, SaaS, CaaS는 각각 품질과 용도가 서로 다른 클라우드 컴퓨팅 모델입니다.

cloud.google.com

 

 

🌏 Firebase가 제공하는 서비스 종류

 

Firebase를 통해 데이터베이스, 서버, 호스팅, 데이터 업로드 등의 다양한 기능을 우리가 만든 프론트엔드 페이지에 적용할 수 있다.

 

  • Cloud FireStore
  • Firebase ML
  • Cloud Functions
  • Cloud Storage
  • Hosting 
  • Authentication
  • RealTime Database

 

 

📕 참고: 인프런 제주코딩베이스캠프 firebase 강의

'공부 모음집 > WEB' 카테고리의 다른 글

SPA (Single Page Application)  (2) 2023.12.05
접근성 준수와 스크린리더  (2) 2023.11.26
💡 브라우저 좌표  (0) 2023.11.07
Web APIs  (0) 2023.11.07
url 입력과정  (0) 2023.10.17