TL;DR

  • Checker Framework는 자바(Java) 타입 시스템을 확장해 널 포인터 예외, 의도치 않은 부작용, SQL 인젝션, 동시성 오류, 잘못된 동등성 검사 등 실행 시점 오류를 찾고 예방하는 도구임.
  • 컴파일러 플러그인인 체커(checker) 를 포함하며, 버그를 찾거나 버그가 없음을 검증하고 사용자 지정 플러그인 작성을 허용함.
  • checker-framework-4.3.0.zip에는 소스 코드, 플랫폼 독립 바이너리, 테스트, 문서가 포함되며, 배포 날짜는 2026-10-01임.
  • 널 가능성(Nullness), 정규식(Regex), 오염(tainting) 체커 튜토리얼과 설치 안내, 라이브 데모, 설명서, 추론 도구를 제공함.
  • 주석 파일 유틸리티와 데이터 흐름 프레임워크를 함께 배포하며, 데이터 흐름 프레임워크는 Google의 Error Prone, Uber의 NullAway, Meta의 Nullsafe 등에서도 사용됨.

Checker Framework

  • 테스트 중이나 실제 운영 환경에서 나타나는 널 포인터 예외, 의도하지 않은 부작용, SQL 인젝션, 동시성 오류, 잘못된 동등성 검사 및 기타 실행 시점 오류를 대상으로 함.
  • Checker Framework는 자바의 타입 시스템을 확장해 더 강력하고 유용하게 만들며, 소프트웨어 개발자가 자바 프로그램의 오류를 탐지하고 예방하도록 지원함.
  • 버그를 찾거나 버그가 없음을 검증하는 컴파일러 플러그인인 체커를 포함하며, 자체 컴파일러 플러그인 작성도 허용함.
  • 빠른 시작 안내로 설치 설명서와 튜토리얼을 제공함.
  • checker-framework-4.3.0.zip 다운로드 파일은 2026-10-01 배포본이며, 소스 코드, 플랫폼 독립 바이너리, 테스트, 문서를 포함함. 설치 설명서와 튜토리얼을 함께 안내함.
  • 설명서와 학습 자료는 다음과 같음.
  • Checker Framework 설명서(HTML): 한 페이지 버전과 여러 페이지 버전
  • Checker Framework 설명서(PDF)
  • 설치 설명서
  • 설치 없이 사용할 수 있는 Checker Framework 라이브 데모 웹페이지
  • 널 가능성 체커, 정규식 체커, 오염 체커 튜토리얼
  • 설정 정보가 오래된 외부 널 가능성 체커 튜토리얼
  • FAQ(자주 묻는 질문과 답변), Javadoc API 문서, 변경 기록
  • 소스 코드 저장소(GitHub): https://github.com/typetools/checker-framework/ 임. Checker Framework 설명서에는 소스에서 빌드하는 안내가 있으며, 개발자 설명서도 제공함.
  • 추론 도구는 코드에 주석(annotation)을 자동으로 추가해 체커 사용을 더 쉽게 시작하도록 지원하며, 사용 가능한 도구 목록은 Checker Framework 설명서에 수록됨.
  • 선택적으로 함께 사용할 수 있는 도구는 다음과 같음.
  • 주석 파일 유틸리티(Annotation File Utilities)는 .java 및 .class 파일에서 주석을 추출하고 파일에 주석을 기록함. 소스 코드나 .class 파일 바깥에 주석을 표현하는 ‘주석 파일(annotation file)’ 형식도 제공함.
  • 주석 파일 유틸리티는 자바 5 선언 주석과 자바 8 타입 주석을 모두 지원하며, Checker Framework와 함께 배포됨. 설명서는 압축 파일과 저장소에 포함됨.
  • 데이터 흐름 프레임워크(Dataflow Framework)는 산업 수준의 자바 데이터 흐름 프레임워크임. Checker Framework, Google의 Error Prone, Uber의 NullAway, Meta의 Nullsafe 및 기타 환경에서 사용되며, Checker Framework와 함께 배포됨.
  • Checker Framework 이전 버전 보관 자료와 연구 논문 안내를 제공하며, 연구 논문은 Checker Framework 설명서에서 확인할 수 있음.

지원 및 커뮤니티

  • 질문이 있으면 먼저 문서 항목에 열거된 설명서에서 답을 찾도록 안내함.
  • 설명서에서 답을 찾지 못하면 메일링 리스트를 이용하도록 안내함.

문서

  • Checker Framework 설명서(PDF 및 HTML: 한 페이지 버전과 여러 페이지 버전)
  • 설치 설명서 또는 설치 없이 이용하는 Checker Framework 라이브 데모 웹페이지
  • 튜토리얼 및 기타 튜토리얼: 설정 정보가 오래된 외부 널 가능성 체커 튜토리얼
  • FAQ(자주 묻는 질문과 답변)
  • Javadoc API 문서
  • 변경 기록

버그 보고

  • 문제가 생기면 수정에 도움이 되도록 버그 보고서를 제출하도록 안내함.
  • 버그 보고 절차를 읽은 뒤 Checker Framework 이슈 추적기를 이용하도록 안내함.

메일링 리스트

  • 질문, 제안, 패치, 사례 연구 보고 및 기타 기여를 환영하며, Checker Framework 개선을 위한 의견을 요청함.
  • checker-framework-discuss: 플러그인형 타입 시스템 구축을 위한 Checker Framework 일반 토론용이며, 현재 및 이전 보관 자료를 열람할 수 있음.
  • checker-framework-dev: Checker Framework를 유지 관리하고 확장하는 개발자에게 연락하는 용도이며, 현재 및 이전 보관 자료를 열람할 수 있음.
  • 메일링 리스트를 통해 다음과 같은 방식으로 도움을 제공할 수 있음.
  • 질문에 답변
  • 구현이나 문서의 문제 보고 또는 기능 요청
  • 코드를 작성한 뒤 버그 수정, 새 기능, 컴파일러 플러그인 및 기타 개선 사항 공유
  • 명세에 관한 제안
  • 타입 주석의 유용성과 실용성을 친구와 동료에게 알리거나, 성공 사례를 메일링 리스트에 보고하는 방식으로도 기여할 수 있음.
  • 마지막 업데이트 날짜는 2026-10-01임.