본문 바로가기

IT/Spring83

chunk vs tasklet 차이 Chunk-Oriented Processingchunk는 데이터를 일정 크기로 나누어 처리하는 방식으로 chunk를 기준으로 트랜잭션이 관리된다.데이터를 Read(ItemReader) → Processing(ItemProcessor) → Write(ItemWriter) 단계를 기준으로 나누어 처리한다.주로 데이터 작업을 수행하는 경우 효과적이다.@Configurationclass ChunkBatchConfig( private val jobRepository: JobRepository, private val platformTransactionManager: PlatformTransactionManager, private val domainRepository: DomainRepository) { .. 2024. 11. 18.
HikariCP 데드락 이슈 HikariCP 데드락 이슈와 해결 방법JMeter로 스트레스 테스트를 진행하던 중 아래와 같은 에러가 발생했다.Connection is not available, request timed out after 30000ms.@Entitydata class Domain( @Id @GeneratedValue(strategy = GenerationType.AUTO) val id: Long? = null, val name: String? = null,)@Serviceclass DomainService( val repository: DomainRepository) { @Transactional fun save(domain: Domain): Domain { retur.. 2024. 11. 14.
Spring Batch Writer 성능 비교 Spring batch writer 의 구현체는 아래와 같은 종류들이 존재한다.Jdbc 및 JPA 는 mysql 8.0 을 기준으로 테스트 진행1.1. JdbcBatchItemWriterJDBC를 사용하여 관계형 데이터베이스에 데이터를 배치로 쓰는 Writer대량의 데이터를 효율적으로 삽입할 수 있으며, 트랜잭션 관리가 용이AUTO_INCREMENT 사용하지 않은 경우GenerationType.AUTO 을 사용하는 경우 Domain 과 쿼리가 같아 테스트 진행하지 않음 @Testfun testDomainJdbcBatchItemWriter() { // given val writer = JdbcBatchItemWriterBuilder() .dataSource(jdbcTemplat.. 2024. 11. 13.
Spring Boot 3.2 변경점 Logged Application Name 기본 로그 출력에 이제 spring.application.name 속성을 설정한 경우 애플리케이션 이름이 포함됩니다. 이전 형식을 선호하는 경우 logging.include-application-name을 false로 설정할 수 있습니다. Auto-configured User Details Service 자동 구성된 InMemoryUserDetailsManager는 이제 classpath에 spring-security-oauth2-client, spring-security-oauth2-resource-server, 또는 spring-security-saml2-service-provider 중 하나 이상이 있을 때 물러납니다. 마찬가지로, 리액티브 애플리케이션에서.. 2023. 11. 24.