카테고리 없음2008. 3. 25. 18:02
이리저리 뒤져본 결과 자바스크립트관련 사이트로는 http://www.ajaxrain.com/ 가 제일 활발한 것 같은데. 요즘 올라오는 것을 보면 거의 대부분 jQuery로 만들어졌다.

자바스크립트 공부를 하기 전에 여기에 있는 ppt부터 읽어보도록 하자
Posted by jintopark
카테고리 없음2008. 3. 24. 00:54
레일즈(rails)랑 그레일즈(grails)를 대강 비교해봤다.

레일즈는 "ab -n 1000 -c 10"의 테스트에서 CPU 99% MEM 8% 까지 먹는다.
그레일즈는  "ab -n 100 -c 1" 만 줘도 CPU 99% MEM 80% 까지 간다. 대략 10배정도 힘들어한다. (메모리를 더주면 GC를 안할테니 비교해볼만할지도 모른다.)

초당 요청 처리는 그레일즈가 3개, 레일즈는 29개 정도. 한개를 처리하는 시간은 그레일즈 336ms, 레일즈 30ms. 어디를 봐도 10배정도 느리다. ab 를 쓰는 테스트는 너무 많이 부정확한 걸까?


대강 살펴본 것이고, 결정적으로 메모리가 별로 없는 서버라서 비교하기 힘들긴 하지만, 그래도 대강비교에서는 레일즈 승. Graeme씨가 테스트하기로는 그레일즈가 더 빠르다고 했는데, 어째 이런 결과가 나온 걸까? 흠...

레진(resin)과 아파치에 연결해서 테스트해본 결과, 아파치-레진-그레일즈의 조합보다는 레진-그레일즈의 조합이 더 안정적인 결과를 보여준다. 최고 초당 4개까지 처리한다. 흑. 어쨌든,그레일즈는 아직 도입불가.

사실... 스프링같은 것이 아래쪽에 들어있는 놈을 쓸 필요는 없겠지. 너무 크니까...

http://graemerocher.blogspot.com/2008/01/grails-making-java-developers-forget.html
을 읽어봐도 꼭 옮겨갈 필요는 없어보인다. 다만..

내가 뭘만들든지 이 녀석들은 참고할 필요가 있겠다.  이녀석들 : http://grails.org/Plugins

이상~

Posted by jintopark
카테고리 없음2008. 3. 22. 03:48

이번에는, 필요할지도 모르니 php 관련한 테스트도 해보았다. mod_php 보다 정확히 두배빠르다.

ab -t 10 -n 1000 -c 15  http://.../test.php

동일한 php파일을 두군데에 두고는 하나는 mod_php로 돌리고, 하나는 resin으로 돌렸다.

평균 244초 대 73초가 나왔다. resin쪽이 php를 처리하는 능력이 3배정도 빠르다. php 를 그대로 포팅할 수 있는지는 돌려봐야알겠다. caucho 말로는 잘 될거라고 하지만...
 

Posted by jintopark
카테고리 없음2008. 3. 22. 03:42

호스팅을 하나 더 받기로 했다. 까페24에서는 이것저것 잘 쓰고 있지만 장고(django)를 테스트해본다던가, ruby 설정을 바꿔보고 싶다던가, 하는 것은 불가능하다. 결국 가상서버 호스팅이 최적의 선택인 것 같은데, 이곳 http://www.just4fun.co.kr/drupal/ 이 괜찮아보였다. 테스트신청하고 일주일동안 두들겨본 결과, 일단 1년에 10만원짜리 가상서버호스팅을 쓰기로 했다.

속도는 아주 만족스러운데, 가끔씩 응답이 느려지는 경우가 있다. 하지만 운영자가 꽤 부지런하고 친절하다. 그거면 충분했다. 안정성은 아직 모르겠다. 까페24는 안정성만큼은 보장할 수 있었는데, 아직 just4fun은 열흘밖에 못써봤다.

서버를 쓸 수 있게 되자마자, mod_python으로 django환경을 만들어보았다. ruby도 테스트해봤다. 잘된다. 하지만 장고는 장난감. ruby는 한동안은 안쓸꺼고.. 밥벌이는 jsp, groovy로 하는 경우가 많으니까. tomcat과 resin을 설치해봤다.

언제나 그렇듯이, tomcat 과 resin을 비교해봤는데, 역시 resin이 빨랐다.

