2009년 12월 22일 화요일

Transaction 서비스

Java Transaction 관리 방법을 설명한 좋은 문서를 찾았다.

자바코드에서 DB 트랜젝션을 관리하는 방법은 위와 같이 두가지가 있다.

선언적 트렌젝션 관리 방법과 프로그래밍적 트렌젝션 관리 방법.

프로그래밍적 트렌젝션 관리 방법은
소스코드에 직접 트렌젝션을 얻어서, 트렌젝션 코드 수행 후, 트렌젝션을 종료하는 코드를
코드레벨에서 직접 써주면 된다.
이런 방법은 오래 전부터 사용되던 방법이다.

선언적 트렌젝션 관리 방법은 최근에 알게 된 방법이며,
XML이나 Annotation 으로 어떤 단위를 트렌젝션 처리 하라고, 선언만 해 놓으면,
알아서 트렌젝션이 처리가 되는 방법니다.
스프링 프레임웍이 있어서 가능한 방법인 것 같다.

이번 내가 맏은 프로젝트에서는
진보된 방법으로 볼 수 있는 선언적 트렌젝션 관리 방법를 사용해 보려고 한다.

자세한 기술적인 내용은 위 링크를 가면 알 수 있으니 참고하세요.






2009년 12월 21일 월요일

주말을 이용한 java struts2를 이용한 웹 개발 후기

최근에는 혼자 웹 개발을 할때는 Ruby on Rails를 주로 이용하는데,
이번에는 Java Struts2를 이용하여 개발하고 있다.

이유는 유지보수 부분을 다른 분에게 양도해야 하기 때문에,
듣보잡인 RoR로 개발해서 넘겨줄 수 없기 때문이다.

방법을 활용해서 개발했다.

iBator 에서 DB Access소스 제너레이션을 하고, 내가 만든 scaffold generator를 이용하여,
기반코드를 작성하니 좋았다.
이제는 이런 소스 제너레이터 없이 개발하는 것은 상상하기도 싫다.

CRUD 를 위한 RESTful plugin, Convention plugin등을 사용하여 RoR 환경에 비슷한 방향으로
개발 할 수 있도록 노력했다.

plugin에 버그가 조금 있는 것 같은데, (아니면 문서화가 부족해서 내가 잘 모르는 부분이 있거나..)
우회하는 방법으로 피해서 사용하고 있다.

그래도 Ruby on Rails보다는 개발하기 번거로운 부분이 많다.
RoR 생각을 간절히 하면서..
Java 노가다 코드를 삽입하며, 천천히 코드를 개발중이다.

그래도 나중에 Java환경에서 개발을 할 일이 있을 때,
많은 도움이 될 개발이 될 듯 하다.

만약에, 회사에서 처럼 이런 라이브러리 쓰지 말고 개발하라고 요구 했다면??

못한다..-_-

2009년 12월 13일 일요일

windows mysql Ruby gem 설치 에러

windows 에 mysql ruby gem 을 설치하면 에러가 발생한다.

이것을 해결하기 위해, mysql 에 있는 libmysql.dll 파일을 ruby설치경로\bin 디렉토리에 복사한 후,

$ gem install mysql --version 2.7.3

명령어로 설치하면 RDoc은 에러가 나긴 하지만, 정상적으로 사용할 수 있다.

현재 2.8 버전에서는 테스트를 다 안해봐서, 잘 모르겠다.
현재로서는 그냥 2.7.3 버전을 사용하려고 한다.


2009년 12월 11일 금요일

개발자의 성향과 회사

나는 비교적 큰 회사에 다니고 있다.
규모로 따지자면 한국 IT업계에서는 한국에서는 손에 꼽을 만큼 규모가 있는 회사이다.
그런데, 나는 가끔은 이 큰 조직에서 회사를 위해서 내가 할 수 있는 일이 무엇인지 가끔은 고민해 본다.
회사에서 월급을 받으니, 그에 따른 회사에 기여를 해야 한다는 것이 나의 생각이다.

그런데, 내가 회사에서 하고 있는 일이나 업무 역량을 보면..
뛰어나지 않은 그냥 그런 보통의 개발자로 보인다. (어쩌면 조금 뒤쳐질지도..)
시키는 일을 그때그때 잘 하는 편 같다. 시키면 한다.

그런데, 좀 더 능동적인 행동은 되지 않는 듯 하다.
아니, 능동적으로 행동해서 변화 될 수 있는게 별로 없다.

