일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 스타트업
- spring
- react
- 멀티모듈
- springrestdocs
- batchframework
- API
- 스프링배치
- springboot
- 스프링
- batch
- 서브모듈
- 성장
- multimodule
- 프론트엔드
- 스프링부트
- Kotlin
- 회고
- submodule
- 백엔드
- 문서화
- batch framework
- springbootbatch
- 스프링부트배치
- Today
- Total
목록스프링부트배치 (3)
노트북을 열고.
1. Scope 그리고 스프링의 기본 Scope, Singleton 앞선 장에서 설명드리지 않았으나 무척이나 중요한 역할을 하던 컴포넌트가 있습니다. 바로 배치가 실행될 때 Spring Bean을 생성하는 시점을 명시하는 @JobScope와 @StepScope 입니다. @Bean @StepScope public ListItemReader unPaidMemberReader() { log.info("********** This is unPaidMemberReader"); List activeMembers = memberRepository.findByStatusEquals(MemberStatus.ACTIVE); log.info(" - activeMember SIZE : " + activeMembers.size..
1. 메타(Meta)테이블, 존재의 이유. 이전 장에서 우리는 배치를 실행시키기 위한 총 9개의 테이블을 생성하였습니다. 사실 아주 간편하게 코드로만 배치프로세서를 구현할 줄 알았지 Batch프로세스만을 위한 테이블을 무려 9개씩이나 만들어야 한다면, 마치 배보다 배꼽이 더 큰 것 마냥 느껴지기도 합니다. 이 9개의 테이블은 메타테이블이라고 불리웁니다. meta라는 어원('~에 관하여, About)에서 알 수 있 듯 이들은 우리가 구현한 BatchJob이 실행될 때마다 그 BatchJob에 관련한 모든 것를 꼼꼼하고 세세하게 기록됩니다. 정확히는, 우리가 구현한 'BatchJob을 실행시키기 위한 목적을 가진 테이블은 아닙니다'. 필요에 따라 이 테이블 없이도 스프링부트 배치프레임워크로 실행가능한 배치잡..
대략 10만 명의 회원을 거느리는 웹서비스를 운영한다고 가정했을 때 우린 매일마다 회원들의 상태변화를 감지하고 운용할 수 있어야 합니다. 가령 오늘까지 우리 서비스에 접속하지 않은지 1년 이상이 지난 회원의 상태는 휴면으로 전환시키고 휴면으로 전환된 회원은 다시 로그인했을 때 본인인증절차를 거치도록 하는 것이 서비스 보안에 좋겠죠. 또는 후불로 청구되는 유료서비스를 이용하고 과금액을 미납한지 한 달째 되는 회원에 대해서도 매일마다 집계하여 그에 맞는 추심을 한다거나 채권관리대상으로 지정하여 우리서비스의 수익구조를 안정적으로 보호해야 하는 경우도 있습니다. 만약 이러한 일들을 사람의 손을 반복적으로 거쳐야 한다면 매우 고단한 일이 될 것입니다. 무엇보다 우린 그럴 인력을 고용할 돈이 없습니다. 스프링부트 ..