상향식과 하향식으로 설계하는 소프트웨어 비용산정
상향식·하향식 소프트웨어 비용산정의 산정 근거와 적용 시점, 하이브리드 활용 방식 및 비용 관리 고려사항을 정리한다.
2026-08-14 · 최초 발행 2025-05-23
비용을 어디서부터 쌓을 것인가
소프트웨어 프로젝트의 비용은 산정 출발점에 따라 결과의 성격이 달라진다. 세부 작업을 먼저 정의해 합산하는 상향식(Bottom-up)과, 전체 프로젝트 규모를 먼저 판단한 뒤 하위 영역에 배분하는 하향식(Top-down)이 대표적이다.
두 방식은 경쟁 관계라기보다 확보된 정보의 수준과 프로젝트 시점에 맞춰 선택하거나 함께 활용할 수 있는 방법이다.
세부 작업을 합산하는 상향식 산정
상향식 산정은 프로젝트의 최소 작업 단위부터 비용을 계산한 뒤 상위 단계로 합쳐 전체 비용을 구한다. 이를 위해 WBS(Work Breakdown Structure)로 작업을 충분히 분해해야 하며, 분할과정복(Divide and Conquer) 방식으로 상세 수준의 추정을 전체 프로젝트 비용으로 확장한다.
산정에는 코드량, 기능 규모, 프로젝트 유형 등을 활용할 수 있다.
- LOC(Lines of Code) 기반 산정: 개발할 코드 라인 수를 예측해 비용을 산정한다. 예를 들어
10,000 LOC × 개발자 시간당 생산성(30 LOC/hour) × 시간당 비용($50) = 총 비용으로 계산할 수 있다. - Function Point 기법: 기능 단위의 복잡도를 측정해 비용을 산정한다. 내부논리파일, 외부연계파일, 외부입력, 외부출력, 외부조회 등을 고려한다.
- COCOMO(Constructive Cost Model): 프로젝트 유형별 특성을 반영하는 수학적 모델이다. 기본형은
Effort = a × (KLOC)^b이며,a,b는 프로젝트 유형에 따른 상수다.
이 방식은 작업별 비용 근거를 확인하기 쉽고, 세부 작업의 책임 범위도 분명해진다. 리스크를 이른 시점에 발견하고 대응하기에도 유리하다. 반면 작업을 상세하게 분해하는 데 시간과 노력이 들며, 기획 초기처럼 요구사항이 충분하지 않은 단계에서는 적용이 어렵다. 빠진 작업이 있으면 전체 비용이 과소 산정될 위험도 있다.
금융권 차세대 시스템 구축에서는 계좌관리, 거래처리, 보고서 같은 모듈의 세부 기능을 정의하고, 기능별 복잡도에 따라 개발 공수를 산정한 뒤 합산해 전체 비용을 도출할 수 있다.
전체 규모에서 시작하는 하향식 산정
하향식 산정은 전체 프로젝트의 규모와 비용을 먼저 추정한 다음, 이를 하위 작업이나 개발 영역에 할당하는 방식이다. 과거 유사 프로젝트 경험과 전문가의 지식이 주요 근거가 되며, 참여자의 경험과 통찰이 산정 정확도에 영향을 미친다.
초기 기획 단계처럼 상세 정보가 제한된 상황에서도 빠르게 견적을 낼 수 있다는 점이 특징이다.
- 전문가 판단법(Expert Judgment): 경험 많은 전문가의 지식과 판단으로 비용을 추정한다. 신속하지만 주관적 요소가 포함될 수 있다.
- 델파이 기법(Delphi Technique): 여러 전문가의 의견을 수렴해 합의를 도출한다. 익명성을 보장해 의견 편향을 줄이고, 반복적인 피드백으로 비용 산정을 정제한다.
- 유사 프로젝트 비교법(Analogy Method): 과거 유사 프로젝트의 실제 비용 데이터를 활용하고, 차이점을 반영하는 조정 계수를 적용한다.
하향식은 빠른 견적과 경험에 기반한 현실적인 예측에 강점이 있다. 전문가가 숨겨진 리스크를 고려할 수도 있고, 제한된 정보만으로도 적용할 수 있다. 다만 전문가 의존도가 높아 주관적 판단이 개입될 수 있으며, 작업 단위별 비용을 파악하기 어렵다. 근거 문서화가 부족하면 설명력도 약해지고, 전문가 가용성 역시 제약이 될 수 있다.
공공기관 웹 포털 재구축에서는 유사 규모의 포털 개발 경험이 있는 전문가 그룹이 델파이 기법으로 초기 비용을 산정한 뒤, 개발 영역별로 비용을 배분하는 방식을 적용할 수 있다.
프로젝트 시점에 따라 방식을 연결한다
| 구분 | 상향식 | 하향식 |
|---|---|---|
| 시작점 | 세부 작업 단위 | 전체 프로젝트 |
| 기반 | 수학적 모델, 코드량 | 경험, 전문가 판단 |
| 적합 시점 | 요구사항 정의 후 | 초기 기획 단계 |
| 정확도 | 높음 (세부적) | 중간 (경험 의존적) |
| 소요 시간 | 많음 | 적음 |
| 객관성 | 높음 | 중간~낮음 |
| 유연성 | 낮음 | 높음 |
실무에서는 프로젝트 초기에 하향식으로 빠르게 견적을 내고, 요구사항이 구체화되면 상향식으로 정교화할 수 있다. 두 결과를 비교해 차이를 분석하고 조정하는 하이브리드 접근도 가능하다.
대규모이거나 복잡한 프로젝트는 상향식을 중심에 두고 하향식 결과로 검증할 수 있다. 중소규모이면서 유사 프로젝트 경험이 많은 경우에는 하향식 적용이 가능하다. 혁신적이거나 전례가 없는 프로젝트는 두 방식을 병행하는 편이 적합하다.
정부·공공 영역은 명확한 근거가 필요해 상향식을 선호하는 반면, 민간·스타트업은 신속성이 중요해 하향식을 자주 활용한다.
산정 결과에 함께 남겨야 할 조건
견적에는 불확실성을 ±15% 등으로 명시하고, 비용산정 근거와 가정을 문서화해야 한다. 리스크 요소와 완충(buffer) 비용은 별도로 관리하며, 프로젝트 진행에 따라 정기적으로 비용을 재산정하고 갱신할 필요가 있다. 두 방식을 이용한 크로스체크도 비용 관리의 신뢰성을 높이는 방법이다.
비용에는 기술적 불확실성에 대한 리스크 프리미엄, 일정 지연 가능성에 대비한 완충 비용, 요구사항 변경 대응 비용도 반영해야 한다. 프로젝트 관리 오버헤드, 품질 보증 및 테스트, 지식 이전과 문서화, 교육 및 사용자 지원 같은 간접 비용도 빠뜨릴 수 없다.
개발 팀의 경험과 역량, 개발 환경 및 도구의 준비 상태, 이해관계자의 참여도와 의사결정 속도 역시 비용 산정의 전제가 된다. 산정은 숫자를 맞추는 작업만이 아니라, 이해관계자 간의 투명한 소통과 지속적인 재평가를 통해 프로젝트를 관리하는 과정이다.