NoSQL 이란?
NoSQL을 단어 그대로 해석한다면 "SQL이 아니다"라고 해석할 수 있지만 실제 의미는 "Non Relational Operational Database SQL", "관계형 데이터베이스가 아닌 SQL" 이라는 의미로 해석해야 합니다.
4차 산업 혁명 시대가 도래하며 빅 데이터(Big Data)와 클라우드 컴퓨팅(Cloud Computing)이라는 단어가 주목을 받고 있습니다. 기존의 관계형 데이터베이스는 최근 클라우드 컴퓨팅 환경에서 발생하는 빅 데이터를 효과적으로 저장, 관리하는 데 여러 가지 문제점이 발생하고 있습니다. 이러한 문제점을 개선, 보완하기 위한 새로운 데이터 저장 기술이 요구되었는데 이것을 NoSQL이라고 합니다.
NoSQL이 왜 급부상하고 있는지에 대한 이유를 살펴보기 위해서는 시간을 거슬러 올라가야 합니다. 국내에 PC가 보급되기 시작하던 1980년대에는 컴퓨터를 주로 문서 작업이 대부분이었기 때문에 컴퓨터에 대한 활용도가 떨어질 수 밖에 없었습니다. 이러한 문제점을 개선하기 위해서 서버에는 데이터를 배치하고 사용자의 PC에는 운영 프로그램을 배치하여 서버의 관리 비용은 줄이고 PC의 자원들은 최대한 활용하는 것이 효율적인 시스템 운용 방법이라는 것을 깨달았습니다. 이러한 개발 패러다임을 클라이언트 / 서버 환경이라고 합니다.
이러한 클라이언트 / 서버 개발 환경에서는 서버에 배치된 데이터들을 많은 사람들이 서로 공유할 수 있어야 하는데 기존의 파일 시스템으로 한계가 있을 수 밖에 없었기 때문에 DBMS라는 새로운 데이터 저장 기술이 각광 받기 시작한 것이며 오늘날 까지 광범위한 분야에서 널리 활용되고 있습니다.
클라이언트 / 서버 개발 환경을 통해 인트라넷, 인터넷에 접속하는 단계를 넘어 스마트 폰과 태블릿 장치들을 통해 무선 인터넷 환경에 접속할 수 있는 네트워크 기술에 대한 비약적인 발전이 이루어졌습니다. 이것은 우리가 예상하지 못했던 빅 데이터를 양산하게 되며 다양한 운영 프로그램들을 언제, 어디에서라도 설치, 사용할 수 있어야 한다는 것을 의미하게 되었습니다. 이러한 개발 패러다임을 클라우드 컴퓨팅 환경이라고 합니다.
이러한 클라우드 컴퓨팅 환경을 구축하기 위해서는 기업 환경에 맞는 최적의 데이터베이스를 구축할 수 있어야 하며 필요에 따라 DBMS 소스 프로그램을 수정할 수 있어야 하고 저렴한 비용으로 구축될 수 있는 FreeWare 제품들이 요구될 수 밖에 없지만, 기존의 관계형 데이터베이스는 이러한 시대적 요구에 부합되지 않아 NoSQL이라는 새로운 데이터 저장 기술이 부상하게 되었습니다.
NoSQL의 장점?
- 클라우드 컴퓨팅 환경에 가장 적합합니다.
클라우드 컴퓨팅 환경이 구축되기 위해서는 유연한 System 설계가 요구되어지는데 그 목적을 달성하기 위해서는 기업 환경에 맞는 최적의 데이터 베이스를 구축해야 합니다. 따라서 소스 프로그램을 수정할 수 있는 Open Source여야 하며 저렴한 비용으로 구축하기 위해서는 FreeWare 제품이어야 하는데 이 목적에 NoSQL이 가장 부합하다고 할 수 있습니다.
- 유연한 데이터 모델을 구축할 수 있습니다.
NoSQL은 비정형화 데이터 구조로 설계되기 때문에 조인(Join)을 피할 수 있고 효과적인 관리와 빠른 성능을 보장 받을 수 있습니다.
- 빅 데이터 처리에 효과적입니다.
NoSQL 기술은 대부분 Memory Mapping 기술로 구현되기 때문에 일반적인 관계형 데이터베이스보다 빅 데이터에 대한 읽기 / 쓰기 작업이 빠르며 무엇보다도 기존의 OS와 HW에 그대로 구현할 수 있기 때문에 유연성과 확장성이 좋은 것이 특징입니다.
NoSQL이 위와 같은 장점을 가지고 있기는 하지만, 그렇다고 관계형 데이터베이스가 몰락하는가? 그것은 아닙니다. 왜냐하면, 관계형 데이터베이스와 NoSQL은 목적이 다르다고 할 수 있습니다. 관계형 데이터베이스는 클라이언트 / 서버 환경의 개발 패러다임에 맞는 데이터 저장 기술이라면 NoSQL은 클라우드 컴퓨팅 환경의 개발 패러다임에 맞는 최적의 데이터 저장 기술이기 때문입니다.
정리하면,
NoSQL : 클라우드 컴퓨팅 환경의 개발 패러다임에 적합한 데이터 저장 기술
RDB : 클라이언트 / 서버 환경의 개발 패러다임에 적합한 데이터 저장 기술
NoSQL의 종류
현재, NoSQL이라는 기술로 만들어진 제품의 종류는 150가지가 넘지만, 실제로 사용자 층을 확보하고 있고 꾸준한 기술 지원과 업그레이드를 하고 있는 제품은 다음과 같습니다.
1) MongoDB 2) Casandra 3) HBASE 4) CouchDB 5) Riak 6) Redis
MongoDB를 제외한 나머지 제품들은 읽기와 쓰기에서 일관되지 못한 성능을 보여주나, MongoDB는 성능에 큰 차이가 없는 안정적인 결과를 보여줍니다.
또한, 저장 공간의 효율성, 시스템 확장성, 관리성, 안정성 측면에서도 일관되게 좋은 평가를 받았으며 무엇보다도 사용자를 위한 기술지원, 새로운 버전에 대한 출시계획, 커뮤니티 지원 등에서도 MongoDB는 좋은 평가 결과를 받았습니다.
따라서 저는 MongoDB를 활용하여 이후 Posting을 진행할 예정입니다.