둘은 경쟁 제품이라기보다 용도가 다르다
OPC UA는 장비와 시스템 사이에서 구조화된 데이터를 안전하게 읽고 쓰는 데 강합니다. 노드, 타입, 인증서, 세션, 구독 같은 개념이 있어 설비 데이터를 의미 있게 노출하기 좋습니다.
MQTT는 가벼운 메시지를 브로커를 통해 배포하는 데 강합니다. 네트워크가 불안정하거나 여러 소비자가 같은 데이터를 받아야 하는 구조에서 유리합니다.
현장에서의 선택 기준
PLC나 장비 값을 SCADA가 읽고, 알람과 화면에 바로 써야 한다면 OPC UA가 편한 경우가 많습니다. 태그 구조를 탐색할 수 있고, 보안 정책과 인증서 관리도 비교적 명확합니다.
반대로 여러 애플리케이션이 설비 상태를 구독하거나, 클라우드·분석·모니터링 시스템으로 이벤트를 보내야 한다면 MQTT가 자연스럽습니다. 단, MQTT는 토픽 설계와 페이로드(payload) 규칙을 제대로 정하지 않으면 금방 난잡해집니다.
같이 쓰는 구조
실제 프로젝트에서는 둘을 같이 쓰는 경우도 많습니다. 현장 장비와 SCADA 사이에는 OPC UA를 쓰고, 정리된 상태나 이벤트를 MQTT로 발행하는 방식입니다.
이때 중요한 것은 원본 태그를 그대로 다 뿌리는 것이 아니라, 운영자가 이해할 수 있는 상태로 한 번 정리해서 보내는 것입니다. 예를 들어 RUN, FAULT, AUTO, COMM_BAD 같은 상태를 조합해 “운전 중”, “정지”, “통신 이상”처럼 의미 있는 이벤트로 만드는 편이 좋습니다.