아키텍처와 통합: ISA-95, OT/IT, 그리고 엣지-투-클라우드
📍 현재 위치: 6장에서는 공장 데이터의 각 영역을 소유하는 정보 시스템들을 소개했습니다. 이번 장에서는 이 시스템들을 하나의 일관된 전체로 쌓아 올리는 아키텍처를 — 가장 낮은 센서에서 클라우드에 이르기까지 — 보여줍니다.
지난 장에서 우리는 바이오 생산 공장을 운영하는 시스템들의 면면을 만났습니다. 히스토리언(historian)(모든 타임스탬프가 찍힌 센서 측정값을 기록함), MES(Manufacturing Execution System, 제조 실행 시스템, 단계별 배치 기록을 이끄는 시스템), LIMS(Laboratory Information Management System, 실험실 정보 관리 시스템, 품질관리 시험 결과를 보관함), 그리고 ELN(Electronic Laboratory Notebook, 전자 실험 노트, 과학자가 실험을 기록하는 곳)입니다. 각 시스템은 자신만의 데이터를 소유하며, 이들 사이에는 통합 이음매(integration seams) — 한 시스템이 다른 시스템에 데이터를 넘겨주어야 하는 지점 — 가 놓여 있습니다. 이음매가 새는 곳에서는 데이터 사일로(data silos), 즉 서로 결코 소통하지 않는 정보의 섬들이 생깁니다.
이번 장은 그 시스템들을 조직하는 평면도(floor plan)에 관한 것입니다. 건물에 구조 설계도가 있듯이, 공장의 컴퓨터와 기계는 참조 아키텍처(reference architecture) — 계층(layer)의 합의된 지도, 누가 어디에 자리하는지, 그리고 그들 사이에서 정보가 어떻게 이동하는지 — 를 따릅니다.
높은 사무용 빌딩을 떠올려 보세요. 로비와 하역장(공장 현장)은 물리적인 일을 처리합니다. 중간 층들은 그날의 작업을 조율합니다. 최상층은 몇 주 앞을 계획하는 임원실입니다. 정보는 보고서의 형태로 엘리베이터를 타고 위로 올라가고, 지시는 명령의 형태로 아래로 내려갑니다. 이번 장의 참조 아키텍처는 어떤 기능이 어떤 층에 속하는지 — 그리고 어떤 엘리베이터가 어디에서 멈출 수 있는지 — 를 명시하는 건축 법규, 즉 건물을 안전하면서도 효율적으로 유지하는 규칙입니다.
이번 장에서 다루는 내용
우리는 자동화된 공장의 고전적인 계층 지도에서 출발하여, 이 지도가 잇는 두 세계 사이의 문화적 충돌, 원시 신호를 의미로 바꾸는 변환 계층, 데이터를 기계의 엣지(edge)에서 클라우드까지 실어 나르는 현대적 경로, 그리고 그 결과 만들어진 데이터 그림자(data shadow) — 모든 배치가 만들어지며 드리우는 온전한 디지털 기록 — 가 신뢰할 수 있는 상태로 남을지를 결정하는 저장과 보안의 선택을 설명합니다.

