본문 바로가기

분류 전체보기90

[ Java / querydsl ] Queryds에서의 페이지네이션 간단한 페이지네이션 - fetchResults()offset() 메서드와 limit() 메서드를 통해서 querydsl로 페이지네이션을 할 수 있다.offset은 몇번째 페이지를 가져올지, limit은 한 페이지에 몇개의 데이터를 가져올지를 의미한다.package study.querydsl.repository;import com.querydsl.core.types.dsl.BooleanExpression;import com.querydsl.jpa.impl.JPAQueryFactory;import jakarta.persistence.EntityManager;import org.springframework.data.domain.Pageable;import org.springframework.util.Strin.. 2025. 3. 29.
[Spring / Jpa / querydsl ] 커스텀 리포지토리 구조 스프링 데이터 JPA와 querydslCustom Repository를 사용하기Spring Data Jpa와 Querydsl을 활용한 custom repository(사용자 정의 리포지토리)를 사용하려면 아래와 같은 상속 구조로 구현해주면 된다.위 사진보다 더 직관적으로 이해가 잘가는 사진이 있어서 가져왔다.사진 출처: https://wildeveloperetrain.tistory.com/322MemberRepositoryCustom (인터페이스)사용자 정의 메서드를 정의한다.package study.querydsl.repository;import org.springframework.data.jpa.repository.JpaRepository;import study.querydsl.entity.Membe.. 2025. 3. 23.
[Redis / Docker/ Error] 단일 레디스에서 "Connecting to MASTER [ip]:[port]" 로그 docker container로 띄운 redis에 접속해보니, 아래와 같은 로그가 찍혀 있었다.  뭔가 이 redis가 slave 노드이고, master에 접속하려고 하지만 안되고 있다는 뜻인거 같은데레디스 클러스터를 구성하지 않고 한 대 쓰고 있었기에 저런게 뜨는게 너무 이상했다 열심히 자료를 찾아봐도 레디스 클러스터를 구성하는 과정에서 저런 에러가 발생했다는 글밖에 찾을 수 없었는데,가장 원인 같아 보이는 stackoverflow 페이지를 하나 찾을 수 있었다. https://stackoverflow.com/questions/57738563/redis-running-on-docker-shuts-down-after-some-time Redis running on Docker shuts down afte.. 2025. 3. 23.
[Java / querydsl] querydsl로 동적쿼리를 처리하기 동적 쿼리를 해결하는 2가지 방법BooleanBuilderWhere 다중 파라미터 사용 (1) BooleanBuilder 방식BooleanBuilder를 만들어서 querydsl의 where절에 넣어주기만 하면된다.BooleanBuilder를 만들 때, 한 조건이 null이면 해당 조건을 빼도록 구현한다.따라서 usernameParam을 null로 두었을 때는, JPQL의 where절에 age만 존재하고, @Test public void dynamicQuery_boolean_builder() { String usernameParam = null; Integer ageParam = 10; List result = searchMember1(usernamePar.. 2025. 3. 18.
[Java / querydsl] 여러 Projection 방법 프로젝션 기본프로젝션 대상이 하나인 경우 // 프로젝션 대상이 하나인 경우 @DisplayName("모든 회원의 이름 조회") @Test void simpleProjection() { List result = queryFactory .select(member.username) .from(member) .fetch(); for (String s : result) { System.out.println("result = " + s); } }프로젝션 대상이 여러 개인 경우 @DisplayName("모든 회원의 이름과 나이를 반환") @Te.. 2025. 3. 16.
포스트맨으로 Mock Server 만들기(API mocking) MSA 프로젝트를 개발할 때 내가 개발하고 있는 API가 다른 서버를 호출해야한다면 개발이나 테스트 과정이 복잡해질 수 있다.그럴 때 다른 마이크로서버를 로컬에서 띄워놓는 방법도 있겠지만, 포스트맨으로 필요한 API만 mocking한 mock 서버를 만들어 사용할 수 있다.  새로운 컬렉션 만들기우선 워크스페이스 좌측 상단 + 버튼을 눌러 새로운 컬렉션을 만들어주자  Mock Server 만들기우선 Mock Servers 아이콘이 보이지 않는다면, 화면 좌측 메뉴추가 버튼을 누르고 Mock servers를 눌러서 메뉴에 보이게 해주어야한다. 여기까지 됐다면, create mock server 버튼을 눌러서 목서버를 만들어주자   컬렉션은 위에서 만들었던 컬렉션을 선택해주고,하단 "Save the mock.. 2025. 3. 14.