캠핑과 개발

자바 웹프로젝트를 진행하면서 소스 수정이 일어날 때마다 바로 반영이 되지 않기 때문에 

톰캣을 재기동하거나, 자동으로 소스를 반영하고 톰캣을 재실행되도록 설정을 한다.


이는 너무나 일상적인 개발 방법이라 전혀 이상하지 않았지만 매우 불편하고 시간을 허비하는 일이다.

순수 JSP만 이용하여 개발을 하게 되면 이런 과정을 거치지 않겠지만 요즘은 이런 개발은 하지 않을뿐더러 객체지향적으로 설계를 하다보니

JAVA 파일 갯수는 어마하게 늘어났다. 

파일 하나 수정했을 뿐인데 톰캣을 재기동하고, 때로는 파일 하나 수정했을 뿐인데 설정에 의해서 톰캣이 자동으로 재기동 된다.


이런 과정을 줄여주는 도구가 여러가지가 있겠지만 예전에는 JRebel을 잠깐 사용했었다.

좋은 점이 있지만 무엇보다 유로로 제공되고 잠깐 동안 커뮤니티 버전을 사용했는데 지금은 제공하지 않는지 URL을 찾을수가 없었다.


이번에는 이런  기능을 무료로 제공해주는 도구가 있어서 설정 방법을 요약한다.      

이름은 spring-loaded이며 다운로드는 아래 링크를 통하여 다운로드 받을 수 있다.


- homepage : https://github.com/spring-projects/spring-loaded

- maven : http://mvnrepository.com/artifact/org.springframework/springloaded/1.2.6.RELEASE


먼저 사용을 하기 위해서는 해당 사이트에서 파일을 다운로드 한다.

파일명은 현재 기준 가장 최근 파일이 아래와 같다.


springloaded-1.2.6.RELEASE.jar


해당 파일만 다운로드 받으면 준비가 끝난다.

제법 간단하다.


파일을 다운로드 받았다면 이클립스 톰캣 서버 설정을 일부 변경해줘야 한다.

이클립스에서 해당 웹어플리케이션의 톰캣 서버를 더블 클릭하면 톰캣 설정이 화면이 뜨게 되는데

1. Publishing -> Automatically publish when resources change 항목 체크

2. Server Options 탭의 모든 체크 항목 해제

3. General Information 탭 항목의 Open launch configuration 텍스트를 클릭한다.




4. Open launch configuration 텍스트를 선택하게 되면 해당 창에서 Arguments탭을 선택하여 Vm arguments 창에 위 이미지처럼 다음 옵션을 추가해준다.


-javaagent:/Users/hmjkor/Downloads/springloaded-1.2.6.RELEASE.jar -noverify


위에서 /Users/hmjkor/Downloads 부분은 각자의 PC 환경에 따라 다르게 지정이 된다. 

springloaded-1.2.6.RELEASE.jar 파일이 저장되어 있는 경로로 지정한다.  


모든 설정이 끝나면 OK 버튼을 눌러 설정을 종료하고 서버 설정 화면에서 하단 modules 탭으로 들어가서 해당 웹 어플리케이션을 선택한 후 Editor 버튼을 선택한다.




5. Editor 버튼을 통해서 띄우진 Editor Web Module 창에서 Auto reloading enabled 체크 항목을 해제한 후 OK 버튼을 눌러 설정을 종료한다.


이로써 모든 설정은 끝났으며 java 파일을 작성한 후 테스트 해본다.




데몬 프로그램에서는 다음과 같은 형태로 실행한다.


java -javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass 



springloaded-1.2.6.RELEASE.jar

springloaded-1.2.4.RELEASE.jar

springloaded-1.2.7.RELEASE.jar






6. intellij 일 경우도 방법은 비슷하다. Edit Configurations 메뉴에서 톰갯을 등록해준 후 VM options 란에 옵션을 4.절에와 같이 추가해주면 된다.



그리고 On 'Update' action, On frame deactivation 옵션을 Update classes and resources 항목을 선택해주면 된다.

Update classes and resources 항목이 보이지 않는다면 Deployment 탭으로 이동한 후  Deploy at the server startup 항목의 배포 형식이 :exploded로 설정한다.





참고사이트 : 

https://github.com/spring-projects/spring-loaded