잡담

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

다람 리네이머에서 개인적으로 별로 쓸모는 없지만 혹시나 필요한 사람이 있을 것 같아서 계속 개발을 시도했던 기능 중 하나가 스크립트를 이용한 일괄 처리 기능이다. 버전 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버전에서는 좀 더 테스트 후에 다시 일괄 처리 기능이 추가될 예정이다. 거기에 더불어서 몇 가지 버그도 수정하고 싶고.

광고
프로젝트

다람 리네이머

다람 리네이머는 개인적으로 DarkNamer라는 툴을 사용 중에 실행 취소가 되지 않는 문제로 직접 만든 유틸리티 프로그램입니다.

제작 초기에는 “프로젝트 검치”라는 이름으로 시작했고, 음악 재생 프로그램인 다람 플레이어를 제작 중에 같은 네이밍을 하는게 좋지 않을까 하는 생각에 이름을 변경했습니다.

WPF로 만들었기 때문에 초기 구동 속도가 DarkNamer에 비해 조금 느립니다. 최대한 빠르게 구동할 수 있도록 개선을 시도하고 있습니다만, 어렵네요.

개선 요청은 GitHub의 다람 리네이머 저장소의 이슈트래커에 등록해주시면 빨리 확인할 수 있으니, 가급적이면 이슈트래커에 등록해주시고, 이슈트래커가 불편하시면 제 E-Mail로 보내주시면 최대한 빠르게 검토해보겠습니다. 본 게시물의 댓글로는 개선 요청을 받지 않습니다.

a

 

다운로드: DaramRenamer 3.600

업데이트 내역: DaramRenamer Wiki