TechNet Home > NTO 칼럼

TechNet NTO 칼럼

카고 컬트 (Cargo Cult) 와 라이센코주의 (Lysenkoism)

김명호, 한국마이크로소프트 NTO mhkim@microsoft.com

지난 몇 회에 걸쳐 마이크로소프트 기술의 진화와 비전에 대해 소개해 왔다. 물론 앞으로도 기회가 있을 때마다 마이크로소프트의 미래지향적 기술을 소개할 예정이며 이에는 Software Factories와 Domain-Specific Languages, Dynamic Systems Initiative, Seamless Computing 비전과 Longhorn 등이 포함될 것이다. 그러나 이번에는 잠시 숨을 고르는 의미에서 마이크로소프트와 그다지 관련이 없는 "카고 컬트"와 "라이센코주의" 라는 주제를 다루어 보고자 한다. 이들은 외형적으로는 과학이나 공학을 가장하지만 종교 수준의 역기능과 악영향만 있을 뿐 순기능은 거의 하지 못하며 본질이라고는 찾아볼 수 없는 유사 과학들을 일컫는 개념적 용어이다.

카고 컬트(Cargo Cult)와 카고 컬트 과학

   작고한 노벨 물리학 수상자 리차드 파인먼 교수가 1974년 캘리포니아 공대 학위 수여식에서 행한 연설을 인용하면 카고 컬트가 무엇인가 이
   해하는 데 도움이 될 것 같다. 아래는 국내에서 "발견하는 즐거움" 이라는 제목으로 번역된 파인먼의 저서를 일부 인용한 것이다.

남태평양에는 카고 컬트(Cargo Cult, 화물 숭배) 의식을 행하는 사람들이 있습니다. 전쟁 중에 비행기가 좋은 화물을 많이 싣고 착륙하는 것을 본 그들은 지금도 그런 일이 일어나기를 바랍니다. 그래서 그들은 활주로 비슷한 것을 만들어 놓고, 활주로 양쪽에 불을 지펴 놓았습니다. 관제탑 같은 오두막도 만들어 놓고, 이 오두막에 들어앉은 사람은 대나무 조각 두 개로 헤드폰을 만들어 머리에 썼는데, 이 사람은 관제사 입니다. 그리고 그들은 비행기가 착륙하기를 기다립니다. 그들은 모든 형식을 제대로 갖추었지요. 그 형식은 완벽합니다. 그것은 전과 완전히 똑같아 보이지만 제대로 작동되지 않습니다. 비행기는 착륙하지 않지요.

파인먼은 소위 과학자들 가운데서도 과학적 방법의 모든 형식은 갖추었지만 존경이나 지원할 가치라고는 조금도 없는 유사과학(pseudo-science)이 있음을 지적하며, 이를 카고 컬트 과학이라 하였다. 파인먼의 연설을 조금 더 인용해 보자.

나는 이런 것을 카고 컬트 과학이라고 부릅니다. 그들은 겉보기에 과학 탐구의 모든 지침과 형태를 따르고 있지만 필수적인 것이 빠져 있습니다. 그래서 비행기가 착륙할 수 없습니다.

그는 또한 정직함과 성실성이 결여된 과학을 카고 컬트와 다를 바 없는 유사과학으로 규정하여 크게 주의할 것을 당부하였다. 파인먼의 연설 가운데 가장 놀라운 것은 정직한 과학을 위한 제1원칙으로 "스스로를 속이지 말라"는 원칙을 제시한 것이다. 그는 세상에서 가장 속이기 쉬운 것은 자기 자신이며, 자신을 속이지 않는다면 다른 과학자들을 속이지 않는 것도 쉬운 일이라고 하였다. 실험 결과가 유명 과학자의 논문에서 참조한 결과와 다를 때 별다른 가책 없이 자신의 실험 결과를 무시하고 참조한 결과를 존중한다든지, 예측된 결과와 일치하는 실험 결과만을 논문에 포함시키고 다른 결과의 발생 자체를 언급하지도 않는 행태 등은 스스로를 속이는 대표적인 부정직함의 사례일 것이다.

카고 컬트 법률

과학뿐만 아니라 범죄 수사를 위한 법률에도 카고 컬트의 사례가 있다는 논문이 있다. 예를 들어 어린이는 결코 거짓말을 하지 않으므로 어떤 증거보다 어린이의 증언을 우선시 해야 한다는 법률 등이 바로 그것이다. 그러나 사실은 어린이도 분명히 거짓말을 한다. 다만 어른들과는 다른 동기에서 다른 방법으로 거짓말을 하는 경우가 많다는 것이 다를 뿐이다. 참고문헌에 소개된 논문 "Fooling Ourselves: Cargo Cult Law and Medicine" 에서 인용한 "엄마가 나를 밀었어요" 라는 사례를 보자.

