NoSQL을 알아보자(3) - NoSQL의 등장배경

 

등장배경

NoSQL은 기존 관계형 데이터베이스의 한계점 을 극복하기 위해 새롭게 등장한 데이터베이스 유형이다. ‘SQL을 사용하지 않는다’는 의미와 ‘SQL만 사용하는 것은 아니다’라는 의미를 내포하고 있다.

NoSQL이 기존 관계형 데이터베이스를 대체하는 형태가 아니라, 관계형 데이터베이스의 단점을 보완하는 형태로 발전하고 있다.


NoSQL 특징

확장성

일반적으로 데이터베이스를 확장하기 위한 방법은 스케일 업(한 대의 서버를 업그레이드하는 것), 스케일 아웃(서버를 여러 대로 나눠 분산하는 것) 두 가지 방법이 있다. 가장 이상적인 방법은 스케일 아웃인다. 필요할 때 서버를 증설하고 필요 없을 때는 다시 서버를 제거하면 되기 때문에 상당히 유연하다. 하지만 관계형 데이터베이스는 스케일 아웃 방식으로 서버를 관리하기 어렵고 운영 비용이 증가한다. NoSQL은 데이터베이스 서버 간 간섭을 최소화하여 여러 대의 서버를 쉽게 이용하고 관리할 수 있도록 설계되었다.

비용

현재 대중적으로 사용되는 관계형 데이터베이스 서비스들은 서버 용량, CPU 수, 사용자 수, 동시 접속자 수 등등 다양한 조건에 따라 비용이 기하급수적으로 증가한다. 반면 대부분 오픈소스 형태로 제공되는 NoSQL의 경우는 비용의 부담이 훨씬 적다.

유연성

관계형 데이터베이스는 프로젝트를 시작할 때부터 데이터베이스의 구조 설계를 명확하게 해야 하지만, NoSQL의 경우는 고정된 테이블 구조가 필요하지 않다. 언제든지 새로운 속성을 추가할 수 있기 때문에 관계형 데이터베이스보다 훨씬 유연하다.

가용성

확장성에서 다뤘던 내용처럼 NoSQL 여러 대의 서버를 하나의 데이터베이스로 운영하기 쉽게 설계돼 있다. 이 같은 특성 덕분에 서비스 중 일부 하드웨어가 동작을 멈춰도 남아 있는 서버들이 요청을 처리할 수 있어 서비스 중단 위험이 적다.