본문 바로가기

반응형

Backend

(29)
QueryDsl - JPQLQuery 사용하기 QueryDsl이란? Querydsl은 HQL(Hibernate Query Language) 쿼리를 타입에 안전하게 생성 및 관리할 수 있게 해주는 프레임워크다. 공식 레퍼런스를 인용한 정의인데, 잘 와닿지 않는다면 Querydsl은 자바 코드 기반으로 쿼리를 작성하게 해준다”라고 생각해도 좋을 것 같다. QueryDsl을 왜 사용하는가? JPA를 사용해서 페이지를 구현하다보면 기본 문법으로 구현하지 못하는 쿼리들이 있다. ex) 통계 쿼리 스프링부트에서는 Entity의 기본적인 CRUD가 가능하도록 JpaRepository 인터페이스를 제공한다 save() findAll() delete() ... 이를 해결하기 위해서는 몇가지의 방법들이 있다. Java8 Stream NativeQuery JPQL Qu..
Paypal 연동 (2) - REST API JAVA (Spring boot) 개발환경 Spring boot gradle jdk 1.8 1. build.gradle compile add paypal sdk 를 compile 하도록 dependencies에 추가 한다. compile group: 'com.paypal.sdk', name: 'rest-api-sdk', version: '1.14.0' 2. Paypal 환경 변수 추가 Paypal Developer에서 App을 생성 후 해당 App의 상세 페이지에서 아래 항목을 확인 가능하다. Client ID Secret ID application.properties에 아래와 같이 추가 하도록 한다. # Paypal paypal.client.app={Client ID} paypal.client.secret={Secret ID} payp..
Paypal 연동 (1) - REST API APP 및 계정 생성 우선 페이팔에 비즈니스 계정이 있어야 한다. 페이팔은 테스트와 라이브가 아래와 같이 구분되어 있다. live sandbox Applications - PayPal Developer 로그인 후 위 페이팔 개발자 페이지를 접근 후 My Apps & Credentials 메뉴를 보면 아래의 내용을 확인 할 수 있다. 우선 테스트를 하기 위해 Sandbox에서 App을 생성해야 한다. 그 전에 우선 계정에 대한 부분부터 알고 진행하도록 하자. (SANDBOX → Accounts) 위 페이지를 보면 Default로 판매자, 사용자 계정이 있는 것을 확인 할 수 있다. 추가로 계정 생성을 하면 팝업과 같이 계정 타입과 국가를 선택하여 즉시 생성이 가능하므로 추가 할 수 있다. - 끝 - p.s 이후 생성된 앱 및 ..
Spring Data Jpa - native query 페이징 최근 프로젝트를 진행하면서 통계 관련된 페이지를 작업하느라 native query 형태로 작업을 하고 있다. 이전에는 native query로 페이징까지는 해보질 않아서 어떻게 접근해야 할지 감이 안잡혔는데 이번에 도움이 많이 됬다. 우선 쿼리 어노테이션의 형태는 아래와 같이 하도록 한다. @Query(nativeQuery = true, value = "", countQuery = "") Page testPage(@Param("param1") String param1, @Param("param2") String param2, @PageableDefault(size=10) Pageable pageable); 핵심은 꼭 countQuery 속성을 추가해야 한다. 그래야 특정 갯수 이상에서 pageable이 ..
Thymeleaf Layout 구성 (layout-dialect) Thymeleaf layout 구성 build.gradle 설정 dependencies { ... // thymeleaf Setting implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' ... } 레이아웃 구성 프로젝트 리소스 구성 static templates로 구분 각각의 fragment에 대한 구성은 해당 폴더의 파일로 분기를 한다. he..