💡 핵심 인사이트
상향식(Bottom-up) 비용 산정은 전체 프로젝트를 아주 작은 작업 단위로 쪼갠 뒤, 각각의 비용을 계산하여 위로 합산하는 방식입니다.
대표적으로 코드 라인 수(LOC)를 기반으로 하는 방법과 생명주기 단계별로 인력을 산정하는 방법이 있으며, 하향식보다 훨씬 정밀하지만 산정 자체에 많은 시간과 노력이 듭니다.


Ⅰ. 상향식 비용 산정의 개념

과거 경험에 의존해 전체를 한 번에 뭉뚱그려 예측하는 하향식(Top-down) 방식과 달리, 상향식 산정은 WBS(Work Breakdown Structure)를 통해 프로젝트를 세부 기능이나 작업 패키지로 분할합니다. 가장 작은 단위에서부터 인력과 시간을 계산하고, 이를 모두 더해 전체 프로젝트의 총비용과 일정을 도출합니다.

상향식 산정의 장단점

  • 장점: 세부적인 분석을 바탕으로 하므로 정확도가 높고, 개발자들의 실질적인 작업량이 반영됩니다.
  • 단점: 프로젝트 초기에 요구사항이 명확하지 않으면 사용하기 어렵고, 산정 작업 자체에 많은 비용(시간)이 소모됩니다.

Ⅱ. LOC (Line of Code) 기법

원시 코드 라인 수(LOC, 원시 프로그램 규모)를 기준으로 비용을 산정하는 가장 전통적이고 기초적인 기법입니다. (비관치, 낙관치, 기대치를 활용합니다.)

1. 예측치 (추정 LOC) 계산

각 기능별로 코드가 몇 줄이나 나올지 3가지 경우를 예측하여 가중 평균을 냅니다.

  • $E = (a + 4m + b) / 6$
    • $a$: 낙관치 (가장 적게 나올 때)
    • $b$: 비관치 (가장 많이 나올 때)
    • $m$: 기대치 (가장 가능성 높은 수치)

2. 주요 계산 공식

  • 노력(Man-Month, 인월) = 추정 LOC / 1인당 월평균 생산 코드 라인 수
  • 개발 기간 = 노력(Man-Month) / 투입 인원 수
  • 개발 비용 = 노력(Man-Month) × 1인당 월평균 인건비
  • 생산성 = 추정 LOC / 노력(Man-Month)
[예시 시나리오]
- 총 추정 LOC: 30,000 라인
- 개발자 1명당 월평균 생산성: 300 라인
- 투입 개발자: 5명

▶ 노력(M/M) = 30,000 / 300 = 100 인월(Man-Month)
▶ 개발 기간 = 100 인월 / 5명 = 20 개월

📢 섹션 요약 비유: LOC 기법은 벽돌집을 지을 때 **"필요한 전체 벽돌 개수를 예측한 뒤, 한 사람이 하루에 쌓는 벽돌 수로 나누어 총 공사 기간과 인건비를 계산하는 방식"**입니다.


Ⅲ. 단계별 인월 산정 기법 (Effort per Task)

LOC 기법이 코드 라인 수라는 하나의 기준만 쓴다면, 단계별 인월 산정 기법은 소프트웨어 생명주기(SDLC)의 각 단계별로 투입되는 인력과 기간을 따로 산정하는 방식입니다.

특징

  1. 단계별 특성 반영: 설계, 코딩, 테스트 등 각 단계마다 필요한 인력의 숙련도나 기간이 다르다는 점을 반영합니다.
  2. 보다 정밀함: 코딩 라인 수는 적지만 설계나 테스트가 극도로 복잡한 프로젝트(예: 우주선 제어 소프트웨어)의 비용을 훨씬 정확하게 산정할 수 있습니다.
개발 단계필요 인력 성향필요 노력(M/M) 예시
요구분석 / 설계고급 엔지니어, 아키텍트30 M/M
구현 (코딩)중급/초급 프로그래머40 M/M
테스트 / 통합QA 엔지니어, 도메인 전문가30 M/M
합계-100 M/M

📢 섹션 요약 비유: 단계별 인월 산정은 집을 지을 때 단순히 벽돌 수만 세는 것이 아니라, "설계도 그리는 건축가 1달, 벽돌 쌓는 인부 3달, 인테리어 디자이너 2달" 식으로 공정별로 필요한 전문가의 시간을 각각 계산하는 것입니다.