Aeca가 검색 개발을 쉽게 하는 방법

Posted on September 12, 2023
Aeca가 검색 개발을 쉽게 하는 방법

들어가며

앞서 애플리케이션에 검색 기능을 넣는 것이 왜 어려운지를 살펴보았습니다.

검색 기능 개발이 어려운 이유

데이터베이스가 제공하는 검색 기능은 제한적이고, 데이터베이스에 검색 엔진을 추가하자니 많은 개발 리소스가 들기 때문이었죠. 그렇다면 이런 생각을 해볼 수 있을 겁니다. 데이터베이스와 검색 엔진을 하나로 합친다면? 모든 데이터가 하나의 시스템에서 다루어지므로 동기화 문제가 없고, 모니터링 등 DevOps 리소스가 상당히 줄어들겁니다.

하지만 데이터베이스와 검색 엔진은 근본적으로 다른 기술이고 두 시스템을 하나로 합친다는 것은 사실상 불가능한 것으로 여겨졌습니다. Elasticsearch 같은 검색 솔루션이 본격적으로 사용된 것이 2010년 초인데 10년이 지난 지금도 여전히 데이터베이스와 검색 솔루션을 따로 사용하고 있죠.

그런데 그 어렵다는 걸 Aeca가 해냈습니다. 데이터베이스에서 검색 엔진 기능을 완벽히 구현하는데 성공한 것입니다. Aeca는 CRUD를 지원하는 OLTP 데이터베이스입니다. 데이터를 빠르게 기록하는 데 최적화 되었죠. 데이터를 기록하는 것과 읽거나 검색하는 것은 상호 배타적인 프로세스 입니다. 하지만 Aeca에서는 데이터가 처리되는 즉시 실시간으로 검색하는 마법 같은 일이 가능합니다. 뿐만 아니라 Aggregation과 같은 OLAP 성격의 기능, Time to Live 등 다양한 기능을 하나의 데이터베이스로 통합하였습니다.

이제 검색엔진에서만 구현가능했던 제대로 된 Full-Text Search를 데이터베이스에서도 사용할 수 있습니다. 그 동안 대표님, 프로덕트 기획, 개발자들을 괴롭혔던 검색 개발의 고통에서 벗어나는 순간입니다. Aeca가 구체적으로 어떻게 검색 개발의 고통에서 벗어나게 도울 수 있는지 살펴볼까요?

3일 만에 가능한 검색개발

데이터베이스에 검색 엔진을 연동하는 과정이 필요 없어 개발 시간이 압도적으로 단축됩니다. 데이터베이스에 데이터가 저장되는 즉시 검색이 가능하므로 서비스 초기부터 우수한 검색 기능을 제공할 수 있는 것이죠.

동기화할 데이터 추출, 전처리, 인덱싱, 일관성 유지 등 복잡한 개발 과정이 더 이상 필요 없어지면서 최소 수개월 이상 걸리는 검색 기능 개발이 단 며칠 만에 가능합니다.

서버 비용 감소

검색 엔진에 데이터를 중복 저장할 필요 없이 모든 데이터를 하나의 데이터베이스에서 관리하므로 추가적인 데이터 저장, 운영 리소스가 필요 없습니다. 클라우드 비용이 감소하는 것이죠.

더 이상 필요 없는 추가 솔루션

검색 엔진 자체가 필요 없기 때문에 데이터베이스와의 동기화 메커니즘 구축을 위한 추가 솔루션도 당연히 필요 없습니다. Apache Kafka와 같은 Message Queue 등을 더 이상 사용하지 않아도 됩니다. 솔루션 도입 비용 감소는 물론 백엔드 단순화에 따른 운영 효율성이 급격히 개선됩니다.

크기에 제한이 없는 검색 결과

Elasticsearch와 같은 검색 엔진의 단점 중 하나는 대량의 검색 결과를 반환하지 못한다는 것입니다. 조건을 만족하는 대량의 검색 결과에서 중요한 정보를 몇 개 뽑아내야 할 때 중요한 결과를 놓치는 문제가 발생할 수 있습니다. 특히 ML과 같은 방대한 학습 데이터를 다룰 때는 방대한 데이터를 검색하여 추출해야 합니다. Aeca는 검색 결과 크기에 영향을 받지 않습니다. 검색 결과가 백만 개 이상의 검색 결과도 한 번에 반환할 수 있죠.

Full-Text Search를 넘어서

위와 같이 Aeca는 데이터베이스에서 우수한 Full-Text Search를 제공합니다. 이제 초기 기업도 우수한 검색 기능을 서비스에 넣을 수 있게 되었죠.

그런데 이게 끝이 아닙니다. 전통적인 Full-Text Search 뿐만 아니라 최근 AI 검색으로 각광 받는 벡터 검색(Vector Search), Full-Text Search와 벡터 검색의 장점을 혼합한 Hybrid 검색도 제공합니다.

Tags:

Copyright © 2024 Aeca, Inc.

Made with ☕️ and 😽 in San Francisco, CA.