저작권은 아이디어가 아닌 표현만을 보호하므로 소프트웨어의 경우에는 소스코드를 보호하지만 해당 소스코드의 기능을 보호하지는 않습니다. 원칙적으로 기능에 관한 아이디어는 영업비밀 또는 특허로 보호할 수 있습니다.
저작권 침해는 저작권자의 동의 없이 소스코드 등 저작물을 무단으로 사용하는 경우에 발생합니다. 프로그램저작권 침해소송에서는 문언적 복제(literal copying)가 인정되는 경우는 많지 않고 대부분 비문언적 복제(non-literal copying) 여부가 쟁점입니다.
저작권의 보호를 받는 표현이란 소스코드와 같은 문언 요소(literal elements)와 프로그램 아키텍처, 구조, 시퀀스 및 구성, 동작 모듈, 컴퓨터 사용자 인터페이스와 같은 비문언 요소(non-literal elements)를 포함됩니다. 그래서 소프트웨어 저작 권 침해는 단순히 코드를 똑같이 복제하는 문언적 침해(literal infringement)의 경우에만 문제가 되는 것이 아니라 비문언적 침해(non-literal infringement)가 중요한 침해 행위가 될 수 있습니다.
문언적 복제는 창작성이 있는 타인의 소스코드의 상당한 분량을 그대로 복제할 경 우에 발생합니다. 저작권 성립을 위한 창작성은 예술작품과 같은 높은 수준을 요구하지 않으므로, 통상 소스코드는 창작성이 인정됩니다. 한편, 동일하게 복제하지 않고 아래 사례와 같이 주석을 변경하고 삭제하거나 변수 및 함수의 이름을 변경하는 정도의 피상적인 변경을 가하더라도 문언적 복제로 인정될 수 있습니다.
그런데 타사의 소스코드를 확보하고 저작권 침해를 피하기 위하여 소스코드를 그대로 복제하여 사용하기보다는 함수 및 변수 이름을 변경하고 함수 내부의 명령의 순서도 변경하여, 타인의 코드를 복제한 것이 아니라 독자적으로 개발하였다고 볼 수 있을 정도로 변경작업을 한 경우가 많습니다.
위와 같이 의도적 변경을 하더라도 타인의 코드에 있던 주석 등을 처리하지 못하여 현재 코드에는 없고 타인의 코드에 있던 변수, 함수 등의 설명이 남아 있는 경우라면 이는 타인의 코드를 보고 복제하였다는 유력한 증거가 될 수 있습니다. 또한 구조체와 함수의 이름을 변경하고 for loop, print 구문 등을 이용하여 코드를 일부 수정하였지만, 구조체와 함수의 변경전 명칭을 그대로 둔 경우 이 또한 복제의 유력한 증거가 될 수 있습니다.
위와 같은 문언적 복제를 피하기 위하여 소스코드를 새로 코딩하는 경우에도 타인의 소프트웨어가 가지고 있던 코드의 구조(structure), 시퀀스(sequence), 조직(organization)의 SSO는 그대로 사용하는 경우가 많습니다. 이러한 SSO의 복제는 비문언적 복제로 저작권 침해에 해당합니다. 다만, SSO는 실제 소스코드에 대한 것으로 한정되고, 기능상에 대한 부분까지 확대되지는 않습니다. 아래 그림은 Video Stack을 추가하였더라도 유사한 SSO를 가진 것으로 비문언적 복제로 판단 받을 수 있습니다.
위와 같이 소프트웨어 업체가 경쟁업체 또는 동종업체에서 소프트웨어 엔지니어를 영입하는 경우나 타사 제품에 대한 경쟁제품을 개발하기 위하여 타사 제품의 리버스엔지니어링을 통하여 분석하는 경우, 문언적 복제 이외에도 비문언적 복제 행위로 판단될 소지가 있다는 점을 유념해야 할 것입니다.