2023๋…„ 7์›” 18์ผยท1๋ถ„ ์ฝ๊ธฐ

Cython 3.0 ๊ณต๊ฐœ: C์˜ ์„ฑ๋Šฅ๊ณผ ์†๋„๋กœ Python ๊ฐ•ํ™”

์˜ค๋žซ๋™์•ˆ ๊ธฐ๋‹ค๋ ค์˜จ ์—…๊ทธ๋ ˆ์ด๋“œ์ธ Cython 3.0์ด ๋“œ๋””์–ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋…„ ๊ฐ„์˜ ๊ฐœ๋ฐœ ์‚ฐ๋ฌผ์ธ ์ตœ์‹  ๋ฒ„์ „์€ C์˜ ์„ฑ๋Šฅ๊ณผ ์†๋„๋กœ Python์˜ ๊ธฐ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ๋ฆด๋ฆฌ์Šค๋Š” ํ™•์žฅ๋œ '์ˆœ์ˆ˜ Python ๋ชจ๋“œ' ๋ฐ NumPy์™€์˜ ํ–ฅ์ƒ๋œ ํ˜ธํ™˜์„ฑ์„ ํฌํ•จํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์„ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค.

Cython 3.0 ๊ณต๊ฐœ: C์˜ ์„ฑ๋Šฅ๊ณผ ์†๋„๋กœ Python ๊ฐ•ํ™”

