2006년 12월 02일
강 스파이크 백 번
강대욱. 띠~띠리 띠~띠리 띠띠~띠리디~
회사 일 때문에 혹은 회사일을 핑계 삼아 한 주 동안 이것 저것 찝적거려 보았다. Spring MVC, Twisted, Allegra, Ruby 까지. 마지막 정착지는 요즘 한창 아름다운을 뽐내고 있는 Ruby다. RSpec과 RubyOnRails까지 곁다리로 같이. 여행으로 치면 서울 근교 나들이라 새로움 그리 크지는 않지만 간만의 나들이라 재밌었다.
간단한 UDP 서버와 웹어플리케이션이 필요한 일이 생겼다. 웹어플리케이션의 경우 성능은 중요하지 않다. UDP 서버는 가능한 잃어 버리는 패킷 없이 다 받았으면 좋겠다. 빨리 만들 수 있어야 한다.
첫 번째는 자바. 자바야 익숙한 언어라 UDP 서버 정도는 간단하게 만들 수 있는데 문제는 너무 복잡한 웹 개발 환경이다. 요즘 스프링은 필수로 쓰고 있으니 따로 WebWork 쓸 필요 없이 스프링 MVC를 써보기로 했다. handleRequest가 보여서 첫 인상은 안좋았는데 찬찬히 들여다 보니 쓸만해 보인다. 굳이 WebWork을 따로 쓸 필요가 없을 듯. Eclipse WTP를 쓰니 코드 변경 즉시 반영이 되니 스크립트 언어로 프로그래밍 할 때와 차이가 상당히 줄어 들었다. 하지만 자바는 너무 익숙하므로 지겨워져서 일 할 맛이 안나므로 통과.
두 번째로 파이썬. 파이썬 웹 프로그래밍은 django가 있으니 안심. UDP 서버도 파이썬 소켓 서버가 잘 되어 있으니 문제가 없으나 너무 쉬울 것 같다. UDP 서버는 트위스티드의 무거움과 비효율성을 비판하며 Medusa의 적통임을 주장하고 나선 알레그라를 써봤다. UDP 서버와 테스트 클라이언트 비교적 쉽게 만들었다. 단 거기까지 였다. 좀 더 효과적인 처리를 위해 뭔가 시도할 때마다 막혔다. 비동기 프로그래밍 모델이 적응이 안 된다. 다시 마음을 가다듬고 트위스티드로 시도 했다. UDP 서버까지는 쉽게 완성했다. 트위스티드는 클라이언트에서 막혔다. 주소를 IP로 변환 할 때 비동기로 해야 한다고 하는데 이걸 어떻게 하는지 도저히 모르겠다. 물론 클라이언트는 테스트용이라 IP를 직접 넣어주면 되기는 하나 왠지 그냥 넘어갈 수는 없다. 트위스티도 책도 보았으나 거의 TCP/HTTP/RPC에 관한 내용이 전부다. 알레그라와 트위스티드는 비동기 모델에 적응이 안되서 포기 T.T
세 번째로 루비와 루비온레일즈. 레일즈는 평판이 워낙 좋으니 그냥 통과하려고 했으나 안써봤으니 튜토리얼 보고 몇가지 따라 해봤다. 별 문제 없이 잘 된다. UDP 서버가 문제다. 루비에서는 달랑 UDPSocket만 지원한다. 루비 쓰레드는 OS 쓰레드가 아니라 한 쓰레드가 블럭되면 전체가 블럭되는 문제도 있다고 한다. 하지만 코드가 이뻐 보여서 계속 진행했다. 제대로 만든 것 같은데 이상하게 아무 로그도 안 찍힌다. 쓰레드를 쓰게 했다 안쓰게 했다 별 짓을 다 해 본다. 헉!!! IDE가 루비가 종료되기 전까지는 표준출력으로 내보낸 내용을 안찍는다. 난 코모도를 쓰는데 다른 IDE도 마찬가지다. 안정을 되찾고 select를 이용하여 완성했다. 비지니스 로직도 좀 넣고 RSpec도 써보고 하니 재밌다.
루비로 낙찰. 사내에 스터디도 있으니 다른 사람들도 좋아할 것 같다. 업무 시간에는 다른 일로 흐름이 자꾸 끊겨 50% 정도는 퇴근후에 했다. 때문에 좀 늦게 자게 되었는데 재미가 있으니 좀 늦게 자도 다음 날 기분도 좋고 몸 상태도 더 좋은 것 같다. 금요일에는 좀 피곤하기는 했지만 ㅋ. 구현 해보고 싶은 아이디어가 많으나 내가 원하는 만큼 크게 할 수 있는 일이 아니라 아쉽구만.
그나저나 Erlang은 언제 익히나... 내년 대안언어축제에서 퍼트리고 싶은데.
회사 일 때문에 혹은 회사일을 핑계 삼아 한 주 동안 이것 저것 찝적거려 보았다. Spring MVC, Twisted, Allegra, Ruby 까지. 마지막 정착지는 요즘 한창 아름다운을 뽐내고 있는 Ruby다. RSpec과 RubyOnRails까지 곁다리로 같이. 여행으로 치면 서울 근교 나들이라 새로움 그리 크지는 않지만 간만의 나들이라 재밌었다.
간단한 UDP 서버와 웹어플리케이션이 필요한 일이 생겼다. 웹어플리케이션의 경우 성능은 중요하지 않다. UDP 서버는 가능한 잃어 버리는 패킷 없이 다 받았으면 좋겠다. 빨리 만들 수 있어야 한다.
첫 번째는 자바. 자바야 익숙한 언어라 UDP 서버 정도는 간단하게 만들 수 있는데 문제는 너무 복잡한 웹 개발 환경이다. 요즘 스프링은 필수로 쓰고 있으니 따로 WebWork 쓸 필요 없이 스프링 MVC를 써보기로 했다. handleRequest가 보여서 첫 인상은 안좋았는데 찬찬히 들여다 보니 쓸만해 보인다. 굳이 WebWork을 따로 쓸 필요가 없을 듯. Eclipse WTP를 쓰니 코드 변경 즉시 반영이 되니 스크립트 언어로 프로그래밍 할 때와 차이가 상당히 줄어 들었다. 하지만 자바는 너무 익숙하므로 지겨워져서 일 할 맛이 안나므로 통과.
두 번째로 파이썬. 파이썬 웹 프로그래밍은 django가 있으니 안심. UDP 서버도 파이썬 소켓 서버가 잘 되어 있으니 문제가 없으나 너무 쉬울 것 같다. UDP 서버는 트위스티드의 무거움과 비효율성을 비판하며 Medusa의 적통임을 주장하고 나선 알레그라를 써봤다. UDP 서버와 테스트 클라이언트 비교적 쉽게 만들었다. 단 거기까지 였다. 좀 더 효과적인 처리를 위해 뭔가 시도할 때마다 막혔다. 비동기 프로그래밍 모델이 적응이 안 된다. 다시 마음을 가다듬고 트위스티드로 시도 했다. UDP 서버까지는 쉽게 완성했다. 트위스티드는 클라이언트에서 막혔다. 주소를 IP로 변환 할 때 비동기로 해야 한다고 하는데 이걸 어떻게 하는지 도저히 모르겠다. 물론 클라이언트는 테스트용이라 IP를 직접 넣어주면 되기는 하나 왠지 그냥 넘어갈 수는 없다. 트위스티도 책도 보았으나 거의 TCP/HTTP/RPC에 관한 내용이 전부다. 알레그라와 트위스티드는 비동기 모델에 적응이 안되서 포기 T.T
세 번째로 루비와 루비온레일즈. 레일즈는 평판이 워낙 좋으니 그냥 통과하려고 했으나 안써봤으니 튜토리얼 보고 몇가지 따라 해봤다. 별 문제 없이 잘 된다. UDP 서버가 문제다. 루비에서는 달랑 UDPSocket만 지원한다. 루비 쓰레드는 OS 쓰레드가 아니라 한 쓰레드가 블럭되면 전체가 블럭되는 문제도 있다고 한다. 하지만 코드가 이뻐 보여서 계속 진행했다. 제대로 만든 것 같은데 이상하게 아무 로그도 안 찍힌다. 쓰레드를 쓰게 했다 안쓰게 했다 별 짓을 다 해 본다. 헉!!! IDE가 루비가 종료되기 전까지는 표준출력으로 내보낸 내용을 안찍는다. 난 코모도를 쓰는데 다른 IDE도 마찬가지다. 안정을 되찾고 select를 이용하여 완성했다. 비지니스 로직도 좀 넣고 RSpec도 써보고 하니 재밌다.
루비로 낙찰. 사내에 스터디도 있으니 다른 사람들도 좋아할 것 같다. 업무 시간에는 다른 일로 흐름이 자꾸 끊겨 50% 정도는 퇴근후에 했다. 때문에 좀 늦게 자게 되었는데 재미가 있으니 좀 늦게 자도 다음 날 기분도 좋고 몸 상태도 더 좋은 것 같다. 금요일에는 좀 피곤하기는 했지만 ㅋ. 구현 해보고 싶은 아이디어가 많으나 내가 원하는 만큼 크게 할 수 있는 일이 아니라 아쉽구만.
그나저나 Erlang은 언제 익히나... 내년 대안언어축제에서 퍼트리고 싶은데.
# by | 2006/12/02 13:13 | 트랙백 | 덧글(0)







☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]