코드 크기 메트릭(Lines of Code, LOC)
이 메트릭은 프로그램의 크기를 코드 라인 수로 표현하며, 소프트웨어 개발 프로젝트의 규모 추정, 생산성 측정, 품질 관리 등에 활용된다.
코드 크기는 다양한 방식으로 측정될 수 있으며, 각각의 측정 방식은 서로 다른 목적과 의미를 가진다.
특징과 기능
- 프로젝트 규모 추정: LOC는 소프트웨어 프로젝트의 크기를 추정하는 데 사용된다.
- 생산성 측정: 개발자나 팀의 생산성을 LOC를 기준으로 평가할 수 있다.
- 비용 산정: LOC를 기반으로 프로젝트 비용과 개발 노력을 추정할 수 있다.
- 복잡성 지표: 코드의 양이 많을수록 일반적으로 복잡성이 높아진다.
유형
물리적 코드 라인(Physical Lines of Code, LOC):
이는 가장 단순한 형태의 측정 방식으로, 파일의 전체 라인 수를 세는 것이다.
다음은 물리적 코드 라인의 예시입니다:이 예시에서 물리적 코드 라인은 8줄이다.
하지만 이 방식은 빈 줄과 주석도 포함하기 때문에, 실제 코드의 양을 정확히 반영하지 못할 수 있다.논리적 코드 라인(Logical Lines of Code, LLOC):
실제 실행 가능한 구문의 수를 세는 방식이다.
다음 예시를 보자:이 코드의 논리적 라인 수는 6개이다. 중괄호나 빈 줄은 논리적 라인으로 계산되지 않는다.
주석 라인(Comment Lines):
코드의 문서화 수준을 이해하는 데 중요한 메트릭이다.
다음은 주석의 예시이다:
측정 방법
- 전체 프로그램을 모듈별로 분할한다.
- 모듈별로 규모를 추정하고 총 규모를 계산한다.
- LOC 예측치 계산: EV = (opt + 4m + pess) / 6
- opt: 낙관적 LOC 추정치
- m: 보통 LOC 추정치
- pess: 비관적 LOC 추정치
코드 크기를 측정하는 도구들
CLOC (Count Lines of Code):
SonarQube:
코드 크기뿐만 아니라 다양한 품질 메트릭을 함께 측정할 수 있다.JavaNCSS:
Java 코드의 크기를 측정하는 전용 도구.
코드 크기 관리를 위한 권장사항
메소드 크기 제한:
클래스 크기 제한:
주의사항
- 단순히 라인 수를 줄이는 것이 목표가 되어서는 안 된다. 때로는 더 긴 코드가 더 명확할 수 있다.
- 코드 크기는 다른 품질 메트릭과 함께 고려되어야 한다.
- 언어나 도메인의 특성에 따라 적절한 코드 크기는 달라질 수 있다.
권장되는 크기 제한
- 메소드: 20-30줄 이내
- 클래스: 200-300줄 이내
- 파일: 500-1000줄 이내
하지만 이러한 제한은 절대적인 것이 아니라 가이드라인으로 사용되어야 한다.
실제로는 코드의 응집도와 책임의 명확성이 더 중요한 기준이 된다.
코드 크기를 효과적으로 관리하기 위한 전략
- 단일 책임 원칙을 준수하여 클래스와 메소드의 책임을 명확히 한다.
- 코드 리뷰 시 크기 메트릭을 체크한다.
- 정기적인 리팩토링을 통해 코드를 정리한다.
- 자동화된 도구를 통해 코드 크기를 모니터링한다.