4차산업혁명과 블록체인, 엣지컴퓨팅, 클라우드 스카다

- “계장에서 스마트팩토리 스마트시티 시장으로“

▲ 이상길 새길로시스템 대표
필자는 지난해 5월에 <4차산업혁명을 이끌어갈 IoT, HMI, SCADA의 진화>란 제목으로 기고를 한 바 있는데, 올해는 표제와 같은 주제를 가지고 설명하고자 한다. 지난해나 올해나 그 양쪽 뿌리는 IoT(사물인터넷) 이다. 다른 게 있다면 이 IoT 영역이 작년에는 산업중심이었다면 올해부터는 이 IoT가 우리 생활 속으로도 광범위하게 확장되고 있다는 점이다. 

특히 MS사는 올해 4월4일에 4년 동안 50억 달러(약 5조3천500억)를 IoT 시장에 투자할 것이라고 발표했다. 실로 엄청난 금액이다. 그리고 이 IoT는 블록체인 생태계를 크게 바꿀 것이고 5G와 더불어 엣지컴퓨팅과 클라우드 기반 SCADA 시장을 확대해 나갈 것으로 보인다. https://blogs.microsoft.com/iot/2018/04/04/microsoft-will-invest-5-billion-in-iot-heres-why/), (http://www.ciokorea.com/t/32/31050/37819

블록체인: 작년 하반기에 갑자기 가상화폐 비트코인이란 화두로 우리 사회를 시끌벅적하게 했다. 지난해 3~4월까지 1비트코인의 가격이 100만 원이던 게 지난해 말과 1월초에는 2천만 원까지 뛰었다. 그러다가 다시 폭락해서 4월 초 현재 800만 원대에 머무르고 있다. 그럼 이 가상화폐 비트코인과 블록체인은 어떤 관계이며, 또 블록체인은 엣지컴퓨팅과 클라우드 서버와는 어떤 관계가 있을까? 

엣지 컴퓨팅: "엣지 있다"란 말이 한 때 유행된적이 있었다. 즉, 패션 잡지계에서는 아마 세련되다 멋지다 표현을 그렇게 하는 모양이다. 그런데 최근 몇 년 전부터 이 엣지라는 말이 스카다나 IT 시스템 구성도에서 보이기 시작하고 있다. 더하여 이  "엣지(edge)"와 더불어 "포그(fog)"라는 말도 추가로 또는 비슷하게 사용되고 있다.

클라우드 스카다: 우리가 알고 있는 스카다 시스템은 C/S(Client/Server) 형태이다. 공장 네트워크 안에 중앙 서버가 있고 또 여러 대의 디스플레이 단말기 형태의 PC가 있다. 그런데 클라우드 기반 스카다 시스템은 이와 어떻게 다른가? 본고에서는 위와 같은 3가지 키워드를 이해하기 쉽게 잘 설명해 보고자 한다.

필자가 생각하는 이 IoT 시장은 스마트 팩토리와 스마트 시티다. 둘 중에서도 스마트 시티의 시장이 훨씬 크다. 그래서 그간 오랫동안 공장자동화 즉, 전통적 유선기반 기술에서 성장해온 계장(計裝, Instrumentation) 또는 계측 제어에 몸담아온 우리 엔지니어들에게는 하루빨리 무선 위주의 기술인 IoT의 기술 습득이 매우 중요하다. 이제는 공장에서 설비 자동화만으로는 이 수입 개방이 된 국제사회 경쟁 속에서 따라갈 수가 없기 때문이다. 

따라서 공장은 더욱 스마트하게 발전되어야 하고 그 공장의 생산품은 국제 경쟁력을 갖추는 제품으로 세심하게 다양화할 필요가 있다. 그래서 MES나 PLM, ERP, SCM, EMS와 같은 IT시스템과 SCADA 시스템의 연계 연동이 더욱 필요하게 되며, 그러한 SCADA가 되기 위해서는 유무선/이동 센서네트워크를 통해서 많은 실시간 데이터의 수집이 필요하다. 즉, IoT 기기를 통한 빅테이터 수집이 있어야만 AI를 통해서나 또는 그렇지 않고도 통계 예측을 통해서 효율적 최적 관리를 할 수가 있다. 

