Batch란?
원래는 그냥 Batch라고 하면 뒤에서 작동하는 프로세스 정도로 알고있었지만
실시간으로 응답하는 Http API 와 다르게 한번에 모아서 일괄 처리하는 방식!
이때까지 개발해왔던 나의 지식으로는 위의 말이 잘 이해되지 않았다,,,
우리가 일상생활에서 쉽게 접할 수 있는 예시로 이해해보도록 하자,,!
- 정산 시스템
배달기사님이 배달을 하고나서 금액을 정산 받는 경우를 생각해보자.
거리, 시간, 요구사항등등 금액에 영향을 끼치는 요인이 많을 것이다.
이 경우 데이터가 너무 많기 때문에 하루에 한번 혹은 일주일에 한번 주기로 한꺼번에 처리하는것이 효율적이다.
2. 약관 변경 메일
어플리케이션을 사용하다가 약관이 변경되는 경우는 사용자가 직접 UI와 상호작용해서 반응하는 이벤트가 아닌, 자동으로 생성되어야하는 이벤트이므로 Batch의 예시로 적합하다.
여기서 나는 의문점이 생겼다. 그냥 원래 방식인 Http API를 사용해서 실시간으로 처리해주면 안되나? 굳이 이렇게 까지 하는 이유가,,
→ 바로 리소스 최적화 를위해선 꼭 필요한 것 이었다.
당연히 리소스가 너무 많이 필요한 상황에서 이것을 실시간으로 처리하는 것은 PC자체에도 부담이 되고, 작업또한 오래걸리므로 사용자에게도 불편을 초래한다. 이렇게 대용량 데이터에 대해서는 Batch가 꼭 필요하다는 것을 알 수 있다.
※ 단점 : 실시간성이 없고, 잘못 동작할 경우 전체 사용자에게 큰 혼란이 일어난다
→ 효율적이고 꼭 쓰여하만 하는 방식이지만, 리스크 또한 크기 때문에 조심해서 써야한다.
다음글에서는 Spring 에서 위의 단점을 해결한 Batch 사용 시나리오를 얘기한다.
2024.03.05 - [Spring/Batch Programming] - Spring Batch
'Spring > Batch Programming' 카테고리의 다른 글
Spring Batch 실습(4) (0) | 2024.03.10 |
---|---|
Spring Batch 실습(3) (0) | 2024.03.09 |
Spring Batch 실습(2) (0) | 2024.03.06 |
Spring Batch 실습(1) (1) | 2024.03.06 |
Spring Batch (0) | 2024.03.05 |