•  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
파일:Semi_protect.svg   로그인 후 편집 가능한 문서입니다.
(~ KST )
1. 개요2. 원리3. 장점4. 단점
4.1. 악용
5. 용어 상의 비판6. 기타7. 파생 용어

1. 개요[편집]

언어별 명칭
오리 실험
duck test
위키백과, 알파위키와 같은 여러 위키위키 혹은 기타 인터넷 커뮤니티에서 다중 계정을 이용한 차단 회피 등, 악성 유저에 의한 부정적인 영향을 제어하기 위해 쓰는 검증 방법으로, 오리 검사라고도 부른다. 물론 알파위키에서는 어디까지나 검증 방법 중의 하나일 뿐, 정식 관리 규칙은 아니다.
위키백과에서 영어를 한국어로 바꾸더니 오리 실험이 나오다고 하더라

2. 원리[편집]

일단 새와 비슷하게 생긴 동물이 있다고 가정해 보자. 이 대상이 무슨 동물인지 확인을 하기 위해 다음과 같은 과정이 진행된다.
  1. 이 동물은 오리처럼 생겼다.
  2. 이 동물은 오리처럼 헤엄친다.
  3. 이 동물은 오리처럼 꽥꽥댄다.
  4. 이 동물은 오리라는 합리적 추론을 내릴 수 있다.
이와 같은 과정을 거쳐 "이 동물은 오리일 것이다."라고 판단하는 것이다. 논증 유형 중에 귀추법(abductive reasoning)에 해당하며, 주어진 관찰과 사실로부터 시작해서 가장 그럴듯한 최선의 설명을 도출하는 방법이다. 물론 이게 알고 보니 거위였거나, 오리너구리였거나, 인간이나 토끼가 오리로 변장을 한 경우 등으로 오리가 아니였을 수도 있겠지만, 일단은 대상 스스로가 자신이 오리가 아니라고 반론을 하거나 추가 검증을 필요로 하지 않는 한 오리일 것이라고 간주한다.

위키에서 어떤 이용자(A)가 반달 행위를 하다가 차단당한 뒤, 나중에 이와 유사한 행위를 하는 이용자(B)가 나타났을 때,
  1. B가 A가 반달을 했던 문서와 같거나 유사한 문서를 훼손했다.
  2. B가 A와 유사한 주장을 펼쳤다.
  3. B가 A와 유사한 토론 태도를 보였다.
  4. B가 A와 같은 프로젝트에 참여했다.
  5. B가 A와 비슷한 시기에 활동했다.
  6. B가 A와 유사한 수정 코멘트를 남겼다.
  7. A와 B는 동일인이라는 합리적 추론을 내릴 수 있다.
위와 같은 논증을 통해 A와 B가 동일인이라는 사실을 추론할 수 있다.

다만, 두 논증이 완전히 동일한 구조는 아니다. 오리의 예는 "특정한 개체가 오리라는 분류에 속한다."는 것을 입증하지만, 위키의 예는 "서로 다른 두 사용자가 동일하다."는 것을 입증하기 때문이다. 그러므로 오리의 예가 합리적이므로 위키의 예 또한 합리적이라고 해서는 안되는 것이다.

위키의 예의 합리성을 보강하기 위해서 "근접한 시각에 비슷한 행위를 하는 둘은 동일하다."라는 전제가 있다. 다만, 이 전제 역시 정확하지 못하여 A와 B가 동일인이 아닐 가능성은 엄연히 존재한다. 그래서 이와 같은 논증은 사실 강력한 제재를 가할 만한 명분으로 삼을 수가 없지만, 오리 실험 외의 다중 계정을 제어할 만한 마땅한 방법이 현실적으로 존재하지 않기 때문에 알파위키에서는 어쩔 수 없이 사용 중이다.

3. 장점[편집]

