저희가 만들려는 것은 공장의 판단을 다루는 소프트웨어입니다.
설비를 연결하고 데이터를 모으는 것까지는 여러 곳이 합니다. 지난 몇 년 동안 공장에 센서가 늘고 화면이 늘었습니다. 그런데 늘어난 것은 보이는 양이지 정해지는 속도가 아닙니다. 그다음 무엇을 할지 정하는 구간이 아직 사람 머릿속에 있기 때문입니다.
그 구간을 시스템으로 옮기는 것이 저희가 하려는 일이고, 오늘 그 일에 필요한 자리 하나가 채워졌습니다.
옮기려는 판단이 어떤 것이냐면
설비에서 평소와 다른 신호가 뜹니다. 진동이 조금 커졌거나 전류 파형이 달라졌습니다. 아직 불량이 나온 것은 아닙니다. 여기서 고를 수 있는 것은 셋입니다. 지금 세우고 본다, 이번 물량까지만 돌리고 세운다, 그냥 간다.
매뉴얼에는 이 중 무엇을 하라고 안 적혀 있습니다. 적을 수가 없습니다. 답이 그날의 납기, 남은 재고, 그 설비의 지난 이력, 다음 공정의 여유, 지금이 몇 시인지에 따라 다르기 때문입니다.
그래서 이 판단은 사람에게 남아 있습니다. 그리고 그 사람이 자리를 비우거나 퇴직하면 회사가 그 판단을 잃습니다. 공장 하나가 20년 쌓은 것이 몇 사람의 머릿속에 들어 있고, 그걸 회사가 가진 것이라고 부르기 어렵습니다.
이것을 시스템으로 옮기면 두 가지가 바뀝니다. 그 판단이 밤에도 주말에도 같은 기준으로 내려지고, 사람이 바뀌어도 남습니다.
두 번째가 특히 큽니다. 공장에서 제일 잘 아는 사람은 대개 제일 오래 있은 사람이고, 그 사람은 언젠가 나갑니다. 그때 회사에 남는 건 설비와 도면이지 판단이 아닙니다. 새로 온 사람이 같은 자리에서 다시 몇 년을 들여 그걸 쌓습니다. 그 반복이 제조업에서 가장 조용하게 비싼 비용입니다.
그런데 옮기려면 먼저 알아야 합니다
여기가 이 일의 실제 벽입니다.
판단을 옮기려면 그것이 어떻게 내려지는지를 알아야 하는데, 물어보면 대개 "그건 상황 봐서요"라는 답이 돌아옵니다. 숨기는 게 아니라 본인도 언어로 설명할 수 있는 형태로 갖고 있지 않기 때문입니다. 오래 해서 몸에 붙은 것은 원래 그렇습니다.
밖에서 인터뷰로 캐내는 방식은 여기서 멈춥니다. 질문하는 쪽이 그 일을 해 본 적이 없으면 무엇을 물어야 하는지를 모르고, 답하는 쪽은 무엇을 말해야 하는지를 모릅니다.
넘는 방법은 하나입니다. 그 판단을 오래 해 본 사람이 우리 쪽에 있어서, 같은 언어로 물어보는 것. 그 사람이 있으면 "그때 뭘 보고 정하셨어요"가 아니라 "그날 다음 공정 여유가 얼마였습니까"로 물어볼 수 있습니다. 밖에서 안 나오는 것이 안에서는 나옵니다.
그래서 어떤 자리가 필요했나
정리하면 저희에게 필요했던 자리는 이렇게 생겼습니다.
- 완성차 공장을 짓는 일을 여러 번 해 본 사람
- 그 공장을 돌리는 일을 오래 총괄해 본 사람
- 그리고 남이 돌리던 공장을 인수해서, 고쳐서, 다시 돌려 본 사람
셋째가 이 글을 쓰는 이유입니다. 공장을 지어 본 사람은 찾으면 있습니다. 돌려 본 사람도 있습니다. 셋을 다 한 사람은 드뭅니다. 그리고 그 셋이 한 사람 안에 있어야 값이 납니다 — 지을 때 한 선택이 돌릴 때 어떻게 돌아오는지를 같은 머릿속에서 겪어 봐야 알기 때문입니다.
이 자리를 밖에 맡기는 방법도 있습니다. 자문을 두거나 컨설팅을 붙이면 됩니다. 저희가 그렇게 하지 않은 이유는, 위에서 적었듯 이 일이 한 번 물어보고 끝나는 종류가 아니기 때문입니다. 사례를 모으고 규칙을 세우고 그게 현장에서 어긋나면 다시 묻는 일이 몇 달 단위로 반복됩니다. 그 반복은 계약서로 사는 게 아니라 같은 사무실에 있어야 됩니다.
오늘 그 자리를 채웠습니다. 본인 신원은 밝히지 않겠습니다. 이 글에서 값이 있는 것은 누가 왔느냐가 아니라 어떤 자리가 비어 있었느냐이기 때문입니다.
한 해 안에 셋이 들어왔습니다
· 맡는 일 — 어디서 온 자리인가 — 채운 때
· 사업개발·대외 — 완성차·부품 업계 — 창업
· 기술총괄 — AI·제조 소프트웨어 — 올해 봄
· 설비·제어 엔지니어링 — 완성차 라인 자동화 — 올해 여름
· 공장 운영 — 완성차 공장 건설·운영 — 오늘
읽는 방식은 이렇습니다. 설비를 제어하는 사람과 소프트웨어를 만드는 사람은 봄과 여름에 자리를 잡았습니다. 없던 것은 그 설비들이 모여 하나의 공장으로 돌아갈 때 판단하는 자리였고, 오늘 그것이 채워졌습니다.
지금 재직 인원은 19명입니다. 큰 조직은 아닙니다. 그래서 누구를 넣느냐가 더 크게 작용하고, 저 넷을 모으는 데 회사가 쓴 시간이 적지 않습니다.
앞으로 무엇을 하나
순서는 이렇게 잡고 있습니다.
첫째, 판단을 말로 꺼내는 일. 현장에서 실제로 어떤 조건에서 어떻게 정했는지를 사례 단위로 모읍니다. "보통 이렇게 합니다"가 아니라 "그날 그 상황에서 이렇게 정했고 결과가 이랬다"를 모으는 것입니다. 앞의 것은 이미 매뉴얼에 있고, 뒤의 것이 없어서 이 일이 어려운 것이니까요. 이건 새 기술이 아니라 사람이 하는 일이고, 위에서 적은 이유로 안에 그 사람이 있어야 됩니다.
둘째, 꺼낸 판단을 규칙으로 굳히는 일. 여기서 중요한 건 맞히는 게 아니라 틀렸을 때 알아채는 구조입니다. 공장에서 잘못된 판단이 조용히 지나가면 몇 시간 뒤에 물량으로 돌아옵니다. 그래서 저희는 "이 판단이 맞았는지"를 나중에 되짚을 수 있는 형태로 남기는 것을 먼저 만듭니다. 맞히는 정확도는 그다음 문제입니다.
셋째, 그 규칙이 실제 라인에서 견디는지 보는 일. 시험 환경에서 도는 것과 3교대로 몇 달을 도는 것은 다릅니다. 설비가 어제와 다르게 움직이고, 자재 로트가 바뀌고, 사람이 바뀌는 안에서도 같은 기준이 유지되는지는 그 안에 들어가 봐야 압니다. 이 단계가 저희가 아직 못 한 것이고, 다음 항에 적었습니다.
판단을 옮긴다는 게 사람을 빼는 일은 아닙니다
이 이야기를 하면 자주 나오는 오해가 있어 미리 적습니다.
판단을 시스템으로 옮긴다는 것은 그 자리에 있던 사람을 빼겠다는 뜻이 아닙니다. 실제로 벌어지는 일은 반대에 가깝습니다. 지금 그 사람은 같은 종류의 판단을 하루에 수십 번 합니다. 그중 대부분은 조건이 뻔하고 답도 정해져 있는데, 뻔한 것에 계속 불려 다니느라 정작 어려운 것에 쓸 시간이 없습니다.
옮기려는 것은 그 뻔한 쪽입니다. 그러면 사람은 남고, 사람이 붙는 자리가 바뀝니다. 그리고 어려운 판단은 여전히 사람이 합니다 — 시스템이 대신할 수 있으면 그건 애초에 어려운 판단이 아니었던 것이니까요.
한 가지 더. 이 구조는 판단의 근거가 남는다는 뜻이기도 합니다. 지금은 왜 그때 세웠는지가 기록에 안 남고 사람 기억에만 남습니다. 몇 달 뒤 같은 상황이 왔을 때 그때 무엇을 보고 정했는지 되짚을 수 있으면, 그 자체가 다음 판단의 재료가 됩니다.
이게 되면 무엇이 달라지나
한 공장에서 이 셋이 돌아가면 그 공장은 판단을 잃지 않는 공장이 됩니다. 사람이 나가도, 밤이어도, 처음 온 사람이 그 자리에 앉아도 같은 기준이 섭니다.
그리고 그 구조는 공장마다 처음부터 다시 만들 필요가 없습니다. 설비 구성과 품목은 달라도 판단이 필요한 자리의 모양은 겹칩니다. 언제 세울지, 무엇을 먼저 흘릴지, 이상 신호에 어떻게 반응할지는 어느 공장에나 있습니다. 한 곳에서 세운 구조가 다음 공장에서는 조정으로 끝나는 것, 그게 저희가 보는 그림입니다.
지금은 첫 번째 공장의 첫 번째 단계에 있습니다.
아직 없는 것
저희 라인은 아직 없습니다. 지금 있는 것은 그 일을 해 본 사람들이지 시설이 아닙니다.
이게 왜 문제냐면, 실패를 저희 라인에서 겪지 못하고 고객 현장에서 겪게 되기 때문입니다. 그건 실패가 아니라 사고입니다. 남의 라인에서 배우면 배우는 값을 남이 냅니다.
그전까지는 3D로 먼저 돌려 봅니다
라인이 없어도 할 수 있는 일이 하나 있습니다. 아직 존재하지 않는 라인을 3D로 세워 먼저 돌려 보는 것입니다.
저희는 3D가 값을 만드는 경우를 셋으로 봅니다. 아직 존재하지 않는 것, 아직 오지 않은 시점, 그리고 공간 판정(통로 폭·회전 반경·층고·간섭). 반대로 이미 있는 것을 그대로 비추는 화면은 값이 없습니다. 그건 현장에 가서 보면 되니까요.
지금 하는 일이 첫 번째와 두 번째에 걸칩니다. 설비를 세우고 로봇 동작을 넣고 제품을 흘려 보면, 어느 자리에서 막히는지·어느 판단이 어긋나는지가 실물 없이 드러납니다. 틀려도 값을 치르지 않고, 틀린 자리는 그대로 보입니다.
그리고 이 방식에는 정답지가 있습니다. 실제로 지어져 돌아간 라인의 데이터를 넣어 보면 됩니다. 엔진 판정이 실물과 갈리면 의심할 쪽은 엔진입니다. 그렇게 재 봤고, 실제로 두 곳에서 어긋난 것을 찾았습니다 — 하나는 저희가 못 읽고 있던 실제 로봇 구조였고, 하나는 엔진이 낸 헛경고였습니다.
정답지를 맞춰 보려면 그 라인이 실제로 무엇을 했는지가 있어야 합니다. 설비가 어디에 어떻게 서 있었는지, 로봇이 어떤 점을 지나갔는지, 그때 신호가 언제 켜지고 꺼졌는지 — 셋이 다 있어야 "우리 계산이 여기서 틀렸다"를 말할 수 있습니다. 그래서 도면과 프로그램과 기록을 같은 화면으로 끌어오는 일부터 했습니다.
라인이 실제로 무엇을 하고 있는지는 제어 프로그램에 적혀 있습니다. 그런데 그 파일은 공개 사양이 없는 바이너리라 만든 도구 밖에서는 열어 보기가 어렵습니다. 그래서 저희는 그것을 렁 단위로 펴서 읽는 화면을 만들었습니다. 원본은 건드리지 않습니다 — 고친 내용은 따로 얹어 두고 변경지시서로 내보냅니다. 컨트롤러에 들어갈 파일을 밖에서 다시 쓰면 그 파일을 망가뜨리기 때문입니다.
앞에서 "틀렸을 때 알아채는 구조가 먼저"라고 적은 것이 이겁니다.
그래서 저희 공장을 만들려고 합니다.
앞에서 적은 세 단계 중 마지막이 "실제 라인에서 견디는지 보는 일"이었습니다. 그 라인이 남의 것이면 견디는지를 끝까지 못 봅니다. 세워야 할 때 세우고, 틀렸으면 그 값을 저희가 내고, 다음에 고치는 일이 저희 안에서 돌아야 합니다.
규모와 방식은 아직 정하는 중이고, 정해지면 그때 적겠습니다. 지금 말할 수 있는 것은 방향을 그렇게 잡았다는 것까지입니다.
어제 앞선 글(https://blog.vexplor.com/post/why-ai-companies-get-laughed-at-in-manufacturing)에서 소프트웨어 쪽에서 제조로 들어가는 회사를 볼 때 물어볼 다섯 가지를 적었습니다. 그중 하나가 "라인을 세워 본 사람이 조직 안에 있는가"였고, 오늘 그 하나가 채워졌습니다. 나머지 넷은 위 순서대로 채워 갑니다. 다 채웠다고 말할 수 있는 시점은 첫 라인이 돌아가고 몇 달 뒤이고, 그때 숫자로 다시 적겠습니다.
이 자리를 아는 분께
이 글을 읽는 분 중에 라인을 세울지 말지를 실제로 정해 보신 분이 있을 겁니다.
그 판단이 어떻게 내려졌는지, 무엇을 보고 정하셨는지 듣고 싶습니다. 저희가 옮기려는 것이 정확히 그것이고, 아직 모으는 중입니다.
(이 글은 웨이스 기술블로그에 먼저 실린 글입니다. 원문: https://blog.vexplor.com/post/the-last-piece-arrived)