정보계 시스템 개발 이슈 및 실시간 처리 방안


▲ 김현철 수석컨설턴트(주)데이터스트림즈 컨설팅팀



정보계 시스템 개발 이슈
IT 인프라를 효율적으로 갖추고자 하는 기업들의 고민은 어떠한 IT 프로젝트를 수행하더라도 시스템을 구성하는 데이터의 신뢰성, 정합성이 100% 보장되지 않기 때문에 원하는 결과를 얻기 힘들다는 사실이다. 과거 정보계 시스템 구축은 기업에 축적된 데이터를 쌓아두기만 하는 방식이었으며, 어떻게 사용 할지에 대해서는 고민이 없었다. 하지만, 그렇게 쌓인 데이터의 무용론이 데이터 품질 측면에서 제기 되면서 기업의 IT 관계자들이 데이터 품질에 대한 중요성을 인식하게 된 것은 불과 수년 전부터 이다. 그 동안의 정보계 시스템 구축은 데이터의 관점이 아닌 프로세스를 정비하고 그 프로세스를 IT 시스템에 맞추어 구현하는 것을 의미하였다. 단지, 프로세스와 시스템을 구축한다고 하여 기업에서 원하는 고품질의 정보를 제공하는데 한계를 가지고 있었다. 문제는 정보계 시스템의 데이터 품질은 여러 가지 요인으로 인해 지속적으로 나빠지기 때문이다. 데이터 품질이 나빠진다고 해서 당장 기업 운영에 심각한 영향을 주는 것은 아니지만 방치할 경우 정보계 시스템 전체를 재구축하는 원인이 되기도 한다. 이러한 사실로 인해 지속적인 데이터 품질관리가 반드시 필요하다. 그러나, 대부분의 기업에서는 현재도 데이터 품질을 위한 시스템을 갖추지 않고 있으며, 데이터 문제 발생 시 발생된 근본 원인을 찾아 해결하지 않고 임기응변 식 해결을 하고 있다. 많은 기업에서 도입한 정보계 시스템의 경우 불량 데이터로 인한 정보 서비스 품질 저하로 본래 시스템 구축 목적인 빠르고 정확한 비즈니스 의사 결정을 위한 시스템으로 활용되지 못하고 있다.

여기에 추가되어 정보계 데이터 양의 증가에 따른 처리 성능 문제가 이슈로 나타나기 시작하였다. 초기 정보계 시스템 구축 시 생성된 데이터 양이 시간에 지남에 따라 2배에서 수십 배까지 증가하였으나, 프로세스를 초기 구축 프로세스의 변경 없이 그대로 사용함으로 성능에 대한 보장을 할 수 없는 상황이다. 프로세스 개편 및 하드웨어를 Upgrade하는 방식으로 해결 하려고 하나, 본질적인 성능 한계를 느낄 수 밖에 없다. 현재는 하드웨어 Upgrade 뿐만 아니라, DBMS 위주의 처리에서 벗어나 Data Hub (데이터 재 사용성) 개념을 도입하고, SSD (Solid State Drive)사용으로 Disk I/O 성능을 높임으로써 성능에 대한 문제를 극복하고자 한다.

또한, 위에서 언급한 문제인 데이터 품질 문제를 해결할지라도 기업에서는 최신 정보를 최대한 빨리 이용해 자사 비즈니스 관리와 실행 과정에서 발생되는 정보 분석을 통해 비즈니스 지연 사태를 제거함으로써 비용 절감과 수익 증대라는 기업의 최대 이슈 사항을 해결하고자 한다. 이를 위해서는 발생되는 데이터의 실시간 처리를 통한 신속한 정보 공유를 통해 비즈니스 중요 이슈 사항에 대한 결정을 수행할 수 시스템을 구축하여야 한다.

데이터 품질 관리에 대한 구체적인 부분에 대해서는 "데이터 품질 관리의 다양한 접근 사례" 기고를 통해 밝힌 바 있음으로 여기서는 언급하지 않기로 하고, 성능 이슈 문제에 대해서는 다음 기회에 좀더 심도 있는 방안을 살펴보기로 한다. 다만, 데이터 품질과 실시간 데이터 통합 방안에 대해 마지막에서 언급하고자 한다.

