[Querydsl] 사례공부06 / 페이징 성능 개선하기 출처 : https://jojoldu.tistory.com/528 NoOffset 기존의 페이징 방식이 페이지 번호(offset)와 페이지 사이즈(limit)를 기반으로 한다면 NoOffset은 페이지 번호(offset)가 없는 더 보기 방식을 이야기한다. NoOffset은 기존 페이징 쿼...
[Querydsl] 사례공부05 / Groupby 최적화하기 출처 : https://jojoldu.tistory.com/477 우선 MySQL에서는 Group by를 하면 file sort가 함께 수행된다고 한다. 인덱스에 있는 칼럼으로 Group by를 한다면 이미 인덱스로 인해 정렬된 상태이기에 큰 문제가 되지 않는다. 하지만 만약 정렬이 필요...
[Querydsl] 사례공부04 / select에서 상수 사용하기 출처 : https://jojoldu.tistory.com/523 우선 쿼리 성능을 개선 할 수 있는 아래와 같은 방법이 있다. check for indexes work with the smallest data set required remove unnecessary fields an...
[Querydsl] 사례공부03 / 다이나믹 쿼리 출처 : https://jojoldu.tistory.com/394 우선 다이나믹 쿼리란? 상황에 따라 조건문을 생성하는 것을 말한다. 다이나믹 쿼리를 사용하는 방법에는 BooleanBuilder와 BooleanExpression을 활용하는 방법이 있다. 우선 BooleanBuilder를 알아보자....
[Querydsl] 사례공부02 / Cross Join 출처 : https://jojoldu.tistory.com/533 image 사진 출처 : https://www.tutorialgateway.org/sql-joins/ 위의 사진을 보면 Cross Join을 사용하면 많은 연산이 일어날 것을 예상할 수 있을 것이다. 하지만 "Hibernate...
[Querydsl] 사례공부01 / Left Outer Join 출처 : https://jojoldu.tistory.com/342 우선 OUTER JOIN과 INNER JOIN의 차이부터 알아보자. OUTER JOIN은 조건을 만족하지 않아도 기준이 되는 테이블에 해당하는 데이터는 모두 보여준다. 반면 INNER JOIN은 조건에 만족하는 데이터만...
[Oauth2.0] Apple 로그인 구현 PR 바로가기 Controller Controller를 구현하면서 들었던 팁은 Endpoint가 API의 경계선이라 생각할 수 있다는 것이다. 특히 현재 프로젝트의 구조에는 UseCase 방식이 사용되고 있기 때문에 Controller를 추가하거나 삭제하는 등 Controller에 관한 행위를 할 때는 ...
[Oauth2.0] Apple 로그인 구현 1차 피드백 초안과 변경 사항 우선 이전 초안과 달라진 부분 부터 먼저 살펴 보면 아래와 같다. 1차 피드백 후 변경된 것은 idToken 필드가 사라진 것이다. 처음 idToken 필드를 추가한 것은 최대한 Apple 로그인 API를 사용하였을 때 받는 값을 사용하고 싶었기 때문이다. 하지만 기존 Si...
[Querydsl] 공식문서03 General usage Creating queries Querydsl의 쿼리 구성에는 표현식 인수를 사용하여 쿼리 메서드를 호출하는 작업이 포함된다. 표현식은 일반적으로 도메인 모듈의 생성된 표현식 유형에서 필드에 액세스하고 메서드를 호출하여 구성된다. 코드 생성이 적용되지 않는 경우에는 일반적인 표현식 구성 방...
[Querydsl] 공식문서02 Tutorials Querying JPA Querydsl은 일반적으로 도메인 모델 데이터를 질의하기 위한 정적 타입의 문법으로 정의한다. JDO 그리고 JPA는 Querydsl을 위한 주요 통합 기술이다. JPA용 Querydsl은 JPQL 및 Criteria 쿼리의 대안이다. Querydsl은 Criteria ...
[Querydsl] 공식문서01 Background Querydsl은 HQL 쿼리를 타입 세이프한 방식으로 유지 관리할 필요성에 의해 탄생하였다. HQL 쿼리는 문자열 연결이 필요하므로 읽기 어려운 코드가 생성된다. 문자열을 통한 도메인 유형 및 속성에 대해 안전하지 않은 참조는 문자열 기반 HQL 구성의 문제 중 하나이다. Querydsl을 통...
[Oauth2.0] Apple 로그인 구현 초안 깃허브 바로가기 ID 토큰 주요 클레임 값 의미 iss Apple이 해당 토큰을 발급하였기에 iss 값은 https://appleid.apple.com이다. sub 주체(subject) 등록 클레임의 경우 ID 토큰의 주체를 식별한다. 이 토큰은 앱용으로 이 값은 사용자에 대한 고유 식별...
[Oauth2.0] Apple 로그인 구현 논의사항2 팀 전체 회의 전 백엔드 회의에서 논의한 내용과 공식 문서를 다시 한번 확인한 내용을 바탕으로 정리해보려 한다. Apple 로그인 구현 논의사항1 복기 1-1. 어떤 토큰을 받아야 할까?, 1-2. client secret 1-1 중 "refresh 토큰을 프런트로부터 로그인을 위해 받는 것이 ...
[Oauth2.0] Apple 로그인 구현 논의사항1 구현에 앞서 살펴본 공식 문서와 기존 코드 파악을 통해 구현 전 논의사항을 정리해보려 한다. 우선 기존 코드는 로그인 시 어떤 토큰을 받고 있는지 우선 알아보자. 우선 위의 SignMemberRequest를 통해 인증 제공자(CertificationSubject) 그리고 토큰(socialToken...
[Oauth2.0] Apple 로그인 공식문서 Authenticating users with Sign in with Apple 위 사진은 Apple에서 제공하는 로그인 과정에 대한 시퀀스 다이어그램이다. Authenticate the user and request information 앱 서버와 인증 세션을 초기화하고 *클라이언트 세션을 ID 토큰...
[Oauth2.0] 기존 코드 파악 앞서는 Oauth2.0 공식 문서를 통해 Oauth2.0에 대해서 알아보았다. 공식 문서를 통해서는 Oauth2.0가 어떤 것이고 해당 서비스를 제공하려면 어떻게 할 수 있는지 알 수 있었다. 하지만 내가 알아야 하는 것은 zzaksim에서 Oauth2.0 어떻게 사용할 것인가?이다. 그렇기에 이번에는 기존 코드...
[Oauth 2.0] 공식문서 Introduction Roles resourse owner 보호된 리소스에 대한 액세스 권한을 부여할 수 있는 엔티티다. Ex) 유저 resource server 보호된 리소스를 호스팅하는 서버로, access token을 사용하여 보호된 리소스 요청을 수락하고 응답할 수 있는 서버다. authorizatio...