더북(TheBook)

블룸 필터를 사용하기에 적합한 실제 상황을 꽤 많이 찾을 수 있습니다. 즉, 데이터양이 너무 많아서 해시 테이블조차도 사용하기가 버겁고, 거짓-양성이 있어도 괜찮은 경우가 있습니다. 예를 들어 Gmail이나 Outlook 같은 이메일 서비스 사이트에서 새로운 이메일 주소를 만들려고 할 때, 사용자가 입력한 이메일을 이미 다른 사람이 사용하고 있는지를 검사해야 합니다. 데이터베이스에 수십억 개의 이메일이 있을 경우, 이러한 기본적인 검사도 매우 빈번하게 수행해야 하기 때문에 성능에 영향을 줄 수 있습니다. 다행히 사용하고 있지 않은 이메일 주소를 사용 중이라고 판단한다고 해도 큰 문제는 없습니다. 사용자는 다른 이메일 주소를 새로 입력할 테니까요. 이러한 경우에 블룸 필터를 사용하는 것이 좋은 선택일 수 있습니다. 이에 대한 좀 더 자세한 내용은 ‘실습 문제 7: 이메일 주소 중복 검사’에서 살펴보겠습니다.

페이스북 광고와 같은 새로운 추천 광고 선택 알고리즘도 블룸 필터를 사용하기에 적합한 예입니다. 페이스북은 사용자가 매번 접속할 때마다 새로운 광고를 보여줍니다. 이 경우 사용자가 이미 보았던 모든 광고의 ID를 블룸 필터에 저장합니다. 그리고 사용자가 다음 번 접속했을 때 특정 광고의 ID를 블룸 필터에서 검색합니다. 만약 사용자가 보지 않았던 광고를 블룸 필터가 이미 보았다고 (거짓-긍정) 판단하더라도 단순히 해당 광고를 보여주지 않으면 그만입니다. 사용자는 자신이 어떤 광고를 보지 못했는지를 알 수가 없기 때문에 큰 문제가 되지 않습니다. 이러한 방식으로 매번 아주 빠르게 새로운 광고를 선택하여 보여줄 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.