정적 코드 분석이란?

정적 코드 분석은 소스 코드에서 수행되는 일련의 자동 검사로 구성됩니다.

정적 분석 도구는 코드를 검사하여 메모리 누수 또는 버퍼 오버플로우 등 일반적으로 알려진 오류 및 취약점을 파악합니다. 또한 정적 분석을 활용하면 코딩 표준 적용이 가능합니다.

보안이 가장 중요한 경우에는 정적 애플리케이션 보안 테스트(SAST) 도구를 통해 알려진 보안의 결함을 확인할 수 있습니다. 정적 분석은 소스 코드에서 시행되며 프로그램을 실행할 필요가 없으므로 CI/CD 파이프라인의 첫 단계에서 수행하거나 변경 사항 커밋 전 IDE에서 직접 수행할 수 있습니다.

모든 방식의 자동 검사와 마찬가지로 정적 코드 분석도 검사의 일관성을 보장하고 최신 변경 사항에 대한 신속한 피드백을 제공합니다. IDE에 통합된 정적 분석 도구는 즉각적이고 대상이 명확한 피드백을 제공하므로 작업을 수행하며 문제를 해결할 수 있습니다.

하지만 정적 분석은 프로그래밍된 규칙 위반이 발생한 사례만을 식별하며, 소스를 읽는 것만으로는 모든 결함을 발견할 수 없습니다. 또한 거짓 양성 오류가 발생할 위험이 있으므로 결과를 해석해야 합니다.

따라서 정적 코드 분석은 코드 검토를 적절히 보완합니다. 이 과정에서 알려진 문제가 강조 표시되므로 전체 설계 및 접근 방식 검토 등의 보다 흥미로운 작업에 시간을 할애할 수 있습니다.

정적 코드 분석은 강력한 자동화된 검사의 일부로 기능하여, 코드 품질을 유지하며 (코드를 실행하여 알려진 문제를 검사하는) 다른 방식의 동적 분석 및 자동화된 테스트와 함께 사용될 수 있습니다.