유선에서의 Modbus처럼 무선 및 이동통신망을 이용한 IoT 기기와 그 프로토콜 또는 연결 방법에는 여러 가지가 있다. 그중에서도 무선에서 대표적인 것은 와이파이(Wifi) 외에 Bluetooth BLE, Z-Wave, ZigBee, NFC 등이 있고, 이동통신망에서는 LoRA, SigFox, NB-IoT, LTE-M, Cat M1 등을 이용한 기기가 있다. 

통신 방법으로는 MQTT, HTTP, CoAP, 웹Socket 통신 등이 있는데, 이런 다양한 통신 방법을 표준화시키고자 하는 노력이 그동안 꾸준히 진행되어 왔다. 그중에서 가장 대표적인 것은 oneM2M 표준이고 그 한국적 사례로 Mobius라는 공개 솔루션이 있다. http://www.onem2m.org/  http://developers.iotocean.org/archives/module/mobius

필자는 이 중에서도 계장 엔지니어들은 MQTT 프로토콜에 대해서 매우 주시할 필요성을 느끼고 있다. 사실 이 MQTT는 오래전에  SCADA 시스템의 전신인 Telemetry(TM/TC)용으로 개발된 프로토콜이었는데 그 동안 사용되어오지 않다가 최근 M2M과 IoT의 출현 이후 크게 부각된 기술이다. 

이 프로토콜의 특징은 Modbus나 기타 전통적 산업용 프로토콜이 Master와 Slave 관계나 네트워크에서 토큰 동기 방식 등의 방식으로 발전된 반면 MQTT는 메세이징 프로토콜로서 아주 짧고 가벼우며, 단순하게 구성되어서 IoT에 매우 적합한 구조다. 자세한 기술 설명은 아래 자료 사이트를 참고하길 바라며 이제부터 본론에 들어가기로 한다. 

1. 블록체인과 IOTA

흔히 블록체인 기술을 말할 때 1세대 2세대 3세대 또는 1.0, 2.0, 3.0으로 구별하고 있다. 

