Back-End/Spring
Spring Boot와 Docker를 이용한 개발환경 구축하기
taehyun_kim
2018. 9. 2. 17:06
Spring Boot와 Docker를 이용한 개발환경 구축하기
내가 겪은 문제점 - Development 환경과 Staging,Prod 환경의 차이로 인한 문제 발생
Spring Boot 개발을 하다보면, Development 환경과 Prod 환경이 달라서 문제가 발생하는 경우가 있다. Service Discovery 역할을 하는 Eureka Server를 구축하면서 이 문제를 겪었다. Prod 환경에서의 Eureka 설정은 AWS config이고, Dev 환경에서의 Eureka 설정은 Local이기 때문에 개발 시점에서는 테스트를 해볼 수가 없었다.
Twelve-Factor 방법론 중 Development/Production 환경을 최대한 비슷하게 하라는 얘기가 있다.
내가 겪은 문제점 2 - Remote 환경을 Debugging은 할 수 없는가?
Prod 환경과의 차이를 없애기 위해, Development 코드도 AWS EC2에 배포하였다고 가정해보자. 코드를 수정하며 확인을 해야하는데, 매번 Code Push -> Build를 해야할까?
위의 문제들을 Spring boot autoreload와 Docker를 이용하여 해결할 수 있다.
Spring Boot를 이용한 Remote AutoReload
Docker 컨테이너에서 돌고 있는 Spring boot 어플리케이션에 변경된 코드를 바로 반영할 수 있는 기능을 Spring boot 1.3부터 제공해준다.
1. Spring-dev-tools를 build.gradle에 추가하기
dependencies {
compile("org.springframework.boot:spring-boot-devtools")
}