2008. 10. 23. 20:44

엔터프라이즈 시스템 아키텍처

RFID 시스템 구축에 들어가며

RFID 시스템을 구축하기 위해서 많은 사람들은 우선 UHF RFID를 찾아서 공부를 하는 것 같다. RFID 태그와 리더, 프린터라는 것이 있다는 것을 알고, 전파를 통한 인식에 대해 이해하게 된다. 그러면서 EPC 라는 용어와 EPCglobal Network에 대해서 이해하면 이제 어느 정도 RFID를 안다고 여기게 되고 또한 "표준이 매우 중요하다" 라고 결론 짓는다. 그리고 응용 시스템 구축을 위한 기능에 대해 고민하고 조금 더 생각하면 웹 연동 기술과 웹서비스 같은 방안에 대해서 고민하면 매우 전문가가 되는 것이다. 보안이나 권한 문제는 글로벌한 개념을 고민할 때 중요한 이슈이다.

하지만 이러면 모든 준비가 다 끝난 것일까? 실제로 현장에서는 그럼에도 불구하고 제대로 시스템 운영이 되지 않는 경우가 허다하다. 굳이 RFID가 아니라고 하더라도 한때 ERP 시스템 구축이 유행처럼 번지던 때가 있었으니 대기업들이 ERP를 구축하여 어느정도 성과를 보이게 되자 타겟을 중소기업으로 돌려 너도나도 (혹은 정부 지원금으로) ERP를 구축하였다. 하지만 이때 위와 같은 고민이 똑같이 나타나게 되었다.

그것은 바로 현장에서 제대로 된 데이터가 들어오지 않는다는 어찌보면 우습기까지 한, 너무나 당연하면서도 너무도 중요한 사실을 망각한 결과이다. 왜 제대로 된 데이터가 들어오지 않았을까? 이 점을 자세히 들여다 보기 위해 우선 기업 환경에서 구축하는 시스템의 구조를 자세히 들여다 볼 필요가 있다.

2차원 엔터프라이즈 시스템 아키텍처

2차원 엔터프라이즈 아키텍처

그림1. 2차원 엔터프라이즈 아키텍처

<그림 1> 2차원 엔터프라이즈 아키텍처


기업에서 어떤 애플리케이션을 구축한다고 하면 사람이 화면을 이용해서 DB에 들어 있는 데이터를 어떻게 잘 꺼내 쓸 것인지를 고민하게 된다. 사람이 동시에 몇명이 접속을 해야하고 UI는 웹으로 할 것인지 C/S 환경이 될 것인지, 이를 DB에서 잘 꺼내서 보여 주기 위한 방법으로 WAS 를 어떻게 잘 구성해야 하는지 또는 트랜잭션 처리를 잘하기 위한 미들웨어를 써야 할지 말아야 할지, 쓴다면 어떻게 써야 할지 등등... 이것은 <그림 1>에서 수평축으로 표현된 데이터 소비 축이라고 얘기할 수 있다.

하지만 이것보다 더 근본적인 문제가 하나 더 있었으니 이것이 바로 위에서 얘기한 실패 사례의 해답이다. 그것은 바로 우리가 꺼내 쓰고자 하는 DB에 데이터가 잘 들어 가 있어야 한다는 것이다. 너무도 당연한 이야기이지 않는가? 좋은 데이터를 잘 꺼내서 보기 위해서는 좋은 데이터가 제때에 잘 들어가 있어야 하지 않겠는가? 하지만 이것이 생각보다 쉽지가 않다. 이 축을 수직축, 데이터 공급 축이라고 정의하겠다. 이 수직축은 자동화라는 개념이 도입된 때부터 있어 왔기 때문에 그 역사는 매우 길다. 그럼에도 불구하고 일반적으로 많은 사람들이 바로 이 수직축을 무시하기 때문에 수평축에 데이터 공급이 잘 안되는 결과가 만들어 지는 것이다.

