--- id: CPython 20260410 created: 2026-04-10 09:16 tags: - python aliases: --- ## ๐Ÿ’ก ์ƒ๊ฐ Python์€ ์ผ์ข…์˜ ๋ฌธ๋ฒ•์ด๊ณ  ์ด ๋ฌธ๋ฒ•์„ cpu๊ฐ€ ์•Œ์•„๋จน์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์—”์ง„์ด CPython์ด๋‹ค. > [!question] > Q. Python์€ ์ผ์ข…์˜ ๋ฌธ๋ฒ•์ด๊ณ  ์ด ๋ฌธ๋ฒ•์„ cpu๊ฐ€ ์•Œ์•„๋จน์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ์—”์ง„์ด CPython์ด๋‹ค. > ๋ผ๊ณ  ๋ณด๋ฉด๋˜๋Š”๊ฑฐ์•ผ? > > A. ์ •ํ™•ํ•œ ์š”์•ฝ์ž…๋‹ˆ๋‹ค! ๋น„์œ ํ•˜์ž๋ฉด **Python์€ ์–ธ์–ด(์„ค๊ณ„๋„)**์ด๊ณ , **CPython์€ ๊ทธ ์–ธ์–ด๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•ด์ฃผ๋Š” ๋ฒˆ์—ญ๊ฐ€(๊ตฌํ˜„์ฒด)** ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ CPython ์„ ์‚ฌ์šฉํ•  ๋•Œ Visual Studio Build Tools ๊ฐ€ ํ•„์š”ํ•œ๊ฐ€๋ณด๋‹ค. ๊ธฐ๋ฐ˜์ด C๋‹ˆ๊นŒ.. --- ## ๐Ÿ“‘ ๊ฐœ๋… CPython์€ Python ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ **๊ธฐ๋ณธ ๊ตฌํ˜„์ฒด**์ด์ž, ์ „ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ด์ฌ ์‹คํ–‰๊ธฐ์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ์–ธ์–ด ์ž์ฒด๋Š” '๋ช…์„ธ(Specification)'์ด๊ณ , ์ด๋ฅผ ์‹ค์ œ๋กœ ์ปดํ“จํ„ฐ์—์„œ ๋Œ์•„๊ฐ€๊ฒŒ ๋งŒ๋“  '์†Œํ”„ํŠธ์›จ์–ด'๊ฐ€ ๋ฐ”๋กœ CPython์ž…๋‹ˆ๋‹ค. ## ๐Ÿ“Œ ํŒŒ์ด์ฌ์˜ ํ‘œ์ค€ ๊ตฌํ˜„์ฒด: CPython ์šฐ๋ฆฌ๊ฐ€ ํ„ฐ๋ฏธ๋„์— `python`์ด๋ผ๊ณ  ์ž…๋ ฅํ•ด์„œ ์‹คํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ •์‹ ๋ช…์นญ์€ **CPython**์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํŒŒ์ด์ฌ์ด๋ผ๋Š” ์–ธ์–ด์˜ ์„ค๊ณ„๋„(๋ช…์„ธ)๋ฅผ **C ์–ธ์–ด**๋กœ ๊ตฌํ˜„ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ž…๋‹ˆ๋‹ค. - **ํ•ด์„๊ธฐ(Interpreter):** ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด์„œ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—”์ง„ ์ž์ฒด๊ฐ€ C๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. - **์ž๋ฃŒํ˜•:** ํŒŒ์ด์ฌ์˜ ์ˆซ์ž(`int`), ๋ฆฌ์ŠคํŠธ(`list`), ๋”•์…”๋„ˆ๋ฆฌ(`dict`) ๊ฐ™์€ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๋“ค๋„ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” C์˜ ๊ตฌ์กฐ์ฒด(struct)๋กœ ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ## ์ฃผ์š” ํŠน์ง• - **C ์–ธ์–ด๋กœ ์ž‘์„ฑ:** ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด C ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด C ์–ธ์–ด์˜ ์„ฑ๋Šฅ๊ณผ ์‹œ์Šคํ…œ ์ ‘๊ทผ ๋Šฅ๋ ฅ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. - **์ธํ„ฐํ”„๋ฆฌํ„ฐ์ด์ž ์ปดํŒŒ์ผ๋Ÿฌ:** ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ, ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ **๋ฐ”์ดํŠธ์ฝ”๋“œ(Bytecode)** ๋กœ ๋จผ์ € ์ปดํŒŒ์ผํ•œ ํ›„, ์ด๋ฅผ CPython ๊ฐ€์ƒ ๋จธ์‹ (VM)์—์„œ ํ•ด์„ํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. - **ํ‘œ์ค€ ๊ตฌํ˜„์ฒด:** ํŒŒ์ด์ฌ ์žฌ๋‹จ(PSF)์—์„œ ๊ด€๋ฆฌํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ํŒŒ์ด์ฌ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ๋ฐ˜์˜๋˜๋Š” ๊ธฐ์ค€์ ์ด ๋ฉ๋‹ˆ๋‹ค. ## ๐Ÿ“ ํŒŒ์ด์ฌ์„ ์‹คํ–‰ํ•˜๋Š” ๋„๊ตฌ๋Š” CPython ์™ธ์—๋„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. > [!note] > |**์ข…๋ฅ˜**|**ํŠน์ง•**| |---|---| |**PyPy**|JIT(Just-In-Time) ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ CPython๋ณด๋‹ค ์‹คํ–‰ ์†๋„๊ฐ€ ํ›จ์”ฌ ๋น ๋ฆ„.| |**Jython**|์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ (JVM) ์œ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ ์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ™œ์šฉ ๊ฐ€๋Šฅ.| |**IronPython**|.NET ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘.| --- ํ•˜์ง€๋งŒ Python ์ด๋ผ๊ณ  ํ•˜๋ฉด ๊ทธ๋ƒฅ CPython ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋จ. ํ•˜์ง€๋งŒ **CPython**์ด ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ณดํ†ต ์šฐ๋ฆฌ๊ฐ€ ํŒŒ์ด์ฌ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์€ ์ด CPython ์—”์ง„์„ ๋œปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ 99%์ž…๋‹ˆ๋‹ค. ๋ผ๊ณ  ํ•จ.