#apt-get install apache2-dev
#mkdir /opt/resin
#export RESIN_HOME=/opt/resin
#export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
#wget http://www.caucho.com/download/resin-3.1.5.tar.gz
#unzip -x resin-3.1.5.tar.gz
#cd resin-3.1.5
#sh ./configure --with-apxs2=/usr/bin/apxs2 --prefix=/opt/resin

이제 make하기 전에.. modules/c/src/apache2/Makefile 을 아래를 참고해서 고친다. (이건 찾기 쉬웠다.)

APACHE_INC=-I /usr/include/apache2 -I /usr/include/apr-1.0
resin_home=/opt/resin/
apache_conf=/etc/apache2/httpd.conf
apache_dir=apache_libexec=/usr/lib/apache2/modules

mod_caucho.c 맨앞에는..

#define _LARGEFILE64_SOURCE    1

라고 한다. (이건 구글신도 말을 안해줘서 소스를 뒤졌다. 뒤져보니 어렵지 않게 해결할 수 있었다.) 이제 다시 진행하면 된다.

#make
#make install
#cd modules/c/src/apache2/
#make
#make install
#cd /opt/resin/bin
#./httpd.sh start
#web browser go to http:// .... :8080/ and confirm resin loaded

#mkdir ~/mysql_j
#cd ~/mysql_j
#wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.6.zip/from/http://mysql.byungsoo.net/
#unzip -x mysql-connector-java-5.1.6.zip
#cd mysql-connector-java-5.1.6
#cp mysql-connector-java-5.1.6-bin.jar /opt/resin/lib

라고 하고, conf/resin.conf 에서

<driver type="org.gjt.mm.mysql.Driver">

<driver type="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource">

로 바꾼다.

/etc/profile 에

export RESIN_HOME=/opt/resin
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

를 추가한다.


아파치쪽은 대강 손질해주면된다. make install 하고 나면 httpd.conf에 뭔가를 써넣는다. 보면 대강 안다. a2enmod caucho 해줘도 되고, htpd.conf를 그냥 둬도 된다.

이제 http://wiki.caucho.com/Apache 를 보고 따라하면 아파치랑 레진이 같이 돈다.
하지만, 아파치를 거치게 하면 2~3배정도 느려진다. 그래서 실전에서는 안쓸 수 도 있지만 그래도 확인해봐야 할 것 같아서 설치해봤다. (실전에서 쓸지도 모른다. 아래의 ps에 관련 사항을 적었다)

