코드 포메터 : 프로젝트시에 개발자들끼리 일관된 코드스타일을 유지하도록 도와주는 것
코드 스타일 검사, 사용하지 않는 import/변수 탐지, 잠재적 버그 패턴 잡기


파일을 린트(lint) : 코드에서 문법 오류, 스타일 위반, 잠재적인 버그, 일관성 문제 등을 자동으로 검사하고 지적해주는 과정
ruff checklint.select / lint.extend-select / lint.ignore select = ["E", "F"] : E,F 두 카테로기만을 검사 대상으로 삼겠다는 뜻ignore = ["F401"] : 이 규칙만은 검사 대상에서 빼겠다는 뜻
ruff check --select E --extend-select B --ignore F401ruff check --select E 이런 명령에만 적용되고 기록이나 저장이 되지 않는다. 코드 내에서 개별 규칙 무시: x = 1 # noqa: F841 # F841 규칙 무시
전체 줄 무시 (모든 규칙): y = 2 # noqa #
파일의 맨 위에 # ruff: noqa : or # ruff: noqa: F401
x = 1 # noqa: F841 # ← 사실 문제 없음 (불필요한 noqa)
ruff check app.py --add-noqa import os # 사용 안 함 → F401 # noqa: F401
x= 1 # 공백 문제 → E221 # # noqa: E221
--fix--unsafe-fixes# Show unsafe fixes
ruff check --unsafe-fixes
Apply unsafe fixes
ruff check --fix --unsafe-fixes
[tool.ruff.lint]
extend-safe-fixes = ["F601"] # 안전하지 않은 F601를 안전한 수정 사항으로 승격
extend-unsafe-fixes = ["UP034"] # 안전한 UP034를안전하지 않은 수정 사항으로 강등
[tool.ruff.lint]
fixable = ["ALL"] # 수정 사항만 활성화
[tool.ruff.lint]
fixable = ["E", "F"] # E, F 카테고리만 자동 수정
unfixable = ["F401"] # 사용하지 않는 import(F401)는 고치지 않음
Ruff 실행이 끝날 때 프로그램 종료 코드(Exit code) 로 상태를 알려줌
타입 힌트를 검사하여 잘못된 타입의 사용을 미리 잡아줌





[tool.mypy]
python_version = "3.11"
ignore_missing_imports = true
disallow_untyped_defs = true
warn_unused_ignores = true
strict = true
단위테스트는 작성한 코드가 예상한 대로 동작하는지 검증
단위 테스트를 실행하는 도중에 한 번도 예상하지 못한 에러가 발생하지 안았다면 테스트는 성공 으로 간주되고, 반대로 예상치 못한 에러가 발생했다면 테스트는 실패로 간주

assert를 사용