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임.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요