본문 바로가기
반응형

Spring Batch32

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.
2. AWS Code Deploy로 배포 Jenkins에서 배치 Jenkins로 Spring Batch 배포하기 - Code Deploy 연동 3. Code Deploy 연동 3-1. 배포 설정 파일 추가 제일 먼저 member-batch 프로젝트 안에 code-deploy 디렉토리를 생성합니다. 그리고 아래 그림처럼 2개의 파일을 생성합니다. Code Deploy는 배포를 어떻게 진행할지를 appspec.yml로 결정합니다. 여기서 jar의 권한이나 실행시킬 스크립트 등을 지정할 수 있습니다. appspec.yml version: 0.0 os: linux files: - source: / destination: /home/jenkins/member-batch/deploy permissions: - object: / pattern: "**" owner: jenkins group: jenkins hooks: ApplicationStart: - l.. 2018. 7. 7.
1. AWS Code Deploy로 배포 Jenkins에서 배치 Jenkins로 Spring Batch 배포하기 - 기본 환경 구성 안녕하세요? 이번 시간엔 AWS Code Deploy로 배포 Jenkins에서 배치 Jenkins로 Spring Batch 배포하기를 진행해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. 0. 들어가며 여기서는 Gradle Multi Module로 구성된 프로젝트를 기준으로 합니다. Spring Batch 를 관리하는 방법은 크게 3가지가 있습니다. Linux의 crontab Spring Quartz Jenkins 보통 Linux의 crontab과 Spring Quartz를 많이들 사용하시는데요. Jenkins가 생각보다 Spring Batch 관리용으로 유용하고 효율적입니다. 현재 제가 속해있는 팀에서도 적극적으로 Jenkins를 Batch 관리로 .. 2018. 7. 7.
SpringBatch에서 ItemReader를 Mock객체로 교체하기 안녕하세요? 이번 시간엔 SpringBatch에서 ItemReader를 Mock객체로 교체하는 예제를 진행해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 발단 스프링 배치로 테스트 코드를 짜다보면 정말 하기 싫은것이 ItemReader로 읽어올 데이터를 만드는 것입니다. 특히나 실제 업무에서 쓰다보면 수많은 필수값들과 엔티티 관계들로 인해 만들어야할 데이터가 많을 경우 더 그렇습니다. 이렇게 테스트 환경 구축이 힘들때는 역시나! Mock을 활용하면 좋다고 생각했습니다. ItemReader를 어떻게 Mocking할지 고민하.. 2017. 10. 17.
Spring Batch Paging Reader시 주의사항 안녕하세요? 이번 시간엔 Spring Batch Paging 구현시 주의 사항을 공유드리려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 문제 상황수백만의 데이터에서 조건에 맞는 데이터를 추출하여 가공하는 Spring Batch를 구현해야했습니다. Chunk Size를 설정한 후 Spring Batch를 실행하였는데 몇몇 데이터가 누락되기도 하고, 중복되기도 하는 문제가 발생하였습니다. 금액에 관련된 문제이기에 급하게 원인을 분석하기 시작했습니다.총 갯수가 맞았습니다.4만개가 호출되어야 하는 상황이였는데 정확히 4만개가 추출되.. 2017. 7. 29.

728x90