핵심 인사이트 (3줄 요약)
- 사용자 중심 규모 산정: 소스코드 라인수(LOC)가 아닌 사용자에게 제공되는 '기능'의 양을 기준으로 소프트웨어 규모를 정량적으로 측정한다.
- 표준화된 측정 방식: 국제 표준(IFPUG)에 따라 데이터 기능과 트랜잭션 기능을 분류하고 복잡도를 적용하여 산출한다.
- 예산 및 대가 산정 근거: 공공 소프트웨어 사업 등에서 개발 대가 산정의 핵심 근거로 활용되며, 객관성과 투명성을 제공한다.
Ⅰ. 개요 (Context & Background)
기능 점수(Function Point)는 소프트웨어의 복잡도와 기능을 정량적으로 측정하기 위해 1979년 IBM의 알랭 알브레히트(Alan Albrecht)가 제안한 방식이다. 개발 기술이나 언어에 독립적으로 소프트웨어의 규모를 파악할 수 있어, 사업 기획 단계부터 유지보수 단계까지 널리 사용된다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
기능 점수는 크게 데이터 기능과 트랜잭션 기능 두 가지 범주로 분류하여 측정한다.
[ Architecture of Function Point Counting ]
+-------------------------------------------------------+
| Application Boundary (어플리케이션 경계) |
| |
| [Transaction Functions] [Data Functions] |
| |
| User --(EI)--> [Process] <--(ILF)--> [Internal DB] |
| |
| User <--(EO)-- [Process] <--(EIF)--> [External Sys] |
| |
| User <--(EQ)-- [Process] |
| |
+-------------------------------------------------------+
1. EI (External Input): 외부 입력 (데이터 등록, 수정, 삭제)
2. EO (External Output): 외부 출력 (수식/계산이 포함된 데이터 출력)
3. EQ (External Inquiry): 외부 조회 (단순 데이터 검색 및 출력)
4. ILF (Internal Logical File): 내부 논리 파일 (시스템 내 유지되는 데이터)
5. EIF (External Interface File): 외부 연계 파일 (타 시스템에서 참조하는 데이터)
산출 프로세스:
- 측정 유형 결정: 신규 개발, 개선, 애플리케이션 측정 중 선택한다.
- 측정 범위 및 경계 설정: 대상 시스템의 업무 범위를 확정한다.
- 데이터 기능 측정: ILF와 EIF의 개수와 복잡도를 파악한다.
- 트랜잭션 기능 측정: EI, EO, EQ의 개수와 복잡도를 파악한다.
- 미조정 기능점수(UFP) 산출: 기능별 가중치를 합산한다.
- 보정 계수 적용: 규모, 복잡도, 성능 등을 반영하여 최종 기능점수(FP)를 도출한다.
Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)
| 비교 항목 | 기능 점수 (Function Point) | 소스코드 라인수 (LOC) |
|---|---|---|
| 측정 기준 | 사용자 기능 요구사항 (Logical) | 물리적 코드 라인 (Physical) |
| 측정 시점 | 분석/설계 단계부터 가능 (조기 산정) | 구현 완료 후에나 정확한 측정 가능 |
| 객관성 | 개발 언어/기술에 독립적 | 언어마다 코딩 스타일에 따라 가변적 |
| 주요 용도 | 대가 산정, 생산성 분석 | 개발 일정 관리, 결함 밀도 측정 |
Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)
실무 적용 사례:
- 공공 소프트웨어 사업: '소프트웨어 사업 대가 산정 가이드'에 따라 FP 단가를 적용하여 예산을 편성한다.
- 생산성 벤치마킹: 개발 단계별 투입 공수 대비 FP를 분석하여 조직의 개발 생산성을 관리한다.
기술사적 판단: "기능 점수는 완벽하지 않지만(알고리즘 위주 시스템 측정의 한계 등), 현존하는 가장 객관적인 소프트웨어 자산 가치 평가 도구이다. 특히 상세 기능점수법과 간이 기능점수법을 프로젝트의 생명주기에 맞춰 적절히 선택하여 정확도를 높여야 한다."
Ⅴ. 기대효과 및 결론 (Future & Standard)
기능 점수는 단순히 예산 산정을 넘어 소프트웨어 공학의 정량적 관리 체계를 확립하는 기반이 된다. 향후 클라우드 기반의 API 위주 개발 환경에 맞춘 확장 기능 점수(EFP) 등의 논의가 지속되고 있으며, ISO/IEC 국제 표준 준수가 더욱 강조될 전망이다.
📌 관련 개념 맵 (Knowledge Graph)
- COCOMO: 개발 공수(M/M) 예측 모델
- IFPUG: 국제 기능점수 사용자 그룹 (표준 제정)
- Function Point Unit Price: 매년 공지되는 FP당 단가
👶 어린이를 위한 3줄 비유 설명
- 레고 성을 지을 때 '브릭 개수'가 아니라 '방 몇 개, 문 몇 개'를 만들지로 가격을 정하는 거예요.
- 방이 크고 화려할수록(복잡할수록) 점수를 더 많이 줘서 공평하게 계산한답니다.
- 이렇게 하면 성을 만드는 재료가 찰흙이든 나무든 상관없이 성의 가치를 알 수 있어요!