'스팸 프로그래밍'에 해당되는 글 1건

  1. 2009.01.09 개요

우리나라의 온라인 시스템에서 스팸 처리를 하는 방식은 아주 원시적이다 -ㅅ-
물론 티스토리 또한 예외가 아니다.

특정 단어나, 특정 아이피, 특정 아이디를 제외하는 방식이다.

1. 특정 단어를 제외하는 방식은 사실 아주 바보같은 방법이다. 예전에 여기저거 포탈등에 댓글에 '최진실'이라는 글자가 들어가면 금지어가 사용되었습니라고 댓글 등록이 안되던 시절이 있었다. (아마도 무능한 어떤 인간이 금지어로 등록하라고 지시를 내려서였겠지만 ) 시험삼아 진실이 누나라고 해보니 등록이 되었다. 단어 기반으로 막는걸 피하는건 아주 쉽다.

2, 그렇다고 관련 단어까지 모두 등록하면 되지 않을까 라고 하는것도 바보같은 생각이다. 피할 수 있는 관련단어는 금지어 등록으로 할 수 있는 것보다 훨씬 많고 사실 등록을 많이 하면 많이 할수록 프로그램으로 검사하는데 시간이 많이 소요된다. 즉 일종의 낭비가 발생한다.

3. 시스템이 빵빵하다로 우겨볼수 있지만 다른 문제가 더 있다. 관련 단어가 많이 등록 될수록 정상적인 글 쓰기 또한 방해된다는 것이다. '진실'이라는 단어는 아주 일반적인 단어이기 때문에 금칙어로 등록이 되면 글쓰기가 불편해진다.

4. 게다가 맘만 먹으면 굳이 일반적인 단어를 쓰지 않아도 된다. 진.실. 이라고 쓰면 그만이고 씨X~ 이라고만 써도 금칙어 따위는 얼마든지 피할수 있다.

5. 아이피나 아이디를 막는 방법도 마찬가지이다. 아이피를 변경하거나 새로운 아이디를 얻는 방법은 너무나 쉽다.
    스팸을 써서 얻는 이득 > 아이피를 변경하거나 새로운 아이디를 얻기 위한 수고 + 스팸글을 쓰는 수고
    이 등식이 성립하는 한 아이피나 아이디로 막는 방법은 효과가 없다.

6. 스팸이라는건 아주 지역적이다. 시스템에 따라 어떤 글이 스팸인지에 대한 판단여부가 다르다는 뜻이다. 심하게는 글에 따라 다를수도 있다. 그에 따라 시스템마다 다른 스팸처리를 만든다면 지나치게 많은 제작 비용과 관리비용이 든다.

위와 같은 단점때문에 관리자가 직접 확인후에 삭제 하는 방법이 있겠지만 이는 관리비용이 너무 많이 든다는 약점이 있다. 24시간 수만개의 댓글등을 봐야하는 관리자의 비용은 유형이지만 스팸을 막음으로써 생기는 이득은 무형이므로 관리자 시스템이 제대로 운영되지 않는다. 



이제 코드를 작성 하기 전에 생각해 봐야 할것은
"스팸이란 무엇인가"에 대한 본질적 질문이다.

개인적으로 컴퓨터 코드를 짜는 방법은 간단한다. 쪼갤수 없을때까지 쪼갠다음 공통점을 찾아서 다시 합치면 된다. -ㅅ-
이를테면 세상을 분자 단위까지 쪼갠다. 일단 쪼갠후 관.점.에 따라 공통점을 가진 분자끼리 묶어보면 세상을 코딩을 할 수 있게 된다.

갑자기 웬 헛소리냐는 말을 하기전에
스팸에 대한 판단은 종합적이다. 즉 단순히 어떤 단어나 아이피의 문제가 아니고 단어와 아이피를 포함하고 문맥과 기타 여러 제반사항등을 모두 고려 대상이 되며 이러한 두뇌는 종합적인 판단으로 이 글은 스팸이군 이라는 결정을 내린다는 뜻이다.

두번째로 각각의 개별적인 판단은 단순히 or나 and 연산이 아니며 꽤 복잡한 연산을 하게된다. 그리고 여기서 연산은 다시 지역적이며 주관적 판단이 들어가게 된다. 단순히 몇몇 단어가 들어갔다고 해서 혹은 특정 아이피에서 쓰여졌다고 해서 스팸이 아니며 그렇다고 스팸이 아니라는 것도 아니다.

사실 위의 2단계는 어느 프로그래밍이나 마찬가지이다. 종합적인 측면을 고려하기 위해 쪼개는 과정은 객관적인 측면이 강하지만 그걸 다시 합치는 측면은 주관적이다. 예컨데 모든 물질을 분자단위로 쪼개는 것은 과학이지만 그걸 합쳤을때 책상으로 인식하는 것은 철학이다.


위의 생각이 너무 추상적이라면 좀 더 실질적인 얘기를 해보면 
  A 스팸을 써서 얻는 이득 < 스팸글을 쓰는 수고 * n개   이 수식만 유지해주면 된다. 
  B 그리고 이 수식을 유지하는데 늘어나는 정상적인 글쓰기의 수고를 최소한으로 유지하여야 한다.

기존 단순 매칭 방식의 스팸 처리방식은 그 방어막을 벗어나기가 너무나 쉽기 때문에 A를 위반한다. 일단 그 방법을 인식하면 스팸을 써서 얻는 이득 > 스팸글(0에 수렴한다) 올리는 수고 * n 개(n은 무한에 수렴) 도 참일 확률이 높다.

그래서 글을 쓸때마다 특정 그림에 뜬 문자를 입력하게 만드는 방식도 있다. 글쓰기마다 글자들은 랜덤으로 나타나기 때문에 스팸글을 올리는 수고는 0에 수렴하지 않으며 따라서 일면적으로는 아주 효율적이다. 그러나 이 방법은 따른 정상적인 글쓰기의 수고도 또한 늘린다. 간단한 댓글을 달기위해 잘 보이지 않는 숫자들 여러개를 입력하는건 아주 짜중이다-ㅅ-

사실 이 방법은 그림에 보이는 글자가 여러개일 필요는 없다. 3개정도면 해도 스팸을 올리기 귀찮을 정도로 충분한 갯수이므로 7개 이상을 유지하는 멍청한 짓은 제발 좀 하지말자-ㅅ- 스팸을 막고자 하는거지 정상적인 글쓰기까지 방해하자는 것은 아니니까 말이다.


'Framework > 스팸 필터링' 카테고리의 다른 글

판단에 있어서..  (0) 2009.03.16
휴리스틱 알고리즘 + 복합 알고리즘  (0) 2009.03.12
구현  (0) 2009.01.12
판단의 기본 아이디어  (0) 2009.01.12
Posted by bleujin