본문 바로가기
개발 상식 시리즈/기타 상식

Supabase 배우면서 궁금했던(느끼는) 점 정리

by 신재은👩🏼‍💻 2024. 2. 5.

1. PostgreSQL이란?

객체 관계형 데이터베이스 관계시스템이다(ORDBMS).

SQL 기반의 데이터베이스인데, 확장성이 높고, 표준을 잘 준수하며, 복잡한 쿼리, 외래 키, 트랜잭션, MVCC(다중 버전 동시성 제어) 등의 고급 기능을 지원한다.

MySQL보다 더 엄격히 SQL 표준을 준수하는데 복잡한 쿼리를 더 잘 처리한다.

 

2. RDB(관계형 데이터베이스)와 ORDB(객체 관계형 데이터베이스) 차이는?

데이터를 구조화하고 접근하는 방식에 있다.

 

RDB는 테이블 형태로 데이터를 저장한다. 테이블 간의 관계를 통해 데이터를 조직화한다. SQL을 사용해 데이터를 관리하고, 데이터의 무결성, 일관성을 유지하기 위해 엄격한 규칙을 따른다.

ORDB는 RDB의 기능을 기반으로 하면서 객체 지향 개념을 통합한다. 이러면 데이터를 보다 복잡한 구조(예: 객체)로 표현할 수 있으며, OOP와의 호환성이 높아진다. 데이터를 객체로 처리하고, 객체의 상속, 다형성 같은 특성을 지원한다.

 

3. MVCC(다중 버전 동시성 제어)란?

데이터베이스의 동시성 제어를 위한 기법 중 하나로, 트랜잭션이 데이터를 읽고 쓸 때 발생할 수 있는 문제를 방지한다.

MVCC는 각 트랜잭션이 데이터의 특정 시점에서의 '스냅샷'을 보고, 여러 트랜잭션이 동시에 같은 데이터를 읽거나 수정할 때 서로 영향을 주지 않도록 한다. 이를 통해 읽기 작업이 쓰기 작업을 방해하지 않고, 높은 수준의 동시성과 성능을 달성할 수 있다. 

 

4. Supabase가 백엔드 서비스를 대체할 수 있나?

많은 경우에 그럴 수 있으나 '복잡한 로직'이나 '특수한 백엔드 요구사항'을 가진 경우에는 추가적인 서버 사이드 로직이 필요할 수 있다.

Supabase로 완전히 서버를 대체하려면 이가 제공하는 기능 범위 내에서 애플리케이션의 백엔드 요구사항이 만족되어야 한다. 

개인적인 생각으로는 Edge Functions를 쓰면 웬만한 서비스는 가능할 것 같다.

특히 1인 개발자의 앱 정도라면...

 

5. (내 느낌) 1인 개발자의 MVP용으로는 Supabase가 쌀 수 있는데 본격적으로 서비스하기 시작하면 절대 싼 가격 아닌 것 같다. 팀으로 운용하기 시작하면 AWS가 더 낫지 않나.

 

... (작성 중)

'개발 상식 시리즈 > 기타 상식' 카테고리의 다른 글

i18n, l10n, 최소한만 알아보자.  (0) 2024.02.03