Post thumbnail

냅다 디비를 만들어! 1위부터 5위까지 DB 비교

· by 박승재

데이터베이스(Database; DB)는 필요에 따라 데이터일정한 형태로 저장해 놓은 것으로, 크게 관계형 DB(RDBMS)와 NoSQL로 구분됩니다.

관계형 DB는 테이블에 데이터 간의 관계(예. 강의 <-> 학과 <-> 학생)를 함께 기록하는 방식으로, 데이터의 일관성이 보장되어야 할 때 사용합니다.

예를 들어, 어떤 학생이 학생시간표 테이블에서 강의1를 강의2로 바꾼다면, 강의 테이블에서도 해당 학생 이름이 수정되어야 할 것입니다.

Excel과 같은 일반적인 사무 프로그램을 이용한다면, 해당 학생의 시간표 테이블과 해당 강의 테이블 모두 수정을 해야하지만,

RDBMS에서는 데이터의 관계를 참조(Reference)로 지정하기 때문에 하나의 테이블만 수정해도 모든 테이블에 반영됩니다.

NoSQL는 “Not only SQL”의 약자로, SQL만을 사용하지 않는 데이터베이스를 지칭하는 단어입니다.

쉽게 풀어서 설명하면, SQL 아닌 다른 방식으로 데이터에서 원하는 데이터를 추출할 수 있는 방법을 제공한다는 말인데,

이 배경에는 빅데이터의 등장과 데이터 처리 비용의 증가가 있습니다.

기존 RDBMS(관계형 DB)는 데이터의 일관성을 유지하기 위해 추가적인 시간(비용)이 소모되는데,

NoSQL은 기존의 구조(관계형)와 구조로 인한 이점(일관성)을 포기하는 대신,

데이터의 삽입/조회/삭제에 초점을 맞춰 성능을 최대한 끌어낼 수 있도록 설계되었습니다.

최근에는 지도, 시계열(Time Series), 그래프(Graph) 등 테이블만으로 표현하기 힘든 자료구조를 저장하는 데 특화된 NoSQL도 등장했습니다.

또한, RDBMS와 달리 구조가 자유로운 Document DB(NoSQL의 한 종류) 역시 빠른 개발 속도를 위해 자주 사용되는 추세입니다.

저장해야 하는 데이터에 N차원 배열 구조(예. 글-댓글)가 있다면 NoSQL이 유리할 수 있습니다.

RDBMS의 경우 테이블 여러 개를 이용해 N차원 구조를 표현해야 하기 때문입니다.

DB Engines에서는 사람들이 많이 사용하는 DB의 순위를 제공하는데,

이번 글에서는 인기 DB 별 특징과 장단점을 알아보도록 하겠습니다.

1위. Oracle

최고 존엄

오라클 데이터베이스(Oracle Database)는 미국 오라클(Oracle)사에서 판매하는 관계형 데이터베이스로, 은행 등 대다수의 대기업에서 많이 사용됩니다.

1순위에 위치한 만큼 어떤 DB보다 기능도 많고 빠른 DB지만, 가격도 살벌하기에 개인이 사용하기엔 무리가 따릅니다.

주로 기업에서 구매해 사용하는 DB이며, 기술지원과 더불어 안정적이란 평가를 받습니다.

2위. MySQL

RDBMS계의 2인자

오라클에 밀려 2순위에 위치한 MySQL입니다.

무난하게 쓰기 좋고 무료이기 때문에 토이 프로젝트 용도로 사용하기 좋습니다.

다만, 상업적 목적으로 사용하기 위해서는 유료 라이센스를 구매하기 때문에 약간 아쉽습니다.

오라클에 비해 기능이 부족하지만, 간단한 프로젝트의 RDBMS로 쓰기엔 충분하니 이 부분은 걱정하지 않아도 됩니다.

3위. MSSQL

기업용

3위는 마이크로소프트(Microsoft) 사에서 개발한 MSSQL입니다.

주로 기업에서 사용하며 유료 DB이기 때문에 기술지원, 데이터 관리 도구 등은 잘 되어있는 편입니다.

하지만 비슷한 기능무료로 제공하는 DB도 많기에, 개인적으로 새로운 프로젝트에 도입하기는에는 추천하지는 않습니다.

4위. PostgreSQL

무료 오라클

무료 오라클이라는 수식어 답게, 오라클만큼이나 기능도 풍부하고 성능도 보장됩니다.

또한, 오픈소스 프로젝트이기 때문에 상업적 이용도 무료로 사용할 수 있습니다.

한국에서는 다른 DB에 비해 인지도가 밀리지만, 미국이나 일본에서는 꾸준히 점유율이 올라가고 있는 좋은 DB입니다.

5위. MongoDB

NoSQL 1티어

MongoDB는 NoSQL의 대표주자로 널리 알려진 DB입니다.

NoSQL이기에 RDBMS에 비해 구조가 유연빠른 개발 속도를 보장하며,

국내에서는 Node.js+MongoDB 조합으로 스타트업과 같이 빠르게 제품을 개발해야 할 때 사용합니다.

비슷한 유형의 DB로는 Couchbase, RavenDB 등이 있지만, 1티어에는 이유가 있는 법입니다.

종합

  1. 나는 다양한 기능을 지원했으면 좋겠다 => PostgreSQL
  2. 빠르게 제품을 만들어야 한다 => MongoDB
  3. 간단한 CRUD 앱을 만들거다 => MySQL