핵심 인사이트

  1. COCOMO(Constructive Cost Model)는 Barry Boehm이 1981년 제안한 소프트웨어 개발 비용 추정 모델 — 소스 코드 라인 수(KLOC)를 기반으로 개발 공수(Person-Month)와 일정(Duration)을 계산하며, 프로젝트 규모와 유형에 따라 Basic→Intermediate→Detailed 3단계로 구성된다.
  2. COCOMO II(1995)는 객체 지향과 재사용 기반 개발을 반영한 현대화 버전 — KLOC 대신 기능 점수(Function Point)와 객체 점수(Object Point)를 지원하고, 22개 비용 드라이버(Cost Driver)로 보정 계수를 계산하는 더 정교한 모델이다.
  3. COCOMO의 본질적 한계는 추정 정확도 — 동일 KLOC라도 언어, 팀 역량, 도메인 복잡도에 따라 실제 비용이 3~10배 차이날 수 있으며, COCOMO는 역사 데이터 없이는 ±50% 이상 오차가 일반적이다.

Ⅰ. COCOMO 기본 모델

COCOMO Basic 모델:

공수(Effort) = a × (KLOC)^b
기간(Duration) = c × (Effort)^d

프로젝트 유형:

Organic (소규모, 친숙한 환경):
  팀 < 5명, KLOC < 50
  a=2.4, b=1.05, c=2.5, d=0.38
  
  예: 부서 내 단순 데이터 관리 시스템

Semi-Detached (중간 규모, 혼합 경험):
  팀 5~15명, KLOC < 300
  a=3.0, b=1.12, c=2.5, d=0.35
  
  예: 중형 트랜잭션 처리 시스템

Embedded (엄격한 제약, 복잡한 하드웨어):
  대규모, 실시간, 안전 필수
  a=3.6, b=1.20, c=2.5, d=0.32
  
  예: 항공 제어 시스템, 의료 기기

계산 예시 (Organic, 50 KLOC):
  Effort = 2.4 × (50)^1.05
         = 2.4 × 55.18
         = 132.4 PM (Person-Month)
  
  Duration = 2.5 × (132.4)^0.38
           = 2.5 × 12.8
           = 32개월
  
  팀 크기 = 132.4 / 32 ≈ 4.1명

한계:
  KLOC를 사전에 정확히 예측 어려움
  모든 언어/팀에 동일 계수 적용의 부적절함
  요구사항 변경 반영 어려움

📢 섹션 요약 비유: COCOMO는 건설 공사 적산 — "지을 평수(KLOC) × 공사 단가 = 공사비(공수)". 간단하지만 내부 마감재(언어, 팀)에 따라 단가가 크게 다를 수 있어요!


Ⅱ. COCOMO Intermediate와 비용 드라이버

COCOMO Intermediate:

공수 = a × (KLOC)^b × EAF

EAF (Effort Adjustment Factor):
  15개 비용 드라이버의 곱
  각 드라이버: 0.70 ~ 1.65 값

비용 드라이버 범주:

제품 속성:
  RELY (신뢰성 요구): 1.0~1.40
  DATA (DB 크기): 0.94~1.16
  CPLX (복잡도): 0.70~1.65

하드웨어 속성:
  TIME (실행 시간 제약): 1.0~1.66
  STOR (메모리 제약): 1.0~1.56
  VIRT (가상 기계 변동성): 0.87~1.30

인적 속성:
  ACAP (분석가 역량): 1.46~0.71
  AEXP (경험): 1.29~0.82
  PCAP (프로그래머 역량): 1.42~0.70
  LEXP (언어 경험): 1.14~0.95

프로젝트 속성:
  MODP (현대 개발 방법): 1.24~0.82
  TOOL (소프트웨어 도구): 1.24~0.83
  SCED (일정 압박): 1.23~1.10

