Performance 2

Spring Boot 페이징과 정렬 실전 가이드 (성능 함정: Slice vs Page, count 최적화, keyset pagination)

Spring Boot 3.x + Spring Data JPA에서 Pageable을 제대로 쓰는 방법과 Page/Slice 선택 기준, count 쿼리 최적화, keyset pagination(커서 페이징)까지 실전 관점으로 정리합니다.도입 (문제 상황)목록 API를 만들 때 Pageable만 붙이면 끝일 것 같지만, 운영에 올리면 갑자기 DB가 느려지거나 count 쿼리가 병목이 되는 경우가 많습니다. 특히 “페이지 수를 보여줘야 해서 Page로 했는데 응답이 느려요” 같은 상황을 자주 겪으실 거예요. 이번 글에서는 페이징/정렬을 “되는 코드”가 아니라 “성능까지 고려한 코드”로 만드는 기준을 잡아봅니다.핵심 개념: Spring Data JPA 페이징/정렬에서 진짜 중요한 것들1) Pageable은 편하..

Spring Boot 2026.03.17

Java Virtual Thread — 경량 스레드의 시대 (Project Loom 실무 가이드)

Java 21 Virtual Thread(Project Loom)로 동시성을 쉽게 확장하는 방법과 플랫폼 스레드와의 차이, 실무 적용 시 주의점을 정리합니다.도입 (문제 상황)동시 요청이 조금만 늘어도 스레드 풀이 꽉 차서 지연이 길어지거나, “스레드 수를 올리면 메모리부터 터진다” 같은 상황을 겪으실 때가 있어요. 반대로 비동기(CompletableFuture, 리액티브)로 바꾸자니 코드가 복잡해지고 디버깅이 어려워지는 경우도 많습니다. 이런 딜레마를 줄이기 위해 나온 해답이 Virtual Thread(가상 스레드) 입니다.핵심 개념 (Java Virtual Thread와 Project Loom이 중요한 이유)Project Loom은 “블로킹 코드를 그대로 두면서도 대규모 동시성”을 목표로 한 프로젝트..

JAVA 2026.02.28