본문 바로가기

programming/용어정리

[용어 정리] 일괄 처리 VS 실시간 처리

어떠한 사건이 발생해야 할 시점이 있다면 언제가 좋을까?

 

길을 걷다가 막연히 무언가가 하고 싶을 때가 있다면 이런 사건들은 프로그래밍으로 개발할 수는 없을 것이다.

그러나 늘상 해오던 일들이 있을 것이다.

 

일주일에 한번 우편함을 확인해야 하는 것, 한 달에 한번 고지서를 납부해야 하는 것 등 반드시 이뤄져야 하며 기한 역시 존재한다. 반면에 친구의 생일파티나 동생이 새 식구를 얻게 되는 경우, 우리의 행동은 그에 맞춰 반응하게 된다.

 

오늘은 프로그래밍에서 어떠한 기능, 또는 사건을 시작하는 시점을 기준으로 몇가지 구분을 들고자 한다.

 

 


1. 일괄 처리 프로그래밍

  - 당장 필요하지 않은 처리, 정해진 시각에 알아서 되길 원하는 처리

 

흔히들 배치 처리라고 이야기 한다.

해당 프로그램의 로직은 정해진 시각에 맞춰 알아서 돌기 시작한다.

물론 그러한 처리를 직접 구현해야겠지만 말이다.

 

유사한 형태로 구현된 시스템 로직은 폴링이 있다.

폴링(Polling)은 간단하게 말하자면 주기적으로 해당 리소스를 확인하여 충돌 같은 문제를 회피하기 위해 고안된 하나의 대기 방법이다. 해당 정보를 자세하게 알고 싶다면 '운영체제'가 들어간 도서를 찾아보길 권한다.

 

키워드는 일정 주기이다.

전력이라는 에너지를 끊임없이 공급받는 가운데 컴퓨터는 짧은 시간 주기를 가지고 동일한 로직을 끊임없이 처리한다.

 

마찬가지로 배치 프로그램은 주기를 기준으로 한다.

따라서 사용자의 액션이 배치 프로그램의 시작을 주도하지는 않는다.

 

은행에 가서 자동이체를 하나 등록한다고 하자.

자동 이체 일자가 오기까지 은행은 가만히 있다가 당일이 되면 이체가 되도록 전 직원이 '클릭'을 할까?

고객이 자동이체 일자를 설정하고 클릭한 순간, 매일 돌고 있던 배치 프로그램이 오늘이 설정한 이체 일자가 맞는지 확인한다. 그리고 이체일자가 맞다면 프로그램이 알아서 실행할 것이다.

 

주기라는 점을 시간에 두었을 경우 위에 서술한 바와 유사한 프로그래밍이 가능하다.

주기를 다른 곳에 두고(본 뜻에 반하는) 개발을 할 수도 있지만 이를 서술하지는 않겠다.

 

 


2. 실시간 / 온라인 / 대화형 처리 프로그래밍

  - 당장, 즉시, 바로 처리되는 것들

 

실시간 처리(Real-Time process)라 함은 그 발동 시점이 즉시, 바로 처리되는 형태가 맞다.

그러나 그것이 모두 인터넷이나 네트워크를 활용한다는 것은 아니다.

 

실시간이라 하면 온라인 처리를 많이 떠올리고는 한다.

정확히는 온라인과는 조금 다르다.

온라인 처리(Online-process)라 하면 인터넷 등을 활용한 네트워크를 활용한 처리를 의미한다.

네트워킹이 있으니 당연히 즉시 처리되지 않겠나 싶겠지만 실시간 처리와는 조금 다르다.

 

많은 책들이나 교재에서는 두 가지가 같다고 말한다.

물론 책들이 말하는 내용이 맞겠지만, 여기에 괜히 꼬투리를 달아보자면 우리가 주목해야 할 부분은 명칭에 있다.

 

음성 인식 모듈을 장착한 HMD VR 장비가 있다고 하자.

사용자의 말을 즉시 인식하여 화면을 구성한다고 하자.

이는 즉시 처리함으로 실시간 처리는 맞으나 네트워킹이 없으므로 온라인 처리는 아니다.

 

그러면 대화형 처리는 무엇을 말하는 것일까?

이는 어떠한 입력에 따른 대답(출력)을 기대할 수 있는 처리 방식을 의미한다.

TCP/IP 네트워킹이나 소켓 프로그래밍에서는 요청에 따른 대응을 확인한다. 당연한 말이겠지만 모든 외부 통신에 100% 보장되는 송수신이란 있을 수가 없다. 당장 컴퓨터를 창조한 인간들조차 자기들 간에 100%로 의사소통을 하는 인간은 없다.

어떠한 행동을 기입하면 오류가 나지 않는 이상 예측 가능한 기능을 보이는 것이 대화형이라 볼 수 있다.

 

대게 온라인이면 실시간 처리이고 대화형 처리를 하고 있으므로 셋 다 같다고 하는 주장도 있으나 굳이 꼬투리를 잡자면 명칭으로 보나 상황으로 보나 엄연히 다른 말이라고 생각한다.

 

 


 

일괄 처리와 실시간 처리가 모두 사용되고 있으며, 처리 방식에 따라 배치, 데몬, 웹, 시스템, IDE 등 다양한 방법으로 개발이 가능함을 기억해야 할 것이다.

반응형