-
[SpringBoot] SpringBoot 되새기기 프로젝트 4일차 (2020/05/14)Server/SpringBoot 2020. 5. 14. 18:34
영속성 컨텍스트 - 엔티티를 영구 저장하는 환경
-> JPA의 영속성 컨텍스트 덕분에 update 기능에 쿼리를 날리는 부분이 보이지 않아도 구동 가능
-> JPA의 핵심 내용은 엔티티가 영속성 컨텍스트에 포함되어 있는가 아닌가
-> JPA의 EntityManager가 활성화된 상태로 트랜잭션 안에서 DB에서 데이터를 가져오면 이 데이터는 영속성 컨텍스트가 유지된 상태(기본 SpringBoot 상태)
-> 이 상태에서 해당 데이터 값 변경시 트랜잭션이 끝나는 시점에 해당 테이블에 변경분 반영,
->-> 더티 체킹(dirty cheking) == Entity 객체의 값만 변경시 별도로 Update 쿼리를 날릴 필요가 X
MyBatis, iBatis에서 JPA로 옮겨감으로써 좀 더 객체지향적으로 코딩 가능
/*application.properties*/ // 로컬에서 H2 디비로 테스트할 때 메모리에 직접 접근하기 위해 웹 콘솔 옵션 활성화 spring.h2.console.enable=true
기본 h2 콘솔 접근 url
http://localhost:port/h2-console // ex http://localhost:8080/h2-console
JPA Auditing으로 createdAt, updatedAt 자동화
// @MappedSuperclass - JPA Entity 클래스들이 BaseTimeEntity을 상속할 경우 그 아래 필드들(createdAt, modifiedDate)도 컬럼으로 인식하도록 만듬
// @Entity Listeners(AuditingEntityListener.class) - BaseTimeEntity 클래스에 Auditing 기능 포함시킴
// @CreatedAt - Entity가 생성되어 저장될 때 시간 자동저장
// @LastModifiedDate - 조회한 entity 값 변경할 때 시간 자동저장
@EnableJpaAuditing -> main에 해줌으로써 JPA Auditing 활성화
서버 템플릿 엔진 -> JSP, Freemaker
클라이언트 템플릿 엔진 -> React, Vue
스프링부트에서는 JSP가 템플릿 엔진으로 권장되지 않음
머스테치(mustache) - 많은 언어를 지원하는 가장 심플한 템플릿 엔진
-> 자바에서 쓰이면 서버 템플릿엔진
-> 자바스크립트에서 사용되면 클라이언트 템플릿 엔진
장점
-> 문법이 다른 템플릿 엔진보다 심플
-> View의 역할과 서버의 역할 명확히 분리
-> Mustache.js와 Mustache.java 2가지 다 있어 하나의 문법으로 클라/서버 템플릿 모두 사용 가능
mustache 기본 파일위치
-> src/main/resources/templates/index.mustache
// url Mapping은 당연히 Controller에서!
'Server > SpringBoot' 카테고리의 다른 글
[SpringBoot] SpringBoot 되새기기 프로젝트 3일차 (2020/05/13) (0) 2020.05.13 [SpringBoot] SpringBoot 되새기기 프로젝트 2일차 (2020/05/12) (0) 2020.05.12 [SpringBoot] SpringBoot 되새기기 프로젝트 1일차 (2020/05/11) (0) 2020.05.12 [SpringBoot] MYBATIS MySql LIKE 동적쿼리 에러 (0) 2019.12.10 [Spring Boot] jar 파일 배포하는 법 (0) 2019.11.19