--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[AST(Abstract Syntax Tree)|AST(Abstract Syntax Tree]] last_updated: 2026-05-02 --- # [[AST(Abstract Syntax Tree)|AST(Abstract Syntax Tree]] ## ๐Ÿ“Œ Brief Summary > AST(Abstract Syntax Tree, ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ)๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ํŒŒ์‹ฑํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•์  ๊ตฌ์กฐ๋ฅผ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๊ณต๋ฐฑ์ด๋‚˜ ๋“ค์—ฌ์“ฐ๊ธฐ ๊ฐ™์€ ํ‘œ๋ฉด์ ์ธ ๋ ˆ์ด์•„์›ƒ ์ •๋ณด๋Š” ๋ฐฐ์ œํ•˜๊ณ  ๋ณธ์งˆ์ ์ธ ๊ตฌ๋ฌธ ํŠน์ง•๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌ์กฐ๋งŒ์„ ๋ณด์กดํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค [1]. ์ฃผ๋กœ [[SAST|SAST]](์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ), ๋ฆฐํŒ…(Linting), ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋“œ ์ž‘์„ฑ์ž๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ฝ”๋“œ ์Šคํƒ€์ผ๋กœ๋ฉ”ํŠธ๋ฆฌ(Code Stylometry) ๋ถ„์•ผ์—์„œ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [1, 2]. --- ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ(AST, Abstract Syntax Tree)๋Š” ์ตœ์‹  AI ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ๋ถ„์„ ๋ฐ ๋ฆฌ๋ทฐ ๋„๊ตฌ์—์„œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์‹ฌ์ธต์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ํ™œ์šฉ๋˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค [1, 2]. CodeRabbit๊ณผ ๊ฐ™์€ ๋„๊ตฌ์—์„œ ์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ(SAST) ๋ฐ ์ƒ์„ฑํ˜• AI์™€ ๊ฒฐํ•ฉ๋˜์–ด ์ฝ”๋“œ์˜ ๋Ÿฐํƒ€์ž„ ๋ฒ„๊ทธ๋ฅผ ํƒ์ง€ํ•˜๊ณ  ์‹œ๋‹ˆ์–ด ์—”์ง€๋‹ˆ์–ด ์ˆ˜์ค€์˜ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [3, 4]. ์†Œ์Šค ๋ฐ์ดํ„ฐ ๋‚ด์—๋Š” AST์˜ ๊ธฐ์ˆ ์  ๊ตฌ์กฐ๋‚˜ ํŒŒ์‹ฑ ์›๋ฆฌ์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ“– Core Content * **AST์˜ ๊ตฌ์กฐ์  ํŠน์ง• ๋ฐ CST์™€์˜ ์ฐจ์ด** AST๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„(Parsing)ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง€๋ฉฐ, ์ปดํŒŒ์ผ๋Ÿฌ๋‚˜ ๋ถ„์„ ๋„๊ตฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๋Š” ์ถ”์ƒ์ ์ธ ๋ผˆ๋Œ€ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ฝ”๋“œ์˜ ๋“ค์—ฌ์“ฐ๊ธฐ๋‚˜ ์ค„ ๋ฐ”๊ฟˆ ๋“ฑ ๋ ˆ์ด์•„์›ƒ ์†์„ฑ์„ ์ฒ ์ €ํžˆ ๋ณด์กดํ•˜๋Š” CST(Concrete Syntax Tree)์™€ ๋‹ฌ๋ฆฌ, AST๋Š” ์ด๋Ÿฌํ•œ ๋ ˆ์ด์•„์›ƒ ํŠน์ง•์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค [1, 3]. ๋”ฐ๋ผ์„œ ์ฝ”๋“œ๋ฅผ ํฌ๋งทํŒ…ํ•˜๊ฑฐ๋‚˜ ์—ฌ๋ฐฑ์„ ํฌ๊ฒŒ ์ˆ˜์ •ํ•˜๋”๋ผ๋„ ๊ตฌ๋ฌธ์ด ๋™์ผํ•˜๋‹ค๋ฉด ํŒŒ์‹ฑ ํ›„ ์ƒ์„ฑ๋˜๋Š” AST์˜ ๊ตฌ์กฐ๋Š” ๋ณ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [3]. * **์ •์  ๋ถ„์„(Static [[Analysis|Analysis]]) ๋ฐ ๋ณด์•ˆ ์Šค์บ๋‹์—์„œ์˜ ์—ญํ• ** ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ทจ์•ฝ์ ์„ ์ฐพ๋Š” SAST ๋„๊ตฌ๋“ค์€ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ํŒŒ์‹ฑํ•˜์—ฌ AST๋ฅผ ๊ตฌ์ถ•ํ•œ ๋’ค, ์—ฌ๊ธฐ์— ๋‹ค์–‘ํ•œ ๋ถ„์„ ๊ธฐ๋ฒ•์„ ์ ์šฉํ•˜์—ฌ ์ฝ”๋“œ์˜ ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜์™€ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ํƒ์ง€ํ•ฉ๋‹ˆ๋‹ค [2]. ๋˜ํ•œ, `[[ESLint|ESLint]]-plugin-jsx-a11y`์™€ ๊ฐ™์€ ๋ฆฐํ„ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์€ AST๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ •์  ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ•ด ์ฝ”๋“œ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ์ฆ‰๊ฐ์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [4]. AI๋ฅผ ํ™œ์šฉํ•œ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‹œ์Šคํ…œ ์—ญ์‹œ ์กฐ๊ฑด๋ฌธ, ๋ฃจํ”„, try-catch ๊ตฌ์กฐ ๋“ฑ์˜ AST ๋…ธ๋“œ ์ˆ˜๋ฅผ ์ธ์ง€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ์˜ ๊ตฌ์กฐ์  ๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค [5]. * **์ฝ”๋“œ ์Šคํƒ€์ผ๋กœ๋ฉ”ํŠธ๋ฆฌ(์ž‘์„ฑ์ž ์‹๋ณ„)์—์„œ์˜ ํ™œ์šฉ** ๊ธฐ๊ณ„ํ•™์Šต์„ ํ™œ์šฉํ•ด ์†Œ์Šค ์ฝ”๋“œ์˜ ์ž‘์„ฑ์ž๋ฅผ ์ถ”์ ํ•˜๋Š” '์ฝ”๋“œ ์Šคํƒ€์ผ๋กœ๋ฉ”ํŠธ๋ฆฌ' ์—ฐ๊ตฌ์—์„œ AST๋Š” ์ž‘์„ฑ์ž ๊ณ ์œ ์˜ ๊ตฌ๋ฌธ์ (Syntactic) ํŠน์„ฑ์„ ์ถ”์ถœํ•˜๋Š” ํ‘œ์ค€์ ์ธ ํ‘œํ˜„ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [1, 6]. ์ž‘์„ฑ์ž๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๋ฌธ๋ฒ• ๊ตฌ์กฐ, ๋…ธ๋“œ์˜ ๋ฐ”์ด๊ทธ๋žจ(bigram), ํŠธ๋ฆฌ ์ „์ฒด์˜ ๋…ธ๋“œ ์ˆ˜, ๋„ˆ๋น„์™€ ๊นŠ์ด ๋“ฑ AST ๊ธฐ๋ฐ˜์˜ ํŠน์ง•๋“ค์€ ํ‘œ๋ฉด์ ์ธ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๋‚˜ ๋ณ€์ˆ˜๋ช…๋ณด๋‹ค ์œ„์กฐํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ์–ด๋ ค์›Œ ์ž‘์„ฑ์ž์˜ ๊ณ ์œ ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์  ํŠน์ง•์„ ํฌ์ฐฉํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•˜๊ฒŒ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค [7-9]. --- - **AI ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋„๊ตฌ์˜ ๋ถ„์„ ๊ธฐ๋ฐ˜**: AST ๋ถ„์„์€ ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๊ณผ์ •์—์„œ ์‹ค์ œ ํ™˜๊ฒฝ์˜ ๋Ÿฐํƒ€์ž„ ๋ฒ„๊ทธ๋ฅผ 42~48%๊นŒ์ง€ ํƒ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์ฒจ๋‹จ ๊ฒ€์ฆ ๋„๊ตฌ์˜ ๊ธฐ๋ฐ˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [1]. - **๋‹ค์ธต์  ๋ถ„์„ ์ฒด๊ณ„์˜ ์ผ๋ถ€**: CodeRabbit ๋“ฑ์˜ ๋„๊ตฌ๋Š” ์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ(AST) ํ‰๊ฐ€๋ฅผ ์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ(SAST) ๋ฐ ์ƒ์„ฑํ˜• AI ๊ธฐ๋ฐ˜์˜ ํ”ผ๋“œ๋ฐฑ ๊ธฐ๋Šฅ๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋‹ค์ธต์ ์ธ ์ฝ”๋“œ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค [3, 4]. - **์‹ฌ์ธต์  ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ง€์›**: ๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ๋‚˜ ๊ตฌ๋ฌธ ๊ฒ€์‚ฌ๋ฅผ ๋„˜์–ด, AST๋Š” ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋งฅ๋ฝ๊ณผ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ์‹ฌ์ธต์ ์ธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค [2]. - *(์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค: AST๊ฐ€ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๋…ธ๋“œ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š”์ง€, ํŒŒ์„œ(Parser)์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹ ๋“ฑ ๊ธฐ์ˆ ์  ์ž‘๋™ ์›๋ฆฌ์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ์„ค๋ช…์€ ์†Œ์Šค์— ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)* ## โš–๏ธ Trade-offs & Caveats - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. --- - AST ๋ถ„์„์„ ํ†ตํ•ด ์‹ค์ œ ๋Ÿฐํƒ€์ž„ ๋ฒ„๊ทธ๋ฅผ ๋†’์€ ๋น„์œจ๋กœ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์„ฑ(functionality), ๋ณด์•ˆ ์ทจ์•ฝ์ , ์•„ํ‚คํ…์ฒ˜ ์ •๋ ฌ ๋“ฑ์„ ์™„๋ฒฝํžˆ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์—ฌ์ „ํžˆ ์ธ๊ฐ„์˜ ๊ฒ€์ฆ(Human validation)์ด ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค [1]. - *(์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค: AST๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์ˆœํšŒํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ, ๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฒ„ํ—ค๋“œ, ํ˜น์€ ์–ธ์–ด๋ณ„ ํŒŒ์‹ฑ ๋ณต์žก๋„ ๋“ฑ ์ง์ ‘์ ์ธ ๊ธฐ์ˆ ์  ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋‚˜ ์ œ์•ฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ์†Œ์Šค์— ์—†์Šต๋‹ˆ๋‹ค.)* ## ๐Ÿ”— Knowledge Connections - **Related Topics:** CST(Concrete Syntax Tree), [[แ„Œแ…ฅแ†ผแ„Œแ…ฅแ†จ แ„‹แ…ขแ„‘แ…ณแ†ฏแ„…แ…ตแ„แ…ฆแ„‹แ…ตแ„‰แ…งแ†ซ แ„‡แ…ฉแ„‹แ…กแ†ซ แ„แ…ฆแ„‰แ…ณแ„แ…ณ (SAST)|์ •์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ณด์•ˆ ํ…Œ์ŠคํŠธ(SAST]], ์ฝ”๋“œ ์Šคํƒ€์ผ๋กœ๋ฉ”ํŠธ๋ฆฌ(Code Stylometry), [[แ„Œแ…ฅแ†ผแ„Œแ…ฅแ†จ แ„‡แ…ฎแ†ซแ„‰แ…ฅแ†จ(Static Analysis)|์ •์  ๋ถ„์„(Static Analysis]] - **Projects/Contexts:** ๊ธฐ๊ณ„ํ•™์Šต ๊ธฐ๋ฐ˜์˜ ์†Œ์Šค ์ฝ”๋“œ ์ €์ž ์‹๋ณ„ ์—ฐ๊ตฌ, AI ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ๋ณต์žก๋„ ๋ถ„์„(์นด์นด์˜ค), ์ •์  ๋ณด์•ˆ ์ทจ์•ฝ์  ์Šค์บ๋‹ ํŒŒ์ดํ”„๋ผ์ธ - **Contradictions/Notes:** AST ๊ธฐ๋ฐ˜์˜ ๋ถ„์„์€ ์ž‘์„ฑ์ž์˜ ๋ณธ์งˆ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์œ„์กฐ ๊ณต๊ฒฉ์— ๊ฐ•ํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ๊ณต๋ฐฑ์ด๋‚˜ ๋“ค์—ฌ์“ฐ๊ธฐ ๋“ฑ ๊ฐœ๋ฐœ์ž์˜ ๊ฐœ์„ฑ์ด ๋ฌป์–ด๋‚˜๋Š” '๋ ˆ์ด์•„์›ƒ ํŠน์ง•'์„ ๋‹ด์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์†Œ์Šค ์ฝ”๋“œ ์ž‘์„ฑ์ž ์‹๋ณ„ ์‹คํ—˜์—์„œ AST ๊ธฐ๋ฐ˜ ๋ชจ๋ธ(51.00%)์€ ๋ ˆ์ด์•„์›ƒ ์ •๋ณด๊นŒ์ง€ ํฌํ•จํ•˜๋Š” CST ๊ธฐ๋ฐ˜ ๋ชจ๋ธ(67.86%)์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ์€ ์ •ํ™•๋„๋ฅผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค [10, 11]. --- *Last updated: 2026-04-19* --- --- ### Related Concepts #### [์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ ๋ถ„์„ ๊ธฐ์ˆ ] - [[SAST (Static Application Security Testing)]] - ์—ฐ๊ฒฐ ์ด์œ : AST ํ‰๊ฐ€๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ทจ์•ฝ์ ์„ ์ฐพ๋Š” SAST ๊ธฐ๋ฒ•๊ณผ ๊ฒฐํ•ฉ๋˜์–ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [3, 4]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ •์  ๋ถ„์„ ๊ณผ์ •์—์„œ AST๊ฐ€ ์–ด๋–ป๊ฒŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ทจ์•ฝ์ ์„ ๊ตฌ์กฐ์ ์œผ๋กœ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ] - [[AI Code Review Tools]] - ์—ฐ๊ฒฐ ์ด์œ : CodeRabbit๊ณผ ๊ฐ™์€ ์ตœ์‹  AI ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋„๊ตฌ๋“ค์ด AST๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•ด ๋งฅ๋ฝ์„ ์žƒ์ง€ ์•Š๋Š” ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค [2, 3]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ์ƒ์„ฑํ˜• AI์™€ AST ๊ธฐ๋ฐ˜์˜ ๊ตฌ์กฐ ๋ถ„์„์ด ์–ด๋–ป๊ฒŒ ํ˜‘๋ ฅํ•˜์—ฌ ์‹œ๋‹ˆ์–ด ์—”์ง€๋‹ˆ์–ด๊ธ‰ ํ”ผ๋“œ๋ฐฑ์„ ์‚ฐ์ถœํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Deeper Research Questions - AST(์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ) ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•œ ๋ถ„์„ ๊ธฐ๋ฒ•์€ SAST์™€ ๊ฒฐํ•ฉ๋  ๋•Œ ์–ด๋–ค ์œ ํ˜•์˜ ๋Ÿฐํƒ€์ž„ ๋ฒ„๊ทธ๋‚˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ํŠนํžˆ ์œ ๋ฆฌํ•œ๊ฐ€? - CodeRabbit๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋Š” ์ถ”์ถœ๋œ AST ์ •๋ณด์™€ ์ƒ์„ฑํ˜• AI์˜ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•˜์—ฌ ์ฝ”๋“œ ๋งฅ๋ฝ(Context)์„ ๋ถ„์„ํ•˜๋Š”๊ฐ€? - *(์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค: AST์˜ ๋‚ด๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‚˜ ์ž๋ฃŒ๊ตฌ์กฐ์  ํŠน์ง•์— ๋Œ€ํ•ด ํŒŒ๊ณ ๋“œ๋Š” ํ›„์† ์งˆ๋ฌธ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ƒ์„ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.)* ### Practical Application Contexts - **Implementation:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. - **System Design:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. - **Operation / Maintenance:** ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์˜ ์œ ์ง€๋ณด์ˆ˜ ๋ฐ ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ฆฌ๋ทฐ ๋‹จ๊ณ„์—์„œ AST ๊ธฐ๋ฐ˜์˜ ์ž๋™ํ™” ๋„๊ตฌ๋ฅผ ๋„์ž…ํ•˜์—ฌ, PR(Pull Request) ๋ถ„์„๊ณผ ๋Ÿฐํƒ€์ž„ ๋ฒ„๊ทธ ์‚ฌ์ „ ํƒ์ง€์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 2, 4]. - **Learning Path:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. - **My Project Relevance:** ๋ณต์žกํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃฐ ๋•Œ, ๋‹จ์ˆœ ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ๊ธฐ๊ฐ€ ์•„๋‹Œ AST ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ ๋ถ„์„๊ณผ AI๊ฐ€ ๊ฒฐํ•ฉ๋œ ์†”๋ฃจ์…˜์„ ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉํ•˜์—ฌ ๋…ผ๋ฆฌ์  ๋ฒ„๊ทธ๋ฅผ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜๋„๋ก ์šด์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2, 4]. ### Adjacent Topics - [[์ •์  ๋ฐ ๋™์  ๋ถ„์„ (Static and Dynamic Analysis)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: AST๋ฅผ ์ด์šฉํ•œ ์ฝ”๋“œ์˜ ์ •์  ๊ตฌ์กฐ ๋ถ„์„์„ ์ดํ•ดํ•œ ํ›„, ์ด๋ฅผ ๋ณด์™„ํ•˜๋Š” ๊ธฐํ˜ธ ์‹คํ–‰(Symbolic Execution)์ด๋‚˜ ์‹ค์ œ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์˜ ๋™์  ๋ถ„์„ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ์ง€์‹์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. - [[์ฝ”๋“œ๋ฒ ์ด์Šค ํ•ด๋… ํ”„๋ ˆ์ž„์›Œํฌ (Codebase Reading Framework)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ๊ธฐ๊ณ„๊ฐ€ AST๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ '์ฝ๋Š”' ๋ฐฉ์‹์„ ์ธ๊ฐ„ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ํ•˜ํ–ฅ์‹/์ƒํ–ฅ์‹ ์ „๋žต์ด๋‚˜ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ๋ฅผ '๋…ํ•ด'ํ•˜๋Š” ์ธ์ง€์  ๊ณผ์ •๊ณผ ๋น„๊ต ๋ฐ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. --- *Last updated: 2026-05-02* ## ๐Ÿงช ๊ฒ€์ฆ ์ƒํƒœ (Validation) - **์ •๋ณด ์ƒํƒœ:** draft - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** A - **๊ฒ€ํ†  ์ด์œ :** Datacollector์—์„œ ์ž๋™ ์ถ”์ถœ๋œ ์œ„ํ‚ค ๋ฐ์ดํ„ฐ์˜ ์ดˆ๊ธฐ ํ†ตํ•ฉ. ## ๐Ÿงฌ ์ค‘๋ณต ๊ฒ€์‚ฌ (Duplicate Check) - **๊ธฐ์กด ์œ ์‚ฌ ๋ฌธ์„œ:** None - **์ฒ˜๋ฆฌ ๋ฐฉ์‹:** CREATE - **์ฒ˜๋ฆฌ ์ด์œ :** ์‹ ๊ทœ ์ง€์‹ ์ฒด๊ณ„ ๋„์ž