COCOMO 비용 산정 정리, 유기형·반분리형·내장형 계수와 32KLOC 노력·기간 계산 (정보처리기사)

프로젝트를 시작하기 전에 “몇 명이 몇 달 일해야 하나”를 대략 가늠하는 일이 소프트웨어 비용 산정이다. 정보처리기사에서는 COCOMO의 세 가지 모드와 계수, 기능점수, 델파이 같은 산정 기법의 구분이 단골이고, 실기에서는 KLOC가 주어졌을 때 노력과 기간을 계산하게 하는 문제도 나온다. 수식 자체는 단순하니 계수를 정확히 외워 두자.

비용 산정 기법은 규모를 기준으로 노력을 추정한다

대표 기법은 크게 세 부류이다. 전문가 판단이나 델파이처럼 사람의 경험을 쓰는 방식, COCOMO나 Putnam처럼 코드 규모(LOC)를 입력으로 수식을 쓰는 방식, 기능점수(FP)처럼 입력·출력·조회·내부 논리 파일·외부 인터페이스 파일로 기능량을 세는 방식이다. 방식마다 필요한 정보가 다르므로 개발 초기에는 기능점수나 전문가 판단이, 규모가 정해진 뒤에는 COCOMO가 어울린다.

기본 COCOMO는 규모의 거듭제곱으로 노력을 구하고 다시 기간을 구한다

COCOMO는 Boehm이 제안한 모델로, 기본형은 노력 E = a × (KLOC)^b 인월, 개발 기간 D = c × E^d 개월로 계산한다. 계수는 프로젝트 성격에 따라 세 모드로 나뉜다.

모드 특징 a b c d
유기형(Organic) 소규모, 익숙한 업무, 팀 경험 풍부 2.4 1.05 2.5 0.38
반분리형(Semi-detached) 중간 규모, 경험이 섞인 팀 3.0 1.12 2.5 0.35
내장형(Embedded) 하드웨어·제약이 큰 복잡한 시스템 3.6 1.20 2.5 0.32

예시: 32 KLOC 프로젝트의 노력은 유기형 91.3, 내장형 230.4 인월이다

유기형이라면 E = 2.4 × 32^1.05 ≈ 91.3 인월, 기간 D = 2.5 × 91.3^0.38 ≈ 13.9개월이고, 평균 투입 인원은 E / D ≈ 6.6명이다. 반분리형은 E ≈ 145.5 인월, D ≈ 14.3개월, 약 10.2명이다. 내장형은 E ≈ 230.4 인월, D ≈ 14.3개월, 약 16.2명이다. 규모가 같아도 모드에 따라 노력이 두 배 넘게 차이 나는 것을 볼 수 있다. 값은 파이썬으로 검산했다. 지수 b가 1보다 크므로 규모가 커질수록 생산성이 떨어지는 규모의 불경제가 반영된다.

유기형, 반분리형, 내장형 COCOMO의 규모 대비 노력 곡선과 32KLOC 지점을 보여주는 그래프
그림. 기본 COCOMO의 규모 대비 노력(개념도).

모델마다 입력과 한계가 다르다

기법 원리 장점 한계
COCOMO(기본) KLOC에 계수를 곱해 노력·기간 산정 수식이 명확하고 모드 비교가 쉽다 초기에 KLOC를 알기 어렵다
COCOMO II 객체 점수·비용 요인 등으로 확장 현대 개발 방식에 맞춤 요인 평가가 주관적
Putnam Rayleigh 분포로 인력 투입 곡선 모델링 인력 분포와 일정을 함께 본다 기간 압축 시 노력이 급증
기능점수(FP) 기능의 복잡도로 규모 산정 코드 언어와 무관 점수 계산에 숙련이 필요
델파이 전문가 의견을 반복 취합 자료가 부족해도 가능 시간이 걸리고 주관적

답안에는 수식과 모드 구분, 한계를 함께 적는다

서술형은 산정 기법 분류 → COCOMO 수식과 세 모드 → 규모의 불경제 → 한계 순으로 쓴다. 실무에서는 한 가지 기법만 믿지 않고 기능점수와 COCOMO처럼 서로 다른 방식으로 산정해 범위를 잡는다. 계산한 인월을 그대로 인원과 기간으로 나누면 안 된다는 점도 중요하다. 인원을 늘려도 소통 비용이 늘어 기간이 비례해 줄지 않는다(브룩스의 법칙).

실전 팁으로, 계산기 사용 가능 여부와 상관없이 수식을 단계별로 적는 것이 안전하다. 먼저 KLOC 값을 거듭제곱하고, 계수를 곱해 노력을 구한 다음 그 값을 다시 거듭제곱해 기간을 구한다. 평균 인원은 노력을 기간으로 나누므로 단위가 인월과 개월임을 확인한다. 모드를 고르는 문제에서는 하드웨어 제약과 요구사항 변경이 큰 시스템이 내장형이라는 점을 기억하자.

시험 직전 한 줄 요약

기본 COCOMO는 E = a × KLOC^b, D = c × E^d이고, 유기형 2.4·1.05, 반분리형 3.0·1.12, 내장형 3.6·1.20으로 모드가 복잡할수록 같은 규모에서 노력이 커진다.

이 글은 학습용 정리이며 실제 시험 문항과 다를 수 있다. 출제 기준은 큐넷·KISA·한국데이터산업진흥원 등 공식 공지를 확인하라. 그림은 설명용 예시 데이터로 그린 개념도이며 실측 데이터가 아니다.

Leave a Comment