개발 생산성 도구 기초집LESSON 06
Linter와 정적 분석: 실행 전에 실수 후보 찾기
난이도초급
예상 시간45분
선수지식5강 Formatter
6강. Linter와 정적 분석: 실행 전에 실수 후보 찾기
1. 이번 강의에서 해결할 문제
사용하지 않는 변수, 잘못된 비교와 의심스러운 null 처리를 실행 뒤에 발견합니다. 정적 분석으로 빠른 피드백을 받되 모든 경고를 무조건 끄거나 따르지 않습니다.
2. 학습 목표
3. 핵심 개념
- Formatter: 표현을 일관되게 바꿉니다.
- Linter: 위험 패턴과 프로젝트 규칙 위반을 찾습니다.
- 타입 검사: 값과 호출 계약의 불일치를 찾습니다.
- 컴파일러 경고: 언어·빌드 도구가 의심스러운 코드를 알립니다.
웹은 ESLint, Python은 Ruff·Pylint, Java는 Checkstyle·SpotBugs 등 선택지가 있습니다. 새 도구를 강제하지 않고 package.json, pyproject.toml, Gradle Task와 IDE 설정을 먼저 확인합니다.
4. 단계별 실습
PowerShell · 실행 위치: 사용하는 프로젝트 루트
# Web
if (Test-Path .\package.json) {
$package = Get-Content .\package.json -Raw | ConvertFrom-Json
if ($package.scripts.lint) { npm.cmd run lint }
}
# Python
if (Test-Path .\.venv\Scripts\python.exe) {
& .\.venv\Scripts\python.exe -m pip show ruff
if ($LASTEXITCODE -eq 0) { & .\.venv\Scripts\python.exe -m ruff check . }
}
# Java
if (Test-Path .\gradlew.bat) { .\gradlew.bat check }
예상 결과: 이미 구성된 프로젝트에서는 파일·줄·규칙 정보 또는 성공 결과가 표시됩니다. 구성되지 않은 도구는 건너뛰며 관리자 권한은 필요하지 않습니다.
문서 · 파일 경로: docs/static-analysis.md
static-analysis.md
| Tool | Rule or warning | Location | Decision | Reason |
| --- | --- | --- | --- | --- |
| | | | fix / configure / keep | |
5. 도구와 설정이 동작하는 이유
정적 분석기는 구문 트리, 타입 정보와 규칙을 이용해 실행하지 않은 경로도 검사합니다. 실제 런타임 상태를 모두 알 수는 없으므로 경고는 조사할 후보이며 수정은 코드 의도와 테스트로 결정합니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2Linter와 정적 분석: 실행 전에 실수 후보 찾기 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
6강. Linter와 정적 분석: 실행 전에 실수 후보 찾기 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.