데이터베이스 회사인 Redis가 왜 '데이터베이스리스(DBless)' 아키텍처를 이야기하는지 궁금하실 수 있습니다. 그리고 대체 그것이 무엇일까요? 당연한 의문입니다. 세부적인 내용으로 들어가기 전에, 이 완전히 새로운 아키텍처의 배경에 있는 새로운 사고방식부터 살펴보겠습니다.
그러기 위해 잠시 우회하여 제1원칙(First Principles) 사고에 대해 이야기해 보겠습니다. 제1원칙 사고는 단순히 전통과 관습을 따르는 것이 아니라, 스스로 생각하고 모든 것을 의심하고 질문하도록 만드는 사고방식입니다.
제1원칙의 핵심은 다음과 같습니다. 중력의 법칙 같은 자연 법칙이 아닌 한, 모든 시스템과 개념은 인간이 만든 것이므로 비효율이 존재할 수 있습니다. 게다가 시간이 흐르거나 기술 혁신이 일어나면서 해당 개념이 이미 낡아 있을 수도 있습니다. 따라서 우리는 기존의 시스템과 개념을 정기적으로 질문하고, 더 나은 무언가를 만들 수 있는지 끊임없이 검토해야 합니다.
비효율을 찾아내려면 체계적이고 과학적인 접근이 필요합니다. 문제를 더 작은 조각들로 분해해 근본적인 진실에 도달한 다음, 시간의 흐름이나 새로운 기술의 등장으로 어떤 조각이 낡게 되었는지 확인하는 것입니다. 만약 그렇다면, 더 새롭고 더 나은 시스템을 만들 기회가 생긴 것입니다.
근본적으로 사람들이 인식하든 아니든, 사회·기술·경제 분야의 대부분의 변화는 제1원칙으로 사고하고 전통에 도전한 사람들 덕분에 일어났습니다.

위 영상에서 일론 머스크는 배터리의 원자재 가격을 직접 분석해 배터리 비용을 700달러에서 70달러로 줄인 과정을 설명합니다.
제1원칙 사고를 더 쉽게 설명할 수 있는 또 다른 예로, 내연기관 자동차와 전기차를 들어보겠습니다.
내연기관 자동차 vs 전기차
우리 모두 전기 배터리로 자동차를 움직일 수 있다는 것을 알고 있습니다.
하지만 내연기관 자동차에는 배터리가 있음에도, 그 배터리는 차를 움직이는 데 사용되지 않습니다. 엔진 시동, 에어컨, 오디오, 조명, 센서, 도어록 등을 작동시키는 데 쓰일 뿐입니다. 실제로 차를 구동하는 것은 내연기관(ICE)입니다.
그런데 놀랍게도 내연기관 자동차는 매우 비효율적입니다. 생성되는 동력 중 실제 바퀴까지 전달되는 것은 겨우 16~25%에 불과합니다. 반면 전기차는 약 90%의 동력을 바퀴에 전달합니다! 여기에 환경 보호, 유지보수 비용 절감 등의 장점까지 더해집니다.
제1원칙 관점에서 보면, 오늘날에도 대부분의 자동차가 내연기관 방식으로 만들어지고 있지만, 근본적인 진실은 이들이 비효율적인 시스템을 사용한다는 것입니다.
전기차는 바로 이 비효율을 제거해 새로운 유형의 자동차를 만든 사례입니다. 복잡하고 비효율적인 엔진을 과감히 걷어내고, 대형 배터리와 모터로 바퀴를 직접 회전시키는 방식으로 말입니다.

이처럼 제1원칙 사고는 비효율을 식별하고 더 새롭고 나은 시스템을 만드는 길로 이어집니다.
그렇다면 지금 새로운 자동차 회사를 시작한다면, 내연기관차를 만들겠습니까, 아니면 전기차를 만들겠습니까?
이제 관점을 전환해 데이터베이스 세계로 넘어가, 동일한 제1원칙 사고를 적용할 수 있는지 살펴보겠습니다.
기존 아키텍처 vs DBless 아키텍처
먼저 기존의 전통적인 아키텍처를 살펴보겠습니다.

