프로그래밍 스터디( 공부노트 )/파이어베이스

파이어베이스 - 버전9 ( Firebase v9 ) : 시작하기

김갤럭시 2022. 8. 20. 20:29
반응형

 

 

 

저는 원래 파이어베이스를 공부했었고, 버전8로 시작을 했습니다. 

 

그러나 이제 버전9를 구글에서 업데이트를 했고,

파이어베이스 공식 문서를 보면

 

 

 

" Firebase는 한 번의 주요 릴리스 주기 후에 이 버전에 대한 지원을 제거하므로...

 

새 앱은 대신 버전 9를 채택해야 합니다. "

 

 

 

라고 적혀 있습니다....

배포되어 있는 8버전은 돌아가겠지만 정식지원은

9버전 위주로 진행을 할 것 같습니다. 그래서 9버전에 대한 내용을 정리하려고 합니다.

 

 

파이어베이스 버전9를 공부합시다.

 

 

 

 

우리가 흔히말하는 '웹서버'는 그냥 데이터 꺼내달라고 하면 데이터 꺼내주는 기계입니다.

버전 9 는 webpack 또는 Rollup 과 같은 최신 JavaScript 빌드 도구를 사용해서

파이어베이스 크기를 줄이고 효율성을 높이는 모듈식 접근 방식을 사용합니다.

앱에서 사용되지 않는 코드를 제거하는 "트리 쉐이킹" 방식을 사용합니다.

그리고 빌드 도구와 잘 통합된다고 하네요~~

그럼 9버전을 공부하는 것이 좋겠죠??

자!! 이제~~~ 파이어베이스 버전 9 정리를 시작 해보겠습니다.

 

 

 

먼저 웹서버에 대해서 설명을 드리려고 합니다. 

서버란 무엇일까요? 우리가 요청을 하면 데이터와 사진 등을 배달해주는 기계입니다.

서버가 있어야 회원 정보를 데이터베이스에 저장하고 불러올 수 있고

삭제하거나 수정을 할 수 있습니다. 그리고 댓글을 작성할 수 있습니다. 

이것이 웹서버 아니겠습니까?

 

 

 

예를 들면 서버는 아래와 같은 종류들이 있습니다.

node.js > Express.js

Java > Spring

python > Django

Ruby > Ruby on rails

 

 

그런 웹개발 관련 강의를 보면 ( 클론코딩 강의들.... ) 서버부분을 만들 때

뭔가 비슷한 느낌을 받게 됩니다.

대부분 서버코드는 비슷하고 반복적으로 하게됩니다.

 

 

서버를 어렵게 생각할 필요는 없습니다. 그냥 사용자가 시키는 대로 하기 때문입니다.

 

" 블로그 글좀 주세요 "

" 게시물 뽑아주세요 "

" 좋아요는 몇개이죠? "

" 댓글 주세요 "

 

이런 코드들을 대부분 구조적으로 비슷합니다.

물론 개발 언어의 종류의 따라서 코드는 다르겠지만, 

근본적인 원리는 같다고 할 수 있습니다. 

그리고 클론코딩을 통해서 코드를 복사하고 aws, gcp 등 플랫폼에 배포를 간신히 하고

서비스를 출시할 수 있습니다.

그러나 관리적인 측면에서 아주 어려움을 느끼게 됩니다.

전문 데브옵스 지식은... 코린이 들에에게 쉽지 않기 때문입니다. 

만약 Firebase를 이용하면 호스팅이나 데이터베이스의 스케일업이 필요할 때,

자동으로 해주기 때문에 비용을 지불하고 쉽게 사용하면 됩니다.

백엔드와 디비를 공부하고 데비옵스를 공부하는 시간과 어려움도 돈입니다. 

 

 

여러분이 만일 1인 개발자가 된다거나, 

내가 생각하는 아이디어를 빨리 구현하고 싶다거나,

시간이 부족한 학생이라면, 직장인이라면,

나이가 많지만 개발을 배우고 싶고 자신의 비즈니스 또는 플랫폼을 만들고 싶고...

자신만의 것을 구축하고 싶다면~

파이어베이스는 아주 좋은 도구가 될것이라 믿습니다.

 

 

그러나 이런 문제점을 느낀 똑똑한 아조씨들이 

자동으로 웹서버 만들어주고 관리에 신경을 쓰지않아도 되는 플랫폼을 만들게 됩니다.

