1. 화면 구성
애플리케이션 화면 구성 시 JSP, Vue와 같은 템플릿 엔진을 사용한다. 템플릿 엔진이란 템플릿 양식과 데이터로 HTML을 구성하는 소프트웨어이다. 서버 템플릿 엔진(JSP, Freemaker)과 클라이언트 템플릿 엔진(React, Vue)이 있다.
- 서버 템플릿 엔진: 서버에서 처리 후 완성된 HTML을 전달하는 방식
- 클라이언트 템플릿 엔진: 서버에서는 Json/Xml 형태의 데이터만 전달하고 클라이언트에서 HTML로 조립하는 방식
A. Mustache
Mustache라는 템플릿 엔진 사용하여 화면을 구현한다. 사용하는 언어에 따라 서버/클라이언트 템플릿 엔진으로 활용 가능하다.
Handlebars/Mustache 플러그인 설치 후 build.gradle에 아래 의존성을 추가해준다.
...
compile('org.springframework.boot:spring-boot-starter-mustache')
...
머스테치의 기본 파일 경로는 src/main/resources/templates이다. 컨트롤러에서 "abc" 응답 시 View Resolver에 의해 .../templates/abc.mustache로 연결된다.
[mustache 문법]
Expression | Description |
{{>layout/header}} | ./layout/header.mustache를 인클루드한다. |
{{#posts}} | posts라는 List를 순회한다. |
{{title}} | List에서 뽑아 낸 객체의 필드를 사용한다. |
{{post.title}} | post라는 객체의 필드 접근 |
B. 정적(static)파일 관리
각종 화면 이벤트 처리를 위해 index.js라는 파일을 생성한다. 스프링부트는 src/main/resources/static을 정적파일 루트로 설정하므로 이 위치에 생성해주면 된다. 아래와 같이 파일별로 폴더를 나누어 관리하자.
- src/main/resources/static/js/...
- src/main/resources/static/css/...
- src/main/resources/static/image/...
index.js 생성 시 일반적으로 아래 형태로 함수를 생성하는데, 이렇게 처리하면 index.js만의 유효범위(scope)를 한정하게 되기 때문에 함수명 중복에 의한 문제점을 해소해준다.
var index = {
init: function() {
...
},
save: function() {
...
},
update: function() {
...
}
};
index.init();
2. 기타
REST에서의 CRUD↔HTTP Method 매핑
- 생성(Create): POST
- 조회(Read): GET
- 수정(Update): PUT
- 삭제(Delete): DELETE
기타 참고:
- 서버사이드 렌더링
- Querydsl(데이터베이스 조회용 프레임워크)
- Stream API, 람다식
'Backend' 카테고리의 다른 글
Springboot (5) 스프링 시큐리티 (0) | 2020.05.15 |
---|---|
iBatis 쿼리 가져오기 (0) | 2020.05.07 |
Springboot (3) 웹 애플리케이션 - 1 (0) | 2020.04.29 |
Springboot (2) 단위 테스트 (0) | 2020.04.18 |
Springboot (1) 개발환경 설정 (0) | 2020.04.17 |