전화
상담신청
오시는 길
법률 블로그
법률 정보
기업 법무 2026.06.18

쓰레기 같은 결과물 던져주고 잔금 달라는 외주 개발사: 계약 해제 통보 전 '기성고(진척도) 평가'와 '하자 증거' 정리 안 해두면 오히려 선급금 다 떼입니다

외주개발하자소송 도급계약해제 기성고감정 소프트웨어하도급 법률사무소완봉

안녕하세요, 법률사무소 완봉입니다.

"대표님, 앱이 왜 안 켜지죠? 회원가입 버튼을 누르면 그냥 멈춰버려요."

스타트업이나 중소기업을 운영하면서 가장 피 마르는 순간 중 하나는, 수천만 원에서 수억 원을 들인 외주 개발 결과물이 무용지물인 채로 납품되었을 때입니다. 마감 기한은 이미 몇 달씩 지났는데, 막상 받아본 앱이나 웹 플랫폼은 버그 투성이에 핵심 기능조차 작동하지 않는 깡통 수준입니다.

참다못한 발주사 대표님이 "더는 같이 일 못 하겠으니 계약을 해제하고 선급금을 돌려달라"고 요구하면, 개발사는 기다렸다는 듯이 이렇게 나옵니다.

"우리는 요구사항대로 90% 이상 개발을 완료했습니다. 계약을 깨고 싶으시면 지금까지 일한 기성 대금과 잔금을 다 주셔야 소스코드를 넘겨드릴 수 있습니다."

분명히 피해자는 돈을 준 발주사인데, 법적 분쟁으로 가면 오히려 개발사에게 잔금을 더 물어줘야 하는 억울한 상황이 실제로 빈번하게 발생합니다. 왜 이런 일이 벌어지는지, 그리고 이 악순환을 끊기 위해 계약 해제 통보 직전에 반드시 확보해야 할 증거가 무엇인지 실무적인 관점에서 안내해 드립니다.


📌 TL;DR (핵심 요약)

  1. 작동하지 않는 결과물을 받았다고 홧김에 계약 해제를 통보하면, 개발사가 "이미 80% 이상 개발했다"며 기성대금 청구 소송으로 역공해 올 수 있습니다.
  2. 계약을 적법하게 해제하고 돈을 돌려받으려면, 개발사가 구현하지 못했거나 심각한 하자가 있는 기능을 조목조목 짚어낸 '요구사항 대비 미이행 목록표''개발 로그'를 선제적으로 확보해야 합니다.
  3. 법원의 '기성고 감정' 단계에서 끌려다니지 않으려면, 소송 전 전문 변호사와 함께 기술적 오류 증거를 객관적 수치로 계량화해 두어야 합니다.

1. 화난다고 바로 "계약 해제"를 외치면 안 되는 이유 (기성고의 덫)

소프트웨어 개발 계약은 법률적으로 민법상 도급계약에 해당합니다. 수급인(개발사)이 일을 완성해 결과물을 인도하고, 도급인(발주사)이 그 대가를 지급하는 구조입니다.

문제는 소프트웨어가 '완전히 아무것도 없는 상태'에서 깨진 것이 아니라는 점입니다. 개발사가 조금이라도 코딩을 진행하고 화면의 형태라도 만들어 놓았다면, 법원에서는 '기성고(이미 완성된 부분의 비율)'를 따지게 됩니다.

대법원 판례에 따르면, 도급계약이 중도에 해제되더라도 이미 수행된 부분이 발주사에게 객관적으로 유용하다면 계약은 소급해서 무효가 되지 않고 '장래를 향해서만' 효력을 잃습니다. 즉, 발주사는 개발사가 이미 일한 분량(기성고)만큼의 대금을 지급해야 할 의무를 지게 됩니다.

💡 법률 용어 한 걸음 더
- 기성고(旣成高): 공사나 용역에서 이미 완성된 부분의 비율 또는 그에 상당하는 금액을 의미합니다.
- 기성 부분의 객관적 유용성: 개발사가 중간에 만든 결과물을 다른 개발사가 이어받아 계속 개발할 수 있거나, 발주사가 실제로 활용할 수 있는 가치가 있는지를 뜻합니다.

체계적인 준비 없이 "기한도 안 지키고 앱도 안 돌아가니 당장 계약 해제다!"라고 선언하면, 개발사는 다음과 같이 역공합니다.

  • "전체 기능 20개 중 16개를 완성했으니 기성고는 80%다. 계약 해제는 받아들이겠지만, 선급금 5,000만 원 외에 80%에 해당하는 대금을 추가로 정산해라."

이때 "제대로 작동하는 기능이 하나도 없는데 무슨 80%냐"라고 반박하더라도, 이미 계약이 해제되어 소스코드를 받지 못한 상태라면 입증 책임을 지는 발주사가 극도로 불리해집니다. 결국 법원 감정을 거쳐 "외관상 70%는 만들어진 것으로 보인다"는 판정이 나오면, 쓰레기 결과물을 받고도 상대방에게 돈을 더 얹어줘야 하는 황당한 결말을 맞이하게 됩니다.


