Layout Dialect 1. Thymeleaf Layout Dialect 의존성 주입 nz.net.ultraq.thymeleaf thymeleaf-layout-dialect 2.5.1 2. header / footer / layout 생성 resources/templates/fragments/header.html, header.html resources/templates/layouts/layout1.html 3. header / footer 코드 다른 페이지 (layout)에 포함시킬 영역을 th:fragment 로 선언 header footer 4. layout 코드 layout 기능을 사용하기 위해서 layout 네임스페이스 추가 script, css 를 추가할 영역을 layout:fragment..
Thymeleaf 1. Thymeleaf 컨트롤러가 전달한 가공된 데이터를 이용하여 동적으로 화면을 구성하도록 지원하는 템플릿 엔진 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text. The main goal of Thy..
Querydsl 1. Querydsl SQL 쿼리문을 문자열이 아닌 소스코드로 작성하도록 지원하는 빌더 API (프레임워크) 2. Querydsl 의 장점 ① 고정된 SQL 문이아닌 조건에 맞게 동적으로 쿼리 생성 가능 ② 제약 조건 조립 및 가독성 향상 ③ 컴파일 시점에 오류를 발견할 수 있음 ④ 자동 완성 기능으로 인한 생산성 향상 3. Querydsl 의존성 주입 com.querydsl querydsl-jpa ${querydsl.version} com.querydsl querydsl-apt ${querydsl.version} 4. Qdomain 플러그인 추가 엔티티를 기반으로 접두사(prefix) 'Q'가 붙는 클래스를 자동으로 생성하는 플러그인 Querydsl 수행 시 엔티티가 아닌 Qdomain..
@Query 어노테이션 1. Spring Data JPA @Query 어노테이션 SQL과 유사한 JPQL (Java Persistence Query Language) 라는 객체지향 쿼리 언어를 통해 복잡한 쿼리 처리를 지원 JPQL - 테이블이 아닌 엔티티 객체를 대상으로 검색하는 객체지향 쿼리, SQL 추상화로 인해 특정 db sql 에 의존하지 않음 2. @Query 를 이용한 조회 상품 상세 설명(itemDetail)으로 상품을 조회하고 결과는 가격순으로 정렬 select "엔티티명" = select "*" @Param 을 통해 매개변수로 넘어온 값을 JPQL에 들어갈 변수로 지정 3. @Query 를 이용한 조회 테스트 수행 ItemDetail 컬럼 값에 "테스트 상품 상세 설명" 문자열이 포함되..
쿼리 메소드 (Query Method) 1. 쿼리 메소드 (Query Method) Spring Data JPA 에서 제공하는 핵심 기능 중 하나로 Repository 인터페이스에 간단한 네이밍 룰에 따라 메소드를 작성하면, 원하는 쿼리를 실행하도록 지원하는 메소드 2. 쿼리 메소드 문법 find 문법 find + (엔티티 이름) + By + 변수이름 3. 쿼리 메소드 Sample 및 JPQL snippet KeywordSampleJPQL snippet Distinct findDistinctByLastnameAndFirstname select distinct … where x.lastname = ?1 and x.firstname = ?2 And findByLastnameAndFirstname … wher..
Section 1. 상품 Repository 설계 1. Spring Data JPA Spring Data JPA 개념(링크달기) 2. 상품 Repository 생성 com.shop.repository.ItemRepository.java 생성 DAO 역할을 수행하는 Repository 인터페이스 JpaRepository 클래스 extends package com.shop.repository; import org.springframework.data.jpa.repository.JpaRepository; import com.shop.entity.Item; public interface ItemRepository extends JpaRepository { } 3. application-test.propertie..
상품 Entity 설계 1. 상품 판매 상태 enum 클래스 enum 클래스에 대한 개념(링크달기) com.shop.constant.ItemSellStatus.java 생성 상품의 현재 판매 상태 (판매, 품절)를 나타내는 상수값 (SELL, SOLD_OUT) package com.shop.constant; public enum ItemSellStatus { SELL, SOLD_OUT } 2. 상품 클래스 생성 _ Ver 1 com.shop.entity.Item.java 생성 상품 판매 상태의 값은 ItemSellStatus 열거형의 값을 가짐 @Entity @ToString @Table(name = "item") public class Item { private Long id;// 상품코드 privat..
JPA 1. JPA (Java Persistence API) Java 객체와 관계형 DB 사이를 매핑하는 ORM 기술 표준 인터페이스 (=기술 표준) 이므로 실제 구현체는 Hibernate 등등 2. JPA 장점 특정 데이터베이스에 종속되지 않음 - 데이터베이스마다 쿼리문이 조금씩 다르기 때문에 데이터베이스 변경에 어려움이 많음, 하지만 JPA 는 추상화한 데이터 접근 계층을 제공하므로 설정 파일에 사용 데이터베이스만 지정하면 됨 객체 지향적 프로그래밍 및 생산성 향상 - 개발자가 직접 SQL을 작성하는 데이터베이스 설계 중심에서 Java 객체에 집중하도록 지원 - 테이블 컬럼 수정 시 매핑된 클래스만을 변경하면 적용됨 3. JPA 단점 복잡한 쿼리 처리 불가 자동으로 생성되는 쿼리로 인해서 개발자가 의..