범위 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://leeeehhjj.tistory.com/51
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
'묘공단 스프링부트 스터디' 카테고리의 다른 글
묘공단 스프링부트 스터디 5주차 (2) (0) | 2023.12.06 |
---|---|
묘공단 스프링부트 스터디 5주차 (1) (2) | 2023.12.03 |
묘공단 스프링부트 스터디 3주차 (2) | 2023.11.23 |
묘공단 스프링부트 스터디 2주차 (1) | 2023.11.15 |
묘공단 스프링부트 스터디 1주차 (0) | 2023.11.08 |