[용어소개] NoSQL

  • cloudnativelab
    (클라우드네이티브랩)
  • cloudnativelab's Avatar 이 글의 작성자
  • Offline
  • Newbie
  • Newbie
더보기
12 Feb 2021 07:58 - 12 Feb 2021 07:58 #5191 작성자: cloudnativelab
cloudnativelab 님의 글: [용어소개] NoSQL
NoSQL

최진식 (LG CNS 클라우드운영혁신팀장 / 자바 고양이 Tomcat 이야기, Amazon Web Services 이야기 저자)



NoSQL은 비정형 데이터, 대량 데이터를 처리할 수 있으며 분산 처리 기능을 제공하는 데이터베이스입니다. 다양한 컨텐츠, 게임, IoT, 실시간 웹앱, 대량 로그 등의 처리에 주로 사용되며 점점 활용 분야가 넓어지고 있습니다.

몽고DB(MongoDB), 카산드라(Cassandra), HBase 등이 대표적인 NoSQL인데, 이러한 NoSQL 소프트웨어는 대부분 오픈 소스이기 때문에 구축부터 유지관리까지 직접 수행해야 하며 다양한 NoSQL 제품마다 특성을 잘 파악해야 한다는 문제점이 있습니다.

하지만 퍼블릭 클라우드 제공자들의 NoSQL 서비스를 사용하면 이러한 문제들은 대부분 해결됩니다. 몇 단계의 간단한 설정만으로 바로 NoSQL 사용이 가능하기 때문에 비즈니스 요구에 민첩하게 대응 가능하며, 분산 처리와 대량 데이터 처리를 위한 다량의 서버나 스토리지 확보가 필요치 않습니다. 또 다양하게 제공되는 클라우드 서비스들과의 손쉬운 연계가 가능합니다. 그래서 NoSQL은 클라우드 시대에 더욱 진가를 발휘하고 있습니다. 대표적인 클라우드 NoSQL 서비스에는 AWS의 DynamoDB, Azure의 Cosmos DB, GCP의 Firestore 등이 있습니다.

“NoSQL”이라는 이름은 여러 의미를 담고 있지만 보통 Not Only SQL이라고 해석합니다. SQL은 오랜 시간 기업의 데이터 처리를 담당하고 있는 RDBMS(관계형 데이터베이스)의 표준 언어입니다. 그래서 Not Only SQL, 즉 “SQL 뿐만 아니라…“ 라는 표현은 새로운 형태의 데이터베이스라는 점을 부각하는 면이 강합니다.

그렇지만 NoSQL이 RDBMS를 완전히 대체하는 것은 아닙니다. RDBMS는 주로 중앙 서버 방식이며, 정교하게 설계된 테이블 단위로 데이터를 저장하기 때문에 일관되고 정확한 데이터 처리가 가능합니다. 반면 NoSQL은 워크로드에 따라 서버의 추가가 가능하고 데이터가 분산된 여러 서버에 전파되기 때문에 최종적 일관성은 유지되지만 순간적 데이터의 불일치가 발생할 수 있습니다.

그래서 기업의 미션 크리티컬 영역은 RDBMS를, 데이터 일관성보다 빠른 대량 데이터 처리가 중요한 영역은 NoSQL을 선택하는 것이 일반적입니다.

[무단전재 및 재배포 금지]
Time to create page: 0.053 seconds
Powered by Kunena Forum