XML로 설정할 수 있고 명령줄, Ant 또는 Maven에서 실행할 수 있는 Java 정적 분석 도구로, 코딩 표준에 맞춰 소스 코드를 검사합니다.
meta/infer
실행하지 않고 Java, C, C++, Objective-C 코드의 버그를 찾아내는 정적 분석 도구입니다.
- 스타
- 15,746
- 포크
- 2,101
- 열린 이슈
- 194
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
Infer는 프로그램을 실행하지 않고도 소스 코드에서 null 포인터 역참조, 메모리 누수, 리소스 누수와 같은 버그를 검사하는 정적 분석기입니다. Java, C, C++, Objective-C를 지원하며 OCaml로 작성되었습니다.
Infer는 패키지 형태의 릴리스로 배포되며, 소스 코드에서 직접 빌드할 수도 있습니다. 프로젝트 문서에는 설치 및 기여 절차가 안내되어 있습니다. Java 지원을 활성화하려면 GPL 라이선스가 적용되는 구성 요소를 설치해야 할 수 있습니다.
이 프로젝트는 MIT 라이선스를 따르며, facebook 조직의 오픈소스 저장소로 유지 관리되고 있습니다.
핵심 기능
- 01null 역참조, 메모리 누수, 리소스 누수와 같은 버그를 정적으로 탐지합니다.
- 02Java, C, C++, Objective-C 코드베이스를 지원합니다.
- 03패키지 형태의 릴리스로 제공되며, 소스 코드에서 빌드할 수도 있습니다.
- 04OCaml로 작성되었으며 MIT 라이선스를 따릅니다.
활용 사례
- C 또는 C++ 프로젝트에서 메모리 및 리소스 누수를 출시 전에 찾아냅니다.
- 코드 리뷰나 CI 과정에서 Java 코드베이스의 null 포인터 버그를 찾습니다.
- Objective-C iOS 또는 macOS 코드에서 결함을 검사합니다.
빠른 시작
- 1
패키지 버전의 Infer는 Getting Started 페이지를 참조하세요
- 2
소스에서 빌드하려면 INSTALL.md의 안내를 따르세요
사용 전 알아둘 점
- Java 지원을 활성화하려면 GPL 라이선스가 적용된 구성 요소를 다운로드하여 설치해야 할 수 있습니다.
토픽
자주 묻는 질문
- infer은(는) 무엇인가요?
- 실행하지 않고 Java, C, C++, Objective-C 코드의 버그를 찾아내는 정적 분석 도구입니다. Infer는 프로그램을 실행하지 않고도 소스 코드에서 null 포인터 역참조, 메모리 누수, 리소스 누수와 같은 버그를 검사하는 정적 분석기입니다. Java, C, C++, Objective-C를 지원하며 OCaml로 작성되었습니다.
- infer은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- infer은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- infer은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. infer의 마지막 커밋은 2026년 11월 5일입니다.
- infer은(는) 어디에 사용할 수 있나요?
- C 또는 C++ 프로젝트에서 메모리 및 리소스 누수를 출시 전에 찾아냅니다. 코드 리뷰나 CI 과정에서 Java 코드베이스의 null 포인터 버그를 찾습니다. Objective-C iOS 또는 macOS 코드에서 결함을 검사합니다.
- infer는 어떻게 설치하나요?
- 패키지 버전의 Infer는 Getting Started 페이지를 참조하세요 소스에서 빌드하려면 INSTALL.md의 안내를 따르세요
- infer은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/meta/infer
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
ECMAScript/JavaScript 코드의 문제 패턴을 찾아내고 많은 항목을 자동으로 수정하는 플러그인형 린터입니다.
코드를 실행하지 않고 PHP 버그를 찾아내는 정적 분석 도구입니다.
코드를 실행하지 않고 오류와 코드 냄새를 찾아내며 코딩 표준을 적용하는 Python 정적 분석 도구입니다.
golint를 대체해 바로 사용할 수 있는 빠르고 설정 가능한 Go linter로, 사용자 정의 규칙과 출력 포맷터를 지원합니다.
Rust로 작성된 Python 도구로, 코드베이스의 모듈 의존성과 공개 인터페이스를 시각화하고 규칙을 적용합니다.