그것의 원인을 찾아 보자면, 우선은 이 수직축은 수평축에 비해 기술적 난이도가 매우 높다. 보통 수평축에 있어서 사용자의 반응성은 3초 이내면 어느정도 괜찮다고 평가를 한다. 그리고 몇만명의 동시 사용자라고 하더라도 이건 연결된 세션의 수이다. 하지만 수직축은 사람이 입력하는 데이터일 수도 있지만 보통은 자동화된 기계에서 올라오는 데이터가 더 일반적이다. 기계는 하나가 1초에도 수백개가의 데이터를 쏟아 낼 수도 있고, 그 크기도 몇백 바이트가 넘을 수도 있으며 하나의 공장에서도 몇수십 만개의 기계나 컨트롤러가 접속될 뿐 아니라 종류도 예측이 불가능할 정도이며 접속 방법 또한 매우 다양하다는 사실이다. 따라서 이런 복잡하면서도 어려운 시스템을 잘 만들어 내는 것이 쉽지 않고 기계를 상대로 하다보니 소프트웨어 뿐 아니라 하드웨어에 대한 지식이 뛰어 나야만 하다.

하지만 이를 수행하는 작업 환경은 매우 열악해서 수평축의 개발자들이 비록 밤을 새고 힘들게 작업을 하고는 있지만 주로 전산실 사무실에 앉아서 작업을 하는 반면에 수직축에서 일하고 있는 개발자들은 현장을 누비고 다녀야만 한다. 그 작업 현장이라는 것이 100% 청정을 요구하는 반도체 공장에서 부터 쇳물을 녹이는 용광로까지 그 종류도 일일이 열거할 수 없을 정도이다. 이러한 환경에서 에러 없는 데이터 수집을 위해서는 몇일 밤을 새는 일이 허다하다 보니 (심지어는 이런 작업 환경에서 에러를 잡다가 잠시 졸아 목숨을 잃는 개발자도 있다.) 실로 목숨을 건 사투를 벌이는 일임에 틀림없다.

그것 뿐인가? 이런 고생을 하는 엔지니어의 몸값은 거의 제 값을 받지 못한다. 대부분의 회사들은 장비나 기계는 돈 주고 살지언정 그것을 움직이는 소프트웨어에는 공짜라는 인식이 뿌리박혀 있다. 따라서 소프트웨어 가격을 장비 가격에 포함시켜 겨우 받고는 하는데 문제는 이것도 경쟁이 심하다 보니 서로 제살을 깎아서 그 비용을 너도나도 줄이게 되는 것이다.

상황이 이럴진데 경험이 풍부하고 똑똑한 개발자들이 남아 있겠는가? 그러다 보니 악순환이 반복되어 수직축에 대한 인식도 제대로 되지 않았을 뿐 아니라 발전도 그만큼 되지 않았다고도 할 수 있을 것이다. 이것에 대한 완성도가 높지 않으므로 데이터의 신뢰성 부족 때문에 결국 수평축의 가장 끝단에 놓여진 사람에게까지 정보 전달이 되지 않는다고 볼 수 있다.

수평축과 수직축에 놓여진 각각 단위 단위 레이어를 살펴 보면 매우 유사함을 알 수 있다. 단지 각 끝단이 사람과 기계의 차이, 그리고 주고 받는 데이터의 방법 등의 환경만이 다르다.
사용자 삽입 이미지

<그림2> 3차원 엔터프라이즈 아키텍처

<그림1>과 같은 1,2차원의 시스템 아키텍처가 잘 만들어져야 비로서 <그림2>와 같이 Global한 연계가 가능한 3차원 아키텍처가 완성되는 것이다. 여기서 중요한 것은 RFID에서 얘기하는 EPCglobal Network이란 것은 바로 3차원의 개념에서 이해해야 한다는 사실이다. 그리고 RFID Middleware 라고 얘기하는 개념은 1차원 개념의 데이터 제공 축상에 놓여 있으므로 이 둘은 서로 다른 차원에서 이해해야 한다는 사실도 잊지 말아야 한다.
Trackback 0 Comment 0