Batch Insert로 API 응답 속도 175배 개선하기
·
삽질로그
1. 들어가며지난 글에서 예약 슬롯을 생성하는 API에서 발생한 성능 문제점을 분석했다.🔗 이전 글: 2025.03.03 - [삽질로그] - 내 API 응답시간은 왜 이렇게 오래 걸릴까?  내 API 응답시간은 왜 이렇게 오래 걸릴까?1. 들어가며최근 스타트업에서 사업장의 운영시간에 따라 구장의 예약 슬롯을 한 시간 단위로 생성하는 API를 만들게 되었다.이 기능은 다음과 같은 경우에 실행된다.✅ 구장 생성 시✅ 사업장mingking2.tistory.com 주요 문제는 다음과 같았다.✅ 중복 검사로 인한 N+1 문제 → existsReservationSlot()을 개별적으로 호출✅ 개별적인 Insert 실행 → saveAll()이 여러 번 실행되어 트랜잭션 오버헤드 증가✅ 개별적인 Delete 실행 →..
내 API 응답시간은 왜 이렇게 오래 걸릴까?
·
삽질로그
1. 들어가며최근 스타트업에서 사업장의 운영시간에 따라 구장의 예약 슬롯을 한 시간 단위로 생성하는 API를 만들게 되었다.이 기능은 다음과 같은 경우에 실행된다.✅ 구장 생성 시✅ 사업장 운영시간 변경 시그러나, 현재 코드에는 성능 이슈가 발생하고 있었다. 예약 슬롯이 많아질수록 DB 부하가 증가하고, 실행 시간이 길어지는 문제가 있었다. 이번 글에서는 기존 코드의 문제점을 분석하고, 어떤 부분이 비효율적인지 살펴보겠다.2. 기존 코드 분석예약 슬롯을 생성하는 기존 로직은 다음과 같다.public void appendSlotsOfMonth(Long fieldId) { Set uniqueStartTimes = new HashSet(); FieldDetailDao dao = fieldServic..