나는 해변의 울퉁불퉁한 길을 따라 걷고 있었다. 나보다 두 발짝 앞서 3살 가량의 여자 아이가 있었다. 그 아이의 아버지는 훨씬 앞에서 가고 있었고 어머니와 할머니는 나보다 몇 발짝 뒤에 있었다. 그런데 갑자기 그 아이가 무언가에 걸려서 넘어졌다. 아이의 아버지가 뒤로 걸어와서 아이를 일으켜 세우고 무슨 일이 있었는지 물어 보았다. 그 아이는 "엄마가 나를 밀었어요" 라고 울면서 말했다. 나는 "아뇨, 그 애가 이 바위에 걸린 거예요" 라고 말해 주었다. 어린 아이는 왜 자기의 어머니를 비난했을까? 그 아이는 아버지가 설명을 요구하였기 때문에 응답할 의무를 느꼈으며, 무언가 구실이 필요했다. 아이는 당황했고, 혼란스러웠으며, 야단 듣고 싶지 않았다. 결국 그 아이는 상황을 잘못 이해했고 자신이 바위에 걸려 넘어졌다는 것을 깨닫지도 못했다.

이 사례에서 보면 아버지의 질문이라는 다른 상황에 의해 원인이 왜곡되어 결국 아이가 거짓말을 하게 된 것이다. 만일 목격자가 없었다면 아이의 어머니가 얼마나 가혹한 상황으로 내몰릴뻔 했을지 충분히 짐작할 수 있다. 이처럼 어린이는 결코 거짓말을 하지 않는다는 주장은 어른들이 스스로를 속이는 행위에 지나지 않는다. 어른을 속이는 것은 어린이이기보다는 사실상 어른 자신이다. 그럼에도 불구하고 어린이는 결코 거짓말을 하지 않으니 어린이 범죄 혐의로 수사를 받는 어른의 말은 무시해도 좋다는 식의 법률은 카고 컬트 법률일 뿐이다.

라이센코주의(Lysenkoism)

라이센코주의는 구 소련에서 1930년대 중반 - 1960년대 중반에 라이센코(Lysenko, trofim Denisovich)라는 학자가 주도하여 벌인 유전학 및 유전학자에 대항하는 대대적 캠페인이었다. 라이센코주의의 학술적 취지는 라마르크의 용 불용설을 지지하고 다아윈의 진화론을 전면 부정하는 것이다. 이 정도의 사소한 학술적 견해가 그토록 문제가 된 것은 컬트적 자기기만 세력과 정치권력의 폭압적 집행체제가 공통의 이해를 위해 연합할 때 발생할 수 있는 모든 문제점을 보여주는 전형적 사례였기 때문이다.

라이센코주의는 당시 집권자였던 스탈린의 인민 교화 정책과 이념을 같이함으로써 공산당에 의해 공식적인 학설로 인정 받게 되었다. 즉 민중을 집중적으로 교육하고 교화하면 그 형질이 다음 세대에 자연스럽게 전달될 수 있다고 주장함으로써 교화의 명분 아래 민중을 탄압하고 소수의 집단이 권력을 독점하는 것을 정당화 하려고 하였다. 라이센코주의는 이러한 정치적 목적의 하수인 역할을 하며 스탈린의 폭정을 위한 이론적 근거로 제시되었던 것이다. 라이센코주의자들의 주장을 예를 들면, 비료에 설탕을 첨가하여 옥수수에 투여하면 보다 단맛의 옥수수를 얻을 수 있고, 이에서 얻은 씨앗을 파종하면 다음 세대부터는 단맛의 옥수수를 계속해서 얻을 수 있다고 하는 식이었다. 우습게도 이처럼 터무니 없는 주장이 과학 논문지에 버젓이 게재되는 일이 자주 연출되었으며, 나중에는 이런 주장에 반하는 다른 모든 논문이 모든 학술지에서 완전히 사라지게 되었다. 결국 구 소련의 농업은 다른 농업 선진국에 비해 수십 년이나 뒤지는 결과를 초래하였다. 이런 일이 어찌 가능할 수 있었을까?

먼저 자기기만에 대해 양심적 가책을 전혀 받지 않는 카고 컬트적 집단이 있어야 했으며 라이센코는 그 선두에 있는 인물이었다. 이들은 양심과 다르더라도 정치적으로 옳은(politically correct) 이념이기만 하면 기꺼이 받아들일 준비가 되어 있었다. 이들은 절대 선을 대표하는 하나의 이론만 주장하고 요구하며 다른 모든 가능성을 차단하고 그 이론에 반대하는 사람들을 이단으로 간주하였다. 또한 이들과 이해를 같이하는 정치집단이 있었다. 이 정치집단은 반대파를 숙청할 수 있는 무소불위의 힘을 가지고 있으며, 그 일부를 카고 컬트 집단에게 나누어 준 것이다. 그 결과 정직한 양심을 가진 학자들은 마녀사냥에 가까운 방법으로 격리 혹은 숙청당했고, 그들의 논문은 모든 논문지에서 자취를 감추었으며, 그 이후 어떤 양심적 학자도 학회나 논문지 주변에 얼씬도 하지 못하게 되었다. 카고 컬트 집단과 정치집단이 공동으로 이용한 것은 바로 미디어였다. 미디어가 사실을 전하기보다는 권력집단의 메가폰에 지나지 않을 때 사회는 중세 암흑기로 되돌아 간 것이나 마찬가지였다. 라이센코주의의 교훈은 제2의 라이센코주의의 발현을 차단하려면 어떤 경우에든 정직한 양심을 가진 세력을 수호하고 양성하는 사회의 관심과 안전장치가 필요하다는 것이다.

