--- id: ESLINT-001 category: "10_Wiki/πŸ’‘ Topics/AI" confidence_score: 1.0 tags: [static-analysis, javascript, devtools, dx] last_reinforced: 2026-04-26 --- # Custom ESLint Rules Development (μ‚¬μš©μž μ •μ˜ ESLint κ·œμΉ™ 개발) ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "νŒ€μ˜ μ½”λ“œ ν’ˆμ§ˆμ„ μžλ™ν™”λœ λ¬Έμ§€κΈ°λ‘œ μ§€μΌœλΌ" β€” λ‹¨μˆœν•œ 문법 검사λ₯Ό λ„˜μ–΄, ν”„λ‘œμ νŠΈ 특유의 μ•ˆν‹° νŒ¨ν„΄μ΄λ‚˜ μ•„ν‚€ν…μ²˜ κ·œμΉ™μ„ AST(좔상 ꡬ문 트리) 뢄석을 톡해 μ‹€μ‹œκ°„μœΌλ‘œ κ°•μ œν•˜λŠ” 기법. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μΆ”μΆœλœ νŒ¨ν„΄:** μ†ŒμŠ€μ½”λ“œλ₯Ό 트리 ꡬ쑰(AST)둜 λ³€ν™˜ν•œ λ’€, νŠΉμ • λ…Έλ“œ λ°©λ¬Έ μ‹œ(Visitor Pattern) κ·œμΉ™ μœ„λ°˜ μ—¬λΆ€λ₯Ό κ²€μ‚¬ν•˜κ³  μˆ˜μ •μ•ˆ(Fixer)을 μ œμ•ˆν•˜λŠ” 정적 뢄석 νŒ¨ν„΄. - **μ„ΈλΆ€ λ‚΄μš©:** - **AST Exploration:** `espree` νŒŒμ„œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ½”λ“œλ₯Ό λ…Έλ“œ λ‹¨μœ„(VariableDeclaration, CallExpression λ“±)둜 λΆ„ν•΄. - **Rule Definition:** `meta`(메타데이터)와 `create`(μ‹€μ œ 둜직) ν•¨μˆ˜λ₯Ό μ •μ˜ν•˜μ—¬ κ·œμΉ™ 생성. - **Context Report:** κ·œμΉ™ μœ„λ°˜ μ‹œ μ—λŸ¬ λ©”μ‹œμ§€μ™€ μœ„μΉ˜λ₯Ό λ³΄κ³ ν•˜μ—¬ κ°œλ°œμžμ—κ²Œ μ•Œλ¦Ό. - **Auto-fixing:** `fixer` APIλ₯Ό μ‚¬μš©ν•˜μ—¬ μœ„λ°˜λœ μ½”λ“œλ₯Ό μ˜¬λ°”λ₯Έ ν˜•νƒœλ‘œ μžλ™ λ³€ν™˜ν•˜λŠ” 둜직 κ΅¬ν˜„. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** λ‹¨μˆœ μ •κ·œν‘œν˜„μ‹ 기반 κ²€μ‚¬μ—μ„œ, μ½”λ“œμ˜ 의미적 ꡬ쑰λ₯Ό μ΄ν•΄ν•˜λŠ” AST 기반 λΆ„μ„μœΌλ‘œ μ •μ°©. - **μ •μ±… λ³€ν™”:** Antigravity ν”„λ‘œμ νŠΈμ—μ„œλŠ” AI μ—μ΄μ „νŠΈκ°€ μž‘μ„±ν•˜λŠ” μ½”λ“œμ˜ 일관성을 μœ„ν•΄ μ „μš© ESLint ν”ŒλŸ¬κ·ΈμΈμ„ κ°œλ°œν•˜μ—¬ 운영 쀑. ## πŸ”— 지식 μ—°κ²° (Graph) - **Parent:** 10_Wiki/πŸ’‘ Topics/AI - **Related:** Static-Analysis, AST, Developer-Experience - **Raw Source:** 10_Wiki/Topics/AI/Custom-ESLint-Rules-Development.md