기능점수 FP로 소프트웨어 규모와 프로젝트 비용 산정하기
기능점수 FP의 측정 원리와 ILF·EIF·EI·EO·EQ 분류, UFP·VAF 계산 및 프로젝트 관리 활용 방법을 정리한다.
2026-08-14 · 최초 발행 2025-05-23
코드 줄 수 대신 기능을 기준으로 규모를 재는 방법
기능점수(Function Point, FP)는 사용자가 인식하는 소프트웨어 기능의 양을 측정하는 방법이다. 개발 언어에 따라 달라지는 LOC(Lines of Code)와 달리 기능적 규모를 기준으로 삼기 때문에, 비용과 일정 예측에 공통된 기준을 제공한다.
1979년 IBM의 앨런 알브레히트(Allan Albrecht)가 처음 제안했으며, ISO/IEC 14143-1로 국제 표준화되었다. FP는 소프트웨어 기능 규모를 객관적으로 파악하기 위한 방법론으로 쓰인다.
데이터와 트랜잭션으로 기능을 나눈다
FP 측정은 데이터 기능과 트랜잭션 기능을 구분하는 데서 시작한다.
데이터 기능에는 애플리케이션 내부에서 관리하는 내부 논리 파일(ILF: Internal Logical File)과, 다른 애플리케이션이 관리하지만 참조하는 외부 연계 파일(EIF: External Interface File)이 있다.
트랜잭션 기능은 애플리케이션 경계를 드나드는 처리 단위다. 외부 입력(EI: External Input), 외부 출력(EO: External Output), 외부 조회(EQ: External Inquiry)로 나눈다. 각 기능에는 낮음, 보통, 높음의 복잡도를 평가해 가중치를 부여한다.
애플리케이션 경계부터 최종 FP까지
먼저 측정 대상 애플리케이션의 경계를 정하고, 사용자 관점에서 구분할 수 있는 기능 단위로 나눈다. 경계가 정해져야 내부에서 유지하는 데이터와 외부에서 참조하는 데이터를 구분할 수 있다.
ILF는 애플리케이션이 유지하는 논리적 데이터 그룹이다. 고객 테이블, 상품 테이블, 주문 테이블이 이에 해당하며 복잡도에 따라 715의 가중치를 적용한다. EIF는 다른 애플리케이션이 유지하면서 현재 애플리케이션이 참조하는 파일이다. 외부 API에서 가져오는 환율 정보나 우편번호 정보가 예이며, 가중치는 510이다.
EI는 경계 밖에서 들어온 데이터가 ILF를 변경하는 기능이다. 회원가입, 게시글 작성, 주문 입력이 여기에 속하고 가중치는 36이다. EO는 파생 데이터를 포함해 외부로 내보내는 기능으로, 재무 보고서·통계 리포트·분석 결과 등이 예다. 가중치는 47이다. EQ는 단순한 데이터 검색과 표시를 뜻하며 상품 목록 조회나 사용자 프로필 조회가 해당한다. 가중치는 3~4이다.
복잡도는 DET(Data Element Type)와 RET(Record Element Type), 또는 FTR(File Type Referenced)의 수로 평가한다. 기능 유형별 가중치는 다음과 같다.
| 기능 유형 | 낮음 | 보통 | 높음 |
|---|---|---|---|
| ILF | 7 | 10 | 15 |
| EIF | 5 | 7 | 10 |
| EI | 3 | 4 | 6 |
| EO | 4 | 5 | 7 |
| EQ | 3 | 4 | 6 |
기능별 가중치를 합하면 미조정 기능점수(UFP)가 된다.
UFP = Σ(각 기능 유형별 개수 × 복잡도별 가중치)
이후 14개의 일반 시스템 특성(GSC)을 평가해 조정 계수(VAF)를 산출한다.
VAF = 0.65 + (Σ(14개 GSC 값) × 0.01)
최종 기능점수는 UFP에 VAF를 곱해 구한다.
최종 FP = UFP × VAF
쇼핑몰과 인사관리 시스템에 적용한 계산
온라인 쇼핑몰 시스템에서는 회원(중간), 상품(복잡), 주문(복잡), 장바구니(단순)를 ILF로 식별할 수 있다. 결제정보(중간)와 배송정보(단순)는 EIF다.
트랜잭션으로는 회원가입(중간), 상품등록(복잡), 주문접수(복잡)의 EI가 있으며, 매출보고서(복잡)와 인기상품분석(복잡)은 EO다. 상품검색(중간), 주문조회(중간), 회원정보조회(단순)는 EQ로 분류한다.
- ILF:
(1×10) + (2×15) + (1×7) = 47 - EIF:
(1×7) + (1×5) = 12 - EI:
(1×4) + (2×6) = 16 - EO:
(2×7) = 14 - EQ:
(2×4) + (1×3) = 11
미조정 기능점수(UFP)는 47 + 12 + 16 + 14 + 11 = 100이다. 조정계수(VAF)는 0.65 + (0.56) = 1.21로 가정하면, 최종 FP는 100 × 1.21 = 121 FP가 된다.
인사관리 시스템에서는 직원(복잡), 부서(단순), 급여(복잡), 평가(중간)를 ILF로, 법정수당정보(단순)를 EIF로 둘 수 있다. 직원등록(중간), 급여계산(복잡), 평가입력(중간)은 EI이며, 급여명세서(복잡)와 인사통계(복잡)는 EO다. 직원검색(단순)과 부서별인원조회(중간)는 EQ다.
이 시스템의 미조정 기능점수(UFP)는 계산 과정을 생략하면 85이며, VAF를 적용한 최종 FP는 93.5 FP다.
측정 방법론별 관점
IFPUG(International Function Point Users Group) 방식은 가장 널리 쓰이는 표준 방법론이다. ISO/IEC 20926으로 표준화되어 있으며, 14개의 GSC를 사용해 VAF를 조정하고 복잡도 매트릭스를 상세하게 정의한다.
NESMA(Netherlands Software Metrics Association)는 IFPUG와 유사하지만 일부 간소화된 방법을 제공한다. 추정형, 글로벌형, 상세형 세 가지 방법론을 두며 ISO/IEC 24570으로 표준화되어 있다.
COSMIC(Common Software Measurement International Consortium)은 실시간 시스템과 임베디드 시스템에 더 적합하다. 데이터 이동(Data Movement)을 기준으로 입력, 출력, 읽기, 쓰기의 4가지 데이터 이동을 고려하며 ISO/IEC 19761로 표준화되어 있다.
Mark II 방식은 영국에서 주로 사용하며 논리적 트랜잭션에 중점을 둔다. ISO/IEC 20968로 표준화되어 있다.
FP가 제공하는 기준과 측정 시의 제약
FP는 프로그래밍 언어나 기술에 영향을 받지 않고, 사용자가 인식하는 기능을 기준으로 규모를 잴 수 있다. 요구사항 단계에서도 측정할 수 있으며, 서로 다른 프로젝트를 비교하는 기준으로도 쓸 수 있다. 국제 표준으로 인정받는 방법이라는 점도 장점이다.
반면 결과가 측정자에 따라 달라질 수 있고, 정확한 산정을 위해 전문 지식이 필요하다. 상세 분석에는 시간이 들며 AI나 빅데이터 같은 신기술의 특성을 반영하는 데 한계가 있다. 사용자 인터페이스의 복잡도를 측정하기 어렵다는 제약도 남는다.
견적·일정·품질 관리에 쓰는 FP
프로젝트 견적에서는 FP당 비용을 적용해 개발 비용을 예측할 수 있다. 국내 SW사업 대가 산정 가이드에도 FP 기반 방식이 도입되어 있으며, 예를 들어 120FP × 55만원/FP = 6,600만원으로 계산한다.
일정 계획에서는 FP와 팀 생산성(FP/MM)을 함께 사용해 인력을 배치한다. 150FP ÷ 팀 생산성(10FP/MM) = 15인월은 이런 계산의 예다.
생산성은 산출된 FP / 투입 공수로 계산할 수 있어 팀·조직·프로젝트별 비교와 동종 업계 벤치마킹에 활용된다. 품질 관리에서는 FP당 결함수(Defects/FP)를 지표로 삼고, 프로젝트 결함 밀도 목표를 세울 수 있다. 목표 결함 밀도의 예는 0.05 결함/FP다.
기존 시스템을 FP로 측정하면 유지보수 규모도 예측할 수 있다. 연간 유지보수 비용은 FP의 15~25%로 예측하며, 기능 변경이나 추가에 따른 영향도 분석에도 활용한다.
FP는 요구사항 명확화와 범위 관리, 견적 산출, 프로젝트 모니터링을 연결하는 관리 지표다. 측정 가이드라인과 이력을 조직에 맞게 관리해야 결과를 일관되게 활용할 수 있으며, AI·클라우드·마이크로서비스 환경에서도 측정 방법론은 지속적으로 발전할 것으로 예상된다.