실시간 데이터 처리란?
변경 데이터 처리는 기간계 시스템에서 발생한 변경 사항을 정보계 시스템에 반영하는 데이터 동기화를 의미한다. 데이터 동기화에는 세 가지 방법이 있다. 첫 번째 유형은 기간계 시스템 변경된 사항을 Batch 처리 방식 (일,주,월 Batch 작업)으로 정보계 시스템에 반영하는 것이고, 두 번째 방식은 트랜잭션이 발생하는 시점에 실시간으로 레코드 단위 또는 트랜젝션 단위로 정보계 시스템에 동기화한다. 이를 위해 메시지 큐 등의 다양한 기술이 사용된다. 세 번째는 실시간에 가까운(Near Real Time)방식으로 1분,5분 또는 더 짧은 시간 단위로 정보계 시스템에 반영하는 것을 의미한다.

실시간 데이터 처리 요구
기술의 발전에 따라서 과거에 Batch작업을 통한 D+1일 이상의 데이터를 정보계 시스템에 적재하였으나, 현재는 실시간 정보를 제공할 수 있는 기술까지 발전하여 기간계 시스템에서 발생하는 Event들을 즉시로 획득하여 정보계 시스템에 전달하여 실시간 의사 결정 정보 제공이 가능하다. 이에 핵심적 요소는 정확한 정보에 대한 전달 및 접근이 비즈니스 성공을 위한 요소가 되었다.

기업의 IT 관점에서의 요구 사항은
1. 의사결정, 고객 관리, 시장 변화에 발 빠르게 대응하기 위해 정보 획득 및 획득 된 정보를 통한 분석 및 리포팅을 위한 실시간 처리를 요구하고 있으며,
2. 기업 전반에 걸친 데이터 일관성 유지를 요구하고,
3. 일, 주, 월 Batch를 통한 처리가 아닌 실시간 Batch 처리를 통한 처리 시간 단축 요구,
4. 신규 비즈니스 발견과 대응에 대한 실시간 처리 요구,
5. 상시 감사와 같은 데이터 감사를 목적으로 한 실시간 정보 추적을 요구하고 있어 실시간 데이터 처리의 필요성이 증가하고 있다.

실시간 데이터의 활용 역량
실시간 데이터의 활용 역량은 다음과 같다.
1. 실시간으로 대용량의 데이터에 접근하여 분석 가능한 리포팅 및 분석이 가능하며,
2. 다양한 데이터 소스로부터 실시간으로 얻어질 수 있는 데이터를 가지고 업무 중심적인 리포팅 및 분석을 할 수 있으며,
3. 데이터를 표준화된 시스템, ERP, CRM 등으로의 데이터 이관을 실시간으로 처리 할 수 있으며,
4. 기업의 투명성을 보장하기 위한 추적 감사하는 기능 확보 및 MDM(Master Data Management)구축을 통한 기업 운영에 필수적인 (고객, 상품, 직원 등)의 정보에 대하여 일관된 관점 (Single version of Truth)을 유지 할 수 있는 역량을 가질 수 있다.

CDC를 통한 실시간 데이터 처리 방안
Change Data Capture(이하 CDC)는 실시간 데이터 처리를 대표적인 방법이다.
CDC 처리는 변경 데이터만 복제함으로써 자원의 활용을 최소시키고 실시간으로 변경된 데이터를 정보계 시스템에 전달하는데 있어 시간의 지연을 최소화 할 수 있게 한다. 또한, CDC 처리 방식은 DBMS에 직접 쿼리를 실행하지 않고 DBMS 로그 파일들을 읽어서 처리함으로 기간계 시스템에 영향을 주지 않는다. 로그 중심의 데이터 복제 기술을 적용하여 기간계 시스템의 성능에 영향을 최소화 한다. 배치프로그램을 필요로 하지 않음으로 기간계 시스템의 구조에 영향을 미치지 않는다. 변경데이터 추출을 위한 Timestamp가 필요치 않음으로 변경데이터 추출을 위한 애플리케이션 또는 스키마의 변경이 필요 없다. 운영중인 IT환경에 영향을 주지 않음으로 추가적인 H/W 또는 장비 추가가 필요치 않는다. 최소한의 지연으로 실시간 변화 데이터 전송이 가능하여, 변화가 발생된 데이터만을 정보계 시스템으로 전송한다. 하지만, 대용량 변경 분 데이터 발생 시 실시간 처리의 문제점을 가지고 있고, 시스템 장애 복구 후 처리 지연을 보장할 방안이 미흡하다.