EAF 계산 예:
  신뢰성 높음 (RELY=1.40) ×
  분석가 매우 우수 (ACAP=0.71) ×
  프로그래머 매우 우수 (PCAP=0.70) ×
  현대 방법 (MODP=0.82) ×
  좋은 도구 (TOOL=0.83)
  = 1.40 × 0.71 × 0.70 × 0.82 × 0.83 ≈ 0.47
  
  기본 공수의 47%만 필요
  → 팀 역량이 비용에 미치는 엄청난 영향!

📢 섹션 요약 비유: EAF는 공사 조건 보정 — 기본 공사비에 "특수 자재(신뢰성)×숙련 기술자(ACAP)×좋은 장비(도구)"를 곱해서 실제 비용 계산. 최고 팀은 절반 비용!


Ⅲ. COCOMO II

COCOMO II (1995, USC-CSE):

동기:
  COCOMO I: 1970s-1980s 개발 환경 기반
  1990s: 객체 지향, 재사용, COTS(상용 컴포넌트)
  → 새 추정 기법 필요

COCOMO II 모델 계층:

1. 응용 합성 모델 (Application Composition):
  프로토타입 단계
  Object Point 기반
  COTS 재사용 고려

2. 초기 설계 모델 (Early Design):
  기능 점수 또는 KLOC 기반
  7개 비용 드라이버 (간략화)

3. 후기 아키텍처 모델 (Post-Architecture):
  상세 설계 후
  17개 비용 드라이버
  지수(b) = B + 0.01 × Σ(5개 척도 인자)

COCOMO II 공수 공식:
  Effort = A × Size^E × Πi(EMi)
  
  A: 경험적 상수 (≈2.94)
  Size: KLOC 또는 FP 변환값
  E: 지수 (1.01 ~ 1.26)
  EMi: 비용 드라이버들의 곱

지수(E) 결정 척도 인자:
  선례성 (PREC): 유사 프로젝트 경험
  개발 유연성 (FLEX): 요구사항 변경 가능성
  아키텍처/위험 해결 (RESL)
  팀 응집성 (TEAM)
  프로세스 성숙도 (PMAT): CMMI 레벨

기능 점수 → KLOC 변환:
  Java: 1 FP ≈ 46 LOC
  C: 1 FP ≈ 128 LOC
  Python: 1 FP ≈ 21 LOC

📢 섹션 요약 비유: COCOMO II는 업그레이드된 설계 소프트웨어 — 2D 도면(COCOMO I) 대신 3D BIM 모델링. 재사용 자재, 현대 공법, 팀 성숙도까지 반영한 정교한 적산!


Ⅳ. 다른 추정 기법과 비교

비용 추정 기법 비교:

1. COCOMO (매개변수 모델):
  수식 기반, KLOC/FP 입력
  장점: 객관적, 계산 빠름
  단점: 초기 정확도 낮음, 역사 데이터 필요

2. 전문가 판단 (Expert Judgment):
  델파이 기법: 복수 전문가 반복 합의
  장점: 경험 반영, 도메인 지식
  단점: 주관적, 편향 가능

3. 유추 추정 (Analogy-Based):
  과거 유사 프로젝트와 비교
  ISBSG 데이터베이스 활용
  장점: 실제 경험 기반
  단점: 유사 프로젝트 필요

4. 기능 점수 (Function Point):
  기능의 복잡도 측정
  IFPUG 표준
  장점: 언어 독립적
  단점: 측정 주관적 (약 12%)

5. 계획 포커 (Planning Poker):
  애자일 스토리 포인트
  팀 합의 방식
  장점: 빠름, 팀 참여
  단점: 상대적 측정 (절대값 아님)

추정 vs 실제 오차:
  초기 요구사항 단계: ±50~200%
  기능 명세 완료: ±20~50%
  설계 완료: ±10~25%
  
  콘 오브 언서틴티(Cone of Uncertainty):
  프로젝트 진행 → 추정 정확도 향상
  초기 추정 = 범위(Range), 아님 정확값

📢 섹션 요약 비유: 비용 추정 기법은 여행 경비 계산 — 가이드북(COCOMO), 경험자 물어보기(전문가), 지난 여행 비교(유추), 팀 토론(플래닝 포커). 초기엔 어느 방법도 정확도 낮아요!


