Web Application개발을 하다 보면 가장 귀찮은 점이 바로 테스트를 하면서 개발을 할 때, Java를 고치고 난 후에 Class를 컨테이너에 적용 시키기 위해서 웹서버를 내렸다가(서버를 정시시키는 것) 다시 올리는 것(서버를 가동시키는 것)이라고 할 수 있습니다.

조그마한 실수 하나에도, 또는 이게 맞는지 저게 맞는지 확신이 서지 않아서 테스트 할 때 이와 같은 서버를 재부팅하는 것은 많은 시간적 소모를 가지고 올 수 있는데, 이런 귀찮은 부분을 수정한 것이 바로 HotSwap기능이라 할 수 있습니다.

HotSwap기능이라는 것이 사실은 컴퓨터의 하드웨어적인 기능이지만 여기서 말하는 HotSwap이란 JAVA에서 말하는 Class로드 부분인 것 같다는 생각이 듭니다. 어쨌든 HotSwap기능이 있는 JRebel을 공짜로 한 번 써봅시다!!!!


Step 1 등록하기!!!!

우선 아래 링크로 접속을 합니다.

http://social.jrebel.com

그러면 아래와 같은 웹페이지가 나타나죠

Social JRebel 첫화면Social JRebel 첫화면

참고! : Social JRebel은 말그대로 SNS 계정이 필요로 하는 JRebel입니다. 자세히는 않읽어 봤지만, 대략 읽어 보니 Social Network를 이용해서 홍보를 하는 것이며, 한달에 한 번 정도 자신의 SNS계정을 통해서 홍보성글을 올리는 걸로 봤습니다. 어쨌든 그래서 공짜인듯 해요. 아! 그리고 또 하나 주의 점은 non-commercial 용도라는 것입니다.


위에 밑줄 그은 부분(그림에서)을 클릭합니다. 그러면 다음 화면이 나타납니다.(Facebook을 하고 있다는 가정에서 하는 것입니다. Twitter 계정으로 하시는 분은 조금 다를 수 있습니다.)

1. Facebook 화면

Social JRebel 등록하기(Facebook)Social JRebel 등록하기(Facebook)

2.Twitter계정으로 할 때의 화면


Social JRebel 등록하기(Twitter)Social JRebel 등록하기(Twitter)



Facebook화면은 제 Web Browser가 이미 Facebook에 로그인이 되어있어서 바로 허가 화면이 뜬것입니다. 만약 Facebook에 로그인이 되어있지 않다면 로그인해야 할 것이고, 만약 계정이 (Twitter 계정역시) 없다면 계정을 만들어야 할 것입니다.



Social JRebel 등록화면Social JRebel 등록화면

이제 트위터에 로그인 헀다거나, Facebook에 Social JRebel이 사용자의 계정을 가지고 광고를 해도 된다고 수락하고나면, 위와 같은 화면이 나타납니다. 뭐 기본적인 Profile을 적는 것이죠. 작성을 다 하셨다면.....아래 그림을 참고 합니다.


Social JRebel 등록화면Social JRebel 등록화면

자신이 사용하는 언어와, Container(그러니까 일반적으로 웹 어플리케이션 서버)를 선택하고, 사용계정에대한 Agreement를 동의하고 JRebel을 다운받았는지 않받았는지를 선택하고 나서 "Register"(등록)을 클릭합니다.

그러면 아래와 같은 화면이 나타납니다.

등록이 완료된 화면등록이 완료된 화면


여기서 Next를 누르면 라이센스키 화면으로 넘어가게 됩니다.(아래그림)


Social JRebel KeycodeSocial JRebel Keycode


Step 2 Eclipse에 JRebel Plugin 설치하고 License Key Code입력하기


Eclipse 에서 JRebel 설치Eclipse 에서 JRebel 설치


Eclipse에 Help>Marketplace에 가면 일반적으로 가장 먼저 보이는 것이 JRebel일 것입니다. 않보이면 JRebel을 조회해서 설치를 합니다.

Plugin 설치가 끝나고 나면 위와 같이  Eclipse메뉴에서 Window>Preferences에 가면 설정화면이 보입니다. 항목중에 JRebel이라는 항목을 클릭합니다.