반달을 주로 하는 사용자를 비롯한 악성 유저들이 게시판이나 문서에서 악행을 벌이고 있을 때 오리 실험과 같은 검증 방법이 없다면 딱히 추가적으로 제재할 만한 뾰족한 수가 없다. IP 검사로 적발할 수 있으면 차단 회피라는걸 쉽게 알아챌 수 있지만, 그런게 아니라 우회해서 다른 IP로 돌아오면 일반적으로는 별도의 인물로 생각하고 제제를 할 수밖에 없어 결과적으로 실제로 해당 악성 사용자는 저지른 행위에 비하면 훨씬 가벼운 처벌만 받고, 혹시 또 차단되면 다시 또 다른 IP로 계속 돌아올 수 있다. 이런 허점을 이용해서 규정이나 제재를 지속적으로 피하고 다니는 악성 사용자를 종종 볼 수가 있다. 정말 악질적인 사람은 몇 번이고 차단돼도 또 와서 악행을 할 정도다. 게다가 이러한 부류를 신고하거나 제재하려는 움직임이 보이면 그 즉시 적반하장으로 위키는 누구에게나 열려 있으며 자신은 규정을 위반한 적이 없다고 뻔뻔하게 반박하기도 한다. 하지만 오리 실험은 이런 악질적인 사람들을 그나마 빨리 쫓아낼 수 있는 가장 효과적인 방법이고, 사실상 다른 방법도 없어서 치명적인 단점을 감수하고서라도 쓸 가치가 있다.

4. 단점[편집]

원리 자체가 귀추법이라 결과가 잘못되었을 가능성을 배제할 수 없다. 이 논증법은 자신의 주장에 끼워맞추기 위해서 비약할 때도 빈번히 쓰이고, 당연히 왜곡해서 쓰면 십중팔구 문제가 생기기 마련이다. 마찬가지로 이것이 합리적이고 경험에 기초한 논리라고 할지라도 악용되어 무고한 사람이 몇가지의 오해로 이와 같은 원칙의 희생자로 나타날 가능성은 늘 존재하고 있다.

사용자 정보를 대조하여 진행하는 다중 계정 검사와는 달리 오리 실험은 각 이용자의 편집 성향으로만 결과를 내릴 수 밖에 없기 때문에 여러모로 위험도가 높다. 두 새의 특징이 같다는 이유로 오리라는 결론을 내리는 논리라면, 막말로 편집 방향이 같은 두 이용자에게 이 논리를 적용시킨다면 무조건 동일인이라는 결론이 나오는, 어찌보면 굉장히 어처구니 없는 논리인 셈. 일단 오리 실험 요청이 들어왔다는 것 부터가 행동 양식이 비슷하다는 것이라, 이 상황에서 대상이 논리적으로 나는 다른 사람이라고 명백히 증명하는게 사실상 불가능하다. 설상가상으로 자신이 오리가 아니라고 아무리 주장한들 이미 오리라고 알게 된 사람들은 듣지 않기 마련이다. 따라서 그나마 현실적으로 내세울 수 있는 명백한 증거는 IP 위치 추적을 통해 오리 실험 검사 대상들의 위치가 다름을 증명하는 것처럼 물증밖에 없다. 문제는 애초에 그런 물증이 명백했으면 오리 실험까지 오지도 않았을 것이라는 점. 그리고 오리 실험의 대상이 된 이용자는 차단을 당하고 보복으로 차단 회피를 해서 문서를 훼손하기도 한다.

나무위키에서 게시판에 올라오는 오리 실험 요청 글에서는 근거와 제재 사유만 충분하다면 대다수의 사례에서 동일인이라고 판단하고 있다. 반면에, 다중계정 검사 게시판에서는 결과가 동일인으로 판단된 사례와 그렇지 않은 사례가 모두 나타나고 있다. 즉, 오리 실험은 반달러와 반달러의 부계정으로 의심되는 계정을 밝혀내기 위한 방법이지만 무고한 사람에게도 해를 입힐 가능성이 있는 셈.

