요즘 개발에서 test 코드는 매우 중요하다
build.gradle은 버전을 설정하고 라이브러리를 가져오는 역할의 코드가 적혀있다.
.gitignore에 깃허브에 올라가면 안되는 것들을 적어준다.
HelloSpringApplication을 실행하면 run에 port 번호 8080이 뜨면 정상적으로 프로젝트가 실행이 된 것이다.
웹에서 localhost:8080을 들어가면 아래와 같이 Whitelabel Error Page가 뜨면 정상적으로 프로젝트가 실행이 된 것이다.
build.gradle의 라이브러리
요즘은 라이브러리 하나 빌드해서 웹서버 올리면 끝 -> 요즘 개발 방식이다.
System.out.println()으로 로그를 남기지 않고 LOGGING으로 남기는데 그 이유는 심각한 에러를 따로 모아보기도 할 수 있고 로그 파일들을 관리 할 수 있다.
스프링 부트 라이브러리
테스트 라이브러리
spring-boot-starter-test
spring에서 어떻게 web과 상호작용하는지
web -> spring 내장 tomcat 서버 -> spring controller -> view resolver -> web
웹 브라우저에서 localhost:8080/hello 라고 던지면 스프링 부트는 톰캣이라는 웹서버를 내장하고 있는데 이를 받아서 HelloController의 @GetMapping(hello)와 매칭이 되어 해당 메소드가 실행이 된다. 그러면 스프링이 모델이라는 것을 만들어서 넘겨주면 그 모델에 model.addAttribut()로 키는 data, 값은 hello로 넣어서 return "hello" 를 통해 반환하면 뷰리졸버가 화면을 찾아서 처리한다. 뷰리졸버는 resources:templates/에 있다.
정적페이지 : 파일을 던져주면 그 파일을 그대로 보여주는 페이지이다.
-> 템플릿 엔진이라는 사용함으로써 내가 원하는대로 모양을 바꿀 수 있다.
index.html
<!DOCTYPE HTML>
<html>
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
Hello
<a href="/hello">hello</a>
</body>
</html>
HelloController
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
model.addAttribute("data","hello!!");
return "hello";
}
}
hello.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}"> 안녕하세요. 손님</p>
</body>
</html>