2. 개발사의 역공을 차단하는 사전 증거 확보 3가지

공식적인 계약 해제 서면(내용증명)을 발송하기 전에, 상대방이 "우린 일 다 했다"는 주장을 펴지 못하도록 기술적·법률적 근거를 미리 확보해 두어야 합니다.

① '요구사항 정의서' 대비 '미이행 및 하자 일람표' 작성

계약 당시 첨부한 '요구사항 정의서' 또는 '기능 명세서'를 좌측에, 현재의 작동 상태를 우측에 대조하는 표를 만들어야 합니다.

요구 기능 세부 사양 구현 여부 실제 작동 상태 및 하자 내용 비고
01. 간편 로그인 카카오/네이버 연동 X 카카오 로그인 버튼 클릭 시 'Error 500' 발생, 앱 강제 종료 화면 녹화 파일(01_login_error.mp4) 첨부
02. PG 결제 연동 이니시스 카드 결제 결제 창은 뜨나 결제 완료 후 DB에 정보가 반영되지 않아 주문 취소 처리 불가 데이터베이스 로그 캡처본 첨부

단순히 "앱이 안 돼요"가 아니라, 어떤 기능이 왜 작동하지 않는지 구체적인 증상과 화면 캡처, 재현 경로를 일일이 기록해 두어야 합니다. 이 표는 소송 단계에서 법원이 지정한 감정인이 기성고를 평가할 때 사실상 유일한 가이드라인이 됩니다.

② 형상관리 툴(GitHub, GitLab 등)의 개발 로그 및 소스코드 백업

개발사가 실제로 성실히 일했는지를 보여주는 가장 객관적인 증거는 커밋(Commit) 로그입니다.

  • 수개월 동안 커밋 횟수가 손에 꼽을 정도이거나, 마감 직전에 보여주기식으로 아무 의미 없는 더미 코드만 밀어 넣은 정황이 포착된다면, 개발사의 이행 지체 및 채무불이행을 입증하기가 훨씬 수월해집니다.
  • 공동 리포지토리(Repository) 권한이 있다면, 상대방이 소스코드를 삭제하거나 권한을 박탈하기 전에 전체 로그와 소스코드를 즉시 다운로드해 백업해 두어야 합니다.

③ "기획이 바뀌어서 늦어졌다"는 핑계 격파용 메신저 대화록 정리

개발사들이 일정 지연에 대해 가장 흔하게 대는 핑계는 "발주사 측에서 요구사항을 자꾸 바꿔서 늦어졌다"는 것입니다.

  • 슬랙(Slack), 카카오톡, 이메일 등의 대화를 전수 조사하여, 발주사가 기획을 변경한 적이 없거나 변경이 있었더라도 개발사가 추가 공수나 일정 조정을 서면으로 합의한 적이 없음을 정리해야 합니다.
  • "이 일정까지 이 기능은 무조건 완료하겠다"고 호언장담했던 개발사 PM의 메시지, "개발 인력이 이탈해 지연되고 있다"며 스스로 귀책사유를 인정한 대화 캡처본을 날짜별 타임라인으로 정리해 두면 강력한 증거가 됩니다.

3. '소송의 핵심' 기성고 감정 단계에서 이기는 법

갈등이 법정 싸움으로 번지면, 재판부는 기술적 전문성이 부족하기 때문에 외부 전문 감정기관(한국정보통신기술협회(TTA) 또는 법원 지정 감정인)에 소프트웨어 기성고 감정을 의뢰합니다.

감정인은 통상적으로 다음 기준을 종합하여 기성고를 산정합니다.
1. 기능적 관점: 전체 대비 구현된 기능의 비율 (가장 중요)
2. 공수 관점: 투입된 개발자 인력(Man-Month) 및 시간
3. 코드 분량: 작성된 소스코드의 라인 수 및 품질

이때 '미이행 및 하자 일람표'와 구체적인 오류 증거를 미리 정리해 두지 못한 발주사는 크게 불리해집니다. 감정인은 코드가 엉망이든 정상 작동을 안 하든, 단순히 '작성된 코드의 라인 수'나 '투입 인원의 이력서'만 보고 기성고를 70~80%로 높게 책정해 버릴 수 있기 때문입니다.

반면, 소송 전부터 "작성된 코드 중 60%는 기존 오픈소스를 무단 복사·붙여넣기 한 것으로 실제 사용이 불가능하며, 구현되었다는 기능조차 핵심 프로세스가 작동하지 않아 실제 기성고는 10% 미만"이라는 점을 증거와 함께 주장한다면, 감정 결과를 뒤집고 승기를 잡을 수 있습니다.


4. 계약 해제 통보 전 실행해야 할 적법한 절차

