욕설 자동 필터링 사이트, 매칭 원리 총정리

게시판이나 댓글에 올릴 글에서 비속어를 자동으로 가려주는 무료 도구를 찾는다면, 원리를 알아야 왜 어떤 단어는 걸리고 비슷한 단어는 그대로 남는지 이해할 수 있습니다.

이 도구는 텍스트를 서버로 보내지 않고 브라우저 안에서 정규식으로 단어를 찾아 대체 기호로 바꾸는 방식으로 동작합니다. 매칭 기준을 부분 일치로 두느냐 완전 일치로 두느냐에 따라 같은 문장도 결과가 달라집니다.

요약 ① 기본 한국어 10개·영어 10개 금지어와 사용자가 추가한 커스텀 금지어를 합쳐, 글자 수가 긴 단어부터 먼저 매칭합니다. ② '부분 일치'는 단어 중간에 있어도 걸리고, '완전 일치'는 앞뒤가 공백·구두점으로 끊긴 독립 단어일 때만 걸립니다. ③ 띄어쓰기나 특수문자를 끼워 넣어 등록된 문자열과 달라지면 두 방식 모두 해당 단어를 찾아내지 못합니다.

댓글이나 게시글에 비속어가 섞여 있을 때 흔히 겪는 상황

온라인 커뮤니티나 카페 게시판을 운영하다 보면 사용자가 남긴 댓글이나 후기를 텍스트로 정리해 공지글이나 요약글에 그대로 옮겨 담아야 할 때가 있습니다. 캡처 이미지 대신 텍스트로 인용하는 경우가 그렇습니다.

이때 욕설이 섞인 문장을 그대로 올리기는 부담스럽고, 글자 하나하나를 손으로 별표로 바꾸는 건 문장이 길어질수록 빠뜨리기 쉽습니다.

자동으로 가려주는 도구를 쓰더라도 왜 특정 단어는 걸리고 비슷해 보이는 단어는 그대로 남는지 이해하지 못하면 결과를 그대로 믿기 어렵습니다.

특히 부분 일치와 완전 일치라는 두 매칭 기준이 헷갈리는 지점입니다. 어떤 옵션을 켜느냐에 따라 같은 문장의 검열 결과가 달라지기 때문입니다.

도구 없이 직접 확인하는 방법 — 찾기·바꾸기의 '단어 단위' 옵션

MS워드, 한글, 구글독스, 코드 편집기(VS Code 등)의 찾기·바꾸기 기능에는 대부분 "단어 단위로 찾기"(Whole word)라는 체크박스가 있습니다. 이 옵션이 이 도구의 '완전 일치'와 같은 개념입니다.

체크박스를 끄면 입력한 문자열이 다른 단어 중간에 있어도 찾아냅니다. 예를 들어 '개'를 찾으면 '무지개', '개나리' 안의 '개'까지 모두 걸립니다. 이게 '부분 일치'입니다.

체크박스를 켜면 앞뒤가 공백이나 구두점으로 끊긴 독립된 단어일 때만 찾아냅니다. '무지개'는 걸리지 않고, 문장 속에 혼자 떨어져 있는 '개'만 걸립니다. 정규식으로 표현하면 단어 경계(\b)를 앞뒤에 붙이는 것과 같습니다.

도구 없이 직접 검열하려면 이런 순서로 하면 됩니다.

  1. 가리고 싶은 단어 목록을 만듭니다. 이때 '개새끼'처럼 긴 표현과 '개'처럼 짧은 표현이 함께 있다면 긴 것부터 먼저 처리해야 합니다. 짧은 단어를 먼저 바꾸면 긴 표현 안의 글자가 미리 없어져 버려, 정작 긴 표현 자체는 찾지 못하게 됩니다.
  2. 각 단어에 대해 찾기·바꾸기를 실행하되, 문맥에 맞게 '단어 단위' 옵션을 켤지 끌지 정합니다.
  3. 찾은 부분을 원하는 대체 문자(*, [CENSORED] 등)로 바꿉니다.

문장 몇 개 정도라면 이 과정을 손으로 반복해도 되지만, 단어 수가 많거나 매번 반복해야 하는 상황이라면 같은 규칙을 자동으로 적용하는 도구가 더 빠릅니다.

저희 도구로 확인하기.

비속어 및 욕설 필터링 (검열기)

입력한 텍스트는 서버로 전송되지 않고 브라우저 안에서만 즉시 처리됩니다.

결과를 읽을 때 흔히 헷갈리는 지점

'부분 일치'가 더 엄격하다고 착각하는 경우

