2007-05-18

RubyOnRails vs Pylons vs TurboGears

사내 정보시스템용 Web Application을 위해 WAF를 survey했다.

결론적으로 TurboGears를 선택하게 되었다.

RubyOnRails

아직 가장 인기있는 WAF는 ROR일 것이다. 15분만에 weblog 사이트를 만드는 screencast를 보고 감명받지 않을 프로그래머가 있을까? Amazon에서 Ruby On Rails로 검색을 해보면 108권이 나온다. 오히려 우리나라에서 이제 겨우 관심을 주는 게 이상할 정도다.

그래서 가장 많이 사용하는 WAF라고 생각되는 ROR를 선택하였고, 간단하고 풍부한 기능에 어느정도 만족하였으나, Ruby라는 언어를 새로 익혀야 하는 부담이 있었다.

Ruby언어는 python이나 Perl을 알면 기본적인 문법을 배우는 시간이 많이 걸리지 않으나 usage에 익숙해지는 것은 또 다른 문제이고, 상대적이기는 하지만 아무래도 성능 문제
부담이 되었다. 그리고 앞으로 나올 Ruby의 VM에 대한 전망도 그리 밝아 보이지 않았다. 그리고

Programming Ruby를 읽으면서, 언어의 동적 특성이 편해 보이기는 했지만, 전혀 성능상의 고려를 안한 것처럼 보였다. Ruby는 재미있고 좋은 언어이다. 하지만 Perl이 그랬던 것처럼 탄탄한 내부 구조를 갖지 않으면 전문적인 소프트웨어를 개발하는데 사용하기가 꺼려질 수 밖에 없다.

RubyOnRails는 이러한 일반적인 인식을 뒤집어 엎은 소프트웨어다. 그리고 ROR에 붙은 가속도를 생각할 때, ROR 및 Ruby가 앞으로 어떻게 발전할지는 쉽게 예측할 수 없고 절대로 평가절하할 수 없다.

하지만 앞으로 일정기간 이상 유지보수되어야 하는 시스템을 내가 충분히 납득하지 못하는 언어로 개발하기에는 부담이 되었다.

Pylons

그래서 찾아 본 WAF가 Pylons였다. Pylons는 Python으로 작성되었으며 ROR과 유사한 구조를 갖고 있다는 게 가장 마음에 들었다. 그리고 MVC를 구성하는 모듈들도 유연하게 바꿀 수 있었다. 가장 큰 문제는 아직 mature하지 않았다는 점이다. 문서도 절대적으로 부족하고 안되는 기능이 너무 많다. 특히 REST를 아직 제대로 지원하지 못하여서 사용 목적에는 맞지 않았다. Pylons 코드를 보고 Pylons 자체를 개발 하려는 것이 아니라면 아직은 많이 부족한 상태였다.

TurboGears

django 사이에서 약간 고민은 되었지만, TG가 훨씬 ROR에 가깝다는 점에서 TG를 선택했다. 그래도 TG에는 ROR과 비슷한 screencast들도 있고 어쩌면 ROR보다 더 전문적인 Catwork 및 admi18n 과 같은 도구들도 있다. 물론 ROR의 짧고 우아하게 보이는 코드에 비해서 많이 늘어져 보이는 것은 어쩔 수 없다.

2007-05-15

utf8 Linux에서 vi로 euckr 한글문서 편집하기

이 설정은 samba를 통해, 혹은 ftp등으로 windows의 text파일을 공유하는 경우 필수적이다.


모든 파일의 내용이 euckr이라면 ~/.vimrc에 다음 라인을 추가한다.

set fileencodings=euc-kr,latin1

간혹 euckr파일을 편집해야 한다면 vi를 실행하고 나서

set fileencodings=euc-kr,latin1 을 command line에 입력한다.

Samba3와 SWAT 추천

삼바3 사용 강력 추천

이유는?

Samba의 서버로 많이 사용하는 linux는 보통 charset로 UTF8을 기본으로 한다. 그런데 삼바2까지는 window의 charset과 서버의 charset이 다르면 공유하는 한글파일명에 문제가 발생해서 linux의 charset을 euckr로 바꾸어서 사용했었다.

삼바3는 이 문제를 완전히 해결한 것 같다.

linux의 charset이 utf8이라면

[global]
unix char set = utf8
dos char set = cp949
라인을 넣어주면 된다.

그리고 swat는 그 전부터 있었던 util이지만, 사용해 보니 역시 편하다~

telnet에서 한글 문제는 putty를 사용해서 translation page에서 utf-8을 선택해주면 된다.

프로그래밍용 폰트

프로그램밍용 폰트로 Bitstream Vera Sans Mono 가 인기가 좋다.
여기에 맑은 고딕 폰트를 합쳐놓은 것도 있다.

참조 :
한글을 사용하는 프로그래머를 위한 폰트..
참조 : Finding the Best Programmer's Font

Linux에서 한글 setting

linux는 설치시 기본으로 locale이 utf8로 되어있다.
euckr로 바꾸려고 할 때, 2가지 방법이 있는데

1. 자신의 계정에서만 변경: ~/.bashrc에 "export LANG=ko_KR.euckr" 을 추가
2. 시스템 전체 변경: /etc/sysconfig/i18n에서 "LANG=ko_KR.euckr" 로 변경

소스 : 영문 레드헷에서 한글사용환경 만들기

Putty에서 한글폰트 사용하기

Putty에서는 기본 한글폰트이외의 폰트의 영문폰트에서는 한글입력이 안된다.
검색해 본 결과 소스를 컴파일하는 방법이 무식하지만 가장 효과가 있어보인다.

소스: 한글 iPutty에서 한글 폰트 변경


수정은 WINDOWS.C 의 GetCPInfo 를 콜하는 라인 바로 위에 ucsdata.font_codepage = 949; 라고 한줄만 추가해 주면 됩니다.
그럼, 폰트에 상관없이 무조건 한글이 깨지지 않고 입력됩니다.

추가로, 영문폰트와의 매칭은 기본이 바탕체지만, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink 에 다른 등록내용을 참고해서 영문폰트명을 키로 매치시키고 싶은 한글폰트를 적어주면 됩니다.