외주 개발사가 개발이 다 끝났다며 잔금 청구서를 보냈는데, 막상 앱을 켜보니 먹통입니다. 결제 버튼은 눌리지 않고, 핵심 기능인 '실시간 매칭'은 클릭조차 되지 않습니다. 개발사에 항의하니 "서버 환경 탓이다", "검수 도장부터 찍고 잔금을 주면 패치해주겠다"며 오히려 배짱을 부립니다.
억울해서 돈을 안 주자니 지체상금(납품 지연에 따른 손해배상금)을 물거나 계약 위반으로 역소송을 당할까 봐 밤잠을 설치고 계시진 않나요? 결론부터 말씀드리면, 하자 있는 결과물을 들고 와 잔금을 요구하는 개발사에게는 합법적으로 돈을 주지 않고 버틸 수 있는 법적 근거가 있습니다.
무작정 "돈 못 준다"고 감정적으로 맞서다 억울한 책임을 뒤집어쓰지 않도록, 법의 테두리 안에서 하자를 보수받을 수 있는 실무 수칙을 안내해 드립니다.
법률적으로 소프트웨어 개발 계약은 민법상 '도급 계약'에 해당합니다. 도급 계약이란 수급인(개발사)이 일(소프트웨어 개발)을 완성할 것을 약정하고, 도급인(발주사)이 그 결과에 대해 보수를 지급하는 계약입니다.
핵심은 '일의 완성'과 '대금 지급'의 관계입니다.
즉, 개발사가 하자 보수를 완료하기 전까지 발주사는 "하자를 고쳐줄 때까지 잔금을 줄 수 없다"고 합법적으로 주장할 수 있습니다.
많은 발주사가 감정적으로 대응하다 법적 덫에 걸리곤 합니다. 대표적인 실수가 "하자가 하나라도 있으면 잔금 100%를 절대 안 주겠다"며 버티는 것입니다.
대법원은 이에 대해 명확한 기준을 제시하고 있습니다.
[대법원 2001. 9. 18. 선고 2001다9304 판결]
미지급 공사대금에 비해 하자보수 비용이 매우 적은 경우, 도급인이 대금 지급을 거절할 수 있는 범위는 하자 및 손해에 상응하는 금액으로 한정하는 것이 공평과 신의칙에 부합한다.
총 계약금 1억 원 중 7,000만 원을 이미 지급했고, 잔금 3,000만 원이 남은 상황을 가정해 봅시다. 발견된 하자를 보수하는 데 드는 객관적인 비용이 약 500만 원 수준이라면:
하자 보수 비용을 합리적으로 산정하고, 그에 비례하는 수준의 잔금만 보류하는 전략이 필요합니다.
"프로그램이 안 돌아간다", "렉이 걸린다"는 추상적인 주장만으로는 동시이행항변권을 인정받기 어렵습니다. 하자의 존재와 규모를 입증할 책임은 발주사에게 있기 때문입니다.
개발 초기에 작성한 요구사항 정의서, 화면 설계서(스토리보드), 제안서 등을 모두 꺼내세요. 최종 납품 결과물과 일일이 대조하여 미구현 기능과 오작동 기능을 표 형식으로 정리합니다.
단순 스크린샷보다 오류 발생 과정 전체를 담은 화면 녹화 영상이 훨씬 강력한 증거입니다. 웹 서비스라면 크롬 개발자 도구(F12) '콘솔(Console)' 탭에서 빨간색으로 표시되는 시스템 에러 로그를 함께 캡처해 두세요. 단순 사용 미숙이 아닌 소프트웨어 자체의 결함임을 기술적으로 보여줄 수 있는 객관적 데이터가 필요합니다.
수집한 QA 리포트와 증거 자료를 첨부해 개발사에 내용증명을 발송합니다. 다음 세 가지가 반드시 포함되어야 합니다.
이 서면을 보내두어야 이후 개발사가 "정당한 이유 없이 잔금을 안 준다"며 소송을 제기해도, 지체상금이나 연체이자 책임에서 벗어날 수 있습니다.
오픈 일정이 밀려 마음이 조급해진 나머지 개발사의 읍소에 검수확인서에 덜컥 서명하는 경우가 있습니다. 그러나 검수확인서에 서명하는 순간 법적으로는 '납품이 완료되었다'고 인정한 강력한 증거가 됩니다. 이후 발견된 하자를 입증하기가 몇 배 어려워지므로, 완벽한 정상 구동을 확인하기 전까지는 절대 서명하지 마세요.
답답한 마음에 다른 개발업체를 불러 시스템을 전부 뜯어고친 뒤 그 비용을 기존 개발사에게 청구하려는 경우가 있습니다. 그러나 법원이 해당 비용을 하자 보수가 아닌 '신규 개발비'로 판단하면 인과관계를 부정해 손해배상 청구 전체가 기각될 수 있습니다. 다른 업체를 쓰기 전에는 반드시 현재 하자 상태를 공증하거나 법원의 증거보전 절차를 밟아두어야 합니다.
Q1. 개발사가 잔금을 안 주면 서버를 내리겠다고 협박합니다. 정말 끄면 어떡하죠?
A1. 발주사 동의 없이 정상 구동 중인 서버를 강제 차단하거나 소스코드를 무단 삭제하는 행위는 형법상 업무방해죄 또는 정보통신망법 위반에 해당해 형사 처벌 대상이 될 수 있습니다. 이런 예고가 있다면 즉시 "서버를 차단할 경우 민사상 손해배상 청구와 형사고소 조치를 취하겠다"는 경고성 내용증명을 발송해 제동을 거세요.
Q2. 계약서에 하자 시 잔금 유예 조항이 없는데도 지급을 거절할 수 있나요?
A2. 네, 가능합니다. 하자담보책임과 동시이행항변권은 계약서에 별도 조항이 없어도 민법에 의해 당연히 보장되는 권리입니다. 계약서에 관련 내용이 없더라도 민법 규정을 근거로 정당하게 잔금 지급을 미룰 수 있습니다.
Q3. 하자가 너무 심각해서 아예 계약을 해제하고 착수금·중도금을 돌려받고 싶습니다.
A3. 민법 제668조에 따르면 하자로 인해 '계약의 목적을 달성할 수 없는 때'에는 계약을 해제할 수 있습니다. 다만 법원은 완성도가 상당 수준에 이른 경우 해제 대신 하자 보수나 손해배상으로 해결하도록 유도합니다. 계약 해제를 원한다면 "이 프로그램으로는 사업 운영이 전혀 불가능하다"는 점을 엄격히 증명해야 하므로, 반드시 변호사의 조력을 받아 요건을 검토하시기 바랍니다.
Q4. 하자보수 비용 견적을 꼭 다른 업체에서 받아야 하나요?
A4. 소송으로 가면 법원이 지정한 감정인의 기술 감정으로 최종 산정됩니다. 그러나 소송 전 단계에서 "이 정도 하자가 있으니 잔금 일부를 보류하겠다"고 합리적으로 주장하려면, 신뢰할 만한 제3의 개발업체 1~2곳에서 받은 객관적인 견적서를 증거로 첨부하는 것이 협상력과 법적 명분을 높이는 데 유리합니다.
IT·소프트웨어 개발 분쟁은 기술적인 맥락을 이해하지 못하면 개발사의 "서버 탓이다", "추가 요구사항이다"라는 핑계에 휘둘리기 쉽습니다. 초기부터 어떤 증거를 수집하고 어떤 문서를 남겼는지에 따라 승패가 갈리는 영역인 만큼, 빠른 대응이 중요합니다.
법률사무소 완봉에서는 IT 도급 분쟁에 대한 전문 상담을 제공하고 있습니다. 부실 납품으로 어려움을 겪고 계시다면, 아래로 연락 주시기 바랍니다.
(본 글은 일반적인 법률 정보 제공을 목적으로 작성되었으며, 구체적인 사실관계에 따라 실제 법적 판단은 달라질 수 있습니다. 개별 사안에 대한 정확한 대응을 위해서는 반드시 법률 전문가와 상담하시기 바랍니다.)