"앱 출시했는데, 그 다음은요?"
많은 창업자분들이 개발 완료 = 끝이라고 생각해요. 하지만 현실은 정반대입니다. 출시 후가 진짜 시작이에요.
버그 수정, OS 업데이트 대응, 새 기능 추가, 서버 관리... 이 모든 게 유지보수예요. 그리고 이건 개발비와 별개의 비용이 들어갑니다.
실제 상담 사례
"3,000만원 들여 앱 만들었는데, 유지보수 얘기를 안 했어요. 출시 후 버그가 터졌는데 개발사가 '계약 끝났다'면서 추가 비용 요구해서 결국 800만원 더 썼어요." — 배달 스타트업 대표
오늘은 유지보수 계약 시 꼭 확인해야 할 것들을 정리해드릴게요.
유지보수가 필요한 이유
"출시했는데 문제없이 잘 돌아가면 유지보수 필요 없는 거 아닌가요?"
아쉽게도 그렇지 않아요.
1. 버그는 반드시 발생해요
아무리 테스트를 많이 해도 100% 버그 없는 소프트웨어는 없어요. 실제 사용자들이 쓰기 시작하면 예상 못한 문제가 반드시 나옵니다.
- 특정 기기에서만 발생하는 오류
- 특정 조건에서만 발생하는 버그
- 사용자가 예상과 다르게 사용해서 생기는 문제
2. OS 업데이트 대응이 필요해요
애플과 구글은 매년 새로운 iOS/Android 버전을 출시해요. 이때마다:
- 기존 API가 deprecated(사용 중단 예정) 됨
- 새로운 권한 정책 적용
- UI 가이드라인 변경
업데이트 안 하면 앱이 스토어에서 내려가거나, 신규 기기에서 작동 안 할 수 있어요.
3. 보안 취약점 대응
보안 이슈는 예고 없이 발생해요.
- 사용하는 라이브러리의 보안 취약점 발견
- 새로운 해킹 기법 등장
- 개인정보보호법 개정
방치하면 해킹 당하거나 법적 문제가 생길 수 있습니다.
4. 기능 개선/추가
서비스는 살아있는 생물이에요. 사용자 피드백을 받아 계속 개선해야 합니다.
- 사용자 요청 기능 추가
- UX 개선
- 성능 최적화
무상 보증 기간 확인하기
대부분의 개발 계약에는 무상 하자 보수 기간이 포함되어 있어요.
일반적인 기준
- 최소: 1개월 (너무 짧음, 비추천)
- 보통: 3개월
- 양호: 6개월
- 좋음: 12개월
확인해야 할 것들
1. 기간 시작점
"출시일 기준"인지 "검수 완료일 기준"인지 명확히 하세요. 검수가 길어지면 실제 운영 기간이 짧아질 수 있어요.
2. 포함 범위
무상 기간에 어떤 작업이 포함되나요?
| 항목 | 일반적 포함 여부 |
|---|---|
| 버그 수정 | O (포함) |
| 기능 변경 | X (별도) |
| 기능 추가 | X (별도) |
| OS 업데이트 대응 | △ (협의) |
| 서버 증설 | X (별도) |
3. 대응 시간
무상 기간이라도 대응 시간이 명시되어 있어야 해요.
- 일반 버그: 영업일 기준 N일 이내
- 긴급 장애: N시간 이내
팁: "긴급 장애의 기준은 뭔가요?"라고 물어보세요. 서비스 전체 마비와 사소한 UI 오류는 다르게 취급되어야 합니다.
유지보수 계약 유형
무상 기간이 끝나면 별도 유지보수 계약을 맺어야 해요.
유형 1: 월정액 계약
매달 일정 금액을 내고, 정해진 시간만큼 작업을 받는 방식.
장점:
- 예산 예측 가능
- 우선순위 높은 대응
단점:
- 사용 안 해도 비용 발생
- 초과 시 추가 비용
비용 예시:
- 기본: 월 50
100만원 (월 816시간) - 중간: 월 100
200만원 (월 1632시간) - 프리미엄: 월 200만원+ (상시 대응)
유형 2: 건별 계약
필요할 때마다 요청하고, 건별로 견적받아 진행하는 방식.
장점:
- 필요할 때만 비용 발생
- 유연한 예산 운용
단점:
- 대응 속도 느릴 수 있음
- 매번 견적/협의 필요
비용 예시:
- 시간당: 5~15만원
- 일당: 30~80만원
유형 3: 연단위 계약
연간 계약으로 비용을 낮추는 방식.
장점:
- 월정액보다 10~20% 저렴
- 장기 파트너십
단점:
- 초기 비용 부담
- 개발사 변경 어려움
어떤 유형이 좋을까요?
| 상황 | 추천 유형 |
|---|---|
| 출시 초기, 변경 많음 | 월정액 |
| 안정기, 변경 적음 | 건별 |
| 규모가 큼, 상시 운영 | 월정액 + 연계약 |
| 예산이 매우 한정적 | 건별 |
계약서 필수 조항
유지보수 계약서에 반드시 들어가야 할 조항들이에요.
1. 업무 범위
구체적으로 어떤 작업이 포함되는지 명시해야 해요.
| 구분 | 항목 |
|---|---|
| 포함 | 버그 수정, 서버 모니터링, 정기 백업, 보안 패치 적용 |
| 불포함 | 신규 기능 개발, 디자인 변경, 대규모 리팩토링 |
경험에서 나온 팁
"버그 수정"의 정의를 명확히 하세요. 기획 변경으로 인한 수정은 버그가 아니에요. **"개발 당시 기획서와 다르게 동작하는 것"**만 버그로 정의하는 게 좋아요.
2. SLA (서비스 수준 협약)
대응 시간과 품질 기준을 명시합니다.
[장애 등급 및 대응 시간]
- 긴급(서비스 전체 장애): 2시간 이내 대응
- 높음(핵심 기능 장애): 4시간 이내 대응
- 보통(일부 기능 오류): 영업일 1일 이내 대응
- 낮음(경미한 이슈): 영업일 3일 이내 대응
3. 보고 체계
정기적인 보고가 있어야 서비스 상태를 파악할 수 있어요.
[정기 보고]
- 주간: 서버 상태, 에러 로그 요약
- 월간: 접속자 통계, 처리한 이슈 목록
4. 인수인계 조항
계약 종료 시 원활한 이전을 위해 필요합니다.
[계약 종료 시]
- 최신 소스코드 제공
- 서버 접근 권한 이전
- 기술 문서 제공
- 2주간 인수인계 지원
5. 해지 조건
[해지 조건]
- 30일 전 서면 통보로 해지 가능
- 해지 시 당월 비용 일할 계산
- 미처리 이슈 목록 전달
서버 비용 별도 확인
유지보수 비용과 별개로 서버 비용이 발생해요.
서버 비용 구성
1. 호스팅 비용
- AWS, GCP, 네이버 클라우드 등
- 월 5만원 ~ 수백만원 (규모에 따라)
2. 도메인 비용
- .com: 연 1~2만원
- .kr: 연 2~3만원
3. SSL 인증서
- 무료(Let's Encrypt) ~ 연 수십만원
4. 기타
- CDN (이미지/영상 전송)
- 이메일 서비스
- 푸시 알림 서비스
누가 관리하나요?
서버 관리 주체를 명확히 해야 해요.
옵션 1: 개발사 관리
- 장점: 편리함, 전문 관리
- 단점: 종속성, 추가 비용
옵션 2: 직접 관리
- 장점: 비용 절감, 독립성
- 단점: 기술 필요, 장애 시 직접 대응
옵션 3: 별도 인프라 업체
- 장점: 전문성, 개발사 독립
- 단점: 추가 계약 필요
추천: MVP 단계에서는 개발사 관리로 시작하고, 규모가 커지면 분리를 검토하세요.
유지보수 잘 받는 팁
1. 이슈 리포트 잘 작성하기
개발자가 빨리 해결하려면 정확한 정보가 필요해요.
좋은 이슈 리포트 예시:
[현상]
결제 버튼 클릭 시 아무 반응 없음
[재현 방법]
1. 상품 상세 페이지 진입
2. 수량 선택 후 '구매하기' 버튼 클릭
3. 결제 페이지에서 '결제하기' 버튼 클릭
4. 로딩만 돌고 다음 화면으로 안 넘어감
[환경]
- 기기: iPhone 14 Pro
- OS: iOS 17.1
- 앱 버전: 1.2.3
[첨부]
- 화면 녹화 영상
- 에러 스크린샷
2. 우선순위 명확히 하기
모든 이슈가 긴급하면 아무것도 긴급하지 않은 거예요.
- 긴급: 서비스 불가, 결제 오류, 데이터 손실
- 높음: 핵심 기능 오류
- 보통: 불편하지만 사용 가능
- 낮음: 개선 사항
3. 정기 미팅 활용하기
월정액 계약이라면 정기 미팅을 요청하세요.
- 이번 달 처리한 이슈 리뷰
- 다음 달 예정 작업 협의
- 서비스 개선 아이디어 논의
마치며
유지보수는 서비스의 생명줄이에요. 계약 단계에서 꼼꼼히 확인하지 않으면 나중에 큰 비용이 들거나, 서비스 운영 자체가 어려워질 수 있습니다.
핵심 체크포인트:
- 무상 기간 — 최소 3개월, 가능하면 6개월
- 대응 시간 — 긴급/일반 구분, SLA 명시
- 계약 유형 — 상황에 맞게 선택
- 업무 범위 — 포함/불포함 명확히
- 인수인계 — 계약 종료 시 대비
유지보수 계약이 고민되신다면, 무료 상담을 통해 전문가 조언을 받아보세요.
함께 읽으면 좋은 글
- 개발 계약서 필수 조항 - 초기 계약 체크리스트
- 서버 비용 가이드 - 유지보수와 별개의 인프라 비용
- 기술 부채란? - 유지보수가 필요한 이유
유지보수 비용 산정 기준
업계 표준 요금
| 서비스 규모 | 월정액 | 포함 시간 | 초과 단가 |
|---|---|---|---|
| 소규모 (MVP) | 30~80만 | 4~8시간 | 시간당 5~8만 |
| 중규모 | 80~150만 | 10~20시간 | 시간당 6~10만 |
| 대규모 | 150~300만 | 20~40시간 | 협의 |
연간 유지보수 예산 가이드
[초기 개발비 기준]
개발비 2,000만원 → 연간 유지보수 300~500만원 (15~25%)
개발비 5,000만원 → 연간 유지보수 600~1,000만원 (12~20%)
개발비 1억원 → 연간 유지보수 1,000~1,500만원 (10~15%)
SLA 작성 가이드
장애 등급 정의 예시
| 등급 | 정의 | 대응 시간 | 해결 목표 |
|---|---|---|---|
| P1 (긴급) | 서비스 전체 장애, 결제 불가 | 30분 | 4시간 |
| P2 (높음) | 핵심 기능 일부 장애 | 2시간 | 8시간 |
| P3 (보통) | 비핵심 기능 오류 | 4시간 | 24시간 |
| P4 (낮음) | UI 버그, 개선 요청 | 영업일 1일 | 영업일 5일 |
SLA 위반 시 보상
[페널티 예시]
P1 대응 시간 초과: 월 비용의 10% 환불
P1 해결 목표 초과: 월 비용의 20% 환불
월간 가용성 99% 미달: 비율에 따라 환불
유지보수 없이 운영하기
자체 운영 체크리스트
기술 역량이 있다면 자체 운영도 가능해요.
[자체 운영 필요 역량]
□ 서버 기본 관리 (SSH 접속, 로그 확인)
□ DB 백업/복원
□ 간단한 버그 수정 가능
□ 배포 프로세스 이해
□ 클라우드 콘솔 사용 가능
자체 운영 추천 도구
| 용도 | 도구 | 비용 |
|---|---|---|
| 모니터링 | UptimeRobot | 무료 |
| 에러 추적 | Sentry | 무료 티어 |
| 로그 관리 | Papertrail | 무료 티어 |
| 백업 | AWS Backup | 사용량 기반 |
| 알림 | Slack Webhook | 무료 |
유지보수 분쟁 사례와 예방
사례 1: "이건 버그가 아니에요"
[상황]
클라이언트: "이 기능 안 돼요!"
개발사: "원래 그렇게 설계됐어요"
[원인]
버그와 기능 변경의 기준이 불명확
[예방]
- 기획서/요구사항 문서 보관
- "버그"의 정의 계약서에 명시
- "기획대로 동작하지 않는 것" = 버그
사례 2: 대응이 너무 느려요
[상황]
긴급 장애인데 연락이 안 됨
주말에 서비스 마비
[원인]
긴급 연락망 부재, 주말 대응 미포함
[예방]
- 긴급 연락 채널 별도 설정
- 주말/공휴일 대응 범위 명시
- 콜 당번 체계 확인
사례 3: 비용 폭탄
[상황]
"간단한 수정"이라며 추가 비용 청구
월 유지보수비 2배로 증가
[원인]
포함 범위 불명확
초과 시간 기준 모호
[예방]
- 포함 작업 목록 상세화
- 초과 시 사전 협의 조항
- 월간 사용 시간 리포트 요청
유지보수 계약서 필수 조항
체크리스트
[필수 조항]
□ 서비스 범위 (포함/불포함 명시)
□ SLA (대응 시간, 해결 목표)
□ 비용 및 결제 조건
□ 초과 비용 산정 기준
□ 보고 체계 (주간/월간)
□ 계약 기간 및 갱신 조건
□ 해지 조건 및 절차
□ 인수인계 의무
□ 비밀유지
□ 면책 조항
Photo by Unsplash