본문으로 건너뛰기
개발 생산성 도구 기초집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

Linter와 정적 분석: 실행 전에 실수 후보 찾기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Linter와 정적 분석: 실행 전에 실수 후보 찾기” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2‘불편한 규칙을 파일 전체에서 비활성화’ 상태에 관한 “Linter와 정적 분석: 실행 전에 실수 후보 찾기” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

6강. Linter와 정적 분석: 실행 전에 실수 후보 찾기 미완료 상태