스프링 부트와 AWS로 구현하는 웹 서비스_3

HyeBin, Park·2021년 8월 8일
0
post-thumbnail

스프링 부트와 AWS로 혼자 구현하는 웹 서비스
https://github.com/HYEBPARK/springboot-webservice

3.4 등록/수정/조회 API만들기

🔎 조회 기능(Tomcat 실행)

  • 로컬 환경 -> H2 -> 웹 콘솔로 직접 접근
    • 웹 콘솔 옵션 활성화

      // 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') 
  • API 요청 후 조회

3.5 JPA Auditing

  • Entity에는 해당 데이터의 생성시간과 수정시간을 포함
    => 차후 유지보수에 중요한 정보
  • 매번 db 삽입과 갱신 전에 날짜 데이터를 등록/수정하는 코드 반복을 막기 위해 => JPA Auditing 사용하면 자동으로 시간을 매핑하여 테이블에 넣어준다.
// BaseTimeEntity.java 모든 Entity의 상위 클래스가 되어 생성/수정Date 자동으로 관리하는 역할 
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abastract class BaseTimeEntity{
	
    @CreatedDate
    private LocalDateTime createdDate; // 필드
    
    @LastModifiedDate
    private LocalDateTime modifiedDate; //필드
    
 }
Annotationfunction
@MappedSuperclassJPA Entity 들이 BaseTimeEntity 클래스를 상속할 경우 필드도 칼럼으로 인식하도록한다.
@EntityListeners(AuditingEntityListener.class)BaseTimeEntity 클래스에 Auditing 기능을 포함시킨다.
@CreatedDateEntity가 생성되어 저당될 때 시간이 자동 저장
@LastModifiedDateEntity값을 변경할 때 시간이 자동 저장
@EnableJpaAuditingJPA Auditing 활성화, Application 클래스에 추가

4장. 머스테치로 화면 구성하기

4.1 서버 템플릿 엔진과 머스테치

📍 Template Engine


=> 웹 개발에서의 Template Engine은 지정된 템플릿 양식과 데이터가 합쳐져 HTML문서(웹 문서)를 출력하는 소프트웨어

- Template Engine을 사용하는 이유

  1. 코드가 간결해진다.
  2. 재사용성이 높다. => 페이지에 Template를 만들고 여기에 데이터를 바꿔주면서 렌더링을 하면 많은 페이지를 나타낼 수 있다.
  3. 유지보수에 용이하다.

- Server Side Template Engine

=> server 위에서 작동하며, DB나 API에서 가져온 데이터를 Template에 넣어 html을 그려 client에 전달해준다.
ex) JSP, Freemarker, Thymeleaf, Groovy 등

- Client Side Template Engine

=> 서버에서 데이터를 받아 Template의 적절한 위치에 두고 DOM 객체에 동적으로 그려주는 프로세스를 담당한다.
ex) React, Squirrelly, Handlebars 등

*DOM(Document Object Model) : 문서 객체 모델
=> xml이나 html문서에 접근하기 위한 일종의 인터페이스
=> 문서 내의 모든 요소를 정의하고 각각의 요소에 접근하는 방법을 제공한다.

📍 Mustache

=> 현존하는 대부분 언어를 지원하는 가장 심플한 템플릿 엔진
=> java에서는 server template engine, js 에서는 client template engine 으로 모두 사용 가능하다.
=> 파일의 경로는 기본적으로 src/main/resource/templates
=> springboot에서 공식 지원하는 템플릿 엔진

4.2 기본 페이지 만들기

  • 의존성 추가
/// plugin 설치 후 build.gradle 에 의존성 추가   
implementation('org.springframework.boot:spring-boot-starter-mustache')
  • URL 매핑 - Controller
/// IndexController 

@Controller 
public class IndexController{
    @GetMapping("/")
    public String index(){
    	return "index";
      }
}
  • Mustache starter로 인해 controller에서 문자열 반환할 때 앞의 경로와 파일 확장자는 자동으로 지정
앞의 경로 : src/main/resource/templates
뒤의 확장자 : .mustache
=> 즉 , 위의 코드에서는 "index"를 반환하므로, 
src/main/resource/templates/index.mustache 로 전환된다. 

💡 참조

0개의 댓글