본문 바로가기
Back-End/Spring

Spring boot + devtools로 편리한 개발환경 구축

by Havi 2016. 12. 14.
반응형

Java Application 개발시 소스가 변할때 마다 서버를 재가동시키고 일일이 버튼을 누르는 일이 매우 귀찮았습니다.(저만 그런가...?) 이러한 비생산적인 요소를 줄이기 위해 이리저리 찾아보다 devtools에 대해 알게되었고 한국어로된 문서를 좋아하시는 분들을 위해 작성해 봅니다. 해당 글은 document문서를 요약하고 Intellij에서 빠른 환경구축을 할 수 있게끔 작성하였습니다.

Point: 모든 소스는 guithub에서 보실 수 있습니다.

특징

Property Defaults

devtools는 thymeleaf, Freemarker, Groovy Templates, Velocity, Mustache 등 다양한 템플릿에 대한 개발 캐싱을 모두 자동 비활성화 처리하였습니다.

Point: 기존에 사용되어진 비슷한 tool로 Spring Loaded도 있지만 devtools는 보다 편리한 환경세팅 제공합니다.

Automatic Restart

어떠한 classpath 파일이 변경되면 자동으로 응용 프로그램이 다시 시작됩니다.

LiveReload

  • LiveReload는 소스에 변화가 있을 때 application이 자동으로 브라우저 새로 고침을 트리거 할 수 있게 해주는 프로토콜입니다.
  • livereload.com에서 Chrome, Firefox, Safari용 플러그인을 설치하여 사용할 수 있습니다.(npm의 hot-reload-server처럼 새로고침없이 바로 갱신됩니다.)

간단 설정

1.build.gradle파일에 devtools dependency를 추가해 줍니다.


2.intellij에서 Action을 찾는 단축키인 ctrl+shift+A로 registry를 검색합니다.


3.compiler.automake.allow.when.app.running을 체크해 줍니다.


4.Settings -> Build -> Compiler에서 Build project automatically를 체크해 줍니다.


Property Setting

기본 default설정이 되어 있지만 커스텀하게 설정을 바꾸고 싶으면 방법은 다음 두가지 방법이 있습니다.

application.yml 설정


서버코드 main class 설정


추가팁

livereload기능을 사용하기 위해선 Chrome, Firefox, Safari용 플러그인을 각각 사용하시는 브라우저에 추가해 주어야 합니다. 크롬의 경우를 예를 들어 설명하겠습니다.

chrome livereload plugin 다운


livereload 기능 on!


devtools 설정이 모두 완료되었습니다. 새로고침없이 자동 reload!! 

반응형

댓글