카고 컬트 프로그래밍과 소프트웨어공학

카고 컬트는 정확성을 생명으로 하는 프로그래밍과 소프트웨어공학에 있어서도 매우 흔한 현상이다. 카고 컬트 프로그래밍은 무슨 목적을 위한 것인지 전혀 이해하지도 않고 어떤 코드나 프로그램 구조를 맹목적으로 채용하는 것이 그 예가 될 수 있다. 카고 컬트 프로그래밍에 익숙한 개발자는 다른 사람의 코드를 자신의 프로그램에 잘라 붙이면서(cut-and-paste) 그 코드를 제대로 읽고 실험하지는 않았지만 주석에 보니 그렇다고 해서, 베스트 셀러를 기록한 바 있는 저자의 저서에 나와 있는 코드라서, 인터넷에서 다운로드 받은 구루의 소스코드이니 믿을 수 있기 때문에 와 같은 온갖 변명을 늘어놓으며 스스로를 속인다. 자주 사용되는 코드 패턴을 정형화한 소위 "코드 숙어"(code idiom)라는 것도 분명한 용도에 따라 올바른 문맥에서 사용되지 않으면 전혀 무의미하거나 백해무익한 코드가 될 뿐이다. Perl Medic 이라는 서적에 보면 Perl 프로그래머가 흔히 접하게 되는 각종 카고 컬트 코드를 예시하고 있다. 문제는 이러한 위험성이 Perl에만 국한되는 것이 아니라는 것이다.

카고 컬트 코드를 포함한 프로그램이 제대로 동작하는 것처럼 보이는 것은 우연의 결과이지 절대 정상적인 결과가 아니어서 "우연에 의한 프로그래밍"(programming by coincidence)이라는 개념까지 등장하게 되었다. 스티브 맥카널(Steve McConnell)은 그의 저서 Professional Software Development에서 소프트웨어공학에도 카고 컬트 현상이 있음을 지적하였다. 즉 문서화를 위한 문서화, 초과근무를 위한 초과근무, SW-CMM에 대한 비굴할 정도의 집착, 무비판적인 RUP나 eXtreme Programming 수용 등 본질보다 형식을 더 강조하는 모든 행위들을 예시하면서 이들을 카고 컬트 소프트웨어공학이라 부르는 것이 마땅하다고 하였다.

스스로를 속이지 말자

카고 컬트와 라이센코주의에서 우리는 타인에게 영향을 미칠 수 있는 위치에 있는 사람이 자신의 언행에 앞서 반드시 숙고해야 할 정직함에 관한 근본적 교훈을 찾을 수 있다. 카고 컬트처럼 스스로를 속이고 있으면서도 전혀 눈치채지 못하고 있지는 않은가? 라이센코주의처럼 자신의 부정직함을 타인에게까지 강요하여 회복 불가능한 상처를 주고 있지는 않은가? 정확성을 생명으로 하는 개발자들은 다음과 같은 생각을 끊임없이 경계해야 한다. "이것(이 코드)은 내가 숭배하는 어떤 구루가 말씀(작성)하신 것으로 의심의 여지가 없다. 그분의 말씀이(소스코드가) 어떤 경우에든 조금이라도 틀릴 리가 있겠는가?" 이 생각은 스스로를 속이게 만드는 가장 달콤한 유혹일지 모른다. 스스로를 속이지 않도록 주의하고 또 주의하자.

참고문헌

카고 컬트 과학:
- Richard P. Feynman, The Pleasure of Finding Things Out, Perseus Books Group, 2000. (역서: 승영조 김희봉, 발견하는 즐거움, 도서출판 승산, 1999)
- Richard P. Feynman, Surely You're Joking Mr. Feynman, pp.308-317, Bantam Books, 1985.
- http://clsdemo.caltech.edu/archive/00000051/02/CargoCult.htm (Richard Feynman)

카고 컬트 법률:
- Robert Sheridan, "Fooling Ourselves: Cargo Cult Law and Medicine," IPT Journal 4(1), 1992. http://www.ipt-forensics.com/journal/volume4/j4_1_5.htm

라이센코주의
- Nikolai Bezroukov, "Short Introduction to Lysenkoism (Lysenkoism as a technocult)," Softpanorama, http://www.softpanorama.org/Skeptics/lysenkoism.shtml

카고 컬트 프로그래밍:
- Jason Langston, "Don't' be a cargo cult programmer," Random Reflections on .NET and Software, 2004, http://weblogs.threepines.net/taba/archive/2004/05/05/214.aspx
- Peter J. Scott, Perl Medic, Cargo Cult Perl, pp.133-155, Addison-Wesley Professional, 2004.

카고 컬트 소프트웨어공학:
- Steve McConnell, Professional Software Development, pp.23-27, Addison-Wesley, 2004.



   최종 수정일 : 2005년 3월 2일