supergravity
cython , cpython, python ? 본문
python : 누구나 알고있다.
python은 프로그래밍 언어입니다.
그래서 파이썬은 코드를 작성하기 위한 기준이 되는 규칙들이 있습니다.
유투브나 블로그에 파이썬 튜토리얼 관련 내용들은 대부분 코드를 작성하기 위한 규칙들을 설명하고 있습니다.
cpython : c를 이용하여 python을 구현하다.
그 반면 cpython은 c언어로 파이썬을 구현한 것입니다.
그래서 cpython은 python코드를 이해하고 한줄한줄 읽으며 cpu가 이해할 수 있게 번역하는 일을 합니다.
이러한 역활은 cpython이 인터프린터라고 불리게 만드는 이유입니다.
cpython 말고도 python의 인터프린터의 역할을 하는 프로그램 들이 많이 있습니다.
예를 들어 pypy, ironpython........ 등등
note : 인터프린팅 언어의 뜻은 한줄한줄 cpu가 해석해야 하는 언어란 뜻이고
인터프린터는 인터프린팅 언어가 인터프린트하기 위해 사용하는 프로그램이다.
cython : 파이썬의 단점을 극복하고 장점을 살린다.
그러면 cython은 뭔데?
cython은 역사적으로 python이 구현된 이후로 등장한 언어입니다.
python의 경우 구조적으로 멀티프로세스를 실행하는데 어려움이 있습니다.
또한 인터프린터 언어이다 보니 컴파일 언어보다 성능이 현저히 떨어지는 단점을 가지고 있습니다.
이러한 파이썬의 고질적인 단점을 극복하고자 cython이 등장합니다.
cython은 c언어에 python 문법을 사용할 수 있게 만든 언어입니다.
마치 c++과 비슷한 맥락입니다.
그래서 cython은 컴파일 언어이고 표준 c/c++ 컴파일러를 사용하여 기계어로 번역되어 실해이 됩니다.
cython은 c와 python의 상위집합 입니다.
c와 python의 상위집합 상위 집합이란 c와 python 모두를 포함하는 집합이란 뜻입니다.
그래서 c와 python코드는 cython에서 사용할 수 있습니다.
그리고 파이썬 핵심 개발자들은 cython의 장점인 c와 비슷한 속도로 빠른 점을 이용하기 위해
cython으로 작성된 코드를 python에서 라이브러리로 사용할 수 있도록 구현해 놓았습니다.
scipy, pandas의 경우가 이에 해당되는데..
이들은 cython으로 작성이 되었고 라이브러리 사용을 할수 있습니다.
이는 라이브러리를 사용하는 사용자들에게 c처럼 빠른 성능과 쉬운 파이썬의 문법을 사용할수 있게 해 주었습니다.
파이썬 모듈을 찾아보다 보면.
성능이 좋다는 라이브러리나 프래임 워크들은 죄다 cython으로 작성되었다고 홍보를 하는 것을 볼 수 있습니다.
https://cython.org/
https://eduwyre.com/article/cython-vs-python-vs-cpython
'콘텐츠 > 파이썬 -구조' 카테고리의 다른 글
파이썬 - __main__ (0) | 2021.09.08 |
---|---|
파이썬 - namespaces, scopes (0) | 2021.09.06 |
파이썬 - 메모리 관리와 좋은 습관 (9) | 2021.08.31 |
파이썬 - 스트링을 메모리에 어떻게 저장할까? (2) | 2021.08.29 |