스프링 강의 조금씩 듣고 있는데 프론트는... 딱히 처리를 안 해도 그냥 웹페이지를 리프레시 하면 당연히 화면 수정사항이 반영이 된단 말이죠? 왜냐면 새로 했으니까? 근데? 백엔드는? 반드시 서버를 한 번 껐다가 다시 켜야 하는 것이었습니다!
와! 백엔드 귀찮다!
김영한 분 강의 중간에 spring devtools 라는 것을 추가하면 서버를 내렸다가 다시 올리지 않아도 바뀐다고 해서 그것을 깔아보려고 노력을 하다가... 몇 번 실패하고 안 됐다.
하루가 지나고 다시 한 번 잘 찾아봐서는 도움이 되는 블로그 발견!
인텔리제이는 정말 좋은 IDE이지만 너무 복잡해서 어디가서 뭘 찾아서 넣어야 하고...
이런 것들을 모르겠는 게 좀 힘든 것 같다.
쨌든 자바/인텔리제이 로 설정하는 자세한 방법은 아래의 블로그에서 찾아볼 수 있었다.
[Java/IntelliJ] Spring Boot Devtools 이해하고 설정하기
hello.helloSpring > Controller > HelloController
여기에서는 data로 서버에서 내리는 String을 내려주는데 이걸 바꿀 때마다 서버를 내렸다 올렸다 하고 싶지 않았다!
package hello.hellospring.controller;
import org.springframework.ui.Model;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "yap yap yap!!!");
return "hello";
}
}
resources > templates > hello.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>HELLOOOO</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요 ' + ${data}" />
</body>
</html>
build.gradle
dependencies {
// 이거 이름은 compileOnly로 하는 사람도 있고 developmentOnly인 사람도 있다.
// 아마 이름은 별로 큰 요인은 아닌 듯 함
compileOnly 'org.springframework.boot:spring-boot-devtools'
}
application.properties
// 기본으로 있는 프로젝트 전체에 대한 설정
spring.application.name=hello-spring
// 처음에는 위의 두 개만 있었는데 세번째 것도 위의 블로그를 보고 세번째 것도 추가하였다.
spring.devtools.restart.enabled=true
spring.devtools.livereload.enabled=true
spring.devtools.restart.additional-exclude = static/**,public/**
무엇보다 이것을 설치하지 않으면 말짱 도루묵이었다.
근데 몰라서 한참을...^^ 안 함...^^
그냥 이거 안 해도 되는 줄...^^;;;