배치 사이즈가 1인 배치 처리와 스트리밍 처리는 같은가?
데이터 수집 및 처리는 현대의 정보 시스템에서 필수적인 요소이다. 이를 구현하는 두 가지 대표적인 방식은 배치 처리와 스트리밍 방식이다. 그런데 문득, '배치 사이즈가 1인 배치 데이터 수집 방식은 스트리밍 방식과 같은 건가?'라는 생각이 들었다. 딥러닝 쪽에서도 배치 사이즈가 1인 Mini-batch 방식은 Online learning과 같다고 하니까.. 둘은 동일한 개념일까? 아니면 중요한 차이가 존재할까? 이러한 의문에 답하기 위해 내용을 좀 더 찾아보았다.
배치 데이터 수집 방식이란?
배치 데이터 수집은 데이터를 일정한 크기로 묶어 한 번에 처리하는 방식이다. 일반적으로 배치 크기는 고정되어 있으며, 작업이 끝난 후 시스템은 다음 작업 요청까지 대기 상태가 된다. 만약 배치 사이즈가 1이라면, 매번 한 개의 데이터를 처리하고 종료하는 방식으로 운영된다.
배치 사이즈가 1인 경우
- 데이터를 한 번에 하나씩 처리하지만, 여전히 작업 간에는 독립성이 있다.
- 데이터를 처리한 후 해당 작업은 종료되며, 새로운 데이터가 수집되기를 기다린다.
- 처리 단위가 작아질 뿐, 여전히 배치 처리의 기본 원칙을 따른다.
스트리밍 데이터 수집 방식이란?
그럼 스트리밍 방식은 뭘까? 스트리밍 데이터 수집은 데이터를 실시간으로 처리하는 방식을 말한다. 데이터가 들어오면 지연 없이 즉시 처리되며, 시스템은 지속적으로 활성화 상태를 유지한다. 스트리밍 방식의 핵심은 데이터 흐름이 끊임없이 이어진다는 점이다.
스트리밍의 특징
- 데이터가 도착하는 즉시 처리하며, 작업 간의 명확한 경계가 없다.
- 시스템은 항상 실행 상태를 유지하며, 데이터 흐름이 멈추지 않는 한 계속 동작한다.
- 시간이 지남에 따라 처리해야 할 데이터의 총량이 누적된다.
배치 사이즈가 1인 배치 방식과 스트리밍 방식의 주요 차이
위에서 살펴본 것처럼, 데이터 처리 시스템에서 배치 방식과 스트리밍 방식은 각기 다른 특성과 작동 원리를 가진다. 두 방식은 데이터 처리의 연속성, 시스템 상태, 데이터 총량 증가의 특성, 그리고 시스템 부하 관리에서 차이를 보인다.
데이터 처리의 연속성
배치 방식은 데이터를 일정한 작업 단위로 처리하며, 각 작업은 독립적으로 실행된다. 즉, 작업 단위마다 시작과 종료가 명확히 구분된다. 배치 사이즈가 1이라고 해도, 여전히 각 데이터를 처리한 후 작업이 종료되고 다음 작업이 준비되는 구조를 가진다. 작업 간에는 대기 시간이 존재하므로 데이터 처리의 연속성이 유지되지 않는다. 예를 들어, 하루 동안의 로그 데이터를 모아 밤 12시에 처리한 후 작업이 끝난다면, 다음 처리는 다음날 밤 12시에 시작된다.
반면 스트리밍 방식은 데이터 흐름이 멈추지 않고, 시스템이 지속적으로 데이터를 처리한다. 데이터가 도착하는 즉시 처리되며, 작업의 시작과 종료라는 개념이 없다. 이는 데이터가 끊임없이 들어오는 환경에서 실시간 처리가 이루어지도록 설계되었기 때문이다. 처리 과정이 연속적이고 중단이 없다는 점이 특징이다. 예를 들어, SNS의 실시간 메시지 스트림을 처리하는 시스템은 사용자 메시지가 도착할 때마다 이를 즉각 처리한다.
시스템 상태
배치 방식에서는 작업이 끝나면 시스템은 다음 작업이 시작될 때까지 대기 상태로 전환된다. 이 유휴 상태 동안 시스템은 자원을 소모하지 않고 대기하므로, 자원 활용이 효율적일 수 있다. 작업 단위 간 대기 시간이 길어질수록 시스템은 더 오랜 시간 동안 비활성 상태로 머무른다. 예를 들어, 배치 작업이 하루에 한 번 실행되는 경우, 시스템은 대부분의 시간 동안 대기 상태에 있다가 작업 시간에만 집중적으로 자원을 사용한다.
반면 스트리밍 방식에서는 시스템이 항상 활성 상태를 유지하며, 새로운 데이터가 들어오면 즉각적으로 반응한다. 이는 시스템이 항상 준비 상태에 있어야 하고, 데이터의 흐름이 멈추지 않는다는 것을 전제로 한다. 이로 인해 시스템은 지속적으로 자원을 사용하며, 비활성 상태로 전환되지 않는다. 예를 들어, 실시간 주식 거래 시스템은 데이터가 도착하면 지체 없이 처리하며, 거래량이 없더라도 시스템은 대기 상태에서 실행을 계속한다.
데이터 총량의 증가
배치 방식에서는 한 번의 작업 단위에서 처리할 데이터의 양이 고정적이다. 작업이 완료되면 처리된 데이터는 시스템의 범위를 벗어나며, 새로운 데이터는 다음 작업 단위에서 처리된다. 이전 작업과 다음 작업이 독립적이기 때문에, 처리해야 할 데이터의 총량이 작업 단위마다 새로 초기화된다고 볼 수 있다. 예를 들어, 배치 작업이 하루 동안 수집된 데이터를 처리한다고 가정하면, 매일 1GB씩 데이터를 처리하고 나면 그날의 작업은 종료되며, 이전 데이터는 아카이브로 이동한다.
반면 스트리밍 방식에서는 데이터 스트림이 끊임없이 이어진다. 새로운 데이터가 들어오면 기존 데이터와 함께 처리되어야 하며, 데이터가 멈추지 않는 한 시스템이 처리한 데이터의 총량은 시간에 따라 계속 증가한다. 이 특성은 스트리밍 방식의 연속성과 실시간 처리 철학에서 비롯된다. 예를 들어, 실시간 동영상 스트리밍 시스템은 매 순간 새로운 프레임 데이터를 처리하며, 처리된 프레임 수는 시간이 지남에 따라 누적된다.
시스템 부하
배치 방식은 작업 단위마다 부하가 집중적으로 발생한다. 데이터가 한꺼번에 처리되기 때문에 작업 시간 동안에는 CPU, 메모리, 디스크 등의 자원이 많이 사용될 수 있다. 그러나 작업이 끝나면 시스템은 유휴 상태로 전환되어 부하가 사라진다. 이러한 특성 때문에 배치 방식은 작업 시간에 부하가 집중되고, 작업 간에는 자원을 절약할 수 있는 구조를 가진다. 예를 들어, 로그 데이터를 배치 처리하는 경우, 작업 시간 동안에는 대량의 데이터를 처리하기 위해 CPU와 메모리가 고도로 활용되지만, 작업 외 시간에는 자원 사용이 거의 없다.
반면 스트리밍 방식에서는 부하가 지속적으로 발생한다. 데이터가 실시간으로 처리되기 때문에 시스템은 항상 일정 수준의 자원을 사용한다. 데이터 스트림의 양이 증가하면 부하가 점차 커지며, 이를 처리하기 위해 시스템 확장(스케일링)이 필요할 수 있다. 특히, 데이터가 갑작스럽게 폭증하는 경우에는 시스템에 과부하가 걸릴 위험이 있다. 예를 들어, SNS 메시지를 처리하는 스트리밍 시스템은 평소에는 적당한 부하를 유지하지만, 특정 이벤트가 발생해 데이터 스트림이 급증하면 부하가 크게 증가할 수 있다.
결론: 배치 사이즈가 1이면 스트리밍과 동일한가?
표면적으로 배치 사이즈가 1인 배치 방식은 스트리밍 방식과 유사하게 보인다. 하지만 두 방식은 처리 철학과 시스템 작동 방식에서 분명히 다르다는 것을 알게 되었다. 배치 방식은 데이터를 일정한 작업 단위로 처리하며, 각 작업이 명확히 분리된다. 반면, 스트리밍 방식은 데이터 흐름을 실시간으로 연속 처리하며, 작업 간 경계가 없다. 즉, 두 방식은 겉보기와 달리 본질적으로 다르다! 의문점 해결!
'개인공부&프로젝트' 카테고리의 다른 글
클라우드 기반 GPU 컴퓨팅 플랫폼, 런팟(RunPod) 사용법 (1) | 2024.12.31 |
---|---|
NLP 이해와 런팟 설치 (0) | 2024.12.31 |
OSError: [Errno 28] No space left on device 해결 (2) | 2024.12.05 |
Temporal Cycle Consistency Loss 구현체 최적화 (1) | 2024.11.23 |
테크포임팩트: B-Peach Lab을 시작하며 (5) | 2024.10.12 |
댓글