잡담

다람 리네이머의 스크립트 기능

다람 리네이머에서 개인적으로 별로 쓸모는 없지만 혹시나 필요한 사람이 있을 것 같아서 계속 개발을 시도했던 기능 중 하나가 스크립트를 이용한 일괄 처리 기능이다. 버전 2.x대에서 시험적인 스크립트 기능을 만든 적이 있지만 문법 자체가 너무 제한적이라서 버전 3.x대 올라오면서 그냥 버렸다.

대신 3.x에서 좀 더 유연한 스크립트를 만들기 위해서 이런저런 시도를 많이 했었는데, 그러느라 기능 추가나 버그 수정이 더뎌지기도 했다.

결국은 자체 개발 스크립트 언어가 아닌 기존 스크립트 언어를 사용하기로 하고 여러 시도를 해봤는데, C#, IronPython, IronRuby, Powershell, Javascript를 고려해봤다.

C#은 완전형 객체지향 언어이기 때문에 스크립트로 사용하기엔 다소 어려움이 있었다. 네임스페이스도 지정해주고 클래스도 지정해주고 메인 함수도 지정해줘야 해서 초보자가 사용하기엔 어렵지 않을까 하는 생각이 들었다.

IronRuby와 IronPython은 버전업이 중단된지 최소 2년은 됐기 때문에 제외했다. 특히 IronRuby는 버전업 중단이 꽤 오래 돼서 장기적으로 봤을 때 문제가 생길 가능성이 크다고 생각했다. 버전업이 중단되지 않았다면 IronPython에 손을 더 들어줬을 것 같다.

Powershell도 문법적으로 괜찮다고 생각했었는데 C#과 연동해서 내 자체 명령어를 추가할 방법이 없었다.

결국 Jint를 이용해 Javascript로 스크립트를 구현했다. C#과 연동해서 객체나 함수를 추가해줄 수도 있고, 스크립트 결과를 받아올 수도 있어서 편리했다. Jint 자체적으로 CLR 연동도 가능은 하지만 보안 문제로 일단 보류했다. 만약 추가했다면 .NET 프레임워크 기능도 사용할 수 있으니 더 편리할 수는 있었을 듯.

아무튼 3.3버전에서는 좀 더 테스트 후에 다시 일괄 처리 기능이 추가될 예정이다. 거기에 더불어서 몇 가지 버그도 수정하고 싶고.

광고

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중

This site uses Akismet to reduce spam. Learn how your comment data is processed.