본문 바로가기
Homo Ware

실세계의 제약과 그에 대한 구현체로써의 IT 시스템

by javauser 2011. 3. 18.
실세계의 자원은 분명 한계와 제약이 명시적으로 눈에 보입니다. 예를 들어, 어느 건물의 주차장은 주차할 수 있는 장소에 한계가 있으며, 특정 공간에 주차를 할 때에도 다소 시간이 걸립니다. 또한, 공항에서 티켓팅하는 업무는 각 업무 담당자별로 숙련도에 따라서 처리 시간의 편차가 발생합니다. 현실 세계에서는 이러한 과정과 제약들이 가시적으로 보이기 때문에 다른 대안을 찾거나 대처하는 것이 가능합니다. 하지만, 이러한 대안과 대처는 분명 그 주체에게 해당 상황에 대한 정보를 별도로 필요로 합니다.

하지만, 그에 반해 IT 세계에서는 자원과 공간의 제약이 무한정으로 늘어납니다. 물론, 디스크 용량과 메모리 용량에 대해 한계가 있는 것은 사실이고, CPU 상의 점유 프로세스 별로 수행되는 순서가 존재하는 것은 사실입니다만, 이는 현실 세계에 비해 공간은 무한하다고 볼 수 있으며, 프로세스 처리 시간은 극히 짧다고 볼 수 있습니다. 즉, IT 세계에 만일 실세계의 주차장을 가상으로 구성한다면 무한 대의 자동차를 무한 대의 공간에 배치할 수 있으며, 공항의 티켓팅 업무 역시 무한 명의 대기 열로 무한 명의 업무처리자를 통해 티켓팅 업무를 수행할 수 있을 것입니다.

온라인 업무는 대부분 IT 세계에서 업무가 처리되기 때문에 현실 세계에서의 제약에 대해서 상당히 자유롭습니다. 하지만, 모든 업무를 컴퓨터 혼자 자동으로 처리하기는 어렵기 때문에(인공 지능과 같은 기술들이 이러한 자동화를 시도하는 영역들이지만, 이에 대해 100% 컴퓨터가 업무를 수행하도록 하는 것은 아직까지 대중화되기까지에는 시간이 걸릴겁니다.) 사람이 간섭하게 되며, 때로는 오프 라인상의 개념들이 같이 참여하게 됩니다. IT 시스템을 구현시 이러한 온라인 처리와 오프라인 처리의 조화가 우선시 고려되어야 하며, 이러한 영역들은 비즈니스 프로세스 리모델링(리엔지니어링)이라는 분야에서 업무를 IT 시스템과 조화롭게 구성하고자 하는 노력들을 합니다. 하지만, 업무 프로세스의 조정은 분명 조직의 재구성을 불러오며, 이는 많은 반발을 불러일으키게 되며, 그러한 충돌을 피하려고 IT는 기존 업무를 그대로 시스템으로 구성하게 됩니다.

이와 같이 현실 세계의 개념이 IT 개념과 만나면서 현실 세계의 제약이 그대로 IT 세계의 제약으로 들어오게 됩니다. 즉, IT의 무한한 공간과 빠른 처리 능력은 현실 세계의 공간과 처리 시간에 상응하는 제약을 받게 됩니다. IT 세계의 가상 주차장은 무한대의 자동차를 주차할 수 있음에도 불구하고, 현실 세계의 제약을 수용해야 하고, 거의 0의 시간으로 주차를 할 수 있음에도 불구하고 주차하는 사람의 평균 주차 처리 시간으로 주차하게끔 해야 합니다. 바로 현실 세계를 IT 시스템으로 옮기는 작업은 현실 세계의 반영 작업이 현실 세계의 제약 사항까지 모두 수용해야 함을 의미합니다. 하지만, 복잡하고 다양한 변수들로 가득찬 현실 세계의 모든 모습들을 IT 세계로 옮기는 것은 거의 불가능하고 (가능 하더라도 시간과 예산의 제약을 받음) 가능한 한 단순하고 체계화시켜서 이를 적용합니다.

