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")
}
2.
'Back-End > Spring' 카테고리의 다른 글
스프링 5에서 Reactive Programming 하기 (1) (0) | 2018.11.26 |
---|---|
Spring IoC(제어의역전),DI(의존성주입)란? (0) | 2018.09.18 |
POJO(plain old java object)란? (0) | 2018.09.16 |
Spring Boot 2.0 - 스프링 부트 기본 로깅 (0) | 2018.07.22 |
RESTful 웹서비스 만들기 (0) | 2017.06.07 |