2010/07/15

장고 프레임워크를 잠시 접으며

0 comment(s)

무언가 "간단한" 프로그램을 만들게 되어 그 기반으로 이것저것을 고민하다가 장고를 택했었는데, 결국 아직까지는 한계가 있다고 생각하여 rails 로 하기로 하였다. 사실 그 한계가 정말로 한계라고 장담할 수는 없다. 모델 설계에 대한 내 고정관념 때문일 수도 있으니까.

예전에도 잠시 레일스를 보았었지만, 당시에는 레일스보다 장고가 내게 더 맞는 것 같았다. 그런데, 왜 레일스가 그렇게 인기가 있는지는 조금은 더 생각해봤어야 했을 듯 싶다.
레일스 때문에 루비 언어가 각광을 받았던 것에 비해 장고 때문에 파이썬 언어가 각광을 받은 것은 아니니까. 물론 파이썬 언어 자체는 충분히 매력적이다. 그리고 상당히 강력하다고 생각한다.

그러나 아직 장고를 쓰기에는 이른 시점일 지도 모른다.

2010/07/05

문제: 0~1 사이의 실수 중 임의의 수를 골라 더해 나갔을 때, 1이상이 되기까지 평균 몇 번을 더해야 하는가?

0 comment(s)

이 문제와 답을 보았을 때, 막상 어떻게 풀어야 할 것인지 딱히 떠오르지가 않았다.

그냥 심심풀이 차원에서 주변 사람들에게도 문제를 알려줘 보았는데, 관점의 차이 때문이었을까... 실제로 그러한 값이 나오는지 시도해 볼 생각은 못 했었는데 프로그램을 돌려서 값을 구했다. 물론 그 친구는 정확한 답이 무엇인지 모르고 이런 값이 나오는데 맞는지를 되물었었다.

글쎄, 나는 이 쪽 계통에서 밥을 벌어먹고 살면서 왜 코드로 검증해 볼 생각은 못했을까? 전공이 그쪽이라서? 아무튼, 그 얘기를 듣고 생각해보니 프로그램 자체가 별로 어려울 것은 없어 보여서 확인을 해 보았다. 한 1억 번 돌렸더니, 돌릴 때 마다 값이 조금씩 다르기는 하지만 - 당연하겠지 - 대략 다음과 같은 값이 나온다.

2.718...

그럼, 그 "정확한" 수학적인 답은 무엇일까?
이미 이 값을 보고 알아챈 사람도 있을 지 모르겠다.
바로 "e" 이다.

그런데, 왜 하필 e 일까?
잠시 시간이 지난 뒤 문제를 다시 보니, 어떻게 풀어야 할 것인지 감이 오기 시작했다. 생각보다 꽤 복잡한 과정을 거쳐 풀어 보니까 결국 그 수식 - e 의 급수 표현? - 이 나왔다.

2010/03/25

Jetty embedding from scratch

0 comment(s)

이클립스 웹 프로젝트시 WTP 톰캣을 사용하는 것이 너무 번거로워 Jetty DSL 을 사용해보기로 하였다. 연습 삼아 maven2 를 사용하지 않고 수작업으로 진행해 보았다.

우선 jetty 를 받아 보았는데, distribution 버전을 받아 보니 뭔가 매우 복잡하다. 경량이라고 하는데 패키지 크기도 그렇고, 파일 숫자도 그렇고, 별로 경량일 것 같다는 생각이 들지는 않는다. 어쨌거나 *.jar 들 중에 그럴듯한 이름을 가진 것들을 이클립스 프로젝트 라이브러리에 올려가며 동료가 제시한 DSL 을 작성해 보았다.

천신만고 끝에 DSL 에 의한 내장 웹서버 실행은 되었는데, 이건 좀 아닌듯 싶었다. maven 과 tomcat 사용이 번거로워 해 본 일인데, 이렇게 복잡하게 라이브러리 임포트를 한다면 차라리 maven 이 낫겠다 싶었다. 그러다가 문서를 다시 한 번 살펴보니, Jetty HelloWorld Tutorial 에 jetty-all-${VERSION}.jar 를 받아 적용하는 방법이 나와 있었다. 결국, jetty-all 과 servlet-api.jar 두 가지만 라이브러리 의존성에 포함시켰더니 간단하게 웹서버 실행이 가능하게 되었다.

그런데, JSP 지원이 빠져 있다. Jetty 7 부터는 JSP 를 기본적으로 지원하지는 않는다고 한다. 어차피 원하는 바이긴 했지만 당장은 JSP 를 쓸 필요가 있었기에, 조금 더 살펴 보니까 jsp-2.1 과 jsp-api-2.1 을 가져와야 한다고 한다. 이들 라이브러리는 glassfish 에서 표준화된 것들이라고 하는데, 삽질 끝에 결국 기존 jetty 6.x 대 버전에서 jsp 관련 라이브러리들을 가져와서 해결했다. 해결 이후 보니, 해당 라이브러리들을 *.jar 로 착각했었는데, 디렉터리였고 그 안에 조금 복잡하게 jsp 처리 관련 라이브러리들이 들어 있었다.

결국 jsp 를 사용하지 않을 경우 굳이 maven2 같은 빌드 툴을 사용하지 않고도 쉽게 구성이 가능한데, 그냥 maven jetty plugin 을 사용하는 것이 현재까지는 가장 편한 방법인 것 같다.