개발 중 기능을 추가하면 비용은 어떻게 계산될까?
웹개발 프로젝트를 시작할 때 모든 기능을 완벽하게 예상하기는 어렵습니다.
웹개발 프로젝트를 시작할 때 모든 기능을 완벽하게 예상하기는 어렵습니다.
개발된 화면을 직접 확인하면서 새로운 아이디어가 생기거나, 실제 운영 방식을 구체화하면서 필요한 기능이 추가될 수 있습니다.
예를 들면 다음과 같습니다.
- 회원 검색 기능 추가
- 관리자 엑셀 다운로드 추가
- 카카오 알림톡 연동
- 기업 회원 권한 추가
- 결제 취소 기능 추가
- 모바일 화면 구조 변경
- 기존 기능의 동작 방식 변경
의뢰사 입장에서는 작은 수정처럼 보일 수 있지만, 기능 하나가 화면과 서버, 데이터베이스, 관리자, 테스트에 모두 영향을 줄 수도 있습니다.
따라서 개발 중 추가 요청이 발생하면 다음을 먼저 구분해야 합니다.
기존 합의 범위의 오류인가, 단순 수정인가, 기능 변경인가, 새로운 기능 추가인가?
모든 추가 요청이 추가 비용은 아닙니다
요청 유형에 따라 처리 방식이 달라질 수 있습니다.
1. 오류 수정
합의한 기능이 약속된 기준대로 작동하지 않는 경우입니다.
예시:
- 로그인 버튼을 눌러도 로그인되지 않음
- 결제 완료 후 이용 권한이 지급되지 않음
- 관리자에서 저장한 내용이 홈페이지에 반영되지 않음
- 모바일 화면이 깨짐
- 문의 이메일이 발송되지 않음
일반적으로 개발 업체의 오류 수정 범위에 포함될 수 있습니다.
2. 누락된 요구사항 반영
계약서나 기능 정의서에 포함되어 있지만 개발 결과에서 빠진 경우입니다.
예시:
계약 범위:
회원 목록에서 이름·이메일 검색 제공
현재 결과:
목록만 있고 검색 기능이 없음
이 경우에는 새로운 기능 추가보다 기존 범위의 누락으로 볼 가능성이 높습니다.
3. 단순 수정
기존 구조를 크게 바꾸지 않는 조정입니다.
예시:
- 버튼 문구 변경
- 이미지 교체
- 글자 크기 조정
- 항목 순서 변경
- 색상 수정
- 설명 문구 추가
수정 횟수와 범위에 따라 기존 계약에 포함될 수도 있고, 반복되면 추가 비용이 발생할 수도 있습니다.
4. 기능 변경
이미 합의한 기능의 동작 방식을 바꾸는 경우입니다.
예시:
기존 합의
관리자가 회원가입을 승인한다.
변경 요청
기업 관리자가 직원을 초대하고, 운영 관리자가 기업만 승인한다.
기능 이름은 승인으로 비슷하지만 데이터와 권한 구조가 달라집니다.
기능 변경은 기존 작업의 일부를 다시 수정해야 하므로 추가 비용과 일정이 발생할 수 있습니다.
5. 새로운 기능 추가
기존 범위에 없던 기능을 추가하는 경우입니다.
- 정기결제
- 알림톡
- 소셜 로그인
- 엑셀 업로드
- 새로운 관리자 권한
- AI 생성
- 자동화
- 외부 API
- 통계 대시보드
새 기능은 별도 견적을 산정하는 것이 일반적입니다.
작은 기능인데 왜 비용이 클 수 있을까?
기능의 화면 크기보다 시스템에 미치는 영향을 봐야 합니다.
예를 들어 회원 상태 필터 하나 추가 요청을 생각해 보겠습니다.
단순해 보이지만 다음 작업이 필요할 수 있습니다.
- 상태 데이터 정의
- 기존 회원 데이터 변환
- 관리자 필터 UI
- 서버 검색 조건
- 데이터베이스 인덱스
- 엑셀 다운로드 반영
- 권한별 조회 제한
- 테스트
기존 구조가 준비되어 있다면 빠르게 추가할 수 있지만, 상태 자체가 없었다면 작업량이 커질 수 있습니다.
기능 추가 비용을 결정하는 요소
1. 화면 작업
- 새 페이지
- 팝업
- 입력창
- 목록
- 상세 화면
- 모바일 대응
- 로딩·오류 상태
2. 서버 로직
- 데이터 저장
- 계산
- 상태 변경
- 외부 API 호출
- 자동화
- 알림
- 권한 검사
3. 데이터베이스 변경
- 새로운 테이블
- 컬럼 추가
- 기존 데이터 변환
- 데이터 관계 변경
- 검색 최적화
- 마이그레이션
4. 관리자 기능
- 조회
- 수정
- 승인
- 삭제
- 검색과 필터
- 통계
- 엑셀
5. 기존 기능 수정
새 기능 때문에 이미 개발한 기능을 변경해야 할 수 있습니다.
- 회원가입
- 결제
- 메뉴
- 대시보드
- 알림
- 통계
- 권한
6. 테스트
- 정상 흐름
- 실패 흐름
- 모바일
- 권한별 테스트
- 기존 기능 영향
- 데이터 이전
7. 일정 영향
기능 하나를 추가하면 현재 진행 중인 작업이 중단되거나 순서가 변경될 수 있습니다.
추가 기능 자체의 작업 시간뿐 아니라 일정 재조정 비용도 고려될 수 있습니다.
추가 비용을 산정하는 방식
1. 기능별 고정 견적
추가할 기능을 정의한 뒤 금액과 일정을 고정합니다.
기업 직원 초대 기능
- 이메일 초대
- 초대 승인
- 직원 목록
- 권한 설정
- 관리자 조회
추가 비용: 300만 원
추가 기간: 2주
범위가 명확할 때 적합합니다.
2. 시간 단위 정산
실제 투입 시간에 따라 비용을 계산합니다.
시간당 8만 원
예상 작업 시간 20~30시간
기존 코드 수정이나 작은 요청이 여러 개 있을 때 사용할 수 있습니다.
3. 월 단위 또는 스프린트 단위
정해진 기간 동안 우선순위가 높은 기능을 순서대로 개발합니다.
- 2주 단위 스프린트
- 월 단위 개발
- 전담 개발자 투입
요구사항이 계속 변화하는 서비스에 적합할 수 있습니다.
4. 유지보수 시간 차감
월 유지보수 계약에 포함된 개발 시간에서 차감할 수 있습니다.
예시:
월 유지보수 20시간
문구·오류·소규모 기능 개선에 사용
초과 시간은 별도 단가 적용
다만 큰 기능은 별도 프로젝트로 분리될 수 있습니다.
기능 추가 절차
추가 요청은 다음 순서로 처리하는 것이 좋습니다.
1. 요청 내용 정리
기능 이름만 전달하지 말고 실제 사용 흐름을 설명합니다.
요청:
관리자에서 회원을 엑셀로 다운로드
필요 항목:
이름, 이메일, 가입일, 회원 상태
조건:
현재 검색과 필터 결과만 다운로드
사용자:
운영 관리자만 가능
2. 영향 분석
개발 업체가 다음을 검토합니다.
- 기존 구조로 가능한가?
- 데이터베이스 변경이 필요한가?
- 다른 기능에 영향을 주는가?
- 디자인이 필요한가?
- 외부 서비스가 필요한가?
- 일정은 얼마나 늘어나는가?
3. 비용과 일정 제안
추가 비용:
추가 기간:
변경되는 기존 일정:
포함 범위:
제외 범위:
4. 문서 합의
메신저 대화만으로 진행하기보다 변경 요청서나 추가 견적서로 기록합니다.
5. 개발과 검수
기존 기능 검수와 별도로 추가 기능의 완료 기준을 확인합니다.
변경 요청서 예시
변경 요청 번호:
요청 날짜:
요청자:
현재 기능:
변경하려는 내용:
변경 이유:
사용자:
관리자 기능:
필수 조건:
희망 일정:
개발 영향:
추가 비용:
추가 기간:
기존 일정 영향:
검수 기준:
의뢰사 승인:
개발 업체 승인:
기능 추가 시 일정이 늘어나는 이유
추가 기능 작업 시간만 더하면 된다고 생각하기 쉽습니다.
하지만 다음 과정이 함께 필요합니다.
- 요구사항 확인
- 화면 설계
- 디자인
- 개발
- 기존 기능 수정
- 테스트
- 피드백
- 재검수
- 배포
또한 기존 개발 일정 중간에 추가되면 담당자의 작업 순서를 다시 조정해야 합니다.
따라서 이틀짜리 기능이니 전체 일정도 이틀만 늘어난다고 단정하기는 어렵습니다.
기능을 추가해도 일정이 늘지 않을 수 있는 경우
다음 조건에서는 기존 일정 안에서 처리할 수도 있습니다.
- 다른 기능을 제외함
- 우선순위를 변경함
- 기존 범위 내 단순 조정임
- 일정에 여유가 있음
- 유지보수 시간으로 처리함
- 기능 구현이 매우 단순함
추가할 기능과 제외할 기능을 교환하는 방식도 사용할 수 있습니다.
기능 추가 요청이 반복되는 이유
1. 초기 요구사항이 추상적이었습니다
관리자가 회원을 관리한다.
관리의 범위가 불명확합니다.
- 조회
- 수정
- 삭제
- 승인
- 검색
- 엑셀
- 권한
- 활동 이력
초기 기능을 구체화할수록 추가 요청을 줄일 수 있습니다.
2. 관리자 기능을 늦게 생각했습니다
사용자 화면만 먼저 설계하면 운영 단계에서 필요한 기능이 뒤늦게 추가됩니다.
3. 실제 결과물을 늦게 확인했습니다
작동하는 화면을 중간에 봤다면 일찍 발견할 수 있는 요구가 마지막에 몰릴 수 있습니다.
4. 내부 의사결정자가 여러 명입니다
프로젝트 후반에 대표나 다른 부서의 요구가 추가될 수 있습니다.
초기에 주요 이해관계자의 의견을 정리하는 것이 좋습니다.
5. MVP와 최종 제품을 구분하지 않았습니다
첫 출시부터 모든 기능을 넣으려 하면 범위가 계속 확장될 수 있습니다.
추가 비용을 줄이는 방법
1. 필수·선택·추후 기능을 나눕니다
필수:
회원가입, 핵심 기능, 최소 관리자
선택:
소셜 로그인, 알림톡
추후:
AI 추천, 고급 통계
2. 완료 기준을 구체적으로 작성합니다
기능 이름이 아니라 실제 동작을 적습니다.
3. 중간 결과물을 자주 확인합니다
큰 구조 변경이 필요해지기 전에 피드백합니다.
4. 의뢰사 내부 의견을 취합합니다
여러 담당자의 요청을 한 명이 정리해서 전달합니다.
5. 변경 요청의 우선순위를 정합니다
- 출시 전 필수
- 출시 후 가능
- 개선 아이디어
- 보류
추가 요청에서 자주 생기는 오해
“버튼 하나만 추가하면 됩니다.”
버튼 뒤에서 어떤 데이터와 동작이 필요한지 확인해야 합니다.
“기존 데이터를 보여주기만 하면 됩니다.”
검색, 권한, 집계, 성능 처리가 필요할 수 있습니다.
“API만 연결하면 됩니다.”
인증, 오류, 데이터 변환, 사용량 제한이 필요할 수 있습니다.
“모바일 화면만 조금 고치면 됩니다.”
여러 화면과 기기 검수가 필요할 수 있습니다.
“관리자에 다운로드만 넣어 주세요.”
다운로드 대상과 필터, 파일 형식을 정해야 합니다.
계약서에 넣을 수 있는 변경 절차
의뢰사가 기존 범위를 변경하거나 새로운 기능을 요청하는 경우 개발 업체는 비용과 일정 영향을 검토해 안내한다.
양측이 추가 비용과 변경 일정을 문서로 합의한 후 작업을 진행한다.
기존 요구사항과 다른 오류 수정은 별도 비용 없이 처리하며, 새로운 기능과 동작 변경은 추가 범위로 판단할 수 있다.
실제 계약 문구는 프로젝트에 맞게 검토해야 합니다.
기능 추가 견적에서 확인할 항목
- 어떤 기능이 포함되는가?
- 기존 기능 중 무엇이 변경되는가?
- 디자인이 포함되는가?
- 관리자 기능이 포함되는가?
- 모바일 대응이 포함되는가?
- 데이터 이전이 필요한가?
- 외부 서비스 비용이 있는가?
- 기존 일정은 얼마나 변경되는가?
- 검수 기준은 무엇인가?
- 유지보수에 포함되는가?
마무리
개발 중 기능을 추가하는 것은 자연스러운 일입니다.
다만 모든 요청을 무상 수정이나 간단한 작업으로 처리할 수는 없습니다.
다음 네 가지를 먼저 구분하는 것이 중요합니다.
- 오류 수정
- 기존 범위의 누락
- 기능 변경
- 새로운 기능 추가
기능 추가 요청은 개발 전에 비용과 일정, 기존 기능에 미치는 영향을 확인하고 문서로 합의하는 것이 가장 안전합니다.