예를 들어, 가상 주차장에서 주차하는 운전자 별로 주차하는 시간에 상당한 변이가 발생합니다. 어떤 운전자는 미숙하기도 하며, 어떤 운전자는 주차가 아닌 그냥 단순히 업무만 보고 차에서 내리지도 않은 채 주차하지 않고 가버립니다. 혹은, 어떤 운전자는 장애인이기 때문에 주차하고 자동차에서 떠나기까지 한참의 시간이 소요되기도 합니다. 어떤 자동차는 주차할 수 있는 공간이 너무나도 협소하여 일정하게 구획된 장소가 아닌 다른 장소에 주차를 하기도 합니다. 이와 같이 다양한 경우의 수가 발생되며, 각 유형별로 시스템이 어떻게 수용하느냐가 현실의 업무에 영향을 미치게 됩니다. 즉, 기존 오프라인에서 진행하는 업무가 일부 온라인 업무가 되면서 이러한 고려 사항들을 무시한채 구현되면, 기존 업무들에는 이전과 다른 형태로 (보통은 최적화된 상태의 업무가 처리 결과가 너무나도 느린 형태로) 그 결과가 나타나기도 합니다. 특히, IT 시스템이 결정적인 경로(critical path) 상에 놓이게 될 경우, 온/오프 라인의 업무는 상당한 조화를 필요로 합니다. 오프 라인의 업무가 온라인 업무에 맞추던지 (IT 시스템으로 불편해진다고 하더라도 참는다든지), 온라인 업무를 최대한 오프라인 업무에 지장이 되지 않도록 시스템을 구현하는 동안에 생략된 제약 사항들을 추가하게 됩니다. 일반적으로는 안정화 기간이라는 형태로 온라인 업무를 오프라인 업무에 맞추어서 그 균형을 맞추는 작업이 발생됩니다.

여기에서 IT 시스템에 구현된 내용들과 새로 도입이 되는 현실 세계의 제약 사항들과 충돌을 빚게 됩니다. 그러한 충돌은 다양한 형태로 시스템의 건전성을 해치거나, 기존 소스 코드나 DB에 여러가지 편법들을 강행하게 합니다. (대부분이 안정화 기간이 짧은 탓에 다시 설계하거나 다시 구현하기에는 턱없이 부족하여 이러한 현상은 결국 시스템을 사용하지 못할 정도로 해치기도 합니다.) 시스템을 최초에 분석/설계할 때에 이러한 현실 세계의 제약사항들을 모두 고려하기란 상당히 어렵습니다. 특히, 업무 범위가 너무나도 광범위한 차세대 업무들은 더더욱 이러한 현상들이 자연스러울 정도로 받아들이게 됩니다. 이러한 문제들의 해결책으로 빠르고 잦은 배포를 통한 고객의 검증을 자주 시도함으로써 그러한 차이들을 최소화시키려는 노력을 하기도 합니다. (Agile, SCRUM 방식 등) 하지만, 궁극적인 문제는 완전하게 해결되기는 아직까지 요원합니다. 현실 세계에서의 모든 복잡하고 서로 얽혀있는 규칙이나 관계들이 엄격하게 모델화되거나 수식화되기 전까지는 이러한 타협은 어쩔 수가 없을 것 같습니다.

결국은 IT 시스템은 처음부터 완벽하게 (혹은 이상적인 모습으로 모든 것을 처리해준다는 환상을 가지는) 구현하려고 하는 노력보다는 기존 오프라인의 비즈니스와 타협하고 서로의 업무를 맞추려고 하는 노력들이 더 필요합니다. 분석과 설계가 완벽하지도 않은 상태에서 구현을 하고, 그것도 순차적으로(폭포수 모델과 같이) 일어나는 프로젝트가 많이 있습니다. 사람들이 쉽게 이해하고 관리하기 편한 형태로만 IT 시스템을 만들고 결국에는 오프라인 업무는 무시하거나 타협하려는 노력조차도 시도하지 않습니다. 혹은 모든 것을 새로이 만든다는 목표 아래에 기존 업무는 그대로 유지한채(기존 조직은 그대로 두면서) IT 시스템만을 최신의 기술과 최신의 기반으로 구성하기만 합니다. 온/오프 라인의 업무는 적절한 타협이 필요하며, IT 세계는 현실 세계의 제약을 충분히 이해하고, 현실 세계에서 모든 것을 구현한 것이 아니라는 점을 분명 인식하고 언제든지 다른 제약들이 추가되거나 변경될 수 있다는 것을 염두해두어야 합니다.
반응형