Spring

Spring, Pageable/List 기본 정렬 기준

greenyellow-s 2025. 3. 18. 15:24
728x90
반응형

기술 면접에서 자주 물어보는 부분


Pageable

Spring Data JPA 에서 Pageable을 사용하여 정렬을 지정하지 않으면 기본적으로는 기본키(primary key)를 기준으로 정렬한다.

 

Pageable에서 정렬을 지정하지 않으면 기본 키(@Id) 오름차순으로 정렬될 가능성이 크다.

 

하지만 데이터베이스 내부 동작 방식에 따라 저장된 순서대로 보이지 않을 수도 있다.

정확한 정렬을 보장하려면 Sort를 사용하여 명확히 정렬 조건을 지정하는 것이 좋다.

 

 

  • 기본 키(@Id) 기준으로 정렬
    • @Id가 있는 필드(예: report_id)의 오름차순(ASC) 정렬이 기본값
    • @GeneratedValue를 사용하는 경우, 자동 증가되는 순서대로 반환
  • 인덱스(Index)가 있는 경우
    • 인덱스가 걸려 있는 컬럼이 있다면, 데이터베이스의 내부 처리 방식에 따라 해당 인덱스 순서에 의해 정렬될 수 있음
  • 데이터베이스 저장 순서에 따라 다름
    • 정렬을 명시적으로 지정하지 않으면 DB의 내부 동작 방식에 따라 랜덤하게 보일 수도 있음
    • 특히 MySQL이나 PostgreSQL의 경우 INSERT된 순서와 다르게 나올 가능성이 있음

 


List

List 조회하면 기본적으로 데이터베이스가 반환하는 순서대로 가져.

 

  • 기본 키(@Id) 기준으로 정렬될 수도 있고, DB의 저장 순서에 따라 랜덤하게 나올 수도 있음.
  • MySQL, PostgreSQL 등 대부분의 DB는 정렬을 명시적으로 지정하지 않으면 데이터 삽입 순서를 보장하지 않음.
  • 따라서, 정렬이 필요하면 명확하게 정렬 조건을 설정해야 함.

 

728x90
반응형