인프런 커뮤니티 질문&답변

mj Song님의 프로필 이미지
mj Song

작성한 질문수

스프링 배치

Partitioning (2)

파티셔닝의 사용 케이스가 어떻게 될까요?

작성

·

303

0

안녕하세요 강사님!
강의 잘보고 있습니다!
 
파티셔닝에 대해 학습하게 되었고 장점도 잘 알겠는데
보통 실무에서 몇만건 정도 처리를 할때 파티셔닝을
적용해도 되겠다싶을까요?
 
상황마다 다르겠지만 대략적으로 궁금합니다

답변 2

1

정수원님의 프로필 이미지
정수원
지식공유자

파티셔닝 기능은 멀티 스레드 환경에서 사용코자 할 때 구성할 수 있습니다.

이 의미는 비단 스프링 배치 뿐 아니라 대용량 혹은 동시적 요청이 많이 발생할 경우 고려 할 수 있습니다.

물론 대용량의 기준이 상대적인 기준이긴 하지만 어떤 정해진 시간이나 정해진 성능의 기준안에 처리가 되어야 하는 데이터 양을 파악해서 단일 스레드로 충분히 처리가 가능하다면 굳이 복잡한 멀티스레드로 할 필요가 없을 것이며 단일스레드로 처리가 어렵다면 멀티스레드로 고려해 봐야 한다고 생각합니다.

보통 배치같은 경우는 실시간 적인 처리나 응답을 요하는 경우보다는 통계처리나 로그 분석같은 비 실시간 데이터 처리에 주로 사용된다고 가정한다면 멀티스레드로 구성하지 않아도 됩니다.

다만 시간적인 개념을 떠나서 단일스레드에 비해 멀티스레드가 더 효율적인 처리를 보장한다면 파티셔닝 같은 기능을 사용하는 것이 좋습니다.

실무에서 천단위나, 만단위는 그렇게 대용량이 아닐 것이고 최소 수십에서 수백만건 이상일 경우 멀티스레드를 고려해 보게 됩니다.

하지만 모든 것은 현 시스템의 상황과 환경을 충분히 검토해서 기술적 판단을 내려야 하기 때문에 단순히 데이터양으로만 결정하지는 않습니다.

어떤 면에서는 데이터양 뿐 아니라 배치의 처리를 각 스레드별로 할당해서 비동기 처리를 하기 위한 목적도 있습니다.

 

0

mj Song님의 프로필 이미지
mj Song
질문자

감사합니다 강사님

가장 궁금했던 내용의 핵심을 짚어주셨습니다.

mj Song님의 프로필 이미지
mj Song

작성한 질문수

질문하기