본문 바로가기
FrameWork/Spring

머스테치

by 태윤2 2021. 8. 21.

먼저 서버 템플릿 엔진과 클라이언트 템플릿 엔진의 차이점에 대해 간단히 알아보자

  • 서버 템플릿 엔진 (JSP, Freemarker 등) 

서버에서 작동

  •  클라이언트 템플릿 엔진(React, Vue 등)

브라우저에서 작동

흔히 이야기하는 Vue.js나 React.js를 이용한 SPA(Single Page Application)는 브라우저에서 화면을 생성합니다. 즉, 서버에서 이미 코드가 벗어난 경우 입니다. 그래서 서버에서 Json 혹은 Xml 형식의 데이터만 전달하고 클라이언트에서 조립함. 최근 리액트나 뷰와 같은 자바스크립트 프레임워크(리액트는 라이브러리 일수도..)에서 서버 사이드 렌더링(SSR:Sever Side Rendering)을 지원하는 모습을 볼수 있다.

 

 

머스테치란

머스테치(https://mustache.github.io/)는 수많은 언어를 지원하는 가장 심플한 템플릿 엔진

  • 문법이 다른 템플릿 엔진보다 심플
  • 로직 코드를 사용할 수 없어 View의 역할과 서버의 역할이 명확하게 분리됨
  • Mustache.js와 mUstache.java 2가지가 다 있어, 하나의 문법으로 클라이언트/서버 템플릿을 모두 사용 가능

머스테치 플러그인 설치(IntelliJ Plugins)
머스테치 스타터 의존성을 build.gradle에 등록(https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mustache/2.5.3)

 

 

Test(JUnit5)

@ExtendWith(SpringExtension.class)
@SpringBootTest(webEnvironment = RANDOM_PORT)
public class IndexControllerTest {

    @Autowired
    private TestRestTemplate restTemplate;

    @Test
    public void mainPageTest() {
        //when
        String body = restTemplate.getForObject("/", String.class);

        //then
        assertThat(body).contains("스프링 부트로 시작하는 웹 서비스");
    }
}

 

 

  • 참고자료

              스프링 부트와 AWS로 혼자 구현하는 웹 서비스

'FrameWork > Spring' 카테고리의 다른 글

스프링 시큐리티/ OAuth2.0 로그인 기능 구현  (0) 2021.08.21
게시글 등록 화면  (0) 2021.08.21
JPA Auditing으로 생성시간/수정시간 자동화하기  (0) 2021.08.20
등록/수정/조회 API  (0) 2021.08.19
Spring Data JPA  (0) 2021.08.18