ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로젝트 DB고르기
    프로젝트/게시판 2023. 12. 19. 22:59

    새로운 프로젝트를 시작하려고 하는데 앞서, 우선 어떤 DB를 사용할지 고민을 해봤다.

    우선 DB는 크게 RBDMS와 NoSQL로 나뉘는데, NoSQL에 대해서는 지난 포스팅에서 다뤘었다.

    https://hsch19.tistory.com/31

     

    NoSQL이란 무엇인가?

    NoSQL이란? NoSQL은 사람에 따라 No SQL, Not Only SQL, Non-Relational Operational Database SQL로 엇갈리는 의견들이 있지만, 현재 Not Only SQL로 풀어 설명하는 것이 다수를 차지하고 있다. NoSQL은 비관계형 데이터베

    hsch19.tistory.com

     

    현재 만드려는 프로젝트는 우선 기본적인 웹 게시판을 만들어보고, 이후 주제를 정해서 점점 고도화를 시켜나가려고 한다.

     

    RDBMS와 NoSQL 어느 것을 사용할지

    게시판은 비교적 정형화된 데이터들이고 특성상 게시물이 만들어지고, 수정되고, 삭제가 되면서 데이터가 자주 변경될 예정으로 빠르게 읽고 쓰는것에 장점이 있는 NoSQL보다는 RDBMS가 더 적절하다는 생각이 들었다.

    우선은 RDBMS를 사용하고 이후 서비스를 추가해가면서 수정할 일이 없고, 빠르게 읽고 쓰는 서비스를 만들게 되면 그 때따로 그 서비스만 NoSQL을 사용해 보고자 한다.


    어떤 RDBMS를 사용할지

    NoSQL과 RDBMS중 RDBMS를 골랐는데, 그렇다면 어떤 RDBMS를 사용할까?

    아래의 사이트는 현재 사용되고 있는 DB들의 Ranking을 보여준다.

    https://db-engines.com/en/ranking

     

    DB-Engines Ranking

    Popularity ranking of database management systems.

    db-engines.com

    압도적으로 Oracle과 MySQL이 많이 쓰는 것을 볼 수 있다.

     

    MySQL, Oracle, MariaDB, PostgreSQL 각각 특징

    MySQL

    • SQL 문법 기반
    • 거의 모든 운영체제에서 사용 가능
    • MySQL 데이터베이스는 무료
    • 처리 속도가 빠르고 대용량 데이터 처리에 용이
    • 설치 방법과 사용법이 쉬움
    • 보안성이 우수
    • 구글, 링크드인, 아마존, 넷플릭스, 트위터 등에서 사용

    Oracle

    • 세계 점유율 1위
    • 대부분의 운영체제를 지원
    • 분산처리를 통해 효율성 증대
      DBMS 실행 컴퓨터 / 서버 역할 컴퓨터 / DB응용 프로그램 실행 컴퓨터를 다르게 분산처리
    • 대규모 데이터베이스와 영역 관리
      고가의 HW를 효율적으로 활용할 수 있도록 영역 사용을 완벽하게 제어
    • 다중 동시 데이터 베이스 사용자 지원
      여러 사용자가 동일한 데이터에서 작동하는 다양한 데이터베이스 응용 프로그램을 실행하도록 지원하여 데이터 경합을 최소화하고 데이터 동시성을 보장
    • 접속성
      서로 다른 유형의 컴퓨터와 운영체제가 네트워크를 통해 정보를 공유하도록 함
    • 고성능 트랜잭션 처리
      다른 데이터베이스보다 고성능의 트랙잭션을 처리

    데이터 경합(row level locking) : 데이터 경쟁. 한 사용자가 데이터를 변경하려고 접근할 때 데이터에 lock이 걸리는 것
    데이터 동시성 : 다수의 사용자가 동시에 접근 가능

    MariaDB

    • MySQL을 만든 개발자가 만든 RDBMS
    • MySQL과 매우 유사
    • 상업용으로도 무료로 제공
    • 많은 운영 체제에서 실행 가능
    • MySQL에서 사용할 수 없는 많은 작업과 명령을 제공하여 몇몇 단점을 제거 및 대체

    PostgreSQL

    • 대용량 데이터 처리를 위한 기능 구현됨
    • 다양한 운영체제 지원
    • DB 보안을 위해 데이터 암호화, 접근 제어, 접근 감시 3가지로 구성됨
    • 여러 언어 지원
    • 신뢰성과 안정성이 매우 높음
    • 오픈 소스이기 때문에 무료로 사용 가능
    • 인스타그램, CISCO, 스카이프, 트립어드바이저, 이케아 등에서 사용

    종류별 가격과 후기

    https://www.youtube.com/watch?v=N6MqIVAz_kM&ab_channel=%EC%9A%B0%EB%A6%AC%EB%B0%8B_woorimIT

     

    결론

    현재 만드는 게시판은 NoSQL보다는 RDBMS가 더 적합하기 때문에 나중에 빠르게 조회가 필요한 부분에 NoSQL을 사용하기로 하고, RDBMS중에서는 기업에서 가장 많이 사용하고 있는 Oracle과 MySQL 중 이전에 팀 프로젝트를 하면서 사용했던 사용하면서 익숙한 Oracle을 사용하기로 했다.

     

     


    참고자료

    https://www.youtube.com/watch?v=N6MqIVAz_kM&ab_channel=%EC%9A%B0%EB%A6%AC%EB%B0%8B_woorimIT

    https://db-engines.com/en/ranking

    '프로젝트 > 게시판' 카테고리의 다른 글

    DTO와 도메인을 분리해야 하는 이유  (0) 2024.04.08
Designed by Tistory.