완벽함이란 더 이상 무엇인가를 더할 것이 없을때 이루어 지는 것이 아니라, 더 이상 무엇인가를 뺄 것이 없을 때 이루어진다. - 앙뜨완느 마리 로제 드 생떽쥐페리
by 미친병아리 이글루스 피플 2006 이글루스 TOP 100 2007 이글루스 TOP 100
포토로그
메뉴릿
주저리 주저리
라이프로그
C++과 Python 스크립트 연동시키기..
윈도우에서는 사용할 수 있는 스크립트가 *.bat 파일을 활용하는 정도인데 도스시절을 경험해봤거나 윈도우의 도스창에서 *.bat 파일을 작성해 뭔가를 해보려고 했던 사람들은 잘 알겠지만, 으아~ 정말 한계가 많다는 것을 느낀다..

유닉스/리눅스에서 스크립트로 불가능한건 없다는 환경을 경험해본 사람이라면 정말 더욱 답답함을 느낄 것이다.. Windows 2003 서버에서는 많이 보완이 되었으며, 앞으로 더욱 더 보완이 된다고 하니 기대해볼만 하다..

그런데 그러한 스크립트의 지원이 서버가 아닌 클라이언트 사이드에서도 필요하다면 난감해질 수 밖에 없다.. 윈9x 계열에서도 실행이 되어야 하기 때문이다..

꽤 쓸만한 스크립트 언어를 검토해보던 중 perl과 python을 후보로 올리고 비교를 하고 있었다.. 뭐 아무래도 python이 비교적 최근에 나온 스크립트이며 객체지향형 개념도 있어서 점수를 더 주고는 있었지만, 일단 스크립트는 복잡한 개념보다는 아주 간단하고 배우기 편하다는 면이 부각되어야 한다는 점에서 perl과 python은 개인적으로는 막상막하로 여기고 있었다..

스크립트를 배우고 활용하려는 목표가 사람이 해야하는 귀찮은 일련의 작업들을 컴파일 / 빌드 과정을 거치지 않고 바로 텍스트만 수정해 실행시키면 결과를 볼 수 있는 형태의 것을 원했기 때문에 어찌보면 2개의 스크립트는 둘다 만족스런 점수를 받고 있었는지 모른다..

물론, 윈도우 환경에서 아주 좋은 비베스크립트가 있으므로 척박한건 아니다..
특히 MS 제품과는 연동도 쉽기 때문에 활용도 면에서 매우 매력적이긴 했지만, C++에서 비베스크립트를 호출하기 위한 과정, 그리고 역으로 비베스크립트에서 C++ 함수를 호출하는 기능 등에 대해서 알아내기가 쉽지 않아서리..
혹 아는 사람 있음 무지한 제게도 점 알려주시길..

이러던 차에 개인적으로 심심풀이로 읽는 책을 보다 재미난 내용을 발견했다..

Beginning MMORPG Client Programming

얼마전에 구입한 책인데, 구입할때의 우려처럼 크게 읽을 거리는 없어 보인다.. 물론, 내가 뭘 몰라 그럴 수도 있겠지만.. 그래도 python과의 연동기능에 대해서는 아주 잘 읽어서 구입한 보람이 있다고 느끼고 있다.. 쿠쿠쿠..
사실 이 한 챕터 때문에 구입한 책이 된다면 후회를 하게 될 것 같긴 하다..

http://www.python.org 에 가면 python 엔진을 설치를 할 수가 있다..
설치를 하면 C/C++을 위한 헤더파일과 라이브러리 파일, 실행용 DLL 파일들도 같이 설치가 된다.. python 스크립트를 내 어플리케이션에 통합시키는 개발환경이 제공이 되는 것이다..
http://www.python.org/2.3.3 에서 Python-2.3.3.exe 이라는 윈도우용 설치 파일을 다운로드 받아 설치하면 된다.. 하지만 아쉽게 릴리즈용 라이브러리와 DLL만 제공된다..
소스코드를 다운로드 받으면 직접 빌드를 해서 디버그용 라이브러리와 DLL 파일을 만들어낼 수 있는데, 아직까지는 필요가 없어서 이짓은 해보지 않았다..

다음 압축파일을 다운로드 받아 풀어보면, 실행파일과 소스코드도 들어있다.. (다운로드 받기)
위의 책 예제를 바탕으로 3개 예제를 한개로 압축시키면서 내가 소스코드를 수정한 샘플 소스코드다.. 맨땅에 헤딩 시작용으로 좋을 것 같아 만들어 둔 것..

소스코드를 보면 파이썬 스크립트에서 C 함수 호출하기, 파라미터 넘기기 그리고 C 함수에서 파이썬 스크립트 호출하기, 파라미터 넘기기, 리턴값 받기 등이 설명되어 있다.. 이 정도면 필요한건 다 있다고 봐도 되지 않을까?
아니 설명은 없고 소스코드가 있다.. 흐흐.. 앞부분은 콘솔 프로그램에서 메모리 릭을 알아내기 위한 코드가 좀 있는데 중요한 것은 아니니 무시해도 된다..

