Glossary · 시스템 개발

소스코드 소유권 Source Code Ownership

용어 사전 · 안녕소프트 최재원 · 2026. 9. 22. 작성

소스코드 소유권은 개발이 끝난 프로그램의 원본 코드를 누가 갖고, 고치고, 다른 곳에 맡길 수 있는지를 정하는 권리입니다. 프로그램은 화면으로 보이지만 실체는 소스코드입니다. 코드가 없으면 아무리 잘 돌아가는 프로그램이라도 고칠 수도, 다른 업체에 맡길 수도 없습니다. 개발비를 다 냈으니 당연히 내 것이라고 생각하기 쉽지만, 계약서에 어떻게 적혀 있느냐에 따라 달라집니다. 계약 전에 확인해야 나중에 곤란해지지 않습니다.

소스코드 소유권이 왜 문제가 되는가

프로그램 개발을 맡기면 발주사는 '돌아가는 프로그램'을 받습니다. 그런데 프로그램을 고치거나 옮기려면 원본 코드, 코드를 실행 가능한 형태로 만드는 방법, 자료가 든 DB, 서버 계정이 함께 있어야 합니다. 이 중 하나라도 개발사만 갖고 있으면 발주사는 그 개발사 없이는 아무것도 할 수 없습니다.

문제는 대개 다음 상황에서 드러납니다.

  • 개발사와 관계가 나빠져 다른 곳에 맡기려는데 코드가 없을 때
  • 개발사가 폐업하거나 담당자가 없어졌을 때
  • 유지보수 비용이 올라 다른 업체 견적을 받고 싶은데 비교 자체가 안 될 때

개발 당시에는 잘 돌아가니 신경을 안 쓰다가, 몇 년 뒤 업체를 바꾸려 할 때 처음 확인하는 경우가 많습니다. 그때는 협상력이 없습니다. 계약 단계에서 정해 두는 것이 유일하게 쉬운 시점입니다.

소유권과 사용권의 차이(일반적인 이해)

여기서 설명하는 내용은 일반적인 이해를 돕기 위한 것이며, 실제 권리 관계는 계약서 문구와 관련 법에 따라 달라집니다. 중요한 계약이라면 법률 검토를 받는 것이 좋습니다.

소유권(저작권 양도)에 가까운 경우: 발주사가 코드를 갖고, 스스로 고치고, 다른 업체에 맡기고, 필요하면 다른 회사에 넘길 수도 있습니다. 개발사는 납품 뒤 그 코드에 대한 권리를 주장하지 않습니다. 맞춤 개발에서 발주사가 보통 기대하는 형태입니다.

사용권(라이선스)만 받는 경우: 발주사는 프로그램을 쓸 수 있지만 코드의 권리는 개발사에 남습니다. 코드를 받지 못하거나, 받더라도 고치거나 남에게 맡기는 것이 제한될 수 있습니다. 패키지 소프트웨어나 개발사가 여러 고객에게 공통으로 쓰는 기반 코드가 있을 때 이런 형태가 됩니다.

실제 계약은 이 둘 사이 어딘가에 있는 경우가 많습니다. 예를 들어 '발주사 맞춤 부분은 양도하고, 개발사의 공통 모듈은 사용권만 준다'는 식입니다. 계약서에 '소유권' 또는 '저작권'이라는 단어가 있는지, 있다면 어느 범위에 적용되는지를 읽어 보는 것이 출발점입니다.

발주사가 확인할 인계 항목

권리가 문서에 적혀 있어도 실물을 받지 못하면 소용이 없습니다. 계약서와 별도로 다음 항목을 실제로 인계받는지 확인합니다.

  1. 소스코드 전체: 화면, 서버, DB 구조를 만드는 스크립트까지. 일부만 주면 나머지를 새로 만들어야 합니다.
  2. 빌드·배포 방법: 코드를 받아도 실행 가능한 형태로 만드는 방법을 모르면 쓸 수 없습니다. 짧은 문서라도 받아 둡니다.
  3. DB 접속 정보와 구조: DB 관리자 계정, 테이블 설명. 자료는 회사 것이므로 언제든 꺼낼 수 있어야 합니다.
  4. 서버 계정: 클라우드 서버 계정, 도메인 관리 계정, 인증서. 개발사 명의로 되어 있으면 회사 명의로 바꾸거나 최소한 관리자 권한을 확보합니다.
  5. 외부 서비스 계정: 문자 발송, 지도, 결제, 알림처럼 프로그램이 쓰는 외부 서비스의 계정과 인증키.

