Spring Boot 공식 문서를 보면 Spring-Loaded를 이용해 핫스왑을 지원하는 방법이 나온다. 여기서 핫스왑이라 하면 스크립트 언어가 흔히 그렇듯이 Java로 Spring 개발을 할 때도 서버를 띄워놓은 상태로 코드를 변경하고 변경한 내용을 실시간으로 확인하다는 말이다. 서버 애플리케이션을 재기동하지 않아도 되니까 아무래도 편하지 싶다.
참고 사항: Spring-Loaded에 몇 가지 한계가 있고(무슨 한계인지는 아직 파악 중) JRebel이 훨씬 좋다는데 가격이 제법 쎄서 우선은 Spring-Loaded에 만족하기로 했다.
Maven에 적용하기
- 공식문서에 나온대로
pom.xml
파일에 다음과 같이 설정한다.<plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>springloaded</artifactid> <version>1.2.0.RELEASE</version> </dependency> </dependencies> </plugin>
- IntelliJ 에서는
Maven
설정을 다음과 같이 한다. - Maven으로 응용프로그램을 실행한다.
- IntelliJ에서 Make Module something을 눌러서 변경한 소스코드를 반영하면 된다.
Spring Boot 설정으로 띄우기
IntelliJ에는 Spring Boot Configuration도 있다. Maven이 아니라 이걸로 응용프로그램을 구동하려면 다음과 같이 VM options
에 Spring-Loaded 관련 설정을 넣는다.
-javaagent:${HOME}/.m2/repository/org/springframework/springloaded/1.2.0.RELEASE/springloaded-1.2.0.RELEASE.jar -noverify
참고 문헌
Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.