--- id: P-REINFORCE-AUTO-17B6B7 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Code Stylometry (์ฝ”๋“œ ๋ฌธ์ฒด๋ก )" --- # [[Code Stylometry (แ„แ…ฉแ„ƒแ…ณ แ„†แ…ฎแ†ซแ„Žแ…ฆแ„…แ…ฉแ†ซ)|Code Stylometry (์ฝ”๋“œ ๋ฌธ์ฒด๋ก )]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์ฝ”๋“œ ๋ฌธ์ฒด๋ก (Code Stylometry)์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž‘์„ฑํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์†Œ์Šค ์ฝ”๋“œ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ์„ ๋ถ„์„ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์ž‘์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ์‹๋ณ„(์ €์ž ์‹๋ณ„)ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค [1], [2]. ์ด ๊ธฐ์ˆ ์€ ์†Œ์Šค ์ฝ”๋“œ๋‚˜ ์‹คํ–‰ ํŒŒ์ผ์— ๋‚จ๊ฒจ์ง„ ๋…ผ๋ฆฌ ๊ตฌ์กฐ, ๋ฐ์ดํ„ฐ ์œ ํ˜•, ์ฃผ์„, ๋ช…๋ช… ๊ทœ์น™, ๋ ˆ์ด์•„์›ƒ ๋“ฑ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ณ ์œ ์˜ ํŠน์ง•๋“ค์„ ์ถ”์ถœํ•˜์—ฌ ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ์ €์ž๋ฅผ ์ถ”์ ํ•œ๋‹ค [3], [2]. ์ฃผ๋กœ ์ฝ”๋“œ ํด๋ก  ํƒ์ง€๋‚˜ ๋ˆ„๋ฝ๋œ ์ €์ž‘์ž ์ •๋ณด ๋ณต๊ตฌ ๋“ฑ์— ์œ ์šฉํ•˜๊ฒŒ ์“ฐ์ผ ์ˆ˜ ์žˆ๋‹ค [4]. ๊ทธ๋Ÿฌ๋‚˜ ๋™์‹œ์— ๊ฒ€์—ด ๋ฐ ๊ฐ์‹œ ์šฐํšŒ ๋„๊ตฌ ๊ฐœ๋ฐœ์ž๋‚˜ ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—ฌ์ž์˜ ์ต๋ช…์„ฑ์„ ์œ„ํ˜‘ํ•˜๊ณ  ์‹ ์›์„ ๋…ธ์ถœ์‹œํ‚ค๋Š” ์ˆ˜๋‹จ์œผ๋กœ ์•…์šฉ๋  ์ˆ˜ ์žˆ์–ด ์‹ฌ๊ฐํ•œ ํ”„๋ผ์ด๋ฒ„์‹œ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ธฐ๋„ ํ•œ๋‹ค [4], [5], [6], [7]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์ฝ”๋“œ ๋ฌธ์ฒด๋ก ์˜ ํ•ต์‹ฌ ํŠน์ง• ๋ฐ ๋ถ„์„ ๊ธฐ๋ฒ•** ์ฝ”๋“œ ๋ฌธ์ฒด๋ก ์€ ์ €์ž ์‹๋ณ„์„ ์œ„ํ•ด ์ฃผ๋กœ ์„ธ ๊ฐ€์ง€ ๋ฒ”์ฃผ์˜ ํŠน์ง•์„ ํ™œ์šฉํ•œ๋‹ค. ์ฒซ์งธ, ์–ดํœ˜์  ํŠน์ง•(Lexical features)์€ ๋‹จ์–ด๋‚˜ ๋ฌธ์ž์˜ ์‚ฌ์šฉ ๋ฐฉ์‹๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค [3]. ๋‘˜์งธ, ๊ตฌ๋ฌธ์  ํŠน์ง•(Syntactic features)์€ ์–ธ์–ด์˜ ๋ฌธ๋ฒ• ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์ฃผ๋กœ AST(์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ)์˜ ํ˜•ํƒœ๋กœ ๋ถ„์„๋œ๋‹ค [3]. ์…‹์งธ, ๋ ˆ์ด์•„์›ƒ ํŠน์ง•(Layout features)์€ ๋„์–ด์“ฐ๊ธฐ๋‚˜ ๋“ค์—ฌ์“ฐ๊ธฐ, ๋ธ”๋ก ๊ธธ์ด ๊ฐ™์€ ์‹œ๊ฐ์ ์ธ ์ฝ”๋“œ ๋ฐฐ์น˜ ์Šต๊ด€์„ ์˜๋ฏธํ•œ๋‹ค [3]. ๊ธฐ์กด ๋ถ„์„์—์„œ๋Š” ๊ตฌ๋ฌธ ํŠน์ง•์— ์ง‘์ค‘ํ•œ AST๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ, ๋ ˆ์ด์•„์›ƒ ๋ฐ ์–ดํœ˜์  ํŠน์ง•์„ ๋ชจ๋‘ ๋ณด์กดํ•˜๋Š” CST(๊ตฌ์ฒด ๊ตฌ๋ฌธ ํŠธ๋ฆฌ)๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ €์ž ์‹๋ณ„ ์ •ํ™•๋„๊ฐ€ 51%์—์„œ 68%๋กœ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ๋‹ค [8], [9]. ์ €์ž์˜ ํŠน์ง•์„ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ์œ„ํ•ด ๋žœ๋ค ํฌ๋ ˆ์ŠคํŠธ(Random Forest), ์„œํฌํŠธ ๋ฒกํ„ฐ ๋จธ์‹ (SVM), ์‹ ๊ฒฝ๋ง(Neural Networks) ๋“ฑ์˜ ๋จธ์‹ ๋Ÿฌ๋‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋„๋ฆฌ ํ™œ์šฉ๋œ๋‹ค [10], [11], [12]. * **์ต๋ช…์„ฑ ์œ„ํ˜‘๊ณผ ์ ๋Œ€์  ์ฝ”๋“œ ๋ฌธ์ฒด๋ก  (Adversarial Code Stylometry)** ์ฝ”๋“œ ๋ฌธ์ฒด๋ก  ๊ธฐ์ˆ ์ด ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ ๋Œ€๊ทœ๋ชจ ์˜คํ”ˆ์†Œ์Šค ํ™˜๊ฒฝ์—์„œ๋„ ๋†’์€ ์ •ํ™•๋„๋กœ ์ž‘์„ฑ์ž๋ฅผ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ํ”„๋ผ์ด๋ฒ„์‹œ์™€ ์ต๋ช…์„ฑ์— ๋Œ€ํ•œ ํฐ ์œ„ํ˜‘์œผ๋กœ ๋‹ค๊ฐ€์˜จ๋‹ค [4], [5]. ์ด์— ๋Œ€ํ•ญํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ž์‹ ์˜ ์Šคํƒ€์ผ์„ ์ˆจ๊ธฐ๊ฑฐ๋‚˜(๋‚œ๋…ํ™”, Obfuscation) ํƒ€์ธ์˜ ์Šคํƒ€์ผ์„ ์˜๋„์ ์œผ๋กœ ๋ชจ๋ฐฉ(์œ„์žฅ, Mimicry)ํ•˜์—ฌ ์ž๋™ํ™”๋œ ์‹๋ณ„ ์‹œ์Šคํ…œ์„ ์†์ด๋ ค๋Š” ์ ๋Œ€์  ๊ธฐ๋ฒ•์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๊ฐ€ ํ™œ๋ฐœํžˆ ์ง„ํ–‰ ์ค‘์ด๋‹ค [13], [14], [15]. * **์ฝ”๋“œ ํฌ๋งคํŒ… ๋ฐ ์ถ•์†Œ(Minification)๊ฐ€ ์ €์ž ์‹๋ณ„์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ** ์ผ๊ด€๋œ ์ฝ”๋”ฉ ๊ทœ์น™์„ ์ ์šฉํ•˜๋Š” '์ฝ”๋“œ ํฌ๋งคํŒ…(Code Formatting)'์ด๋‚˜ ๋ถˆํ•„์š”ํ•œ ๊ณต๋ฐฑ, ์ค„๋ฐ”๊ฟˆ ๋“ฑ์„ ์ œ๊ฑฐํ•˜์—ฌ ์ฝ”๋“œ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋Š” '์ฝ”๋“œ ์ถ•์†Œ(Code Minification)'๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ์ผ๋ฐ˜์ ์ธ ๊ด€ํ–‰์ด๋‹ค [16], [17], [18]. ์ด๋Ÿฌํ•œ ์†Œ์Šค ๋Œ€ ์†Œ์Šค(source-to-source) ๋ณ€ํ™˜์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๊ณ ์œ ํ•œ ์Šคํƒ€์ผ ์ง€๋ฌธ ์ผ๋ถ€๋ฅผ ์ง€์šฐ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ฒด๋ก ์˜ ์ •ํ™•๋„๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค [19], [20]. CST ๊ธฐ๋ฐ˜์˜ ์‹คํ—˜ ๊ฒฐ๊ณผ, ์ฝ”๋“œ ํฌ๋งคํŒ…์„ ์ ์šฉํ•˜๋ฉด ์‹๋ณ„ ์ •ํ™•๋„๊ฐ€ 68%์—์„œ 53%๋กœ ํ•˜๋ฝํ•˜์˜€๊ณ , ์ฝ”๋“œ ์ถ•์†Œ๋ฅผ ์ ์šฉํ•˜๋ฉด 50%๊นŒ์ง€ ๋–จ์–ด์กŒ๋‹ค [21], [22]. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฐ์†Œ ํญ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์‹๋ณ„ ํ™•๋ฅ ์ด ๋ฌด์ž‘์œ„ ์ถ”๋ก  ์ˆ˜์ค€์œผ๋กœ ๋–จ์–ด์ง€์ง€๋Š” ์•Š์œผ๋ฉฐ, ์‹๋ณ„ ๋Œ€์ƒ ์ €์ž๋“ค์€ ์—ฌ์ „ํžˆ ์ƒ๋‹น ๋ถ€๋ถ„ ์ธ์‹ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ๋‚จ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์™„๋ฒฝํ•œ ์ต๋ช…ํ™” ๋ฐฉ์–ด์ฑ…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋Š” ์—†๋‹ค [23], [22]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Adversarial Code Stylometry|Adversarial Code Stylometry]], [[Abstract Syntax Tree (AST)|Abstract Syntax Tree (AST)]], [[Concrete Syntax Tree (CST)|Concrete Syntax Tree (CST)]], [[Code Obfuscation|Code Obfuscation]], [[Code Formatting|Code Formatting]], [[Code Minification|Code Minification]] - **Projects/Contexts:** [[Google Code Jam Dataset|Google Code Jam Dataset]], [[StyleCounsel|StyleCounsel]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด ๊ธฐ๊ณ„ ํ•™์Šต ๊ธฐ๋ฐ˜์˜ ์ฝ”๋“œ ๋ฌธ์ฒด๋ก  ๋ชจ๋ธ์— ๋Œ€ํ•ญํ•˜๊ธฐ ์œ„ํ•œ ์ ๋Œ€์  ๊ธฐ๋ฒ•๋“ค์ด ์‹œ๋„๋˜๊ณ  ์žˆ์œผ๋‚˜, ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ ์ •๋ ฌํ•˜๋Š” ํฌ๋งคํŒ…(Formatting)์ด๋‚˜ ์ถ•์†Œ(Minification) ์ฒ˜๋ฆฌ๋งŒ์œผ๋กœ๋Š” ์ €์ž์˜ ๊ฐœ๋ณ„ ์Šคํƒ€์ผ ํŠน์ง•์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋Œ€๋‹ค์ˆ˜ ์ €์ž๊ฐ€ ์—ฌ์ „ํžˆ ์‹๋ณ„ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค [23], [22]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/Code Stylometry (์ฝ”๋“œ ๋ฌธ์ฒด๋ก ).md ---