AWS를 사용하는 사용자라면, NoSQL을 사용하려고 고려하는 사용자라면, 누구나 한번쯤 들어봤을 수 있는 DB 솔루션입니다. Google의 BigTable 과 NoSQL의 발전을 위해 노력하고 있는 AWS DynamoDB에 대해서 설명하겠습니다. DynamoDB의 특징 - 배포가 단순하고 신속합니다. 이 의미는 설계를 해서 그 데이터베이스를 적용하기까지 오랜 시간이 걸리지 않는다는 이야기입니다. - 확장이 단순하고 신속합니다. 수백만 IOPS를 처리할 수 있는 시스템 설계해두었기 때문에 단순한 인터페이스의 조작만으로 규모를 확장시키기 수월합니다. - 데이터는 자동으로 복제됩니다. 데이터의 손실을 방지하기 위해서 데이터 베이스를 자동으로 백업해서 복사본을 두고 손실율을 낮추고 있습니다. - 빠르고 일관된..
AWS를 사용하는 사용자라면, NoSQL을 사용하려고 고려하는 사용자라면, 누구나 한번쯤 들어봤을 수 있는 DB 솔루션입니다. Google의 BigTable 과 NoSQL의 발전을 위해 노력하고 있는 AWS DynamoDB에 대해서 설명하겠습니다. DynamoDB의 특징 - 배포가 단순하고 신속합니다. 이 의미는 설계를 해서 그 데이터베이스를 적용하기까지 오랜 시간이 걸리지 않는다는 이야기입니다. - 확장이 단순하고 신속합니다. 수백만 IOPS를 처리할 수 있는 시스템 설계해두었기 때문에 단순한 인터페이스의 조작만으로 규모를 확장시키기 수월합니다. - 데이터는 자동으로 복제됩니다. 데이터의 손실을 방지하기 위해서 데이터 베이스를 자동으로 백업해서 복사본을 두고 손실율을 낮추고 있습니다. - 빠르고 일관된..
NoSQL 데이터 모델링 패턴 NoSQL 데이터 모델링 패턴은 Key/Value Store 구조의 PUT/GET 밖에 없는 단순한 DBMS에 대해서 다양한 형태의 Query를 지원하기 위한 테이블을 디자인하기 위한 가이드이다. 특히, RDBMS에는 있는 기능들인,1. Order by를 이용한 Sorting2. Group by를 이용한 Grouping3. Join 등을 이용하여,Entity 간의 Relationship정의 그리고 Index 기능을 활용하여 데이터를 쿼리하는데, 상당히 유용하게 사용합니다. NoSQL은 이러한 기능들을 가지고 있지 않기 때문에, NoSQL 내에서 데이터 모델링을 통해서 이러한 기능들을 구현하는 방법에 대한 가이드를 제공합니다. 크게 3가지의 모델링 패턴에 대해서 설명합니다.1..
NoSQL 데이터 모델링에서 데이터 모델과 모델링 절차에 대해서 이야기를 해보겠습니다. 최근 SNS, 빅데이터, 클라우드와 같이 트랜드와 같이 가는 기술 서비스에 대해서 관심이 많습니다. 사실 이런 최신 기술 트랜드라고 하는 것들이 나온지는 꽤 되었지만 RDBMS처럼 범용적으로 사용되고 있지는 않습니다. 이렇게 범용되지 않은 이유는 기존에 선점했던 관계지향형 데이터베이스(RDB)로 많은 사람들이 데이터 베이스를 만들기 시작해서 많은 서비스를 하는 프로그램을 만들었습니다. 이러한 이유로 RDBMS 전문가들이 생겨나게 되었고, 현재 사용되어지고 있기 때문이다. NoSQL은 데이터베이스이기도 하지만 RDBMS와는 전혀 다른 성격을 가지고 있고, 접근 방식과 모델링 방식이 다르기 때문에 관계지향형 데이터베이스(..
1. RDB는 Entity를 정의하고 데이터 모델링을 하고 한후, 모델에 맞는 사용을 하기 위해서 쿼리와 APP을 개발합니다.NoSQL은 App을 먼저 디자인하고, 필요한 쿼리 결과를 먼저 정의 한 후에, 그에 맞춰서 데이터 모델링을 하는 것으로 합니다. 2.절대 Normalization은 하지말고, DeNormalization을 해야합니다. 데이터 중복을 허용하여 성능을 높이고, 데이터 안에 데이터를 넣는 (Composition) 모델 들을 사용하여 Query 수를 줄여야 한다. 3. 내 어플리케이션의 서비스 특성과 이에 맞는 NoSQL을 선택합니다. 내가 하려는 서비스를 완전히 이해를 한 다음에 시작해야 실수를 막을 수 있기때문에 서비스에 맞는 NoSQL을 선택해서 개발을 진행해야한다. 4. NoSQ..
NoSQL이 처음 만들어지게 된 이유는 명확합니다. 기존의 단순한 값들을 Entity-Relationship 의 관계를 이용해서 나타내어서 사용하는 방식으로 사용을 했습니다. 그런데 세상이 바뀌게 되었습니다. 세상은 예전처럼 단순한 데이터를 처리하고 활용하는 시대가 지나게 되었습니다. 그래서 나오게 된 실용적으로 관계지향의 개념을 깨고 원하는 데이터끼리 뭉쳐서 더 큰 데이터를 활용하자는 목적에서 나오게 된 것이 바로 NoSQL이라는 개념입니다. NoSQL의 의미는 혹자들은 "Not Only SQL" 이라는 범용적인 개념으로 해석하여서 엄청나게 큰 영역을 행사하려고 하지만 실상 NoSQL이라는 것은 그냥 "No SQL"입니다. 그냥 단지 SQL이 아니라는 의미입니다. 그렇게 언급되기 시작되었고 지금은 마치..