본문 바로가기

참고자료

nosql 이란?

NoSql은 개발공부를 하다보면 한번정도는 듣는 db이다. 이 글은 NoSql이 어떤건지 가볍게 살펴보고자 한다. 

 

1.NoSQL 이란?

NoSQL 은 많은량의 데이터 처리 등 성능에 특화된 목적을 위해 비관계형 데이터베이스에 비정형적인 데이터를 저장하기 위한 분산 저장 시스템이라고 볼 수 있다. NoSQL은 비관계형 데이터베이스 유형을 가리키며 다른 관계형 테이블과는 다른 형식으로 데이터를 저장한다. 또 NoSQL 데이터베이스는 언어마다 관습화된 API, 선언적 구조의 쿼리 언어(PLSQL), 쿼리별 언어를 사용하여 질의가 가능하다. 즉 SQL만 사용하지 않는 데이터 관리 시스템이다. NoSQL 은 Not Only SQL의 약자이다. 절대 No + SQL 의 뜻이 아니다. 


2.NoSQL 왜 등장하게 되었나?

NoSql의 용어가 처음 등장한 것은 1998년이다. 하지만 보편적으로 사용되기 시작한 때는 2009년이다. 2000년대 전반까지만 해도 NoSql은 주목을 많이 받지 않았었다. SQL이라고 하는 데이터를 처리하는 언어를 대체할 필요가 없었다. 또 ERP등 기업에서 프로그램을 사용한다고 할때 그 목적은 기업 업무의 자동화 혹은 효율성 증대에 있었다. 이를 위해 복잡한 데이터의 정확한 처리와 분석에 더 관심이 있었기 때문이었다. 하지만 2000년대 후반으로 넘어오면서 인터넷이 활성화되고, SNS가 등장하면서 정형화된 데이터가 아닌 비정형데이터의 저장이 필요시 되었다. 그리고 이런 비정형 데이터 저장과 처리를 할 수 있는 DB구조들이 주목받게 되었다. 이런 비정형 데이터 저장/처리 기술이 점점 발전하면서 NoSql 데이터 베이스가 각광을 받게 되었다. 

그렇다고 NoSql이 SQL을 대체하지는 않았다. 


3. 왜 쓰는건가? 장점은?

○ 비용이 좋다.

NoSql은 상대적으로 RDBMS 보다 유지비용이 적다. NoSql은 라이센스가 필요없는 오픈소스가 많다. 또 RDBMS는 DB확장을 할 때 하드웨어에 대한 추가적인 비용이 발생하지만 NoSQL 데이터베이스는 신속하게 수평적으로 확장할 수 있다. ○

 

○ 유연성이 좋다.

수평적으로 확장이 가능하기 때문에 유연한 데이터 모델을 따르므로 NoSQL은 급속도로 변화하는 데이터라도 처리할 수 있다. 때문에 애자일 개발에 유용하다.-복제

NoSQL은 복제 기능이 있는데 이 기능은 여러 서버에 걸쳐 데이터를 복제하고 저장한다. 이러한 복제 기능은 데이터 신뢰성을 제공한다. 다운타임 동안에도 액세스를 지원하고 서버가 오프라인 상태가 될 경우 데이터 손실로부터 보호 할 수 있다.

 

○ 속도

NoSQL은 빠른 저장과 처리를 지원한다. 또 빠른 속도 때문에 NoSQl 데이터베이스는 일반적으로 복잡한 최신 웹 애플리케이션, 전자상거래 사이트, 모바일 애플리케이션에 사용할 수 있다.

 

 

4. 그럼 단점은??

○ 표준화된 리소스, 다양한 지원의 부족

NoSQL은 SQL과 달리 표준화된 구조 질의 언어가 없다. 이는 NoSQL로의 마이그레이션을 비교적 어렵게 하는 요소가 될 수 있다. 

 

○ 지향점의 차이

SQL기반 데이터베이스의 속성인 ACID와는 다르게  NoSQL은 가용성과 성능을 중시한 분산시스템에 더욱 무게를 두고 있다. 


