springboot jpa
Springboot JPA Querydsl 동적 정렬 OrderSpecifier
Springboot JPA Querydsl 동적 정렬 OrderSpecifier
2022.12.06SQL 동적 정렬이란? 하나의 API에서 정렬 조건을 동적으로 변경해, 정렬 혹은 정렬 + 페이징을 진행하는 것을 의미합니다. 예시를 보며, 필요한 상황이 언제이며, 어떻게 해결하는지 알아가 보겠습니다. 어떤 경우에 필요할까? 우리는 Querydsl만을 통해서가 아닌 Springboot Data JPA를 통해서도 쉽게, 페이징과 정렬을 할 수 있습니다. 하지만 문제 되는 경우는 같은 API 호출임에도 불구하고, 내림 차순 or 오름 차순과 같이 동적으로 정렬이 바뀌는 경우가 존재합니다. 물론 API를 2개 만들어 호출하면 문제없습니다. 하지만 리소스, 동작이 동일한데 API를 분리하는 것은 복잡성을 증가시킬 뿐입니다. 2가지의 방법으로 해결할 수 있습니다. 테스트 셋팅 Person이라는 Entity가 존..
Spring-Data-JPA [6] Index 적용하기
Spring-Data-JPA [6] Index 적용하기
2022.05.16Database의 성능을 높이기 위한 여러 가지 방법들이 있습니다.(Index, 반정 규화, 클러스터링 등등) 이번에는 Index에 대해서 알아보겠습니다. 1. Index란? Index란 추가적인 작업들을 통해서 테이블에서 데이터의 조회 속도를 향상시켜줄 수 있는 자료구조입니다. (시켜줄 수도 있다는 것은 Index를 잘못 사용했을 때 생기는 문제점입니다.) 말 그대로 Index는 색인입니다. 책이나 잡지를 볼 때 원하는 내용을 찾을 때 모든 페이지를 살펴본다면 오랜 시간이 소요됩니다. 하지만 책이나 잡지에는 색인을 추가해서 내용을 찾을 수 있도록 도움을 줍니다. 데이터베이스에 Index 또한 같은 역할을 합니다. 예시 사진을 보겠습니다. Member_Id는 정렬돼 있고, 자신만의 포인트를 가지고있습니다..
Spring-data-JPA [3] 명명법
Spring-data-JPA [3] 명명법
2022.03.22Springboot-Data-JPA 명명법 JPA는 반복적인 SQL 작성과 객체를 SQL에 맵핑하는 것을 대신 수행해줍니다. 따라서 개발자는 JPA를 통해서 단순 코드 작성, 맵핑하는 것에 초점을 두지 않고, 비즈니스 개발에 집중할 수 있게 되었습니다. 그중에서 SQL을 직접 작성하지 않고 메서드의 명명으로 쿼리를 사용할 수 있게 해주는 명명법에 대해서 알아보겠습니다. 명명법이 동작하는 원리도 포스팅하려 했지만, Hibernate 구현체에 디버깅 걸어도 보고 구글링도 했지만 찾지 못했습니다.. 추후에 찾게 된다면 동작 원리에 대해서도 포스팅 하겠습니다. 2022.04.10 추가 명명법의 동작 과정을 살펴보겠습니다. 사용된 query는 아래와 같습니다. Optional findByName(String na..