회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
LG CNS, KT DS도 이용하는 대표 IT프로젝트 플랫폼
최근 제조업에서는 전산 시스템 수가 늘어나며 데이터 역시 복잡해지고 있다. 그에 맞춰 제조업 분야 고객의 데이터 분석 의뢰도 그만큼 많아졌다. 이런 관점에서 IT 제조실행시스템인 MES(Manufacturing Execution System)와 데이터에 대한 최적화된 설명이 필요하다는 생각이 들었다. 따라서 이 글에서는 MES의 기본 설명과 함께 데이터 분석 관점에서 주의할 사항에 대한 설명을 다룰 예정이다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
최근 제조업에서는 전산 시스템 수가 늘어나며 데이터 역시 복잡해지고 있다. 그에 맞춰 제조업 분야 고객의 데이터 분석 의뢰도 그만큼 많아졌다. 이런 관점에서 IT 제조실행시스템인 MES(Manufacturing Execution System)와 데이터에 대한 최적화된 설명이 필요하다는 생각이 들었다. 따라서 이 글에서는 MES의 기본 설명과 함께 데이터 분석 관점에서 주의할 사항에 대한 설명을 다룰 예정이다.
우선 MES의 일반적인 주요 기능을 알아보겠다. 미국 제조업 시스템 단체 MESA(Manufacturing Enterprise Solutions Association International)에서는 MES의 11가지 기능을 제시한다. 이 대표 설명 중 몇 가지 핵심 기능을 간추리면, 크게 작업 스케줄링, 제품 추적성, 품질 관리, 공정 라우팅 4가지를 꼽을 수 있을 것이다. 이제 각 기능을 간략하게 설명해 보려고 한다.
작업 스케줄링이란 생산을 위해 필요한 자원을 어떻게 투입할지 스케줄링하는 것이다. 육하원칙에 기반해 생산에 투입되는 모든 자원의 스케줄을 관리한다고 볼 수 있다. 대표적인 예시는 아래와 같다.
설명은 간단해 보이지만 관련한 마스터 정보의 종류가 다양하고 수도 많다. 생산반, 근무조, 근무시간, 생산라인, 작업표준, 생산계획, 비가동계획, 휴무일관리 등 다양한 마스터 정보들이 갖춰져야 이들 정보를 결합하여 생산 지시를 만들 수 있다. 그런 만큼 사실상 작업 스케줄링은 MES의 코어이자 전부라고 해도 과언이 아니다.
생산 과정을 거쳐 완제품이 만들어지는 과정은 어떨까? 제품의 생산 과정 내내 다양한 자원들이 투입되어 이들이 결국 완제품으로 탈바꿈한다. 이러한 과정을 추적할 수 있다면, 즉 제품 추적성을 구현하면 완제품에서부터 역으로 과정을 추적하거나 반대로 자재에서 완제품으로 전개할 수 있다. 어디서 문제가 생겼고 어떻게 작업한 것인지 추적할 수 있다는 뜻이다.
또한 회계적 관점에서 보면 제품 추적성은 원가 계산을 할 수 있는 충분조건이기도 하다. 다시 말해 완제품 제작에 투입한 모든 요소, 혹은 생산 과정에서 손실되는 요소를 추적할 수 있다면, 이 요소들의 가격을 기반으로 원가를 계산할 수 있다.
MES는 완제품 하나하나에 들어간 자원 정보들을 모두 추적한다. 그 때문에 ERP와 같은 자원 관리 시스템이 이 정보를 참고하게 된다. 물론 MES는 제조실행 관리 시스템으로 회계 시스템과 상관이 없으므로 회계 관련 마스터 정보도 가지고 있지 않다. 따라서 일반적으로 완제품이 만들어지면 자재 소요량이나 완제품 재고량을 ERP에 보고하는 식으로 해당 시스템이 정보를 참고할 수 있게 해준다.
MES에서 품질 관리란 크게 품질검사항목마스터, 품질검사이력으로 나뉜다. 마스터는 합격기준값인 최소값과 최대값을 공정별, 품목별로 관리하는 것이다. 품질검사이력은 품질검사작업을 실시한 이력이라고 보면 된다.
MES의 하위 시스템으로 볼 수 있는 SPC(통계적 공정 관리, Statistical Process Control)는 품질 관리에 맞게 전문화된 시스템이다. 이때는 품질에 대한 간접 요인들인 공정 효율성, 수율, 공정능력 등을 평가하고 관리한다고 생각해도 좋다. 다만 SPC의 계산값들은 미리 저장된 것이 아니라 조회가 일어날 때마다 생산이력 데이터에 접근하여 그때그때 계산한 것이 보통이다. 그러니 데이터를 얻으려면 직접 시스템에 들어가 취하는 편이 낫다.
제조업 공장에 존재하는 생산라인들은 대체로 모듈화를 지향한다. 그 때문에 A 라인에 있던 설비를 B 라인으로 옮기는 것도 가능하다. 이럴 경우 현업에서는 MES 상에서 공정 라우팅 마스터를 조정해 주는 액션으로도 가동할 수 있는 상태가 된다.
또한 라우팅은 공장 자동화의 필수적인 마스터 정보이다. 어떤 분기하는 포인트 x가 있다고 가정해 보겠다. 이 포인트의 분기는 a 제품을 생산하는 A 생산라인과 b 제품을 생산하는 B 생산라인 모두와 연결되어 있다. 만약 a 제품이 x 포인트에 도착하여 고정식 바코드 스캐너에 인식되면, 시스템은 이 제품을 어디로 보낼 것인지 판단하여 설비에 알려준다. 공정 라우팅 기능의 대표적인 활용 예다. 다시 말해 이 기능은 공정과 공정의 네트워크를 품목별로 관리할 수 있게 만들어준다.
제조업 분야에서 들어오는 데이터 분석 의뢰의 대부분은 품질 데이터 분석이다. 이 데이터를 분석하려다 보면 고객의 MES 내부를 들여다보며 품질 데이터 구조를 익혀야 하는 일이 발생한다. 이를 위해 MES에서 품질 정보를 어떻게 디지털로 구조화하는지, 품질 데이터의 특징과 함께 살펴볼까 한다.
검사의 종류를 관리하는 마스터 정보이다. 비전 검사, 저항값 측정, 절연 검사, 전압 검사 등의 검사 마스터를 관리한다. 여기서 눈여겨봐야 할 것은 검사 항목과 연관된 설비 혹은 공정들이 무엇인지에 대한 정보다. 대부분 검사 항목이란 설비 혹은 공정의 속성으로 관리된다. 그러니 설비 혹은 공정 마스터 테이블과 조인하면 관계를 파악하기에 어렵지 않을 것이다.
앞서 제조업의 공정은 모듈화 되어있다고 언급한 바 있다. 여기서 일부 독자는 ‘공정’이라는 개념과 ‘설비’라는 개념이 각각 독립적이라는 것을 눈치챘을 수도 있다. 공정은 개념의 문제일 뿐이다. 복잡해 봐야 바닥에 테이핑하고 줄을 쳐놓은 것에 불과하다. 하지만 설비는 실제 하드웨어다.
a 설비는 A 라인에서 B 라인으로 이동하거나 다른 지역 공장으로 이설될 수도 있다. 하지만 이설이 되더라도 그 설비는 여전히 a 설비여야 한다. a 설비의 보전 정보(내구재 부품 교체일 등) 역시 유지되는 구조다.
그 외로 최근에는 검사 설비가 최종 공정뿐만 아니라 공정 중간에 배치되는 경우도 흔하다. 예컨대 도금 공정이 끝난 다음 비전 검사 설비가 배치되거나 PCB 제작 후 온도 검사가 배치되는 식이다. 따라서 모든 검사 데이터가 마지막 제품 포장 전에 이루어질 것이라 단순하게 생각하면 안 된다. 공정 라우팅 정보를 참고하여 미리 구조를 파악해 두는 것이 좋다.
검사결과이력은 결국 품질의 관점에서 분석할 대상이 된다. 그 때문에 마스터 정보와 조인하여 이 검사 이력이 기준 요건을 충족하는지, 혹은 어떤 공정에서 처리된 것인지 파악할 수 있다.
품질 검사란 품질 관련 조직의 공정 단위인 ‘로트’ 하나가 완공되었을 때, 무작위 샘플링으로 이 제품이 품질 요건을 충족하는지 통계적으로 조사하는 것만을 의미하지 않는다.
최근 품질의 중요성이 부각되면서 품질 검사를 하나의 공정으로 두고 모든 제품이 이를 통과하며 전수조사하는 방식도 많아졌다. 이런 환경 변화로 품질 관련 데이터가 방대해졌고, 그에 따라 분석 의뢰가 자주 발생하게 되었다. 따라서 보통 의뢰된 품질 데이터는 샘플링된 데이터가 아니라 전수 조사된 데이터일 확률이 높다.
이러한 품질 데이터는 분석 모델링 과정을 거쳐 분석한다. 분석 모델링이란 데이터에 분석 기법을 적용해 패턴을 파악하고 인사이트를 얻는 방법을 말한다.
하지만 MES의 몇 가지 특성은 이러한 분석 과정을 방해해 결과의 신뢰성을 떨어뜨리는 요인이 된다. 제조업 데이터 분석 모델링에서 특히 주의할 사항을 정리해 보았다.
MES는 생산 공정을 디지털로 추상화한 것으로 온전히 실세계를 재현해 낸 건 아니다. 그 때문에 데이터를 그대로 처리하지 않고 가공하는 일이 벌어지기도 한다. 적절한 처리 방법에 따라 관리하는 프로세스로 이를 처리하는 것이 바람직하지만 시스템이 소화하지 못하는 경우도 존재한다. 이때 문제가 벌어진다. 데이터를 가공하는 경우를 알아본 다음 문제 케이스를 다루겠다.
관리 중인 데이터의 가공
라인을 구축한 지 얼마 안 되었다면, 합불 판정의 기준값을 자주 수정하기도 한다. 최적화 때문일 수도 있고 품질 강화 목적일 수도 있다. 이런 이유로 MES는 판정이 내려진 시점의 기준값을 이력에 함께 저장한다. 수정이나 점검이 필요할 때는 이를 참고하여 변경 값을 추적할 수 있다. 마스터에 있는 기준값은 “현재 기준”의 기준값이라는 점에 주의할 필요가 있다.
문제 케이스: 관리되지 못한 데이터의 가공
개발 업체는 안정화 단계에서 발견된 예외 처리를 시스템에 녹여내도록 최선을 다한다. 하지만 때로는 감당하기 어려운 비용이 드는 예외도 발생한다. 이런 경우 개발 업체는 고객에게 2가지 대안, 돈이 드는 방법과 들지 않는 방법을 제시하고 선택하도록 한다. 대개 고객은 안정화 단계에서 한 번 큰돈을 지불한 상황이어서 추가 비용 지출을 꺼린다. 그래서 보통 이런 문제가 생기면 케이스 코드나 하드 코딩으로 대응한다. 시간과 돈은 유한하니 고객이 돈을 지불하지 않는다면 개발 업체도 품이 덜 드는 쪽을 택하는 것이다.
이때 문제가 되는 가공이란 품질값 등을 일반적인 수정이 아닌 특정한 규칙으로 재수정하는 경우를 말한다. 이는 사람이 할 수도 있고 설비나 시스템이 할 수도 있다.
예컨대 어떤 설비에서 점검용 표준 품의 무게가 미달해 NG(No Good)를 내야 하는 상황이 발생했다고 하자. 그러나 물리적인 변경에 예산이 많이 드는 상황이라면 일단 데이터를 수정하는 방법을 생각해 볼 수 있다. 이런 오류는 보통 사람의 실수에 조직적 실수 등이 결합해 나타난다. 소프트웨어의 변경은 물리적인 변경보다 값이 싸 공짜나 마찬가지이므로 이런 수정이 자주 일어난다. 작업한 사람들은 이를 모두 인지하고 있어 괜찮을지 모르지만 문제는 시스템이다. 시스템은 이러한 사정을 알지 못하기 때문에 데이터가 오염되고 만다.
이런 상황은 데이터 분석 기법을 적용할 때 치명적인 문제를 야기한다. Y=a+bX라는 모델의 추정을 위해 준비된 데이터 Y와 X가 있다고 하자. 이때 하필 Y가 가공함수 g(X)가 포함된 오염 데이터라면 어떨까? 그렇다면 실제로는 Y=a+bX+g(X)로 계산한 값이 나온다. 따라서 파라미터 a, b의 추정이 잘못될 가능성이 높다.
어느 정도 잘못된 추정이 나올지 통계 프로그램 R을 활용해 확인해 보았다. 먼저 Y=a+bX+e인 회귀식을 정의하고(e는 오차항이다), 결과 데이터 Y와 입력 데이터 X만으로 파라미터의 추정치 a*, b*를 얻도록 코딩했다.
결과는 a*=10.080271, b*=0.839159로 실제 a(=10), b(=0.84)에 가깝게 추정되었다.
이제 여기 일부 데이터가 오염된 상황을 가정해 X가 2 이하일 때만 2를 더해주는 가공함수 g(X)를 추가해 보았다.
결과는 a*=10.310130, b*=0.835730으로 실제와 더 멀어졌다. 두 파라미터의 표준오차 역시 기존 결과보다 증가했다. 데이터가 상당히 많았는데도 소량의 잘못된 데이터가 결과를 오염시켰다.
이는 마치 인공지능 학습에서 수가 적더라도 “깨끗한 데이터”를 사용하는 것과 같은 맥락이다. 예컨대 메타(Meta)는 LLaMA 학습에 위키 백과와 대중 서적들을 사용했지만, 더욱 방대한 페이스북 데이터는 사용하지 않았다. 이는 한국에서 개발된 AI 챗봇 ‘이루다’의 실패 요인과 비교해 볼 수도 있다. 초기 이루다는 오염된 카카오톡 데이터를 학습해 문제가 발생했고, 이에 개인정보와 필터링에 큰 비용을 치러야 했다. 이처럼 최근 들어 엔지니어들은 깨끗한 데이터로 잘 훈련된 인공지능을 목적에 맞게 파인튜닝하는 편이 훨씬 비용이 적게 든다는 걸 깨우치고 있다.
제조업 데이터 분석에서도 상황은 같다. 분석 모델링의 목적은 데이터에서 인사이트를 얻어내는 것이다. 만약 추정의 오류로 잘못된 비즈니스 결정을 내린다면, 이는 상당히 곤란한 문제를 야기할 것이다. 따라서 분석 결과의 표준 오차가 너무 크게 나온다면 가공 케이스가 있는지 담당자를 통해 조사해야 한다. 곧 이 조사 결과를 반영해 데이터를 적절하게 전처리하는 것이 현명하다.
MES 사용자들은 설비에서 올라온 데이터의 “저장 일시”를 그 액션이 일어난 시간이라고 생각하는 경향이 있다. 하지만 실제 이는 ‘데이터가 데이터베이스에 저장된 일시’인 경우가 대부분이다. 미들웨어와 통합된 MES를 사용한다면 적어도 “데이터수집일시”에 대한 정보는 보여줄 때가 있다. 이 차이는 데이터가 어떤 과정을 거쳐 MES의 데이터베이스에 저장되는지 보면 더 명확해진다.
MES를 다른 시스템과 구별해 주는 특성은 바로 미들웨어와 현장 단말기가 통합된 환경이라는 데 있다. 그런 만큼 MES 데이터를 다룰 때 항상 이 점을 주의해야 한다.
물론 데이터가 각 시스템을 거치며 발생하는 시간 차이는 미세한 편이다. 분 단위, 시간 단위로 데이터를 전처리한다면 매우 사소한 문제가 될 것이다. 하지만 분석 단위가 섬세해야 하는 경우도 있다. 예컨대 초 혹은 밀리초 단위로 설비의 특정 동작 a와 특정 동작 b의 로그를 분석해야 하는 경우라면 얘기가 달라진다. MES는 보통 설비에서 전달받거나 미들웨어 단계에서 수집한 시간을 보존해 데이터베이스에 전달한다. 이런 세밀한 시간 정보에 관심을 가져야 한다면, 실질적인 수집일시 정보를 MES가 관리하고 있는지 운영자나 개발 업체에 문의해야 한다.
저장 시간 관련 우리가 간과할 수 있는 문제가 하나 더 있다. 바로 각 설비와 서비스들 사이 시간이 동기화되어 있다는 전제 아래에서만 이 데이터가 의미 있다는 사실이다.
다양한 설비와 장비 그리고 서버들의 시간을 동기화해주는 환경이 구축되어 있지 않다면 올려 받은 일시 정보는 가치 없는 데이터가 된다. 이런 상황을 대비해 각 설비 업체와 시간 동기화를 위한 서버를 하나 정하기도 한다. 매일, 매시간 시점을 정해 신호를 주면 다 같이 동기화를 하자고 프로토콜을 정하는 것이다.
따라서 일시 정보를 얻기 위해 데이터를 조인해야 할 때는 이를 주의해야 한다. 동기화가 이루어지지 않은 상태라면 초 단위 이하 섬세한 분석은 가치 없는 분석이 될 것이다.
지금까지 데이터 분석 업무 관점에 최적화해 MES의 특징을 살펴보았다. 분석 업무 시에 무엇을 주의해야 하는지 역시 설명했다. 앞으로 제조업 분야의 데이터를 다뤄 더 좋은 품질의 분석 결과를 만들어야 할 때, 이 글이 약간이라도 도움이 되었기를 바란다.
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.