0Pricing
C++ Academy · 강의

정적 분석 도구: clang-tidy, cppcheck

clang-tidy와 cppcheck로 실행 전에 버그를 찾아냅니다.

정적 분석 도구: clang-tidy, cppcheck은(는) CoddyKit의 무료 C++ Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C++ Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

정적 분석을 사용하는 이유

정적 분석기는 코드를 실행하지 않고 읽어 잠재적인 버그, 잘못된 패턴 및 현대화 기회를 찾아냅니다. C++ 코드베이스를 위한 비용 대비 효과가 큰 안전장치입니다.

clang-tidy

clang-tidy는 수백 가지 검사를 제공하는 Clang 기반 린터입니다. IDE에서 사용하는 것과 동일한 compile_commands.json을 사용하십시오.

clang-tidy main.cpp -- -std=c++20

검사 선택

-checks=로 검사 범주를 활성화하십시오. 일반적인 그룹은 modernize-*, bugprone-*, performance-*, readability-*입니다.

clang-tidy main.cpp -checks="-*,modernize-*,bugprone-*,performance-*"

구성 파일

팀 전체에서 설정을 공유할 수 있도록 저장소 루트에 .clang-tidy 파일을 배치하십시오.

Checks: >
  -*,
  modernize-*,
  bugprone-*,
  performance-*,
  readability-magic-numbers
WarningsAsErrors: ""
HeaderFilterRegex: ".*"

현대화 검사

현대화 검사는 오래된 코드를 업그레이드하는 데 도움을 줍니다. 예를 들어 modernize-use-nullptr, modernize-use-auto, modernize-loop-convert가 있습니다. 각각 -fix를 사용하여 수정 사항을 자동으로 적용할 수 있습니다.

Cppcheck

cppcheck는 버그(널 역참조, 초기화되지 않은 변수, 메모리 누수)를 찾는 데 중점을 둔 별도의 분석기입니다. clang-tidy가 놓치는 항목을 찾아내는 경우가 많습니다.

cppcheck --enable=all --std=c++20 src/

둘 다 결합하기

cppcheck와 clang-tidy는 서로를 보완합니다. CI 파이프라인에서는 두 도구를 모두 실행하고 보고서를 병합하는 경우가 많습니다.

IDE와 통합

VS Code, CLion, Visual Studio 및 Qt Creator는 모두 clang-tidy를 통합합니다. 입력하는 동안 경고를 확인할 수 있습니다.

대규모로 수정하기

clang-tidy -fix는 제안된 수정 사항을 자동으로 적용합니다. 빠르게 현대화하려면 전체 저장소에서 실행하십시오.

오탐 억제

주석을 사용하여 특정 경고 하나를 해당 위치에서 억제하십시오.

int x;  // NOLINT(cppcoreguidelines-init-variables)

정적 분석과 동적 분석

정적 분석은 코드를 실행하지 않고 버그를 찾고, 동적 분석(살균기)은 실행 중에 버그를 찾습니다. 서로 다른 문제를 찾아내므로 둘 다 사용하십시오.

레거시 코드에 도입하기

레거시 코드베이스에서 모든 검사를 한꺼번에 활성화하면 감당하기 어려운 잡음이 발생합니다. 점진적으로 도입하십시오. 검사 하나를 활성화하고 경고를 수정한 다음 CI에 적용하고 반복하십시오.

빠른 확인

오래된 코드를 최신 C++ 관용구로 업그레이드하는 데 도움이 되는 clang-tidy 검사 그룹은 무엇입니까?

복습

clang-tidy 및 cppcheck와 같은 정적 분석기는 실행 전에 버그를 찾아냅니다. 프로젝트별 .clang-tidy로 구성하십시오. modernize-*를 사용하여 레거시 코드를 자동으로 업그레이드하십시오. 지속적인 피드백을 위해 IDE와 CI에 통합하십시오.

자주 묻는 질문

“정적 분석 도구: clang-tidy, cppcheck” 강의는 무료인가요?

네 — “정적 분석 도구: clang-tidy, cppcheck” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C++ Academy 강의 전체를 잠금 해제할 수 있습니다. C++ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“정적 분석 도구: clang-tidy, cppcheck”에서 뭘 배우나요?

clang-tidy와 cppcheck로 실행 전에 버그를 찾아냅니다. 브라우저에서 직접 실행하는 실습 코드로 C++ Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C++ Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C++ Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“정적 분석 도구: clang-tidy, cppcheck” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C++ Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C++ Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 정적 분석 도구: clang-tidy, cppcheck
  2. Sanitizer: Address, Thread, UB Sanitizer
  3. libFuzzer로 퍼징하기
  4. C++ 프로젝트의 지속적 통합
← C++ Academy(으)로 돌아가기