희디비
[Chapter4] 머스테치로 화면 구성하기 본문
템플릿 엔진
- 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어
클라이언트 템플릿 엔진
브라우저에서 화면을 생성합니다.
서버에서는 Json 혹은 Xml 형식의 데이터만 전달하고 클라이언트에서 조립합니다.
ex) View, React.js
서버 템플릿 엔진
서버템플릿 엔진은 서버에서 구동됩니다.
Jsp를 예로 들면 서버에서 java코드를 문자열로 만들어 HTML로 변환하여 브라우저로 전달합니다.
머스테치
- 수많은 언어를 지원하는 가장 심플한 엔진입니다.
- .java / .js 서버템플릿 , 클라이언트 템플릿을 둘다 지원합니다.
- 문법이 다른템플릿 엔진보다 심플 합니다.
머스테치 사용법
- 플러그인 'mustache' 설치
- 의존성 등록 gradle.build 파일
compile('org.springframework.boot:spring-boot-starter-mustache')
위치 : src/main/resources/templates
index.mustache 파일 작성합니다
<!DOCTYPE HYML>
<html>
<head>
<title>스프링 부트 웹서비스</title>
<meta http-equiv = "Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>스프링 부트로 시작하는 웹 서비스</h1>
</body>
</html>
머스테치에 URL을 매핑합니다.
위치 : web 패키지
@Controller
public class IndexController {
@GetMapping("/")
public String index(){
return "index";
}
머스테치 스타터를 통해 앞경로와 파일확장자가 자동으로 지정됩니다.
경로 : src/main/resources/templates
확장자 : .mustache
테스트 검증을 통해 잘 작성되었는지 확인해봅니다.
경로 : test 패키지
IndexControllerTest
@RunWith(SpringRunner.class)
@SpringBootTest(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("스프링부트로 시작하는 웹 서비스");
}
}
실제 main 어플리케이션을 실행하고 localhost:8080으로도 잘 동작 하는걸 볼수있습니다.
'Clone Coding' 카테고리의 다른 글
[Chapter8] EC2 서버에 프로젝트 배포하기 (1) | 2023.10.31 |
---|---|
[Chapter7] AWS에 데이터 베이스 환경 만들기(RDS) (0) | 2023.10.28 |
[Chapter3] SpringBoot JPA (0) | 2023.10.21 |
[Chapter2] 스프링 부트와 AWS로 혼자구현하는 웹서비스 (0) | 2023.10.17 |
[Junit] java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test (1) | 2023.10.14 |