JPA4 [성능 최적화] K6로 발견한 N+1 문제, 84개 쿼리를 6개로 줄여 응답속도 93% 개선기 - 2편 [성능 최적화] K6로 발견한 N+1 문제, 84개 쿼리를 6개로 줄여 응답속도 93% 개선기 - 2편서론이번 2편에서는 지난 [1편 링크] 에서 K6 부하 테스트를 통해 채팅 메시지 조회 API에서 심각한 N+1 문제를 해결하기 위한 구체적인 코드 개선 과정과, 그로 인해 얼마나 성능이 향상되었는지를 데이터로 확인해 보겠습니다.문제의 원인 : 반복 조회로 인한 N+1 쿼리부하 테스트를 통해 확인한 병목의 근본 원인은, 쿼리가 N+1 로 실행되는 문제였습니다.아래 코드 첫 번째 스크린샷에서 보시는 것처럼, 조회된 21개의 채팅 메시지 목록(List)을 스트림으로 처리하며 각 메시지에 대한 추가 정보를 개별적으로 조회하고 있었습니다.즉, 하나의 메시지(ChatEntity)를 처리할 때마다 아래 4개의 추가.. 2025. 8. 13. 스프링부트 JPA활용 2 - 웹 계층 개발(7) 목차 📌홈 화면 👀 회원 기능 👀 회원 등록 👀 회원 조회 📌상품 기능 👀 상품 등록 👀 상품 수정 👀 상품 조회 📌주문 기능 👀 상품 주문 👀 주문 내역 조회 👀 주문 취소 📌홈 화면 홈 컨트롤러 package jpabook.jpashop.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @Slf4j public class HomeController { @RequestMapping("/") public String home(){ log.trace("트.. 2022. 6. 17. 스프링, JPA의 탄생 스프링, JPA의 탄생 EJB : 자바빈즈(Enterprise JavaBeans) EJB란 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다. 스프링이 생기기전 개발자들은 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)라는 서버 앱으로 개발을 했는데 아래와같은 단점이 있었다. EJB 단점 객체지향적이지 않음 복잡한 프로그래밍 모델 특정 환경, 기술에 종속적인 코드 컨테이너에 안에.. 2022. 4. 14. 스프링 , JPA 탄생 배경 스프링, JPA의 탄생 EJB : 자바빈즈(Enterprise JavaBeans) EJB란 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다. 스프링이 생기기전 개발자들은 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)라는 서버 앱으로 개발을 했는데 아래와같은 단점이 있었다. EJB 단점 객체지향적이지 않음 복잡한 프로그래밍 모델 특정 환경, 기술에 종속적인 코드 컨테이너에 안에.. 2022. 4. 11. 이전 1 다음