소프트웨어 생애주기와 각 단계별 계약 IT법률

소프트웨어 생애주기와 각 단계별 계약

소프트웨어는 생애주기를 가집니다. 요구사항 수집과 명세 작성부터 시작해서 개발, 배치(구매와 설치) 그리고 유지 보수까지. 처음 몇 단계의 경우 계약 및 법과 관련하여 중점적으로 문제되는 사항들은 주로 소프트웨어 개발 조직의 문제입니다. 소프트웨어의 구매자(사용자)는 구매시점부터 유지 보수에 이르기까지 소프트웨어 계약과 만나게 됩니다.

이하에서 설명하는 것은 소프트웨어 생애주기의 주요 단계들과, 각 단계에서 중요하게 문제되는 계약 및 법적 쟁점들입니다.

1. 요구사항 수집과 명세 작성

소프트웨어 개발팀이 소프트웨어가 어떠한 특성을 가져야 하는지, 어떠한 기술적 구조를 사용해야 하는지를 결정하는 단계입니다. 이때 사용하는 분석 및 모델링 소프트웨어 툴의 적법한 라이선스를 가지고 있는지는 개발팀 입장에서 중요합니다. 소프트웨어 제품 개발 회사는 사용하는 툴의 올바른 라이선스를 구입하였는지를 확인하여야 합니다. 주문에 따른 소프트웨어 개발 계약의 경우 구매자 쪽에서 소프트웨어 툴의 라이선스를 구매하여 개발을 맡은 벤더 측의 사용에 제공할 필요가 있습니다. 구매자가 나중에 소프트웨어 유지 보수를 하려면 그 툴을 계속 사용하여야 하기 때문입니다.

2. 개발

이전 단계와 달리 소프트웨어를 개발하는 동안은 모든 소프트웨어 개발 툴의 모든 라이선스를 적법하게 구매하는 것이 중요합니다. 또한 개발팀은 그들이 사용하는 모든 코드 및 라이브러리의 출처를 알고 있어야 합니다. 코드의 출처는 3가지 중의 하나입니다. 1) 상용 라이선스에 따라 소프트웨어 회사로부터 구입한 라이브러리, 2) 오픈소스 라이선스로 배포되는 라이브러리, 3) 개발팀이 직접 작성한 코드.

만일 오픈소스 코드가 사용되었다면, 해당 소프트웨어가 판매될 때 적용되는 최종 라이선스에 영향을 미칩니다. 예를 들어, GNU 라이선스가 붙은 라이브러리를 사용하면 그 팀이 만든 모든 소프트웨어에 GNU 라이선스가 적용되어야 함을 뜻합니다. 이는 사업상의 의사결정을 요하는 부분이며, 개발자들은 오픈소스 코드를 사용할 때 그 법적인 영향력을 숙지하고 있어야 합니다. 개발자들이 오픈소스 코드를 다운로드 받는 것은 매우 쉽고, 많은 개발자들이 그러한 행동이 끼치는 상업적 영향을 제대로 알지 못합니다.

개발팀에 의해 작성된 코드는 반드시 독창적이어야 하며, 다른 소스를 베낀 것이면 안됩니다. 유사시 개발팀원들이 코드의 독창성을 구두로 혹은 법률팀이 관리할 수 있는 문서로 보증해야 할 수도 있습니다.

3. 판매와 인도

소프트웨어를 판매할 때 가장 중요한 법률 문서는 소프트웨어에 적용되는 라이선스 계약서입니다. 라이선스 계약서는 전문가에 의해 세심하게 마련되어야 합니다. 그렇지 않으면 소프트웨어 벤더가 실수로 소프트웨어에 관한 권리를 잃게 될 수도 있습니다. 이는 매우 중요한 문제입니다. 소프트웨어 벤더가 다른 고객에게 다른 복사본을 판매하기 위해서는 반드시 (특허권이나 저작권과 같은) 소프트웨어에 관한 권리을 지니고 있어야 하기 때문입니다. 이는 일반적인 상품의 판매와는 다른 점입니다. 일반적인 상품의 경우 물건의 디자인에 관한 권리는 벤더가 가지지만, 만들어진 개별 물품 자체의 소유권은 구매자에게 이전합니다.

소프트웨어에 버그가 전혀 존재하지 않는다고 자신하지 않는 이상, 벤더는 소프트웨어의 보증에 관해서는 명시적인 제한을 두는 것이 보통입니다. 그렇지 않으면 다른 제품 판매자들과 마찬가지로 제품의 상품성과 특정 목적의 적합성을 일반적으로 보증할 의무가 법적으로 부여됩니다.

4. 설치

구매자 스스로 소프트웨어를 설치할 수도 있고, 벤더 측에 설치를 요구할 수도 있습니다. 벤더 측에서 설치하는 경우 소프트웨어 벤더 자신이 설치할 수도 있지만, 독립한 IT 서비스 업체일 수도 있습니다. 만일 설치 서비스가 필요하다면, 설치 및 구성 서비스 제공 계약이 구매자와 서비스 업체 사이에 체결되어야 합니다.

5. 소프트웨어 유지 보수

소프트웨어가 일단 생산 현장에 배치되면, 최신 버전으로 유지하고 발견된 버그를 수정하기 위해 유지 보수가 필요합니다. 구매자가 벤더로부터 업데이트와 버그 픽스를 얻을 수 있도록 소프트웨어 벤더와 구매자는 소프트웨어 유지 보수 계약을 맺을 필요가 있습니다.

6. 지원(Support)

벤더가 소프트웨어 사용 방법에 대한 질의에 답변해주거나, 환경에 맞추어 소프트웨어를 미세하게 조정하는 것을 도와줄 것을 구매자가 원하는 경우도 있습니다. 이를 위해서는 벤더와 구매자 사이에 소프트웨어 지원 계약을 맺을 필요가 있습니다.

--변호사 김흥주(khj348@gmail.com)

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://hjkim348.egloos.com/tb/1068064 [도움말]

덧글

댓글 입력 영역