반응형

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

 

NoSQL이란 무엇입니까? NoSQL Databases 설명

NoSQL은 먼저 구조를 정의할 필요 없이 데이터를 저장 및 검색하는 데이터베이스 유형으로, 보다 견고한 관계형 데이터베이스의 대안이 될 수 있습니다.

www.mongodb.com

 

'Project > Shop-and-Show' 카테고리의 다른 글

[Shop-and-Show] 프로젝트 개요  (0) 2021.09.13
반응형

Spring Framework 를 조금 더 사용해보고, 개인적으로 공부를 더 해보고 싶어서 Shop and Show 라는 프로젝트를 생각해 봤다. 내가 생각한 Shop and Show 는 일종의 SNS 로, 인별그램이 인기를 얻고 해당 SNS 의 인플루언서들이 상품을 판매(?) 하는 것에서 착안을 해서 생각하게 된 프로젝트다.

 

프로젝트의 내용은 간단히 설명하자면 다음과 같다. SNS 를 이용하다 보면 어떤 인플루언서가 본인의 마음에 든 상품이나 본인이 운영하고 있는 쇼핑몰에 있는 아이템을 판매하는 것을 많이 보게 된다. SNS 를 이용하는 많은 사용자들이 그것에 관심을 갖고 상품에 대한 구매를 고민하게 되는데 링크를 클릭해 보면 일반적인 쇼핑몰로 이동을 하게 되고 그 곳에서 상품에 대한 구매를 진행하게 된다.

 

내가 생각한 부분은 SNS 내에서 그러한 상품 관리를 같이 할 수 있으면 어떨까라는 것이었다. 어쨌든 상품을 판매하고 구매하기 위해서 쇼핑몰이 따로 있어야 하고, 이미 그러한 사업을 진행하고 있던 인플루언서가 아니라면 새로 사이트를 구축하는 비용을 필요로 한다. 내가 생각한 프로젝트는 SNS 내에 일종의 쇼핑몰을 구축하고 판매자는 그 쇼핑몰에 상품을 등록하기만 하면 되는, 굳이 사이트를 새로 구축하고 서버 관리를 할 필요가 없는 것이다.

 

추가적으로, 판매자가 SNS 에 사진을 올리고 그 사진의 태그를 통해 상품으로 바로 연결이 되게 한다던가 상품을 구매한 사람이 리뷰를 따로 달지 않고 SNS 에 게시글을 올림으로써 그 상품에 대한 리뷰를 등록하는 방식을 생각 중이다. 구매한 사람 입장에서는 따로 상품에 대한 리뷰를 남길 필요가 없고, SNS 에서 그 게시물을 보게 되는 사람들은 자신이 관심이 생긴 상품들에 대해 바로 확인할 수 있어 좋을 것 같다.

 

결국 내가 개발하고자 하는 이 시스템의 장점은, 판매자에게는 특별히 상품 판매를 위해 새로 쇼핑몰 사이트를 구축할 필요가 없어 상품 판매를 위한 허들을 낮출 수 있다는 점과 구매자에게는 일반적으로 사용하는 SNS 를 통해 자연스레 여러 상품들을 접할 수 있고 관심이 있는 상품이 있다면 그것에 대해 바로 구매를 할 수 있다는 점이 있을 것 같다. 이에 더해, 모든 사용자들은 이 시스템을 쇼핑몰 뿐만 아니라 SNS 로 이용하기 때문에 자신이 평소 관심이 있었던 인플루언서나 상품들에 대해 팔로우를 하고 상품에 대한 소식들을 쉽게 받아볼 수 있는 것으로 생각하고 있다.

 

이 외에 추가적인 정보는, 프로젝트를 진행하며 추가할 점이 생기게 된다면 작성할 예정이다. 이 카테고리에는 프로젝트를 진행하며 있었던 기술적인 이슈나 공부한 내용들, 혹은 프로젝트 자체에 대한 내용들이 작성될 예정이다.

'Project > Shop-and-Show' 카테고리의 다른 글

[NoSQL # 1] SNS 게시물 저장 방식 - NoSQL Database  (0) 2021.09.14

+ Recent posts