[과학 오디세이]짝퉁 프로그래머로 사는 법

채진석 | 인천대 교수·컴퓨터공학 2013. 2. 17. 21:48
번역beta Translated by kaka i
글자크기 설정 파란원을 좌우로 움직이시면 글자크기가 변경 됩니다.

이 글자크기로 변경됩니다.

(예시) 가장 빠른 뉴스가 있고 다양한 정보, 쌍방향 소통이 숨쉬는 다음뉴스를 만나보세요. 다음뉴스는 국내외 주요이슈와 실시간 속보, 문화생활 및 다양한 분야의 뉴스를 입체적으로 전달하고 있습니다.

얼마 전 수십만달러의 연봉을 받는 미국의 40대 프로그래머가 중국의 한 회사에 자기 수입의 5분의 1 정도에 해당하는 5만달러를 주고 대신 프로그램을 개발하게 하고, 자신은 매일 인터넷 서핑만 하다가 적발되었다는 기사를 읽은 적이 있다. 이 사람은 자신의 이름으로 된 프로그램이 깔끔하게 구성되어 있었고, 이것을 항상 제시간에 맞추어 제출하였기 때문에 지난 몇 년간 근무평가에서 우수하다는 평가를 받았으며, 최근에는 최고개발자의 지위까지 올라간 것으로 보도되었다. 가히 짝퉁 프로그래머의 원조라고 할 만하다.

그런데 실제로 어떤 사람이 짝퉁 프로그래머인지 아닌지를 감별해 내는 것은 쉬운 일이 아니다. 기사에 소개된 이 사람은 자신의 보안 인식표를 중국에 우편으로 보내 중국에서 이 프로그래머의 아이디로 일과 시간에 로그인해 마치 정상적으로 일하는 것처럼 했다. 그러다가 한 회사가 중국 선양에서 누군가 자사 시스템에 들어오려고 시도하고 있다는 것을 인식하고 해킹이 우려된다며 조사를 요청하는 바람에 꼬리를 잡혔다. 똑같은 프로그램을 개발해도 그것의 가치는 미국과 중국에서 몇 배의 차이가 나는 것이 현실이므로 미국에서 활동하고 있는 짝퉁 프로그래머가 이 사람 혼자만은 아닐 것이다. 우리나라도 방글라데시나 베트남 등 제3세계 국가들과 연봉 차이가 상당하므로 이들 나라에서 실력이 뛰어난 프로그래머만 섭외할 수 있다면 우리나라에서도 짝퉁 프로그래머로 살아가는 것이 전혀 불가능한 일은 아니다.

프로그래밍 수업 시간에 학생들이 과제물로 제출하는 프로그램을 자신의 힘으로 작성했는지 여부를 판별하는 것 또한 쉽지 않다. 많지는 않겠지만 컴퓨터공학을 전공하는 학생들 중에는 학부 4년 동안 자신의 힘으로 프로그램을 한 줄도 작성하지 않고 졸업하는 경우도 있을 수 있다. 이론 과목을 열심히 공부해 필기시험에서 어느 정도의 성적을 받고 프로그래밍 과제는 다른 학생들이 작성해 놓은 것을 받아서 약간만 수정해 제출하면 웬만해선 발각되지 않기 때문이다.이런 학생들이 어찌어찌하여 전공을 살려 취업에 성공하는 경우 짝퉁 프로그래머가 될 가능성이 매우 높다.

컴퓨터공학을 전공하는 학생들이 짝퉁 프로그래머가 되지 않게 하려면 혼자 힘으로 프로그램을 작성할 수 있는 능력을 키워주어야 한다. 또한 오류가 발생할 경우 끈기 있게 오류를 수정하는 인내심이 있어야 하는데, 요즘들어 이런 인내심이 부족한 학생들이 많은 것 같다.

컴퓨터 알고리즘 중에 두 개의 단어가 얼마나 유사한지를 알아내는 방법으로 레빈쉬타인 거리(Levenshtein distance)라는 것이 있다. 이것을 다른 말로는 편집 거리(edit distance)라고도 부르는데, 원래의 단어를 목표한 단어로 변경하는 데 필요한 변경 연산의 횟수를 세는 방식으로 유사도를 측정한다.

예를 들어, 새끼 고양이를 뜻하는 kitten을 앉아있다는 뜻인 sitting으로 변경하기 위해서는 첫 번째 문자인 'k'를 's'로 변경하고, 끝에서 두 번째 문자인 'e'를 'i'로 변경한 다음, 마지막 문자로 'g'를 추가하면 되므로, 이 경우의 편집 거리는 3이 된다. 즉 편집 거리는 두 단어가 동일한 경우에는 0이 되고, 값이 커지면 커질수록 두 단어는 유사하지 않은 것이 되는 것이다. 두 프로그램의 유사도를 측정할 때에도 이 프로그램을 사용할 수 있는데, 편집 거리가 매우 낮게 나올 경우 한 프로그램이 다른 프로그램을 표절한 것으로 의심할 수 있는 것이다.

필자가 아직 혈기왕성했던 시절, 편집 거리를 측정하는 알고리즘을 사용하여 학생들이 제출하는 모든 프로그램의 표절 여부를 검사하려 한 적이 있다. 그러나 한참을 고민하다가 실제로 시행하지는 않았다. 그 이유는 프로그램을 작성하다보면 많은 학생들이 비슷한 형태로 작성할 가능성이 있고, 또한 두 프로그램이 유사할 경우 어떤 것이 원본이고 어떤 것이 복사본인지를 알 수가 없어 선의의 피해자가 발생할 가능성이 있었기 때문이다.

그러나 언젠가는 필자의 강의를 수강하는 모든 학생의 프로그램을 검사하여 편집 거리가 낮게 나오는 경우 매우 강력한 경고를 해야겠다고 각오를 다지고 있다. 이것이야말로 학생들이 짝퉁 프로그래머로 살아가지 않도록 해주는 가장 좋은 방법이라고 굳게 믿기 때문이다.

< 채진석 | 인천대 교수·컴퓨터공학 >

Copyright © 경향신문. 무단전재 및 재배포 금지.

이 기사에 대해 어떻게 생각하시나요?