Extending과 Embedding 말이 비슷하고 이부분 은근히 헷갈립니다.
- Extending : 파이썬에서 C모듈을 불러오는것,
- Embedding : C에서 파이썬 모듈을 불러오는 것,
실제로 인터넷등을 검색하다보면, Extending에 대한 자료는 무척이나 많습니다.
반면에 Embedding에 대한 내용은 상대적으로 빈약합니다.
제가 보기엔 둘다 중요합니다.
파이썬을 쓰다보면, 프로토 타입으로 파이썬으로 작성하고, 속도가 안나오는 부분에 대해서 C로 작성을 한다음에 Extending해서 C모듈을 불러오는 식으로 많이들 쓰시기 때문에, 그렇습니다.
반대로 임베딩의 경우는 되기야되는데, C쪽에서 파이썬 메모리관리를 문제삼아 퍼지는경우도 상당히 많기 때문에, 잘쓰이지도 않고요, 파이썬 인터프리터는 내장하는 방식이라서 덩치고 커지고 해서, 그 내용이 덜한것 같습니다.
이종 언어간의 데이터 전송은 골치아픈점이 상당히 많습니다.
이종 언어간의 I/F를 붙이는 작업을 마샬링이라고 합니다.
정석대로 Extending을 하려면, 함수도 엄청 많고, 번거롭습니다.
그래서 나온 접착모듈들이 있습니다. 기본내장은 ctypes 입니다.
이것을 사용하면, 지저분한 wrapper 작업들을 한큐에 끝내서, 사용할 수가 있습니다.
ctypes 말고도, SWIG이라는 wrapper 전문 패키지도 있고,
SWIG의 경우에는 .i 라는 interface 파일을 따로 작성해야됩니다.
ctypes관련되어서는 따로 페이지를 하나 내어서 설명을 드리도록하겠습니다.
댓글 없음:
댓글 쓰기