| 항목 | 설명 |
|---|---|
| Object 타입 사용 | 여러 정보를 한 번에 담기 위해 Object 타입을 활용 |
| 추가 정보 처리 | 테이블 DTO에 포함되지 않은 정보는 별도 필드로 선언 후, JOIN 결과에 활용 |
| 페이징 기본 개념 | 현재 페이지 번호(page), 한 페이지당 표시할 개수(size) 등을 받아서 페이징 처리 |
| Service - Dao 관계 | 하나의 Service에서 여러 번 Dao를 호출하여 DB 접근 |
| defaultValue | 쿼리스트링 매개변수가 없을 경우, 기본값을 자동으로 대입 |
💡 예시 코드:
@GetMapping("/list") public List<Post> getPagedList( @RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int size ) { int offset = (page - 1) * size; return postService.getPagedPosts(offset, size); }
⚙️ 로직 개요
1. 클라이언트로부터page,size값을 수신
2.offset계산 ((page - 1) * size)
3. DAO에서LIMIT/OFFSETSQL로 페이징 조회
4.totalCount등 추가 정보를Object나Map형태로 반환
| 어노테이션 | 설명 |
|---|---|
| @RequiredArgsConstructor | final 변수에 대한 생성자를 자동으로 생성하는 Lombok 어노테이션 |
💡 예시 코드:
@Service @RequiredArgsConstructor public class PostService { private final PostRepository postRepository; // 생성자 자동 생성 }
✅ 효과:
- 코드 간결화 (생성자 직접 작성 불필요)
- 의존성 주입 시
final필드 보장