Cython 3.0 ๊ณต๊ฐ: C์ ์ฑ๋ฅ๊ณผ ์๋๋ก Python ๊ฐํ
์ค๋ซ๋์ ๊ธฐ๋ค๋ ค์จ ์ ๊ทธ๋ ์ด๋์ธ Cython 3.0์ด ๋๋์ด ์ถ์๋์์ต๋๋ค. ์๋ ๊ฐ์ ๊ฐ๋ฐ ์ฐ๋ฌผ์ธ ์ต์ ๋ฒ์ ์ C์ ์ฑ๋ฅ๊ณผ ์๋๋ก Python์ ๊ธฐ๋ฅ์ ํฅ์์ํต๋๋ค. ์ด ๋ฆด๋ฆฌ์ค๋ ํ์ฅ๋ '์์ Python ๋ชจ๋' ๋ฐ NumPy์์ ํฅ์๋ ํธํ์ฑ์ ํฌํจํ์ฌ ๋ค์ํ ๊ฐ์ ์ฌํญ์ ์๋ํฉ๋๋ค.

์๋ ๊ฐ์ ํฌ๊ด์ ์ธ ๊ฐ๋ฐ๊ณผ ๋ฏธ์ธ ์กฐ์ ๋์ 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 ๋ฒ์ ์์ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค.


