94 lines
8.0 KiB
Markdown
94 lines
8.0 KiB
Markdown
---
|
||
title: "Checkstyle – Google's Style Coverage Report (Official)"
|
||
source_type: official-doc
|
||
url: https://checkstyle.sourceforge.io/google_style.html
|
||
archive_url:
|
||
related_branches: [feature-static-analysis-quality-contract]
|
||
related_projects: [ca-skeleton, ca-tmpl]
|
||
tags: [official-doc, ca-skeleton, ci-cd, build-tooling]
|
||
created: 2026-06-15
|
||
---
|
||
|
||
# Checkstyle – Google's Style Coverage Report (Official)
|
||
|
||
> Layer: `raw/` — 외부 자료(공식 문서)의 **원문 발췌·출처 기록**.
|
||
> 검증된 요약은 `/ingest` 후 `wiki/concepts/`에 `source-summary-template` 형식으로 별도 작성. 원본은 raw에 영구 보관.
|
||
|
||
## Parent / 활용 branch (필수)
|
||
|
||
| Branch | 이 자료가 정당화하는 결정 |
|
||
|---|---|
|
||
| [[raw/branch-notes/feature-static-analysis-quality-contract]] | D2 — Checkstyle custom minimal ruleset 설계(naming/Javadoc/logical 잔존, formatting 검사는 formatter에 위임해 suppress). google_checks.xml 기준 모듈 분류 근거. |
|
||
|
||
## 출처 / Source
|
||
|
||
- 원본 URL: https://checkstyle.sourceforge.io/google_style.html
|
||
- 아카이브 URL: (미확보)
|
||
- 저자 / 조직: Checkstyle Project (sourceforge.io)
|
||
- 발행일: 2026-05-30 (Last Published)
|
||
- Checkstyle 버전: 13.5.0
|
||
- 대상 스타일 가이드 버전: 26 Apr 2025 (Google Java Style)
|
||
- 마지막 확인일: 2026-06-15
|
||
|
||
## 왜 저장했는지 / Why archived
|
||
|
||
feature-static-analysis-quality-contract D2에서 "Checkstyle custom minimal ruleset" 설계 시 어떤 모듈이 naming/Javadoc/formatting 영역에 각각 속하는지 공식 출처로 확인하기 위해 보관. google_checks.xml 을 기준 config로 참조하며, formatter(Spotless 등)와 겹치는 formatting 모듈(Indentation/LineLength/Whitespace 계열)을 suppress 대상으로 식별하는 근거로 활용.
|
||
|
||
## 핵심 인용 / Key quotes (verbatim, 3~5문장)
|
||
|
||
> [§Key Naming Convention Checks / Type Names] "**TypeName** check validates class naming conventions but cannot determine grammatical categories (noun vs. adjective)."
|
||
|
||
> [§Key Naming Convention Checks / Method Names] "**MethodName** enforces naming patterns with noted false-negatives regarding underscores (issue #17841)."
|
||
|
||
> [§Javadoc Enforcement / Required Documentation] "- **MissingJavadocType**: Requires javadoc for types"
|
||
|
||
> [§Javadoc Enforcement / Required Documentation] "- **MissingJavadocMethod**: Requires javadoc for methods with exceptions for overrides and self-explanatory members"
|
||
|
||
> [§Overview] "The report was created for [Google Java Style](https://google.github.io/styleguide/javaguide.html) (version 26 Apr 2025) and references the configuration at `google_checks.xml`."
|
||
|
||
> [§Formatting Module Coverage / Indentation & Spacing] "**Indentation** check enforces \"+2 spaces\" block indentation and continuation line indentation (\"+4 spaces minimum\")."
|
||
|
||
> [§Formatting Module Coverage / Line Length] "**LineLength** enforces 100-character column limit with exceptions for URLs (http://, https://). Limitations include JSNI detection and long identifiers (issue #14938)."
|
||
|
||
## Claims Extracted / 추출된 주장
|
||
|
||
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|
||
|---|---|---|---|---|---|
|
||
| C1 | google_checks.xml 이 Google Java Style 을 Checkstyle 로 enforcement 하는 기준 config 이다 | [§Overview] "references the configuration at `google_checks.xml`" | `official-reference` | Checkstyle 13.5.0 + Google Java Style 26 Apr 2025 기준 | google_checks.xml 이 모든 프로젝트에서 그대로 사용 가능하다는 뜻이 아님 (custom suppress 필요 가능) |
|
||
| C2 | TypeName / MethodName 모듈이 naming convention 을 검사한다 | [§Naming] "**TypeName** check validates class naming conventions" / "**MethodName** enforces naming patterns" | `official-reference` | Checkstyle naming rule 설계 시 | 이 모듈들이 Google Java Style 의 *모든* naming 규칙을 완전히 검사함을 보장하지 않음(TypeName 은 grammatical category 미판별) |
|
||
| C3 | MissingJavadocType / MissingJavadocMethod 모듈이 Javadoc 필수 여부를 검사한다 | [§Javadoc / Required Documentation] "**MissingJavadocType**: Requires javadoc for types" / "**MissingJavadocMethod**: Requires javadoc for methods with exceptions for overrides and self-explanatory members" | `official-reference` | Javadoc 강제 ruleset 설계 시 | MissingJavadocMethod 는 overrides 및 self-explanatory 멤버에 예외가 있으므로 모든 메서드를 강제하지 않음 |
|
||
| C4 | Indentation / LineLength / WhitespaceAround 등 formatting 모듈은 formatter 도구와 중복 검사 영역이다 | [§Formatting] "**Indentation** check enforces \"+2 spaces\" block indentation..." / "**LineLength** enforces 100-character column limit..." / "**WhitespaceAround**: Partial coverage..." | `official-reference` | formatter(Spotless/google-java-format 등)와 Checkstyle 동시 사용 시 suppress 대상 선별 | 이 자료 자체가 "formatter 와 중복이면 suppress 해야 한다"고 명시하지는 않음 — 그 결정은 D2 의 설계 판단 |
|
||
| C5 | ParameterName / CatchParameterName / LambdaParameterName 등 로컬 변수 계열 모듈이 소문자 naming 을 강제한다 | [§Naming / Parameter and Local Variables] "**ParameterName**, **CatchParameterName**, **LambdaParameterName**, **RecordComponentName**, **LocalVariableName**, **PatternVariableName** enforce lowercase conventions" | `official-reference` | 로컬 변수·파라미터 naming 룰 설계 시 | 이 모듈들이 Google naming spec 의 모든 규칙(예: 1-char 변수 허용 범위)을 완전 커버하는지는 Coverage Report 상 별도 검증 필요 |
|
||
|
||
### Strength 허용값 (적용한 것)
|
||
|
||
- `official-reference` — 공식 reference/API 문서 (Checkstyle 프로젝트의 공식 coverage report)
|
||
|
||
## Usage Boundaries / 적용 경계
|
||
|
||
- 이 자료가 직접 증명하는 것:
|
||
- `C1`: google_checks.xml 이 공식 기준 config 라는 사실 (Checkstyle 13.5.0 / Google Java Style 26 Apr 2025 기준)
|
||
- `C2`: TypeName, MethodName 이 Checkstyle 내 naming 검사 모듈임
|
||
- `C3`: MissingJavadocType, MissingJavadocMethod 이 Javadoc 검사 모듈임 (단, 예외 조건 있음)
|
||
- `C4`: Indentation, LineLength, WhitespaceAround 계열이 formatting 검사 모듈임 — formatter 와 겹치는 영역
|
||
- `C5`: ParameterName 계열이 소문자 naming 을 강제함
|
||
- 이 자료가 증명하지 않는 것:
|
||
- formatter(Spotless/google-java-format) 와 Checkstyle 동시 사용 시 suppress 해야 한다는 정책 결정 (이는 D2 설계 판단)
|
||
- ca-tmpl 프로젝트에서 이 모듈들이 실제로 동작함 (별도 로컬 검증 필요)
|
||
- Checkstyle 이 Google Java Style 을 100% 커버함 (Coverage Report 는 미커버 항목을 빨간 ban 아이콘으로 명시)
|
||
- 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
|
||
- ca-tmpl 의 Gradle Checkstyle 플러그인이 google_checks.xml 을 올바르게 참조하는지 확인
|
||
- formatter suppress 전략: formatting 모듈(Indentation/LineLength/Whitespace 계열)을 SuppressionFilter 또는 SuppressWarningsFilter 로 suppress 하는 XML 설계
|
||
|
||
## 메모 / Notes
|
||
|
||
- 이 문서는 Google Style 에 대한 Checkstyle *coverage 분석* 보고서이며, Checkstyle 의 원본 check reference 문서가 아님. 개별 check 의 전체 파라미터 목록은 `https://checkstyle.sourceforge.io/checks/` 에서 별도 확인 필요.
|
||
- SuppressionFilter(`checkstyle-suppressions.xml`) 및 SuppressWarningsFilter(`@SuppressWarnings({"checkstyle:check_name"})`) 두 가지 suppress 메커니즘이 공식 제공됨 — formatting 모듈 suppress 설계 시 참조.
|
||
- 추가로 봐야 할 동일 출처 페이지: `https://checkstyle.sourceforge.io/checks/` (전체 check 목록), `https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml` (실제 config XML)
|
||
|
||
## Related / 관련
|
||
|
||
- 실제 config XML: `https://github.com/checkstyle/checkstyle/blob/master/src/main/resources/google_checks.xml`
|
||
- 이 자료를 인용한 branch-note: [[raw/branch-notes/feature-static-analysis-quality-contract]]
|
||
- 이 자료를 인용한 wiki 요약: (생성 시 추가)
|