JRebel plugin for Eclipse 설치 후 설정JRebel plugin for Eclipse 설치 후 설정


그러면 위와 같은 설정화면이 보이는데 여기에서 "Configuration Wizard"를 클릭하시면 아래와 같은 Popup창이 하나 뜨게 됩니다.


JRebel plugin for Eclipse 설치 후 Configure화면JRebel plugin for Eclipse 설치 후 Configure화면


팝업창이 뜨면 조금 느려 질 것입니다. 제 컴퓨터 스펙이 그닥 딸리는 편은 아닙니다. i-5코어 2.5Ghz에 RAM 8G인데도 버벅거렸으니까요;;;; 아마 대부분 느려지실 겁니다. 하지만 인내를 가지고 하시다보면 금방 끝나고, 끝이나면 괜찮아지니까요.....포기하지 마세용!!! ㅋㅋ

어쨌든 위와 같이 라디오 버튼 항목중에 "I want to use JRebel Social(FREE for non-commercial user)"라는 항목을 선택하고 하단에 "Next" Botton을 클릭합니다. 그러면 아래의 화면이 보입니다.

JRebel Configure에서 Keycode입력하기JRebel Configure에서 Keycode입력하기

위에 말풍선에 표시했듯이 아까 Social Jrebel등록후에 나온 Key Code를 공간에 붙여 넣기 하고 "Next"를 누룹니다.

그리고 끝까지 가서 Finish를 누르면 일단 License Key Code등록은 끝이 났습니다.


마지막으로 Preferences창에 JRebel에서 아까는 Configuration Wizard를 선택했다면, 이번에는 그 바로 아랫줄에 있는 "Agent Settings"을 선택하고 아래와 같이 Project의 Root위치를 설정해 줍니다.(사실 이거 왜하는지 모르겠어요 안들어가 있어도 잘되던데;;;;;)

JRebel Agent Setting화면JRebel Agent Setting화면


Step 3 Project에 설정하기!!!

자 이제 프로젝트에 설정을 해야 하는데요, Configuration Wizard에 설명은 아래 그림과 같이 나와있습니다. 그런데 저는 Eclipse Indigo를 쓰고 있는데 창이 이런 식으로는 안뜨더군요.....(다른 버전에서는 아래와 같이 뜰 수도 있지만 저는 조금 다르게 뜹니다.)

Eclipse Project에 JRebel 설정하기Eclipse Project에 JRebel 설정하기


바로 아래와 같이 조금 다르게 뜨는데요. 화면은 아래와 같습니다. 


Eclipse Project에 JRebel 설정하기Eclipse Project에 JRebel 설정하기


일반적으로 Project의 Source폴더가 src로 지정 되어있다면 위에 빨간줄 친것 처럼 "Generate rebel.xml in src"를 클릭하면 되지만 만약 Source폴더가 다를 경우에는 바로 위의 메뉴인 "Generate rebel.xml"을 눌러 Source폴더가 어디인지 지정해 줍니다.

주의! Source폴더는 *.java가 모여있는 Project내의 최상위 폴더를 이야기 합니다.


자 rebel.xml을 Generate했다면 이제 마지막으로 Eclipse에서 돌아가는 Tomcat서버의 설정만 하면 됩니다. 아래의 빨간줄 그은 부분들로 체크하고 저장하면 됩니다(물론 Tomcat Server는 중지시켜 놓구요)


JRebel을 위해서 Tomcat서버 설정하기JRebel을 위해서 Tomcat서버 설정하기


이제 모든 것이 끝났습니다.

이제는 *.java파일을 아무리 고쳐도 Tomcat서버를 멈췄다가 재가동해야 하는 부분은 문명히 필요 없게 되었습니다.


*한가지 아쉬운점

JRebel은 다 좋은데 한가지 아쉬운 점은 바로 xml로드는 지원하지 않는다는 것입니다.

저의 경우 Struts에 iBatis를 쓰고 있는데, iBatis에서 정의해 놓은 SQL문들이 있는 XML을 아무리 바꿔도, HotSwap기능과는 거리가 있는 것 같더군요;;;;; 뭐 그부분을 빼면 나쁘진 않은 것 같습니다......^^잘 사용하세요!!!

















Posted by gofly