--- id: wiki-2026-0508-concrete-syntax-tree-cst title: Concrete Syntax Tree (CST) category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [P-Reinforce-AUTO-858963] duplicate_of: none source_trust_level: A confidence_score: 0.9 tags: [auto-reinforced] raw_sources: [] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Concrete Syntax Tree (CST)" inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Concrete Syntax Tree (CST)|Concrete Syntax Tree (CST]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > Concrete Syntax Tree (CST)λŠ” 파슀 트리(Parse Tree)라고도 뢈리며, λ¬Έλ§₯ 자유 문법(context-free grammar)의 트리 ν‘œν˜„ ν˜•νƒœλ‘œ μ»΄νŒŒμΌλŸ¬κ°€ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜λŠ” 방식을 λ³΄μ—¬μ£ΌλŠ” 곡식적인 ꡬ쑰이닀 [1]. 좔상 ꡬ문 트리(AST)와 달리 ꡬ문적 μš”μ†ŒλΏλ§Œ μ•„λ‹ˆλΌ λ―Έμ„Έν•œ 문체, μ–΄νœ˜, λ ˆμ΄μ•„μ›ƒ(λ“€μ—¬μ“°κΈ° λ“±) μ„ΈλΆ€ μ‚¬ν•­κΉŒμ§€ μ½”λ“œμ˜ λͺ¨λ“  츑면을 μ •λ°€ν•˜κ²Œ ν¬μ°©ν•œλ‹€ [2]. μ΄λŸ¬ν•œ ꡬ체적 νŠΉμ„± λ•Œλ¬Έμ— μ½”λ“œ ν¬λ§·νŒ… λ“± μ†ŒμŠ€ μ½”λ“œκ°€ λ³€ν™˜λ  λ•Œ κ·Έ ν˜•νƒœκ°€ 크게 λ³€κ²½λ˜λ©°, 졜근 μ½”λ“œ μž‘μ„±μžλ₯Ό μ‹λ³„ν•˜λŠ” 기계 ν•™μŠ΅ 기반의 μ½”λ“œ μŠ€νƒ€μΌλ‘œλ©”νŠΈλ¦¬(Code Stylometry) λͺ¨λΈμ—μ„œ μ€‘μš”ν•˜κ²Œ ν™œμš©λ˜κ³  μžˆλ‹€ [3, 4]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **μ •μ˜ 및 ꡬ쑰:** CSTλŠ” μ£Όμ–΄μ§„ 문법에 λŒ€ν•΄ 각 λ…Έλ“œκ°€ νŠΉμ • 기호둜 λ ˆμ΄λΈ”λ§λ˜λŠ” μˆœμ„œ 트리(ordered tree)이닀 [1]. 루트 λ…Έλ“œλŠ” μ‹œμž‘ 기호둜, 비단말(non-leaf) λ…Έλ“œλ“€μ€ 비단말 기호둜 이루어지며 μžμ‹ λ…Έλ“œλ“€κ³Όμ˜ κ΄€κ³„λŠ” λ¬Έλ²•μ˜ 생성 κ·œμΉ™μ„ μ •ν™•ν•˜κ²Œ λ°˜μ˜ν•˜μ—¬ κ΅¬μ„±λœλ‹€ [5]. - **ASTμ™€μ˜ 차이점:** 좔상 ꡬ문 트리(AST)κ°€ μ½”λ“œ νŒŒμ‹± ν›„ λ ˆμ΄μ•„μ›ƒ νŠΉμ§• 등을 μΆ”μƒν™”ν•˜μ—¬ λ°°μ œν•˜λŠ” 반면, CSTλŠ” μ½”λ“œλ₯Ό ν¬λ§·νŒ…ν•˜κ±°λ‚˜ 여백을 λ³€κ²½ν•  λ•Œμ˜ λ ˆμ΄μ•„μ›ƒ μ •λ³΄κΉŒμ§€ κ·ΈλŒ€λ‘œ μœ μ§€ν•œλ‹€ [3, 6]. λ”°λΌμ„œ μ½”λ“œλ₯Ό λ‹€λ₯Έ ν˜•νƒœλ‘œ μž¬μ •λ ¬ν•˜λŠ” μ†ŒμŠ€-λŒ€-μ†ŒμŠ€ λ³€ν™˜ μ‹œ ASTλŠ” 동일할 수 μžˆμ§€λ§Œ, CSTλŠ” μœ μ˜λ―Έν•˜κ²Œ λ³€κ²½λœλ‹€ [3]. - **CST 경둜(Path) 및 λ¬Έλ§₯ μΆ”μΆœ:** CST λ‚΄μ—μ„œ 두 단말 λ…Έλ“œ 사이λ₯Ό μœ„μ•„λž˜λ‘œ μ΄λ™ν•˜λŠ” μ‹œν€€μŠ€λ₯Ό 'CST 경둜(CST path)'라고 μ •μ˜ν•œλ‹€ [7]. 이 κ²½λ‘œμ™€ μ‹œμž‘ 및 μ’…λ£Œ λ…Έλ“œμ˜ μ‹€μ œ μ½”λ“œ 토큰 값을 κ²°ν•©ν•œ 것을 '경둜 λ¬Έλ§₯(path context)'이라 λΆ€λ₯΄λ©°, μ½”λ“œμ˜ μ–΄νœ˜μ , ꡬ문적, λ ˆμ΄μ•„μ›ƒμ  νŠΉμ§•μ„ μœ μ§€ν•˜λŠ” 데이터 ν‘œν˜„ μˆ˜λ‹¨μœΌλ‘œ 쓰인닀 [8, 9]. - **μ½”λ“œ 뢄석 및 μž‘μ„±μž 식별(Stylometry)μ—μ„œμ˜ ν™œμš©:** μ΅œμ‹  기계 ν•™μŠ΅ λͺ¨λΈ(예: code2vec)은 μ½”λ“œμ˜ 의미둠적 μš”μ†Œμ™€ 문체적 μš”μ†Œλ₯Ό λͺ¨λ‘ λ³΄μ‘΄ν•˜κΈ° μœ„ν•΄ AST λŒ€μ‹  CSTλ₯Ό μž…λ ₯κ°’μœΌλ‘œ μ‚¬μš©ν•œλ‹€ [4]. μ‹€μ œ μ‹€ν—˜ κ²°κ³Ό, AST λŒ€μ‹  CST 기반의 μ½”λ“œ ν‘œν˜„μ„ μ‚¬μš©ν•˜λ©΄ λ ˆμ΄μ•„μ›ƒ 정보가 λ°˜μ˜λ˜μ–΄ μ½”λ“œ μž‘μ„±μž 식별(Authorship attribution)의 정확도가 크게 ν–₯상(51.00%μ—μ„œ 67.86%둜 증가)λ˜λŠ” κ²ƒμœΌλ‘œ ν™•μΈλ˜μ—ˆλ‹€ [10, 11]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** Abstract Syntax Tree (AST), Code Stylometry, Parse Tree - **Projects/Contexts:** ν”„λ‘œκ·Έλž˜λ¨Έμ˜ μ½”λ“œ μž‘μ„± μŠ€νƒ€μΌμ„ λΆ„μ„ν•˜μ—¬ μž‘μ„±μžλ₯Ό μ‹λ³„ν•˜λŠ” μ½”λ“œ μŠ€νƒ€μΌλ‘œλ©”νŠΈλ¦¬ μ—°κ΅¬μ—μ„œ, μ½”λ“œ ν¬λ§·νŒ…([[Formatting|Formatting]]) 및 μΆ•μ†Œ(minification) 기술이 식별 정확도에 λ―ΈμΉ˜λŠ” 영ν–₯을 μΈ‘μ •ν•˜κΈ° μœ„ν•œ μ½”λ“œ ν‘œν˜„ λ°©μ‹μœΌλ‘œ μ‚¬μš©λ¨ [3, 12, 13]. - **Contradictions/Notes:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. --- *Last updated: 2026-04-19* --- ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*