spring batch는 여러 회사가 제각기 만들던 batch framework을 통합시켰을만큼 잘 만들어진 batch framework이다. 많은 사람들이 사용을 하고 또 표준이 되었다는건 그만큼 강력한 기능과 누구나 쉽게 다룰수 있는 편의성 때문일것이다. 이런 spring batch를 사용하기 위해 어떤 일들을 해야 하는지 알아보자. 참고로 jdk11, spring batch 버전은 4.0.1.RELEASE을 사용을 했다. pom.xml org.springframework.batch spring-batch-core ${org.springframework.batch.version} org.springframework.batch spring-batch-infrastructure ${org.springfr..
전에 spring 프로젝트를 springboot 프로젝트로 migration 하는 과정을 기술한 적이 있다. 마찬가지로 현재 Spring Batch로 구성된 batch 프로젝트를 springboot batch로 전환을 하려고 한다. 두 프로젝트 모두 maven 기반의 프로젝트이고 전반적인 구성에 대한 소개보다는 migration point 에 대해서만 집중적으로 기술하도록 하겠다. 프로젝트 feature 전의 web 프로젝트와 동일하게 parent 프로젝트가 존재하고 module로 web, batch, common 등의 프로젝트가 child로 존재를 하는 상황이다. 또한 jdk 11, spring version은 4.3.12, spring batch version은 4.0.1, springboot의 ve..
spring에서 transaction propagation 은 전파옵션을 뜻한다. 전파옵션이라는 것은 트랜잭션을 시작하거나 기존 트랜잭션에 참여하는 방법에 대해 결정하는 속성값 정도로 생각하면 된다. 즉 큰 트랜잭션의 흐름을 컨트롤 하는 옵션이라는 것이다. Transaction Propagation의 종류는 다음과 같다. · REQUIRED (default) : 이미 시작된 트랜잭션이 있으면 참여하고 없으면 새로 시작한다. · REQUIRES_NEW : 항상 새로운 트랜잭션을 시작한다. 이미 진행 중인 트랜잭션이 있으면 트랜잭션을 잠시 보류시킨다. · SUPPORTS : 이미 시작된 트랜잭션이 있으면 참여하고, 없으면 트랜잭션없이 진행한다. · NESTED : 중첩된 트랜잭션은 먼저 시작된 부모 트랜잭션..
수많은 삽집을 해가며 결국에는 전환에 성공을 했다. 아주 초간단으로 최소한의 것들만 바꾸고 전환한거라 앞으로 할일(applicationContext의 java config 전환, spring properties 활용 등)도 많지만 그래도 기쁜 마음으로 빌드 및 실행을 해본다. 물론 실행은 전환을 하는 과정에 수도 없이 해봤다. 이클립스의 boot dashboard를 통해서 돌렸을때는 잘 동작을 한다. 주르르륵 올라가는 로그를 보면 참 뿌듯하다. 사실은 별로 많이 바꾼게 없는데 springboot가 알아서 바꿔준 부분도 많은데 혼자서 이것저것 다 만들어보고 고생해서 한거라 더 감격스러웠다. 이제 마지막 단계가 남았다. 이걸 서버에서 돌리기 위해 war로 말아줘야 하고 또 그걸 실행을 시켜야 한다. 기존의 ..
2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (2) - web.xml 2020/05/14 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (3) - 파일 추가 및 변경 중요한 전환은 이제 다 마쳤고 이제 springboot에서 logback을 사용하는 방법에 대해 알아보자. AS-IS framework에서도 logging framework는 logback을 ..
2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (2) - web.xml 앞서 springboot 전환을 하는데 있어서 필요한 pom.xml 변경, web.xml 변경에 대해서 살펴봤다. 이번 챕터는 springboot 전환에 따라 어떤 파일이 추가 및 변경이 되어야 하는지에 대한 기술을 하겠다. 일단 가장 먼저 다뤄야할 부분은 앞서도 나왔지만 springboot 메인 클래스를 만들어야 한다. Application.java @SpringB..
2020/05/13 - [framework/Springboot] - spring 프로젝트에서 springboot 프로젝트로 migration 하기 (1) - pom.xml 위의 글에서 springboot 전환의 첫 걸음인 pom.xml 전환을 해 보았다. 그다음은 web.xml 파일을 제거하는 것이다. 추세가 xml config에서 java config로 전환중인데 이런 web.xml 도 java config로 전환을 할 수 있다. (개인적으로는 익숙해서 그런지 xml config가 더 가독성이 좋은것 같다..) AS-IS 프로젝트의 web.xml 은 이런 모습이었다. ABC System logbackConfigLocation classpath:logback/logback.xml contextConfig..
요즘? MSA가 많은 IT 선도기업들 사이에서 사용이 되면서 보수적인 IT 회사들도 그 장점에 혹해서 기존의 Monolithic Architecture에서 탈피하고 싶어하는 움직임을 보이고 있다. 스프링 개발팀은 이렇게 추세가 변할것을 예상하고 Monolithic Architecture에서 Micro Service Architecture로 전환을 용이하게 할 수 있도록 springboot와 spring cloud 프로젝트를 시작했고 현재 이것들은 MSA를 하기 위해서는 필수적인 요소가 되었다. springboot는 spring과 다른것이 아닌 spring을 경량화한 마이크로서비스 프레임워크라고 보면 된다. 기업에서는 변화를 바라지만 또 변화를 바라지 않는다. 이게 무슨 X소리인가 싶겠지만 그렇다.. 즉 ..