스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 예스24
가장 빠르고 쉽게 웹 서비스의 모든 과정을 경험한다. 경험이 실력이 되는 순간!이 책은 제목 그대로 스프링 부트와 AWS로 웹 서비스를 구현한다. JPA와 JUnit 테스트, 그레이들, 머스테치, 스프링
www.yes24.com
*위의 책을 따라 학습한 것을 정리한 내용입니다
Mustache란?
머스테치는 다양한 언어를 지원하는 심플한 템플릿 엔진이다.
(템플릿 엔진: 지정된 템플릿 양식과 데이터가 합쳐져 html 문서를 출력하는 소프트웨어.)
java에서 이용할 때는 서버 템플릿 엔진, javascript에서 이용할 때는 클라이언트 템플릿 엔진으로 모두 사용 가능하다.
서버 템플릿 엔진의 종류
- JSP, Velocity: 스프링 부트에서 권장 x
- Freemarker: 템플릿 엔진으로서 과한 기능 지원. 숙련도 낮으면 비즈니스 로직 추가의 확률 有
- Thymeleaf: 스프링에서 권장. 문법이 어려움
- Mustache: 심플. 하나의 문법으로 서버/클라 모두 사용 가능.
Intellij를 기준으로, thymeleaf의 플러그인은 유료이므로 이 프로젝트에선 Mustache를 사용한다.
머스테치 의존성 추가
build.gradle에 다음 코드를 추가하고 refresh 하기
compile('org.springframework.boot:spring-boot-starter-mustache')
index 페이지 작성
mustache의 기본 위치는 /src/main/java/resources 이다.
/templates 폴더를 만들고 index.mustache 파일을 생성한다.
<!DOCTYPE HTML>
<html>
<head>
<title>스프링 부트 웹 서비스</title>
<meta http-equiv="Content-Type" content="text/html; charset-UTF-8"/>
</head>
<body>
<h1>스프링 부트로 시작하는 웹 서비스</h1>
</body>
</html>
com.study.springboot.web.dto에 IndexController.java 생성
@Controller
public class IndexController {
@GetMapping("/")
public String index() {
return "index";
}
}
테스트 코드 작성
IndexControllerTest.java
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class IndexControllerTest {
@Autowired
private TestRestTemplate restTemplate;
@Test
public void 메인페이지_로딩() {
//when
String body = this.restTemplate.getForObject("/",String.class);
//then
assertThat(body).contains("스프링 부트로 시작하는 웹 서비스");
}
}
테스트는 정상적으로 통과한다. 그래도 직접 보고 싶으니..
Application.java의 main 메소드를 실행하고 localhost:8080에 접속해본다.
이렇게 뜬가면 성공.. 굿.. WhiteLabel 오류 페이지가 뜬다면 경로를 잘 입력했는지, 경로 설정에 오타가 있진 않은지, 서버가 잘 실행됐는지 등을 확인해야한다. 서버 2개 켜도 오류 뜨더라
'WORK > STUDY' 카테고리의 다른 글
[Spring & Mustache] 게시글 조회 화면 (0) | 2023.10.26 |
---|---|
[Mustache] 게시글 등록 화면 (1) | 2023.10.26 |
[Spring] JPA Auditing(생성/수정시간 자동화) (0) | 2023.10.26 |
[Spring] API 만들기(h2 웹 콘솔 이용하기) (0) | 2023.10.26 |
[Spring] JPA 사용하기 (0) | 2023.10.25 |