스프링 부트와 AWS로 혼자 구현하는 웹 서비스
https://github.com/HYEBPARK/springboot-webservice
웹 콘솔 옵션 활성화
// application.properties
spring.h2.console.enabled = true
http://localhost:8080/h2-console 로 웹 콘솔에 접속
# 현재 등록된 데이터 없음
SELECT * FROM posts;
# 데이터 등록
INSERT into posts(author, content, title) values
('author','content','title')
// BaseTimeEntity.java 모든 Entity의 상위 클래스가 되어 생성/수정Date 자동으로 관리하는 역할
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abastract class BaseTimeEntity{
@CreatedDate
private LocalDateTime createdDate; // 필드
@LastModifiedDate
private LocalDateTime modifiedDate; //필드
}
Annotation | function |
---|---|
@MappedSuperclass | JPA Entity 들이 BaseTimeEntity 클래스를 상속할 경우 필드도 칼럼으로 인식하도록한다. |
@EntityListeners(AuditingEntityListener.class) | BaseTimeEntity 클래스에 Auditing 기능을 포함시킨다. |
@CreatedDate | Entity가 생성되어 저당될 때 시간이 자동 저장 |
@LastModifiedDate | Entity값을 변경할 때 시간이 자동 저장 |
@EnableJpaAuditing | JPA Auditing 활성화, Application 클래스에 추가 |
=> 웹 개발에서의 Template Engine은 지정된 템플릿 양식과 데이터가 합쳐져 HTML문서(웹 문서)를 출력하는 소프트웨어
=> server 위에서 작동하며, DB나 API에서 가져온 데이터를 Template에 넣어 html을 그려 client에 전달해준다.
ex) JSP, Freemarker, Thymeleaf, Groovy 등
=> 서버에서 데이터를 받아 Template의 적절한 위치에 두고 DOM 객체에 동적으로 그려주는 프로세스를 담당한다.
ex) React, Squirrelly, Handlebars 등
*DOM(Document Object Model) : 문서 객체 모델
=> xml이나 html문서에 접근하기 위한 일종의 인터페이스
=> 문서 내의 모든 요소를 정의하고 각각의 요소에 접근하는 방법을 제공한다.
=> 현존하는 대부분 언어를 지원하는 가장 심플한 템플릿 엔진
=> java에서는 server template engine, js 에서는 client template engine 으로 모두 사용 가능하다.
=> 파일의 경로는 기본적으로 src/main/resource/templates
=> springboot에서 공식 지원하는 템플릿 엔진
/// plugin 설치 후 build.gradle 에 의존성 추가
implementation('org.springframework.boot:spring-boot-starter-mustache')
/// IndexController
@Controller
public class IndexController{
@GetMapping("/")
public String index(){
return "index";
}
}
앞의 경로 : src/main/resource/templates 뒤의 확장자 : .mustache => 즉 , 위의 코드에서는 "index"를 반환하므로, src/main/resource/templates/index.mustache 로 전환된다.