그 만든 서비스가 Firebase입니다.

출시하자마자 10만명이 가입하고 인기가 많았다고 하네요,

이 훌륭한 아조씨 들의 노고를 구글이 인정하게 되고,  구글이 인수했습니다. 

 

 

 

Firebase는 서버 대신 만들어주는 서비스입니다

 

파이어베이스는 서버를 만들어 줍니다. 아주 간단한 코드로 이를 가능하게 합니다.

이것을 이용하면 웹서비스, 웹앱, 안드로이드/애플 어플리케이션, 데스크탑앱을 

만들 수 있게 도와줍니다.

그래서 개발시간을 매우 단축시켜 줍니다.  

 

 

사용자(User) - 서버(Server) - 데이터베이스(Data Base)

 

 

웹서비스는 이렇게 동작합니다. 예를 들어서 인스타그램 서비스 라고 가정하면

유저가 댓글을 올리고 싶으면 1. 댓글을 서버에게 보내고 2. 서버는 댓글을 database에 저장해야합니다. 

 

 

1. 사용자가 댓글을 올리게 되면, 댓글을 서버에 보냅니다.

2. 서버는 데이터베이스에 댓글을 저장하게 됩니다.

 

 

그러면 이것을 자세하게 표현하면...

 

 

1. 댓글을 서버에 보내는 코드 ( 프론트엔드 )

2. 서버가 댓글을 데이터베이스에 저장하는 코드 ( 백엔드 )

 

 

이렇게 필요하게 됩니다.

 

 

사용자(User) - 서버 대신 파이어베이스 - 데이터베이스(Data Base)

 

 

▲ 그러나 파이어베이스를 사용하면 서버코드를 대신 개발 해줍니다.

그러면 1. 댓글을 서버에 보내기 > 이것만 진행하면 됩니다.

firebase가 데이터베이스에 알아서 데이터를 저장해 줍니다.

그래서 Html, Css, Javascript 만 알면 누구나 쉽게 웹서비스를 개발할 수 있습니다.

 

 

 

아니.. 그러면 보안을 어떻게 하나요??

 

서버는 왜 있어야 할까요? 

유저가 악의적으로 사기를 치면 막아야 하기 때문입니다.

프론트엔드의 정보는 매우 쉽게 변경이 가능하거든요^^

가짜 요청을 사용자가 보내면 서버는 이것을 검사하고 막아야 합니다.

그래서 진짜면 허락해주는게 서버의 역할입니다.

 

 

근데 Firebase를 쓰면 이걸 어떻게 개발해야 할까요?

Firebase Firestore 규칙

 

 

▲ Database = Firebase FireStore에는 규칙을 정하는 기능이 있습니다.

여기다가 간단한 서버 로직을 작성할 수 있습니다.

그래서 유저가 데이터를 입력하거나, 꺼낼때 규칙을 확인하게 됩니다.

규칙을 확인하게 되고 기능을 실행하게 됩니다. 

이거 말고도 다양한 서버측 기능은 Firebase내의 Functions라는 상품을 이용하면 됩니다. 

 

 

 

파이어베이스에는 장점이 많습니다.

 

파이어베이스는 무료로 사용이 가능합니다.

( 네... 한도까지만 무료이고, 그 이상에는 요금을 부과하게 됩니다. )

만약에 한도를 넘지 않는다면 평생 무료로 사용이 가능합니다.

예를들어 사용자가 적은 간단한 서비스나, 포트폴리오 용이라면 걱정없이 사용하면 됩니다.

이용량이 한도가 무료를 넘을 확률을 적습니다.

 

 

또 초심자가 데이터베이스의 콘솔을 매우 다루기 쉽습니다.

호스팅이나 데이터베이스의 스케일업이 필요할 때 파이어베이스가 자동으로 해줍니다.

데이터 베이스가 리얼타임이라, 어플에 리얼타임 기능이 필요하다면

유용하게 사용이 가능합니다.

 

 

 

 

파이어베이스가 비싸다는 단점이 있습니다.

 

그러나 꼭 그렇게 생각을 하실 필요는 없습니다.

제가 나중에 파이어베이스의 요금에 대해서 자세하게 글을 쓰도록 하겠습니다.

오늘은 여기까지 글을 쓰도록 하겠습니다.

 

 

반응형