Spring Boot에서의 성능 튜닝은 대부분 데이터베이스 경계에 관한 것입니다: connection pooling, caching, 그리고 N+1 쿼리 문제 제거. 먼저 측정하고(Micrometer + Actuator 메트릭), 그다음 가장 큰 비용을 공략하세요.
N+1 문제 — JPA 최고의 킬러
lazy 연관관계는 parent마다 쿼리 하나를 날린 뒤, 자식에 접근할 때마다 하나 더 날립니다:
java
List<Order> orders = orderRepo.findAll(); // 1 query
for (Order o : orders) {
o.getItems().size(); // N extra queries — one PER order (the "N+1")
}
단일 join으로 연관관계를 가져와 해결하세요:
