SNS 시스템을 구축하기 위해서 꼭 필요한 것이, 게시물을 저장하는 것이다. 그 저장소는 RDB 가 될 수도 있고, NoSQL DB 가 될 수도 있고, 분산 파일시스템과 같이 단순 파일로 저장하는 것이 될 수도 있다. 그 중 나는 NoSQL DB 를 사용해 프로젝트를 진행해 보려고 한다.
우선, NoSQL 을 선택하게 된 가장 큰 이유는 개인적으로 NoSQL DB 에 대한 이해가 부족한 것 같아 공부를 할 필요성을 느꼈는데 단순히 이론만 보고 공부하는 것은 직접 사용하면서 배우는 것보다 내용을 익히기에는 빠를 수 있지만 공부하는 것이 금방 지칠 것 같아서이다. 내가 알고 있는 NoSQL 의 특징은 정해진 Schema 가 존재하지 않는다는 것인데, 이러한 특징이 정확히 어떤 것을 의미하는 지 그것으로 인한 장점이 어떤 것이 있는 지를 공부하고 정리하려고 한다.
NoSQL 이란 ?
NoSQL 이란 게 우선 어떤 것일까. MongoDB 사이트에서 설명하기로는, SQL (Structured Query Language) 만을 사용하지 않는 Database 라 한다. 관계형 데이터베이스는 일반적으로 표 형식으로 데이터를 정의한다. 데이터 간의 관계를 통해 데이터를 정의한다고 생각되는데, 이와 달리 NoSQL DB 는 데이터 모델에 따라서 다양한 유형으로 데이터를 정의한다.
NoSQL DB 는 이러한 특징이 있지만, 한 마디로 이를 정리하자면 "관계형 데이터베이스 이외의 형식으로 데이터를 저장하는 데이터베이스" 라고 할 수 있다. 그렇다고 NoSQL 데이터베이스가 관계형 데이터를 저장하지 않는다는 것은 아니다. RDB 의 방식과 다를 뿐이지 저장이 가능하고, 그 저장하는 형태가 단일 데이터 구조에 관련된 여러 데이터를 중첩해서 저장하는 방식이 될 수도 있다. NoSQL 데이터베이스는 저장소에 사용되는 스토리지의 비용이 크게 감소하면서 등장했다고 하는데, 이것의 등장으로 인해 기존처럼 데이터 저장에 있어 중복을 줄이기 위해 데이터 모델을 복잡하고 어렵게 작성할 필요가 줄었다고 한다.
NoSQL 데이터베이스는 개발자가 엄청난 양의 비정형 데이터를 저장할 수 있도록 지원하는데, 이러한 방식이 개발자에게 뛰어난 유연성을 제공하였다 한다. 특히, 애자일 방법론이 인기를 얻으면서 소프트웨어 개발자들이 변화하는 요구사항에 따라 발빠르게 데이터 모델에서 소프트웨어 전반에 이르기까지 반복과 변경을 신속하게 할 수 있는 능력이 필요해졌다 한다. NoSQL 데이터베이스가 바로 이러한 유연성을 제공하는 데이터베이스 구조였다.
# Reference.
https://www.mongodb.com/ko-kr/nosql-explained
'Project > Shop-and-Show' 카테고리의 다른 글
[Shop-and-Show] 프로젝트 개요 (0) | 2021.09.13 |
---|