하자보수와 유지보수는 무엇이 다르고, 경계는 어디입니까?
외주로 만든 시스템을 운영하는 회사에서 납품 몇 달 뒤 자주 받는 질문입니다. 오류를 고쳐 달라고 요청했더니 개발사가 유지보수 계약이 필요하다고 답하거나, 반대로 개선 요청을 하자로 처리해 달라고 요구하면서 서로의 기준이 부딪히는 경우가 있습니다.
빌드업웍스 답변
빌드업웍스 엔지니어핵심 답변
하자보수는 납품 당시 합의한 대로 동작하지 않는 결함을 만든 쪽이 고치는 일이고, 유지보수는 납품 이후 생긴 변화(운영 환경 변경, 기능 추가, 외부 연동 변경, 운영 지원)에 대응하는 별도 계약의 일입니다. 둘의 경계는 인수 때 합의한 요구사항과 검수 기준이므로, 그 기준이 문서로 남아 있어야 다툼이 줄어듭니다. 개발 계약이 민법상 도급에 해당하면 하자담보책임과 그 행사 기간(인도받은 날부터 1년)이 기본값이 되지만, 계약서에서 기간과 범위를 따로 정하기도 하므로 둘 다 명시해 두는 편이 분명합니다.
- 하자보수는 합의한 대로 동작하지 않는 결함을 고치는 일입니다
- 유지보수는 납품 이후의 변화에 대응하는 별도 계약입니다
- 경계를 가르는 기준은 인수 때 합의한 요구사항과 검수 기준입니다
- 도급이라면 민법상 하자 보수 청구는 인도받은 날부터 1년 안에 해야 합니다
- 하자 대응 기간이 끝나기 전에 결함 목록을 모아 서면으로 요청합니다
한 문장으로 가르면
하자보수와 유지보수는 둘 다 「납품 뒤에 시스템을 고치는 일」이라 한데 묶이기 쉽습니다. 그러나 원인과 책임, 비용의 근거가 다릅니다. 이 차이를 계약 단계에서 정리해 두지 않으면 납품 직후 몇 달 동안 요청 하나하나가 협상이 됩니다.
하자보수
- 원인: 납품 당시부터 있던 결함
- 판단 기준: 합의한 요구사항과 검수 기준
- 책임: 만든 쪽이 고칩니다
- 기간: 계약에서 정한 하자 대응 기간
유지보수
- 원인: 납품 이후 생긴 변화와 운영 요구
- 범위: 장애 대응·작은 변경·환경 갱신·운영 지원
- 근거: 별도 유지보수 계약
- 기간: 유지보수 계약 기간
정리하면 하자는 「약속한 것이 안 되는 것」이고, 유지보수는 「약속 이후에 달라진 것」에 대응하는 것입니다. 그래서 경계를 가르는 기준은 언제나 인수 때 합의한 요구사항과 검수 기준입니다. 이 기준이 문서로 남아 있지 않으면, 같은 오류를 두고 한쪽은 하자라 하고 다른 쪽은 개선이라 해도 판정할 근거가 없습니다.
예를 들어 「모바일에서 표가 잘린다」는 같은 현상도, 인수 때 모바일 화면을 지원 범위에 넣었다면 하자이고 넣지 않았다면 새 요구입니다. 현상만 보고 분류하려 하면 끝이 나지 않으므로, 먼저 그때 무엇을 약속했는지를 찾는 것이 순서입니다.
법이 정한 기본값
개발 계약이 민법상 도급에 해당한다면, 민법은 수급인에게 하자에 대한 담보책임을 지웁니다. 제667조는 완성된 목적물이나 완성 전의 성취된 부분에 하자가 있으면 도급인이 상당한 기간을 정해 하자의 보수를 청구할 수 있고, 하자 보수(고쳐 달라는 청구)에 갈음하여 또는 그와 함께 손해배상을 청구할 수 있다고 정합니다. 다만 하자가 중요하지 않은데 보수에 과다한 비용이 드는 경우는 예외입니다.
조문이 「상당한 기간을 정해」 청구하도록 하고 있으므로, 실무에서는 요청에 수정 기한을 함께 적어 두는 편이 안전합니다. 하자 보수를 요청할 때는 언제, 어떤 화면에서, 어떤 입력으로 문제가 생겼는지와 재현 방법을 적어 메일이나 문서로 보내십시오. 전화로만 요청하면 나중에 요청 시점과 내용을 증명하기 어렵습니다.
제670조는 하자의 보수, 손해배상 청구와 계약 해제를 목적물의 인도를 받은 날부터 1년 안에 하도록 정하고(인도가 필요 없는 일이라면 일이 끝난 날부터), 제672조는 담보책임을 지지 않기로 약정했더라도 수급인이 알면서 고지하지 않은 사실에 대해서는 책임을 면하지 못한다고 정합니다.
다만 소프트웨어 개발 계약이 언제나 민법상 도급으로만 판단되는 것은 아니고, 실무에서는 계약서에서 하자 대응 기간과 범위를 따로 정하기도 합니다. 그러므로 하자 대응 기간, 대상, 요청 방법, 수정 기한을 계약서에 명시해 두는 편이 분명합니다. 금액이 크거나 다툼이 이미 생긴 경우라면 법률 자문을 받으시기 바랍니다.
경계가 흐린 사례
다툼이 생기기 쉬운 것은 경계에 걸친 사례입니다. 판단의 갈림 기준을 함께 보면 정리가 쉬워집니다.
| 상황 | 흔한 판단 | 갈림 기준 |
|---|---|---|
| 합의한 기능이 특정 입력에서 오류를 냅니다 | 하자 | 요구사항에 그 기능이 있었는가 |
| 브라우저·운영체제 업데이트 뒤 화면이 깨집니다 | 유지보수 | 인수 때 지원 환경 목록에 있었는가 |
| 사용자가 늘면서 느려집니다 | 유지보수·개선 | 검수 기준에 성능 기준이 있었는가 |
| 「이렇게 동작할 줄 알았다」는 해석 차이 | 협의 대상 | 요구사항 문서의 문장이 무엇이었는가 |
| 외부 연동 서비스의 사양이 바뀌었습니다 | 유지보수 | 변경 시점이 납품 이후인가 |
| 보안 취약점이 발견됐습니다 | 협의 대상 | 계약에 보안 기준이 명시됐는가 |
표의 「갈림 기준」 열이 비어 있는 상태로 계약하면 모든 사례가 협의 대상이 됩니다. 반대로 지원 환경 목록, 성능 기준, 보안 기준을 검수 기준에 넣어 두면 상당수의 사례를 문서만으로 분류할 수 있습니다.
보안 취약점은 따로 생각해 둘 필요가 있습니다. 납품 당시 이미 알려진 유형의 취약점을 그대로 두었다면 하자로 볼 여지가 크지만, 납품 뒤 새로 공개된 취약점에 대응하는 일은 성격상 유지보수에 가깝습니다. 어느 쪽이든 발견 즉시 조치가 필요하므로, 책임 분류는 조치 뒤에 하고 조치 자체는 미루지 않는다는 원칙을 계약에 넣어 두는 편이 안전합니다.
유지보수 계약에 적을 것
하자 대응 기간이 끝나면 시스템을 계속 돌보는 일은 유지보수 계약으로 넘어갑니다. 과학기술정보통신부가 배포하는 SW 분야 표준계약서에도 정보시스템 유지관리와 상용 소프트웨어 유지관리 계약서가 따로 있을 만큼, 유지보수는 구축과 다른 계약입니다. 계약서에는 다음 항목을 확인하십시오.
- 범위: 장애 대응, 오류 수정, 작은 변경, 보안 패치·버전 갱신, 모니터링 중 무엇이 들어가는가
- 제외: 새 기능 개발과 화면 개편은 별도 견적인가
- 작업량의 단위: 정액 범위, 건별, 시간 단위 중 무엇으로 계산하는가
- 요청 창구와 우선순위를 정하는 방식
- 작업 내역을 보고하는 주기와 형식
- 하자 대응 기간과 겹칠 때 어느 쪽이 먼저인가
- 계약이 끝날 때 넘겨받을 최신 소스와 문서
유지보수를 만든 곳이 아닌 다른 업체에 맡긴다면, 하자 대응 기간 안에 원래 개발사로부터 인수인계를 받는 일정도 함께 잡아야 합니다. 하자 대응 기간이 끝난 뒤에는 원래 개발사에 설명을 요청할 계약상 근거가 약해지기 때문입니다.
하자 대응 기간이 끝나기 전에
하자 대응 기간의 마지막 무렵에 할 일이 있습니다. 그동안 쌓인 불편 사항을 모아 하자와 개선으로 나누고, 하자로 분류한 항목은 기간 안에 서면으로 요청합니다. 기간이 끝난 뒤 발견된 결함은 원인이 납품 당시에 있었더라도 계약상 처리 근거가 약해질 수 있기 때문입니다. 그리고 유지보수 계약의 시작일을 하자 대응 기간의 종료일과 맞춰, 아무도 책임지지 않는 공백이 생기지 않게 합니다. 하자로 요청한 항목과 처리 결과는 목록으로 남겨 두면, 다음 유지보수 업체가 시스템의 약한 곳을 파악하는 자료로도 쓰입니다.
빌드업웍스도 구축 완료 뒤 일정 기간 무상으로 하자에 대응하고, 새 기능 추가나 범위 변경은 별도로 협의하며, 그 이후의 개선과 운영은 운영 · 개선 서비스로 이어 갑니다.
참고 자료
이어서 보기
개발 · 업무 시스템 자주 받는 질문
외주 개발 납품 검수는 무엇을 기준으로 해야 합니까?
납품 검수 기준은 납품 때가 아니라 착수 때 합의해야 합니다. 실제 업무 순서대로 짠 시나리오가 끝까지 통과하는지, 남은 결함이 어느 등급인지, 성능·보안·지원 환경 같은 비기능 기준을 충족하는지, 약속한 인도물을 받았는지, 검수 기간과 결과 통지 방식이 무엇인지를 계약서나 별첨에 적어 두면 「완료」의 해석이 갈리지 않습니다.
답변 2026-10-22
개발 · 업무 시스템 자주 받는 질문
개발 외주 계약서의 소스코드 인도 조항에는 무엇을 적어야 합니까?
소스코드 인도 조항에는 무엇을(인도 목록), 어떤 형식으로, 언제, 어떻게 확인하고, 어떤 권리와 함께 받는지를 나눠 적어야 합니다. 「산출물 일체를 인도한다」는 한 줄로는 빌드·배포 설정, 데이터베이스 구조, 외부 서비스 계정처럼 시스템을 다시 세우는 데 필요한 자료가 빠지기 쉽습니다. 인수 조건에 「인도받은 자료만으로 제3자가 다시 빌드·배포할 수 있을 것」을 넣으면 그 빈칸을 계약 기간 안에 확인할 수 있습니다.
답변 2026-10-22
개발 · 업무 시스템 자주 받는 질문
개발사와 연락이 끊긴 시스템, 첫 주에 무엇부터 해야 합니까?
개발사와 연락이 끊긴 첫 주에는 시스템을 고치려 하기보다 멈추지 않게 지키는 데 집중해야 합니다. 순서는 만료일이 정해진 것(도메인, TLS 인증서, 클라우드·호스팅 결제 수단) 확인, 관리자 계정과 클라우드 루트 계정의 복구 경로 확보, 백업이 실제로 복원되는지 확인, 변경 동결과 현재 상태 기록입니다. 공개 TLS 인증서의 최대 유효기간은 2026년 3월 15일 발급분부터 200일로 줄었고 2029년 3월 15일 발급분부터는 47일이 되므로, 인증서 갱신이 자동으로 이뤄지는지부터 확인하는 것이 특히 급합니다.
답변 2026-10-22
함께 보면 좋은 자료구축 뒤 하자 대응과 운영 · 개선 — AI · 앱 개발함께 보면 좋은 자료서비스 약속 — 지킬 수 있는 것만 약속합니다함께 보면 좋은 자료인도 이후의 범위를 견적서에서 확인하는 법댓글
답변에 덧붙일 질문이나 경험을 남겨 주세요. 빌드업웍스가 확인한 뒤 게시합니다.
댓글을 불러오는 중입니다.
궁금한 점을 편하게 남겨 주세요
영업 연락은 드리지 않습니다. 빌드업웍스 엔지니어가 영업일 2~3일 안에 답변드리고, 카카오톡·텔레그램 채팅으로도 상담하실 수 있습니다.