2000년대 후반 국내(Seoul) 굴지의 기업과 프로젝트를 진행 중, 공장 책임 임원에게 질문을 던진 바 있었다. “가장 힘든 것이 무엇입니까?” 그가 1초의 망설임도 없이 바로 직답한 것이 “자재수배, 자재수배가 가장 어렵습니다“였다. 그는 공장전체를 책임지는 임원이었다. 그의 뜻 밖의 대답은 내게 많은 생각을 하게 한 바 있었다.
이 글은 불확실성과 싸우는 모든 사람들을 위한 이야기입니다. [베이지안 추론 엔진]을 활용해 공급망의 불확실성을 관리하는 구매팀장의 사례를 다룬 비즈니스 서사입니다. 주인공은 베이지안 인공지능 시스템이 제시한 납기 지연 확률과 재앙 레짐 신호를 바탕으로 공급사의 행동 패턴을 정교하게 분석합니다. 단순히 납촉을 독촉하는 방식에서 벗어나, 데이터 공유를 통해 버퍼관리를 연계하여 공급사와 리스크를 분담하는 협력적 관계로 나아가는 과정을 보여줍니다. 이를 통해 불확실성을 완전히 제거하기보다 확률적으로 계량화하고 선제적으로 대응하는 현대적 구매 전략의 중요성을 강조합니다. 최종적으로 데이터 기반의 확률적 사고가 어떻게 기업의 안정성과 수익을 보호하는 실질적인 실무 능력으로 이어지는지 설명하고 있습니다. 결과적으로 불확실성을 관리가능한 범위로 끌여들여 불확실성과의 게임에서 어떻게 승리할 수 있는지 보여주고 있습니다.
새벽 6시의 배치(Batch)와 자재 데드라인
프롤로그: 세 번째 경고
화요일 오전 7시. 구매팀 사무실은 아직 조용했다.
구매팀장은 코트를 벗기도 전에 모니터 앞에 앉았다. 밤새 돌아간 ‘Exa 지능형 추론 엔진’의 배치 결과를 확인하는 것이 그의 첫 루틴이었다. 커피는 그 다음이었다.
화면을 켜자 상단에 붉은 경고가 떠 있었다.
PO#2024-0847 | 정밀 센서 모듈 1,200EA | 정시 입고 확률: 57%
그는 마우스를 쥔 손에 힘을 주었다. 57%. 이번이 세 번째였다.
지난 6개월 동안, 그가 담당한 주요 프로젝트 중 두 건이 자재 지연으로 위기를 맞았다. 첫 번째는 공급사 파산으로 대체 소싱에 성공했고, 두 번째는 통관 지연을 물류팀과 협력하여 간신히 만회했다. 두 번 모두 결과적으로는 성공이었지만, 과정은 혼란스러웠고 회사는 불필요한 비용을 지불했다.
그리고 이번이 세 번째다.
사실 그는 알고 있었다. 회사가 그를 보는 시선이 조금씩 달라지고 있다는 것을. “능력은 있는데, 안정성이 떨어진다”는 다시말해 리스크 관리가 불안하다는 평가. 승진 대상자 명단에서 그의 이름이 빠진 것도 우연은 아니었다.
이번 건은 달라야 했다. 깔끔하게, 조용하게, 문제없이 끝내야 했다.
1. 회의실의 숫자들
월요일 오전 10시
생산계획 회의가 끝나자 팀장은 노트북을 천천히 닫았다. 회의실을 나가는 사람들의 발걸음 소리가 복도로 사라졌지만, 그는 자리에 남았다.
영업 부장이 테이블에 기댄 채 말했다.
“이 클라이언트, 이번엔 까다로운 정도가 아닙니다. 그쪽도 사정이 있나봅니다. 납기일 하루만 밀려도 페널티 조항 발동이에요. 구매팀장, 알죠? 그쪽 담당자가 그러더군요. ‘이번에 실수하면 벤더 리스트에서 위험해 질것이라고.”
구매팀장은 짧게 고개를 끄덕였다. “인지 하고 있습니다.”
생산팀장이 화이트보드에 숫자를 적으며 덧붙였다.
“내부 생산 리드타임 쮜어짜서 1차 생산을 20일로 재편성했어요. 검수, 키팅, 세팅까지 감안하면 이틀의 여유는 있어야 합니다. 정밀 센서모듈은 라인의 첫 단계에 투입되는 부품이거든요. 이게 늦으면 전체가 밀립니다. 다른 오더들까지 문제가 심각해질 겁니다.”
그는 화이트보드 앞으로 걸어가 계산을 써 내려갔다.
고객 납기일: 5월 30일
”4월 21일. 이틀의 버퍼. 충분하지 않지만, 최소한의 안전장치다.’
수입품
문제는 이 정밀 센서 모듈이 수입품목이라는 점이었다.
그의 머릿속에 공급사 담당자 마르쿠스의 얼굴이 떠올랐다. 3년 전 처음 거래를 시작한 이후, 대부분의 거래는 순조로웠다. 마르쿠스는 성실했고, 제품 품질은 우수했다.
하지만 가끔, 아주 가끔, 문제가 생기면 마르쿠스는 침묵했다.
8월에도 그랬다. 원자재 수급 이슈로 9일이 지연되었을 때도 그는 납기일 3일 전에야 이메일 한 통을 툭 던졌다. 그때의 굴욕감이 그의 뇌리를 스쳤다. 그 당시 원자재 수급 문제로 생산이 일주일 늦어졌었고 그를 포함한 관련부서는 급하게 대체 일정을 짜느라 이틀 밤을 꼬박 새웠다. 결과적으로는 입고에 성공했지만, 그 과정에서 생긴 추가 비용과 혼란은 구매팀의 평가에 그대로 반영되었다.
그는 손바닥으로 얼굴을 문질렀다. ‘이번엔 달라야 한다. 마르쿠스가 침묵하기 전에, 문제가 커지기 전에 대응해야 한다. 내가 먼저 움직여야 한다.’
2. On Time Risk 0.57: 베이지안의 경고
그는 사무실로 돌아와 모니터 앞에 앉았다.
화면에 떠 있는 57%라는 숫자를 다시 응시했다. 이 숫자는 단순한 숫자가 아니었다. 그것은 지난 3년간 마르쿠스와의 모든 거래 기록으로부터 공급사의 ‘실력’과 ‘패턴’을 베이지안 엔진이 냉정하게 분석해 낸 결과값이다.
시스템은 공급사의 ‘습성’을 읽어낸다. 정시에 납품하는 패턴, 지연이 발생할 때의 패턴. 그리고 무엇보다 중요한 것은, 지연이 발생할 때 얼마나, 얼마나 자주 지연되는가였다.
그는 마우스를 클릭하여 상세 분석 화면으로 들어갔다.
엔진이 본 마르쿠스의 두 얼굴
지연 벡터 : 습성의 기록
공급사의 납기 기록은 공급사의 작업방식, 작업자의 행동양식, 조직의 능률과 비능률, 관리자의 관리철학, 회사의 경영방식 등 공급 회사의 모든 것이 반영된 복잡계로부터의 결과이다.
이 상황을 분석하기 위해 베이지안 엔진은 혼합분포(Mixture Distribution)와 MCMC 깁스샘플링(Gibbs Sampling) 방식을 적용한다. 공급망은 선형적이지 않기 때문이다. 구체적인 수학적 모델링은 별도의 부록 시리즈에서 다루기로 하고, 여기서는 핵심 로직만 짚는다.
베이지안 엔진은 마르쿠스와의 지난 3년간 거래 데이터를 지연 일수 벡터 로 변환한다.
$$d_i = (\text{실제 입고일}) – (\text{약속된 ETA})$$
이면 약속을 지킨 것이다. 이면 계획보다 5일 늦은 것이다.
그리고 공급 실적 데이터는 선적일을 갖고 있다. 운송 기간을 제외 실제 작업일수를 계산한다.
$$d_j = (\text{실제 선적일}) – (\text{PO 발행일})$$
, 이 벡터들은 단순한 숫자의 나열이 아니다. 그것은 그들의 작업방식, 작업자의 행동양식, 조직의 능률과 비능률, 관리자의 관리철학, 회사의 경영방식 등 공급 회사의 총체적 능력을 담고 있는 복잡계로부터 나온 출력 결과이다.
이 벡터는 공급사의 행동 패턴이고, 예측 가능성의 지문이다.
MCMC 깁스 샘플링: 불확실성의 구조화
엔진은 이 벡터 데이터 속에서 두 개의 레짐(Regime)을 발견한다.
- 레짐 0 (): 정상 상태. 가 0 근처에 머문다. 약속을 지키는 마르쿠스.
- 레짐 1 (): 지연 상태. 공급사 내부의 알 수 없는 복잡한 문제들이 얽혀 지연이 폭발하는 상태. 한 번 문제가 생기면 평균 8일 정도 밀린다. 침묵하는 마르쿠스.
여기서 레짐(regime)은 정상처럼 돌아가는 정상 모드, 어떤 때는 사고/혼잡/변동이 큰 상태로 돌아가는 재앙 모드. 그 서로 다른 “상태” 세계를 표현한다. 다시 말해 평소 레짐이면 ETA 근처에 몰리고, 재앙 레짐이면 큰 지연이 나올 확률이 확 올라간다.
결국 데이터 벡터는 정상상태, 지연상태 두 가지 다른 상태의 혼합분포로 구성되며 지연이 어느 임계점을 넘어가면 발주한 고객사에게는 재앙이 된다. 그래서 우리는 이 지연세계의 상태를 “재앙레짐”이라 부른다.
베이지안 엔진은 데이터를 이 두개의 세계관으로 분리하여 동시에 분석하려고 시도한다. 엔진은 그 어떤 납기 건도 ‘정상’, ‘재앙’의 꼬리표를 붙이지 않는다. 모두 모르는 값으로 두고 개별 납기 실적이 두 세계 중 어떤 세계로부터 발생했는지를 강력한 현대 컴퓨팅 파워를 동원하고 정교한 수학을 통해 시뮬레이션한다.
그는 화면에 표시된 그래프를 보았다. 지난 3년간 마르쿠스는 85%의 시간 동안 정상 레짐에 있었다. 하지만 15%의 시간 동안은 재앙레짐에 빠졌고, 그때마다 평균 9일씩 늦어졌다.
지난 8월의 지연도 이 그래프에 정확히 표시되어 있었다. 9일 지연. 그때의 기억이 되살아났다.
3. Exa 엔진의 심장 – 지연 벡터와 레짐 전환
베이지안 엔진이 작동하는 방식
구매팀장이 응시하는 모니터 화면 너머에서는 복잡한 수학적 추론이 진행되고 있었다. 이 장면을 제대로 이해하려면, 우리는 잠시 엔진의 내부로 들어가 봐야 한다.
지연 벡터 의 호출
엔진은 마르쿠스라는 공급사가 지난 수년간 납품한 입고 데이터를 지연 일수 벡터 로 변환했다. 계산은 간단하다.
$$d_i = (\text{실제 입고일}) – (\text{약속된 ETA})$$
만약 이면 약속을 정확히 지킨 것이고, 이면 5일 늦었다는 의미다.
엔진은 이 벡터 속에서 두 개의 서로 다른 세계, 즉 ‘레짐(Regime)’을 발견해낸다.
- 레짐 0 (): 정상 레짐. 가 0 근처에서 움직인다. 약속을 칼같이 지키는 상태다.
- 레짐 1 (): 지연 레짐. 공급망 내부에 균열이 발생한 상태, 마르쿠스가 가끔 빠지는 늪이다. 한 번 지연이 발생하면 평균 8일() 전후로 입고가 밀린다.
여기서 중요한 것은, 마르쿠스가 어떤 레짐에 있느냐에 따라 그의 납품 행동이 완전히 달라진다는 점이다. 우리가 공급사 내부를 들여다 보는 것은 한계가 있다. 이때 베이지안 업데이트가 위력을 발휘한다.
베이지안 사후 확률의 추론
화면에는 엔진이 이번 발주 건에 대해 내린 판단이 수식으로 표시되어 있었다.
베이지안 업데이트 수식:
$$P(S_t = 1 \mid d_{\text{new}}) = \frac{P(d_{\text{new}} \mid S_t = 1) \cdot P(S_t = 1)}{P(d_{\text{new}})}$$
이 수식을 풀어보자.
- : 마르쿠스가 과거에 지연 레짐에 빠졌던 빈도(사전 확률). 약 15%다.
- : 현재 관측되는 물류 지표들이 지연 레짐의 특성과 얼마나 닮았는가(우도, likelihood).
( 가 0이면 정상, 1 이면 재앙상태이므로, 은 공급사가 재앙상태(의 세계관)일 때 다음 납기지연일수가 발생할 확률을 수식으로 표현한 것에 불과하다. 기호에 함몰 될 필요가 없다)
엔진은 이 신호들을 종합하여 판단한다. “마르쿠스가 지연 레짐에 진입할 가능성이 존재한다.” 그 결과가 57%였다.
MCMC 깁스 샘플링(Gibbs Sampling) 1회전
엔진은 이 수치를 증명하기 위해 수십만 번의 시뮬레이션 데이터로 미래를 시뮬레이션(미래의 확률분포를 구성)한다. 그는 그중 첫 번째 회전(Iteration)의 기록을 보았다.
깁스 샘플링의 작동 원리:
깁스 샘플링은 복잡한 확률 분포에서 샘플을 뽑는 방법이다. 여러 변수가 얽혀 있을 때, 한 번에 하나씩 변수를 업데이트하며 전체 분포를 탐색한다.
Iteration 1:
- 상태 샘플링: 현재 데이터를 바탕으로 이번 PO에서 지연 레짐()을 분류
- 지연 일수 추출: 레짐 1의 특성을 반영하여 +9일 지연 추출
- 예측 결과: 마르쿠스가 약속한 ETA + 9일 = 4월 28일
이 과정을 수십만 번 반복 연산(Iteration)하고 엔진은 최종 결론을 내놨다.
[시뮬레이션 결과: PO revision.1 기준]
- 현재 목표(4/21) 기준 정시 입고 확률: 56.2%
- 재앙 레짐() 진입 확률: 16.5% (관례상 재앙레짐이 발생할 확률을 로 표기한다)
- 목표 확률 95% 달성을 위한 최소 완화량(): +7일
“4월 21일이라는 타겟은 커녕, 데드라인 23일마저 무참히 깨지는 시나리오이다.”
그는 주먹을 꽉 쥐었다.
“리스크는 실존한다. 9일의 지연 가능성… 이걸 협상테이블에서 지워야 한다.”
그는 숨을 깊게 들이마셨다. ‘9일. 이게 최악의 경우다. 하지만 이미 일어났었고 충분히 일어날 수 있는 시나리오다.’
그는 지난 8월의 지연을 떠올렸다. 그때는 운이 좋았다. 고객이 이해해줬고, 생산팀이 야근으로 만회했다. 하지만 이번엔 다르다. 이번 고객은 용납하지 않을 것이다.
그리고 무엇보다, 회사가 그를 용납하지 않을 것이다. 세 번째 위기. 패턴으로 인식된다. “이 팀장은 리스크 관리가 안 된다”는 평가로 굳어질 것이다.
이번에 도입한 Exa의 베이지안 엔진은 논리적이다. 과정을 이해한 이상, 결과를 부정할 순 없다. 그는 결심했다.
‘시스템을 믿는다. 그리고 마르쿠스와 제대로 협력한다.’
4. 협상 – 3년 관계의 진화
화상 회의실, 오전 11시
화면에 마르쿠스가 나타났다. 여전히 단정한 셔츠 차림이었지만, 눈가에 피로가 보였다.
“마르쿠스, 오랜만입니다.”
그는 간단한 인사 후 본론으로 들어갔다.
“발송해 드린 PO 정밀 센서 1,200개 중 600개는 4월 21일 입고 목표입니다.”
마르쿠스가 고개를 끄덕였다.
“네, 1차 PO 받았습니다. 하지만 솔직히 말씀드리면… 일정이 빡빡합니다. 지금 물류 상황도 좋지 않고, 내부 공정도 포화 상태예요. 현실적으로는 4월 28일 정도가 안전한 날짜입니다. 21일은 힘들어요. 요즘 해운 시장 알잖아. 선복량(Space) 구하기가 하늘의 별 따기야. 들어가는 배 잡으려면 28일이 최선이라니까요.”
예상했던 답변이었다. 엔진이 예측한 지연과 일치한다. 우연일까.. 공급사 담당 마르쿠스는 노련하게 ‘선복량’이라는 외부 변수를 방패로 삼았다. 발주사가 통제할 수 없는 영역을 핑계로 대면 할 말이 없어지기 때문이다. 능숙하게 외부 요인인 ‘선복량’을 핑계로 댔다.
하지만 그는 화면 속 16.5%의 재앙 확률을 보고 있었다. 잠시 침묵했다. 그리고 차분하게 말을 이었다.
“마르쿠스, 우리 3년 넘게 거래했죠. 대부분의 거래는 성공적이었습니다. 당신네 제품 품질도 훌륭하고, 협력도 잘 되었어요.”
“감사합니다.”
“하지만 지난 8월을 기억하시나요?”
마르쿠스의 표정이 약간 굳었다.
“…기억합니다. 원자재 문제로 일주일 늦었던 건.”
진짜 문제는 침묵이다
그는 부드럽게 말했다.
“그때 정말 힘들었습니다. 문제 자체보다 더 힘들었던 건, 우리가 상황을 몰랐다는 거예요. 당신이 연락을 주셨을 때는 이미 일주일이 지난 뒤였고, 저는 급하게 대응하느라 회사에 불필요한 비용을 발생시켰습니다.”
마르쿠스가 입을 열었다.
“죄송합니다. 당시에는… 내부적으로 해결한 뒤에 좋은 소식을 드리고 싶었습니다.”
“이해 합니다. 공급사 입장에서는 문제를 먼저 해결하고 싶은 거죠. 하지만 바이어 입장에서는, 문제를 모르는 게 더 큰 리스크입니다. 그리고 납기 21일은 과거 기록을 볼 때 불가능하지만은 않다는 것을 잘 알고 있습니다. 당신네 측에서 관리만 제대로 해주신다면 기간 내에 생산 가능한 일입니다. 관리 집중만 잘 한다면 말입니다. 제가 불가능한 요구를 하는 것이 아닙니다. 그렇지 않습니까?”
팀장은 화면을 공유하며 계속했다.
“그래서 이번엔 다르게 가야 하겠습니다. 28일이 아니라 21일을 목표로, 하지만 당신 혼자가 아니라 우리가 함께 관리하는 방식으로요.”
협력사 포털의 제안
화면에는 ‘Exa 협력사 포털’이 떠 있었다. 버퍼관리 이벤트 체크포인트가 표시되어 있었다.
- 원자재 발주
- 자재입고 완료
- 생산시작
- 생산 50% 완료
- 생산완료
- 패킹완료 출하준비: 목표 4월 3일
- 선적: 목표 4월 5일
“이 일곱 가지 이벤트만 공유해주세요. 관련 부서와 협의해서 당신네 내부 이벤트 일자를 결정해서 공유해 주세요. 시스템이 부담스럽다면 이메일로도 괜찮습니다. 그리고 이벤트가 발생할 때 현황만 보내주시면 됩니다.”
마르쿠스가 화면을 유심히 보았다.
“이걸 공유하면 무엇이 달라지죠?”
“리스크를 우리가 함께 관리합니다.” 그의 목소리에는 진심이 담겨 있었다.
“예를 들어, 원자재 단계에서 이틀 지연 신호가 오면, 우리가 물류 파트너를 미리 수배해서 통관 시간을 단축할 수 있어요. 혹은 생산 단계에서 문제가 생기면, 우리가 내부 일정을 조정할 수도 있습니다. 문제를 빨리 알수록 만회할 시간을 버는 겁니다. 대응할 방법도 많아집니다.”
“하지만 이게… 우리를 감시하는 건 아닌가요?”
“아닙니다. 협력입니다.” 그는 단호하게 말했다.
“마르쿠스, 작년 8월에 당신도 힘들었을 겁니다. 문제를 혼자 안고 해결하려다가, 결국 실패하고, 바이어에게 사과하는 건 누구에게도 좋지 않아요. 이번엔 다르게 해봅시다. 당신네와 우리 함께 해봅시다.”
비즈니스의 진화
마르쿠스는 잠시 침묵했다. 화면 너머에서 뭔가를 적는 듯했다.
그리고 천천히 고개를 들었다.
“…좋습니다. 일리 있는 말씀입니다. 해보죠. 각 이벤트가 발생할 때마다 그때 이메일로 현황을 보내드리겠습니다.”
“감사합니다, 마르쿠스.” 그는 미소를 지었다.
마르쿠스도 작게 웃었다.
“알겠습니다. 4월 21일… 최선을 다하겠습니다.”
5. 정보와의 전쟁
침묵의 위기
월요일 오전.
그는 출근하자마자 이메일함을 열었다. 마르쿠스로부터의 메일이 없었다.
관리 이벤트 항목인 원자재 입고 정보가 올라오지 않았다.
그는 시계를 확인했다. 오전 10시 30분. 전화를 걸었으나 응답이 없다.
엔진에 ‘정보 미입력’을 입력했다. 화면의 확률이 흔들리더니 47%로 떨어졌다. 10%p 하락. 붉은 경고등이 켜졌다.
‘정보가 없다는 것 자체가 신호다.’
그는 즉시 마르쿠스에게 메시지를 보냈다.
“마르쿠스, 오늘 현황 공유가 안되었습니다. 원자재 입고 상황이 궁금합니다. 문제가 있나요?”
20분 후, 답장이 왔다.
“죄송합니다. 원자재는 지난주 금요일에 입고 되었습니다. 담당자가 보고를 늦게 해서 제가 몰랐네요. 지금 확인했습니다.”
팀장은 안도의 한숨을 내쉬었다. 문제가 아니라 보고 지연이었다.
그는 시스템에 ‘원자재 입고 완료’를 입력했다. 확률이 다시 61%로 상승했다.
하지만 그는 마르쿠스에게 메시지를 한 번 더 보냈다.
“다행입니다. 하지만 마르쿠스, 정보가 늦으면 저도 불안해집니다. 다음 이벤트부터는 정확히 부탁드립니다.”
생산 지연의 파동
수요일.
이번에는 메일이 정확히 왔다. 하지만 내용이 좋지 않았다.
“팀장님, ‘생산 착수’가 이틀 늦어집니다. 내부 공정 스케줄링 문제로 원래 수요일 오늘 시작 예정이었으나, 금요일로 밀렸습니다. 생산 자체는 문제없으나, 전체 일정이 이틀 정도 늦어질 것 같습니다.”
그의 손가락이 멈췄다. 이틀 지연. 작은 지연이지만, 버퍼를 갉아먹는다.
엔진에 ‘생산 착수 2일 지연’이 입력되자 화면이 즉각 반응했다.
‘지연 레짐 진입 가능성 상승’
ETA가 4월 21일에서 4월 23일로 밀렸다. 확률은 52%로 하락했다. 버퍼가 완전히 사라지고, 데드라인마저 위태로워졌다.
그는 숨을 깊게 들이마셨다. ‘이제부터가 진짜다.’
선제적 대응
그는 생산팀장과 물류팀장을 급히 요청, 소집했다.
“생산팀장님, 내부 일정 조정 가능할까요? 이틀 버퍼 손실이 생겼습니다.”
생산팀장이 고개를 저었다.
“어렵습니다. 다른 라인도 꽉 차 있어서, 조정은 불가능해요.”
“그렇다면 물류 쪽에서 만회해야겠군요.”
팀장은 물류팀장을 보았다.
“통관을 하루라도 앞당길 방법이 있을까요?”
물류팀장이 잠시 생각하더니 말했다.
“사전 통관 신고를 하면 반나절에서 하루 정도 단축 가능합니다. 다만 비용이 추가로 들어요.”
그는 고개를 끄덕였다.
“하겠습니다. 그리고 공장까지 내륙운송도 전용 트럭으로 수배해주세요. 일반 배송보다 빠른 걸로요.”
물류팀장이 메모하며 답했다.
“알겠습니다.”
그는 마르쿠스에게 메일을 보냈다.
“마르쿠스, 이틀 지연 확인했습니다. 우리 쪽에서 물류를 최적화하여 하루 단축하겠습니다. 대신 당신 쪽에서 패킹 및 출하를 하루라도 앞당길 수 있다면 부탁드립니다. 생산 완료 즉시 출하 가능하도록 사전 준비 부탁합니다.”
2시간 후, 마르쿠스의 답장이 왔다.
“알겠습니다. 생산 완료 즉시 출하하도록 물류팀과 조율하겠습니다.”
팀장은 이 대응책들을 엔진에 입력했다.
- 통관 1일 단축
- 운송 반나일 단축
- 출하 준비 시간 단축
화면이 다시 움직였다. ETA는 4월 24일에서 4월 22일로 당겨지고. 확률은 74%로 상승했다.
데드라인 23일보다 하루 빠르다. 버퍼는 완전히 사라졌지만, 최소한 데드라인은 지킬 수 있는 시나리오였다.
6. 4월 21일
오후 2시
오후 2시. 창고 도크(Dock)에 육중한 트럭이 후진으로 들어왔다. 검수팀장에게서 전화가 왔다.
“팀장님, 정밀 센서 1차분 600개 입고됐습니다. 수량, 외관 모두 양호합니다. 23일 데드라인보다 이틀 빠르네요. 고생하셨습니다.”
팀장은 전화를 끊고 깊게 등받이에 몸을 기댔다. 4월 21일. 애초에 목표했던 ‘안전 입고일’이었다.
화면 속 최종 확률은 74%였다. 누군가는 26%의 실패 가능성이 있었다고 말할지 모른다. 하지만 그는 안다. 그 26%의 불확실성을 통제하기 위해 그와 시스템이 얼마나 치열하게 데이터를 주고받았는지를.
그는 마르쿠스에게 짧은 메일을 썼다.
“마르쿠스, 물건 잘 받았습니다. 당신이 이틀 지연을 즉시 알려준 덕분에 우리가 대처할 수 있었습니다. 이것이 진정한 파트너십입니다.”
곧바로 답장이 왔다.
“솔직히 저도 마음이 편했습니다. 숨기지 않아도 된다는 게 이렇게 업무 효율을 높일 줄 몰랐군요. 다음 PO도 이런 식으로 진행하시죠.”
에필로그: 3개월 후, 변화된 풍경
7월 중순, 분기 성과 보고 회의(QBR).
회의실 분위기는 지난번과는 사뭇 달랐다. 팀장은 프레젠테이션 화면을 넘겼다.
“지난 2분기, 주요 자재 정시 입고율(On-Time Delivery)은 98.5%를 기록했습니다. 전년 동기 대비 12% 상승한 수치입니다.”
경영지원 본부장이 안경을 고쳐 쓰며 물었다. “놀라운 수치군요. 특히 메이저 공급사들은 다루기 힘들기로 유명한데, 비결이 뭡니까? 운임 비용을 더 썼나요?”
“아닙니다. ‘급행료’는 오히려 줄었습니다.” 팀장은 다음 슬라이드를 띄웠다. [Exa 협력사 포털]의 대시보드였다.
“우리는 공급사에게 ‘납기 준수’를 요구하지 않았습니다. 데이터 공유를 요구했죠. 현재 마르쿠스 사를 포함한 상위 5개 주요 벤더가 이 프로세스에 동참하고 있습니다. 처음엔 감시당한다고 반발하던 곳들도, 우리가 먼저 물류 솔루션을 제공하고 리스크를 분담하는 모습을 보자 태도가 바뀌었습니다.”
화면에는 ‘Marcus GmbH’ 옆에 녹색 신호등이 켜져 있었다. 그 아래로 일본, 대만, 미국의 공급사들이 줄지어 연결되어 있었다. 하나의 거대한, 살아있는 신경망처럼.
“이제 공급사들은 문제가 생기면 숨기지 않습니다. 시스템에 접속해 붉은 깃발을 띄우죠. 우리는 그걸 보고 소방수를 투입합니다. 불이 다 번진 뒤에 끄는 게 아니라, 연기가 날 때 잡는 겁니다.”
CEO가 흡족한 미소를 지으며 고개를 끄덕였다. “자네, 이제야 구매가 단순한 ‘비용 절감’이 아니라 ‘수익 보호’ 부서라는 걸 증명하고 있군.”
회의가 끝나고 사무실로 돌아온 그는 자리에 앉았다. 창밖은 여느 때와 다름없는 오후 날씨였지만, 그의 모니터 속 세상은 달라져 있었다.
PO#2024-1105 | 차세대 배터리 모듈 | 베이지안 확률: 92% (안정)
과거의 그는 57%의 확률 앞에서 기도했다. 하지만 지금의 그는 57%를 74%로, 그리고 92%로 만들어낸다.
베이지안 엔진은 마법 구슬이 아니다. 그것은 현실을 직시하게 만드는 거울이다. 그 거울 앞에서 정직하게 데이터를 마주하고, 선제적으로 행동하는 것. 그것이 불확실성의 시대를 살아가는 구매팀장의 진짜 실력이었다.
그는 식어버린 커피를 한 모금 마셨다. 쓴맛은 사라지고, 기분 좋은 향기만이 남았다.
[끝]
[Insight Note] 깁스 샘플링과 비즈니스 의사결정
소설 속에서 구매팀장이 활용한 MCMC 깁스 샘플링(Gibbs Sampling)은 현대 데이터 과학의 귀중한 자산이자 매우 강력한 도구이다. 복잡한 수학을 직접 풀기 어려울 때, 컴퓨터를 이용해 수십, 수백만 번의 주사위를 던져 확률의 지형도를 그려내는 방식이다.
$$x1(t+1)∼p(x1∣x2(t),x3(t),…)$$
위 수식처럼, 하나의 변수를 업데이트할 때 다른 변수들의 현재 상태를 고정하고 샘플링을 반복한다.
이것이 비즈니스에 주는 시사점은 명확하다. “미래는 하나의 확정된 길이 아니라, 여러 가능성의 분포(Distribution)로 존재한다.”
주인공은 불확실성을 제거하려 들지 않았다. 불확실성을 계량화하고, 관리범위 안으로 끌어들이고 그 안에서 최적의 행동(Action)을 선택했다.
이 이야기는 불확실성과 싸우는 모든 사람들을 위한 이야기이다.
구매현장 뿐이 아니라 모든 비즈니스 현장의 진짜 게임은 불확실성과의 싸움이다.
[Inside the Engine] 기적이 아닌, 정교한 수학과 버퍼 관리
“소설 속의 기적은 마법이 아닙니다. 그것은 정교한 베이지안 수학과 버퍼 관리가 만나 만들어낸 필연(inevitability)입니다.”
다음 글부터는 [부록 시리즈] 형태로 본 에피소드의 핵심인 ‘Exa 지능형 추론 엔진‘의 심장부를 해부합니다. 마르쿠스의 숨겨진 패턴을 찾아낸 혼합분포(Mixture Distribution)의 원리와, 불확실성을 시뮬레이션하는 MCMC 깁스 샘플링(Gibbs Sampling)의 수학적 메커니즘을 본격적으로 파헤쳐 봅니다.