사전 증거가 수집되었다면 이제 법적으로 적법한 해제 절차를 밟아야 합니다. 민법 제544조에 따라 상대방의 이행지체를 이유로 계약을 해제하려면 '상당한 기간을 정한 최고(催告, 독촉)' 절차가 반드시 선행되어야 합니다.

  • 1단계: 최고장 발송
    "귀사는 계약상 인도 기한을 도과하였습니다. 본 서면 수령일로부터 14일 이내에 첨부된 미이행 및 하자 리스트에 기재된 모든 기능을 정상 작동하는 상태로 완수하여 인도할 것을 독촉합니다."

  • 2단계: 기한 도과 후 계약 해제 및 대금 반환 청구 통보
    "귀사는 위 독촉 기한 내에 의무를 이행하지 아니하였으므로, 민법 제544조에 기하여 본 도급계약을 해제합니다. 귀사는 이미 수령한 선급금 전액을 반환하고, 지체상금 및 손해배상금을 지급해 주시기 바랍니다."

이 절차를 꼼꼼히 밟아두어야 나중에 개발사가 "최고도 없이 일방적으로 계약을 파기당했다"고 주장하는 것을 차단할 수 있습니다.


💬 자주 하는 질문 (Q&A)

Q1. 개발사가 소스코드를 인질로 잡고 잔금을 요구하는데, 형사고소나 가처분이 가능한가요?

개발사가 직접 작성한 소스코드는 원칙적으로 저작권이 개발사에 있으므로(계약서상 지식재산권 양도 시점이 '대금 완납 시'로 되어 있는 경우가 대부분입니다), 형사상 절도나 업무방해로 처벌하기는 쉽지 않습니다. 다만, 개발사가 고의로 시스템을 마비시키는 백도어를 심었거나 기존 접근 권한을 임의로 차단했다면 정보통신망법 위반으로 형사 대응이 가능합니다. 가장 안전한 방법은 소송 과정에서 소스코드 인도 청구 소송을 병행하는 것입니다.

Q2. '지체상금'은 계약서에 적힌 대로 다 받을 수 있나요?

계약서에 "납품 지연 1일당 총 계약금액의 1000분의 1.5를 지체상금으로 지급한다"와 같은 조항이 있다면 청구할 수 있습니다. 다만, 법원은 지체상금이 지나치게 과다하다고 판단될 경우 직권으로 감액할 수 있으므로(민법 제398조 제2항), 지연으로 인해 실제로 입은 기회비용과 손해(마케팅비 낭비, 출시 지연으로 인한 계약 파기 등)를 입증할 자료를 함께 준비해 두는 것이 유리합니다.

Q3. 계약이 해제되면 선급금은 100% 돌려받을 수 있나요?

원칙적으로 원상회복 의무에 따라 전액 반환이 가능하지만, 앞서 설명한 '기성고'에 따라 일부 금액이 차감될 수 있습니다. 상대방의 결과물이 완전히 무용지물이어서 전혀 쓸 수 없다는 점(기성 부분의 유용성 없음)을 충분히 입증한다면, 선급금 전액 반환은 물론 추가적인 손해배상까지 받아낼 수 있습니다.

Q4. 개발사와 분쟁 중인데 지금이라도 증거를 모을 수 있을까요?

가능합니다. 다만 계약 해제 통보 이후에는 개발사가 접근 권한을 차단하거나 자료를 삭제할 가능성이 높으므로, 통보 전에 최대한 빠르게 수집하는 것이 중요합니다. 어떤 자료부터 확보해야 하는지 판단이 어렵다면 먼저 전문가와 상담하시는 것을 권장합니다.


⚖️ 법률사무소 완봉에서 IT 외주 개발 분쟁 상담을 제공하고 있습니다

IT 외주 개발 분쟁은 단순한 민사 계약 분쟁이 아닙니다. 소스코드 분석, 개발 방법론(애자일, 폭포수 등), 데이터베이스 설계 등 기술적 맥락을 이해하지 못하면 개발사의 허위 기성고 주장에 제대로 대응하기 어렵습니다.

법률사무소 완봉은 다수의 IT 기업 자문 및 외주 개발 하자 소송 경험을 바탕으로, 첫 증거 수집 단계부터 소송 종결까지 밀착 조력해 드립니다. 계약 해제 서한을 보내기 전, 먼저 상담을 통해 대응 전략을 점검해 보시기 바랍니다.

  • 전화: 02-6263-9093
  • 주소: 서울 용산구 서빙고로 17 센트럴파크타워 12층 1202호

※ 본 글은 일반적인 법률 정보를 제공하기 위해 작성되었으며, 개별 사안의 구체적인 사실관계에 따라 법적 판단이나 결론이 달라질 수 있습니다. 구체적인 사안에 대해서는 반드시 법률 전문가의 개별 자문을 받으시기 바랍니다.

이진연 변호사 프로필 사진

이진연 변호사

대표변호사

  • 법무법인(유한) 대륜 형사전문그룹
  • 법무법인 수림
  • 채권추심변호사회 회원
  • 등기경매변호사회 회원
변호사 프로필 보기 ›
이태경 변호사 프로필 사진

이태경 변호사

대표변호사

  • 법무법인 수림
  • 채권추심변호사회 회원
  • 등기경매변호사회 회원
  • 법무법인 더앤
변호사 프로필 보기 ›

법률사무소 완봉

대표변호사가 직접 상담합니다

사건 초기 대응부터 종결까지, 대응 방향을 함께 점검하고 설계합니다.

상담 신청하기
목록으로 돌아가기