전통적인 아키텍처에서는 기본 데이터베이스(Postgres, MongoDB 등)와 보조 데이터베이스 또는 캐시(Redis나 Memcached 등)를 함께 사용합니다. 기본 DB는 모든 데이터를 저장하고 CRUD 연산을 지원하며, 캐싱 DB는 캐싱, 세션 저장소, 요청 속도 제한, IP 화이트리스트, Pub/Sub, 큐잉 등 다양한 용도로 활용됩니다.
곰곰이 생각해 보면, 캐시 히트가 발생했을 때에도 우리는 보조 DB를 CRUD 연산의 일부에 사용하고 있습니다. 그럼에도 불구하고 여전히 이를 기본 데이터베이스로 완전히 활용하지는 않고 있습니다.
내연기관 자동차의 문제점이 떠오르지 않으십니까? 내연기관차가 배터리를 탑재하면서도 정작 차를 움직이는 데는 사용하지 않듯이, 전통적인 아키텍처 역시 Redis를 '메인 DB를 제외한' 거의 모든 용도로 사용하고 있습니다.
유사성이 보이시나요?
만약 제1원칙 사고를 적용해 전기차가 했던 것처럼 해낸다면 어떻게 될까요? 전기차가 엔진을 제거했듯이, 느리고 비효율적인 기본 데이터베이스를 과감히 없애고 캐시 DB를 메인 데이터베이스로 사용하면 어떨까요?
이제 데이터베이스리스(DBless) 아키텍처를 소개합니다.
데이터베이스리스(DBless) 아키텍처란?
이 아키텍처에서는 기본 DB를 제거하기 때문에 'DBless'라는 이름이 붙었습니다. 대신 기존의 보조/캐시 DB가 새로운 기본 데이터베이스 역할을 맡습니다.
Redis나 유사한 캐싱 데이터베이스를 기본 데이터베이스로 사용하고, Postgres, MySQL, MongoDB 같은 기존 DB를 완전히 제거했다고 상상해 보세요.

중요 참고 사항: 이것은 어디까지나 아키텍처에 대한 논의입니다. DBless 아키텍처는 Redis나 Redis Enterprise에만 국한된 독점 아키텍처가 아니며, Redis와 유사한 어떤 시스템과도 함께 작동할 수 있습니다. 또한 Redis는 오픈소스(OSS) 프로젝트이므로 직접 구축하거나 다른 Redis 호스팅 클라우드 제공업체를 통해 활용할 수 있습니다.
실제로 이 아키텍처를 사용하는 곳이 있을까?
네, 분명히 있습니다. 수천 명의 고객과 함께 일하면서 확인할 수 있었는데, Redis가 여전히 주로 보조 데이터베이스로 사용되고 있지만, 지난 몇 년간 이 새로운 DBless 아키텍처가 등장하기 시작했습니다. Redis 자체가 더욱 풍부한 기능과 강력한 성능을 갖추게 되고, 성공 사례가 늘어나면서 추진력을 얻고 있습니다. Request Metrics처럼 우리의 고객이 아닌 기업조차 이 아키텍처 위에 스타트업 전체를 구축해 놀라운 성공을 거두고 있습니다.

이제 이것이 현실이라는 것을 알았으니, 무엇이 이를 가능하게 하는지 살펴보겠습니다.
기술적으로 기존 기본 DB와 비교하면 어떨까?
Redis Enterprise를 예로 들어 전통적인 기본 DB들과 비교해 보겠습니다.

