Skip to content

[리팩토링] OrderRepositoryImpl.findAll(Pageable) 반환 타입 Slice 계약 위반 및 성능 문제 수정 #18

Description

@coderabbitai

개요

OrderRepositoryImpl에서 findAll(Pageable)을 호출할 때, OrderJpaRepository에 해당 메서드가 명시적으로 선언되어 있지 않아 JpaRepository.findAll(Pageable)이 사용됩니다.

이로 인해 두 가지 문제가 발생합니다.

문제점

1. 계약 위반

OrderRepository 인터페이스는 반환 타입을 Slice<Order>로 명시하고 있으나, 실제로는 Page<Order>를 반환합니다. PageSlice의 하위 타입이므로 컴파일 오류는 발생하지 않지만, 인터페이스 계약을 위반합니다.

2. 성능 문제

Page는 전체 레코드 수를 구하기 위해 추가적인 COUNT 쿼리를 실행합니다. 반면 Slice는 COUNT 쿼리를 실행하지 않아 더 효율적입니다.

관련 정보

대상 파일

  • src/main/java/com/fhsh/daitda/order/infrastructure/infrastructure/repository/OrderJpaRepository.java
  • src/main/java/com/fhsh/daitda/order/infrastructure/infrastructure/OrderRepositoryImpl.java

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions