%3C/text%3E%3C/svg%3E">
💻
💻 IT·개발

블룸 필터 크기·오탐률 계산기

입력하면 바로 계산됩니다.

입력값

블룸 필터 계산기 쉽게 이해하기 — 개념과 원리

블룸 필터는 어떤 항목을 본 적이 있는지 묻는 질문에 '확실히 없음' 또는 '아마 있음'으로 답하는 작은 비트 배열입니다. 거짓 음성은 절대 없지만 거짓 양성은 생길 수 있습니다. 이 계산기는 예상 항목 수와 허용할 거짓 양성률을 넣으면 필요한 비트 수, 메모리, 최적 해시 함수 개수, 항목당 비트 수를 알려 줍니다.

블룸 필터가 항목을 저장하고 확인하는 방법항목마다 해시 함수 7개가 비트 7개를 켭니다. 백만 개를 1%로 담으려면 9,585,059비트, 약 1.14 MiB가 필요합니다.항목 하나가 비트 k = 7개를 켭니다010010010001001001000100해시 함수 7개비트 배열 m7비트 모두 1→ 아마 있음하나라도 0→ 확실히 없음항목 1,000,000개, 오탐률 1%m = −n ln p ÷ (ln 2)² = 9,585,059 bits≈ 1.14 MiB · 항목당 9.59비트 · k = 7
7비트가 모두 켜져 있으면 “아마 있음”, 하나라도 0이면 “확실히 없음”입니다.

계산 방법

n은 예상 항목 수, p는 목표 거짓 양성률을 소수로 나타낸 값(1% = 0.01)입니다.

원리

항목을 넣을 때 해시 함수 k개가 고른 비트 k개를 1로 만듭니다. 조회할 때 같은 k개 비트 중 하나라도 0이면 넣은 적이 없는 항목입니다. 항목 n개를 넣은 뒤 특정 비트가 여전히 0일 확률은 약 e^(−kn/m)이므로 거짓 양성률은 p ≈ (1 − e^(−kn/m))ᵏ입니다. 이 값은 비트의 절반쯤이 1일 때 가장 작아지며, 그 조건이 k = (m/n) ln 2입니다. 이를 대입하면 p = (1/2)ᵏ와 위의 크기 공식이 나옵니다. 항목 자체의 크기와 상관없이, 거짓 양성률을 10분의 1로 줄일 때마다 항목당 약 4.8비트가 더 필요합니다.

예제 풀이

  1. 입력값: n = 1,000,000개, p = 1% = 0.01입니다.
  2. m = −1,000,000 × ln 0.01 ÷ (ln 2)² = 1,000,000 × 4.6052 ÷ 0.48045 ≈ 9,585,058.4이므로 올려서 9,585,059비트입니다.
  3. 메모리: 9,585,059 ÷ 8 ÷ 1,048,576 ≈ 1.142628074 MiB입니다.
  4. k = 9.585059 × 0.6931 ≈ 6.64이므로 반올림해 7개입니다.
  5. 항목당 비트는 9.585059입니다.
예상 항목 수 n 값에 따른 필요한 비트 수 m 변화예상 항목 수 n 값에 따른 필요한 비트 수 m 변화05e+061e+071.5e+072e+07250,000500,000750,0001e+061.25e+061.5e+062e+06예제 값: 9,585,059예상 항목 수 n
다른 값은 그대로 두고 “예상 항목 수 n”만 바꿔 계산기를 다시 돌린 결과입니다. 금색 점이 예제 값이며, 위에 값을 입력하면 내 값으로 다시 그려집니다.
예상 항목 수 n필요한 비트 수 m
250,0002,396,265
500,0004,792,530
750,0007,188,794
1e+069,585,059
1.25e+0611,981,323
1.5e+0614,377,588
2e+0619,170,117

결과 해석

항목당 약 9.6비트면 1%, 14.4비트면 0.1%, 19.2비트면 0.01%의 거짓 양성률을 얻습니다. 계획보다 많은 항목을 넣으면 거짓 양성률이 빠르게 오르므로 최대 항목 수 기준으로 잡아야 합니다. 데이터베이스나 저장 엔진은 확실히 없는 키에 대해 디스크 읽기를 건너뛰는 데 블룸 필터를 쓰며, 1%라면 없는 키 100번 조회에 쓸데없는 읽기가 약 한 번 생긴다는 뜻입니다.

흔한 실수

주의: 이 공식은 서로 독립인 균일 해시 함수와 계획한 항목 수를 가정합니다. 필터를 넘치게 채우거나 상관된 해시를 쓰면 실제 거짓 양성률이 표시값보다 높아집니다.

자주 묻는 질문

항목 크기가 메모리에 영향을 주나요?

아닙니다. 항목당 비트 수만 중요하므로 긴 URL이든 짧은 ID든 필터 크기는 같습니다.

해시 함수 개수를 왜 정수로 반올림하나요?

해시 함수를 소수 개만큼 쓸 수 없고, 최적값 근처에서는 오차율이 거의 변하지 않기 때문입니다.

없는 항목을 있다고 할 수도 있나요?

네, 그것이 거짓 양성입니다. 넣은 항목을 없다고 하는 일은 없습니다.

출처: B. H. Bloom, "Space/time trade-offs in hash coding with allowable errors", Communications of the ACM 13(7), 1970 · A. Broder, M. Mitzenmacher, "Network applications of Bloom filters: a survey", Internet Mathematics 1(4), 2004

2026년 11월 8일 확인. 표준 공식과 RFC/IEEE 정의를 사용해 브라우저 안에서만 계산합니다. 입력한 내용은 어디에도 전송되지 않습니다.

💻 IT·개발 계산기 전체 →🏠 홍라이프 계산기 홈 →