LOC(Line of Code, 원시코드 라인 수) 기법이란
소프트웨어 개발의 생산성(生産性) 과 비용(費用) 을 추정하기 위해,
프로그램의 원시 코드 줄 수(Line of Code) 를 기반으로
개발 규모(Size)를 측정하는 정량적(定量的) 측정 기법이다.
즉,
“작성될 코드의 총 라인 수를 기준으로
개발 노력(Effort), 인원(Personnel), 일정(Schedule), 비용(Cost)을 추정하는 방식”이다.
1️⃣ 개념 설명
소프트웨어 공학에서 프로젝트 규모를 추정할 때,
가장 기본적이면서도 오래된 방법이 바로 LOC 기법이다.
이 방식은 “코드가 많을수록 개발 시간과 비용이 많이 든다”는
단순하고 직관적인 가정에서 출발했다.
그래서 개발 전 또는 후에 프로그램의 라인 수(Line Count) 를 측정하여
개발 규모를 정량적으로 평가한다.
2️⃣ LOC 기법의 기본 원리
LOC 기법은 다음과 같은 과정을 거친다.
1️⃣ 시스템의 기능과 요구사항을 분석한다.
2️⃣ 각 기능을 구현하는 데 필요한 코드 줄 수(LOC)를 예측한다.
3️⃣ 예측된 총 LOC를 기준으로
- 개발 노력(Effort, 인월·인시)
- 개발 인원(Personnel)
- 개발 기간(Schedule)
- 개발 비용(Cost)을 계산한다.
이때, “1인당 하루에 작성할 수 있는 코드 라인 수”나
“프로젝트당 평균 오류율” 같은 경험적 데이터를 이용한다.
3️⃣ LOC 기법의 추정 수식 예시
LOC 기법은 보통 다음과 같은 경험적 공식으로 표현된다.
- 개발 노력(Effort) = a × (LOC)^b
- 개발 기간(Schedule) = c × (Effort)^d
여기서
- a, b, c, d는 과거 프로젝트 데이터를 기반으로 도출한 경험 상수(經驗常數)
- LOC 단위는 보통 “천 라인(KLOC: Kilo Lines of Code)”을 사용한다.
이 수식은 COCOMO(Constructive Cost Model) 같은
비용 추정 모델에서 LOC를 입력값으로 사용한다.
4️⃣ LOC 기법의 장점
- 정량적 측정이 가능 → 코드 수를 직접 세므로 객관적인 수치 기반
- 과거 데이터 활용 용이 → 동일 언어, 동일 규모의 프로젝트 비교에 유리
- 간단하고 직관적 → 계산 방식이 명확하여 관리자가 이해하기 쉬움
즉, “코드가 늘면 비용도 늘어난다”는 단순 명제가 기반이라 사용이 쉽다.
5️⃣ LOC 기법의 단점
- 언어 의존성(Language Dependent)
→ 같은 기능도 언어에 따라 코드 길이가 달라진다.
(예: Java 10줄 = Python 3줄) - 초기 단계에서 예측 어려움
→ 실제 코드를 작성하기 전에는 라인 수를 정확히 예측하기 어렵다. - 논리적 복잡도 반영 불가
→ 코드의 난이도나 복잡도, 알고리즘 효율성은 고려되지 않는다. - 재사용 코드나 자동 생성 코드 반영 어려움
→ 현대 개발환경(프레임워크, 라이브러리 기반)에는 부적합할 수 있음.
요약하자면, LOC는 “고전적이고 단순하지만, 현대적 복잡성은 반영 못하는 기법”이다.
6️⃣ LOC 기법의 활용 예시
예를 들어,
어떤 프로젝트의 예상 코드 라인 수가 50,000라인(=50KLOC)이라면,
과거 데이터로 “1KLOC당 20인시(Man-Hour)”가 소요된다고 하면,
총 필요 인력 시간은 1,000인시가 된다.
이를 기준으로 인원 배치, 일정 계획, 비용 산출 등을 수행할 수 있다.
7️⃣ LOC 기법과 관련된 모델
LOC 기법은 소프트웨어 비용 추정 모델(Cost Estimation Model) 중
가장 대표적인 COCOMO(Constructive Cost Model) 의 핵심 입력값으로 사용된다.
COCOMO에서는
- 입력값: LOC
- 출력값: 개발 노력(Effort), 기간(Schedule), 비용(Cost)
으로 프로젝트의 규모를 예측한다.
8️⃣ 정처기 실기 정의 문장
“LOC(Line of Code) 기법은 프로그램의 원시 코드 라인 수를 기준으로
소프트웨어 개발 규모, 노력, 비용, 일정 등을 추정하는 정량적 측정 기법이다.”
시험 키워드:
LOC, 원시코드 라인 수, 규모 추정, 노력(Effort), 일정(Schedule), 비용(Cost), 정량적 측정, COCOMO
🪶 단어 정리 (한국식 한자 + 영어 어원 + 뜻풀이)
원시코드(原始코드) / Source Code
근원 원(原), 처음 시(始)
: 프로그래머가 작성한 인간이 읽을 수 있는 형태의 코드. 영어 source(근원) + code(기호 체계).
행수(行數) / Line Count
다닐 행(行), 셈 수(數)
: 코드의 줄(Line) 개수.
추정(推定) / Estimation
밀 추(推), 정할 정(定)
: 불확실한 값을 경험이나 데이터로 근사 계산하는 것.
생산성(生産性) / Productivity
날 생(生), 낳을 산(産), 성품 성(性)
: 투입 대비 산출의 효율성.
비용(費用) / Cost
쓸 비(費), 쓸 용(用)
: 자원을 사용하기 위해 소모되는 금전적 가치.
정량적(定量的) / Quantitative
정할 정(定), 헤아릴 량(量), 과녁 적(的)
: 수치로 측정 가능하거나 비교 가능한 형태.
🏷️ 해시태그 정리
#LOC
#LineOfCode
#원시코드라인수
#소프트웨어규모추정
#정처기실기
#소프트웨어공학
#COCOMO
#비용추정
#생산성분석
#정량적측정
#소프트웨어개발
'자격증 > 정보처리기사 실기' 카테고리의 다른 글
✅ COCOMO 모델이란? | 보헴(Barry Boehm)과 프로젝트 유형 3가지 완벽 정리 (0) | 2025.10.16 |
---|---|
소프트웨어 재공학 (Software Re-engineering, 再工學) (0) | 2025.10.16 |
소프트웨어 재사용 (Software Reuse, 再使用)이란? (0) | 2025.10.15 |
정보공학 개발 방법론 (Information Engineering, 情報工學開發方法論)이란 ? (0) | 2025.10.15 |
객체지향 방법론 (Object-Oriented Methodology, 對象指向方法論) (0) | 2025.10.15 |