블룸 필터 크기 계산기
원소 수와 목표 오탐률을 넣으면 필요한 비트 배열 크기와 해시 함수 개수를 계산합니다. 원소당 비트 수가 원소 개수와 무관하게 오탐률만으로 정해진다는 것을 표로 확인할 수 있습니다.
없는데 있다고 답할 확률입니다. 있는데 없다고 하는 일은 없습니다.
그대로 담았을 때와 비교하려는 값입니다. 0으로 두면 비교하지 않습니다.
필요한 비트 배열 크기
1.14 MB
9,585,058비트 · 해시 함수 7개
| 오탐률 | 원소당 비트 | 해시 | 이 규모의 크기 |
|---|---|---|---|
| 10% | 4.79 | 3 | 585.03 KB |
| 1% | 9.59 | 7 | 1.14 MB |
| 0.1% | 14.38 | 10 | 1.71 MB |
| 0.01% | 19.17 | 13 | 2.29 MB |
| 0.001% | 23.96 | 17 | 2.86 MB |
사용 방법
- 1담을 원소 수를 넣습니다.
- 2목표 오탐률을 고릅니다. 없는 것을 있다고 답할 확률이며, 있는 것을 없다고 하는 일은 없습니다.
- 3필요한 비트 배열 크기와 해시 함수 개수를 확인합니다.
- 4원소 하나의 크기를 넣으면 그대로 담았을 때와 몇 배 차이인지 함께 나옵니다.
자주 묻는 질문
m = −n·ln p ÷ (ln2)²입니다. n은 담을 원소 수, p는 목표 오탐률입니다. 해시 함수 개수는 k = −log₂ p로 정하며, 이 k가 오탐률을 최소로 만듭니다. 원소 100만 개를 오탐률 1%로 담으려면 약 9,585,058비트, 곧 1.14MB에 해시 7개가 필요합니다.
오탐률에 따라 정해지고 원소 개수와는 무관합니다. 10%면 4.79비트, 1%면 9.59비트, 0.1%면 14.38비트, 0.01%면 19.17비트입니다. 식 m/n = −ln p ÷ (ln2)²에 n이 아예 들어가지 않기 때문이며, 오탐률을 10분의 1로 줄일 때마다 정확히 4.79비트씩 더 듭니다.
한 방향으로만 틀립니다. 없는 것을 있다고 답할 수는 있어도(오탐), 있는 것을 없다고 하지는 않습니다. 그래서 "없다"는 답은 언제나 믿을 수 있고 "있다"는 답만 실제로 확인하면 됩니다. 캐시나 디스크 조회 앞에 두는 이유가 이것입니다.
표준 블룸 필터는 지울 수 없습니다. 비트를 0으로 되돌리면 그 비트를 함께 쓰는 다른 원소까지 지워져, 오탐이 아니라 누락이 생기기 때문입니다. 삭제가 필요하면 비트 대신 카운터를 두는 카운팅 블룸 필터를 쓰는데 메모리가 보통 네 배 듭니다.
오탐률 곡선이 최적점 근처에서 평평하기 때문입니다. 최적 k를 정수로 반올림하면 오탐률이 목표보다 1% 안쪽으로만 나빠집니다. 예를 들어 목표 1%의 최적 k는 6.64인데, 7로 올리면 실제 오탐률이 1.004%가 됩니다.
전송되지 않습니다. 모든 계산은 브라우저 안에서 이뤄지고, 입력값은 이 기기에만 남습니다.
알아두면 좋은 점
- 오탐률 식 p = (1 − e^(−kn/m))^k는 해시 함수가 서로 독립이고 비트를 고르게 흩뿌린다고 가정합니다. 실제 해시가 치우치면 오탐률이 이보다 높아집니다.
- 크기 표기는 1024진법입니다(1KB = 1,024바이트). 데이터 용량 변환기와 같은 관행입니다.
- 원소가 설계한 개수를 넘으면 오탐률이 함께 오릅니다. 예상 최대 개수로 설계하고, 넘어서면 더 큰 필터를 새로 만들어 갈아끼우는 것이 보통입니다.
- 블룸 필터는 담은 것이 무엇인지, 몇 개인지 알려 주지 않습니다. 되꺼낼 수 없다는 것이 이 자료구조가 이렇게 작은 이유입니다.
함께 보면 좋은 도구
마지막 검증: 2026년 8월 30일 · 결과는 참고용 추정치입니다.