NRT를 통한 준 실시간 데이터 처리 방안
Near Real Time (이하 NRT : 준 실시간 처리)를 통한 실시간 데이터 처리가 가능하다. NRT 처리는 기존 CDC 처리가 가지고 있는 단점인 대량 처리 및 이기종 간의 변경 데이터 처리 문제를 보완하고 실시간에 가깝게 변경 데이터를 처리 한다. 변경 데이터를 기간계 시스템에서 DWIO를 통하여 발생된 원장성 변경 데이터 및 로그성 데이터를 정보계 시스템에서 가공처리 하여 적재한다.

데이터 품질과 실시간 데이터 통합
데이터품질은 데이터 소스의 오류를 제거함으로써 데이터 관리체계를 유지하게 해준다. 데이터 품질과 데이터 통합은 마스터 데이터 관리를 지원해주고 데이터 중복을 제거하여 데이터의 일관성을 유지시켜준다. 데이터 프로파일링과 데이터 품질 측정은 데이터 품질 개선을 위한 중요한 요소이다. 데이터 프로파일링의 결과는 데이터 소스의 품질수준을 판단할 수 있는 메타데이터로 활용될 수 있다. 성공적인 데이터 통합의 필수 기능으로 수집 (Collect), 검증 (Validation), 관리 (Administration)의 3요소를 갖추어야 한다. 실시간 데이터 통합에서는 수집, 관리 부분에 대해서는 많은 발전을 하였으나, 검증 부분에 대해서는 아직도 해결하여야 될 문제가 존재한다. 수집 (Collect) 기능은 데이터 통합의 출발점이라고 할 수 있다. 이 경우 메인프레임을 비롯 하여 UNIX 환경, Window 환경 등 다양한 데이터 및 환경에 대한 편의성을 제공 한다. 검증 (Validation) 기능은 데이터 품질을 의미한다. 성공적인 데이터 통합을 위해서는 원천 데이터의 품질이 보장되어야 하며, 추출 및 변환 과정에서의 품질도 확보 되어야 한다. 지속적인 모니터링 및 검증을 통해 Garbage 데이터의 발생을 억제하여야 한다. 관리 (Administration)의 관점은 데이터 추출 및 가공에 대한 자동화, 품질관리, 메타데이터 관리 등을 기업의 환경에 맞게 최적화 하여 운영의 편의성을 갖추는 것을 의미한다. 실시간 데이터 통합에는 많은 장점이 있는 반면에 위에서 언급한 바와 같이 수많은 결함 중에서도 데이터 품질 문제가 가장 큰 문제이다. Batch 프로세스에 의한 데이터 통합은 실제적으로 데이터를 분석하고 오류를 제거할 수 있는 기회가 있지만 실시간 데이터 통합에게는 낮은 데이터 품질, 데이터의 부 정확성이 더 큰 위험요소이다. 데이터 통합 도구가 과거 보다는 이러한 품질문제를 많이 개선했지만 아직도 개선의 여지가 많이 남아 있다. 언젠가는 거의 완벽한 실시간 데이터 통합 품질의 구현이 가능하겠지만, 현재 실시간 데이터 통합 품질은 개념적인 것 보다는 기술적인 문제가 더 크다. 실시간 데이터 통합은 모든 기업과 조직에게 이상적인 것이 아니다. 주 단위 또는 월 단위 보고 자료를 생성하는 하는 경우 실시간 데이터 통합은 고려대상이 아닐 수 있다. 따라서 데이터 통합 방법은 시간 지연성(Latency)에 대한 요구사항을 고려해야 한다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지