※ 이번 포스트는 <스프링부트와 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 |