작성
·
303
0
답변 2
1
네
파티셔닝 기능은 멀티 스레드 환경에서 사용코자 할 때 구성할 수 있습니다.
이 의미는 비단 스프링 배치 뿐 아니라 대용량 혹은 동시적 요청이 많이 발생할 경우 고려 할 수 있습니다.
물론 대용량의 기준이 상대적인 기준이긴 하지만 어떤 정해진 시간이나 정해진 성능의 기준안에 처리가 되어야 하는 데이터 양을 파악해서 단일 스레드로 충분히 처리가 가능하다면 굳이 복잡한 멀티스레드로 할 필요가 없을 것이며 단일스레드로 처리가 어렵다면 멀티스레드로 고려해 봐야 한다고 생각합니다.
보통 배치같은 경우는 실시간 적인 처리나 응답을 요하는 경우보다는 통계처리나 로그 분석같은 비 실시간 데이터 처리에 주로 사용된다고 가정한다면 멀티스레드로 구성하지 않아도 됩니다.
다만 시간적인 개념을 떠나서 단일스레드에 비해 멀티스레드가 더 효율적인 처리를 보장한다면 파티셔닝 같은 기능을 사용하는 것이 좋습니다.
실무에서 천단위나, 만단위는 그렇게 대용량이 아닐 것이고 최소 수십에서 수백만건 이상일 경우 멀티스레드를 고려해 보게 됩니다.
하지만 모든 것은 현 시스템의 상황과 환경을 충분히 검토해서 기술적 판단을 내려야 하기 때문에 단순히 데이터양으로만 결정하지는 않습니다.
어떤 면에서는 데이터양 뿐 아니라 배치의 처리를 각 스레드별로 할당해서 비동기 처리를 하기 위한 목적도 있습니다.
0