SpringBoot
Spring-Data-JPA [8] Querydsl 사용
Spring-Data-JPA [8] Querydsl 사용
2022.06.09저번 포스팅에선 Querydsl 설정을 했습니다. 이제는 직접 사용해보겠습니다. 1. JPAQueryFactory 등록 JpaRepository를 custom 했다는 컨벤션으로 ~~ RepositoryCustom을 만들어 해당 Repository를 상속하고, ~~ Impl로 구현체로 만드는 방식을 선택할 수도 있습니다. 하지만 Querydsl을 사용하기 위한 JPAQueryFactory를 Bean으로 만들고 @Repository 어노테이션을 사용하시는 게 더 좋습니다. ex) MemberRepository extends JpaRepository MemberRepositoryCustom extends MemberRepository MemberRepositoryImpl implmentation MemberR..
Springboot restdocs 적용기[2] 실전 사용
Springboot restdocs 적용기[2] 실전 사용
2022.06.07이전엔 기본적인 사용법에 대해서 알아봤습니다. 이번엔 custom 하고, 리펙토링을 진행해보겠습니다. 1. build.gradle 수정 이전과 달라진 부분만 주석으로 설명을 적겠습니다. plugins { id 'org.springframework.boot' version '2.6.4' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id 'org.asciidoctor.jvm.convert' version '3.3.2' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { // config 추가 asciidoct..
Springboot restdocs 적용기[1] gradle 7.x
Springboot restdocs 적용기[1] gradle 7.x
2022.06.04프런트와 같이 프로젝트를 효율적으로 진행하려면 API 문서를 공유해야 합니다. restdocs를 통해서 손쉽게 만들 수 있습니다. 1. Springboot restdocs란? Spring Rest Docs는 테스트 코드를 기반으로 자동으로 API 문서를 작성할 수 있게 도와주는 프레임워크입니다. 물론 작성하는 방법이 API 문서를 만들어주는 Swagger보다 쉽지 않습니다. 하지만 반드시 테스트 코드 작성을 요하고, Test를 통과해야 된다는 장점이 있습니다. Test 코드가 필수로 되는 시기에 좋은 기술인 거 같습니다. 한 번 적용해보겠습니다. 2. build.gradle 수정 restdocs를 사용하기 위해서는 디펜던시를 추가하며, 몇 가지 작업을 해줘야 합니다. 추가해보겠습니다. 2-1. plugi..
Spring-Data-JPA [7] Querydsl 설정 (gradle 7.x)
Spring-Data-JPA [7] Querydsl 설정 (gradle 7.x)
2022.06.02Querydsl을 세팅하기 전에 무엇인지 먼저 알아봅시다. 1. Querydsl이란? 타입에 안전한 방식으로 HQL(Hibernate Query Language)를 실행하기 위한 목적으로 만들어졌습니다. HQL를 작성하다 보면, String 연결 (ex= "select"+ ~~)을 이용하게 됩니다. 이는 가독성의 어려움으로 이어질 수 있습니다. 따라서 가독성과 타입에 안전하도록 도메인 모델로 변경했다. 도메인 모델로 변경함으로써, 도메인 변경이 직접적으로 쿼리에 반영되고, 쿼리 작성 과정에서도 자동완성 기능을 사용할 수 있습니다. 따라서 빠르고 안정적인 쿼리를 만들 수 있습니다. 1-1. Queryds 원칙 1. 타입 안정성(Type Safety): 도메인 타입의 프로퍼티를 반영해서 생성한 쿼리 타입을 ..
Springboot Log 남기기
Springboot Log 남기기
2022.06.01우선 Log를 사용하기 전에 무엇인지부터 알아보자. 1. Log란? 사전적 의미로는 It에서 발생되는 모든 행위와 이벤트 정보를 시간에 따라 남겨둔 데이터를 지칭한다. 간단하게 이야기하면, 로그는 일정의 표시이고, 기록입니다. 로그를 통해서 애플리케이션의 상태를 관찰할 수도 있고, 오류가 발생한 부분에 대해서 인지할 수 있습니다. 즉 로직의 흐름, 예외 등등을 파악할 수 있도록 인지하기 할 수 있고, 로그를 통해서 서비스의 품질을 관리할 수도 있습니다. 예를 들어서 서비스를 이용하는 사용자가 자주 사용하는 기능이라던지 혹은 사람들이 어떠한 게시물을 열람할 때 로그 남기도록 만들었습니다. 그렇다면 서비스를 제공하는 입장에선 로그라는 데이터를 이용해서 기능을 더 발전시키거나, 사용자의 니즈를 찾아 품질이 높..
SpringBoot [스프링부트] Spring Security Oauth2 (6) Google Token 활용
SpringBoot [스프링부트] Spring Security Oauth2 (6) Google Token 활용
2022.05.25이전에는 google에 인증을 마치면 Session을 생성해서 사용자의 인증과 인가를 처리했습니다. 이번에는 google이 제공하는 API인 Access Code와 Access Token으로 서버의 JWT 토큰을 발급하여 인증과 인가를 처리해보겠습니다. 진행하면서 삽질을 많이 했는데 그 부분에 대해서도 작성하겠습니다. 간단한 순서도를 보겠습니다. 1. 사용자가 로그인 요청 2. 서버는 Google API Server의 로그인을 하는 URI로 리디렉션 3. 로그인 성공 시 설정한 redirect-uri로 리디렉션 진행하며, Access Token을 발급받을 수 있는 Authorization code를 쿼리 파라미터 넘겨줌 4. Authorization code를 활용해서 Access Token 발급 요청 ..