NoSQL 개념

2023. 12. 6. 20:48NoSQL/Redis

등장 배경

 

컴퓨터가 처음 발명된 이후로 인류는 수 많은 데이터를 양산하고 있고 이를 효과적으로 저장 관리 하고 있다.

최근 인터넷 및 모바일을 통해 접하게 되는 데이터 양은 급격하게 늘어나고 있고 기존 파일 시스템, DBMS 와 같은 저장 및 관리 기술 만으로 이를 처리하기에 많은 부담이 있다.

 

1970~1980 년대 개발되었던 관계형 DBMS 를 사용하고 있다 보니 2000~2020 년 대의 시대 환경에 미치지 못하여 예기치 못한 문제점들이 도출되고 있다.

 

이에 2000년대 초 새로운 데이터 저장 관리 기술이 등장하는데 이를 NoSQL 이라고 한다.

 

기존 관계형 DBMS는 클라이언트/서버 플랫폼을 기반으로 한다면 NoSQL은 클라우드 컴퓨팅과 클라이언트/서버 플랫폼 모두를 기반으로 한다는 점이 가장 큰 차이점이다.

즉 기존 개발 운영 환경도 지원하고 새로운 개발 운영 환경도 지원한다는 것이다.

NoSQL 이 "SQL이 아니다"라는 의미 보다는 기존에 SQL 기능뿐 만 아니라 SQL이 할 수 없는 영역의 기술도 제공하는 대체기술 또는 보완 기술이다.


클라우드 컴퓨팅 환경

 

DBMS 의 경우 초기에는 매우 경량 SW 였으나 HW 의 발전과 함께 다양한 데이터 관리 기술들이 개발되면서 점점 중량 SW 가 되어 온 것이다. 이와 같은 SW 는 기존의 호스트 또는 메인-프레임(Main-Frame) 그리고 서버와 같은 시스템 환경에 적합하게 설계되고 개발되었다면, 최근의 플렛폼은 데이터 공유 및 시스템 운용의 효율성 향상을 위해 클라우드 컴퓨팅 환경이 적극적으로 도입되고 있다.

 

개발 운영 플랫폼은 새로운 변화를 요구하고 있지만 데이터 관리기술은 여전히 관계형 DBMS로 구축 운영하다 보니 비용 및 성능 지연문제와 같은 다양한 문제에 부딪히게 되고 이에 최적화된 저장관리 기술이 NoSQL 이다.

 

관계형 DBMS는 대부분 상용 라이센스이기 때문에 구축 단계부터 구매 비용이 발생하게 되는데 클라우드 컴퓨팅 환경의 경우 클라이언트/서버 환경과는 달리 하나의 서버가 아닌 2대 이상의 서버를 요구하는 분산 시스템을 구축해야 하는데 이런 경우 라이센스를 여러 개 구매해야 하기 때문에 비용이 2~3배 이상 소요되는 문제점이 있다.

하지만 NoSQL 의 경우 대부분 오픈소스와 엔터프라이즈 라이센스를 제공하기 때문에 꼭 필요한 경우가 아니라면 오픈소스를 선택해 구매 비용 없이 시스템을 구축할 수 있다.


유연성

 

관계형 DBMS 의 경우 데이터베이스를 분석, 설계, 구축하기 위해서는 개념 데이터 모델링, 논리 데이터 모델링, 물리 데이터 모델링 단계를 거쳐 정규화 및 반정규화 작업을 수행한 다음 최종 테이블, 인덱스 구조를 생성하게 된다.

이와 같은 작업은 쉬운 일이 아니며 200~300개의 테이블이 생성되는 비즈니스 환경에서 최소 2개월~3개월 이상의 많은 시간과 비용이 발생하게 된다.

이는 DB의 테이블을 정형 구조라고 표현하는데 이를 생성하기 위해서는 설계 단계에서 테이블 명, 컬럼 명, 컬럼 개수, 데이터 타입, 데이터 길이, 제약 조건 들을 반드시 결정해야 하기 때문이다.

 

반면 NoSQL 기술에서 말하는 데이터 저장 구조는 제품에 따라 조금씩 다르지만 컬렉션(Collection), 테이블(Table), 노드(Node)라고 하며 비정형 구조라고 표현한다. 비정형 구조도 이를 분석하고 설계하는 단계는 필요하지만 정형 구조처럼 구체적이고 까다롭지 않기 때문에 쉽고 간단하게 설계할 수 있다.


빅데이터

 

초당 수만~수십만 건의 빅데이터가 발생하는 비즈니스 환경에서는 무엇보다 빠른 쓰기와 읽기 작업을 통한 통계 분석 작업이 필요하다. DBMS에서 빅데이터를 빠르게 처리하는 것은 현실적으로 가능하지 않다. NoSQL은 이와 같은 환경에서도 빠른 성능이 보장될 수 있도록 설계되어 개발되었다. 관계형 DBMS에 비해 단정적으로 몇 배 이상 빠르다고 표현할 수 없지만 NoSQL 기술을 잘 이해하고 분석, 설계, 구축 한다면 보편적으로 최소 3배 이상의 성능을 기대해 볼 수 있다.


DB 종류

 

DBMS NoSQL
Oracle, SQL-server, MY-SQL, DB2 등 MongoDB, Redis, Cassandra, Neo4J 등

 

NoSQL 제품이라고 표현은 하지만 정확히 말하면 동일한 데이터 저장구조는 아니다. 즉, 데이터의 논리적, 물리적 구조가 다르다는 것은 설계 및 구축, 운영, 관리 방법도 다르다는 것을 의미한다.

NoSQL 은 키-밸류 DB, 컬럼-패밀리 DB, 도큐먼트 DB, 그래프 DB와 같이 크게 4가지 유형의 데이터 구조를 제공한다.

이 중에 Redis 는 대표적인 키-밸류 DB 유형의 제품이고, MongoDB 는 도큐먼트 DB 유형의 제품이다.

이와 같이 4가지 유형으로 나누는 이유는 데이터의 유용성(Availabilty), 일관성(Consistency), 지속성(Partitioning)을 고려한 결과이다.

'NoSQL > Redis' 카테고리의 다른 글

Redis 데이터 입력/수정/삭제/조회  (0) 2023.12.10
Redis 간단한 용어 설명  (1) 2023.12.10
Redis Standalone 서버 구축  (0) 2023.12.08
EC2 ubuntu Redis 설치  (0) 2023.12.08
Redis 의 특징  (0) 2023.12.07