PageResponse.java

역할


1. 핵심 구조: PageResponse record

public record PageResponse<T>(
        List<T> content,     // 실제 데이터 목록
        int page,            // 현재 페이지 번호 (0부터 시작)
        int size,            // 페이지 크기
        long totalElements,  // 전체 데이터 수
        int totalPages,      // 전체 페이지 수
        boolean first,       // 첫 페이지 여부
        boolean last         // 마지막 페이지 여부
) {

    // Page<T> → PageResponse<T> 변환 팩토리 메서드
    public static <T> PageResponse<T> from(Page<T> p) {
        return new PageResponse<>(
                p.getContent(),
                p.getNumber(),
                p.getSize(),
                p.getTotalElements(),
                p.getTotalPages(),
                p.isFirst(),
                p.isLast()
        );
    }
}

2. 설명

변환 흐름

Spring Data JPA Page<T> 객체
        │
        ▼
PageResponse.from(Page<T>) 호출
        │
        ▼
PageResponse<T> 객체 생성
        │
        ▼
프론트엔드 전달

3. 포인트

<aside> 💡

Tip