bulkInsert 부분에서 마지막에 이상한? 부분이 있는것 같아서 문의드립니다.
79
11 asked
마지막 부분에 getBatchSize()를 1000정도 권장해주셨는데요.
jdbcTemplate.batchUpdate()는 내부적으로 배치사이즈만큼 for문을 통해 반복하는것 같습니다. 즉 실제 처리해야할 대상 데이터가 1000개가 넘는다면 1000번째 이후 데이터부터는 INSERT가 안될거고요.
만약 1000개 미만이라면 예를 들어 500개밖에 없다면 501번째 반복때 java.lang.ArrayIndexOutOfBoundsException발생할것 같습니다.
만약 chunk가 최대 1000개정도가 적당하다라는 말씀이신거면 모르겠지만 1000으로 하드코딩해서 쓴다 라고 하신것처럼 와닿아서.. 오해의 소지가 있는것 같아 남깁니다~
private void bulkProcessSettlements(Map<Long, BigDecimal> settlementMap, LocalDate paymentDate) {
String sql = "INSERT INTO settlements (partner_id, total_amount, payment_date) VALUES (?, ?, ?)";
jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement ps, int i) throws SQLException {
//
}
@Override
public int getBatchSize() {
return 1000;
}
});
}
Answer 2
0
안녕하세요, 인프런 AI 인턴입니다.
dlsrksrhk님, jdbcTemplate.batchUpdate()의 getBatchSize()에 대한 질문에 답변드리겠습니다.
getBatchSize() 메서드는 배치 처리를 위한 사이즈를 지정하는 부분입니다. 이 값은 처리할 객체의 수에 따라 유동적으로 설정될 필요가 있습니다. 언급하신 것처럼 실제 데이터의 수가 1000개 미만일 경우나 초과할 경우, 이 함수의 반환 값은 상황에 따라 조정되어야 합니다.
특히, 실제 settlementMap의 사이즈를 고려하여 동적으로 getBatchSize()를 설정하시길 권장합니다. 예를 들어:
@Override
public int getBatchSize() {
return settlementMap.size();
}
또한, 대량의 데이터를 처리할 때 적정한 배치크기를 정하는 것은 매우 중요합니다. 일반적으로 데이터베이스와의 연결 수, 메모리 사용 등을 고려하여 적절히 조정하여 성능을 최적화하는 것이 좋습니다. 이렇게 함으로써 ArrayIndexOutOfBoundsException 같은 예외가 발생하지 않도록 예방할 수 있습니다.
해당 설정을 상황에 맞게 조정하여 사용하시면 더 나은 성능과 안정성을 제공할 수 있을 것입니다. 도움이 되셨길 바랍니다!
자세한 내용은 관련 문서를 참고하실 수 있습니다:
Spring Boot JDBC Template
주니어 이력서 작성방법
0
14
1
패키지 구분에 대해 궁금한게 있습니다
0
7
1
Json 플러그인 사용시 variable collection 없음
0
12
1
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
18
1
배리어블 목록 없음
0
21
3
Token 등록 방법 문의
0
18
1
스프링부트 서버 에러나요
0
17
1
갑자기 채점 사이트가 바뀌었어요
0
19
1
2026.04에 추가된 강의 시청 불가
0
27
1
Service Create/Update Record 운용과 Delete Record 미운용의 차이 질문
0
18
1
문제 리스트 페이지
0
22
1
인가 코드 발급(프론트 vs 백)
0
28
2
part8 Notion 링크
0
22
1
채점 사이트 관련 질문드립니다
0
20
1
인텔리제이 MCP 서버 설정 관련
0
25
1
회사의 시스템 아키텍처를 포트폴리오에 써도 되나요?
1
37
2
조회속도 개선에서 더 개선하는 방법이 궁금합니다.
0
28
2
REST API (Self-descriptive messages)
0
22
1
섹션3 강의 누락?
0
61
1
팰월드 스트림..?
1
241
1
질문 답변 부탁드립니다
0
161
1
해상도가 720p 까지 가능해서 화면이 흐리네요.
0
156
1
pg 파라미터가 이제는 없어진다고 하는데 업데이트 해주시나요?
0
213
1
paymentProcess() 결제내역 남기기
0
171
0

