SpringBoot

Mustache로 화면 구성하기

s-jiun 2023. 2. 4. 12:47
반응형

※ 이번 포스트는 <스프링부트와 AWS로 혼자 구현하는 웹서비스> 책의 4장을 공부하면서 정리한 것입니다. 소스코드는 책을 참고해주세요

 

 

템플릿 엔진이란

 

지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어

● 서버 템플릿 엔진

- 서버에서 구동되는 템플릿 엔진

- ex) JSP, Freemarker 등

- 예를 들어 JSP의 경우 서버에서 JAVA 코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달

● 클라이언트 템플릿 엔진

- 브라우저에서 화면을 생성 → 서버에서 이미 코드가 벗어난 경우

- 서버에서는 Json, Xml 형식의 데이터만 전달하고 이를 클라이언트에서 조립

- ex) React, Vue 등

 

머스테치란

 

Ruby, Javascript, Python, PHP, JAVA, Go, ASP 등 현존하는 대부분의 언어를 지원하는 템플릿 엔진. 프로그래밍 언어에 따라 서버 템플릿 엔진 혹은 클라이언트 템플릿 엔진으로 사용이 가능

● 머스테치의 장점

- 문법이 다른 템플릿 엔진보다 심플
- 로직 코드를 사용할 수 없어 View의 역할과 서버의 역할이 명확하게 분리
- Mustache.js와 Mustache.java가 둘 다 존재하여 하나의 문법으로 클라이언트 템플릿과 서버 템플릿 모두 사용 가능

 

프론트엔드 라이브러리로 화면 구성하기

 

● 프론트엔드 라이브러리를 사용하는 방법

1. 외부 CDN 사용

2. 직접 라이브러리를 받아서 사용

● 레이아웃 방식으로 라이브러리 추가

→ 공통 영역을 별도의 파일로 분리하여 필요한 곳에 가져다 쓰는 방식

● HTML 코드 작성 시 CSS 파일과 JS 파일 배치 팁

→ 페이지 로딩 속도를 높이기 위해선 CSS 파일을 header에, JS 파일을 footer에 두는 것이 좋음. 이는 HTML이 위에서부터 코드가 실행되기 때문!

 

 

 

브라우저의 Scope

 

브라우저의 스코프는 공용공간으로 쓰이기 때문에 동일한 함수명을 가진 두 js파일이 존재할 경우 나중에 로딩된 js파일의 함수가 기존의 한수를 덮어쓰게 된다

→ 이를 헤결하고자 각 js파일 만의 유효범위(객체)를 만들어 해당 객체 안에서만 함수가 유효하도록 설계

 

 

데이터 조회용 프레임워크

 

규모가 있는 프로젝트의 경우 데이터 조회 시 조건이 복잡하여 조회용 프레임워크를 사용. 대표적으로 Querydsl, jooq, MyBatis가 있다.

이 중 Querydsl의 경우

- 타입 안정성의 보장
- 다수의 회사에서 사용
- 풍부한 레퍼런스

의 장점이 있어 사용하기 좋다

반응형

 

반응형

'SpringBoot' 카테고리의 다른 글

Spring Security  (1) 2023.02.04
Springboot에서 DB다루기(with JPA)  (0) 2023.02.04