요즘 드는 생각은, (능동적으로 해보려고.)
회사에서 내가 하는 일이 데이터 관리 시스템을 만드는 것이기 때문에,
Java EE 개발환경 보다는 Ruby on Rails가 적합해 보인다. 생산성이 좋고, 데이터 무결성 유지에 좋아보인다. 데이터 정규화도 더 잘 될 듯 하고..(몇백만건, 몇천만건 넘는 대용량은 아직 잘 모르겠지만..)

그래서 팀원들에게 Ruby on Rails를 당장 쓰자고 말하는 것도 아니고,
세미나를 한번 해주고 싶은 마음이 솟구쳐, 팀 세미나..
스터디 시간에 살짝 언급을 했었는데..  한방에 퇴짜 맞았다.

퇴짜 이유는? Java 기술이 아니라서 ㅎ
생산성이 월등히 좋다고 다시 한번 더 설득을 시도 하였으나,,
그렇다면,, php를 쓰겠다고 한다..-_- php가 java보다 생산성이 좋다고..ㅡㅡ
내가 php를 잘 몰라서 반문할 여력은 별로 없다.

그런데, 나는 개발자 성향을 가진 팀원으로서, 생산성 좋은 Ruby on Rails를 보면 적용하고 싶고, 좋다는 것을 알리고 싶다.
Ruby on Rails의 Active Record, Formtastic .. 등등 수많은 라이브러리들을 보면.. 흥분된다 -_- 단지 좋아서.ㅎㅎ

하긴, 회사에서는 java 중에서도 내가 쓰고 싶은 java framework 이나 라이브러리를 쓰지 못하는 판에.. 왠 Ruby on Rails니..ㅎ
회사에서는 회사 자체의 라이브러리로 개발해야 한다. (내생각엔 좀 뒤쳐진..)
java로 개발 하더라도, java framework, 라이브러리 사용의 자유를 줬으면 한다..


해외 여행 호텔을 예약하려면..HotelTravel.com

이번에 말레이시아 코타 키나발루에 여행계획을 세우면서
hoteltravel.com으로 호텔을 예약을 했다.


Hotel Travel


예약과정이 아주 편하고, 직관적이다.
처음 접속하면 영어로 기본으로 보이지만, 오른쪽 상단에 태극기로 한국어 설정을 하면
한글로 편하게 볼 수도 있다.

심지어, 한가지 놀라운 점은.. 바로 채팅으로 고객문의를 들어준 다는점.
그것도 한국어로 채팅을 해서 고객문의 서비스를 받았다.

이전 포스트에서 쓴 호텔 3곳을 예약하는 과정에서,
단순 변심으로 카드 결제까지 한 호텔을 하나 취소하게 되었다.
취소도 잘 된다.
결제 취소 관련해서 궁금한 것이 생겨서, 채팅 고객문의 서비스를 이용해 보니, 아주 편하다. 대만족.

물론, 결제에도 ActiveX 가 사용되는 것이 아니고, https로 그냥 한다.
너무 쉽게 결제가 되고,
브라우저의 html form에서 카드번호 등의 기존입력 값들이 자동 완성이 되어서,
너무 편해 걱정스러울 정도다. (이건 거짓말임.)

여기서 잠깐 예기를 옆으로 세보면..
"저런 form자동완성 보안문제 때문에 ActiveX써야되.." 라고 말하는 분이 계시다면..OTL
공공PC는 브라우저 설정에서 form 자동완성을 꺼놓으면 된다. (이건 공공PC를 운영하는 곳에서 신경을 써 줘야 할듯.)
개인용 PC면 위 기능이 제공되면 편해서 좋은거 아닌가..

우리나라의 Flash로 된 메뉴, 웹표준화 안지키고, ActiveX의 결제시스템 등..
이런 오바스러움을 떨면서도 주민등록 번호는 https가 아닌 http로 전송 받는다. -_- 안습.
우리나라 전형적인 웹서이트들을 보면 좀 안쓰럽다. 왜 이렇게 되었는지..

