본문 바로가기

플젝 구현내용 정리

NoSQL관련 PoC 사례 정리

728x90
반응형

이전 회사에서 PoC로 NoSQL 관련 내용을 정리한게 있다.

 

관련 내용을 시간 있을때 정리 해놓자.

 

NoSQL 데이터베이스를 적용하려고 고민중에 실제로 구현해볼 기회가 생겼다.

조건은 JSON 형태의 저장과 REST API를 기반으로 하는 트랜잭션 처리가 조건 이었다.

그래서 적합한 NoSQL 데이터베이스를 찾고 있었는데 종류로는 아래와 같다.

 

먼저, NoSQL 데이터베이스의 주요 유형을 보면 몇가지로 분류 할 수 있다.

1. 문서 지향형 데이터베이스 : MongoDB, CouchDB

2. 키-값 저장소 : Redis, DynamoDB

3. 열 지향형 데이터베이스 : Cassandra

4. 그래프 데이터베이스 : Neo4j

 

각각의 데이터베이스는 고유한 장점과 단점을 가지고 있다.

 

첫번째로, 문서 지향형 데이터베이스로는 MongoDB와 CouchDB가 있다.

MongoDB는 JSON과 유사한 BSON 형식으로 데이터를 저장하며, REST API와의 통합이 용이하고 트랜잭션 지원도 가능했다.

CouchDB는 JSON 형식으로 데이터를 저장하며, HTTP를 통해 RESTful API를 제공하고 분산형 데이터베이스로서의 강점을 가지고 있었다.

 

두번째로, 키-값 저장소로는 Redis와 DynamoDB가 있었다.

Redis는 매우 빠른 성능을 자랑하며, 주로 캐싱과 세션 저장소로 사용된다.

하지만 복잡한 쿼리에는 적합하지 않았고, DynamoDB는 AWS에서 제공하는 관리형 NoSQL 데이터베이스로, JSON 형식의 데이터를 저장할 수 있으며 높은 확장성과 가용성을 제공했다. 하지만 가격이 싸지 않았다.

 

세번째로, 열 지향형 데이터베이스로는 Cassandra가 있었다.

Cassandra는 대규모 데이터 분산 저장에 적합하며, JSON 데이터를 저장할 수 있고 높은 쓰기 성능과 확장성을 제공했다.

 

마지막으로, 그래프 데이터베이스로는 Neo4j가 있었다.

Neo4j는 그래프 구조로 데이터를 저장하며, 관계형 데이터를 처리하는 데 강점을 가지고 있었다. 하지만 일반적인 JSON 데이터 저장에는 적합하지 않았다.

 

비교 분석을 통해, JSON 형식의 데이터를 저장하고 REST API 기반의 트랜잭션이 많은 경우, MongoDB와 CouchDB가 가장 적합한 선택이라는 결론에 도달했다.

MongoDB는 강력한 쿼리 기능과 트랜잭션 지원을 제공하며, CouchDB는 RESTful API와 분산형 데이터베이스로서의 강점을 가지고 있었다. (MongoDB는 AWS에서 DocumentDB로 서비스 되고 있다.)

 

두 데이터베이스 모두 JSON 형식의 데이터를 자연스럽게 처리할 수 있었고,

결국, 프로젝트의 요구사항에 가장 부합하는 MongoDB를 선택하게 되었다. 이유는 아래와 같다.

MongoDB는 직관적이고 사용하기 쉬우며, 트랜잭션 지원과 강력한 쿼리 기능을 제공하고 메뉴얼도 잘 구성되어 있어 사용하는데 전혀 지장이 없었다. 그리고 다른곳에서도 많이 사용하고 있어서 레퍼런스 등도 찾기 수월했다.

MongoDB를 선택한 자세한 이유는 아래와 같다.

 

(1. JSON 형태의 저장,

2. 스키마가 유연하다,

3. 비교적 복잡한 쿼리도 쉽게 작성 가능,

3. 수평확장 용이,

4. REST API의 통합이 용이.)

 

오픈소스 데이터 베이스의 성능이 날로 좋아지고 있고, 다양항 형태의 DB도 등장하고 있다.

프로젝트나 구현 목적에 맞게 적절한 프로그램을 선정하여 구현을 하면 될거 같다.

 

- 끝 -

728x90
반응형