상류/하류가 통합된 공장. 물리적으로는 하나의 시설이지만, 데이터 관점에서는 현장 센서에서 엔터프라이즈 시스템까지 이르는 계층형 아키텍처입니다.
통합 USP/DSP 플랜트. "USP DSP Plant" by CC1984USA, CC BY-SA 4.0(https://creativecommons.org/licenses/by-sa/4.0/), Wikimedia Commons; 수정 없이 사용. 이 이미지는 CC BY-SA 4.0 라이선스에 따라 배포되며 동일 라이선스로 재사용할 수 있습니다. 이 라이선스는 이미지에만 적용되며 이 책의 나머지 부분에는 적용되지 않습니다.
ISA-95 / 퍼듀 계층: 데이터는 위로, 명령은 아래로 흐르며 OT와 IT가 만납니다.
저자가 AI의 도움을 받아 직접 제작한 그림입니다.
계층 지도: 퍼듀와 ISA-95
우리는 5장에서 퍼듀/ISA-95 레벨을 간략히 만났습니다. 여기서는 다섯 레벨 전부를 펼쳐 봅니다. 1994년에 퍼듀 대학교(Purdue University)의 시어도어 윌리엄스(Theodore Williams)와 동료들은 모든 대규모 산업 기업을 계층의 스택으로 기술하는 방법을 정형화했습니다. 이것이 퍼듀 엔터프라이즈 참조 아키텍처(Purdue Enterprise Reference Architecture)이며, 보통 퍼듀 모델(Purdue model)로 줄여 부릅니다 [1]. 이 모델은 국제 표준 ISA-95(IEC 62264로도 발행됨)의 근간이 되었는데, ISA-95는 공장을 제어하는 시스템이 비즈니스를 운영하는 시스템과 어떻게 연결되는지를 정의합니다 [2].
레벨 0-2: 운영 현장
맨 아래 세 레벨은 물리적 작업이 일어나는 곳 — 듣고 냄새 맡을 수 있는 공장의 부분 — 입니다. 이 레벨들은 자매편의 제조 단계들과 직접 대응됩니다: 레시피가 생산 바이오리액터를 구동할 때, 그것이 명령하는 교반기, 가스 스파저, 공급 펌프가 모두 여기에 자리하며, 그 용기에 볼트로 고정된 프로브들이 레벨 0의 계기입니다.
ISA-95는 공장을 번호가 매겨진 다섯 개의 레벨(level)로 조직합니다 [2]:
- 레벨 0 — 물리적 공정과 그 현장 계기. 물리적 실체: 바이오리액터(bioreactor) 그 자체, 그 배양액(broth), 밸브와 펌프, 그리고 거기에 볼트로 고정된 프로브(probe)와 센서. 이것은 만들어지고 있는 분자와 그것에 닿는 계측 장비입니다 — pH 프로브는 측정하고, 밸브나 펌프는 작동합니다.
- 레벨 1 — 기본 제어. 그 현장 계기를 읽고 명령하는 제어 기능으로, 초 단위로 이루어집니다. 여기에 PLC(Programmable Logic Controller, 프로그래머블 로직 컨트롤러, 견고한 산업용 컴퓨터) — 예컨대 록웰 앨런-브래들리 CompactLogix(Rockwell Allen-Bradley CompactLogix)나 TIA Portal로 프로그래밍하는 지멘스 SIMATIC(Siemens SIMATIC) 컨트롤러 — 가 자리합니다: PLC는 pH 프로브를 읽고 펌프를 구동하여 설정값(setpoint)을 유지합니다. 이것은 매 순간 공정에 닿는 조절 제어(regulatory-control) 계층입니다.
- 레벨 2 — 감독 제어. 운영자가 한 유닛 전체에 걸쳐 지켜보고 조종하는 자동화입니다. 여기에는 SCADA 시스템(Supervisory Control and Data Acquisition, 감독 제어 및 데이터 수집)과 화면에 표시되는 HMI(Human-Machine Interface, 인간-기계 인터페이스)가 자리합니다. DCS(Distributed Control System, 분산 제어 시스템) — 바이오 제약에서 널리 쓰이는 ABB Ability System 800xA나 에머슨 DeltaV(Emerson DeltaV) 같은 — 는 보통 레벨 1-2에 걸쳐 있으며, 기본 제어와 감독 제어를 하나의 플랫폼으로 결합합니다.
레벨 3-4: 정보 계층
운영 현장 위에는 기록과 계획의 세계가 자리합니다. 이 두 레벨은 밸브를 건드리지 않습니다. 이들은 현장이 무엇을 했는지, 그리고 다음에 무엇을 해야 하는지를 추론합니다.
- 레벨 3 — 제조 운영. 공장 조율 층입니다: 6장에 나온 MES(예: 지멘스 Opcenter/SIMATIC IT, 록웰 FactoryTalk PharmaSuite, 또는 다쏘 시스템 Apriso(Dassault Systèmes Apriso)), 히스토리언(예: AVEVA/OSIsoft PI System, AVEVA Historian(구 Wonderware Historian), Aspen InfoPlus.21, 또는 Honeywell PHD), LIMS(예: LabWare LIMS, Thermo Scientific SampleManager, 또는 Benchling)가 여기에 자리하여 작업을 스케줄링하고 배치 기록을 조립합니다. 레벨 3은 또한 실험실 결과가 아키텍처로 들어오는 곳입니다: 분석가가 분석 및 제제 개발 중에 출하 분석을 수행할 때, 그들이 만드는 LIMS 기록이 이 레벨에 안착합니다.
- 레벨 4 — 엔터프라이즈. 비즈니스 시스템 — ERP(Enterprise Resource Planning, 전사적 자원 관리, 주문·재고·재무를 다룸) — 으로, 몇 주, 몇 달 앞의 생산을 계획합니다.
상호 보완적인 표준인 ISA-88(IEC 61512)은 배치(batch) 제조 — 한 번에 정의된 일정량의 제품을 만드는, 바이오 제약의 지배적인 방식 — 를 위해 이 그림을 정교하게 다듬습니다. ISA-88은 물리적 공장을 깔끔한 계층 구조 — 프로세스 셀(process cell), 유닛(unit), 장비 모듈(equipment module), 제어 모듈(control module) — 로 나누고, 레시피(recipe)(무엇을 만들지)를 장비(equipment)(무엇이 만드는지)와 분리합니다 [7]. 그리고 레시피 쪽에서는 각 배치 절차를 페이즈(phase)라 불리는 순서가 정해진 단계들 — 예컨대 Charge 페이즈, 그다음 Production, 그다음 Harvest — 로 나누는데, 이는 레시피가 명령하는 가장 작은 공정 동작 단위입니다. 이 분리 덕분에 같은 바이오리액터가 오늘은 한 레시피를, 내일은 다른 레시피를 돌릴 수 있습니다.
핵심 개념은 흐름의 방향입니다. 데이터는 위로 흐릅니다: 레벨 0의 프로브에서 나온 pH 측정값은 레벨 1의 컨트롤러가 수집하고, 레벨 3의 히스토리언에서 트렌드(trend)가 되며, 마침내 레벨 4에서 수율 보고서가 됩니다. 명령은 아래로 흐릅니다: 레벨 4의 생산 주문은 레벨 3에서 스케줄링된 배치가 되고, 레벨 2에서 레시피와 감독 동작이 되며, 레벨 1에서 컨트롤러가 강제하는 설정값이 되고, 마침내 레벨 0의 장비에서 밸브가 열리는 것이 됩니다.
같은 다섯 레벨은 상류 바이오리액터뿐 아니라 하류(정제) 트레인도 실어 나릅니다. 단백질 A 포획 단계 — 정화된 하베스트에서 항체를 끄집어내는 친화 크로마토그래피 단계 — 가 적재/세척/용출/세정의 4단계 사이클을 돌릴 때, 크로마토그래피 스키드의 UV280 검출기, 전도도 프로브, pH 프로브는 레벨 0의 계기입니다. 페이즈를 순서대로 진행하는 스키드 PLC는 레벨 1이고, 운영자가 지켜보는 컬럼 관리 SCADA는 레벨 2이며, 용출 풀(elution pool) 부피, 피크 시작/종료, 그리고 그 뒤를 잇는 저-pH 바이러스 불활화 홀드(low-pH viral-inactivation hold) — 자매편이 바이러스 불활화에서 다루는, 정해진 시간 동안 유지되는 짧은 산 단계(약 pH 3.5) — 는 레벨 3의 MES 배치 기록에 하나의 페이즈로 기록됩니다. 하류의 pH = 3.5 측정값은 상류의 FeedFlow = 12.4와 아키텍처적으로 동일합니다: 스택이 어떤 단계, 어떤 컬럼, 어떤 홀드 타이머, 어떤 배치인지를 스탬프 찍기 전까지는 아무 의미도 없는 레벨 0의 숫자입니다. ISA-88 페이즈 모델 덕분에 같은 아키텍처가 유가식(fed-batch) 바이오리액터의 Production 페이즈와 크로마토그래피의 Elute 페이즈를 하나의 어휘로 기술할 수 있습니다.
위의 대표 그림이 그 흐름을 보여줍니다. 다섯 개의 레벨과, 각 레벨에 자리하는 시스템들, 그리고 그것들이 어느 세계에 속하는지는 다음과 같습니다:
| 레벨 | 하는 일 | 예시 시스템 | OT / IT |
|---|---|---|---|
| 4 — 엔터프라이즈 | 몇 주, 몇 달 앞의 생산 계획 | ERP — 주문, 재고, 재무 | IT |
| 3 — 운영 | 작업 스케줄링, 배치 기록 조립 | MES(Opcenter, FactoryTalk PharmaSuite, Apriso), 히스토리언(PI, InfoPlus.21, PHD), LIMS(LabWare, SampleManager, Benchling) | IT |
| 2 — 감독 제어 | 운영자가 유닛을 지켜보고 조종 | SCADA, HMI, DCS(ABB 800xA, Emerson DeltaV) | OT |
| 1 — 기본 제어 | 계기를 읽고 초 단위로 명령 | PLC(Allen-Bradley CompactLogix, Siemens SIMATIC), 컨트롤러, DCS | OT |
| 0 — 공정 및 현장 | 물리적 공정과 그것에 닿는 프로브 | 바이오리액터, 배양액, 밸브, 펌프, pH 프로브 | OT |
OT/IT 이음매 — DMZ와 존-앤-컨듀잇을 갖춘 보안 경계 — 는 레벨 2와 3 사이에 자리합니다: 그 아래에서 OT는 가용성과 안전을 우선하고, 그 위에서 IT는 기밀성을 우선합니다.
만나야만 하는 두 세계: OT와 IT
하위 레벨(0부터 2까지)은 OT — Operational Technology(운영 기술)의 세계를 이룹니다: 물리적 장비를 직접 운영하는 컴퓨터들입니다. 상위 레벨(3과 4)은 IT — Information Technology(정보 기술)입니다: 데이터베이스, 네트워크, 노트북의 평범한 세계입니다. 이 두 세계는 정반대의 우선순위를 가지고 자라났으며, 그 차이가 공장 아키텍처의 핵심 긴장입니다.
IT와 OT는 모두 CIA 삼요소(CIA triad) — 기밀성(confidentiality), 무결성(integrity), 가용성(availability) — 에 신경 쓰지만, 그 구성 요소들을 서로 다르게 강조합니다. IT 팀은 일반적으로 기밀성을 가장 우선합니다: 데이터를 비밀로 유지하라. OT는 보통 그 강조점을 뒤집어 가용성을 우선하며, 삼요소 바깥에 자리하는 우선적 관심사로 안전(safety)을 추가합니다 [3]. 소프트웨어 업데이트를 위해 잠시 멈추는 제어 시스템은 2주짜리 세포 배양을 망칠 수도 있고, 더 나쁘게는 위험을 초래할 수도 있습니다. OT 엔지니어는 IT 관리자가 필수라고 여기는 일상적인 패치를 거부할 수도 있으며 — 각자의 운영적·규제적 논리 안에서는 둘 다 정당합니다.
이 두 세계를 한데 모으는 것을 OT/IT 융합(OT/IT convergence)이라 부르며, 점점 늘어나는 연구 문헌은 이를 산업 디지털화의 핵심 과제 중 하나로 다룹니다: 데이터가 흐르려면 시스템들이 연결되어야 하지만, 그 문화와 수명 주기, 위험 모델은 서로 갈라섭니다 [5].
OT/IT 경계: 존, 컨듀잇, 그리고 DMZ
표준적인 아키텍처 해법은 두 세계가 직접 맞닿게 하지 않는 것입니다. OT 레벨과 IT 레벨 사이에는 DMZ(demilitarized zone, 비무장지대) — 신중하게 선택된 데이터를 제어 시스템을 개방된 엔터프라이즈 네트워크에 노출하지 않고 교환할 수 있는 완충 네트워크 — 가 자리합니다. 이 존-앤-컨듀잇(zones-and-conduits) 접근법 — 장비를 보안 존(zone)으로 묶고 정의된 컨듀잇(conduit)을 통해서만 트래픽을 허용함 — 은 IEC 62443 표준군 전반에 걸쳐 정형화되어 있으며, 이들은 함께 일곱 가지 기초 보안 요구사항, 존-앤-컨듀잇 모델, 그리고 산업 네트워크를 위한 등급화된 보안 수준을 정의합니다. 그 표준군 안에서 IEC 62443-3-3은 그 기초로부터 도출된 상세한 시스템 요구사항과 보안 수준을 제시합니다 [4]. 미국 NIST SP 800-82 가이드는 OT 네트워크를 분할하는 방법과 그것을 안전하게 유지하는 토폴로지에 대해 널리 인용되는, 그와 나란한 지침을 제공합니다 [3].
분할(segmentation)은 아키텍처 결정이지, 나중에 덧붙이는 것이 아닙니다. 공장이 다 지어질 때까지 존과 DMZ를 생각하지 않고 기다린다면, 그것을 개조해 넣는 일은 고통스럽고 흔히 불완전합니다. 보안 경계는 설계도 위에 있어야 합니다.
아직 풀리지 않은 부분: ISA-95 이전 공장에 보안 경계를 사후 개조하기
깔끔한 존-앤-컨듀잇 도해는 공장을 백지에서 설계한다고 가정합니다. 대부분의 바이오 생산 현장은 그렇지 않습니다. 이들은 현대적인 OT/IT 위협 모델이 존재하기 전에 지어졌으며, 제어 네트워크는 단지 물리적으로 격리되어 있었기에 "안전"했을 뿐입니다 — 누군가 기업 클라우드에서 히스토리언 피드를 필요로 하는 순간 증발해 버린 가정입니다. 가동 중인 공장에 DMZ와 적절한 분할을 사후 개조하는 일은 정말로 어려우며, 해결된 문제라기보다 여전히 열린 문제로 남아 있습니다.
그 어려움은 단지 기술적인 것이 아니라 구조적입니다. NIST SP 800-82는 목표 토폴로지 — 분할된 존, OT와 IT 사이의 DMZ, 반드시 건너야 하는 트래픽만 실어 나르는 컨듀잇 — 를 제시하지만, 그 토폴로지를 사후에 부과한다는 것은 생산을 멈추지 않고는 내릴 수 없는 가동 중인 네트워크를 재설계해야 함을 분명히 합니다 [3]. IEC 62443은 각 존을 목표 보안 수준(security level)으로 등급화하지만, 브라운필드(brownfield) 공장은 보통 인증 자체가 존재하기 이전 프로토콜을 쓰는, 수십 년에 걸쳐 누적된 장비를 담고 있어, 달성 가능한 수준이 가장 약한 구성원까지 끌어내려집니다 [4]. 그 결과가 아키텍처 부채(architectural debt)입니다: 사후 분할은 비용이 크고, 마지막 몇몇 레거시 연결이 손대기에 너무 위험해 흔히 불완전하게 남으며, 최근의 OT/IT 융합 문헌은 이를 광범위한 패턴으로 기록합니다 — 평평한(flat) 네트워크, 지나치게 넓은 방화벽 규칙, 그리고 도해에는 존재하지만 실제로는 우회되는 DMZ [5]. 깔끔한 마이그레이션 레시피는 없습니다. 각 공장은 점진적으로 부채를 갚아 나가며, "표준이 원하는 것"과 "현장이 감당할 수 있는 것" 사이의 이음매가 바로 현실의 보안 작업이 머무는 곳입니다. 오픈소스 경로는 레거시 스키드와 Modbus/S7 통합에서 이 한 단면을 탐구하는데, 거기서는 ISA-95 이전 장비 그 자체가 제약 조건입니다.
원시 태그에서 의미로: 컨텍스트화 계층
센서는 지식을 내보내지 않습니다. 센서는 태그(tag) — FIC_204.PV = 12.4처럼 알 수 없는 이름과 숫자 — 를 내보냅니다. 그 자체로는 무의미합니다. 그것이 생산 스위트(suite)의 배치 B-2207 동안, 바이오리액터 2의, 시간당 리터 단위 공급 유량(feed flow rate)이라는 것을 알아야 비로소 정보가 됩니다. 그 둘러싼 의미를 더하는 일을 컨텍스트화(contextualization)라 부르며, 그 일을 하는 계층은 현대적 공장의 결합 조직입니다 [5].
이 레벨들 사이로 데이터를 실어 나르는 주력 프로토콜은 OPC UA(Open Platform Communications Unified Architecture, IEC 62541 시리즈로 표준화됨)로, 데이터를 헐벗은 숫자가 아니라 타입이 지정되고 자기 기술적인(self-describing) 정보 모델로 실어 나릅니다 — 대부분의 현대적 공장에서 기본 연결 계층입니다. OPC UA는 흔히 레벨 2-레벨 3 이음매에서 불려 나오지만 거기에 갇혀 있지 않습니다: 레벨 1부터 3까지에 걸쳐 있으며, 자기 변수를 주소 공간(address space)으로 노출하는 필드버스 인접 컨트롤러에서부터, 감독 단계의 집계를 거쳐, 그것을 구독하는 운영 시스템에 이르기까지 미칩니다. 그 더 새로운 확장들은 도달 범위를 한층 더 넓힙니다. OPC UA PubSub은 네이티브 발행-구독 전송(각 출처는 한 번 발행하고 여러 소비자가 필요한 것을 구독함 — 이 패턴은 아래 통합 네임스페이스에서 풀어 설명함)을 — MQTT 위에서든 UDP 멀티캐스트 위에서든 — 더하여, 프로토콜이 더 이상 점대점 클라이언트-서버 세션에 의존하지 않고 통합 네임스페이스를 직접 공급할 수 있게 합니다. OPC UA FX(Field eXchange)는 같은 정보 모델을 레벨 1-2의 컨트롤러 간 통신, 즉 역사적으로 독점 필드버스의 영역이었던 곳으로 아래로 확장하며, 시간 민감 네트워킹(Time-Sensitive Networking, TSN) 위에서 결정론적 전달을 제공합니다. 이들이 함께 의미하는 바는, 하나의 자기 기술적 모델이 현장 장치에서 엔터프라이즈까지 달릴 수 있다는 것입니다. 자매편은 그러한 측정값 하나가 회선 위에서 정확히 무엇을 담는지를 OPC UA와 MQTT 연결성에서 해부하며, 다음 장인 연결성과 상호운용성 표준은 더 넓은 언어군을 살펴봅니다.
UNS와 Sparkplug B: 발행-구독이 만나는 지점
여기서 인기 있는 패턴은 UNS — Unified Namespace(통합 네임스페이스)입니다: 모든 데이터 조각이 의미 있는 주소(예: Enterprise/Site/Suite/Bioreactor2/FeedFlow)에 자리하는, 공장 전체의 단일하고 조직화된 실시간 지도입니다. 각 시스템이 다른 모든 시스템에 점대점(point-to-point)으로 데이터를 요청하는 대신 — 사일로를 만드는 그 뒤엉킴 대신 — 모든 시스템이 자신의 데이터를 네임스페이스에 발행(publish)하고 필요한 것을 구독(subscribe)합니다. 오픈소스 자매편은 이 주소 체계가 실제로 어떻게 구축되는지를 네이밍과 통합 네임스페이스에서 보여줍니다. 이 발행-구독(publish-subscribe) 배선은 일반적으로 경량 MQTT 프로토콜을 사용하는 메시지 브로커(message broker)가 실어 나르며, 흔히 Sparkplug 사양과 함께 쓰입니다. Sparkplug는 산업용 토픽과 페이로드에 표준 구조를 더하여 구독자가 도착한 것을 정확히 어떻게 해석할지 알 수 있게 합니다 [6]. 같은 공급 유량 태그에 대한 Sparkplug 토픽과 birth 페이로드는 다음과 같은 모습일 수 있습니다:
// Topic: spBv1.0/Site1/DBIRTH/PLC1/BR2
{
"timestamp": 1718308800000,
"metrics": [
{
"name": "Suite/Bioreactor2/FeedFlow",
"alias": 204,
"timestamp": 1718308800000,
"dataType": "Float",
"value": 12.4,
"properties": {
"engUnit": { "type": "String", "value": "L/h" },
"batchId": { "type": "String", "value": "B-2207" }
}
}
],
"seq": 1
}
Sparkplug B에서 seq 필드는 메시지마다 굴러가는 카운터로, NBIRTH(Node BIRTH, 엣지 노드의 세션을 여는 노드 수준 메시지)에서 0으로 시작하여 그 뒤의 모든 메시지마다 증가하고 255에서 다시 0으로 돌아갑니다. 간격(gap)을 본 구독자는 자신이 메시지 하나를 놓쳤음을 압니다. 그래서 NBIRTH는 seq 0을 담고 그 뒤를 잇는 이 DBIRTH(Device BIRTH, 그 노드 아래 장치마다 하나씩)는 seq 1을 담습니다. 별도의 bdSeq(birth/death sequence, 탄생/사망 시퀀스) 번호는 NBIRTH에서 설정되고 짝지어진 NDEATH(Node DEATH) — 연결이 깔끔하지 않게 끊기면 브로커가 자동으로 발행하도록 클라이언트가 미리 등록해 두는, 브로커의 MQTT Last Will 죽음 메시지 — 에서 그대로 되울려져, 브로커와 구독자가 깔끔한 연결 해제를 그것이 끝낸 세션과 짝짓게 해 줍니다 — 질서 있는 노드 재시작과, 결코 닫히지 않은 오래된 세션을 구별합니다. 두 카운터는 서로 다른 질문에 답합니다: seq는 한 세션 안에서의 메시지 수준 연속성을 증명하고, bdSeq는 재연결을 가로지르는 세션 수준 신원을 증명합니다 [6].
위 페이로드의 B-2207은 이 장의 연결성 스니펫 전반에서 쓰이는, 의도적으로 분리된 B2MML 워크드 예제입니다. 이것은 이 책의 러닝 배치(BATCH-2026-001)가 아니며, 회선 포맷 예제와 컨텍스트화 예제가 결코 뒤섞이지 않도록 일부러 구별해 둔 것입니다.
같은 측정값이 히스토리언에 헐벗은 한 행으로 안착하면, 그것은 수집기가 기록한 여섯 개의 원시 컬럼일 뿐입니다 — 컨텍스트화 계층이 나중에 변형 없이 그대로 실어 나를 원시 띠(raw band)입니다:
ts,tag,value,unit,quality,batch_id
2024-06-13T20:00:00Z,FIC_204.PV,12.4,L/h,Good,B-2207
이것들은 오픈소스 자매편이 저장하는 바로 그 여섯 개 필드이며, 아래의 해부 카드가 그대로 실어 나르는 바로 그 원시 띠입니다. quality 필드 — 여기서는 Good으로 디코딩되어 표시됨 — 는 출처의 품질 스탬프가 값 옆에 함께 실려 다니는 것으로, 불확실한 점이 결코 조용히 평균에 섞이지 않게 합니다. 현대적 OPC UA 출처에서 Good은 StatusCode 값 0이고, 많은 브라운필드 공장이 여전히 돌리는 레거시 OPC DA 출처에서 Good은 품질 바이트 192입니다(64는 Uncertain, 0은 Bad). 두 인코딩은 값 0에서 충돌하는데, 이것이 바로 컨텍스트화 계층이 저장 전에 그것들을 정규화하는 이유입니다.
관련은 있지만 구별되는 개념으로 데이터 패브릭(data fabric)이 있습니다 — 이는 UNS나 브로커의 동의어가 아니라, 흩어진 여러 출처 위에 통합되고 일원화된 접근 계층을 제공하여 그것들을 하나의 질의 가능한(queryable) 전체로 엮는 아키텍처적 접근법입니다. UNS는 그러한 패브릭에 데이터를 공급하는 한 가지 방법이 될 수 있습니다.
새로운 조직 패턴인 데이터 메시(data mesh)는 같은 문제에 정반대 방향에서 접근합니다. 데이터 패브릭이 통합을 하나의 기술 계층으로 중앙집중화한다면, 데이터 메시는 소유권을 분산합니다: 각 도메인 — 상류, 하류, QC — 은 자신의 데이터를 제품(product)으로 취급하여 그 품질·문서화·접근을 소유하고, 얇은 연합 거버넌스(federated-governance) 계층이 공유 표준을 강제하여 제품들이 상호운용되게 합니다. 바이오 생산 공장에서 그 매력은 구체적입니다: 상류 팀은 중앙 데이터 부서가 결코 그럴 수 없을 만큼 자기 바이오리액터 태그를 훨씬 잘 이해하므로, 잘 기술된 상류 데이터 제품의 책임 있는 소유자로 그들을 세우는 편이 모든 것을 과부하된 하나의 통합 팀으로 깔때기처럼 몰아넣는 것보다 대개 낫습니다. 패브릭과 메시는 경쟁자라기보다 같은 질문 — 흩어진 출처가 어떻게 하나의 신뢰할 수 있는 전체가 되는가 — 에 대한 두 가지 답이며, 하나는 통합된 기술 계층을, 다른 하나는 분산된 제품 소유권을 강조합니다. 큰 공장은 흔히 둘을 섞습니다.
통합 네임스페이스는 6장의 히스토리언, MES, LIMS를 대체하지 않습니다. 그것은 이들 옆에 공유되는 실시간 만남의 지점으로 자리하여, 각 시스템이 맞춤형 점대점 연결 없이 데이터를 기여하고 소비할 수 있게 합니다.
컨텍스트화된 측정값의 해부
위의 CSV 행은 평면화된 미리보기입니다. 아키텍처의 진짜 산출물은 더 풍부한 기록입니다. 그 기록을 필드별로 해부할 가치가 있습니다. 그것이야말로 이 스택 전체가 만들어 내기 위해 존재하는 데이터 수준 산물이며, 오픈소스 자매편이 데이터베이스 뷰(view)로 구체화하는 바로 그것이기 때문입니다. 히스토리언에서 우리의 공급 유량 측정값은 헐벗은 여섯 개의 컬럼일 뿐입니다. 컨텍스트화 계층이 그 일을 마치고 나면, 같은 측정값은 의미 있는 네 개의 띠로 나뉘는 열한 개 필드의 한 행이 됩니다: 원시 띠(raw band)(변형 없이 그대로 실려 온 여섯 개의 히스토리언 컬럼), 배치 띠(batch band)(배치 기록에서 조인되어 들어온 세 개의 컬럼 — 무엇을, 어떤 레시피로, 어떤 장비에서 만드는지), 페이즈 띠(phase band)(조인이 만들어 내기 전까지는 어디에도 존재하지 않던, 측정값이 떨어진 ISA-88 페이즈를 이름 짓는 두 개의 컬럼), 그리고 알 수 없는 이름 FIC_204.PV를 그 자산(asset)·측정(measurement)·역할(role)로 풀어내는 태그 디코드(tag decode)입니다.
컨텍스트화된 측정값 하나를 필드별로: 여섯 개의 원시 히스토리언 컬럼, 배치에서 조인된 세 개, 시간 기반 조인이 도출하는 두 개의 페이즈 컬럼, 그리고 이 행을 나머지 공장 모델에 잇는 관계들.
저자가 AI의 도움을 받아 직접 제작한 그림입니다.
그 카드에서 가장 가치 있는 필드는 결코 측정되지 않은 것입니다: phase_name = Production. 히스토리언은 한 번에 하나의 숫자를 저장하지만, 이 행은 자신이 생산 페이즈의 측정값임을 압니다. 그 단 하나의 도출된 필드 덕분에 레벨 4 질의가 사람의 질문 — "B-2207의 생산 페이즈 동안 공급 유량은 얼마였는가?" — 을 던지고 답을 얻을 수 있습니다. 오픈소스 자매편은 바로 이 기록을 PostgreSQL 뷰 s88.v_batch_sensor로 구축하고, 측정값의 타임스탬프에서 ISA-88 페이즈 창으로 이어지는 시간 기반 포함(temporal-containment) 조인으로 페이즈 띠를 도출합니다. 그 전체 메커니즘은 컬럼별로 컨텍스트화 장의 주제입니다. 여기의 카드는 개념이고, 그 장은 실행되는 코드입니다.
같은 행을 시맨틱 트리플로
관계형 행은 그 컨텍스트를 실어 나르는 한 가지 방법이고, 지식 그래프(knowledge graph)는 같은 사실을 기계가 추론할 수 있는 명시적 관계로 실어 나릅니다. 온톨로지 자매편은 이 측정값을 RDF(Resource Description Framework, 그 원자가 주어–술어–목적어 트리플(triple)인 그래프 데이터 모델)로 모델링합니다. Turtle(RDF의 텍스트 구문)로 쓰면, 컨텍스트화된 측정값은 열한 개 필드의 행이 말하는 것과 같은 것을 말하는 몇 개의 트리플이 됩니다 — 다만 모든 값이 자기 단위를 지니고 모든 링크가 걸어갈 수 있는 에지(edge)인 채로입니다:
# 컨텍스트화된 측정값 하나를 RDF로 — 행의 필드들이 타입이 지정된 트리플이 됨.
bp:reading-FIC204-0001 a bp:SensorReading ;
bp:ofTag "FIC_204.PV" ;
bp:occurredIn bp:BR2 ; # occursIn → 용기 (BFO occurs in에 정렬)
bp:duringPhase bp:PH3-Production ; # 도출된 페이즈 띠가 이제 에지로
bp:partOfBatch bp:B-2207 ;
bp:hasValue [ a qudt:QuantityValue ;
qudt:numericValue "12.4"^^xsd:float ;
qudt:hasUnit unit:L-PER-HR ] . # 값은 결코 헐벗고 다니지 않음
이 페이지 자신의 개념 두 가지가 이제 정형화됩니다. unit:L-PER-HR IRI는 회선 위에서 unit 컬럼과 Sparkplug engUnit이 푸는 것과 같은 문제에 대한 온톨로지의 답입니다 — QUDT(Quantities, Units, Dimensions and Types) 단위로, 12.4가 결코 다른 어떤 비율로도 잘못 읽힐 수 없게 합니다. 온톨로지 책은 이 타입이 지정된 값의 규율을 식별자와 단위에서 다룹니다. 그리고 bp:duringPhase와 bp:partOfBatch는 객체 속성(object property) — 문자열이 아니라 에지 — 이므로, 컨텍스트화 장이 타임스탬프로 조인하는 계보가 순회(traverse) 가능한 그래프가 됩니다. 이것이 온톨로지 책이 관계와 계보에서 구축하는 척추입니다.
이 장의 컨텍스트화 계층이 보장해야 하는 폐쇄 세계(closed-world) 질문 — 저장된 모든 측정값은 단위, 배치, 페이즈를 정확히 한 번씩 지닌다 — 은 SHACL(Shapes Constraint Language) 셰이프, 즉 뷰에 걸린 NOT NULL 제약의 그래프 대응물입니다. SHACL은 요구되는 사실이 존재함을 검증하는데, 이것이야말로 OPC UA의 품질 코드와 컨텍스트화 조인이 스스로 강제할 수 없는 바로 그것입니다:
# shapes.ttl — 저장된 측정값은 완전히 컨텍스트화되어야 하며, 아니면 검증에 실패함.
bp:ContextualizedReadingShape a sh:NodeShape ;
sh:targetClass bp:SensorReading ;
sh:property [ sh:path bp:partOfBatch ; sh:minCount 1 ; sh:maxCount 1 ] ;
sh:property [ sh:path bp:duringPhase ; sh:minCount 1 ] ;
sh:property [ sh:path bp:hasValue ; sh:minCount 1 ;
sh:message "Reading stored without a unit-qualified value." ] .
그리고 해부 카드가 기렸던 "사람의 질문" — B-2207의 생산 페이즈 동안 공급 유량은 얼마였는가? — 은 역량 질문(competency question)(데이터 모델이 답할 수 있어야 하는 평이한 언어의 질문으로, 통과/실패 인수 테스트로 쓰임)이며, 위의 트리플이 선언한 바로 그 에지를 걸어가는 하나의 SPARQL(RDF의 표준 질의 언어) 질의가 답합니다:
# CQ: 배치 B-2207의 Production 페이즈 동안의 공급 유량.
SELECT ?value WHERE {
?r bp:partOfBatch bp:B-2207 ; bp:duringPhase bp:PH3-Production ;
bp:ofTag "FIC_204.PV" ; bp:hasValue [ qudt:numericValue ?value ] .
}
관계형 뷰와 그래프는 경쟁자가 아닙니다 — 둘은 하나의 컨텍스트화된 사실 위의 두 표면이며, 온톨로지 자매편은 같은 아키텍처를 FAIR 렌즈 아래 온톨로지와 FAIR에서 다룹니다.
원시 태그에서 컨텍스트화된 행으로: 스택을 통과하는 여정
측정값 하나가 올라가는 모습을 지켜보면 도움이 됩니다. 공급 유량 값은 레벨 1에서 OPC UA 노드로 태어납니다 — PLC가 읽는 값, 품질 플래그, 타임스탬프입니다. 레벨 2에서 그것은 활성 batch_id로 스탬프가 찍히고 MQTT/Sparkplug B를 통해 UNS로 발행됩니다. 그것은 DMZ 컨듀잇을 통해 OT/IT 경계를 건넙니다 — 저지연 제어가 아래에 머무는 동안 어떤 데이터가 위로 올라갈지를 엣지 게이트웨이가 선별합니다. 그것은 여섯 개의 원시 히스토리언 컬럼으로 레벨 3에 안착하고, 배치와 페이즈 컨텍스트를 얻어 열한 개 필드의 v_batch_sensor 행이 되며, 마침내 레벨 4에서 배치 인식(batch-aware) 질의에 답합니다. 같은 물리적 측정값, 같은 숫자이지만, 각 계층에서 더 많은 의미를 지니게 됩니다.
측정값의 여정: 데이터는 레벨을 따라 위로 흐르고, DMZ를 통해 OT/IT 경계를 건너며, 사람이 질의할 수 있는 기록이 될 때까지 컨텍스트를 누적합니다.
저자가 AI의 도움을 받아 직접 제작한 그림입니다.
오픈소스 자매편은 같은 경로를 반대쪽 끝에서 따라갑니다: 상류 바이오리액터 장은 레벨 1 출처에서 시작하고, 그 컨텍스트화 장은 이 그림이 끝나는 레벨 3 행을 조립합니다.
엣지에서 클라우드로: 연산이 일어나는 곳
마지막 아키텍처 질문은 데이터가 어디서 처리되느냐입니다. 함께 쓰이는 두 가지 답이 현대적 패턴을 정의합니다.
엣지 컴퓨팅(edge computing)은 데이터를 생성하는 장비 바로 옆에서 데이터를 처리하는 것을 뜻합니다. 이것은 PAT — 4장에서 다룬 PAT(Process Analytical Technology, 공정 분석 기술) 프레임워크로, 그 실시간·인라인 측정이 운전 중 제어 결정을 이끕니다 — 에 중요합니다. 측정값이 그 자리에서 곧바로 보정을 이끌어야 할 때 — 예컨대 레벨 1 컨트롤러가 pH나 용존산소(dissolved oxygen) 설정값을 유지하는 경우 — 측정값을 멀리 떨어진 데이터 센터에 보내고 응답을 기다리는 것은 시간이 중요한 제어에는 너무나 느립니다. 저지연(low-latency) 제어는 엣지에 속합니다.
클라우드 컴퓨팅(cloud computing)은 크고 멀리 떨어진 탄력적인 데이터 센터에서 데이터를 처리하고 저장하는 것을 뜻합니다. 이것은 정반대의 일에 이상적입니다: 수년간의 배치 데이터를 데이터 레이크(data lake)(원시 및 처리된 데이터의 방대한 저장소)에 모으고, 많은 운전에 걸쳐 분석과 머신러닝 모델을 훈련하며, 규제 기관이 요구하는 긴 보존 기간 동안 기록을 보관하는 일입니다.
따라서 실제 공장은 하이브리드(hybrid) 아키텍처를 운영합니다: 빠르고 결정론적인(deterministic) 의사결정은 엣지에서, 무거운 분석과 내구성 있는 저장은 클라우드에서, 그리고 컨텍스트화 계층이 그 둘 사이에서 정제된 데이터를 위로 스트리밍합니다.
분석 저장 계층: 시계열 데이터베이스와 레이크하우스
정제된 스트림이 클라우드에 도달하고 나면, 그것이 어디에 안착하느냐가 그것으로 무엇을 할 수 있는지를 좌우합니다. 두 가지 저장 형태가 지배적이며, 서로 다른 질문에 답합니다.
시계열 데이터베이스(time-series database, TSDB) — InfluxDB, TimescaleDB, 또는 히스토리언 자체 엔진 — 는 모든 운영자가 가장 먼저 던지는 질문 — 이 태그가 이 구간 동안 무엇을 했는가? — 을 위해 만들어졌습니다. 그것은 태그와 시간으로 인덱싱하고, 거의 일정한 값이 길게 이어지는 평평한 구간을 공격적으로 압축하며, "BR101.Temp.PV의 지난 24시간" 질의에 밀리초 안에 답합니다. 이것은 뜨겁고 최근이며 운영적인 데이터의 자연스러운 보금자리입니다.
레이크하우스(lakehouse)는 정반대 질문 — 수백 개 배치에 걸쳐, 그 계보(genealogy)와 QC 결과에 조인하여 무슨 일이 일어났는가? — 에 답하며, 그렇게 하기 위해 궤적 데이터를 컬럼형 Parquet(columnar Parquet) 파일에 저장하되 Delta Lake나 Apache Iceberg 같은 오픈 테이블 포맷으로 관리합니다. 컬럼형 레이아웃이 핵심입니다: 바이오리액터 궤적은 수백만 행이지만 컬럼은 몇 개뿐이므로, 한 태그에 대해 1년치의 value와 ts만 읽으면 테이블 전체가 아니라 디스크의 얇은 한 조각만 건드리며, 거의 동일한 부동소수점들의 컬럼은 원래 크기의 일부로 압축됩니다. Delta와 Iceberg는 헐벗은 Parquet에 없는 것 — ACID 트랜잭션, 스키마 진화(schema evolution), 그리고 타임 트래블(time travel)(과거 어느 날짜에 테이블이 어떤 상태였는지 질의하기) — 을 더하는데, 이것이 바로 수동적인 파일 더미를 감사 가능한(auditable) 분석 저장소로 바꾸는 것입니다. 레이크하우스는 수년간 모인 배치 데이터가 사는 곳이자, 머신러닝 모델이 자기 학습 세트를 읽는 곳입니다.
아키텍처가 모델을 신뢰할 수 있는지를 결정한다
모델은 그 학습 세트가 이 레이크하우스에서 조립된 방식만큼만 정직하며, 위의 두 아키텍처적 사실이 그것을 조용히 좌우합니다. 첫째는 컨텍스트화 계층이 모든 측정값에 찍는 batch_id입니다. 그것이 없으면, 모인 데이터를 부주의하게 분할할 때 같은 배치의 측정값이 학습 세트와 테스트 세트 양쪽에 들어가게 됩니다 — 모델이 공정을 배우는 대신 배치를 외워 버리게 하는 데이터 누수(data leakage)이며, 그래서 보고된 정확도는 듣기 좋은 허구가 됩니다. 그 치료법은 그룹 교차검증(grouped cross-validation)(leave-one-batch-out이라고도 함: 한 배치의 모든 측정값을 함께 떼어 두어, 모델이 늘 한 번도 본 적 없는 배치에서 채점되게 함)인데, 이는 오직 batch_id가 값과 함께 스택을 타고 올라왔기에 가능합니다. ML 자매편은 이것을 정직한 평가의 첫 규칙으로 데이터, 연료와 모델과 밸리데이션에서 다룹니다.
둘째는 드리프트(drift)입니다. 엣지-투-클라우드 경로는 움직이는 표적을 스트리밍합니다: 라만(Raman) 프로브가 서서히 오염되고, 원자재 로트가 바뀌며, 어떤 캠페인이 약간 더 따뜻하게 돌아갑니다 — 그래서 모델이 학습된 입력 분포가 지금 보는 분포에서 조용히 갈라지고(공변량 이동(covariate shift), 입력 분포가 움직임), 마침내 관계 그 자체가 바뀔 수 있습니다(개념 드리프트(concept drift), 같은 입력이 다른 답을 함의함). 둘 다 오직 아키텍처가 검출기가 비교할 수 있는 컨텍스트화된 이력을 보존했기에 감지됩니다. 이것이 이 책이 긋는 하중을 떠받치는 구별입니다: 공정 드리프트(process drift)는 살아 있는 시스템이 실제로 변하는 것으로 제조 사건이고, 모델 드리프트(model drift)는 그 변화에 견주어 모델이 진부해지는 것으로 데이터 사건입니다 — 그리고 적용 범위(applicability domain)(모델이 실제로 보정되어 신뢰할 수 있는 입력 영역)가 그 둘 사이의 선입니다. 태그·배치·페이즈 컨텍스트가 그 영역 바깥에 놓이는 측정값은, 모델이 외삽해 들어가기보다 채점을 거부해야 하는 것입니다. ML 자매편은 이것이 함의하는 드리프트 검출기와 잠금-후-재학습(locked-then-relearn) 거버넌스를 MLOps와 수명 주기에서 구축합니다.
이 장기 보존 클라우드 계층은 단지 편리한 것만이 아닙니다. 그것은 ALCOA+ 데이터 무결성 속성 가운데 두 가지가 물리적으로 실현되는 곳입니다 — ALCOA+는 기록이 Attributable(귀속 가능), Legible(판독 가능), Contemporaneous(동시 기록), Original(원본), Accurate(정확)하고, 더하여 Complete(완전), Consistent(일관), Enduring(지속), Available(가용)해야 한다는 규제 기관의 데이터 무결성 점검표입니다(전체 항목은 데이터 거버넌스에서 다룹니다). 지속성(Enduring) — 기록은 요구되는 전체 보존 기간, 흔히 제품 수명 주기에 더해 수년 동안 살아남아야 함 — 은 어떤 단일 서버보다 오래 사는, 내구성 있고 복제된 클라우드 객체 스토리지로 충족됩니다. 가용성(Available) — 기록은 그 기간 내내 검색 가능해야 함 — 은 아무도 읽을 수 없는 금고 안의 테이프가 아니라 레이크하우스의 인덱싱되고 질의 가능한 Parquet으로 충족됩니다. 따라서 저장 계층의 아키텍처적 선택은 또한 컴플라이언스의 선택입니다: 질의할 수 없는 값싼 아카이브는 가용성에 실패하고, 90일 뒤에 비워지는 빠른 캐시는 지속성에 실패합니다. 이 속성들 뒤의 보존과 무결성 기대치는 데이터 포인트의 생애 주기와 데이터 거버넌스에서 자세히 다룹니다.
바이오 제약 엔지니어가 알아볼 만한 평행 사례로 NOA — NAMUR Open Architecture(나무르 개방 아키텍처)가 있습니다. 이는 공정 산업 사용자 협회인 NAMUR에서 나온 참조 모델입니다. NOA의 핵심 발상은 제2의 채널(second channel)입니다: 엄격하게 밸리데이션된 핵심 자동화 피라미드(레벨 1-3, 닫혀 있고 결정론적인 상태를 유지해야 함) 옆에, NOA는 같은 공정 데이터를 탭(tap)하여 모니터링과 최적화(monitoring and optimization) — 바로 클라우드에 속하는 그 분석 — 에 쓰되 제어 루프는 건드리지 않는, 분리된 읽기 위주(read-mostly) 경로를 정의합니다. 그것은 사실상, 제어 네트워크에 구멍을 뚫는 대신 한 방향 다이오드(one-way diode)를 통해 OT 데이터를 IT 분석으로 보내는 인가된 방법이며, 위의 존-앤-컨듀잇 규율과 맞물립니다: 최적화 채널은 자기만의 존이고, 데이터를 오로지 바깥으로만 흘려보내는 컨듀잇을 가집니다.
사이버보안: 공격 표면은 곧 데이터 무결성 표면
보안을 IT 살림살이로 분류하고 싶은 유혹이 있지만, GMP(Good Manufacturing Practice, 우수 제조 관리 기준) 공장에서 이 장이 그어 온 모든 경계는 또한 데이터 무결성(data integrity) 경계이며, 그것을 넘는 공격자는 단지 데이터를 훔치는 데 그치지 않고 그것을 바꿀 수 있는데, 이것이야말로 전체 규제 체계가 막기 위해 존재하는 단 한 가지입니다. 히스토리언 피드가 클라우드에 닿을 수 있도록 격리된 제어 네트워크가 열리는 순간, OT/IT 경계는 편의의 이음매이기를 그치고 공장의 주된 공격 표면(attack surface)이 되었습니다.
그 표면에는 두 개의 압력점이 있으며, 둘 다 이미 위에서 이름 붙였습니다. 첫째는 OT/IT 경계 그 자체입니다: 무엇이 건널 수 있는지를 결정하는 DMZ, 컨듀잇, 그리고 방화벽 규칙입니다. 여기서 평평한 네트워크나 지나치게 넓은 규칙은, 평범한 사무용 노트북 하나의 침해가 자기 명령을 인증하도록 결코 설계되지 않은 PLC에 도달하게 합니다 — 아키텍처 부채 논의가 기술한 바로 그 브라운필드 약점입니다. 둘째는 엣지-투-클라우드 경로입니다: 정제된 데이터를 위로 실어 나르는 모든 엣지 게이트웨이, 메시지 브로커, 클라우드 엔드포인트는 또한 하나의 문이며, 엣지에서 주입된 오염된 측정값이나 전송 중에 변조된 기록은 분석 저장소와 그 위에서 훈련된 모든 모델을 망가뜨립니다. 이것이 바로 IEC 62443 존-앤-컨듀잇 모델 [4]과 NIST SP 800-82 [3]가 분할·인증·모니터링을 부가물이 아니라 하중을 떠받치는 구조로 다루는 이유이며 — NOA의 제2의 채널이 최적화 경로가 오로지 한 방향으로만 흐를 것을 고집하는 이유입니다: 읽기 전용 다이오드는 주입 경로가 될 수 없습니다.
데이터 관리에서의 요점은 보안과 데이터 무결성이 한 분야를 두 측면에서 본 것이라는 점입니다. 기록이 사후에 조용히 변경될 수 있다면 ALCOA+의 원본성(Original)과 정확성(Accurate) 속성은 무의미하므로, 보안 엔지니어가 세우는 접근 통제, 감사 추적, 네트워크 경계는 바로 기록을 신뢰할 수 있게 만드는 메커니즘입니다. 계층화는 올바르게 했지만 컨듀잇을 열어 둔 아키텍처는 자기 데이터 그림자를 보호한 것이 아니라, 그것을 위조하기 더 쉽게 만들었을 뿐입니다. 자매편은 이 한 단면을 플랫폼 운영·확장·보안에서 구체적으로 다루며, 규제적 기대치는 데이터 거버넌스에 내려앉습니다.
아키텍처를 밸리데이션하기: 모든 레벨은 적격성 평가된 시스템
레벨을 그리는 것은 설계입니다. GMP 공장에서는 지도 위의 각 시스템이 배치가 그것에 의존하기 전에 자기가 주장하는 일을 한다는 것이 또한 입증되어야 합니다. 그 입증이 CSV — Computerized System Validation(전산화 시스템 밸리데이션)(시스템이 의도된 용도에 적합함을 보여주는 문서화된 증거)이며, 레벨 표의 모든 박스에 내려앉습니다: 레벨 1의 PLC, 레벨 2의 DCS, 레벨 3의 히스토리언과 MES, 그리고 그 사이의 엣지-투-클라우드 컨듀잇은 각각 규제 대상 전산화 시스템으로서, 자기 위험이 요구하는 깊이만큼 밸리데이션됩니다. 전통적인 사다리는 IQ/OQ/PQ — 설치 적격성 평가(Installation Qualification)(시스템이 명세대로 설치·구성됨), 운영 적격성 평가(Operational Qualification)(그것이 운전 범위 전반에서 기능함), 그리고 성능 적격성 평가(Performance Qualification)(그것이 실제 생산 조건에서 신뢰성 있게 수행함) — 로, 히스토리언이나 MES가 검사에 들고 가는 단계적 증거입니다. 그 증거의 양은 위험에 따라 조정됩니다: 현대적인 CSA — Computer Software Assurance(컴퓨터 소프트웨어 보증) 전환(모든 것을 동일하게 시험하고 무겁게 문서화하기에서 무엇이 중요한지 생각하고 그것을 잘 입증하기로 향하는, FDA가 권장하는 이동)은 팀에게 실제로 환자를 해칠 수 있는 시스템 — MES 처분(disposition) 로직, 출하 데이터를 실어 나르는 컨듀잇 — 에 보증 노력을 쓰고, 상용 계층에 대해서는 공급업체 시험을 활용하되 라벨 프린터의 모든 클릭을 스크린샷 찍지는 말라고 말합니다. CSV-에서-CSA 철학, GAMP 5 소프트웨어 범주, 그리고 검사관이 읽는 요구사항 추적성 매트릭스의 전모는 전산화 시스템 밸리데이션의 주제입니다.
이곳은 또한 ALCOA+ 속성들이 벽에 붙은 점검표가 아니라 아키텍처에 대한 구체적 의무가 되는 곳입니다. OT/IT 컨듀잇과 그 엣지 게이트웨이는 값이 경계를 건널 때 귀속 가능성(Attributable)(누가 또는 무엇이 측정값을 만들었는지)과 동시성(Contemporaneous)(기록이 클라우드에 도달한 때가 아니라 측정 순간에 포착된 타임스탬프)을 보존해야 합니다. 컨텍스트화 계층은 측정값을 원본(Original)이고 정확(Accurate)하게 유지해야 하며(원시 띠가 변형 없이 그대로 실려 오고, 결코 조용히 재반올림되지 않음), 그리고 — 저장 계층이 보였듯이 — 레이크하우스가 지속성(Enduring)과 가용성(Available)을 실현합니다. EU Annex 11과 21 CFR Part 11은 이것들을 좋은 관행에서 의무로 바꾸는 법규입니다: Annex 11은 전산화 시스템이 밸리데이션되고 바로 이 OT/IT 범위에 걸쳐 데이터 무결성을 보호할 것을 요구하며, Part 11은 그에 맞는 전자 기록·전자 서명·감사 추적 요구사항을 정합니다 — 계층형 아키텍처가 충족해야 하는 규제 표면이며, 기록, 서명, 그리고 법에서 자세히 다룹니다.
왜 중요한가
데이터 관리에서 아키텍처는 곧 운명입니다. 바이오 공정 전체 흐름 — 시드 트레인에서 충전·마감까지의 모든 물리적 단계 — 은 1부의 데이터 그림자(data shadow), 즉 모든 배치가 만들어지며 드리우는 온전한 기록을 만들어 냅니다. 이 아키텍처가 바로 그 그림자가 연결된 채로 남을지 사일로로 흩어질지를 결정하는 것입니다. 시스템이 자리한 레벨은 그 시스템이 어떤 데이터에 닿을 수 있는지, 무엇을 넘겨주어야 하는지, 그리고 사일로가 어디서 생기는지를 결정합니다. 레벨 3의 히스토리언은 레벨 1이 실제로 컨텍스트를 발행했을 때만 태그를 풍부하게 만들 수 있습니다. 클라우드의 분석 모델은 UNS가 공급하는 컨텍스트화된 스트림만큼만 좋습니다. FAIR 렌즈 — Findable(찾을 수 있고), Accessible(접근할 수 있고), Interoperable(상호운용 가능하며), Reusable(재사용 가능한) 데이터 — 를 통해 보면, 계층 지도는 앞의 세 가지를 가능하게 하는 것입니다: 태그는 의미 있는 UNS 주소를 가져야 비로소 찾을 수 있고, 컨듀잇이 그것을 OT/IT 경계 너머로 실어 나르도록 허용되어야 비로소 접근할 수 있으며, OPC UA의 자기 기술적 모델이 그것과 함께 다녀야 비로소 상호운용 가능합니다. 계층화를 올바르게 하면 데이터 그림자가 연결되고 FAIR한 실처럼 흐르고, 잘못하면 결코 만날 일이 없었던 시스템들 사이에 깨지기 쉬운 일회성 커넥터를 작성하느라 프로젝트의 생애를 보내게 됩니다. 규제 또한 바로 여기에 내려앉습니다: GMP 제조에서, EU Annex 11은 전산화 시스템(computerised systems)을 규율하며, 아키텍처가 이 OT/IT 범위에 걸쳐 데이터 무결성을 보존하고 목적에 적합하도록 밸리데이션(validate)될 것을 명시적으로 요구합니다 [8]. 오래 기다려 온 Annex 11 개정 초안(revised draft of Annex 11)은 2025년 7월에 공개 의견 수렴을 위해 발표되었는데, 이 장이 다룬 바로 그 관심사들을 날카롭게 벼립니다: 감사 추적 검토, 클라우드 및 SaaS 서비스 제공자, 네트워크로 연결된 다중 시스템 환경에 걸친 데이터 무결성, 그리고 AI/ML로 적용 범위를 넓히며, ALCOA+ 속성들을 이름으로 정식화합니다 — 위의 분석 저장 계층이 충족해야 하는 지속성(Enduring)과 가용성(Available) 기대치를 성문화하는 것입니다 [9]. 미국에서는 21 CFR Part 11이 같은 경계에 걸쳐 전자 기록, 전자 서명, 시스템 밸리데이션에 대해 그와 나란한 요구사항을 부과합니다 [10]. 두 법규 모두 그 자체로 한 장 — 기록, 서명, 그리고 법 — 의 주제이며, 여기서의 요점은 다만 계층형 아키텍처가 이 규칙들이 작용하는 표면이라는 것입니다.
현실에서는
현대적인 바이오 생산 시설에 걸어 들어가면 장비에서 ISA-95 레벨을 읽어낼 수 있습니다: 제어실의 PLC와 DCS(레벨 1-2), 서버실의 MES와 히스토리언(레벨 3), 기업 클라우드의 ERP(레벨 4). 실시간 실험실 데이터 통합 노력은 바로 이 스택의 이음매를 겨냥합니다: 레벨 3의 LIMS 결과가 그 온전한 컨텍스트를 그대로 지닌 채, 레벨 4의 엔터프라이즈 모델이나 레벨 2의 운영자가 그에 따라 행동할 수 있는 곳에 도달하게 만드는 것입니다. 공급업체들은 점점 더 통합 네임스페이스와 MQTT/Sparkplug 도구를 기본 제공으로 출하하고 있으며 [6], 최근 문헌에서 조사된 OT/IT 융합은 열망에서 기본 공장 설계로 옮겨가고 있습니다 [5]. 참조 아키텍처는 학술적인 것이 아닙니다: 그것은 센서 공급업체, SCADA 공급업체, ERP 공급업체가 실제로 연결되는 시스템을 만들 수 있게 하는 공유된 언어입니다.
핵심 용어
- 참조 아키텍처(reference architecture) — 시스템의 계층들과 그것들이 어떻게 연결되는지에 대한 합의된 지도.
- 퍼듀 모델(Purdue model) — 산업 기업의 기초적인 계층 모델로, ISA-95의 토대.
- ISA-95(IEC 62264) — 레벨 0-4와 제어 시스템이 비즈니스 시스템에 어떻게 연결되는지를 정의하는 표준.
- ISA-88(IEC 61512) — 물리적 계층 구조 안에서 레시피를 장비와 분리하는 배치 제어 표준.
- 레벨 0-4 — 물리적 공정과 현장 계기, 기본 제어, 감독 제어, 운영, 엔터프라이즈.
- PLC — Programmable Logic Controller; 계기를 읽고 액추에이터를 구동하는 레벨 1의 기본/조절 컨트롤러.
- SCADA / DCS — 레벨 2의 감독 제어 및 HMI 소프트웨어; DCS는 보통 레벨 1-2에 걸침.
- ERP — Enterprise Resource Planning; 레벨 4의 비즈니스 시스템.
- OT / IT — Operational Technology(장비를 운영함) 대 Information Technology(데이터와 비즈니스를 운영함).
- CIA 삼요소(CIA triad) — 기밀성, 무결성, 가용성; IT는 보통 기밀성을 먼저, OT는 가용성을 먼저 강조하며, 안전은 삼요소 바깥의 추가적 관심사.
- DMZ — 직접 노출을 제한하는 OT와 IT 사이의 완충 네트워크.
- 존과 컨듀잇(zones and conduits) — 장비를 묶고 트래픽을 통제하는 IEC 62443 분할 모델.
- 태그(tag) — 원시 센서의 이름-값으로, 컨텍스트 없이는 무의미함.
- 컨텍스트화(contextualization) — 태그를 정보로 바꾸는 둘러싼 의미를 더하는 일.
- UNS(Unified Namespace, 통합 네임스페이스) — 모든 공장 데이터가 의미 있는 주소에 자리하는 단일 실시간 지도.
- OPC UA(IEC 62541) — 레벨 1-3에 걸치는, 타입이 지정되고 자기 기술적인 연결 프로토콜; OPC UA PubSub은 네이티브 발행-구독 전송(MQTT 또는 UDP 위에서)을 더하고, OPC UA FX(Field eXchange, TSN 위에서)는 그 모델을 컨트롤러 간 통신으로 아래로 확장함.
- MQTT / Sparkplug — 경량 발행-구독 프로토콜과 그 산업용 구조화 사양; Sparkplug B에서
seq는 메시지마다 굴러가는 카운터(NBIRTH = 0)이고bdSeq는 한 세션을 그 NDEATH와 짝짓는 탄생/사망 시퀀스. - 데이터 패브릭 / 데이터 메시 / 데이터 레이크(data fabric / data mesh / data lake) — 흩어진 출처 위의 통합된 기술 접근 계층; 각 도메인이 연합 거버넌스 아래 자기 데이터를 제품으로 소유하는 분산 패턴; 그리고 원시 및 처리된 데이터를 위한 대규모 저장소.
- 시계열 데이터베이스 / 레이크하우스(time-series database / lakehouse) — 뜨거운 운영 데이터를 위한 태그·시간 인덱싱 저장소; 대 장기 보존·교차 배치 분석을 위한, Delta Lake나 Apache Iceberg 아래의 컬럼형 Parquet.
- NOA(NAMUR Open Architecture) — 밸리데이션된 핵심 자동화 피라미드 옆에 모니터링과 최적화를 위한 읽기 전용 제2 채널을 더하는 참조 모델.
- 엣지 / 클라우드 컴퓨팅(edge / cloud computing) — 장비 바로 옆에서의 처리 대 멀리 떨어진 탄력적 데이터 센터에서의 처리.
- PAT — Process Analytical Technology(공정 분석 기술); 적시 측정을 통해 제조를 설계·분석·제어하는 4장의 프레임워크(계기 그 자체가 아님).
- 컨텍스트화된 행(contextualized row) — 원시 측정값에 그 배치·장비·페이즈 컨텍스트를 더해 담은 단일 기록으로, 아키텍처가 만들어 내기 위해 존재하는 데이터 수준 산물(오픈소스에서
s88.v_batch_sensor로 구체화됨). - 아키텍처 부채(architectural debt) — 보안 존과 OT/IT 분할을 설계 단계에 넣는 대신 사후에 개조한 공장이 남기는 지속적 비용으로, 불완전하거나 우회되는 경계를 남김.
- 보안 수준(security level) — IEC 62443에서 한 존에 부여되는 등급화된 보호 목표; 한 존은 가장 약한 구성원만큼만 강함.
- 공격 표면(attack surface) — 공격자가 공장 시스템에 도달하기 위해 건널 수 있는 모든 경계와 경로; GMP 공장에서 OT/IT 경계와 엣지-투-클라우드 경로는 또한 데이터 무결성 표면인데, 침입자가 기록을 읽기만 하는 것이 아니라 바꿀 수 있기 때문임.
- ALCOA+ 지속성 / 가용성(Enduring / Available) — 장기 보존 분석 계층이 물리적으로 실현하는 두 가지 데이터 무결성 속성: 기록은 전체 보존 기간을 살아남아야 하고(지속성) 그 기간 내내 검색 가능해야 함(가용성).
- 단백질 A 포획(Protein A capture) — 정화된 하베스트에서 항체를 끄집어내는 하류 친화 크로마토그래피 단계; 그 UV/전도도/pH 계기, 스키드 PLC, SCADA는 상류 바이오리액터의 것이 그러하듯 레벨 0-2에 정확히 대응하며, 그 저-pH 바이러스 불활화 홀드는 레벨 3의 페이즈로 기록됨.
- RDF / 트리플 / Turtle / SPARQL / SHACL — 그 원자가 주어-술어-목적어 트리플인 그래프 데이터 모델; Turtle은 그 텍스트 구문, SPARQL은 그 질의 언어, SHACL은 요구되는 사실이 존재함을 검증하는 셰이프 언어(뷰에 걸린
NOT NULL제약의 그래프 대응물). - QUDT — Quantities, Units, Dimensions and Types 어휘; 값이 자기 단위를 기계 판독 가능한 IRI로 지니게 하여 숫자가 결코 헐벗고 다니지 않게 함.
- 역량 질문(competency question) — 데이터 모델이 답할 수 있어야 하는 평이한 언어의 질문으로, 통과/실패 인수 테스트로 쓰임(예: "B-2207의 생산 페이즈 동안 공급 유량은 얼마였는가?").
- 데이터 누수 / 그룹 교차검증(data leakage / grouped cross-validation) — 같은 배치의 측정값을 학습 세트와 테스트 세트 양쪽에 넣으면 모델의 겉보기 정확도가 부풀려짐; 그룹(leave-one-batch-out) 교차검증은 각 배치를 함께 떼어 두며, 이는 오직
batch_id가 값과 함께 스택을 타고 올라왔기에 가능함. - 공변량 이동 / 개념 드리프트 / 적용 범위(covariate shift / concept drift / applicability domain) — 입력 분포가 움직임 대 입력-답 관계가 변함; 적용 범위는 모델이 보정되어 신뢰할 수 있는 입력 영역. 공정 드리프트(살아 있는 시스템이 변함)는 제조 사건이고, 모델 드리프트(모델이 진부해짐)는 데이터 사건.
- CSV / CSA / IQ-OQ-PQ — 전산화 시스템 밸리데이션(시스템이 의도된 용도에 적합함을 보여주는 문서화된 증거); 컴퓨터 소프트웨어 보증(rote 스크립팅 대신 위험 기반 비판적 사고로 향하는 FDA 권장 전환); 그리고 설치/운영/성능 적격성 평가, 각 시스템이 검사에 들고 가는 단계적 증거.
이 다음은
이제 우리는 평면도와 엘리베이터를 갖추었습니다 — 하지만 엘리베이터는 모두가 그것을 어떻게 실을지 합의해야만 도움이 됩니다. 연결성과 상호운용성 표준에서 우리는 바이오 생산 데이터를 구조와 의미를 갖춰 실제로 옮기는 언어들을 살펴봅니다: OPC UA, MTP, SiLA 2, AnIML과 Allotrope, 그리고 B2MML/ISA-95 메시징입니다. 거기서 우리는 이 책의 나머지를 이끄는 구별 — 바이트(bytes)를 옮기는 것과 의미(meaning)를 보존하는 것의 차이 — 를 그려냅니다. 그 깊은 탐구는 4부에서 기다리고 있는 질문입니다.