스물두줄

컴퓨터시스템응용기술사 · 개념서 · 소프트웨어 공학 및 아키텍처

소스코드 품질평가

설명 영상 소스코드 품질평가 · 2:28

왜 배우는가: 소스코드 품질은 유지보수 비용과 결함 발생률을 좌우하므로 실무에서 개발 단계마다 평가 체계를 세운다. 시험에서는 정적·동적 분석, 메트릭, 신뢰도 지표를 한 문제에서 묻는 경우가 많아 반복해서 출제된다.

출제 이력: 제119회 4교시 4번, 제99회 3교시 1번

1. 한 줄 정의와 핵심 키워드

소스코드 품질평가는 소스코드를 정적 분석, 동적 검증, 코드 메트릭으로 측정해 품질특성 충족 정도를 판정하고 신뢰도를 정량화하는 활동이다.

핵심 키워드: 소스코드 품질평가, 정적 분석, 동적 분석, 코드 메트릭, 순환 복잡도, 결함 밀도, 신뢰도, ISO/IEC 25010

이 정의를 답안 첫 줄에 그대로 쓴다. 키워드는 평가 수단(정적 분석, 동적 분석, 메트릭)과 결과 지표(결함 밀도, 신뢰도)로 나눠 기억한다. 평가 대상은 작성된 소스코드 자체, 빌드 결과물, 테스트 실행 결과의 세 가지다. 평가 결과는 품질 판정과 신뢰도 수치의 두 가지로 나온다. 두 결과를 함께 제시해야 평가가 정량적이라는 채점 기준을 충족한다.

2. 개념 풀이

쉬운 말로 하면 좋은 코드는 고치기 쉽고 결함이 적은 코드다. 소스코드 품질평가는 이 '좋다'를 측정 가능한 항목과 숫자로 바꾸는 일이다.

정식 정의는 다음과 같다. 소스코드 품질평가란 개발 단계에서 산출된 소스코드를 대상으로 품질모형의 특성별 기준에 따라 정적 분석, 동적 검증, 메트릭 측정을 수행하고 그 결과를 해석하는 활동이다. 평가 기준은 ISO/IEC 25010:2011의 제품 품질 특성을 쓴다. 특성은 기능 적합성, 성능 효율성, 호환성, 사용성, 신뢰성, 보안, 유지보수성, 이식성의 여덟 가지다.

핵심 용어는 다음과 같다.

  • 정적 분석: 코드를 실행하지 않고 도구로 분석하는 기법이다. 코딩 표준 위반, 잠재 보안 취약점, 메모리 누수 등을 찾는다. 소스코드 수준을 보므로 화이트박스 관점에 속한다. 대표 도구는 SonarQube, PMD, Checkstyle이다.
  • 동적 분석: 코드를 실행하면서 결함을 확인하는 기법이다. 단위 테스트, 통합 테스트, 커버리지 측정이 포함된다.
  • 코드 메트릭: 코드 크기, 복잡도, 응집도, 결합도, 중복률을 수치로 나타낸 지표다. 같은 기준으로 반복 측정해야 추세를 읽을 수 있다.
  • 순환 복잡도: 제어 흐름 그래프의 독립 경로 수로 구하는 복잡도 지표다. 값이 클수록 테스트해야 할 경로가 늘고 결함 가능성이 커진다.
  • 신뢰도: 정해진 조건과 기간에서 고장 없이 기능을 수행할 확률이다. 소스코드 평가에서는 결함 밀도, 평균 고장 간격(MTBF) 같은 지표로 정량화한다.

정적 분석은 실행 없이 소스코드 분석이 핵심 조건이다. 동적 분석은 실행 결과로 결함을 확인한다. 두 기법은 상호 보완 관계이므로 답안에서 함께 제시한다. 메트릭은 두 기법의 결과를 수치로 묶는 역할을 한다.

3. 등장 배경과 필요성

소프트웨어가 제품과 시스템에서 차지하는 비중이 커지면서 오작동이 사업 성패와 사람의 안전에 직접 영향을 준다. 이에 따라 소프트웨어 품질보증을 개발 단계에서 체계적으로 수행해야 한다는 요구가 커졌다. 문제는 결함이 늦게 발견될수록 수정 비용이 크게 늘어난다는 점이다. 그래서 개발 초기에 소스코드를 평가해 결함을 조기에 찾는 체계가 필요해졌다.

이어지는 내용

로그인하면 하루 5페이지까지 무료로 전체를 읽을 수 있습니다.

앱에서 이 단원 읽기