2020년 4월 19일 일요일

scripting on python

Python 언어에서의 Scripting


가끔 프로그램을 만들다 보면 Scripting 언어의 필요성을 느끼게 됩니다. 예를 들어보자면 복잡한 프로그램을 만들었는데, 사용자에게는 복잡한 부분을 전달하지 않고 간단한 부분만 open하여 해당 부분만을 수정하기를 원하는 경우 입니다. 이때 open한 부분이 단순한 config라면 ini형태로 만들 수 있지만 복잡한 뭔가를 하려면 script형태로 만들어야 합니다.

Scripting 언어의 대표주자라면 당연히 Lua언어일 것입니다. 어떤 언어로의 embedding이 쉽고 크기도 작고 좋지만 단점이라면 문법자체가 생소한 부분이 많아서 알고 있는 사람들이 많지 않습니다. 사람들이 많이 알고 쉬운 언어라면 c, java언어 일것입니다. 그렇지만 이런언어들의 문법을 사용하는 scripting은 많지는 않습니다.

GMS(Game Make Studio)가 대표적으로 C언어 script를 사용합니다. 그래서 C언어를 사용하는 사람들에 대해서 진입 장벽이 낮습니다. 또 다른 대안으로서 javascript 도 생각해 볼 수도 있습니다. java보다 덩치가 작지만 java문법을 사용가능하기 때문입니다. java 사용자 수를 봤을때 분명 이점이 있습니다.
그럼 Python에서는 어떤걸 사용하면 좋을까요?

정답은 없지만 이미 Python이라는 언어는 script언어 이므로 굳이 다른 언어의 script를 사용할 필요는 없습니다. 소스 하나를 open해서 사용자에게 가이드 해도 됩니다. 다른 방법은 동적으로 python 파일을 직접 실행 시키는 방법입니다.

test.py
print("Hello")
exec(open('script.py').read())

script.py 내용
print("Hello in Script")

실행 결과
C:\Users\USER\Documents\python\grammer>python test.py
Hello
Hello in Script



댓글 없음:

댓글 쓰기