MongoDB란? (vs Supabase와의 비교)
MongoDB란?
데이터 베이스를 제공하는 서비스 중 하나.
https://www.mongodb.com/try/download/community
Try MongoDB Community Edition
Try MongoDB Community Edition on premise non-relational database including the Community Server and Community Kubernetes Operator for your next big project!
www.mongodb.com
주요 특징
- NoSQL 방식, JSON 기반 데이터 베이스
- 구글의 firebase와 비슷한 방식이며, 새로 입문하는 분들은 Supabase라는 SaaS 서비스를 이용하는 경우가 많을 것이고 본인도 그렇게 시작했기에 어느정도 새로 익혀야 한다. Supabase는 SQL 기반의 데이터 베이스를 제공한다.
- SQL(관계형 데이터베이스) VS NoSQL(JSON 기반 데이터 베이스) 차이점 비교
- SQL
- 엑셀이라고 보면 됨.
- 테이블로 데이터가 이루어져있고, 행과 열로 데이터를 정리함.
- 엑셀에 정해진 제목행과 열이 있기 때문에 그에 맞는 정확한 데이터를 넣어야 함.
- 예를 들어서 이름, 나이라는 제목행이 있다면 무조건 그에 맞는 text 데이터나 number 데이터가 들어가야 오류가 나지 않음. 엄격함.
- 데이터 관리가 엄격하고 테이블 간 관계를 설명해야 하는 스키마 설정도 해야 하기 때문에 데이터 규모가 커지면 설정이 복잡하고, 중간에 데이터를 추가하거나 삭제하기 어려울 수 있음.
- 다만 데이터가 엄격히 관리되기 때문에 이상한 데이터가 들어가서 오류를 발생시킬 확률이 적음.
- NoSQL
- 메모장(notepad)이라고 보면 됨.
- NoSQL은 JSON 형태로 데이터를 저장하기 때문에 key-value 객체 형태로 값을 저장함.
- 따라서 원한다면 SQL에서 제목행에 해당하는 key를 빼거나 추가해도 문제가 되지 않음.
- 예를 들어서 아래와 같은 JSON 파일은 데이터 구조상 전혀 문제가 되지 않음. 다만 이것이 SQL이었다면 모두 같은 key-value가 있어야 하는 것임.
- JSON 형태로 데이터가 저장되기 때문에 스키마 설정이 필요 없어 값의 추가와 삭제가 자유롭고 확장이 편함.
- SQL
{
"이름": "장원영",
"나이": 21,
"성별": "여성"
}
MongoDB vs Supabse와의 비교
SQL과 NoSQL의 차이는 위와 같다. 다만 위 내용만 보면 당연히 NoSQL을 써야 할 것 같지만 실제 서비스를 제공하는 업체인 MongoDB와 Supabase의 차이로 확장시켜 생각해보면 꼭 그렇지 않을 수 있다.
- MongoDB
- 무료 제공 용량 : 512mb
- 무료 프로젝트 개수 제한 : 제한 없음
- 인증/인가 기능 : 없음 (직접 만들어야 함.)
- RESTful API : 없음 (직접 만들어야 함.)
- 유리한 상황 : 대량의 데이터를 저장하고 조회할 때.
- Supabase
- 무료 제공 용량 : 500mb
- 무료 프로젝트 개수 제한 : 프로젝트 2개
- 인증/인가 기능 : 기본 제공 (Supabase auth)
- RESTful API : 기본 제공 (Supabase 라이브러리 설치 시 매우 간편)
- 유리한 상황 : 빠르게 웹앱의 MVP 기능을 올인원으로 개발하고 싶을 때.
몽고디비는 인증/인가 기능 등이 없고 순전히 데이터 베이스 저장 기능만 제공하기 때문에 웹 앱의 MVP 기능을 빠르게 개발하기 위해서는 자체 제공하는 Supabase가 더 유리할 수 있다.
몽고디비에서 인증/인가나 RESTful API 등을 사용하려면 Firebase Auth 등 외부 라이브러리를 사용해야 하고 초심자 입장에서는 이게 더 어렵게 느껴질 수 있다.
하지만 둘은 대규모 웹앱에서 상호보완적이므로 모두 익혀두는 것이 좋겠다.
다음 포스트부터는 실제로 무료플랜을 이용해서 익혀보도록 하겠다.
'Programing > Server' 카테고리의 다른 글
초심자 MongoDB 시작하기 (0) | 2025.03.04 |
---|---|
[MongoDB] 데이터를 JSON으로 한 번에 업데이트 하는 방법 (0) | 2025.02.20 |
Node.js로 구축한 백엔드 서버를 Supabase에 연결시키기 (0) | 2024.08.27 |
supabase signUp() 메서드로 회원가입 시 users 테이블에 자동으로 레코드 생성하기 (0) | 2024.07.21 |
supabase DB Tables postgreSQL로 한 번에 생성하기 (0) | 2024.07.21 |
댓글