비즈니스
홈페이지 제작 계약에서 하자보수를 청구할 수 있는 기간은 민법상 목적물을 인도받은 날로부터 1년이 기본입니다. 흔히 인용되는 "소프트웨어는 법으로 1년"이라는 말의 근거인 소프트웨어 진흥법 제60조는 국가기관과 체결한 계약에 적용되는 조항이라, 민간 제작 계약에 그대로 걸리지 않습니다. 견적 금액을 열 줄씩 검토하시는 만큼 계약서 뒷장도 함께 보셔야 하는 이유입니다.
견적서는 열 줄씩 따지고, 계약서 뒷장은 넘깁니다
제작 상담에서 가장 오래 이야기하는 항목은 언제나 금액과 일정입니다. 페이지 수, 기능 범위, 부가세 포함 여부까지 꼼꼼히 확인하시는 분들도, 계약서 뒷장에 있는 하자보수 조항은 대체로 그냥 넘어가십니다. 그런데 제작이 끝난 뒤 실제로 연락이 오가는 구간은 바로 그 조항이 다루는 구간입니다. 무엇이 무상 수정이고 무엇이 별도 비용인지, 언제까지 요청할 수 있는지가 여기서 갈립니다.
민법이 정한 기본값 — 인도받은 날로부터 1년
홈페이지 제작은 법적으로 도급 계약에 해당합니다. 일을 완성해 주기로 하고 그 대가를 받는 계약이라는 뜻입니다. 민법 제667조 제1항은 완성된 목적물이나 완성 전에 성취된 부분에 하자가 있으면 발주자가 상당한 기간을 정해 하자보수를 청구할 수 있다고 정합니다. 다만 하자가 중요하지 않으면서 보수에 과다한 비용이 드는 경우는 예외로 둡니다. 같은 조 제2항은 하자보수 대신, 또는 하자보수와 함께 손해배상을 청구할 수 있도록 하고 있습니다.
기간을 정한 조항은 민법 제670조입니다. 하자보수 청구, 손해배상 청구, 계약 해제는 목적물을 인도받은 날로부터 1년 내에 해야 하고, 인도가 필요 없는 경우에는 일이 종료한 날부터 계산합니다.
실무에서 먼저 걸리는 것은 기간이 아니라 기산점입니다. 홈페이지는 건물처럼 "인도받은 날"이 분명하지 않습니다. 라이브 오픈일인지, 최종 검수 완료일인지, 관리자 계정을 넘긴 날인지에 따라 1년의 출발선이 달라집니다. 그래서 계약서에는 기간보다 인도 시점을 한 줄로 특정하는 것이 먼저입니다.
소프트웨어 진흥법의 1년은 국가기관 계약 기준입니다
소프트웨어 진흥법 제60조도 1년을 말합니다. 다만 조문에는 "소프트웨어사업자는 국가기관등과 소프트웨어사업 계약을 체결한 경우"라는 조건이 붙어 있습니다. 공공 발주를 전제로 한 조항이라는 뜻입니다. 민간 제작 계약에는 계약 자유가 원칙이라 당사자가 정한 내용이 먼저 적용되고, 정하지 않은 부분에 민법 도급 규정이 들어옵니다. "법에 1년이라고 되어 있으니 굳이 안 적어도 된다"는 판단이 위험한 이유입니다. 적어 두지 않으면 결국 다투게 됩니다.
다만 이 조항에는 민간 계약서에 옮겨 쓸 만한 대목이 하나 더 있습니다. 발주자가 제공한 물품의 품질·규격이 기준에 맞지 않거나, 발주자의 지시에 따라 구축한 경우에는 사업자의 담보책임이 없다고 정하고 있습니다. 단서도 함께 있습니다. 그 물품이나 지시가 부적절하다는 것을 알면서도 알리지 않았다면 책임이 남습니다. 면책만 가져오고 단서를 빼면 한쪽에 치우친 계약서가 됩니다.
노코드 빌더로 만들면 하자가 세 갈래로 갈립니다
아임웹·식스샵·카페24 기반 제작에는 자체 개발과 다른 지점이 있습니다. 자체 개발이라면 코드 전체가 제작자 손에서 나오지만, 노코드 빌더로 만든 사이트는 구성 요소의 출처가 셋으로 나뉩니다.
첫째, 제작자가 만든 부분입니다. 커스텀 HTML 위젯, 식스샵 블록, 카페24 스킨 수정 코드처럼 직접 작성한 영역입니다. 여기서 생긴 오류는 제작자의 하자가 맞습니다.
둘째, 플랫폼 자체 영역입니다. 결제 모듈, 회원 기능, 게시판, 서버 가동률처럼 플랫폼이 제공하고 운영하는 부분입니다. 플랫폼이 사양을 바꾸거나 장애가 나면 사이트는 분명 "안 되는" 상태가 되지만, 제작자가 만든 결과물의 하자와는 성격이 다릅니다.
셋째, 발주자가 직접 손댄 부분입니다. 납품 후 관리자에서 직접 수정하시거나 다른 업체의 스크립트를 추가로 넣으시는 경우입니다.
문제는 화면을 보는 입장에서는 셋이 똑같이 "사이트가 안 된다"로 보인다는 점입니다. 계약서에 둘째와 셋째를 적어 두지 않으면 전부 첫째로 몰립니다. 하자보수 기간만 적는 대신, 플랫폼 자체 기능·사양 변경으로 인한 사항과 발주자가 직접 수정한 영역을 하자 범위에서 어떻게 다룰지 함께 적어 두시는 편이 좋습니다.
손해배상은 청구한 금액대로 인정되지 않습니다
계약이 틀어졌을 때 실제로 어떻게 정리되는지 보여주는 공개 사례가 있습니다. 한 회사가 프리랜서 개발자와 홈페이지 제작 계약을 맺었습니다. 총 대금은 900만 원, 계약금·중도금·잔금을 각 300만 원씩 나눈 구조였습니다. 약정 기한 안에 완료되지 않아 계약이 해제됐고, 발주 측은 이미 지급한 600만 원 반환과 손해배상 등을 합쳐 총 2,019만 7,746원을 청구했습니다.
조정 결과는 500만 원 분할 지급이었습니다. 미지급 시 연 20% 지연이자가 붙는 조건이었습니다. 청구액에서 크게 줄어든 이유는 판단 근거에 나옵니다. 발주 측이 손해로 주장한 사무실 임차료와 직원 급여, 기대이익 상실분은 상당인과관계가 없거나 입증이 부족하다고 봤습니다.
양쪽 모두 가져갈 시사점이 있습니다. 발주자 입장에서는 "이것 때문에 사업이 늦어져 손해를 봤다"는 주장이 그대로 인정되지 않는다는 것이고, 제작자 입장에서는 기한을 지키지 못하면 이미 받은 대금의 반환 위험이 실재한다는 것입니다. 계약서의 일정 조항이 하자보수 조항만큼 구체적이어야 하는 이유입니다.
계약서를 펴셨다면 네 가지만 확인하시면 됩니다. 첫째, 인도 시점이 언제로 적혀 있는지 — 1년의 출발선이 여기서 정해집니다. 둘째, 하자보수 기간이 명시돼 있는지 — 적지 않으면 민법 도급 규정으로 갑니다. 셋째, 하자의 범위에서 플랫폼 자체 기능과 발주자가 직접 수정한 영역을 구분했는지. 넷째, 오류를 고치는 무상 하자보수와 새 기능·콘텐츠를 바꾸는 유상 유지보수를 나눠 적었는지. 하자보수 조항은 분쟁에 대비하는 조항이라기보다, 분쟁 자체를 줄이는 조항에 가깝습니다.
누끼토끼는 아임웹·식스샵·카페24 세 플랫폼으로 홈페이지와 쇼핑몰을 제작하면서, 견적 단계에서 계약 범위와 납품 이후 책임 구분까지 함께 정리해 드리고 있습니다. 제작 실무와 계약 실무를 함께 다루는 칼럼과 강의도 이어서 운영하고 있으니 필요하실 때 참고해 주시기 바랍니다.