많은 사용자가 부분 일치를 더 엄격한 옵션이라고 생각합니다. 실제로는 반대입니다. 부분 일치는 단어 중간에 있어도 걸리므로 더 많은 표현을 잡아내고, 완전 일치는 독립된 단어일 때만 걸리므로 더 적게 잡아냅니다.

매칭 기준판정 방식'무지개' 문장 속 '개'
부분 일치문자열 어디에 있든 매칭걸림
완전 일치앞뒤가 공백·구두점인 독립 단어만 매칭안 걸림

긴 단어와 짧은 단어가 겹칠 때

도구는 단어 목록을 글자 수 내림차순으로 정렬한 뒤 매칭을 시작합니다. '개새끼'와 '개'가 동시에 목록에 있다면 '개새끼'를 먼저 찾아 통째로 대체합니다. 이 순서가 없으면 '개'가 먼저 걸려 나머지 글자만 어색하게 남는 결과가 나올 수 있습니다.

띄어쓰기나 특수문자를 끼워 넣으면 왜 안 걸릴까

정규식은 등록된 단어와 정확히 일치하는 연속된 문자열을 찾습니다. 원래 단어 사이에 공백이나 특수문자가 끼어들면 등록된 문자열과 더 이상 같지 않으므로, 부분 일치·완전 일치 어느 쪽으로도 걸리지 않습니다.

자음만 따로 떼어 쓰거나 문자를 바꿔 쓰는 경우도 마찬가지로 원래 문자열과 달라지므로 매칭에서 벗어납니다.

체크박스를 꺼둔 사전 항목

기본 제공되는 한국어 10개·영어 10개 단어는 각각 체크박스로 켜고 끌 수 있습니다. 특정 단어가 안 걸린다면 오탐이 아니라 그 항목의 체크박스가 꺼져 있는 경우일 수 있으니 먼저 목록을 확인하는 게 순서입니다.

정리

  • 이 도구는 기본 한국어·영어 금지어와 사용자가 추가한 커스텀 금지어를 합쳐, 글자 수가 긴 단어부터 매칭합니다.
  • '부분 일치'는 단어 중간에 있어도 걸리고, '완전 일치'는 앞뒤가 끊긴 독립 단어일 때만 걸립니다. 부분 일치가 더 넓게 잡아냅니다.
  • 띄어쓰기나 특수문자를 끼워 등록된 문자열과 달라지면 어느 매칭 기준으로도 걸리지 않습니다.
  • 입력한 텍스트는 서버로 전송되거나 저장되지 않고, 타이핑할 때마다 브라우저 안에서만 즉시 재계산됩니다.
  • 특정 단어가 안 걸린다면 체크박스가 꺼져 있거나 완전 일치 옵션 때문일 수 있으니 설정부터 확인하는 게 순서입니다.
비속어 및 욕설 필터링 (검열기)

입력한 텍스트는 서버로 전송되지 않고 브라우저 안에서만 즉시 처리됩니다.

자주 묻는 질문

기본 내장된 사전에는 어떤 단어들이 있나요?

한국어와 영어에서 자주 쓰이는 대표적인 비속어·욕설이 각각 10개씩 기본으로 들어 있습니다. 각 단어는 체크박스로 개별적으로 켜고 끌 수 있어, 특정 단어만 걸러내고 싶지 않다면 꺼두면 됩니다.

완전 일치로 설정했는데도 단어 중간에서 걸립니다. 왜 그런가요?

완전 일치는 등록된 단어 앞뒤가 공백이나 구두점으로 끊긴 경우에만 매칭됩니다. 걸린 부분이 실제로는 독립된 단어(문장 맨 앞이나 마침표 바로 앞 등)라면 정상 동작입니다.

다른 글자가 바로 붙어 있는데도 걸렸다면 부분 일치 옵션이 켜져 있는 건 아닌지 다시 확인해 보는 게 순서입니다.

입력한 텍스트가 서버에 저장되나요?

아니요. 이 도구는 정규식 매칭을 브라우저 안에서만 처리하는 클라이언트 로직입니다. 타이핑할 때마다 매 렌더링마다 즉시 재계산될 뿐, 서버로 전송되거나 저장되지 않습니다.

대체 문자는 어떤 방식으로 채워지나요?

'글자 수만큼 반복' 방식은 원래 단어의 글자 수만큼 대체 문자를 반복해서 채웁니다(f**k처럼). '하나의 기호로' 방식은 단어 길이와 무관하게 기호 하나로 통째로 바꿉니다. 대체 문자는 *, 🤬, [CENSORED], ♥, #, x 중에서 고를 수 있습니다.

가격 보기카톡 무료 상담