Ⅴ. 실무 시나리오 — 공공 SI 프로젝트 견적

공공기관 ERP 구축 사업 비용 추정:

발주: 지방자치단체
사업: 행정정보시스템 재구축
규모: 10만 라인 (100 KLOC)
기간: 12개월 목표

COCOMO II (Post-Architecture) 적용:

비용 드라이버 분석:
  RELY(신뢰성): 매우 높음 (1.26) - 공공 업무
  CPLX(복잡도): 높음 (1.17) - 복잡한 행정 로직
  ACAP(분석가): 높음 (0.85) - 경험 있는 분석가
  PCAP(프로그래머): 보통 (1.00)
  TOOL(도구): 높음 (0.90) - 현대 IDE/DevOps
  SCED(일정): 높음 압박 (1.14) - 예산 주기
  
  EAF ≈ 1.26 × 1.17 × 0.85 × 1.00 × 0.90 × 1.14 ≈ 1.28

COCOMO II 계산:
  E = 1.01 + 0.01 × 15 = 1.16 (척도 인자 합=15)
  Effort = 2.94 × (100)^1.16 × 1.28
         = 2.94 × 184 × 1.28
         ≈ 692 PM

  Duration = 3.67 × (692)^0.28 ≈ 30개월

12개월 목표 달성 방안:
  팀 692/12 ≈ 58명 필요
  
  현실적 재검토:
  - 일정 14개월로 조정 → 팀 50명
  - 또는 범위 축소 (70 KLOC) → 공수 450 PM
  
  전문가 검증:
  COCOMO II 결과 ± 30% 범위 내
  유사 프로젝트 실적 비교
  
최종 견적 (3-Point Estimate):
  낙관: 480 PM (팀 역량 우수, 요구사항 안정)
  현실: 692 PM (COCOMO II 결과)
  비관: 900 PM (요구사항 변경, 인력 이탈)
  
  PERT 공수: (480+4×692+900)/6 = 692 PM

📢 섹션 요약 비유: 공공 ERP 견적 계산은 건물 공사 적산 — COCOMO II가 692 PM(약 58명×12개월) 산출. 발주처 요구(12개월)와 다르면? 범위 축소 또는 팀 증원으로 협상!


📌 관련 개념 맵

COCOMO 모델
+-- 버전
|   +-- COCOMO I (1981): Basic/Intermediate/Detailed
|   +-- COCOMO II (1995): 3단계 모델
+-- 입력
|   +-- KLOC (소스 코드 라인)
|   +-- 기능 점수 (FP)
|   +-- 비용 드라이버 (EAF)
+-- 출력
|   +-- 공수 (Person-Month)
|   +-- 기간 (Duration)
|   +-- 팀 크기
+-- 대안 기법
    +-- 델파이, 유추, 기능 점수
    +-- 플래닝 포커 (애자일)

📈 관련 키워드 및 발전 흐름도

[초기 비용 추정 (1960s)]
LOC 기반 단순 추정
경험 의존
      |
      v
[COCOMO I (1981)]
Barry Boehm
63개 프로젝트 데이터 기반
      |
      v
[기능 점수 (1979)]
IFPUG FPA 표준화
언어 독립적 측정
      |
      v
[COCOMO II (1995)]
객체 지향, 재사용 반영
USC-CSE 연구
      |
      v
[현재: 하이브리드 추정]
COCOMO + 전문가 + 애자일
ML 기반 추정 연구

👶 어린이를 위한 3줄 비유 설명

  1. COCOMO는 공사 견적서 — 지을 집 크기(KLOC)×공사 단가 = 공사비(공수). 간단하지만 숙련공(팀 역량)에 따라 단가가 달라요!
  2. EAF는 보정 계수 — 기본 공사비에 "어려운 현장(복잡도)×명장(ACAP)×현대 장비(도구)" 곱해서 실제 비용 산출. 명장 팀이면 절반 비용!
  3. 추정 오차는 콘 모양 — 프로젝트 초기엔 ±50%, 설계 완료 후 ±10%. 처음엔 범위로, 나중에 점으로 좁혀지는 불확실성!