Spring Boot/Spring Data JPA(33)
-
Database Index
데이터베이스 인덱스는 대규모 데이터셋에서 성능을 최적화하기 위한 핵심적인 메커니즘으로, 테이블 내에서 특정 열 또는 열들의 조합에 대한 데이터 검색을 더 빠르게 수행할 수 있도록 돕는 데이터 구조입니다. 인덱스는 데이터를 미리 정렬된 구조로 유지해 두어, 테이블을 일일이 탐색하지 않고도 필요한 데이터를 효율적으로 찾을 수 있도록 해줍니다. 마치 책의 목차처럼, 특정 위치의 데이터를 빠르게 찾아가는 데 사용됩니다.1. 데이터베이스 인덱스의 개념과 역할(1) 인덱스란?인덱스는 특정 열 또는 여러 열의 조합에 대해 데이터를 빠르게 검색할 수 있도록 구성된 데이터베이스의 자료 구조입니다. 테이블 전체를 스캔하는 것보다 성능이 훨씬 향상됩니다.검색 성능 개선: 인덱스는 테이블에서 데이터를 찾는 과정을 최적화해 검..
2023.06.04 -
Aggregate Root
Aggregate Root는 도메인 주도 설계(DDD: Domain-Driven Design)에서 핵심 개념 중 하나로, 특히 복잡한 비즈니스 로직이 필요한 애플리케이션에서 유용한 설계 방법입니다. 이를 이해하기 위해서는 DDD의 애그리게이트(Aggregate) 개념과 그 안에서의 역할을 이해하는 것이 중요합니다. Spring Data JPA는 이러한 개념을 적용하여 도메인 모델을 더 명확하고 일관성 있게 관리할 수 있도록 도와줍니다.1. 애그리게이트(Aggregate)란?애그리게이트는 하나 이상의 객체(엔티티와 값 객체)를 묶어서 한 단위로 취급하는 개념입니다. 이 묶음은 도메인 논리에 의해 긴밀하게 결합된 객체들로 구성됩니다. 애그리게이트는 시스템에서 일정한 경계(boundary)를 설정하여 해당 경..
2023.06.04 -
Slice
Spring Data JPA의 Slice는 페이징 처리에서 효율성을 높이기 위한 대안으로, Page 객체와 비교해 일부 간략화된 정보를 제공하는 페이징 결과 객체입니다. Slice는 전체 데이터 수를 계산하지 않고도 페이징을 처리할 수 있어 성능 면에서 이점을 제공합니다. 더 자세히 설명하자면, Slice는 현재 페이지의 데이터와 다음 페이지로 이동할 수 있는지 여부만 제공하며, 전체 데이터의 수를 포함하지 않는다는 점이 특징입니다.Slice와 Page의 비교Page와 Slice는 모두 페이징 처리를 위해 사용되지만, 두 클래스는 제공하는 정보가 다릅니다.Page전체 데이터 개수 (getTotalElements())총 페이지 수 (getTotalPages())현재 페이지에 해당하는 데이터 (getCont..
2023.04.17