공공기관과 소프트웨어 개발·구축 계약을 맺은 사업자라면 검수를 마치고 최종 산출물을 인도한 뒤에도 한동안 마음을 놓지 못합니다. 시스템을 실제로 운영해 보면 개발 단계에서는 드러나지 않던 오류가 뒤늦게 나타나는 일이 흔한데, 이때 발주기관이 책임을 물을 수 있는 기간이 언제까지인지가 분쟁의 출발점이 되기 때문입니다. 소프트웨어 진흥법은 공공 소프트웨어사업의 하자담보책임기간을 최종 산출물을 인도한 날부터 1년으로 정해두고 있지만, 실제 사건에서는 '인도한 날'이 정확히 언제인지, 1년이 지나면 모든 책임에서 완전히 벗어나는지를 두고 다툼이 벌어집니다. 이 글에서는 공공 SW사업 하자담보책임의 기산점과 범위, 그리고 1년이 지난 뒤에도 남을 수 있는 책임까지 정리해보겠습니다.
법무법인 도모 강대현 대표변호사
소프트웨어 진흥법 제60조 — 공공 SW사업 하자담보책임의 근거
도급계약에서 완성된 목적물에 하자가 있으면 도급인이 수급인에게 하자보수나 손해배상을 청구할 수 있다는 것이 민법 제667조의 원칙이고, 이 권리는 민법 제670조 제1항에 따라 목적물의 인도를 받은 날로부터 1년 내에 행사해야 합니다. 다만 토지·건물 기타 공작물의 경우에는 민법 제671조가 특칙을 두어 인도 후 5년(석조·금속 등 견고한 재료인 경우 10년)까지 담보책임 기간을 늘려줍니다. 소프트웨어 산출물은 이 공작물 특칙의 대상이 아니어서, 별도 규정이 없다면 원칙인 1년의 담보책임 기간이 그대로 적용되는 구조입니다.
소프트웨어 진흥법 제60조 제1항은 바로 이 원칙을 공공 소프트웨어사업에 맞춰 명문화한 규정입니다. 조문은 "소프트웨어사업자는 국가기관등과 소프트웨어사업 계약을 체결한 경우 사업을 종료한 날(사업에 대한 시험 및 검사를 수행하여 최종 소프트웨어 산출물을 인도한 날을 말한다)부터 1년 이내에 발생한 하자에 대하여 담보책임이 있다"고 정하고 있습니다. 민법상 도급의 일반 원칙과 사실상 같은 1년이라는 기간을, 공공 SW사업이라는 특수한 계약 유형에 맞춰 기산점을 구체적으로 규정해 둔 것이 이 조문의 의미입니다.
이렇게 별도의 특별규정을 둔 이유는 공공 SW사업의 특수성에 있습니다. 소프트웨어는 물리적으로 '인도'된다는 개념이 모호할 수 있고, 시험과 검사라는 별도 절차를 거쳐야 비로소 계약상 요구사항을 충족했는지가 확인되는 결과물이기 때문입니다. 그래서 소프트웨어 진흥법은 단순히 '인도일'이 아니라 '시험 및 검사를 수행하여 최종 산출물을 인도한 날'이라는, 검수 절차를 전제로 한 기산점을 명시했습니다. 이 기산점을 정확히 짚어내는 것이 하자담보책임 분쟁의 출발점입니다.
공공 SW사업의 하자담보책임 1년은 민법상 도급의 원칙 기간을 소프트웨어 진흥법 제60조가 그대로 이어받아 명문화한 것이며, 공작물에 적용되는 5년·10년의 연장 특칙은 소프트웨어 산출물에는 적용되지 않는다.
'사업을 종료한 날' — 최종 산출물 인도일을 정하는 기준
조문이 정한 기산점은 단순한 납품일이나 설치일이 아니라 "시험 및 검사를 수행하여 최종 소프트웨어 산출물을 인도한 날"입니다. 공공 SW사업 계약에서는 통상 개발이 끝난 산출물을 발주기관에 제출하면, 발주기관 또는 발주기관이 지정한 검사기관이 요구사항 충족 여부를 확인하는 시험과 검사 절차를 거친 뒤에야 검수조서 또는 검수확인서를 발급합니다. 조문의 문언상 이 검수 절차가 마무리되어 최종 산출물이 실제로 인도된 날이 하자담보책임 1년의 기산점이 됩니다.
실무에서 자주 다투어지는 지점은 바로 이 기산점을 특정하는 문제입니다. 시스템을 먼저 가동해 사용하기 시작했지만 정식 검수확인서 발급이 미뤄진 경우, 계약서에 별도의 시운영(안정화) 기간을 두고 그 기간이 끝난 뒤 최종 검수를 하기로 정한 경우, 여러 모듈로 나누어 순차적으로 인수한 경우 등은 어느 시점을 '인도일'로 볼 것인지가 곧바로 담보책임 기간의 시작과 끝을 좌우합니다. 계약서의 검수 조항과 실제 검수확인서 발급일을 먼저 확인해야 하는 이유입니다.
시험(Test) — 계약서에서 정한 성능·기능 요구사항 충족 여부를 확인하는 절차.
검사(Inspection) — 시험 결과를 토대로 발주기관 또는 검사기관이 산출물을 심사하는 절차.
검수조서·검수확인서 발급 — 시험과 검사를 통과했음을 공식적으로 확인하는 문서.
최종 산출물 인도 — 위 절차를 모두 거쳐 산출물이 발주기관에 실제로 인도되는 시점, 이 날이 하자담보책임 1년의 기산점.
1년의 의미 — 기간 내 '발생한' 하자인지가 핵심
제60조 제1항의 문언을 다시 보면 "1년 이내에 발생한 하자에 대하여 담보책임이 있다"고 되어 있습니다. 여기서 요건이 되는 것은 하자를 발견하거나 신고한 시점이 아니라, 하자가 '발생'한 시점이 1년 이내인지 여부입니다. 이 구조 때문에 인도 후 11개월째 운영 중 오류가 나타났다면 당연히 담보책임 대상이 되지만, 인도 후 13개월째 발견된 오류라 하더라도 그 원인이 인도 당시부터 잠재해 있던 설계·구현상 결함이라면 하자가 언제 '발생'한 것으로 볼지가 다시 다투어질 수 있습니다.
이 지점은 발주기관과 사업자 모두에게 실무적으로 중요합니다. 발주기관 입장에서는 오류가 언제 최초로 나타났는지, 그것이 시스템 설계·구현상의 결함에서 비롯된 것인지를 운영 로그·장애 이력·최초 신고 기록 등으로 정리해 두어야 1년의 기간 내에 하자가 발생했다는 사실을 입증하기 쉬워집니다. 사업자 입장에서도 인도 시점의 시스템 상태와 이후 발주기관의 운영·데이터 변경 이력을 함께 남겨두어야, 나중에 하자의 발생 시점과 원인을 둘러싼 다툼에서 불리해지지 않습니다.
면책되는 경우와 그 한계 — 발주자가 제공한 자료·지시가 원인일 때
소프트웨어 진흥법 제60조 제2항은 하자담보책임이 배제되는 경우를 두 가지로 정하고 있습니다. 발주자가 제공한 물품의 품질이나 규격 등이 기준에 맞지 않는 경우, 그리고 발주자의 지시에 따라 정보시스템을 구축한 경우입니다. 발주기관이 제공한 기초자료가 부정확했거나, 발주기관이 특정한 방식으로 개발할 것을 지시해 그 결과 하자가 생겼다면 원칙적으로 사업자가 그 하자까지 책임질 이유는 없다는 취지입니다. 이는 민법 제669조가 정한 "목적물의 하자가 도급인이 제공한 재료의 성질 또는 도급인의 지시에 기인한 때"의 면책 법리를 공공 SW사업에 맞게 옮겨 놓은 것과 같은 구조입니다.
다만 이 면책에는 분명한 한계가 있습니다. 제60조 제2항 단서는 "발주자가 제공한 물품 또는 발주자의 지시가 적절하지 아니하다는 것을 알고도 그 사실을 발주자에게 알리지 아니한 경우"에는 면책되지 않는다고 정합니다. 민법 제669조 단서도 수급인이 재료나 지시의 부적당함을 알고도 도급인에게 고지하지 않았다면 면책되지 않는다고 규정하는데, 두 조문 모두 같은 취지입니다. 즉 사업자가 발주기관이 제공한 자료나 지시에 문제가 있다는 점을 사업 진행 중에 인지했다면, 이를 묵인하고 그대로 진행할 것이 아니라 서면으로 즉시 알려야 나중에 면책을 주장할 수 있습니다.
발주자 제공 자료나 지시가 하자의 원인이라도, 사업자가 그 문제를 알고도 알리지 않았다면 면책되지 않는다 — 그래서 사업 진행 중 발견한 문제는 반드시 서면으로 통지하고 기록을 남겨야 한다.
분리발주 시 하자담보책임 기간을 달리 정하는 특칙
공공 SW사업은 사업 규모가 크거나 요구사항이 복잡한 경우, 소프트웨어 진흥법 제44조 제3항에 따라 발주기관이 외부전문기관을 활용하거나 분석·설계 사업을 별도로 분리해 발주할 수 있습니다. 이렇게 분석·설계와 실제 구현(개발)이 서로 다른 사업자에게 발주되는 경우, 제60조 제1항 단서는 "국가기관등이 제44조제3항에 따라 소프트웨어사업을 분리발주한 경우 하자담보책임을 계약당사자 간에 달리 정할 수 있다"고 정해, 일률적으로 1년을 적용하지 않고 각 계약의 성격에 맞게 하자담보책임의 범위와 기간을 조정할 여지를 열어두고 있습니다.
분석·설계를 담당한 사업자와 실제 구현을 담당한 사업자의 책임 범위가 다를 수밖에 없는 상황에서, 하자의 원인이 설계 단계에 있는지 구현 단계에 있는지에 따라 책임 소재가 갈리기 때문에 이런 특칙이 필요합니다. 분리발주로 사업에 참여하는 사업자라면 계약 체결 단계에서 자신이 맡은 부분에 대한 하자담보책임의 기간과 범위가 계약서에 명확히 규정되어 있는지 반드시 확인해야 하고, 모호하게 남겨두면 추후 하자 발생 시 책임 소재를 둘러싼 다툼으로 번질 수 있습니다.
1년이 지나도 남는 책임 — 채무불이행책임과의 경합
하자담보책임기간 1년이 지났다고 해서 사업자의 책임이 모두 사라지는 것은 아닙니다. 대법원 2020. 6. 11. 선고 2020다201156 판결은 도급계약에 따라 완성된 목적물에 하자가 있는 경우, 수급인의 하자담보책임과 채무불이행책임은 별개의 권원에 의하여 경합적으로 인정된다고 판시했습니다. 이 판결에 따르면 하자를 보수하기 위한 비용은 하자담보책임과 채무불이행책임 양쪽에서 말하는 손해에 해당하므로, 도급인은 이를 민법 제667조 제2항에 따른 하자담보책임상 손해배상으로 청구할 수도 있고, 민법 제390조에 따른 채무불이행 손해배상으로 청구할 수도 있습니다.
이 법리를 공공 SW사업에 적용하면, 소프트웨어 진흥법 제60조가 정한 1년의 하자담보책임기간이 지나 더 이상 하자담보책임을 물을 수 없게 되더라도, 사업자의 채무 이행이 애초에 불완전했다는 점을 근거로 한 채무불이행 손해배상청구권은 별도로 성립할 수 있습니다. 다만 하자담보책임이 사업자의 고의·과실을 묻지 않는 무과실책임의 성격을 갖는 데 비해, 채무불이행책임은 발주기관이 사업자의 귀책사유를 주장·증명해야 한다는 차이가 있습니다. 채무불이행 손해배상청구권의 소멸시효는 민법 제162조 제1항에 따라 일반채권으로 10년이고, 계약이 상행위에 해당하면 상법 제64조에 따라 5년으로 단축될 수 있으며, 그 기산점은 위 대법원 판결이 밝힌 대로 손해가 현실적으로 발생한 때입니다.
하자보수 청구 실무 — 서면 통지와 상당한 기간
실제로 하자를 발견했을 때는 민법 제667조 제1항에 따라 상당한 기간을 정하여 하자보수를 청구할 수 있고, 사업자가 이에 응하지 않으면 같은 조 제2항에 따라 하자보수에 갈음하거나 이와 함께 손해배상을 청구할 수 있습니다. 이때 '상당한 기간'을 어떻게 정했는지, 그 기간 안에 사업자가 실제로 보수 요청에 응했는지는 이후 손해배상 범위를 다툴 때 중요한 근거자료가 됩니다.
공공 계약 실무에서는 계약이행보증금과는 별도로 하자보수보증금을 예치하게 하거나, 계약서에 하자보수 절차와 기한을 구체적으로 규정해 두는 경우가 많습니다. 하자가 발생하면 발주기관은 우선 서면(공문)으로 하자 내용과 보수를 요청할 상당한 기간을 명시해 통지하고, 사업자가 이에 응하지 않을 때 손해배상 청구나 하자보수보증금을 통한 비용 충당으로 넘어가는 절차를 밟는 것이 일반적입니다. 통지와 협의 과정을 문서로 남겨두는 것이, 1년의 하자담보책임기간 내에 하자가 발생했다는 사실과 사업자에게 보수 기회를 부여했다는 사실을 함께 입증하는 데 도움이 됩니다.
하자를 발견했다면 상당한 기간을 정한 서면 통지로 하자보수를 먼저 요청하고, 그 대응 경과를 기록해 두는 것이 이후 손해배상이나 채무불이행 책임을 다투는 단계에서도 핵심 증거가 된다.
자주 묻는 질문
Q. 공공 SW사업 하자담보책임기간 1년은 어디에 근거한 규정인가요?
A. 소프트웨어 진흥법 제60조 제1항에 규정되어 있습니다. 사업을 종료한 날, 즉 시험 및 검사를 수행하여 최종 소프트웨어 산출물을 인도한 날부터 1년 이내에 발생한 하자에 대하여 사업자가 담보책임을 진다고 정하고 있습니다.
Q. 인도 후 1년이 지나 발견된 하자는 전혀 배상받을 수 없나요?
A. 소프트웨어 진흥법상 하자담보책임은 소멸하지만, 대법원 2020다201156 판결에 따라 채무불이행에 기한 손해배상청구권(민법 제390조)이 별도로 성립할 수 있습니다. 다만 이때는 발주기관이 사업자의 귀책사유를 증명해야 하고, 소멸시효도 별도로 계산합니다.
Q. 발주기관이 제공한 자료가 잘못되어 생긴 오류도 사업자가 책임지나요?
A. 원칙적으로는 면책됩니다. 다만 사업자가 그 자료나 지시의 부적절함을 사업 진행 중 알았음에도 발주기관에 알리지 않았다면 면책되지 않으므로, 문제를 인지한 즉시 서면으로 통지해 두어야 합니다.
Q. 분석·설계를 따로 발주한 경우에도 하자담보책임 기간이 똑같이 1년인가요?
A. 소프트웨어 진흥법 제44조 제3항에 따라 분석·설계 사업을 분리발주한 경우에는 제60조 제1항 단서에 따라 계약당사자 간에 하자담보책임을 달리 정할 수 있습니다. 계약서에 이 부분이 어떻게 규정되어 있는지 확인이 필요합니다.
Q. '최종 산출물 인도일'이 실제 납품일과 다르면 어느 쪽이 기준인가요?
A. 법문상 기준은 단순 납품일이 아니라 시험 및 검사를 수행하여 최종 산출물을 인도한 날, 즉 검수 절차가 마무리된 날입니다. 계약서의 검수 조항과 검수확인서 발급일을 확인해 실제 기산점을 특정해야 합니다.
Q. 하자를 발견하면 가장 먼저 무엇을 해야 하나요?
A. 민법 제667조 제1항에 따라 상당한 기간을 정해 서면으로 하자보수를 청구하는 것이 우선입니다. 사업자가 이에 응하지 않을 때 손해배상 청구나 하자보수보증금을 통한 비용 충당 등 다음 단계로 넘어가게 됩니다.
맺음말
공공 SW사업의 하자담보책임은 소프트웨어 진흥법 제60조에 따라 최종 산출물을 인도한 날, 즉 시험과 검사를 마친 검수일부터 1년으로 정해져 있습니다. 이 1년이라는 기간과 그 기산점을 정확히 특정하는 일, 그리고 발주자 제공 자료·지시로 인한 면책과 그 한계, 분리발주 시의 특칙까지 함께 살펴야 실제 분쟁에서 자신의 위치를 제대로 파악할 수 있습니다.
1년이 지났다고 모든 책임 논의가 끝나는 것도 아닙니다. 채무불이행책임이 경합적으로 성립할 수 있다는 대법원 판례의 법리까지 감안하면, 하자담보책임기간 도과 여부만으로 결론을 단정하기보다는 계약서와 검수 기록, 하자 발생·통지 경위를 함께 정리해 판단하는 것이 필요합니다.
조력이 필요하시면 강대현 대표변호사에게 연락주십시오. 신속히 도와드리겠습니다.
의뢰인을 위한 최선의 전략을 끊임없이 고민합니다.
로톡의 모든 콘텐츠는 저작권법의 보호를 받습니다.
콘텐츠 내용에 대한 무단 복제 및 전재를 금지하며, 위반 시 민형사상 책임을 질 수 있습니다.
