28 lines
1.7 KiB
Markdown
28 lines
1.7 KiB
Markdown
---
|
|
id: [[P-Reinforce|P-Reinforce]]-AST-TRANS
|
|
category: Unified
|
|
confidence_score: 0.99
|
|
tags: [AST, Abstract Syntax Tree, Transformation, Compiler, Babel]
|
|
last_reinforced: 2026-04-20
|
|
---
|
|
|
|
# [[Abstract-Syntax-Tree-Transformation|Abstract-Syntax-Tree-Transformation]] (AST 변환)
|
|
|
|
## 📌 한 줄 통찰 (The Karpathy Summary)
|
|
> "코드를 조각하듯 변형하라." 소스 코드를 트리 구조로 분해한 뒤, 특정 노드를 추가, 삭제, 수정하여 완전히 새로운 기능이 담긴 코드로 재생산하는 현대 개발 도구의 핵심 마술이다.
|
|
|
|
## 📖 구조화된 지식 (Synthesized Content)
|
|
- **Code Transpilation**:
|
|
- 최신 자바스크립트(ES6+)를 구형 브라우저에서도 돌아가게 하는 `Babel` 같은 도구가 AST 변환의 가장 대표적인 사례다.
|
|
- **Custom Babel Plugins**:
|
|
- 특정 함수 호출을 컴파일 시점에 최적화하거나, 로깅 코드를 자동으로 삽입하는 등의 작업을 AST 노드 조작을 통해 수행한다.
|
|
- **Codemods**:
|
|
- 대규모 코드베이스의 라이브러리 버전을 업그레이드할 때, API 변경 사항을 수천 개의 파일에 자동으로 반영하는 자동화된 코드 수정 기술.
|
|
|
|
## ⚠️ 모순 및 업데이트 (RL Update)
|
|
- 무분별한 AST 변환은 디버깅을 지옥으로 만든다. 실행되는 코드와 원본 소스 코드가 결합력을 잃기 때문이다. 따라서 `Source Map` 생성을 철저히 관리하여 변환 후에도 원본 위치를 추적할 수 있게 해야 한다.
|
|
|
|
## 🔗 지식 연결 (Graph)
|
|
- Related: [[Abstract-Syntax-Tree-Traversal|Abstract-Syntax-Tree-Traversal]] , Custom-ESLint-Rules-Development
|
|
- Foundation: Computational Theory & Math/Information Theory
|