Skip to content

[TIL] 25-12-01 #39

@jk-Nam

Description

@jk-Nam

오늘 배운 내용

  • JPA Auditing
    • @EnableJpaAuditing을 사용하여 Auditing 적용
    • @MappedSuperclass로 BaseTimeEntity와 BaseEntity를 추상 클래스로 만들고 createdAt, updatedAt, createdBy, updatedBy 필드를 공통으로 사용
    • @EntityListeners(AuditingEntityListener.class)를 통해 엔티티의 생성 및 수정 시 관련 필드가 자동으로 갱신
    • AuditorAware를 구현하여 현재 로그인한 사용자의 ID를 createdBy와 updatedBy에 자동으로 갱신
  • 페이징 및 정렬
    • Pageable과 PageRequest 객체를 사용하여 DB 쿼리에 페이징 및 정렬 조건을 동적으로 추가
    • JpaRepository에서 Page를 반환 타입으로 사용하여 페이징 처리된 결과 확인
    • Page 객체가 제공하는 getTotalPages(), getTotalElements(), hasPrevious(), hasNext() 등의 메서드를 JSP 뷰에서 활용하여 페이지네이션 UI를 구현
    • @RequestParam으로 페이지 번호, 페이지 크기, 정렬 기준, 정렬 방향을 받아와 동적인 목록 조회
  • Redis / MongoDB

특히 어려웠던 것

  • Sort사용시 Order By 사용 불가

앞으로의 활용 방법

  • 관리자 페이지 등에서 데이터 변경 이력을 추적하고 표시하는 데 Auditing 정보를 적극 활용
  • 대량의 데이터를 조회하는 모든 API에 페이징 및 정렬 기능을 적용하여 시스템 성능 향상

복습/과제 계획

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions