본문 바로가기

algorithm

[현실] piggyback을 할지 말지?

피기백이란 다른 누군가를 등 뒤에 업고 같이 움직이는 것을 말한다.

 

이런 것..

물류나 IT에서도 차용되어 종종 사용된다.

내가 이 용어를 들었던 것은 네트워크 수업에서 흐름제어 방식 중 하나였다.

프로토콜 계층에서 수신측에서 수신된 데이터에 대한 확인 응답(ACK)를 즉시 보내는 대신, 전송할 데이터가 있는 경우에 그 데이터 프레임 안에 확인 필드를 덧붙여 전송하는 오류제어 및 흐름제어 방식으로 배웠다. (그외 stop-and wait, 슬라이딩 윈도우 방식 등이 있다.)

  • 송신제어방식: 정지대기 방식(stop and wait)
  • 전송률 기반 흐름제어: rate-based
  • 윈도우 기반 흐름제어: window-based ->  sliding window

 

하지만 이 방법에도 장점이 있으면 단점도 있을 수 있기에 상황에 맞는 적용방법이 필요하다.

실제 사례

어제 주문한 로켓배송이 분리 배송이 되었다.

단순히 비용면에서는 한꺼번에 배송을 하는 것박스 절약 및 배송 시간 절약을 할 수 있지 않느냐고 생각할 수 있겠다.

하지만, 현실적으로는 그런 결과를 만드는 것이 쉽지 않다. 왜냐하면 애초에 각 아이템이 보관되어 있던 물류창고의 위치가 물리적으로 떨어져 있을 수도 있고, 심지어 같은 물리 창고에 있다 하더라도 집하 처리가 불가능한 경우가 생길 가능성이 현실 세계에서는 존재하기 때문이다.

리시버(receiver)의 입장에서는?

결국 배송이 분리되어 받아서 1차 목적지인 경비실에 전달을 받았다.

받는 곳을 회사로 보냈는데, 일하고 있는 5층에서 경비실까지 내려갔다 오려면 적어도 5분 이상이 걸린다.

코로나19로 출입구가 분리되면서 회사 건물을 빙 돌아서 로비까지 돌아서 가야하기도 하고 엘리베이터가 몰릴 최악의 경우까지 생각해서 길게 잡을 경우 10분이 걸릴 수 있다.

 

만약 이미 배송이 된 맥세이프 충전기가 당장에 필요하다면 5~10분이 걸려서라도 받아오는 것이 현명할 수 있다.

왜냐하면 오리온 닥터유 바는 이미 금일 먹을 분량을 이미 가지고 있어서 천천히 받아도 되기 때문이다.

 

이와 같이 1차적인 배송 뿐만 아니라 2차적인 수취인의 입장에서도 몰아서 받으러 가느냐, 하나라도 eager하게 받느냐는 상황에 맞춰서 결정할 문제가 될 수 있다.