dev/spring30 [Spring Batch] On K8S with Jenkins 개요배치 작업이 필요한 서비스에 대하여 Spring Batch를 사용하여 배치 프로그램을 자주 개발하는데 배치 작업 특성상 실행 주기가 짧거나 오랜 시간 동안 실행되며 자원을(Network, CPU) 많이 사용하는 경우가 많다. VM 서버를 사용하여 배치 작업을 구성하는 경우 배치를 실행하지 않는 경우에는 사용하지 않는 리소스를 낭비하게 되고, 동시에 많은 배치를 실행해야 하는 경우에는 리소스가 부족하여 배치를 실행하지 못하는 경우가 발생할 수 있다.K8S를 사용하면 위에 단점들을 극복할 수 있는데 Spring Batch를 K8S에서 사용하는 방법에 대하여 알아본다.Spring BatchKubernates JobsSpring Batch on Kubernates Spring Batch간단한 Spring .. 2024. 9. 12. [Spring Boot] Virtual Threads vs Reactive vs Kotlin Coroutines 성능 비교 개요Spring Boot의 Java 21의 Virtual Thread, Spring Reactive, Kotlin Coroutiones를 사용한 API 서버를 구현하고 각각의 프로젝트의 성능 테스트를 진행하여 성능을 비교한다. 테스트 방법Spring Reactive로 임의의 지연을(30ms) 추가한 API를 3번씩 호출하고, 3번의 호출결과를 모두 합하여 응답하는 API 서버를 Virtual Thread, Spring Reactive, Kotlin Coroutiones, Blocking 3개의 프로젝트로 만들어 성능 테스트한다. /delay/v1.0/api Virtual Thread(30ms 지연) Spring Reactive .. 2024. 9. 10. Spring Boot + vue, react 환경 구성 개요Spring Boot와 Front-end를(vue, react) 하나의 프로젝트로 구성하여 배포하는 방법에 대하여 알아본다. PrerequisitesNode.js 설치사용할 Node.js 버전에 맞게 설치해 준다.Node.js : https://nodejs.org/en Spring Boot 3.x 프로젝트 생성Spring Web Starter를 사용하여 프로젝트를 생성한다.build.gradle 파일plugins { id 'java' id 'org.springframework.boot' version '3.3.3' id 'io.spring.dependency-management' version '1.1.6'}group = 'org.igooo'version = '0.0.1-SNAPSHOT'java { .. 2024. 9. 5. [Spring] Data Commons Auditing MongoDB 개요Spring Data는 엔티티를 만든 사람이나 변경한 사람, 변경이 발생한 시점을 추적하기 위한 Auditing 기능을 제공한다. Spring Data의 Auditing 기능을 사용하면 Entity 변경 데이터에 대하여 별도의 코드를 작성하지 않아도 Spring Data에서 해당 데이터를 추가해 준다. Example게시글을 저장하는 간단한 web application을 작성하여 Auditing 기능을 살펴본다. EntitySpring Data에서는 @CreatedBy, @CreatedDate, @LastModifiedBy, @LastModifiedDate 어노테이션을 제공한다. 시간 Type은 사용하려는 타입에 맞춰서 변경 가능하다.@Document("artices")public class Artic.. 2024. 8. 26. [Spring Batch] - AbstractPagingItemReader 조심하기 개요Spring Batch 데이터 수집 중 보통은 ItemReader에서 데이터를 조작하는 작업을 하지 않지만 특수한 케이스에서 페이징 한 데이터를 기반으로 추가로 데이터를 수집해야 하는 경우(join이 불가능하거나...) AbstractPagingItemReader를 구현한 객체를 사용하는데 이때 주의해서 사용할 점에 대하여 정리한다. PagingItemReader 동작 방식AbstractPagingItemReader의 맴벼 변수(protected volaatitle List results)는 AbstractPagingItemReader의 doRead() 메서드에서 AbstractPagingItemReader를 상속하는 구현체의 doReadPage()의 호출 결과로 값이 정해진다. PagingItem.. 2024. 8. 21. [Spring Batch] 5.1.2 Features 개요기존에는 Spring Batch 4.x.x 버전으로 개발하다가 최근에 5.1.2 버전으로 변경하면서 Spring Batch 5.1What's New in Spring Batch 5.1Dependencies upgradeVirtual Threads supportMemory management improvement in the JpaltemWriterNew synchronized decorators for item readers and writersNew Cursor-based Mongoltem ReaderBulk inserts support in MongoltemWriterNew item reader and writer for RedisAutomatic configuration of JobRegist.. 2024. 8. 21. 이전 1 2 3 4 5 다음