참고로... resin php 랑 resin jsp 랑은 속도차이가 거의 없다. (데이터베이스 관련 함수같은 것을 빡쎄게 불러주면 속도차이가 날지도 모르겠다. 다만 기본적은 php구현은 꽤 빠르다.


P.S. 혹 GC관련 튜닝이 필요할지도. /opt/resin/httpd.sh 에서  마지막줄을
#exec $JAVA_EXE -jar ${RESIN_HOME}/lib/resin.jar $*
exec $JAVA_EXE -server -Xnoclassgc -XX:+UseConcMarkSweepGC -jar ${RESIN_HOME}/lib/resin.jar $*

로 하는 것이 어떨까. GC 옵션든은 좀더 뒤져보자.
http://wiki.caucho.com/Garbage_collection 도 보자.

ab -t 10 -n 1000 -c 1  http://.../test.jsp

를 했다. 이 테스트에서 가끔씩 (2000번중에 한번 정도) 실패하는 것은...
GC 때문이 아니었다. 무엇인지 잘 모르겠다.

이런 문제는 아파치에서는 잘 생기지 않는 문제지만, resin을 프론트엔드로 내세우면 자주 발생한다. 아마도, 이래서 아파치를 앞쪽에 세우는 거겠지. 우짜둥둥 오늘은 여기까지.

Posted by jintopark
카테고리 없음2008. 2. 19. 00:46
열심히 일하는 중에 정신을 차려보니, 뭔가 이상한 느낌이 들어, 번역한 것을 읽어보았다.
Inside the Java runtime, classes are managed by a classloader. When a Java classloader is asked for a certain class, it loads the class from the *.class file, stores it in a cache, and returns it.  

자바 실행 환경에서 클래스는 클래스로더가 관리한다. 어떤 클래스를 요청하면, 자바 클래스로더는 *.class 파일을 찾아서 요청받은 클래스를 읽어 들인 후 캐시에 저장하고 리턴한다.

그런데, 자꾸 읽어보면 어쩐지 우리말처럼 들리기도 한다.

... "클래스로더" 라는 단어는 번역하지 않는 것이 좋겠다.

Posted by jintopark
카테고리 없음2008. 2. 17. 20:03
리커시브 클로저를 쓸 때 주의할 사항
http://www.nabble.com/Closure-vs-function-td15496180.html


이것도 자세히 읽어봐야한다.
http://www.jroller.com/melix/entry/groovy_functional_programming_and_the
Posted by jintopark
카테고리 없음2008. 2. 14. 22:10
미국에 그루비를 쓰는 회사가 아무리 많아도 우리나라에 없다면 별로 소용이 없는 일이지만, 미국의 동향은 우리가 기술적으로 미국에 의존하고 있기 때문에 중요하다.


groovy java Job Trends graph
groovy java Job Trends groovy java jobs


하지만 말이지..

루비는 단위가 틀리잖아.

ruby rails Job Trends graph
ruby rails Job Trends ruby rails jobs

뭐, 그루비가 버전 1.0 이 나온지 얼마 안됐으니까, 그대로 비교하면 힘들겠지?
Posted by jintopark
카테고리 없음2008. 2. 14. 17:21

그루비는 James Strachan 이라는 사람이 만든 언어다.

어느날 제임스가 마누라랑 공항에서 비행기를 기다리고 있었단다. 비행기가 연착되고 마누라께서 쇼핑하러 간사이 인터넷에 접속해서 이것저것 들여다보고 있었는데, 그때 눈에 띈게 파이선 웹사이트였다고 한다.

자바 프로그래머였던 제임스는 파이선을 보고는 '이런게 자바에서 가능하면 좋겠네' 라고 생각했고, 그게  그루비의 시작이었다.

하지만, 나도 가끔 들여다보면서 관심을 가지고 있던 "Languages for the JVM" 사이트에서도 그루비는 눈에 띄지 않는 녀석이었다.

한동안 개발이 지지부진 했었는데 - 지난번 ruby 세미나에서 들은바에 의하면 JVM 상의 언어개발이 다들 밍기적대던 때가 있었다고 한다. 요즘 다시 부활하는 분위기라고 한다. - 2007년 와서야 1.0 이 발표되었다.

그리고는 1.0 나오고 얼마되지도 않았는데 갑자기 1.5 가 나와서 뭔가 했더니 Java 1.5 랑 같이 가려고 열심히 달린 것 같다.

나는 2007년 초반에 작은 사이트를 구축하기전에, 확장성과 생산성이 높은 개발 플랫폼을 찾아본 적이 있다.

DJango, Rails, TurboGear, Grails 그리고.. PHP 까지 테스트해본 적이 있는데, Grails 는 못쓸정도로 느렸지만, 테스트 말미에 우연히 만져본 groovy 는 생산성은 스크립트 언어들 처럼 훌륭하면서도 속도는 자바의 속도를 그대로 지원하는 쓸만한 놈이었다.

그후에 Rails 로 사이트하나를 만들어봤고, groovy 로도 하나만들어봤다. 지금 나보고 웹사이트를 만들라고 하면....

덩치큰 사이트라면 groovy 에 기반한 서블릿+JSP 로 구축하면 될 것 같다. Rails 는 좀 애매하다. 좋은 플랫폼인 건 확실한데, 사람들에게 전파하는게 좀 버겁다.

혼자서 깨작거리는 사이트는 짱고로 만든다. 파이선은 ad-hoc 으로는 최고가 아닐까.

그냥 주절거려봤다. 나도 공항에서 연착되는 비행기를 기다려 본적이 있는 것 같긴 한데...



P.S. 그건 그렇고, 저 Languages for the JVM 은 페이지 하나짜리 치고는 정말 오래전부터 포맷도 안바꾸고, 내용은 충실하고, 굉장한 녀석이다.

P.S. James Strachan 은 뭐라고 읽어야 할까. 제임스 스트래천? 스트래찬? 뭘까?

Posted by jintopark
카테고리 없음2008. 2. 7. 16:43
다 빈치는 여러가지 기계를 스케치했었다. 고 알려져있다.

사용자 삽입 이미지

이 헬리콥터도 그가 스케치했던 것. 이런 저런 요상한 스케치들이 남아있어서 그가 얼마나 뛰어난 발명가였는지 알 수 있는데...


다 빈치 머신 프로젝트 http://openjdk.java.net/projects/mlvm/ 에 따르면 자바 가상 기계도 사실은 그가 이미 예전에 발명했던 것으로 밝혀졌다.
사용자 삽입 이미지
Posted by jintopark

 

 
«이전  1 2 3 4 5  다음»