범위 7장

 

템플릿엔진

데이터를 넘겨받아 HTML에 데이터를 넣어 동적인 웹페이지를 만들어주는 도구. (DOM을 그려준다.)

사용하는 이유: 기존 HTML보다 간단한 문법을 사용한다. 재사용성이 높다. 유지보수에 용이하다

 

타임리프

*서버 사이드 템플릿 엔진의 일종. Spring boot에서 공식적으로 지원하고 권장.

MVC 기반 웹 애플리케이션의 뷰 레이어에서 XHTML/HTML5를 서비스하는데 적합함.

스프링 프레임워크와 완전한 통합 기능 제공.

 

서버 사이드 템플릿 엔진(SSR) vs 클라이언트 사이드 템플릿 엔진(CSR) 

1. SSR : 서버에서 데이터를 가공해서 HTML을 동적으로 생성

            장점 : 초기 로딩 속도가 빠르며, SEO에 유리함

            단점 : 서버 부하가 있을 수 있고, 클라이언트 측에서 추가 로직이 제한됨

2. CSR : 브라우저에서 동적으로 UI를 생성함. 주로 JS기반으로 작동

            장점 : 동적으로 UI를 업데이트 가능 , 서버부하 ⬇️, 비동기 통신으로 효율적인 데이터 관리 

            단점 : 초기 로딩이 느리고 SEO에 불리

SEO 중요성, 초기 로딩 속도, 보안 등을 고려해서 선택 사용.

 

JPA Auditing

: JPA에서 제공하는 감사 기능의 일종으로 엔티티의 생성 및 수정 시간을 자동으로 관리하는 기능.

1. @EnableJpaAuditing : Auditing 기능을 활성화 => 빼먹으면 null 로 저장됨?

2. @CreateDate : 엔티티가 생성될 때 해당 필드에 현재 일시를 자동으로 할당

3.@LastModifiedDate : 엔티티가 수정될 때 해당 필드에 현재 일시를 자동으로 갱신

장점 : 코드 중복을 방지하고 일관된 방식으로 생성 및 수정 시간을 처리, 감사 및 추적 기능을 쉽게 추가할 수 있다.

활용 예시 : 감사 로그 생성, 엔티티 버전 관리

이것들을 활용하면 따로 now() 등으로 찍어주지 않아도 될까?

 

 

Model

파라미터로 선언만 해주면 스프링이 알아서 만들어준다.

방법 1. 모델 객체를 파라미터로 넣어주고 addAttribute로 넘겨준다.

방버 2. @ModelAttribute("출력될 이름") T name 이런 식으로 파라미터에 넘겨준다. (기본자료형)

 

@RequestBody, @RequestParam, @PathVariable 차이 

1. @RequestBody 
   -클라이언트에서 데이터를 JSON 형식으로 Body에 담아 서버에 보내주면 자바 객체 형태로 매핑해줌

2. @RequestParam
   -url에 쿼리스트링 방식으로 넣어주는 것 required=false로 설정해주면 value를 넣어주지 않아도 오류가 발생하지 않음. 
   -객체는 @RequestBody에서 받고 여기서는 해당하는 데이터만 받아올 수 있다.
   -게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식에 많이 사용됨

3. @PathVariable
   -url 경로에 값을 넣어 정보를 전달해주는 것
   -값을 호출할 때 주로 사용됨

 

 

참고

https://u0hun.tistory.com/21

 

@RequestParam, @PathVariable, @RequestBody

https://elfinlas.github.io/2018/02/18/spring-parameter/ Spring에서 @RequestParam과 @PathVariable Spring에서 Controller의 전달인자…Spring을 사용하다 보면 Controller 단에서 클라이언트에서 URL에 파라메터를 같이 전달하

u0hun.tistory.com

https://leeeehhjj.tistory.com/51

 

@RequestParam과 @PathVariable, @RequestBody의 차이

이 어노테이션들은 controller에서 프론트로부터 파라미터를 전달받을 때 사용하는 어노테이션들이다. 1. @RequestParam @GetMapping("club") public ClubResponseDto findById(@RequestParam(value = "id") Long id) { return clubSer

leeeehhjj.tistory.com

https://velog.io/@marksen/WEB-%ED%85%9C%ED%94%8C%EB%A6%BF-%EC%97%94%EC%A7%84Template-Engine

https://code-lab1.tistory.com/211

 

[Web] 템플릿 엔진, JSP, Thymeleaf란? 서버 사이드 템플릿 엔진 vs 클라이언트 사이드 템플릿 엔진

템플릿 엔진이란? 템플릿 엔진은 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어 또는 소프트웨어 컴포넌트를 말한다. 특히, 웹 템플릿 엔진은

code-lab1.tistory.com

 

[WEB] 템플릿 엔진(Template Engine)

지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어이다.웹 템플릿 엔진은 view code(HTML)와 data logic code(DB connection)를 분리해주는 기능을 한다.서버 사이드 템플릿 엔진과 클라

velog.io