TIL - 25.12.31

이준연·2025년 12월 31일

학습 키워드

  • 트러블슈팅

트러블 슈팅

dtos.sort(Comparator.comparing(GetScheduleResponse::getModifiedAt).reversed());

전체 조회 시 데이터들을 modifiedAt를 기준으로 내림차순 정렬을 하려고 했습니다. sort() 메서드를 사용하여 정렬을 시도하였고, Comparator 라이브러리의 compation 메서드를 사용하여 값을 비교하였습니다. 하지만 해당 기능을 Spring Data JPA도 제공하기 때문에 Spring Data JPA 정렬 기능을 사용하여 코드를 리펙토링하였습니다. Spring Data JPA 정렬 기능을 사용하여 코드를 작성할 경우, 인덱스 활용, 확장성, 메모리 효율, 일관성 등에서 이점을 가질 수 있습니다.

@GetMapping("/schedules")
    public ResponseEntity<List<GetScheduleResponse>> getAllSchedules(@RequestBody GetScheduleRequest request) {
        return ResponseEntity.status(HttpStatus.OK).body(scheduleService.findAll(name));
    }

다른 기능들 처럼 @RequestBody 를 사용하여 작성자명을 가져오려고 하였지만, Get 기능 로직이기 때문에 @RequestParam 방식이 더 올바른 듯 하여 매개변수의 형태를 바꾸었습니다.

List<Schedule> findAllByOrderByModifiedAtDesc();
List<Schedule> findAllByNameOrderByModifiedAtDesc(String name);

Entity의 정렬을 편하게 사용하기 위해 Spring Data JPA의 쿼리 메소드 기능을 사용하였습니다.

profile
반갑습니다!

0개의 댓글