AI VIDEO BRIEFING
블룸 필터 원리 – 비트 배열과 여러 해시로 만드는 확률적 집합 자료구조
블룸 필터가 비트 배열과 여러 개의 해시 함수만으로 "확실히 없음"은 항상 참, "아마 있음"은 오답 가능이라는 한쪽으로만 틀리는 답을 어떻게 만드는지 정리했다.

핵심 메시지
쉽게 이해하기
블룸 필터의 답은 두 가지뿐이다. "아마 있음"은 때때로 거짓말일 수 있지만, "확실히 없음"은 언제나 진실이다. 이 비대칭이 블룸 필터의 핵심 성격이다.
구조 자체는 단순하다. 모두 0인 비트의 한 줄에서 시작해, 키를 삽입할 때 그 키를 해시해 나온 위치의 비트를 1로 켠다. 그런데 서로 다른 두 키가 같은 위치로 해시될 수 있어(예: apple과 cherry가 같은 자리로), 해시가 하나뿐이면 충돌이 너무 많아진다.
그래서 하나가 아니라 K개의 해시를 쓴다. 각 키는 K가지 방식으로 해시되어 그만큼의 비트를 1로 켜고, 일부는 이미 켜진 비트와 겹쳐도 상관없다. 이렇게 비트 배열 자체가 필터가 되고, 원래 키들은 버려도 된다.
어떤 키가 들어 있는지 확인하려면 같은 K개의 해시로 그 비트들을 본다. 하나라도 0이면 그 키는 삽입된 적이 없다는 증거이므로 "확실히 없음"이다. 반대로 모든 비트가 1이면, 그 1들이 다른 키들 때문에 켜졌을 수도 있으므로 "아마 있음"일 뿐이다. 넣은 적 없는 키가 우연히 다른 키들이 켠 비트에 모두 걸리면 필터가 거짓 양성을 낸다.
거짓 양성 확률은 대략 (1 − e^(−kn/m))^k 로 근사되며, 여기서 n은 삽입한 원소 수, m은 비트 수, k는 해시 개수다. 오류는 k가 (m/n)·ln2 일 때 최소가 되는데, 예컨대 원소당 10비트에 해시 7개면 1% 미만으로 틀린다.
주요 인사이트
- 한쪽으로만 틀린다는 점이 핵심이다. 0 비트는 거짓말을 못 하므로 "없음"은 확실하고, 1 비트는 어디서 왔는지 알 수 없어 "있음"은 확률적이다.
- 키 자체를 저장하지 않고 비트만 유지하므로 메모리를 크게 아낀다. 정확성을 비트 수와 맞바꾸는 셈이다.
- 해시 개수 k는 많을수록 좋은 게 아니라 최적값이 존재한다. m/n에 ln2를 곱한 값 부근에서 거짓 양성이 최소화된다.
- "여기 있을지도 모른다"는 빠른 확인이 값비싼 실제 조회를 줄여주기 때문에 데이터베이스·캐시·라우터·블록체인 곳곳에 조용히 들어가 있다.
자주 묻는 질문
블룸 필터의 답이 왜 한쪽으로만 틀리는가?
검사한 비트 중 하나라도 0이면 그 키는 삽입 시 반드시 켜졌어야 할 비트가 꺼져 있는 것이므로 "확실히 없음"이 보장된다. 반대로 모든 비트가 1이어도 그것이 다른 키들 때문일 수 있어 "있음"은 확실하지 않다.
왜 해시 함수를 여러 개 쓰는가?
해시가 하나뿐이면 서로 다른 키가 같은 비트로 충돌하는 경우가 너무 많아진다. K개의 해시로 각 키가 여러 비트를 켜게 하면 충돌의 영향을 줄여 거짓 양성 확률을 낮출 수 있다.
거짓 양성 확률은 어떻게 줄이나?
삽입 개수 n, 비트 수 m, 해시 개수 k로 확률이 결정되며, k가 (m/n)·ln2 부근일 때 최소가 된다. 예로 원소당 10비트에 해시 7개면 오답률이 1% 미만이 된다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