아뜨아뜨 Firebase

임홍렬·2022년 7월 4일
0
post-thumbnail

Firebase란 ?

파이어베이스는 본래 전방에서 작전하는 부대에 포병의 화력을 지원하는 전진기지를 의미하는 군사용어입니다. 우리가 배우게될 Firebase는 2011년 파이어베이스 사가 개발하고 2014년에 구글에 인수된 모바일 및 웹, 앱 애플리케이션 개발 플랫폼이다.

최전방에서 사용자를 대상으로 하는 개발을 해야 하는 프론트엔드 개발자에게 백엔드의 화력을 지원한다는 기가막힌 네이밍이 분명하다!!!

  • 파이어베이스는 서버 없는(서버리스) 개발을 가능하게 하기 때문에 백엔드에 대한 지식이 없어도 웹 서비스를 출시할 수 있다.
    • 웹 서비스를 만들기 위해서 개발자는 매번 유저인증, 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 역할을 동시에 하게 된다.
  1. Firebase는 대표적인 클라우드 서비스의 한 종류이다. 그렇다면 클라우드 서비스란 무엇이 있을까?

클라우드(cloud) 서비스란?
인터넷을 통해 사용자가 필요한 기능을 서비스 형태로 제공받아 이용하는 방식을 말합니다.
클라우스 서비스는 크게 네 가지 종류로 구분됩니다.

  1. IaaS (Infrastructure-as-a-service)
    사용자에게 웹서비스를 구축하는데 필요한 인프라를 제공한다. CPU의 코어 갯수나 메모리의 용량, 보조 기억장치의 용량, OS의 종류 등 가상 컴퓨팅 환경을 제공합니다. 쉽게 말하면 원격으로 사용할 수 있는 운영체제 없는 컴퓨터를 대여해준다고 볼 수 있다. 컴퓨터를 관리하는것은 전적으로 사용자에게 달려있다.
  2. PaaS (Platform-as-a-Service)
    애플리케이션을 개발, 실행 및 관리, 배포하기 위한 모든 플랫폼을 제공한다. 사용자는 애플리케이션과 데이터를 개발하는데만 집중한다. 관련된 인프라를 구축하고 유지관리할 필요가 없다.
    쉽게 말하면 특정 운영체제가 설치되어 있는 컴퓨터를 대여해주면서 문제가 발생하지 않도록 지속적인 관리를 받고 있는 상황과 같다. 사용자는 실행 할 수 있는 소스코드만 관리한다. 대표적으로 Heroku와 AWS를 PaaS 서비스로 볼 수 있다. (AWS는 IaaS와 PaaS를 아우릅니다. 최근들어 IaaS와 PaaS의 경계가 모호해지는 상황입니다.)
  3. SaaS(Software-as-a-Service)
    서비스 제공자가 관리하는 애플리케이션을 사용자에게 제공하는 서비스이다. 업체가 사용자를 대신해 소프트웨어 업데이트, 버그 수정과 같은 유지, 관리 작업을 수행하며, 사용자는 서비스를 이용하기만 하면 된다. 대표적인 SaaS로는 Gmail, 구글드라이브, 드롭박스 등이 있다.
  4. BaaS(Backend-as-a-Service)
    BaaS는 개발자가 백엔드 서비스를 가능한 한 가장 빠르고 간단하게 관리하는 데 집중된 백엔드 특화 서비스이다. 특히 이메일 알림이나 사용자 인증, 푸시 알림, 소셜 로그인 등과 같은 백엔드와 DB 관련 기능들이 즉시 사용 가능하도록 비즈니스 로직이 완성되어 자체적으로 내장되어 있다.

    우리가 지금 학습하고 있는 firebase는 BaaS에 속한다고 볼 수 있다.

profile
뜨내기 FE 개발자

0개의 댓글