Spring-Loaded를 이용해 핫스왑 지원하기

  • Post author:
  • Post category:칼럼
  • Post comments:0 Comments
  • Post last modified:December 4, 2023

Spring Boot 공식 문서를 보면 Spring-Loaded를 이용해 핫스왑을 지원하는 방법이 나온다. 여기서 핫스왑이라 하면 스크립트 언어가 흔히 그렇듯이 Java로 Spring 개발을 할 때도 서버를 띄워놓은 상태로 코드를 변경하고 변경한 내용을 실시간으로 확인하다는 말이다. 서버 애플리케이션을 재기동하지 않아도 되니까 아무래도 편하지 싶다.

참고 사항: Spring-Loaded에 몇 가지 한계가 있고(무슨 한계인지는 아직 파악 중) JRebel이 훨씬 좋다는데 가격이 제법 쎄서 우선은 Spring-Loaded에 만족하기로 했다.

Maven에 적용하기

  1. 공식문서에 나온대로 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>
    
  2. IntelliJ 에서는 Maven 설정을 다음과 같이 한다.
  3. Maven으로 응용프로그램을 실행한다.
  4. 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 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments