본문 바로가기

Spring72

spring-batch 통합 테스트 정리 source 는 Github 에 있습니다. spring-batch 통합 테스트 spring-batch 통합테스트 하는 방법 입니다. spring-batch 4.1 이상 기준으로 동작합니다. source tasklet 을 호출하는 간단한 예제입니다. @Slf4j @Configuration public class SimpleTaskletJob { @Autowired public JobBuilderFactory jobBuilderFactory; @Autowired public StepBuilderFactory stepBuilderFactory; private SimpleTaskletBean simpleTaskletBean; public SimpleTaskletJob(SimpleTaskletBean simple.. 2021. 6. 12.
[spring 4편] spring http message convert 설명 (RequestBody, ResponseBody) 목차는 spring series 목차 에 있습니다. spring http message convert 설명 spring 에서 client 와 server 간 데이터를 주고 받을 때, 데이터를 어떻게 주고 받는지에 대해서 공부했습니다. 아래 예시는 spring mvc + json 기준입니다. client 에서 server 로 request 를 보낼 때 메시지 변환 과정 client 에서 json 데이터를 네트워크를 통해 보낼 때, server 의 spring 엔진 에서는 데이터 header 부분의 'Content-type' 을 살펴봅니다. spring 은 'Content-type' 을 보고, HttpMessageConverter 구현체를 찾기 시작합니다. HttpMessageConverter 구현체는 cl.. 2021. 6. 12.
spring data jpa batch insert 정리 source 는 Github 에 있습니다. spring data jpa batch insert 란? batch insert 라는 것은 여러 개의 SQL Statement 를 하나의 구문으로 처리할 수 있습니다. 정확히는 위 기능은 jdbc batch 기능이며, hibernate 에서 위 기능을 이용해서 처리하는 것입니다. (write-behind 를 통해) 여러 개의 구문을 여러 번 network 를 통해 보내는 것이 아니라 합쳐서 1개로 보내기에 성능 개선을 할 수 있습니다. (이게 핵심) jpa 의 경우 트랜잭션이 commit 되는 순간 한꺼번에 flush 가 이루어집니다. batch_size 옵션이 없다면 단건으로 데이터를 network 를 통해 보낼 것입니다. batch_size 설정해준다면 해당.. 2021. 5. 20.
spring data jpa save, saveAll 비교 source 는 Github 에 있습니다. save 동작 원리 save 동작 원리는 이전 글 참고하시면 됩니다. saveAll 동작 원리 간략히 설명하면 save(xxx) 는 1건을 저장하는 메소드이며, saveAll 은 다건이상의 데이터를 저장하는 메소드입니다. 아래 로직만 보면 saveAll 은 save() 를 호출하는 구조로 되어있습니다. 그럼 대량의 데이터를 처리할 때, save, saveAll 은 같은 성능으로 처리될까요? SimpleJpaRepository.java @Transactional @Override public S save(S entity) { if (entityInformation.isNew(entity)) { em.persist(entity); ret.. 2021. 5. 15.