강기봉, 컴퓨터프로그램의 리버스 엔지니어링에 관한 법정책적 소고, 법제 제664호, 법제처, 2014.3.
[논문 목차]
I. 서설
II. 리버스 엔지니어링의 정의 및 의의
1. 리버스 엔지니어링의 정의
2. 리버스 엔지니어링의 의의
3. 리버스 엔지니어링 관련 개념
III. 리버스 엔지니어링의 방법에 따른 법적 문제
1. 문제의 소지
2. 블랙박스 분석
3. 디스어셈블리와 디컴파일
4. 클린룸 방식
IV. 산업적 영향과 필요성
1. 리버스 엔지니어링의 명과 암
2. 리버스 엔지니어링의 완전한 방지의 어려움
3. 리버스 엔지니어링의 산업정책적 필요성
V. 관련 규정의 법정책적 검토
1. 미국 판례에서의 논의
2. 유럽에서의 논의
3. 저작권법상 관련 규정의 검토
4. 계약 및 기술적 보호조치와의 관계
VI. 결론
[논문 서설]
컴퓨터프로그램의 리버스 엔지니어링(reverse engineering)은 기존의 컴퓨터프로그램을 역으로 분석하는 기술로서 우리나라에서 일반화되어 있고, 학술적으로도 연구가 이루어지고 있다. 이러한 컴퓨터프로그램의 분석은 새로운 컴퓨터프로그램을 개발하기 전의 조사·분석 과정에서 주로 이뤄지지만, 한편으로는 컴퓨터 바이러스의 분석을 위해서도 이용되고, 기존 컴퓨터프로그램과의 상호운용을 위한 정보를 확인하기 위해서도 이용되며, 대학생·대학원생들의 학습욕구나 호기심의 충족수단으로도 이용된다. 예를 들어 대학생이 비디오 게임의 작동원리를 밝혀내고자 목적코드(object code) 프로그램을 분석용 프로그램을 사용하여 분석하는 경우를 생각해 볼 수 있다. 이렇게 리버스 엔지니어링은 일반적으로 생각하는 것보다 다양한 이유와 환경에서 행해지고 있고, 인터넷상의 자료, 논문 자료, 도서 등을 통해 다양한 정보와 다양한 리버스 엔지니어링용 소프트웨어들이 존재하므로 비교적 용이하게 리버스 엔지니어링을 행할 수 있다.
그럼에도 불구하고 리버스 엔지니어링에 의해 컴퓨터프로그램의 구체적이고 정확한 분석을 하는 것은 쉬운 일이 아니다. 예전에 한국디지털재산법학회에서 리버스 엔지니어링에 관한 논의가 있었는데, 실제로 리버스 엔지니어링을 통해 컴퓨터프로그램을 분석하고 그것을 토대로 어떤 결론을 내기가 어려웠던 사례가 있었다고 한다. 해당 사건이 프로그램의 리버스 엔지니어링을 직접적으로 다룬 사건이 아니라서 판결문에도 관련한 내용은 없다. 그렇지만 이 사례는 리버스 엔지니어링을 할 수 있다는 것이 반드시 컴퓨터프로그램의 완전한 분석이 가능함을 의미하는 것이 아니라는 사실을 보여준다고 할 것이다.
그런데 현재 리버스 엔지니어링에 관한 법적 논의는 법학자들의 논의로만 존재하는 것처럼 보인다. 국내에서는 누구도 실제로 소송으로서 법적 문제를 제기한 바도 없고 그럴 의지도 없어 보인다. 리버스 엔지니어링 실무자들은 실무자들대로 리버스 엔지니어링을 하면서 법적인 문제와 그 허용 근거에 대해 종종 논의하는 수준이다. 다만, 2009년에 한국저작권위원회의 워킹그룹에 참여하고 기술 세미나에 참석하면서 개발자들이 리버스 엔지니어링에 관한 법적 문제에 대해 막연한 불안감을 가지고 있고, 그 법적 근거를 찾고자 하는 노력이 있다는 것을 엿볼 수 있었다.
이런 상황에서, 이 논문은 리버스 엔지니어링에 관련한 문제에 대한 이해를 돕기 위해 다소 유연한 시각에서 리버스 엔지니어링의 의의와 필요성, 법적인 문제점, 리버스 엔지니어링의 허용의 근거, 관련 법률 규정의 해석 방향 등에 대해 법정책적인 관점에서 살펴보도록 한다.
논문 전문(법제처): http://www.moleg.go.kr/knowledge/monthlyPublication?mpbLegPstSeq=133303