자세한 사항은 http://www.python.org/doc 를 참조해보도록 하자.. 무작정 소스코드만 본다고 이해가 쉽게 되지는 않을 수도 있다..

책을 한권 구하는 것도 방법이다.. 내가 가지고 있는 책은 Learning Python인데, 꽤 읽을만 하다.. 링크를 찾느라 서점을 뒤져봤더니 그새 2nd Edition이 나왔나 부다.. 아마, 한빛미디어에서 번역본도 나오지 않았을까 싶다..
꼭 이 책이 아니더라도 다른 좋은 책들도 많이 있을거다.. 뭐, 하긴 python에 관한 책이 솔직히 많은건 아니다.. 다른 프로그래밍 언어나 스크립트에 비하면.. 그래도 도움말보다는 도움이 되는 책을 한권 정도는 찾을 수 있을거다..

내가 이러한 방법을 알게된 책에서는 게임엔진을 새로 빌드하지 않고 스크립트를 변경함으로써 여러가지 테스트나 다른 게임으로의 변형을, 다른 흐름을 만들어내기 위해서 스크립트와 연동을 사용을 했다.. 대부분의 게임엔진들은 자신만의 스크립트 엔진도 만들어 가지고 있는 경우가 많은데, 여기서는 python이라는 범용적인 스크립트를 사용한 것이다..

이러한 기법은 비단 게임엔진에서만 유용한 것은 아니며 여러 S/W 엔진에서 유용할 것으로 보인다.. 특히, 내가 이루고자 하는 빌드, 테스트, 오류검출 같은 S/W 개발 프로세스를 자동화 하는데도 많은 도움이 될 것으로 예상된다..

관련 읽을거리 : [이만용의 Open Mind] 프로그래밍 지형도를 바꾸는「파이썬」
by 미친병아리 | 2004/01/08 13:53 | ▣ 책이야기 ▣ | 트랙백 | 덧글(8)
트랙백 주소 : http://madchick.egloos.com/tb/205170
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 狂風 at 2004/01/08 14:41
파이썬 정말 조립같은 언어죠.. 함수에도 변수가 생성되니.. 쿠쿠. 그거 알아내느라. 훔. 저희 서버 쪽에서도 이벤트시나 그럴때 서버 패치하는게 너무 짜증나서 시도 해볼려고 했는데 역시나 동기화 문제라.. 클라이언트 쪽에서는 해볼만 한것 같아요.. 이만용씨가 쓴 세미나 자료 발표가 저 주제였던거 같았는데요. 기억이..
Commented by ThomYorke at 2004/01/08 15:29
그게 python 의 장점중의 하나라고 하더군요.
파이썬을 약간 접해본적이 있는데 정말 매력적인 언어있것 같아요.
스크립트언어라고는 하지만 바이너리로도 변환할수 있고요..(py2exe)
이강성 교수님 책을 하나 사서 보려고 하는데 (국내 파이썬계의 대부..;;) 역시 학생이라 머니의 압박이..ㅠㅠ
Commented by ThomYorke at 2004/01/08 15:33
그 외의 장점으론.. TDD (Test Driven Development) 가 편하다는것..
대개 XP 를 좋아하시는 분들이 파이썬도 좋아하시더라고욤..ㅋㅋ
울나라에는 왜 이런 언어가 없는지..ㅠㅠ 일본에는 Ruby가 있는데..
Commented by 미친병아리 at 2004/01/09 01:37
狂風님 : 음.. 이만용님의 발표 자료를 검색해서 찾아봐야겠네요..

ThomYorke님 : 이강성 교수님 책이라.. 것두 함 봐봐야겠군요.. 근데 TDD가 편한 언어가 따로 있나요 ??
Commented by ThomYorke at 2004/01/10 11:44
C++ 에서 TDD 하려면 이것저것 셋팅하고 깔고 복잡한게 많죠..
자바는 그것보다 훨씬편하고요.. 파이썬은 그거보다 더 편하고요..
import unittest 하나로 해결되니까요..;; (적어도 제생각엔..;; )
Commented by 미친병아리 at 2004/01/10 12:08
아.. CppUnit 설치를 하는 것 때문에 그런거군요.. 저도 사용중인데 생각보다 세팅에 어려움 별로 없습니다.. 함 해보세요..
Unit 테스트 작성하는데 CppUnit이 있으니 정말 편리하겠더군요..
Commented by Xpert2 at 2004/12/06 17:15
옛날 세이클럽에서의 광풍씨인가요?
온라인 게임에서도 만난적이 있던...
Commented by 미친병아리 at 2004/12/06 21:45
Xpert2님 : 저한테 물어보시는건 아니시죠?

:         :

:

비공개 덧글

Creative Commons License

< 이전페이지 다음페이지 >


