본문 바로가기

Database4

[Redis - 실시간 랭킹 가이드 01] 캐시와 레디스 레디스는 대표적인 인메모리 데이터 저장소로 빠르고 편리한 도구입니다. 또한 매우 쉽기 때문에 당장 학습하고 사용하는 것도 어렵지 않습니다. 하지만 실무에서 레디스를 좋은 도구로 활용하기 위해서는 레디스를 깊이 있게 이해하는 것이 중요합니다. 레디스에 대한 좋은 세미나와 글은 많지만 머리로만 이해하다보니 내것이 아닌 느낌이 들때가 많습니다. 그래서 실무에서 레디스를 사용하고 학습한 내용들을 토대로 레디스에 대해 깊게 알아보고 간단한 실시간 랭킹을 구현해보는 시리즈를 만들어 보려합니다. 레디스를 깊이 있게 이해하고 활용할 수 있는데 도움이 되기를 바라며 시작해보도록 하겠습니다! 레디스가 무엇인지 설명하기 좋은 장면인것 같아서 직접 만들어본 짤입니다. 이런거 대체 누가 만드나 했는데 그게 저일줄은..ㅎㅎ 캐시.. 2022. 2. 16.
데이터베이스의 꽃, 샤딩(Sharding) 이전에 사내의 한 도메인에서 사용하는 DB 용량의 86% 정도를 사용함에 따라 성능 저하가 발생하기 시작했다. 그래서 샤딩 도입을 고려하게 되었고 이에 대한 세미나를 들은적이 있었다. 당시 기억으로는 샤딩을 도입전에 것이 고려해야할 것도 많고, 성능 향상도 크게 기대하기 어려워 샤딩 도입을 신중히 해야한다는 결론이었다. 이번에는 샤딩을 고려하기까지의 과정, 화려한 샤딩 기술과 한계가 무엇인지 정리해보도록 하겠다. 샤딩은 DB 클러스터링(동기 복제방식)과 리플리케이션(비동기 복제방식)에 뒤이어 서비스의 전성기~성숙기 시기에 고려하게되는 Scale-out 솔루션이다. DB 관점에서의 서비스 성장 과정 초기의 서비스는 규모도 작고 트래픽도 많지 않기 때문에 단일 DB로 구성할 수도 있다. 하지만 서비스 초기에.. 2021. 11. 17.
리플리케이션의 문제와 해결방법 (복제지연, semi-sync) 지난 시간에는 사내에서 DB 리플리케이션이 깨져서 발생한 에러를 계기로 리플리케이션을 하는 이유와 원리, 당시 에러의 원인에 대해 알아보았다. 리플리케이션은 수많은 트래픽을 고가용성으로 대응할 수 있는 해결책이기도 하지만 여느 기술들이 그러하듯 장점만 존재하지 않는다. 어떠한 기술을 받아들이고 학습할때 그 기술의 장점만 보고 무조건적으로 수용하기보다 해당 기술의 단점과 한계를 명확히 알고 비판적으로 수용하는 것이 좋다고 생각한다. 그래서 이번에는 리플리케이션의 복제 지연, 데이터 정합성 문제들을 살펴보고 리플리케이션을 어떻게 활용하는 것이 좋을지 알아보도록 하겠다. 리플리케이션의 구조적 문제와 복제지연 지난 시간의 내용을 간단히 정리해보자면, 리플리케이션은 부하 분산, 백업 등을 위해 데이터베이스를 복제.. 2021. 11. 3.
리플리케이션(Replication) 얼마전 회사에서 개발을 완료하고 QA 환경에서 확인하던 중 분명 있어야할 데이터가 없다는 에러로그를 확인했다. 그렇게 문제를 따라가보니 이게 왠걸 라이브 쪽 데이터와 같아야할 리플리케이션(Replication)된 DB가 깨져버렸다. 다행히 인프라팀에 요청해서 해결할 수 있었지만, 개발자로서 왜 이런 문제가 발생했고 또 리플리케이션이 정확히 뭔지 짚고 넘어가야 할것 같아서 내용을 정리해보기로 했다. 리플리케이션 (Replication) 개인적으로 재미있게 본 영화 [블레이드 러너 2049] 를 보면 미래의 인류가 인간의 노동력을 대체하기 위해 만들어진 복제인간, 리플리칸트(Replicant)가 등장한다. 리플리칸트는 비서, 경찰, 군인 등의 특수한 목적을 달성하고자 인간(Master)의 명령에 따르는 복제.. 2021. 10. 21.