5. Nosql의 유형

Nosql은 여러가지 방식으로 데이터를 구성하기 위한 다른 옵션을 제공한다. NoSql 데이터 베이스는 아래의 기본 데이터 모델 중 하나를 사용하여 정보를 관리한다.

 

  ○ 키-값 저장소 : Redis, Memcached 등

  가장 단순한 NoSql 형태이다. 스키마가 없고 데이터는 Key-Value로 구성된 딕셔너리 형태의 데이터이다. key는 RDB에

  서 고유 식별자의 역할이며 value는 RDB에서 데이터의 역할이다. 이 유형은 쇼핑카트와 같은 사용자 세션정보등 영구적

  이지 않은 데이터들를 캐싱하 는데 흔히 사용된다. 하지만 여러 레코드를 가져와야 할 경우는 부적합하다. 또 데이터의 크

  기가 증가함에 따라 특정 key-value의 값을 유지하는 것 또한 어려울 수 있다.

 

○ 문서 저장소 :MongoDB

  데이터를 문서로 저장한다. 이 저장소는 준정형데이터 관리에 유용하며, 데이터는 일반적으로 JSON,XML 또는 BSON 형

 식으로 저장된다. 이러한 저장은 문서간의 데이터 스키마가 일치하지 않아도 되어서 개발에 유연성이 증가한다. 그러나 이

 런 특징은 복잡한 트랜잭션이 일어날 경우 데이터 손상이 일어날 수 있다. 주로 사용자 프로필이나 컨텐츠관리 시스템에

 사용된다. 

 

○ 그래프 저장소

  그래프 형태의 데이터를 보관한다. 데이터 요소들은 노드, 엣지 속성으로 저장이 된다. 노드는 장소, 사람등 모든 객체로

  정의가 가능하다. 엣지는 노드의 관계를 정의한다. 예를 들면 노드는 '나'인 클라이언트, 그리고 티스토리가 될 수 있습니

  다. 그러면 엣지는 나와 티스토리를 고객관계로 분류 할 수 있다. 그래프 저장소는 주로 그래프내 요소들간 연결 네트워크

  를 저장하고 관리하는데 사용된다.

 

○  인메모리 저장소

  이 유형의 데이터들은 디스크가 아니라 메인 메모리에 보관이 된다. 때문에 통상적인 디스크 기반 데이터베이스보다 더

  빠르게 데이터에 액세스 할 수 있다. 


 

참고

NoSql의 등장배경

https://dataonair.or.kr/db-tech-reference/d-guide/data-practical/?mod=document&uid=388

NoSQL 저장방식에 따른 분류

https://kwangkyun-world.tistory.com/entry/NoSQL-%EC%A0%80%EC%9E%A5%EB%B0%A9%EC%8B%9D%EC%97%90-%EB%94%B0%EB%A5%B8-%EB%B6%84%EB%A5%98 

NoSQL(vsSQL) 그리고 NoSQL의 종류

https://www.stevenjlee.net/2020/07/06/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-nosql-vs-sql-%EA%B7%B8%EB%A6%AC%EA%B3%A0-nosql-%EC%9D%98-%EC%A2%85%EB%A5%98/

IBM- NoSQL 데이터베이스 유형

https://www.ibm.com/kr-ko/topics/nosql-databases

NoSQL이란 무엇인가?

https://www.oracle.com/kr/database/nosql/what-is-nosql/

NoSQl 이란?

https://jwprogramming.tistory.com/70

 

'참고자료' 카테고리의 다른 글

SOAP란 무엇일까? - 웹서비스와 SOAP  (1) 2023.10.11
MIME 이란? Content-type 이란?  (0) 2023.09.26
인코딩은 무엇이며 BASE 64 인코딩이란 무엇일까?  (0) 2023.09.15
API와 SDK  (0) 2022.04.14
blocking 과 non blocking  (0) 2022.01.27