간만에 다시 Ruby를 가지고 놀고 있습니다.
1.9.x 버전에서 달라진 부분도 있고해서 macport로 1.9.1버전을 설치하는데 컴파일 오류가 나더군요.
구글링 결과 openssl 업데이트와 관련된 문제임을 파악했으나, 공식 패치버전이 macport repository에 올라오는데 몇 일은 걸릴 것 같더군요.

다른 대안을 찾다가 RVM(Ruby Version Manager)라는 멋진 녀석을 찾았습니다.
당분간 1.8.x, 1.9.x 사이를 오가면서 놀텐데 RVM으로 각 루비 버전들을 설치 및 관리하면 편할 것 같습니다.

RVM 설치

설치는 매우 간단합니다.

bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

쉘에서 위와 같이 입력하고, .profile 마지막에 아래 라인을 추가해주면 됩니다.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Ruby 설치

원하는 Ruby 버전은 쉘에서 다음과 같이 입력하여 설치할 수 있습니다.

# MRI 1.9.1 버전 설치
rvm install 1.9.1
 
# MRI 1.8.7-p160 버전 설치
rvm 1.8.7-p160
 
# MRI 1.8.7-p174 버전 설치
rvm 1.8.7-p174  
 
# JRuby 설치
rvm install jruby

패치버전 단위까지 따로 관리할 수 있고, 공식 버전(MRI), JRuby, IronRuby 등등 다양한 Ruby Interpreter를 지원합니다.

사용할 Ruby 변경하기

# 설치된 ruby 목록 보기
rvm list
 
# ruby 변경하기 (현재 쉘에서만)
rvm 1.9.1
 
# 기본 ruby 변경하기
rvm 1.9.1 --default
 
# 시스템 기본 ruby 사용하기 
rvm system --default

macport와는 별도로 ruby 패키지를 관리한다는게 썩 내키지는 않지만, 여러 버전의 ruby를 간편하게 관리하고 스위칭할 수 있으니 좋네요. 그리고 기본적으로 ~/.rvm/ 밑에 소스 및 설치파일들을 관리하기 때문에 서버에서 rvm에 의한 영향을 특정 계정으로 한정지을 수 있다는 점도 장점일 수 있겠습니다.

간만에 Ruby 세상으로 돌아오니 좋군요. ^^

,

XStream은 Java Object에 대한 xml serialize를 제공하는 Libraray입니다. 물론 deserialize도 지원하며, json 변환 역시 지원하지요.

문제상황

하지만 XStream은 Object의 property 값이 null 인 경우에는 해당 property를 serialize 하지 않습니다. 예를 들면…

더보기

, , ,

요즘 대부분 웹페이지의 한글페이지는 UTF-8로 개발되는 추세지만, EUC-KR로 개발된 사이트를 UTF-8로 전환하려고 하는 경우 외부에서의 링크 등 때문에 Request의 파라메터에 대해서 UTF-8과 EUC-KR을 모두 지원해야할 경우가 종종 있습니다. 하지만 Java는 PHP 등과는 달리 String을 byte array로 보는게 아니라, byte array를 decoding해서 유니코드로 처리하므로 Tomcat의 character encoding 설정 만으로는 파라메터에 대해서 UTF-8과 EUC-KR을 모두 지원할 수 없습니다. 이런 상황에서 써볼 수 있는 팁을 정리해봅니다.

더보기

, , , , , ,