HotSwap - Class file replacement in JVM
JAVA / 2010. 9. 22. 17:54
갑자기 궁금해진 것이... JRebel 은 어떻게 웹 애플리케이션 서버를 리스타트 시키지 않고 클래스 변경을 인식할 수 있느냐 였습니다. 구글에서 뒤져보다 찾은 키워드를 찾아냈습니다.
"HotSwap"...
자바 1.4 에서 부터 지원되는 JDPA 라는 기능을 이용하여 JVM 에 변경된 클래스의 바이트 코드를 주입하는 방식이였습니다.
이클립스에서 디버깅을 할 때, 소스를 변경하면 바로 인식되는 것도 위의 기능을 이용한 것으로 조사결과 확인되었습니다.
어떤 방식인지 조금 더 살펴 본 후 응용할 수 있는 부분을 찾아볼 계획입니다.
관련 사이트
JDPA 관련: http://download.oracle.com/javase/1.4.2/docs/guide/jpda/enhancements.html#hotswap
hotswap 홈: https://hotswap.dev.java.net/