~/VibeHandbook
$39

챕터 10 · 03

타입 체크와 린팅: 공짜로 잡는 실수

두 도구는 당신 쪽에서 거의 노력 없이도 통째로 한 부류의 에러를 잡아낸다:

  • 타입 체크 (TypeScript, mypy 등)는 "숫자가 기대되는 자리에 문자열을 넘겼다"와 "이 값은 undefined일 수 있다"를 잡는다. AI는 타입이 불가능하게 만드는 엣지 케이스를 잊는 것을 좋아한다.
  • 린팅 (ESLint, Ruff 등)은 사용되지 않는 변수, 도달 불가능한 코드, 스타일 표류를 잡는다. AI가 손댄 코드베이스가 서서히 죽처럼 뭉개지는 것을 막아준다.

이것들을 일찍 설정하고 AI에게 따르라고 말하라: "타입 체커와 린터를 돌리고, 끝났다고 말하기 전에 그것들이 보고하는 모든 것을 고쳐라." 깨끗한 타입 체크를 완료의 정의 일부로 취급하라.

하지만 게으른 탈출구를 경계하라. 타입 체커가 불평할 때, 진짜로 올바른 수정은 그것이 찾아낸 케이스 — undefined 값, 잘못된 타입 — 를 처리하는 것이다. 빠른 수정은 // @ts-ignore, any, 혹은 # type: ignore 주석으로 그 불평을 입막음하는 것인데, AI는 빨간 글씨를 사라지게 하기 때문에 끊임없이 이것들에 손을 뻗는다. 그것들은 또한 점검이 도우려던 바로 그 자리에서 점검을 무가치하게 만든다. 디프에 억제(suppression) 주석이 나타나면, 그것을 해결책이 아니라 질문으로 취급하라: "이게 왜 필요한가? 무시하지 말고 근본 타입을 고쳐라."

오프라인으로 보고 싶으세요?

PDF + EPUB + 다운로드형 프롬프트 라이브러리 + 버전 업데이트를 받으세요.

$ PDF 받기 — $39