Bloom Filter가 뭔데?

HKHHKH
3 min read

블룸 필터(Bloom Filter)

서버 메모리에 대용량 데이터를 올려야하는 작업이 있었다

단순하게 Map 형태로 올릴까 생각하다가 크기가 너무 커질까봐 걱정이 들기 시작

하지만 O(1)의 속도를 보장하는 Key-Value 형태의 자료구조를 포기할 수는 없었다

그러다가 검색해보니 동일한 O(k)를 보장하면서 공간을 더 적게 사용하는 Bloom Filter을 알게되었다

무엇인지 한번 알아보자


1. 블룸 필터란? 🌸

블룸 필터(Bloom Filter)는 1970년 Burton Howard Bloom이 제안한 확률적 자료 구조이다

이 구조는 주어진 원소가 집합에 속하는지 여부를 검사하는 데 사용된다

블룸 필터의 주요 특징은 매우 적은 메모리를 사용하면서도 빠른 검색 속도 O(k)을 제공한다는 점이다


2. 특징 🏃‍♂️

블룸 필터의 주요 특징은 다음과 같다:

  • 공간 효율성: 매우 적은 메모리로 대규모 데이터셋을 표현할 수 있다.

  • 빠른 검색 속도: O(k) 시간 복잡도로 검색이 가능하다. (k는 해시 함수의 개수)

  • 확률적 결과: 거짓 양성(false positive)이 발생할 수 있지만, 거짓 음성(false negative)은 절대 발생하지 않는다.

  • 원소 삭제 불가: 기본적인 블룸 필터에서는 원소를 삭제할 수 없다.


3. 내부 작동 방식 🔧

블룸 필터의 작동 방식은 다음과 같다:

  1. 초기화: m 비트 길이의 비트 배열을 모두 0으로 초기화한다.

  2. 원소 추가:

    • 추가할 원소에 k개의 서로 다른 해시 함수를 적용한다.

    • 각 해시 함수의 결과값에 해당하는 비트 배열의 위치를 1로 설정한다.

  3. 원소 검색:

    • 검색할 원소에 동일한 k개의 해시 함수를 적용한다.

    • 모든 해시 함수의 결과값에 해당하는 비트가 1이면 원소가 '아마도' 존재한다고 판단한다.

    • 하나라도 0이 있다면 원소가 '확실히' 존재하지 않는다고 판단한다.


4. 쓰임새 📊

블룸 필터는 생가보다 다양한 분야에서 활용된다:

  • 데이터베이스 시스템: 디스크 접근 전 빠른 존재 여부 확인

  • 네트워크 응용: 캐시 최적화, 패킷 라우팅, ip 주소 확인

  • 웹 크롤러: 이미 방문한 URL 필터링, 구글 크롬에서도 사이트 검사에 사용한다

  • 스펠링 체커: 사전에 없는 단어 빠르게 확인

  • 암호학: 비밀번호 크래킹 방지, 비트코인도 내부적으로 블룸 필터를 사용한다


5. 단점 👎

물론 장점만 있는 자료구조는 아니다

  • 거짓 양성 (False-positive): 블룸 필터가 확률형 자료구조라고 불리는 가장 큰 이유. 실제로는 집합에 없는 원소를 있다고 잘못 판단할 수 있다. 하지만 없는 원소를 없다고(False-negative) 판단하지는 않는다.

  • 원소 삭제 불가: 기본 구조에서는 원소를 제거할 수 없다. (Counting Bloom Filter 등의 변형으로 해결 가능)

  • 원소 목록 불가: 블룸 필터는 집합에 어떤 원소들이 있는지 나열할 수 없다.

  • 최적 파라미터 설정: 효율적인 사용을 위해 적절한 비트 배열 크기와 해시 함수 개수를 선택해야 한다.

기존 Map 형태와 비교했을때는 분명히 trade-off들이 존재한다

각 자료구조의 장담점을 분명히 인지하고 상황에 알맞게 선택해서 사용하는것이 좋아보인다


6. 결론 🧨

블룸 필터는 그 단순함에도 불구하고 매우 강력하고 유용한 자료 구조이다. 특히 대규모 데이터를 다루는 현대의 컴퓨팅 환경에서 메모리 사용량과 검색 속도의 trade-off를 효과적으로 조절할 수 있는 도구로 각광받고 있다.

False-positive의 가능성이라는 단점이 있지만, 많은 응용 분야에서 이는 큰 문제가 되지 않는다. 오히려 공간 효율성과 빠른 검색 속도로 인한 퍼포먼스 향상이라는 장점이 더 중요하게 여겨진다.

블룸 필터의 이해와 적절한 활용은 효율적인 시스템 설계에 큰 도움이 될 것이다. 향후 빅데이터, 분산 시스템, 네트워크 보안 등 다양한 분야에서 블룸 필터의 활용이 더욱 증가할 것으로 예상된다.

0
Subscribe to my newsletter

Read articles from HKH directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

HKH
HKH