결론부터 말하면, 성능이 매우 뛰어나며 실제로 일부 전통적인 기본 DB보다 더 나은 경우도 있습니다.
다시 강조하지만, Redis OSS나 다른 Redis 경쟁 제품을 사용해서도 이 아키텍처를 적용할 수 있습니다. 유사한 비교표를 직접 만들어 얼마나 잘 작동하는지 확인해 보시기 바랍니다.
정말 Redis로 가능할까? 캐시 전용이 아니었나?
맞는 말씀입니다. Redis는 약 10년 전 캐시 스토어로 시작했으며, 지금도 그 용도로는 훌륭합니다.
그러나 Redis와 Redis Enterprise는 지난 몇 년간 크게 발전했습니다. 전통적인 DB의 사실상 모든 기능을 통합했고, 코어 Redis와 함께 기본적으로 실행되는 모듈 생태계를 갖추었습니다.
예를 들어 RedisJSON(시장 선두 제품보다 10배 빠름)을 사용하면 실시간 문서형 데이터베이스를 구현할 수 있고, RediSearch 모듈(4배~100배 빠름)을 활용하면 Elasticsearch나 Algolia와 같은 실시간 전문(full-text) 검색을 구현할 수 있습니다.
그리고 이러한 모듈은 Redis OSS의 일부로 사용할 수 있으며, 직접 호스팅하는 것도 가능합니다.
이것이 정말 미래일까?
우리는 이 아키텍처가 전기차가 미래인 것과 같은 의미에서 확실히 미래라고 굳게 믿습니다. 전기차가 전체 자동차의 1% 미만임에도 불구하고 미래인 것처럼 말입니다. 이는 기술의 자연스러운 진화라고 생각합니다. 많은 고객의 성공을 목격한 만큼, 이를 알게 되는 사람이 많아질수록 더 많은 사람이 시도하고 채택할 것이라 믿습니다.
이름의 의미는?
'DBless'라는 이름은 기본 DB를 제거하기 때문에 붙여졌으며, 'stateless', 'serverless', 'NoSQL', 'No Software'와 같은 계열의 재미있고 독특한 이름입니다.
어떻게 시작할 수 있을까?
수십만 명의 Redis 사용자 중 하나라면 운이 좋습니다. 오늘 바로 빠른 개념 증명(PoC)을 진행할 수 있습니다! 우리는 새로운 것을 추가하라고 요청하는 것이 아니라, 비효율적인 것을 제거하자고 제안하는 것입니다.
방법은 다음과 같습니다.
새로운 시스템이나 새로운 기능을 개발 중이라면 간단합니다. 바로 이 아키텍처를 사용하기 시작하거나, 최소한 개념 증명(PoC)을 진행해 본인에게 맞는지 확인해 보세요.
이미 기본 DB를 사용하고 있다면, 많은 고객들이 하듯이 하이브리드 방식을 활용하세요. 기존 아키텍처를 계속 유지하면서, 이미 Redis에 크게 의존하고 있는 부분이나 최신 기능 영역 등 제품의 일부를 새로운 아키텍처로 마이그레이션하는 것입니다. 그리고 천천히지만 확실하게 모든 기능을 완전히 전환할 때까지 마이그레이션을 진행합니다.
요약: 제1원칙 사고가 되어라
우리는 여러분에게 제1원칙 사고가 되기를 요청합니다. 어떤 것이 전통적으로 사용되어 왔다 해도, 그것이 완벽하다는 의미이며 맹목적으로 따라야 한다는 뜻은 아닙니다. 기존의 사고방식에 질문하고, 비판적으로 검토하고, 대안을 시도해 보시기 바랍니다. 그렇게 할 때, 여러분 자신과 다른 사람들에게 유용한 무언가를 발명하게 될지도 모릅니다.
DBless 아키텍처는 전통적인 사고방식에 대한 대안을 제공합니다. 작동할지 말지 고민만 하지 말고, 개념 증명(PoC)을 시도해 보세요. 어쩌면 여러분을 놀라게 할지도 모릅니다!
참고 자료
- 일론 머스크의 제1원칙(First Principles)