또 다른 문제는 제재당한 이용자가 오리 실험을 회피하기 위해 행동 패턴을 바꿔 다시 올 수도 있다는 것이다. 조용히 지낸다면 큰 문제는 없지만, 이전과 다른 방향으로 문제를 일으킨다면 애매해지기 시작한다. 다음과 같은 논리가 대표적이다.
새와 닮은 생물이 있다. 이 생물은 오리처럼 생겼고, 오리처럼 헤엄치고, 날고, 알을 낳는다.
하지만 울음소리가 "꽥꽥!" 이 아닌 "오리오리!"이다.
이 경우, 이 새는 오리가 아니다.
위 논리가 위키에서 적용된다면 아래와 같다.
B는 A와 닉네임이 유사하고, A와 비슷한 편집 스타일에, A와 유사한 사문이다.
하지만 B는 편집 요약과 말투 등에서 A와 다르다.
따라서 B는 A가 아니다.
이때 B가 행동패턴을 바꾼 A였다면 B는 오리가 아니라는 결론이 나오고, 그 이용자는 들킬 때까지 마음껏 날뛸 수 있다. 즉 검증에 시간이 오래 걸릴 수 있다는 뜻.

4.1. 악용[편집]

다중 계정 악용을 검거할 수 있는 오리 실험은 작정하고 악용하면 아래의 행위도 불가능하지 않다. 사실 이 부분이 오리 실험의 최대 허점이기도 하다. 작정하고 한 사용자를 쫓아내려 든다면, 이런 패턴으로 오리 실험을 악용해서 운영진을 교란시킬 수 있기 때문이다.
A가 기간제 차단을 당했다.
B는 A의 차단 기간 중 A가 훼손한 문서들을 훼손했고, A와 비슷한 주장을 했고, A와 유사한 토론 태도를 보였으며 수정 코멘트와 말투까지 A와 비슷하다.
B는 차단 회피로 A와 함께 영구차단 당했다.
그러나 사실 B는 C가 A 행동을 그대로 따라한 사칭 계정이었다.
애초에 B 계정은 A를 무기한 차단되기 하려고 차단 당할 각오로 만든 것인데 오리 실험을 사용하면 거기에 휘말려서 A는 영구 차단 당할 일이 없었는데 A를 사칭한 B라는 계정을 사용한 C 때문에 A의 차단이 영구 차단으로 바뀌는 마법 같은 일이 일어난 것이다.

작정하고 악용하는 사례 중 아래의 경우도 있다.
A와 C가 토론을 하고 있었다.
그런데 B가 갑자기 나타나더니 A의 말투를 따라하고 A의 의견을 노골적으로 옹호하는 발언을 했다.
토론을 지켜보던 D는 A와 B에 대해 오리 실험을 요청했고, 그 결과, A와 B 모두 동일인으로 판단되어 영구차단 되었다.
그러나 사실 B는 C가 A 행동을 그대로 따라한 사칭 계정이였다.
정말 악질적인 방법으로, 이 역시 A를 차단시킬 목적으로 새 계정을 생성하거나 아이피로 토론에 참여한 뒤, A를 똑같이 따라하여 오리 실험으로 부정 접속으로 잘못 판단하게 만들어 차단시키는 방법이다. 실제로도 종종 일어나는 사례로, 토론에서 불리한 상황에서 이 방법을 통해 반대자를 영구차단 시키고 자신의 성향대로 문서를 바꾸는 사람들이 있어 문제가 되고 있다. 둘 다 로그인 이용자라면 다중 계정 검사로 동일인이 아님을 입증 가능하나, 다중 계정 검사가 불가능한 아이피 이용자는 동일인이 아님을 입증할 방법이 별로 없다는 점이 문제.

심지어 아래의 사례도 있을 수 있다.
A와 B가 토론을 하고 있었다.
그런데 C가 갑자기 나타나더니 A의 말투를 따라하고 A의 의견을 노골적으로 옹호하는 발언을 했다.
토론을 지켜보던 D는 C의 예전 행적을 살펴 보았더니 B와 비슷한 말투, B와 비슷한 수정 코멘트, B와 비슷한 문서 수정을 보여주었다.
D는 C와 B에 대해 오리 실험을 요청했고, B와 C는 동일인으로 판단되어 영구차단 되었다.
그러나 사실 C는 A의 부계정이었다. A는 머리를 굴려 C가 A를 따라하는 척 한 것이다.
오리 실험이 얼마나 모순이 많은 방법인지를 보여주는 반례. 괜히 법조계에서 무죄추정의 원칙이 생긴 게 아니다.