1.0은 사토시 나카모토라는 가명을 쓴 연구자가 2008년 10월 31일에 암호화 기술 커뮤니티에 "비트코인: P2P 전자화폐 시스템"이란 논문을 발표했다. (논문 번역문:  https://encodent.com/wp/wp-content/uploads/2017/09/bitcoin-translated-korean-170927.pdf

이후 2009년 1월 3일 비트코인이란 암호화폐를 선보이며 자기 논문 내용을 증명해 보였다. 이때 처음 블록체인 기술을 적용했다. 비트코인은 블록체인 안에 가상화폐 발행과 거래내역을 기록한다. 즉, 블록체인(blockchain)이란 블록(block)을 잇따라 연결(chain)한 모음인데 이 블록에는 일정 시간 동안 확정된 거래내역이 담긴다. 

그림에서와 같이, 모든 사용자는 블록체인 사본을 각자 갖고 있다. 그리고 블록체인 네트워크에 연결된 컴퓨터의 반수가 넘는 사용자가 동의한 거래내역만 진짜로 인정하고 영구적으로 보관할 블록으로 묶는다. 새로 만든 블록은 앞서 만든 블록체인 뒤에 덧붙인다. 이런 과정을 매 10분 간격으로 반복하고 있어서 비트코인의 모든 거래 내역이 중앙에 통제 받는 컴퓨터가 없이도 거짓이 발생되지 않는다. 

그러면 암호화폐는 어떻게 발행 되는가? 사실 위에 말한 산업자동화와 거래내역은 관계가 있지만 비트코인 암호화폐 발행과는 큰 관계는 없다. 하지만 이해를 위해서 설명하자면 비트코인은 사용자들에 의해 직접 발행이 되는데, 이를 통상적으로 채굴(mining)이라고 부른다. 모든 블록에는 일종의 암호 역할을 하는 해시(hash)값이 포함되어 있다. 해시란 함수의 한 종류인데 여기서는 암호화된 함수를 말한다. 채굴은 컴퓨터의 수학 기능을 실행시켜서 이 암호화된 함수 즉 해시값을 찾는 것으로 이를 작업증명(POW: Proof of Work)이라고 한다.  
     
채굴에 참여하는 모든 사용자가 해시 값을 찾기 위한 경쟁을 벌이며, 특정한 사용자가 목표 값에 해당하는 해시 값을 먼저 찾는 데 성공하면 새 ‘블록’을 발행하게 된다. 그리고 블록을 발행하고 이를 네트워크에 전파하는 동시에 블록 발행 보상으로 ‘비트코인’과 해당 블록 안에 포함된 ‘이체 수수료’를 받게 된다. 이응 ‘비트코인 지급’이라는 경제적 보상이 채굴자들로 하여금 해싱작업에 참여하는 동기가 된다. 

2.0은 스마트 계약(smart contract) 개념과 블록체인의 응용 플랫폼이 제공되는 기술을 말한다. 이 기술의 창시자는 러시아 출신 캐나다 개발자 비탈릭 부테린으로 블록체인이 화폐에 구속되지 않고 새로운 가치를 창출할 수 있는 좋은 도구로 발전된 기술이다. 그래서 이 2.0은 IoT 산업자동화나 또 MES, EMS, PLM, ERP, SCM 등에 활용될 수 있는 훌륭한 신기술이라고 볼 수 있다. 

비탈릭 부테린은 2013년 ‘차세대 스마트 계약 &분산 응용 애플리케이션 플랫폼’이라는 제목 아래 ‘이더리움 백서’를 발간했다. 백서에는 비트코인에서 한 단계 더 나아간 블록체인 프로토콜이 담겨 있다. 비트코인은 블록체인 기술을 금융거래 시스템에 접목한 프로토콜이다. https://www.ethereum.org/

비탈릭 부테린은 금융거래에 한정, 특화된 블록체인 프로토콜을 기타 모든 분야로 확장할 수 있다는 것을 기술적으로 제시했다. 이더리움을 이용하면 미디어, 에너지, 예술, 유통 등 상상력이 미치는 모든 분야에 블록체인 기술을 접목할 수 있다. 다시 말하면, 이더리움의 등장으로 블록체인 발전사에 이정표인 동시에 디딤돌이 됐다. 2세대 블록체인, 즉 블록체인 2.0 시대가 열린 것이다.

스마트 계약이란 계약 합의 프로세스를 자동화한 컴퓨터 프로그램이다. 코드에 적힌 계약 조건이 만족되면 그 즉시 계약이 성사되게끔 하는 것이다. 이때 계약 상대방이 과연 믿을만한 사람인지, 중간에 신뢰를 보증할 제3자가 필요한 것은 아닌지, 계약이 안전하게 처리됐는지를 고민할 필요가 없다. 모든 과정은 자동으로 이뤄진다. 그리고 이더리움의 스마트 계약 코딩에는 쉬운 스크립트 언어인 솔리디티(Solidity) 언어로 프로그래밍 한다. 이런 스마트 계약 코딩 예제는 많은 소스가 인터넷에서 공유되고 있어서 개념과 방법만 알면 초보 프로그래머라도 자기가 원하는 비즈니스 모델의 스마트 계약서를 코딩으로 만들어 낼 수가 있다. http://etherscripter.com/what_is_ethereum.html

또, 이런 스마트 계약을 통해 다양한 블록체인 프로젝트를 구현할 수 있게 하는데, 이렇게 구현된 서비스를 분산형 애플리케이션(DApp: Decentralized Application)이라고 한다. DApp은 각각 서비스 성격, 비즈니스 모델에 적합한 스마트 계약을 기반으로 만들어진다. 이더리움 프로젝트 홈페이지에는 이더리움을 기반으로 만들어진 다양한 DApp들이 소개돼 있다. https://github.com/ethereum  

블록체인 3.0이란 1.0과 2.0의 블록체인이 암호화폐를 구현하는 기술로서 금융 경제 분야나 계약에 국한되어 사용되고 있다면, 3.0은 IoT나 의료, 물류, 유통 등 비금융 분야로 확대 적용할 수 있는 기술이다. 

특히 이 3.0은 이전 버전에서의 취약한 문제를 잘 해결할 수 있는 기술이 개발되었는데 예를 들면 1.0에서 블록이 생성되는데 10분이 걸렸고 2.0에서는 3분이 걸렸으나, 이를 초단위로 앞당기는 다양한 합의(컨센서스 Consensus) 알고리즘의 개발했다. 이는 탈중앙화 앱을 쉽게 만들 수 있는 블록체인 플랫폼과 사생활 보호 및 보안기술의 획기적인 발전이라고 볼 수가 있다. 

또, 블록체인 3.0 단계는 단순히 특정 분야를 넘어서 사회 전반에 블록체인 기술이 영향을 미친다. 정부 정책을 활용하는 단계뿐만 아니라 의료계, 운송업, 스포츠, 예술 분야에서도 이러한 기술들이 효과적으로 적용할 수 있어 사회 구성원 개개인에 의한 신뢰를 형성한다.

그런데, 우리 산업자동화 시각에서 본다면 이 중에서도 아이오타(IOTA)의 등장이다. 이 IOTA에서 사용되는 새로운 합의 기술은 정말 획기적이라고 말할 수 있다. 

이 핵심 알고리즘은 DAG(방향성 비순환 그래프, Directed Acyclic Graph)라는 것이다. DAG는 IOTA에서는 ‘탱글’이라는 기술로 다듬어 소개되고 있다. 블록체인은 Block + Chain 이다. DAG 기술은 DAG 알고리즘을 블록체인 기술에 적용하면서 과감히 블록을 없애고 체인의 형식만을 남겨 버리기 때문에 사실상 더 이상 블록체인이라고 부를 수 없을 정도다. IOTA 기술을 IoT 분야에 적용하는 사례는 금년에 들어와서 점점 증가 추세이며 다음 사이트에 많은 정보가 있다. http://www.iotakorea.net/  https://iota.org  https://forum.iota.org/c/projects 

2. 엣지컴퓨팅 : 태양광발전, OPC-UA, MQTT

필자는 지난 3월 ‘Smart Factory + Automation World 2018 전시회’에 두 작품을 출품했다. 하나는 스마트 마이크로그리드에 적용할 수 있는 블록체인기술 기반 태양광발전 원격모니터링 및 거래 시스템이고 또 한 작품은 스마트 팩토리의 핵심기술 중 하나인 고기능 데이터 수집기다. 두 작품 모두 엣지컴퓨팅 기술이 적용된 기술이다. 

태양광발전 원격모니터링시스템은 상위 서버가 블록체인 기술을 활용해 개발한 태양광 코인을 활용하기 위한 토큰넷에 물려 있으며, 데이터 수집기는 상위 서버가 스카다나 MES/EMS로 OPC-UA나 MQTT로 연결되는 것이다.    

태양광발전 원격모니터링시스템은 지난해에 국내 최초의 암호화폐 개발사의 BOSolar 프로젝트에 참여해 6개월 동안 실증 증명된 것을 개선한 것이다. 즉 모드버스(Modbus) 통신은 물론 지-웨이브(Z-Wave), 지그비(ZigBee), 로라(LoRa), 와이파이(Wi-Fi) 등 다양한 유/무선이동통신망을 통해 전력량을 원격 수집할 수 있다. 또한, 블록체인 기반 토큰네트 상에서 에코마일리지 등을 보상하는 시스템을 더욱 개선 발전시켜 ‘새길로시스템’ 자체 에너지코인 생성 거래 생태계 구성의 초보단계를 데모로 선보였다. 

이는 향후 잉여 전력을 사고팔 수 있는 시스템으로 마이크로그리드 환경 적용이 기대된다. 최근 박원순 서울시장은 국내 매체와 인터뷰에서 "오는 4월에 완성될 블록체인 기반 시정혁신 정보화전략계획(ISP)인 블록체인 마스트플랜에 에코마일리지 보상 계획도 포함하고 있다"고 말한 바 있다. https://www.youtube.com/watch?v=KPJm6NIyOGs

또 다른 기술은 스마트팩토리 프로토콜 표준인 OPC-UA(Open Platform Communication Unified Architecture)와 낮은 대역폭의 소형 디바이스에 최적화된 메시징 프로토콜인 MQTT(Message Queuing Telemetry Transport)로 다양한 프로토콜을 가진 디바이스의 데이터를 수집할 수 있는 통합 데이터 수집기다.  

이 수집기는 리눅스 버전과 윈도우즈 버전이 있다. 특히 리눅스 버전은 약 4만 원대의 라즈베리파이와 같은 보드도 사용할 수 있어 PLC, 계량기, CNC 등 공장 내 산재한 다양한 이기종 설비의 실시간 데이터를 수집할 수 있다. 따라서 라즈베리파이와 같은 자체 엣지컴퓨터의 데이터베이스에 저장 가공해, MES(실시간 생산정보 관리 시스템) 및 ERP(전사자원관리), EMS(에너지관리시스템), PLM(제품수명주기관리) 등 IT시스템 서버와 데이터를 주고받을 수 있다.  

현재 윈도우즈 버전은 4차산업혁명의 OPC-UA 표준 규격을 따르고 있어서 켑웨어(Kepware)사의 캡서버이엑스(KEPServerEX) 및 코파데이터(Copa Data)사의 제논(Zenon) 등과 같은 다른 회사의 OPC-UA와의 서버(Server)/클라이언트(Client) 상호 연결 및 호환도 가능하다. 따라서 스마트팩토리 기술 표준화와 투자비용에 크게 고민하는 회사에 많은 도움이 될 수 있다.  

엣지컴퓨팅이란 위의 두 그림과 같이 실시간으로 데이터를 처리 가공해야 하며 SQL과 같은 데이터베이스 기능 탑재는 물론 인공지능 기술도 탑재하고 있어 중앙 서버의 부담을 덜고 있다. 자율주행차나 산업 현장에 구축된 IoT 인프라에서 쏟아지는 데이터들 중에는 실시간으로 대응해줘야 의미를 갖는 것들이 많은데 원격지에 있는 클라우드 서비스로 커버하기는 무리가 있다. 물리적으로 지연 시간이 생기는 것을 피할 수 없기 때문이다. 이런 상황에선 센서가 부착된 설비 근처에 데이터 처리를 위한 엣지컴퓨팅 하드웨어를 따로 두는 것이 마땅하다. 

또 하나의 엣지 컴퓨팅의 특징은 사용되는 하드웨어나 소프트웨어 기술이 탈 윈도우즈 O/S이다. 그래서 엣지컴퓨팅 인프라를 구축하는 데에 반드시 윈도우즈 PC를 사용하지 않아도 되며 가벼운 리눅스나 iOS 또는 안드로이드 O/S를 사용하는 하드웨어를 사용할 수가 있다. 다시 말하면 4만원대의 라즈베리파이 보드를 사용해서도 엣지 컴퓨팅 인프라를 구축할 수가 있다. 

실제로 위의 두 사례는 모두 라즈베리파이 보드를 사용해서 시연을 해 보인 것으로 태양광발전 쪽에는 Node-RED라는 PLC와 비슷한 플로우(FLow) 시각 프로그래밍 방식으로 개발됐으며 후자 스마트팩토리 데모 셋트(Demo Set)의 경우는 엣지 인프라를 관리할 수 있는 윈도우즈 기반 관리 S/W(위 그림에서 KingIOBox Center)가 있기 때문에 사용자는 프로그래밍 지식이 전혀 없어도 PLC나 MMI 프로그램 정도만 볼 수 있는 사람이면은 누구나 엣지 컴퓨팅 인프라를 구축할 수가 있다.

3. 클라우드 스카다 vs 전통적 스카다, 그리고 웹기반 SCADA

아래 그림에서 실시간 데이터수집기 엣지 컴퓨터 KingIOServer를 중심으로 또 빨간 사선을 경계선으로 A 구역은 클라우드 스카다가 존재하는 것이고 B 구역은 이제까지 공장에서 사용하고 있는 C/S 기반의 전통적 스카다 시스템이 존재하는 영역이다. 이 A와 B의 영역에는 스카다 시스템뿐만 아니라 리얼타임 데이터베이스(RTDB)나 MES, EMS 등이 각각 존재하고 있다. 서로가 다른 점은 B는 폐쇄적인 반면 A는 개방성을 띠고 있다. 따라서 A는 특정 구역만을 커버하는 것이 아니라 구역을 가리지 않고 초연결할 수 있는 광역적 시스템이라고 볼 수가 있다.

이러한 구분은 먼저 투자 면에서 선택 고려된다. 전통적 스카다는 사용하기 전에 막대한 투자가 필요하며 운영을 위해 상당히 복잡한 인프라를 구축하고 유지해야 한다. 또한 현장 서버를 설치하고 유지 관리해야 하기 때문에 시스템이 실제로 가동되고 실행되기까지 오랜 시간이 걸릴 수 있으며 변경 또는 수리로 인해 비용이 많이 들고 불편한 지연이 발생할 수 있다. 반면, 클라우드 SCADA 시스템은 훨씬 빠르게 설정될 수 있으며, 기존 시스템에 필요한 수개월 이 아니라 수일 수 시간 내에 작동할 수도 있다. 

또한 전통적 스카다 시스템의 설치보다 훨씬 저렴하다. 결국 클라우드 스카다는 시스템 설치 시간과 비용을 절약할 수 있으며, MES나 EMS 등 무엇이든 업데이트하거나 변경해야 할 때 더 많은 유연성을 가진다. 또, 다른 위치에 백업 할 수 있으므로 피해가 발생했을 때 쉽게 복구 할 수 있으며 자연 재해 또는 기타 주요 문제가 발생할 경우 위험 부담이 훨씬 줄어든다. 

이러한 많은 이점이 있음에도 이런 클라우드 스카다는 많은 위험성을 가지고 있다. 특히 민감한 데이터나 중요한 데이터를 정기적으로 처리하는 용도에는 더욱 그러하다. 그래서 특별한 필요성 여부와 우선순위를 염두에 두고 위험성을 조사해야 한다.  

클라우드 기반 스카다 시스템에서 가장 큰 위험 요소 3가지는 첫째 보안, 둘째 성능, 셋째 안정성이다. 

첫째 보안은 혹시 실수나 시스템에 이상으로 외부 누출이 발생했을 때 그 데이터가 외부에 공개해도 좋은지를 기준 삼아 판단해야 한다. 그리고 클라우드를 서비스 자체가 해킹을 당하거나 문제가 발생했을 때도 영향을 받을 수가 있다.  

둘째는 성능 문제다. 클라우드 서비스는 제공업체의 서버 성능이나 트래픽과 통신 환경에 의존하고 있기 때문에 시스템에 과부하가 걸리게 되면 지연현상이 발생하게 되고 통신 장애가 일어나 데이터 손실이 발생하게 된다. 따라서 이런 우려를 보완하기 위하여 앞에서 설명한 엣지컴퓨팅 인프라를 반드시 구축해야 하지만 그렇지 못할 경우에 발생되는 위험이다. 

셋째 안정성 또는 신뢰성. SCADA 시스템 데이터는 일반적으로 실시간 모니터링 및 제어에 의존하기 때문에 이 기능을 몇 초 또는 몇 분 동안 잃어버리면 생산 부서가 혼란에 빠질 수 있다. 즉, 클라우드 서버가 고장 나거나 연결이 끊어질 수도 있으며, 서버 연결이 많을수록 위험도는 증가한다. 그래서 클라우드 SCADA 시스템은 서비스 받는 서버의 안정성 또는 신뢰성이 매우 중요하다. 이에 대안으로 나온 것이 순수 JAVA 프로그램언어 웹기반 SCADA 시스템으로 미국 Inductive automation사의 Ignition과 같은 SCADA S/W이다. https://inductiveautomation.com/ignition/

한편, 국내 기술로 개발된 SCADA는 이번 스마트팩토리 전시회에서 살펴봤는데 BNF테크놀로지사의 HanPrism과 같은 S/W와 자이솜의 .Net 기반의 X-SCADA가 있다. 그리고 MES 전용 S/W로 국내 산업계에서 오랜 경험과 실적을 가진 ACS사의 DASOM이 있다.     

[이상길 새길로시스템 대표, senior48@hanmail.net]