이글루 파인더
카테고리
태그
최근 등록된 덧글
참 오래간만이시네요.^^..
by gonny at 11/03
ㅅㅂ 나도 몰른다고
by 야동매니아 at 10/20
하하, 이런경험 있는데..
by 씩씩한강냉이 at 10/03
꺅. 한글이 위대하기에 ..
by 씩씩한강냉이 at 10/03
소설식이라 편하고 재미..
by ohyecloudy at 10/01
환영합니다 미병님~^^
by Paromix at 09/16
온국민이 싫어하고 혐오..
by 닭날다 at 09/16
살아계셨군요... 계속..
by 미친감자 at 09/08
가끔씩 들리는데, 진짜..
by 랄라 at 09/05
웰컴~투~~~~~~..
by S2nNAMU at 08/25
좋은 정보네요 ^^ 그..
by 난복잡한것은 at 08/24
kk//ㅗ^^ㅗ
by 뭐야이미친놈. at 08/23
반갑습니다. 알려하지 ..
by 쩌비 at 08/20
Welcome to your blog..
by 우하하 at 08/20
1년간 무엇을 하였는지 ..
by falconer at 08/13
지난 1년간 365번 이상 들어..
by 김상형 at 08/13
바뀐게있나하며꽤많은..
by inJURa at 08/12
1년만에 돌아오셔도 많은..
by 오픈검색 at 08/06
^^*
by 검은흰새™ at 08/06
웰컴 투 이글루스~~~
by Funny at 08/05
최근 등록된 트랙백
데드라인 - 소설로 재미..
by Ohyecloudy's S3
실전적 문장비법 글쓰기..
by 블로거1.0의 WEB2.0 도전기
우분투 리눅스 8.10 하루..
by joogunking
마이클잭슨 사망 소식들..
by Bluesky
후아유(2002) : 2000년대 ..
by 생활의 발견
知的人의 생각
by peter_c's me2DAY
톰캣!!
by 나두미키님의 이글루
정규 표현식 완전 해부와..
by 김재호의 디지털보단 아..
HTML 소스 제대로 보자,..
by [부동산]개발.정비구역
내 손안의 PC - 자바가 ..
by 上善若水
Stringbuilder OutOfMe..
by Pinch of Smack for D..
웹 오피스 정리
by Web N Bizr
네이버 블로그 검색 - ..
by InformationRedesign
에반게리온: 서 - 사운드..
by LG전자 XCANVAS홈..
블로그에서 수익은 기대..
by IT, 모바일, 엔터테..
"다음으로 지원한 이메일..
by 민노씨.네
알라딘 TTB2 둘러보다
by NKOKON's Web-Note
문답 # ActiveX 문답
by 아이리스가 만개한 언덕..
미친병아리의 생각
by madchick's me2DAY
소비지향의 대학축제
by 세상을 보는 또 다른 시선
이글루링크
EBC (Egloos Broad..
erehwon.LAB
About willy
Living Loving and L..
修身齊家萬事成
【 이름쟁이™의 눈으로 】
개 풀 뜯어먹는 소리
觀鷄者의 망상 공간
Oz in Wonderland
김명신의 즐거운 하루
함께.. 늘 그렇게..
荷花(hehua)
소스코드위를 걷다.....
가로등 프로젝트
zoops 이야기
까모의 룰루랄라~
▒ 제닉스의 사고뭉치 ▒
河伊兒의 고물상
가로수들은 여전히 제자..
餘分D: physics and fun
극한추리 hansang's wo..
길고양이 이야기
어쨌건간에 흘러가는 者
선인장 일지
~★~ 우하하!!~ 프로..
without coffee
Lady Nariel's Golde..
검색엔진 루씬 Lucene..
fire, walk with me
디지털을 말한다 by oojoo
♠후리지아 향기처럼♠
일상 생활 속의 파편들
뽐뿌 inside
책읽는 엄마의 보석창고
Mono log
blogger jely
반복되는 일상속의 비정..
골룸의 골방
질풍 17주의 머브러브 라..
maniacs
AURA's Showcase
ozzyz review 허지웅..
디제의 애니와 영화 이야기
ANTIEGOIST : GyuHo..
미달이의 육아일기
All about IT Trends
Suicide Solution
얼음집
Trouble n Travel
모기불통신
Trip
찬별은 초식동물
숲 속 작은 섬
snowcat blog
전도서에 바치는 장미
한글이 꿈틀
이우진의 UCC 제작실 ..
INVENT
위로..위로..위로..
woody's film review
Show me the money
전자음악 알아보기
sunny's store
이규영 연예영화 블로그
◀ M.HOUSE - Masade..
친절한(척) 쿨짹씨
쉽니다.
roadster
무디의 무책임한 세상
이제 다시... 바라보다.
random life
Beyond Web
ricordati di me
Jania's Blog
Gaious 功房 네오베..
애자일 이야기
- Last Paromix -
T9T9 Research Center
양군 블로그
소프트웨어 이야기
chef's garden
Software Engineering..
티오
고재관의 블로그
mocca
yundream의 프로그래..
통TON
lalou
생각이 없는 블로그
이전블로그
rss

skin by 이글루스