5. 용어 상의 비판[편집]

실험이라는 단어 자체가 잘못되었다는 주장이 있다. 이 오리 실험이라는 용어는 영어 위키백과의 The duck test한국어 위키백과 측에서 번역한 것인데, test는 ‘실험’으로 번역할 수 있지만 ‘검사’ 혹은 ‘시험’으로도 번역할 수 있다. 이 주장은 해당 영어 단어의 의미 상 후자로 번역했어야 더 적절하지만 운영진(또는 차단 권한 보유자)의 권위를 위해 좀 더 과학적이게 보이는 전자의 단어로 번역했다는 것이다.

이런 류의 단어가 대부분 그렇듯 자연과학, 사회과학, 일상, 사전 중 어느 곳에서 쓰느냐에 따라 조금씩 의미가 달라지기 때문에 '실험' 역시 아주 틀렸다고는 할 수 없으나, 이 문서에서 설명하는 행위가 일반적인 의미의 ‘실험’이라 보기엔 여러모로 부족한 것이 사실이다. 좀 거칠게 말해서 물증도 없이 그냥 심증만으로 처분을 때리는 것이나 마찬가지다. 심증으로 판단한다는 것은 그 판단 기준이 마음대로가 될 가능성이 있음을 의미하고, 실제로 이렇게 될 경우 오히려 지극히 비과학적인 제재 조치가 된다. 재료 및 방법이 있는 것도 아니고. 사고 실험도 재료 및 방법이 없기는 하지만 사고 실험은 최소한 연역적이다.

그래서 사실상 대충 비슷해보이면 차단하는 것이나 다름없는데, 이 과정에서 운영진 마음대로 하는 것 아니냐는 불만이 많을 수 있으므로 이를 불식시키고자 마치 어떤 ‘정해놓은 기준’에 의해 차단하는 것 같은 인상을 심어주기 위해 ‘실험’이라는 용어를 쓴다는 것이다.

6. 기타[편집]

프록시 서버를 이용한 반달은 IP 검증 등을 통한 규정상의 제재만으로는 실질적인 대응이 불가능한 경우가 많기 때문에 오리 실험의 논증을 동원하여 약한 수준의 제재를 가하는 것이 일반적이다. 물론 상술했듯이 논증 자체에 맹점이 존재하기 때문에 오리 실험을 제재 판단의 근거로 삼는 것은 위험하다는 의견이 있다.

위키백과에서는 오리 실험에 걸렸다는 이유만으로는 강한 제재를 가할 수 없지만 알파위키에서는 영구 차단까지 가능하다. 사실 정황이 명백하지 않아도 접속내역과 수정내역을 보고 대략 그렇다 싶으면 광대역 차단까지 시전하기도 한다. 게다가 이게 악질 트롤러 봉쇄가 아니라 단순 규정위반자에게도 일괄적용되는 등 리그베다 위키보다 더 강경한 편.

7. 파생 용어[편집]

프로그래밍 용어로 Duck typing(덕 타이핑)이라는 용어의 어원 역시 이 오리 실험이다. 클래스 C는 T라는 타입을 갖게 하고 싶다고 하자. Java 같은 언어에서는 C라는 클래스에서 T라는 타입을 상속했다고 명시해야만 한다. 반면 Python이나 Go같은 언어에서는 클래스 C에서 T 타입의 함수들을 갖고 있다면 T 타입이라고 간주한다. 즉, 클래스 Bird가 fly, quack 이라는 두 함수를 가지고 있다면 Duck이라는 타입이라고 간주하는 것이다.

어원이 어원인 관계로 보통 교육 예제를 돌릴때는 오리라는 클래스를 만들고 오리의 특징을 가지고 함수를 짜는 경우가 많다.[1]
[1] 예를 들면 class duck 에 walk(),swim(),quack() 이런식