지인의 추천으로 구글 Firebase를 알게 되었다. Firebase 기능은 간단하면서도 매우 강력하다. 백엔드에서 어렵게 구현해야 하는 인증이나 DB연동을 매우 간단한 방법으로 사용할 수 있도록 지원하고 호스팅도 지원하기 때문에 아이디어만 있다면 약간의 프런트엔드 지식만 가지고 파이어베이스를 이용하여 쉽게 프로젝트를 만들어볼 수 있다.
파이어베이스를 이용하여 간단한 마켓프로그램을 만들어봤다. 마켓 프로젝트를 통해 node.js환경에서 모듈을 입출력하는 방법과 파이어베이스 API를 내 프로젝트에 적용시켜보는 경험을 했다.
프로젝트 소개
프로젝트 명: Garden Market
사용한 툴(tool):
-프론트엔드: HTML/CSS/Javascript
-백엔드: Firebase
-프레임워크: express(ejs)
소요기간: 7일
기능:
-공지사항 게시판
-인증(이메일로그인, 구글로그인)
-물건 올리기(사진, 글)
참고자료: 코딩애플 유튜브 무료강의(Firebase로 당근마켓 만들기 2시간 컷)
파이어베이스의 장점
1. NoSQL 구조로 DB사용이 매우 간편하다.
Firestore의 구조는 매우 단순하다. Collection이라는 문서를 담는 컨테이너가 있고 Collection 안에 문서(doc)가 들어있다. doc은 필드라는 속성과 값을 갖는다. 이게 끝이다. 쉽게 예를 들자면 collection이라는 파일(file) 안에 문서(doc)가 들어있고 그 내용물이 필드(속성과 값)이다. 일반적인 컴퓨터 파일구조와 유사하다. 데이터 추가하는 방법도 그냥 클릭 몇 번 하고 속성과 값을 글씨로 쳐서 넣으면 끝이다. 물론 이렇게 사용할 일은 거의 없다. 일반적인 RDBMS는 데이터 구조를 이해하는데 많은 시간이 필요하지만 파이어스토어는 이미 널리 사용 중인 파일구조를 선택했기 때문에 초기 학습이 거의 필요 없다.
2. 약간의 프런트엔드 지식과 아이디어만 있으면 나만의 어플을 만들 수 있다.
파이어베이스는 개발자들에게도 유용한 기술이지만 일반인이 접근하기에 매우 좋은 도구라는 생각이 들었다. 호스팅, 인증, DB연동 같은 백엔드 영역을 전부 지원해 주기 때문에 HTML/CSS지식과 연동을 위한 약간의 javascript지식 그리고 검색능력만 있다면 위와 같은 간단한 어플도 빠른 시간 내에 만들 수 있다.
파이어베이스의 단점
사실 파이어베이스의 장점은 반대로 단점이 되기도 한다. 입문자에게는 사용이 간편한 것이 메리트가 될 수 있으나 요구하는 작업의 난이도가 올라갈수록 파이어스토어의 데이터 구조는 비효율적이 된다. 일반적인 RDBMS환경에서는 프로젝트가 커질수록 테이블의 개수가 늘어나는데 파이어베이스는 특성상 collection과 doc의 갯수가 테이블증가량에 비해 기하급수적으로 늘어나게 된다. 때문에 데이터 구조를 파악하는데 어려움이 생긴다.
DB영역은 상대적으로 보수적인 분야이다. 안정성이 매우 중요시 생각되기 때문에 보수적일 수밖에 없는데 때문에 점유율이 쉽게 바뀌지 않는다. 오랫동안 RDBMS방식의 DB는 항상 상위권을 차지하고 있다. 그만큼 그 효과를 입증받았고 최근에도 그 경향은 이어지고 있다. DB 기술의 패러다임이 특정 시점을 기준으로 확 변하지 않는 이상 파이어스토어가 RDBMS를 대체하기는 어려워 보인다. (현재 firestore는 47위이다.)
총평
사용하기 쉽다는 장점은 매우 강력한 이점이 된다. 하지만 대세에는 이유가 있다.
'만들자' 카테고리의 다른 글
[Javascript]위도 경도로 두 점 사이의 거리 구하기 2 - 지정범위내의 게시물 보여주기 (0) | 2023.11.22 |
---|---|
[Javascript]위도 경도로 두 점 사이의 거리 구하기 - 카카오 지도api (1) | 2023.11.21 |
[Javascript]카카오 지도, 주소api 사용해보기 (0) | 2023.11.16 |