인계는 계약 종료 시점이 아니라 납품 시점에 한 번 받고, 이후 큰 변경이 있을 때마다 갱신본을 받는 것이 안전합니다. 받은 코드를 회사 저장소에 보관해 두고, 가능하면 다른 개발자가 실행해 보게 해서 실제로 동작하는지 확인합니다.

업체가 바뀔 때 실제로 생기는 일

인계가 잘 된 경우와 안 된 경우는 결과가 크게 다릅니다.

코드와 계정을 갖고 있는 경우: 새 업체가 코드를 받아 구조를 파악하고, 테스트 서버에 올려 동작을 확인한 뒤 유지보수를 이어받습니다. 문서가 얼마나 있느냐에 따라 파악 기간이 달라지지만, 처음부터 다시 만드는 것과는 비교할 수 없이 적은 비용입니다.

코드가 없는 경우: 새 업체는 화면을 보고 기능을 추측해 다시 만들어야 합니다. 개발비를 한 번 더 내는 셈입니다. DB만 있다면 자료는 살릴 수 있지만, DB 접근도 막혀 있으면 자료마저 화면에서 하나씩 뽑아야 합니다.

코드는 있지만 사용권만 있는 경우: 다른 업체가 고쳐도 되는지가 계약에 따라 달라집니다. 원 개발사에 확인하거나 협의가 필요할 수 있습니다.

업체 교체를 결정했다면 다음 순서로 진행하는 것이 무난합니다.

  • 현재 계약서에서 인계·해지 조항을 확인합니다.
  • 기존 업체에 인계 항목 목록을 보내고 일정을 정합니다.
  • 새 업체가 인계본으로 테스트 서버를 띄워 검증한 뒤에 기존 계약을 종료합니다.

기존 계약을 먼저 끊고 인계를 요청하면 협조를 받기 어렵습니다. 순서를 바꾸지 않는 것이 중요합니다.

소유권을 받는 경우와 사용권만 받는 경우(일반적인 경향, 계약에 따라 다름)
구분소유권(양도)에 가까운 경우사용권만 받는 경우
소스코드 인계전체를 받는 것이 보통받지 못하거나 일부만
직접 수정가능제한될 수 있음
다른 업체에 유지보수 맡기기가능원 개발사 협의 필요할 수 있음
다른 회사에 양도가능한 경우가 많음대개 불가
개발사의 재사용계약에 따라 제한개발사가 자유롭게 재사용
흔한 형태맞춤 개발패키지·공통 기반 코드

소스코드 소유권 자주 묻는 질문

개발비를 다 냈으면 소스코드는 당연히 제 것 아닌가요?

그렇게 보는 것이 일반적인 기대이지만, 실제로는 계약서에 어떻게 적혀 있는지에 따라 달라집니다. 계약서에 소유권이나 저작권 관련 조항이 없거나 모호하면 나중에 다툼이 생길 수 있습니다. 계약 전에 조항을 넣고, 납품 때 실물 인계를 받는 것이 확실한 방법입니다.

소스코드를 받았는데 실행이 안 됩니다. 정상인가요?

코드만 있고 실행 환경 설정이나 빌드 방법이 빠진 경우입니다. 필요한 프로그램 버전, 설정 파일, 외부 서비스 키가 있어야 돌아갑니다. 인계 항목에 빌드·배포 문서를 포함시키고, 받은 직후 다른 개발자가 실행해 보게 하면 이런 문제를 미리 잡을 수 있습니다.

개발사가 공통 모듈이라며 일부 코드를 안 주려고 합니다.

개발사가 여러 고객에게 쓰는 기반 코드는 사용권만 주는 경우가 실제로 있습니다. 이때는 그 부분이 없어도 나머지가 동작하는지, 다른 업체가 대체할 수 있는 범위인지를 확인합니다. 어느 부분이 공통 모듈인지 계약서나 인계 문서에 명시해 달라고 요청하세요.

실무에서 이 개념이 어떻게 쓰이는지는 ERP 구축 업체·프로그램 개발 업체 고르는 법 · 프로그램 제작 의뢰, 이렇게 준비하면 견적이 정확해집니다 에 정리했습니다.

소스코드 소유권, 우리 회사 업무에 어떻게 적용할지 궁금하시다면

지금 쓰시는 엑셀이나 업무 순서를 알려주시면, 어디까지 시스템으로 옮길 수 있는지 단계별로 정리해 드립니다.

무료 상담 문의