2월, 2011의 게시물 표시

Play 프레임워크에서 hibernate_sequence 대신 테이블 자신의 시퀀스 사용하기

우리나라에서는 아직 Play Framework 사용자가 거의 없는 듯 하다. 이렇게 좋은 웹프레임워크를 쓰는 사람이 없다니 안타깝다. 최근 간단하게 이것을 이용해서 IP관리 프로그램을 만들었는데, 실제로 만들어보니, Rails 정도까지는 아니지만, 다른 웹프레이워크들(Django, CakePHP 등) 정도로 너무 쉽게 개발이 가능하여 생산성이 아주 좋다는 것을 확인하였다. Play Framework 내부적으로 Hibernate 를 사용하여 DB에 접근을 하고 있다. 각 테이블의 레코드를 구분하기 위하여 id 라는 필드를 사용하고 있는데, Oracle/PostgreSQL 에서는 hibernate_sequence 를 생성하여 모든 테이블에 적용하고 있다. 아무래도 하나의 시퀀스를 이용하기 때문에, 대용량처리/부하 등의 문제가 발생할 수 있을 것이라 판단된다. 이 때문에 각 테이블별로 시퀀스를 생성해서 사용할 수 없는지 방법을 찾아서 아래와 같이 정리하였다. 이 밖에 몇가지 방법이 있는 듯 하나, 복잡하여 일단 쉽게 쓸 수 있는 방법부터 알아보자. 일반적으로 Play 에서 Model 을 생성할 때 아래와 같이 작성한다. package models ;   import java.util.* ; import javax.persistence.* ; import play.* ; import play.db.jpa.* ; import play.data.validation.* ;   @ Entity @Table ( name = "users" ) public class Users extends Model { public String userid ; public String password ; public String name ; } 그런데, Oracle 이나 PostgreSQL 처럼 Sequence 를 이용하여 id 를 자동증가를 시키면, hibernate_sequence 라는 공통

Debian Linux 6.0(squeeze)에서 Ruby 설치

Debian Linux 에서 Ruby를 사용하려면 패키지를 설치하면 쉽게 사용할 수 있다. 그러나 원하는 버전의 Ruby를 사용하고자 한다면, 별도로 설치해야 되는데, 그 방법을 설명하고자 한다. 참조 http://rvm.beginrescueend.com/  : Ruby Version Manager (RVM) Unix 계열의 OS에서는 RVM 으로 다양한 버전의 Ruby 를 설치/관리할 수 있다. 소스 컴파일을 하기 때문에 설치가 느리긴 하지만 다양한 OS에서 일관된 설치/관리를 제공하므로 효과적이다. http://railstutorial.org/ruby-on-rails-tutorial-book  : Ruby on Rails Tutorial 필요한 패키지 설치 # apt-get install autoconf build-essential bison curl git rvm 설치 # bash < <( curl -L http://bit.ly/rvm-install-system-wide ) /etc/profile 에 다음 내용 추가 [[ -s "/usr/local/lib/rvm" ]] && source "/usr/local/lib/rvm" rvm 정상설치 확인 # source "/usr/local/lib/rvm" # type rvm | head -1 rvm is a function 위에서  rvm is a function  이 나오면 정상 설치된 것이다. 설치할 수 있는 ruby 버전들 확인 # rvm list known 원하는 버전의 ruby 설치 # rvm install 1.9.2 # rvm --default use 1.9.2 ruby 버전 확인 # ruby -v ruby 1.9.2p136 (2010-12-25 revision 30365) [i686-linux]