왜 필요할까요?
EA, Enterprise Architecting 관점에서 들여다보면 시스템의 구성은 Business-Application-Data-Infrastructur의 네 개 레이어로 구분할 수 있다. 비즈니스 인프라로서 시스템을 들여보면서 주로 ERP를 바탕으로 IT 경험과 지식을 축적해 오다보니 RDB 구조나 structured data를 다루는 것에 대해 깊이 생각해 보지 않고 습관적으로 적응한 경향이 있다. 즉, 회계 처리 기반으로 표준화된 업무 프로세스와 패키지화된 application을 정형화된 데이터 구조로 담아 재무제표를 추출하는 과정이 굉장히 당연해서 그 의미에 대해 고민할 여지가 없었던 것 같다.
최근 RDB의 특성에 대해 설명한 아래의 문장을 읽고 나름 '아하 모먼트'가 있어 생각을 정리해 본다.
Allows for real time changes: consistency of data within a single table enables a user to easily make a change across several (or all) records in a dataset. The automation of this process allows for the change to be made more efficiently and with less potential for human error. 실시간 변경을 허용함: 개별 테이블 내의 데이터 일관성을 통해 사용자로 하여금 데이터세트의 데이터값을 손쉽게 변경할 수 있게 한다. 이 과정을 자동화함으로써 데이터값 변경이 보다 효율적으로 이루어지고 휴먼 에러의 가능성도 줄어들게 된다.
앞서 적은 EA의 네 가지 레이어 중 business를 좀 더 포괄적으로 human behavior라고 보면, 시스템은 결국 인간의 행위를 데이터로 변환하는 데에 존재 이유가 있다. Human Computer Interfacing은 이 모든 절차의 앞단에서 '어떤' 행동을 '어떻게' 포착할 것인가를 제한적으로 결정한다. 이렇게 포착한 행동 data는 최종적인 분석 목적에 적합하게 설계된 데이터 구조에 맞게 변환, 저장된다. 이 변환, 저장하는 기능을 수행하는 것이 application이다. 잘 저장된 데이터는 분석 요구에 따라 다시 호출되어 인간이 insight를 찾는 데에 쓰인다. Interfacing부터 insight에 이르기까지는 수 개의 분절된 data 구조와 application을 통해 processing을 거쳐야 하는데, 시작부터 끝까지 데이터가 일관되어야 한다. 무슨 말이냐면, 예를 들어 김지연이라는 사람의 성장에 따라 비만도를 살펴본다고 하면 매일매일 변화하는 키와 몸무게 값이 실시간으로 입력>계산되어야 실제 비만도를 알 수 있다. 어제보다 키가 컸는데 오늘 계산하는 비만도 수식에 오늘의 키가 반영되지 않으면 잘못된 값을 가지고 해석하게 된다.
즉, 1. 인간의 행위activity를 포착, 기록하여 insight를 도출하는 것. 2. 이를 위해 데이터 일관성data consistency를 보장하는 것. 이 두 가지가 시스템의 존재 목적 아닌가 한다. 여기에 있어서 RDB의 작동방식은 key값으로 데이터 테이블 간의 관계를 정의하여 데이터값에 변경이 발생하면 연관된 테이블의 값을 일괄 변경할 수 있도록 함으로써 데이터 일관성을 보장한다.
ERP는 회계 논리 기반으로 기업의 모든 활동을 데이터화하고, 기업의 최소의무인 '재무제표 공시'의 신뢰도를 높이는 데에 목적이 있다. UX를 설계할 때에는 이런 목적 관점에서 세무회계적 audit 요건을 충족하는가가 판단 기준이 되어야한다. 그러니까 기업의 비즈니스 activity를 기록하는 trigger event가 회계 audit 관점에서 정의되고 > application 설계 > DB 설계로 이어진다.
Data consistency 관점에서 이해하면, 비즈니스 거래 요청이 발생하고 > 거래 승인하고 > 자금관점에서 검토 > 세무관점에서 검토 > 빌링 접수 > 입출금 발생 > 채권채무 상계 처리 > 세금계산서 처리 > 결산. 그 과정에 물동, 재고관리, 생산, 비용관리가 보조되고. 각 시점에 '인간의 액션'을 넣어 data consistency 관리 책임을 지우는 UX를 설계하는 것이다. 결과적으로 재무제표가 기업의 snap shot을 얼마나 정확하게 반영하느냐가 시스템의 완결성을 평가하는 지표가 된다. 덧붙여서 automation 수준에 대해서는, 사업 검토를 위해 '인지'되어야 하는 프로세스에 일부러 human error의 여지를 남겨 디자인한다.
시스템 혁신의 내용은 무엇이 될 수 있을까? 결국 비즈니스 혁신과 back and forth하는 과정일 거라고 생각한다. 제조의 비용구조, 판매의 pricing, 유통망 설계, 고객과 공급자 관계가 dynamic한 이면시장(2-sided market) 등 비즈니스 변화를 반영하는 시스템. 또는 blockchain 기술, IoT, metabus, networking, 여러 data 분석기법 등 비즈니스 변화를 유도하는 시스템. 재미있고 의미있는 시도가 많이 있기를 바라는 의미에서 여러가지 목적과 제약을 설계하고 다양한 툴을 제한없이 활용하는 오브젝트 모듈이 되면 좋겠다.