์ˆ˜๋…„๊ฐ„์˜ ํฌ๊ด„์ ์ธ ๊ฐœ๋ฐœ๊ณผ ๋ฏธ์„ธ ์กฐ์ • ๋์— Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Cython ์ด์ œ ๋งŽ์€ ๊ธฐ๋Œ€๋ฅผ ๋ชจ์•˜๋˜ ๋ฒ„์ „ 3.0์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. Python ์ฝ”๋“œ๋ฅผ C๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ธ์ •๋ฐ›๋Š” Cython ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ด๋ฒˆ ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ ์ƒ๋‹นํ•œ ๋ฐœ์ „์„ ์ด๋ฃจ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ˜๋ณต์˜ ์ฃผ์š” ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ์†๋„ ํ–ฅ์ƒ ๋˜๋Š” C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์šฉ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์ธํ„ฐํŽ˜์ด์Šค ์Šคํฌ๋ฆฝํŒ…์— ์ค‘์ ์„ ๋‘๊ณ  Python์šฉ C ํ™•์žฅ ์ž‘์„ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Cython 3.0์˜ ๊ณต๊ฐœ๋Š” ์ƒˆ๋กญ๊ณ  ๊นจ๋—ํ•˜๋ฉฐ ํ–ฅํ›„ ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜ˆ๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ์—…๊ทธ๋ ˆ์ด๋“œ์—๋Š” ์˜ค๋ž˜๋œ Python 2 ํฌ๊ธฐ, Python ๋ฒ„์ „ 3.12๊นŒ์ง€ ๊ธฐ๋Šฅ ๋„์ž…, '์ˆœ์ˆ˜ํ•œ Python ๋ชจ๋“œ' ์‚ฌ์šฉ ํ™•์žฅ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ด ์—…๊ทธ๋ ˆ์ด๋“œ๋œ '์ˆœ์ˆ˜ Python ๋ชจ๋“œ'๋Š” Python ๊ฐœ๋ฐœ์ž์—๊ฒŒ Cython์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ์กด Python linting ๋ฐ ์ฝ”๋“œ ๋ถ„์„ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜๋Š” ํ–ฅ์ƒ๋œ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” Python๊ณผ C ์œ ํ˜• ์„ ์–ธ ๊ตฌ๋ฌธ์˜ ์œตํ•ฉ์ธ Cython์˜ ๊ณ ์œ ํ•œ ๊ตฌ๋ฌธ์œผ๋กœ ์ธํ•ด Python ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ ํšจ๊ณผ์ ์ธ ๋ถ„์„์ด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Cython ๊ฐœ๋ฐœ์ž๋Š” ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ์ธ์‹ํ•˜๊ณ  ๊ธฐ์กด Python ๊ตฌ๋ฌธ๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋˜๋Š” ๋Œ€์ฒด ๊ตฌ๋ฌธ์„ ๋„์ž…ํ–ˆ์œผ๋ฉฐ ์ดํ›„ '์ˆœ์ˆ˜ Python ๋ชจ๋“œ'๋กœ ์•Œ๋ ค์กŒ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์™ธ๋ถ€ C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ๋Œ€๋ถ€๋ถ„์˜ Cython ๊ธฐ๋Šฅ์„ ์ด ์ƒˆ๋กœ์šด ๋ชจ๋“œ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cython 3.0์˜ ๋˜ ๋‹ค๋ฅธ ์ฃผ๋ชฉํ•  ๋งŒํ•œ ๋ฐœ์ „์€ NumPy ์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ์ง€์›์— ์žˆ์Šต๋‹ˆ๋‹ค. NumPy์™€ Cython์˜ ํ˜ธํ™˜์„ฑ์€ ์ƒˆ๋กœ์šด ๊ฒƒ์ด ์•„๋‹ˆ์ง€๋งŒ ๋ฒ„์ „ 3.0์—์„œ๋Š” ์ด๋ฅผ ํ•œ ๋‹จ๊ณ„ ๋” ๋ฐœ์ „์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. Cython ์‚ฌ์šฉ์ž๋Š” ์˜ค๋žซ๋™์•ˆ NumPy ํ•จ์ˆ˜ ๋ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์ง์ ‘์ ์ด๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. Cython 3.0์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋Š” ์ด์ œ Cython์—์„œ NumPy ufunc๋ฅผ ์ž‘์„ฑํ•˜์—ฌ NumPy ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์ˆ˜์น˜ ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AppMaster ์™€ ๊ฐ™์€ ํ”Œ๋žซํผ์ด ์ฃผ๋„ํ•˜๋Š” ์ฝ”๋“œ ์—†๋Š” ๊ฐœ๋ฐœ ์›์น™์„ ๋ฐ”ํƒ•์œผ๋กœ ์„ค๊ณ„ํ•œ Cython 3.0์€ Python์˜ ์ง€์†์ ์ธ ๋‚ด๋ถ€ ์—…๋ฐ์ดํŠธ์™€ ๋”์šฑ ๋™๊ธฐํ™”๋˜๋„๋ก ํ•ต์‹ฌ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. Python์˜ ์ƒˆ๋กœ์šด ์ œํ•œ๋œ API๋Š” Cython์˜ ๋นˆ๋ฒˆํ•œ Python ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์ƒํ˜ธ ์ž‘์šฉ์„ ์œ„ํ•ด ํŠน๋ณ„ํžˆ ๋งž์ถคํ™”๋œ Python API์˜ ์•ˆ์ •์ ์ธ ํ•˜์œ„ ์ง‘ํ•ฉ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, Cython 3.0์—์„œ ์ˆ˜์šฉ์ ์ด์ง€ ์•Š์ง€๋งŒ ํ™•์žฅ๋œ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Cython 3์˜ ์ถœํ˜„์€ 3๋…„ ์ „ Python 3.8 ๋ฆด๋ฆฌ์Šค๋กœ ๊ฑฐ์Šฌ๋Ÿฌ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค. Cython 3์˜ ์ตœ์ข…ํ™”์—๋Š” ๋ฐ”์ธ๋”ฉ ๋‚ ์งœ ๋˜๋Š” ๋ฒ„์ „ ๋Œ€์ƒ์ด ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Cython์˜ ๊ฐœ๋ฐœ์ž๋Š” ์ด์ œ Python์˜ ์ง„ํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต ๋ฐ ์ธํ”„๋ผ ๋ณ€ํ™”์— ๋ณด์กฐ๋ฅผ ๋งž์ถ”๋ ค๋Š” ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. Cython 3์˜ ์™„์„ฑ์€ ํŠน์ • Python ๋ฒ„์ „์šฉ์œผ๋กœ ์„ค๊ณ„๋œ Cython ํ™•์žฅ ๋ชจ๋“ˆ์„ ์žฌ์ปดํŒŒ์ผํ•  ํ•„์š” ์—†์ด ํ–ฅํ›„ Python ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Easy to start
Create something amazing

Experiment with AppMaster with free plan.
When you will be ready you can choose the proper subscription.

Get Started
Cython 3.0 ๊ณต๊ฐœ: C์˜ ์„ฑ๋Šฅ๊ณผ ์†๋„๋กœ Python ๊ฐ•ํ™” | AppMaster