Huseong
데이터베이스에 대한 나의 의사결정 알고리즘
date
May 20, 2023
slug
데이터베이스에-대한-나의-의사결정-알고리즘
author
status
Public
tags
Database
MySQL
ElasticSearch
summary
어떤 데이터베이스를 사용해야 할 지 의사결정 할 때, 나는 현재 어떤 방식으로 의사결정하는지를 정리한 글이다.
type
Post
thumbnail
updatedAt
May 20, 2023 06:35 AM
categories
Huseong
Computer
Language
어떤 데이터베이스를 사용해야 할 지 의사결정 할 때, 나는 현재 어떤 방식으로 의사결정하는지를 정리한 글이다. 정말 다양한 종류의 데이터베이스가 있지만, 내가 다뤄본 것들은 크게 4종류로 나뉜다.
- Relational DB
- NoSQL
- In-Memory DB
- Search Engine
Search Engine - Elastic Search
- 검색, 특히 텍스트 검색이 필요한 데이터를 다룰 때 사용한다.
- Fuzzy 검색(대충 써도 비슷한 데이터를 찾아주는 검색, ex 구골 ⇒ 구글)에 대해 퍼포먼스가 뛰어나다고 이해하고 있어서 이러한 요구사항이 있는 경우 사용했다.
- ex) 블로그 글 찾기
- Elastic Search의 경우, Kibana와 융합되어 대시보드, 시각화를 매우 잘 지원하기에 이러한 요구사항이 있는 경우에도 사용했다.
In-Memory DB - Redis
- 높은 수준의 퍼포먼스가 필요할 때 사용한다.
- 보통 캐싱의 용도로 사용했다.
Relational DB - MySQL
- 높은 수준의 무결성이 필요할 때 사용한다.
NoSQL - AWS DynamoDB, MongoDB
- 무결성이 중요하지 않은 데이터를 저장하는데 사용한다.
- 주로 로그성 데이터나 스키마가 정해지지 않은 데이터를 저장하는데 사용한다.
결론
나름 여러가지 도메인을 개발해보았지만, 저 4가지 범주에서 벗어나는 특별한 요구사항은 딱히 없었던 것으로 기억한다. 다만, 각 카테고리에서 항상 사용하던 Tool 외에 다른 Tool들도 어떤 특징이 있는지 정도는 파악하는게 더 효율적인 개발을 위해 좋을 것 같다.