실용주의 소프트웨어(http://jaehyun.userstorybook.net/2181/ )의 깨진창문 얘기가 떠오른다.
한번 깨지기 시작하면 쉽게 연속으로 깨지고, 금방 집이 폐허가 될 수 있다는 것.

호텔 얘기로 시작해서 개발자 얘기로 끝나는 -_- 뭥미.

2009년 12월 9일 수요일

코타키나발루 여행 계획

1월 16일부터 22일까지 말레이시아 코타키나발루 휴양지로 겨울에 따듯한 나라로 휴가를 계획했다.

일단 항공권은 아시아나 보너스 항공권으로 결정.
지금까지 모은 10만 5천 마일리지 중에서 7만 2천 마일리지를 사용하게 되었다.
동남아 보너스 항공권이 원래는 1인당 4만 마일 차감인데, 2인 이상 아용시 10% 할인이라서
7만 2천 마일리지 차감으로 2인 왕복 탑승권 득템.
유류세 및 공항세가 1인당 8만원이 나와서 16만원으로 항공은 해결

숙소는 인터넷으로 예약을 하기로 했는데,
http://www.hoteltravel.com/
http://www.agoda.co.kr
두군데 인터넷 호텔 예약 사이트중에서 hoteltravel 를 이용하기로 했다.
agoda가 순수 가격은 더 저렴한 상품이 꽤 많이 있는데, 조식이 불포함 된 경우가 많다.
아침은 호텔에서 먹는것이 좋은 것 같아서 hoteltravel로 결정.

도착이 새벽 17일 새벽 1시쯤 될 것 같아서,
첫날을 리조트나 고급호텔에 머무르기에는 돈이 아까운 듯 하여,
첫날은 저렴한 호텔을 이용하기로 했다.
베벌리 호텔 사바 1박 $64
http://www.hoteltravel.com/kr/malaysia/sabah/karamunsing.htm

둘째, 세째날은 리조트에서 보내기로 결정.
퍼시픽 수테라 리조트 $158 * 2박 = $316
http://www.hoteltravel.com/kr/malaysia/sabah/pacific_sutera.htm

넷째, 다섯째날은 고급 호텔에서 보내기로 결정.
르 메르디앙 코타 키나발루 $122 * 2박 = $244
http://www.hoteltravel.com/kr/malaysia/sabah/le_meridien_kota.htm
처음에는 하얏트 리젠시 호텔을 고려하였으나,
블로그를 검색하다 보니, 르 메르디앙이 더 좋은 평을 가지고 있다.

이만,, 여행 후에 자세한 후기를 올리도록 하겠습니다.


2009년 12월 1일 화요일

아이폰으로 본 증강현실 체험과 다음 로드뷰

오늘 아이폰을 개통 한 후,
Navigator라는 App을 다운로드 받아서 증강현실을 테스트 해 보았다.

무엇보다 놀란 점은 아이폰을 내 눈으로 보면서 내 몸을 움직이면,
아이폰이 나의 움직임을 모두 파악해서 화면을 보여준다는 점이다.

동서남북 방위 각도는 물론이고,
상하 각도 움직임까지 모두 센싱해서 화면 처리를 해 줄 수 있다는 점이다.

1. Navigator by Niftybrick Software

아래 화면은 우리집에서 반포공원을 증강현실 뷰로 보게 된 것이다.
8miles 저 방향에 반포 공원이 있다는 것을 알려준다.
8miles는 12.8Km정도 된다.
물론, http://www.youtube.com/watch?v=sWFcys5-HNY 에 소개된 것과 같이, 반포공원 좌표는
검색 후, 등록을 해 두었다. (이것은 등록된 지점 DB문제이니 나중에 풍부해 질 것으로 생각된다.)



2. Daum 지도의 로드뷰 App

지금 아래 정지된 사진으로 보니, 실감이 나질 않는데,
다음 지도로 내위치를 확인 후, 로드뷰를 보면 현재 위치의 로드뷰를 볼 수 있다.
여기서 오른쪽 상단의 시야맞춤(?) 버튼을 클릭하면,
아이폰을 들고 움직이는 것만으로, 마치 시야가 움직이는 것처럼 보여진다.

정말 신기한 세상이다.

동서남북 방위가 맞아서 내가 저 위치에 서있는 다면 눈으로 아파트를 둘러보는 것과 같이,
아이폰으로도 아파트를 둘러 볼 수 있게 되었다.
스티브잡스가 발표 현장에서 시연을 했던 것이 이와 같은 것이였던 것 같다.




아이폰이 새로운 세상을 만들어 주는 것 같은 기분이 든다.
점점 빠르게 변할 것 같다. 새로운 비지니스 기회도 많을 것 같고..