기술

트윈이 답을 미리 알고 있으면, 그건 트윈이 아닙니다

며칠 전 저희 데모 공장 트윈을 보던 대표가 물었습니다. "이게 완전한 자동 시뮬레이션 공장이 된 건가?"

방동걸 프로필 사진
(주)웨이스 대표이사

며칠 전 저희 데모 공장 트윈을 보던 대표가 물었습니다. "이게 완전한 자동 시뮬레이션 공장이 된 건가?"

화면은 잘 돌고 있었습니다. 설비 500여 대가 도면 좌표 그대로 서 있고, 로트가 12개 공정을 지나 출하되고, 무인운반차와 천장 호이스트가 경로를 따라 자재를 옮기고 있었습니다. 그런데 그 질문에 바로 "그렇다"고 답할 수가 없었습니다.

녹화를 재생하는 화면과 새 결과를 계산하는 화면의 대비
재생본은 어제를 보여주고, 시뮬레이션은 만약을 계산합니다.

잘 만든 재생본도 진짜처럼 보입니다

당시 화면이 하고 있던 일은 정확히 말하면 재생이었습니다. 미리 계산해 둔 일정표를 시간에 맞춰 화면에 풀어놓는 방식입니다. 언제 어느 설비가 돌고, 어느 자재가 어디로 가는지가 이미 정해져 있고, 화면은 그 시각표를 따라갑니다.

이게 나쁜 방식은 아닙니다. 전시나 설명용으로는 오히려 안정적이고, 매번 같은 장면이 나오니 다루기도 쉽습니다. 문제는 재생본과 시뮬레이션이 평소에는 구분되지 않는다는 데 있습니다. 둘 다 잘 돌아가는 공장처럼 보입니다. 차이는 딱 한 순간에 드러납니다. 정해지지 않은 조건을 물었을 때입니다.

그래서 공정 전체를 다시 계산하게 만들었습니다

12개 공정 전부를 로트 단위 이산사건 시뮬레이션으로 다시 구현했습니다. 각 공정의 처리 시간과 이송 시간, 동시에 이동할 수 있는 대수의 한계, 공정 앞에 놓인 버퍼 용량, 한 설비가 한 번에 한 로트만 받는다는 제약을 넣고 사건 단위로 돌립니다. 화면에 그림을 그리는 것과는 별개로, 공장이 어떻게 흘러갈지를 매번 계산하는 것입니다.

그리고 기존 일정표와 나란히 놓고 비교하는 검사를 만들었습니다. 새로 만든 계산이 맞는지부터 확인해야 하기 때문입니다.

고장이 없는 정상 상태에서 두 방식은 이렇게 맞았습니다.

  • 택트(제품 하나가 나오는 간격): 두 방식 완전 일치

  • 리드타임(투입에서 출하까지): 차이 2.5% (허용 기준 5% 이내)

  • 재공 로트 수: ±1 이내

  • 투입과 산출의 물질 수지: 보존

두 방식이 같은 공장을 말하고 있다는 뜻입니다. 여기까지는 확인일 뿐, 아직 시뮬레이션의 값어치는 나오지 않았습니다.

조건 하나를 바꾸면 라인 전체가 다시 계산되는 파이프라인 도면 — 바뀐 조건 강조
답을 미리 알고 있으면 그것은 트윈이 아닙니다.

진짜 시험은 설비를 세워보는 것이었습니다

세척 공정을 8택트 동안 세웠습니다. 그러자 규칙을 하나도 넣지 않았는데 두 가지가 나타났습니다.

하류에서는 투입이 끊겼습니다. 세척을 거쳐야 열처리로 들어가는데, 앞에서 물건이 안 오니 뒤 공정이 굶는 상태가 됩니다. 상류에서는 흐름이 막혔습니다. 세척 앞의 버퍼가 다 차자 그 앞 공정이 물건을 내려놓을 자리가 없어 멈춥니다. 두 현상이 나타나는 시점도 서로 달랐습니다. 굶는 쪽이 먼저, 막히는 쪽이 한참 뒤였습니다. 버퍼가 다 차는 데 시간이 걸리기 때문입니다.

이건 저희가 "고장이 나면 뒤가 굶고 앞이 막힌다"고 코드에 적어둔 결과가 아닙니다. 버퍼 용량과 이송 제약을 넣었더니 계산에서 저절로 나온 결과입니다. 잃어버린 로트 수도 이론상 최대치 안에 들어왔습니다.

이 차이가 실무에서 갖는 의미는 분명합니다. 재생본에 물어볼 수 있는 것은 "어제 무슨 일이 있었나"까지입니다. 시뮬레이션에는 이렇게 물을 수 있습니다.

  • 이 설비를 30분 세우면 오늘 출하가 몇 개 빠지는가

  • 버퍼를 하나 늘리면 앞 공정 정지가 사라지는가

  • 주문이 20% 늘면 어느 공정이 먼저 병목이 되는가

조건을 바꿔가며 물어볼 수 있느냐, 이것이 트윈을 도입하는 실질적인 이유입니다.

화면에도 편입시켰습니다

