C++ 정적 코드 분석하기 - clang-tidy, cppcheck, 컴파일 옵션
정적 코드 분석 이전 Software Engineering at Google 리뷰 글에서, 구글에서는 소프트웨어의 취약점을 최대한 빠르게 발견하기 위해서 다층 방어 전략을 구사한다고 했었고, 그중 하나가 정적 코드 분석이라고 했었다. 그렇다면 이 정적 코드 분석이란 무엇일까? 소프트웨어의 취약점, 버그는 테스트와 실행 과정에서 발견될 수도 있지만, 사실 대부분의 버그들은 코드 단계에서 발견될 수도 있다. nullptr 관련 문제들, 잘못된 코딩 습관으로 인한 버그들, 메모리 누수 관련 문제들은 대부분 사실 실행 단계가 아닌, 코드를 유심히 점검하는 과정에서 해결할 수 있다. 그리고 이러한 코드 분석을 정적 코드 분석(Static Code Analysis)라 한다. 그러나 사람은 기본적으로 자신이 만들고 ..