티스토리 뷰
1. RDB는 Entity를 정의하고 데이터 모델링을 하고 한후, 모델에 맞는 사용을 하기 위해서 쿼리와 APP을 개발합니다.
NoSQL은 App을 먼저 디자인하고, 필요한 쿼리 결과를 먼저 정의 한 후에, 그에 맞춰서 데이터 모델링을 하는 것으로 합니다.
2.절대 Normalization은 하지말고, DeNormalization을 해야합니다. 데이터 중복을 허용하여 성능을 높이고,
데이터 안에 데이터를 넣는 (Composition) 모델 들을 사용하여 Query 수를 줄여야 한다.
3. 내 어플리케이션의 서비스 특성과 이에 맞는 NoSQL을 선택합니다.
내가 하려는 서비스를 완전히 이해를 한 다음에 시작해야 실수를 막을 수 있기때문에 서비스에 맞는 NoSQL을 선택해서 개발을 진행해야한다.
4. NoSQL 쿼리가 실제 몇개의 물리 노드에 걸쳐서 수행되는 지에 대한 이해가 있어야 제대로된 쿼리 디자인이 가능하다.
5. NoSQL 디자인은 DB와 APP 뿐만 아니라 인프라(네트워크의 속도와 환경, 디스크의 용량적인 제약)에 대한 디자인을 함께 해야한다.
6. 대부분의 NoSQL DB는 인증이나 인가 체계가 없어서 보안에 매우 취약하기 때문에 별도의 보안 체계를 만들어야 합니다.
예를 들면, 방화벽이나 Reverse Proxy 등으로 접근형태를 우회해서 관리하는 형태로 해야합니다.
* 여기서 Reverse Proxy란?
: Proxy라는 개념은 예를 들어, 해당하는 사이트로 접속하기 위해서 요청을 보내게 되는데 만약 요청을 보내는 IP대역의 접근을 막고 있는 경우, 우회해서 Proxy 서버를 통해서 대신 요청을 하여 요청한 결과를 받는 것입니다.
이러한 개념을 가지고 Reverse Proxy는 서버의 70번 포트로 요청이 들어온다고 하면, 서버에서 자체적으로 다시 자신의 다른 포트인 예를 들면 100번 포트에 다시 요청을 전달해서 요청하는 요청에 대해서 한번 우회적으로 요청을 처리하는 것을 말합니다.
* Reference
1. NoSQL 디자인시 필수 사항 - http://bcho.tistory.com/625
'DynamoDB' 카테고리의 다른 글
DynamoDB란? 기본 개념설명 (7) | 2016.09.30 |
---|---|
DynamoDB를 사용하는 이유? (7) | 2016.09.30 |
NoSQL 데이터 모델링 2 (0) | 2016.09.27 |
NoSQL 데이터 모델링 1 (1) | 2016.09.24 |
Dynamo NoSQL 란? (0) | 2016.09.21 |