NoSQL에 대해

JYR00·2023년 3월 17일
0

기술면접

목록 보기
3/3


NoSQL 정의

  • NoSQL이라는 용어는 비관계형 데이터베이스 유형을 가리키며 이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 저장한다.
  • 그러나 NoSQL 데이터베이스는 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하여 질의할 수 있습니다. 이 데이터베이스가 not only SQL 데이터베이스라고 불리는 이유가 바로 이것이다.

NoSQL 사용되는 이유

  • SQL같은 경우에는 데이터가 매핑되어있는 레코드가 테이블(Table) 이라는 이름을 사용하는 것에 반하여 NoSQL같은 경우에는 문서(Documents) 이라고 부른다.
  • 높은 확장성과 가용성이 주요 장점인 NoSQL 데이터베이스는 실시간 웹 애플리케이션 및 빅 데이터에 널리 사용된다.
  • 변화하는 요구 사항에 빠르게 적응함으로써 민첩한 개발 패러다임에 자연스럽게 활용되는 이점이 있다. NoSQL 스타일의 API를 사용하면 저장 또는 검색 시 데이터 변환의 필요성이 줄어든다.
  • NoSQL은 말그대로 문서라서 자유롭게 데이터를 넣을 수 있다. 또, 형식이 존재하지 않는다는 장점을 이용하여 필요한 데이터만을 넣을 수 있기 때문에 장점이 있다.

RDBMS vs NoSQL

  • RDBMS의 데이터는 테이블이라고 불리는 데이터베이스 객체에 저장되어 있다. (테이블은 관계형 데이터 항목 모음이고, 열과 행으로 구성되어있음) 이 데이터베이스에서는 스키마를 사전에 정의해야 한다. 즉, 모든 열과 그와 관련된 데이터 유형이 사전에 파악되어야 애플리케이션이 데이터를 데이터베이스에 작성할 수 있다. 이 데이터베이스는 또한 키를 사용해 여러 테이블을 연결하는 방식으로 정보를 저장한다. 그리고 그 과정에서 여러 테이블 간의 관계가 형성된다. 가장 간단하게 설명하면, 키는 특정 행을 검색하는 데 사용되며, 검사 또는 수정될 수 있다.

  • 반대로 NoSQL 데이터베이스에서 데이터는 사전에 스키마를 정의하지 않아도 저장될 수 있다. 작업을 진행하는 동시에 데이터를 정의하는 방식으로 빠르게 데이터를 작성하고 반복할 수 있는 능력을 얻게된다는 얘기이다. 이 데이터베이스는 그래프 기반, 열 지향, 문서 지향 또는 키-값 저장소 등 특정 비즈니스 요구 사항 수행에 적합하다.


NoSQL을 선택하는 이유

1. 유연성

  • SQL 데이터베이스를 사용하면 데이터는 훨씬 더 엄격한 사전 정의된 구조 안에 저장된다. 하지만 NoSQL을 사용하면 데이터는 엄격한 스키마 없이도 훨씬 더 자유로운 형식으로 저장될 수 있다. 이와 같은 설계 덕분에 혁신과 빠른 애플리케이션 개발이 가능해진다. 개발자들 역시 스키마 걱정 없이 고객들에게 더 나은 서비스를 제공하기 위한 시스템 개발에만 몰두할 수 있다. NoSQL 데이터베이스는 하나의 데이터 저장소에서 구조적, 반구조적, 비구조적 데이터 등 모든 형식의 데이터를 손쉽게 처리할 수 있다.

2. 확장성

  • NoSQL 데이터베이스는 서버를 증설해 확장하는 대신 상업용 하드웨어를 사용해 확장할 수 있다. 덕분에 증가한 트래픽을 지원하고 다운타임 없이 수요를 충족시킬 수 있다. NoSQL 데이터베이스는 확장을 통해 더 큰 용량과 성능을 갖출 수 있다. 이와 같은 이유로 데이터 세트 확장을 위한 옵션으로서 NoSQL 데이터베이스에 대한 선호도가 높은 편.

3. 고성능

  • NoSQL 데이터베이스의 확장 아키텍처는 데이터 양이나 트래픽이 증가할 때 그 진가를 발휘한다. 아래 그래픽에서 볼 수 있듯이 이 아키텍처는 빠르고 예측 가능한 10밀리초 미만의 응답 시간을 보장. 또한 NoSQL 데이터베이스는 데이터를 수집하여 이를 빠르고 안정적으로 제공한다. NoSQL 데이터베이스가 매일 테라바이트 규모의 데이터를 수집하는 동시에 고도의 대화식 사용자 경험을 제공하는 애플리케이션에 활용되는 이유가 바로 이것이다. 아래 그래픽은 3-4ms 범위 내 95번째 대기시간을 제공하는 초당 300회의 읽기 송신율(파란색 선)과 4-5ms 범위 내 95번째 대기시간을 제공하는 초당 140회의 쓰기 송신률(초록색 선)을 보여준다.

4. 가용성

  • NoSQL 데이터베이스는 여러 서버, 데이터 센터, 클라우드 리소스 전반의 데이터를 자동으로 복제한다. 그 결과로 사용자 대기시간이 최소화된다. 또한 여러 대의 백업 서버 구성이 가능하여 장애 발생 시에도 무중단 서비스가 가능하다. 이 기능은 데이터베이스 관리 부담을 줄이는 데에도 효과적이다.

5. 고도의 기능성

  • NoSQL 데이터베이스는 데이터 저장 수요가 엄청나게 큰 분산형 데이터 저장소를 위해 설계되었다. 이와 같은 특성 덕분에 NoSQL은 빅 데이터, 실시간 웹 앱, 360도 고객 정보, 온라인 쇼핑, 온라인 게이밍, 사물인터넷, 소셜 네트워크, 온라인 광고 애플리케이션 등을 처리하기에 이상적인 데이터베이스이다.



https://www.oracle.com/kr/database/nosql/what-is-nosql/
https://meetup.nhncloud.com/posts/274

0개의 댓글