안녕하세요!이번 포스트는 저번 포스트에 이어서 Spring Batch를 활용하여 정기 결제 프로세스를 개선하는 내용을 다루려고 합니다! 1. 왜 Spring Batch를 사용해야 했는가?Spring Batch(이하 '배치')는 대용량 데이터 처리에 최적화된 프레임워크입니다.로깅, 트랜잭션 관리, 작업 재시작, skip, 리소스 관리 등등 다양한 기능을 제공합니다.또한 배치에서 제공하는 스키마를 통해 Job과 Step에 대한 정보를 알 수 있습니다.그리고 Quartz와 결합하여 스케쥴링도 가능하며, AWS Lamda를 사용에서 스케쥴링 처리도 가능합니다. 저는 정기 결제 상품이 많을 경우, 배치의 청크(Chunk) 단위로 트랜잭션을 관리하는 것이 데이터 처리에 효율적일 것이라고 판단했습니다.청크 단위뿐만..
안녕하세요!이번 포스팅은 팀 프로젝트 당시 정기 결제를 구현하면서 적용한 Quartz 라이브러리에서 Spring Batch로 개선한 내용입니다!여기서는 구체적으로 어떤 프로세스로 구성을 했는지 보다 Spring Batch가 어떤 문제를 해결했는지를 중점적으로 말씀드리겠습니다. 앞선 히스토리를 공유하자면, 프로젝트 핵심 기능이었던 정기 결제 시스템을 구성해야 했습니다. 정해진 날짜에 정확히 결제가 이루어져야 하죠! 처음에는, Spring에 @Scheduled를 이용해 간단히 구현할 수 있을 것이라 예상했지만, 동적으로 스케줄을 변경하기 어렵고, 서버가 다운되면 스케줄 정보가 유실될 위험이 있었습니다.2024.08.08 - [Spring] - Spring Scheduled 정기 결제 구현과 동적 스케쥴링 한..
- Total
- Today
- Yesterday
- http메서드
- 알고리즘
- 백준
- StringBuilder
- N + 1
- 커넥션풀문제
- 네트워크
- SpringBatch
- AttributeConverter
- 벌크헤드
- 프로그래머스
- spring session
- 분산락
- 디자인패턴
- 정기결제
- 무상태성
- 싱글모듈
- 리트코드
- 대용량데이터
- java
- spring.
- 항해99
- Http 버전
- socket통신
- 외부API
- redisson
- jpa
- leetcode
- 세션
- fetch join
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |