본문 바로가기

Back-End/JPA17

[Spring Data JPA] 오프셋 기반 페이지네이션(Pagenation) | PagingAndSortingRepository 페이지네이션 데이터베이스에 회원 정보가 100건이 존재한다고 가정한다. 클라이언트가 이 많은 데이터를 모두 한 번에 요청하는 것이 아니라 특정 개수 만큼 나누어서 요청할 수 있다. 서버에 데이터를 요청할 때 클라이언트의 입장과 서버의 입장에서 특정 정렬 기준에 따라 지정한 개수의 데이터를 요청하고 응답하는 것이 필요하다. 오프셋 방식 가져와야 되는 데이터까지 오프셋 개수 만큼 카운팅해서 찾아가는 방식이다. 데이터베이스의 offset 쿼리를 사용하여 페이지 단위로 데이터를 응답한다. 직접 찾아가야 되므로 시간이 걸린다. 이미 읽었던 데이터를 다시 읽는 과정이 포함되어서 데이터가 많아지면 성능상 좋지 않다. 데이터가 100만 건 ~ 200만 건일 때 클라이언트가 심하게 느리다고 할 정도는 아니다. 데이터 중.. 2022. 8. 30.
[Spring Data JPA] 서비스, 리포지토리 구현 보호되어 있는 글 입니다. 2022. 8. 28.
[Spring Data JPA] 도메인 엔티티 클래스 정의 보호되어 있는 글 입니다. 2022. 8. 28.
Spring Data JDBC 🍏 Spring의 데이터 액세스 기술 SQL 중심 기술: mybatis, Spring JDBC 객체 중심 기술(ORM): Spring Data JDBC, JPA, Spring Data JPA 등 (셋 다 학습 필요) Spring Data JDBC는 JPA 지식이 있어야 하고 상대적으로 적게 사용하지만 규모가 작을 때 생산성이 좋다. 🍏 Spring Data JDBC 사용하기 1️⃣ 의존 라이브러리 추가 H2: 인메모리 DB(휘발성)이다. 로컬 테스트 환경에서는 인메모리 DB 사용을 권장한다. dependencies { ... ... implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' runtimeOnly 'com.h2databa.. 2022. 8. 26.
JDBC(Java Database Connectivity) 기반 데이터 엑세스 계층 📁 JDBC란? Java 기반 애플리케이션에서 사용하는 데이터를 DB에 저장하거나, DB의 데이터를 Java 코드로 사용할 수 있도록 해 주는 Java에서 제공하는 표준 사양이다. JDBC API는 다양한 벤더(Oracle, MS SQL, MySQL 등)의 DB와 연동할 수 있다. 동작 흐름을 알면 Spring의 데이터 엑세스 기술 사용에 도움이 된다. (Spring Data JDBC, Spring Data JPA) 📁 동작 흐름 Java 애플리케이션 → JDBC API → JDBC 드라이버 → 데이터베이스 JDBC 드라이버 로딩: DB와 통신을 담당하는 인터페이스로, 다양한 벤더에서 이를 제공하면 드라이버의 구현체를 이용하여 특정 벤더의 DB에 엑세스 할 수 있다. DriverManager 클래스를 통.. 2022. 8. 26.