계산만 따로 도는 것은 반쪽입니다. 고장을 주입하는 요청을 받으면 3D 화면에서도 해당 설비가 실제로 멈추고, 그 여파로 하류 설비의 가동 표시가 꺼졌다가 정지가 끝나면 회복되도록 연결했습니다. 이때 생산 기록 원장 자체는 건드리지 않습니다. 고장은 그 위에 겹쳐 보이는 층으로만 올리고, 주입 사실은 관측 기록으로 따로 남깁니다. 무엇이 실제 기록이고 무엇이 가정인지 섞이면 안 되기 때문입니다.

같은 입력을 주면 항상 같은 사건 순서가 나오는지도 확인 조건에 넣었습니다. 결과가 매번 달라지는 시뮬레이션은 비교에 사용할 수 없습니다.

"괜찮아 보인다" 대신 조건 43개

이 모든 확인을 사람 눈으로 하지 않습니다. 배치가 맞는지, 생산이 흘러가는지, 조건을 바꿨을 때 반응하는지를 조건 43개로 나눠 자동으로 판정합니다. 조건 하나라도 어긋나면 점수가 깎이고, 통과할 때까지 고칩니다.

처음에는 조건이 23개였습니다. 공장 설계, 3D 구조, 물류, 제품 동선, 생산관리 시각으로 내부 검토를 돌리고 지적이 들어올 때마다 그 지적을 새 조건으로 승격시켰습니다. 그렇게 43개가 됐습니다. 조건이 늘면 이전에 받은 점수는 무효가 되고 다시 딴다는 규칙도 함께 뒀습니다. 점수를 지키는 게 목적이 되면 채점표를 느슨하게 만드는 쪽이 언제나 빠르기 때문입니다.

100점이 무엇의 100점인지 적어둡니다

지금 이 트윈은 만점을 받았습니다. 다만 그 만점이 무엇을 보증하고 무엇을 보증하지 않는지를 문서에 함께 적어뒀습니다.

이 점수는 화면과 시뮬레이션이 서로 맞는지에 대한 자동 판정입니다. "실제 공장에서 이대로 생산이 가능한 설계"에 대한 보증이 아닙니다. 그 판정은 별도로 진행 중이고, 거기서 나오는 지적은 다시 조건으로 올라옵니다.

비워둔 자리도 그대로 적어뒀습니다. 불량률과 교체 손실은 실측 데이터가 없어 산식에 넣지 않았습니다. 그럴듯한 값을 채워 넣으면 나머지 계산까지 오염됩니다. 소방 설비 배치는 인허가 영역이라 화면이 임의로 그리지 않습니다. 무인운반차 충전 스테이션도 사양에 자료가 없어 배치하지 않았습니다. 본선의 명목 시각표는 여전히 일정표 재생이고, 앞서 말한 비교 검사가 두 계산이 계속 같은 답을 내는지 상시 감시합니다.

이런 항목을 숨기면 데모는 더 매끄러워집니다. 대신 그 트윈으로 내리는 판단을 신뢰할 근거가 사라집니다.

트윈을 검토하실 때 물어보실 것

디지털트윈 도입을 검토하신다면, 화면이 얼마나 실물 같은지보다 아래 3가지를 물어보시는 편이 빠릅니다.

  1. 설비 하나를 지금 세워보면 화면이 반응합니까. 반응한다면, 그 반응은 사람이 미리 적어둔 시나리오입니까 아니면 계산 결과입니까.

  2. 같은 조건을 두 번 돌리면 같은 결과가 나옵니까. 아니라면 비교에 사용할 수 없습니다.

  3. 무엇을 모르는 상태로 두었는지 문서에 적혀 있습니까. 모든 칸이 채워진 트윈은 대개 어딘가를 추정으로 메운 것입니다.

트윈의 값어치는 얼마나 진짜처럼 보이느냐가 아니라, 아직 해보지 않은 조건을 물었을 때 답이 나오느냐에 있습니다. 그리고 그 답을 믿으려면, 답이 나오지 않는 자리가 어디인지도 함께 보여야 합니다.

디지털트윈을 화면이 아니라 판단의 도구로 보는 관점은 이전 글에서 다뤘습니다: 디지털트윈은 화면이 아니라 판단입니다

웨이스가 하는 일이 궁금하시면: wace.me

이 글이 도움이 되셨다면 공유해 주세요

새 글이 올라오면 메일로 알려드립니다

제조 현장에서 확인한 것들을 기록합니다. 광고성 발송은 하지 않습니다.

우리 공장은 지금 어느 단계일까요?

제조 AI 성숙도 자가진단 — 회사 정보 없이 10문항이면 됩니다.

무료 진단 받기
방동걸 프로필 사진
작성자
(주)웨이스 대표이사

제조 AI 운영체제 VEXPLOR를 만들고 있습니다. 스마트공장 구축 현장에서 데이터 표준화·온톨로지·디지털트윈·자율형공장을 다루며, 이 블로그에는 현장에서 실제로 부딪힌 문제와 그때 내린 판단을 씁니다.

contact@wace.me

이 문제를 실제 현장에서 풀고 있습니다

(주)웨이스는 제조 AI 운영체제 VEXPLOR로 데이터 표준화부터 자율형공장까지 만들어가고 있습니다. 우리 공장에 적용하면 어떤 모습일지 궁금하시면 편하게 물어보세요.