Spring-Loaded와 Gradle을 이용해 핫스왑 지원하기

  • Post author:
  • Post category:칼럼
  • Post comments:0 Comments
  • Post last modified:February 8, 2020

Spring-Loaded를 이용해 핫스왑 지원하기와 달리 이번에는 Maven이 아닌 Gradle을 쓸 때 어떻게 구성하는지 알아본다. 그러니까 다음과 같은 구성을 고려할 때 이 문서를 참고하면 된다.

  • IntelliJ
  • Gradle
  • Spring-Loaded

Gradle 설정하기

우선 build.gradle 파일을 수정해 Spring-Loaded가 작동하게 만든다. Spring Boot 공식 문서에 나온대로 하면 된다.

buildscript {
    repositories { jcenter() }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:1.2.5.RELEASE"
        classpath 'org.springframework:springloaded:1.2.4.RELEASE'
    }
}

apply plugin: 'idea'

idea {
    module {
        inheritOutputDirs = false
        outputDir = file("$buildDir/classes/main/")
    }
}

IDEA 플러그인은 IntelliJ IDEA가 사용하는 파일을 만든다. 실제로 이러한 파일을 만드려면 다음과 같이 명령을 실행한다.

gradle cleanIdea idea

이제 IntelliJ에서 Spring Boot 애플리케이션을 띄울 때 Spring-Loaded를 적용하면 된다. 이때 크게 두 가지 방식이 있다. 하나는 Spring Boot 설정을 이용하고 다른 하나는 Gradle 설정을 이용한다. 각각의 경우에 어떻게 하는지 알아보자.

Spring Boot 설정으로 띄우기

IntelliJ의 Spring Boot Configuration을 쓸 때는 Spring-Loaded를 이용해 핫스왑 지원하기에서 설명한대로 하면 된다. 다른 점이 없다.

Gradle 설정으로 띄우기

이미 build.gradle 파일을 손 봤기 때문에 앞서 설명한 Spring Boot 설정을 이용하는 경우보다 구성하기가 쉽다.

핫스왑해보기

  1. 이제 앞서 구성한 설정을 이용해 Spring Boot 애플리케이션을 실행한다. 어느 쪽이든 큰 차이는 없다. 내키는 쪽을 고른다.
  2. 소스코드를 고친다.
  3. IntelliJ에서 Make Project 메뉴를 찾아 새로운 소스코드를 컴파일하자. 그러면 변경한 코드를 적용할지 묻는다. 물론 적용하면 된다.

이제 실행 중인 앱으로 가서 새로운 기능이 반영됐는지 확인하면 된다. 보통 문제가 없는데 혹시나 문제가 발생한다면 공식 문서(Spring Boot, Spring-Loaded, 그리고 Gradle 등)를 차분하게 들여다 보는 수밖에 없다. 개인적으로는 Spring Framework 버전과 Spring-Loaded 버전이 맞지 않아 문제가 발생한 적이 있다.

Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
follow me
  • 싸이월드 법인가 뭔가 화제였는데 이런 게 훨씬 현실적인 접근이다 https://t.co/fSB9LiMYzO
    1 day ago
  • 시장을 좋게 보는 사람을 좋게 볼 근거를 찾고 그렇지 않은 사람은 나쁘게 볼 근거만 열심히 찾네. 그 반대로 해야 얻는 게 있을텐데
    1 day ago
  • 일본이 liberal country 라는 말이 마음에 걸리네 https://t.co/aLteP9gEE8
    2 days ago
Buy me a coffeeBuy me a coffee
×
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
Latest Posts