대규모 사용자 기반을 가진 서비스에서 사용자들에게 개인화된 정보를 제공하는 경우, 개인화된 정보를 효율적으로 저장하고 이를 빠르게 처리해야하는 것이 중요합니다. 하지만 DB만을 저장소로 사용하다보면 데이터가 쌓일수록 저장공간도 많이 사용해야하고, 트래픽이 많아질 수록 성능 저하가 생길 수 있습니다.
이러한 문제를 해결하기 위해 메모리를 효율적으로 사용하면서도 빠른 필터링이 가능한 BloomFilter라는 자료구조를 도입해보았고, 도입하는 과정에서 BloomFilter에 대해 알아본 내용들을 정리해보려합니다.
이번 글에서는 다음과 같은 내용을 다룹니다.
BloomFilter는 어떤 요소가 집합에 속하는지를 빠르고 효율적으로 확인할 수 있게 도와주는 자료구조입니다. 1970년에 Burton Howard Bloom이 처음 제안한 자료구조이며 메모리를 적게 사용하면서도 빠르게 동작한다는 특징이 있습니다.