파이선 , 그루비

파이선을 배워보려고 몇번이나 시도했었지만, 잘 안됐었다. 지난주에야 실용적인 프로그램 몇가지를 만들어봤다. 그리고, 이 블로그에서도 몇가지 기능은 파이선으로 바꿔봤다.

프로그램을 하나 작성하는데 드는 비용은 지금까지 만난 어떤 언어보다도 저렴했다. 언어자체도 쓰면 쓸수록 손에 익어가는 재미가 있었다. 아래는 디렉토리 리스트를 돌면서 어떤 파일들을 지우는 스크립트다. 이런 종류의 프로그램을 만들때는 파이선만한 것이 없는 것 같다.

#!/usr/bin/python
import os
boardnames = \
["mydir" ,"이름"],\
["other" ,"이름"]
def proc_board(board):
    for f in os.listdir(board):
        if f[-3:] == "jpg" and f[:2] == "fe":
            size= os.path.getsize(board+"/"+f)
            if size==15910:
                print f;
                os.system("rm "+board+"/"+f)

for board in boardnames:
    proc_board(board[0])

헌데 기존에 만들어놓은 자바 서블릿과 연동하는 것이 쉽지 않았다. 이것 저것 뒤져보다가 그럴싸해보이는 두가지 Jythontwisted 을 알게되었다.

Jython은 이리저리 들여다봤지만, python 기분도 나지 않고, java기분도 나지 않았다. 어중띄다고나 할까. 그리고, twisted 는 자바서블릿과는 통합할 수 없지만, python 전용으로 이쁘장한 웹서버를 만들 수 있어서 좋았다. 파이선을 파고들때는 twisted 가 적절한 기반이 될것같다. 여기까지 해놓고 이리저리 테스트를 해보면서 놀고있었다. twisted 에서 이것저것 만들어보니 상당히 재미있네.

하지만, 한번 이런 방랑을 시작하면, 이 정도로 끝내지지 않는 법.

그래서 결국 발견한 것이 Groovy 다. 파이선과 문법은 비슷한데, JVM하고 더 잘어울릴 것 같다. JSR에도 들어가있고, 어쩌면 Java1.6에는 표준에 포함될 수도 있을 것 같다. resin 과 통합하는 것은 상당히 힘들었지만, 이틀동안 고생해서 기존에 만들어놓은 서블릿과 연동해서 돌아가도록 했다. 성공.

약간 테스트해본 결과 표준 자바 서블릿과 그루비를 섞어서 쓰는 것이 생산성 향상에 꽤 도움이 될것 같다. 파이선으로 만들어놓은 몇가지를 포팅해보면 더 정확한 예측이 가능하겠다. 다음주쯤에 또, 그루비 이야기를 하자.