Project/Spring

Object DTO/페이지네이션

east-wind 2025. 3. 25. 11:20

객체를 반환할 때 필요없는 부분을 제거하는 법

1) Map 이용

2) 새로운 Object 만들어서 리턴 - 이러한 용도의 class를 DTO(Data Transfer Object)라고 함

(데이터를 특정 object 형태로 변환할 때)

 

DTO는 변수들에 public 필수, 안붙어있으면 스프링이 이를 JSON으로 변환할 수 없어 자동으로 getter를 쓰려고 함

 

DTO 장점

1) 타입 체크가 쉬움, Map은 타입체크 어려움

2) 재사용 용이

constructor 여러개 만들어서 다양한 인자 전달 가능

 

mapping 라이브러리로 특정 object를 다른 object로 쉽게 코드 한 줄로 변환할 수 있게 도와줌

 

record 이용

public record Person(String name, Integer age) {}

name, age라는 속성을 가진 Person 클래스를 하나 만들어줌

constructor, getter, toString() 등도 자동생성해줌

setter 이런건 사용불가능해서 값변경은 안됨

 

spring framework에 page 도 존재

 

thymeleaf 문법에서는 프로퍼티 접근 방식으로 접근. 함수 x

 

page 사용

@GetMapping("/list/page/{id}")
String getListPage(@PathVariable Integer id, Model model){
    Page<Item> result = itemRepository.findPageBy(PageRequest.of(id-1, 5));
    model.addAttribute("items", result.getContent());
    model.addAttribute("page", result);
    model.addAttribute("currentPage", id);
    return "list";
}

 

slice도 있음. page와 다르게 전체 개수 세는 것이 없어 count()함수의 실행이 적으므로 성능적으로 이점. 더보기만 있을 때 유용

 

 

'Project > Spring' 카테고리의 다른 글

DB Control  (0) 2025.03.26
이미지 업로드  (0) 2025.03.25
로그인 기능  (0) 2025.03.25
로그인 방식  (0) 2025.03.24
AJAX 사용  (0) 2025.03.24