본문 바로가기

스프링 배치18

5. Spring Batch 가이드 - Spring Batch Scope & Job Parameter 이번 시간에는 Spring Batch의 Scope에 대해서 배워보겠습니다. 여기서 말하는 Scope란 @StepScope, @JobScope를 얘기합니다. 무의식적으로 사용하는 이 어노테이션들이 실제로 어떤 일들을 하는지 알아보겠습니다. 그리고 이 둘과 떨어질 수 없는 Job Parameter도 함께 배워보겠습니다. 5-1. JobParameter와 Scope Spring Batch의 경우 외부 혹은 내부에서 파라미터를 받아 여러 Batch 컴포넌트에서 사용할 수 있게 지원하고 있습니다. 이 파라미터를 Job Parameter라고 합니다. Job Parameter를 사용하기 위해선 항상 Spring Batch 전용 Scope를 선언해야만 하는데요. 크게 @StepScope와 @JobScope 2가지가 있.. 2018. 8. 17.
4. Spring Batch 가이드 - Spring Batch Job Flow 자 이번 시간부터 본격적으로 실전에서 사용할 수 있는 Spring Batch 내용들을 배워보겠습니다. 작업한 모든 코드는 Github에 있으니 참고하시면 됩니다. 앞서 Spring Batch의 Job을 구성하는데는 Step이 있다고 말씀드렸습니다. Step은 실제 Batch 작업을 수행하는 역할을 합니다. 이전에 작성한 코드를 보시면 Job은 코드가 거의 없죠? 실제로 Batch 비지니스 로직을 처리하는 (ex: log.info()) 기능은 Step에 구현되어 있습니다. 이처럼 Step에서는 Batch로 실제 처리하고자 하는 기능과 설정을 모두 포함하는 장소라고 생각하시면 됩니다. Batch 처리 내용을 담다보니, Job 내부의 Step들간에 순서 혹은 처리 흐름을 제어할 필요가 있는데요. 이번엔 여러 .. 2018. 8. 12.
3. Spring Batch 가이드 - 메타테이블엿보기 이번 시간에는 Spring Batch의 메타 테이블에 대해 좀 더 자세히 살펴보겠습니다. 작업한 모든 코드는 Github에 있으니 참고하시면 됩니다. 지난 시간에 Spring Batch의 메타 테이블을 살짝 보여드렸는데요.이 메타 테이블들의 역할이 무엇인지, 어떤 것들을 담고 있는지 실습을 통해 하나씩 소개드리겠습니다. 3-1. BATCH_JOB_INSTANCE 먼저 볼 것은 BATCH_JOB_INSTANCE 입니다. 로컬 MySQL에서 조회를 해보면 아래와 같이 1개의 ROW가 검색이 됩니다. JOB_INSTANCE_ID BATCH_JOB_INSTANCE 테이블의 PK JOB_NAME 수행한 Batch Job Name 방금 실행했던 simpleJob이 있는 것을 볼 수 있습니다. BATCH_JOB_IN.. 2018. 8. 5.
2. Spring Batch 가이드 - Batch Job 실행해보기 이번 시간에는 간단한 Spring Batch Job을 생성 & 실행하면서 전반적인 내용을 공부해보겠습니다. 작업한 모든 코드는 Github에 있으니 참고하시면 됩니다. 2-1. Spring Batch 프로젝트 생성하기 기본적인 프로젝트 개발 환경은 다음과 같습니다. IntelliJ IDEA 2018.2 Spring Boot 2.0.4 Java 8 Gradle lombok 기능을 많이 사용합니다. lombok 플러그인을 본인의 IDE에 맞게 설치하시면 좋습니다 :) Intellij IDEA, Eclipse 이를 기반으로 프로젝트 생성을 시작하겠습니다. 저는 IntelliJ Ultimate (유료) 버전에서 실행하지만, Eclipse도 화면 구성이 크게 다르진 않을것 같습니다. 먼저 Spring Boot 프.. 2018. 8. 5.
1. Spring Batch 가이드 - 배치 어플리케이션이란? Spring Batch In Action이 2011년 이후 개정판이 나오지도 않고 (2019.03 기준), 한글 번역판도 없고, 국내 Spring Batch 글 대부분이 튜토리얼이거나 공식 문서 중 일부분을 짧게 번역한 내용들이라 대용량 시스템에서 사용할때 정말 많은 삽질을 했습니다. Spring Boot가 활성화되면서 Spring Batch도 이전에 비해 훨씬 사용하기 편해졌지만 제대로 정리된 곳 찾기가 쉽지 않았습니다. 예전에 정상혁님께서 정리해주신 Spring Batch 시리즈가 있었는데, 찾기가 쉽지 않네요 ㅠ특히나 커머스 사이트에선 웹 어플리케이션만큼 배치 어플리케이션 작성하는 경우가 많습니다. 저 뿐만 아니라, 주변에서, 팀에서 Spring Batch 를 시작할때 마땅히 가이드라고 전달해드릴만.. 2018. 7. 31.
3. AWS Code Deploy로 배포 Jenkins에서 배치 Jenkins로 Spring Batch 배포하기 - 젠킨스 연동 4. 배포 Jenkins 환경 설정 여기서는 Batch가 아닌 배포 Jenkins 페이지로 이동합니다. 배포 Jenkins에서 Github에 올라간 코드를 가져오려면 Github과 연동이 필요합니다. Jenkins와 Github 연동은 이전에 작성된 포스팅를 참고해서 진행하시는것을 추천드립니다. 연동이 되셨으면 배포 Job을 생성하겠습니다.매개변수 (파라미터)에는 Choice Parameter를 선택합니다. 여기서는 member-batch 모듈만 있어서 member-batch 만 등록했지만, member-api, member-admin 등 여러 모듈이 있다면 다 등록하시면 됩니다. 소스코드 관리에서는 배포할 프로젝트의 Github 주소를 등록합니다.배포 스크립트 내용은 좀 길어서 아래 코드를 그대로 복사.. 2018. 7. 7.