[Spring] 쿼리 카운터 개발기: JPA N+1문제를 찾아서
도입한 이유 쿼리 튜닝을 하는 과정에서 나간 쿼리의 개수를 측정하는 과정에서 불편함이 있었습니다. 특히 아이돔 프로젝트에서는 Spring-Data-JPA를 사용합니다. 그로 인해 JPA N+1 문제와 같이 의도와 다르게 발생한 쿼리의 개수를 모니터링할 필요가 있었습니다. 문제 정의 1. API의 실행 시간 측정 2. 쿼리가 실행된 개수 카운트 3. 실행된 쿼리들을 리스트업 4. N+1 문제가 의심되는 쿼리를 체크 → 의심 조건 : 동일한 SELECT 문이 2개 이상 사용되었는가 구현 방식 일반적으로 쿼리 카운터를 구현하기 위해 고려하는 방법은 2가지 입니다. 두 가지 방식 모두 적용해 보겠습니다. 방식 1. 하이버네이트의 StatementInspector 인터페이스 먼저 ORM 프레임워크인 Hiberna..