Project/Extra

[📋] DB 선정

shin0112 2024. 7. 16. 01:39

개요

지난 회의

 

[회의] BackEnd 1차 회의

개요일시2024.07.16 (월)주제ERD 그리기ERD 작성을 위해 한 자리에 모여서 열심히 회의를 진행했다.( ᐛ )و프로젝트 주제는 요약하면, 보조 출연자와 업체 간의 교류를 더 쉽게 해주기 위한 앱+웹이다

je0301.tistory.com

회의에서 받은 과제 중 DB 선정 과제를 정리한다.

저장되는 데이터의 형태가 중구난방이면 MongoDB같은 NoSQL을 고려해봤을 것 같은데,

지금까지 만들어진 ERD만 봐도 스키마가 딱 정해질 것 같고, 추후 특정 기능에만 NoSQL을 사용하는 방식으로 하는 게 아니면 그냥 RDBMS 사용이 적합하다고 생각했다. 

일단 RDBMS 중에서 생각해본건 MySQL, MariaDB, PostgreSQL.

추가적으로 로그인 기능을 jwt로 구현한다면, 어떻게 구현하냐에 따라서 쓸지 말지 고민하겠지만 Redis도 고려해야 하지 않을까.. 


고려 사항

일단 고려해야 할 사항을 몇 개 생각했다.

  1. 가격
  2. 보안 및 안정성

1. MySQL

가장 널리 알려진 오픈 소스 RDBMS

장점

  1. 광범위한 운영 체제와 언어 지원 = 환경 설정이 비교적 손쉬움
    • Linux, Windows, macOS에서 실행 가능
    • PHP, Java, Python 등 많은 프로그래밍 언어와 통합 가능
  2. 강력한 데이터 보안 기능 제공
    • SSL 암호화, SHA-256 인증, 엑세스 제어 목록 등 다양한 보안 메커니즘 지원
  3. 확장성 & 고가용성
  4. 속도와 안정성이 좋음
    • 특정 SQL 기능이 없어 속도와 안정성이 좋고 가벼움

단점

  1. 동시성 필요 시 비선호

2. PostgreSQL

장점

  1. 표준 SQL 제공
  2. ORDBMS(객체 관계형 데이터베이스 관리 시스템)
    • 객체 지향 및 확장성에 중점을 둠
    • 복잡한 데이터 작업대규모 DBMS에 적합함
    • 상속, 사용자 정의 타입, 정밀 데이터 분석 기능 존재
  3. 확장성 & 고가용성
  4. 높은 수준의 ACID 지원

단점

  1. 읽기 전용 작업에는 비선호
  2. PostgreSQL은 배우기 어려움

3. MariaDB

MySQL의 수정 버전

장점

  1. MySQL의 확장 or 수정 버전이라 MySQL의 장점은 대부분 보유
  2. MySQL에 비해 확장성이 뛰어나고 속도가 더 빠름
    • 대용량 데이터를 관리하는데 유용
  3. MySQL에서 지원하지 않은 여러 스토리지 엔진 지원
    • MySQL : InnoDB, CSV, Federated, MyISAM, Merge 등
    • MariaDB : XtraDB, Aria, InnoDB, MariaDB ColumnStore, Memory, Cassandra, Connect 등
  4. 오픈소스
    • MySQL도 오픈소스긴 하지만, 기업에 인수되어서 상대적으로 MariaDB가 안정적이고 업데이트도 활발하다? 

단점

  1. MySQL보다는 나중에 나와서 상대적으로 네트워크가 작은 것 같다
    • 커뮤니티가 활성화가 되어 있다고는 하지만 아직도 많은 사람들이 MySQL을 더 많이 사용하는 상황인데, 과연 좀 더 활성화된 커뮤니티라고 할 수 있을지 모르겠다..

4. Redis

redis는 로그인 기능 때문에 넣어봤다.

일단 소셜 로그인 말고 직접 로그인하고 이메일을 인증하는 방식이라고 생각했는데,

session 방식이 아니라 jwt 로그아웃에서 refresh 토큰이랑 블랙리스트를 작성한다면 redis는 필수불가결이기 때문에..


결론

우선 구현하려는 앱이 대규모 데이터를 필요로 하지는 않아서 PostgreSQL보다는 상대적으로 가볍고 읽기 기능이 더 빠른 MySQL과 MariaDB 중에 고르려고 한다.

개인적으로는 성능 측면에서 더 뛰어나고 업데이트가 활발한 MariaDB를 사용하는 게 좋다고 생각이 든다.

또, 로그인을 어떻게 구현할지에 따라 Redis를 고려해봐야할 것 같다.


참고

데이터베이스 선택의 중요성: MySQL과 PostgreSQL 비교 분석

 

데이터베이스 선택의 중요성: MySQL과 PostgreSQL 비교 분석

MySQL과 PostgreSQL의 특징을 비교하고, 각각의 장단점을 살펴보며, 어떤 상황에서 어떤 데이터베이스를 선택하는 것이 더 적합한지에 대한 가이드라인을 제시하는 글입니다.

f-lab.kr

PostgreSQL 과 MySQL 비교: 주요 차이점

 

PostgreSQL과 MySQL 비교: 주요 차이점

사용 사례에 더 나은 DBMS를 결정하기 위해 MySQL과 PostgreSQL을 비교합니다.

www.integrate.io

MariaDB와 MySQL의 차이점은 무엇인가요?

 

MariaDB와 MySQL 비교 - 오픈 소스 관계형 데이터베이스 간의 차이점 - AWS

MariaDB와 MySQL의 차이점은 무엇인가요? MySQL과 MariaDB는 모두 오픈 소스 데이터베이스 기술입니다. 이들 데이터베이스를 사용하여 행과 열이 있는 표 형식으로 데이터를 저장할 수 있습니다. MySQL은

aws.amazon.com

TIL ... day 47 7주차 - day 7. Mariadb/ MySQL 비교우위가 무엇인가? … 22.06.30

 

 

TIL ... day 47 7주차 - day 7. Mariadb/ MySQL 비교우위가 무엇인가? … 22.06.30

mariadb/ mysql 비교우위가 무엇인가?

velog.io

MySQL vs MariaDB의 차이점, 성능, 보안, 라이선스 비교분석

 

MySQL vs MariaDB의 차이점, 성능, 보안, 라이선스 비교분석

MySQL과 MariaDB는 모두 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. 데이터를 테이블 형태로 저장하고, 이 테이블들 간의 관계를 통해 데이터를 조직화하고 관리한다. 그러나 이 두 시

gbminnote.com