이영선 넥스엔정보기술 대표

▲ 이영선 넥스엔정보기술 대표

[컴퓨터월드] 블렌딩(Blending)은 모두가 알고 있겠지만 술에서 많이 쓰이는 용어이다. 몰트위스키(Malt Whisky) 와 그레인위스키(Grain Whisky)를 혼합해 술의 향과 맛을 향상시키기 위한 작업을 일컫는 말이다. 데이터 운영에서도 블렌딩(Blending)이란 용어가 비슷하게 사용되고 있다. 데이터 블렌딩(Data blending)이란 여러 형태의 데이터를 가공해서 필요한 데이터를 만드는 과정이다.

과거 데이터 블렌딩(Data blending)이란 작업은 전문적인 프로그래머의 전유물이었다. 데이터에 대한 이해와 더블어 프로그램밍 능력이 있어야 만 데이터 블렌딩(Data blending)작업이 가능했다.


전산 지식없는 현업 담당자가 데이터 설계·가공·처리
필자가 처음으로 전산실에서 일하던 때였다. 그 당시는 오라클 데이터베이스(Oracle Data Base)가 자리를 잡던 시절이라 데이터베이스(Data Base)가 아닌 ISAM 파일 형태의 파일 시스템을 사용하는 곳이 많았다. 필자가 근무하던 회사도 데이터베이스를 도입하기 전의 시스템을 사용 중이었으며 코볼(Cobol)이라는 언어로 데이터를 처리하고 있었다.

영업부서의 고참 대리가 하루는 출력물을 가지고 와서 자료가 없는 부분이 있으니 다른 출력물의 항목 두 가지만 붙여 주었으면 좋겠다고 했다. 그리고는 ‘30분이면 충분하지’라는 말을 남기고 갔다. 지금의 시스템처럼 구조화되어 설계가 이루어지거나 데이터베이스화 되지 않아 그때그때 필요에 따라 출력물을 만들어 제공하던 시절의 이야기다.

관계와 키 값에 대한 설계가 제대로 되어 있지 않는 시스템에서 새로운 자료를 만들기란 쉽지 않는 일이다. 시스템에 대한 무지와 자기 업무 데이터에 대한 깊은 지식이 없는 고참 대리의 요청사항은 황당할 수밖에 없었다. 25년전 ‘컴퓨터는 모든 것을 다 해줄 수 있다’는 환상을 가지고 있던 때의 이야기다.

사실 현업 업무의 데이터 특성이나 데이터의 필요성은 현업 담당자가 제일 잘 알고 있다. 하지만 현업 담당자는 전산 자원에 대한 전문적인 지식이 없어 항상 전산담당자에게 필요한 자료 출력을 요청을 하고 데이터를 만드는 작업을 한다. 이 과정을 통상 업무 분석과 데이터 아키텍처(Data architecture) 설계라고 얘기한다.

프로젝트를 진행하면서 대부분 데이터아키텍처 설계에 많은 시간을 할애한다. 이유는 간단하다 현업 업무에 대한 이해가 필요하고 현업 담당자로부터 많은 설명을 들어야 하기 때문이다. 설계 자료를 만드는 작업이 개발자나 설계자 능력에 좌우되는 것이 아니고 현업 담당자가 얼마나 적극적이고 준비가 되어 있는가에 따라 달려 있다고 볼 수 있는 이유이다.

만일 현업 담당자가 전문적인 컴퓨터 프로그램 언어를 알지 못하고 시스템에 대한 지식 없이도 데이터를 직접 설계 가공 처리할 수 있다면 어떻게 될까? 그렇다면 프로젝트의 페레다임이 바뀌지 않을까?

데이터 블렌딩(Data blending)을 위해서 사용되는 기능들이 있다. 일반적으로 데이터베이스에서 많이 사용하는 용어들인데 join, add, merge, sort, select, unique key, summarize, union, group 등이다. 이런 용어들은 데이터베이스에서 데이터 핸드링(Data handling)때 사용되는 명령어들과 일치한다. 데이터베이스가 데이터를 가공하기 위해 만들어진 소프트웨어이기 때문이다.

데이터베이스와 데이터아키텍처에 대해서 잘 아는 전문가라면 이러한 작업은 어렵지 않다. 하지만 Text, csv 형태 등 비정형 데이터와 비 데이터베이스화 된 자료들이라면 데이터베이스/데이터아키텍처 조차도 데이터 처리가 힘들다. 전문적인 프로그래머가 데이터에 대해 분석하고 파싱(parsing)과정을 거쳐 데이터 처리를 하고 다시 데이터베이스에 로드(load)해서 앞서 언급한 명령어들로 데이터처리를 해야 하는 복잡한 과정을 거친다. 기술적 경험은 물론 많은 시간이 필요한 일이다.


알트릭스, 컴포넌트 형태로 모든 기능 지원
Citizen Analyst를 표방하는 알터릭스(Alteryx)는 툴(tool) 내부에 컴포넌트(component) 형태로 이 모든 기능을 가지고 있다. 데이터의 특성만을 알고 join, merge, sort, union, group의 개념만 이해 한다면 복잡한 프로그램과 파싱(parsing)과정을 거치지 않고 데이터베이스 명령어(SQL)와 데이터베이스 시스템(Database system)에 대한 전문적인 지식 없이도 데이터 핸드링(Data handling)이 가능하다.

오라클 DB에서의 join명령어와 알터릭스(Atleryx)에서 join을 간단히 비교해보겠다. 알터릭스(Alteryx)는 CSV파일을 그대로 읽어 들여서 Join을 한 것이고 오라클은 데이터베이스 테이블(Database table)을 이미 만들어져 있고 데이터베이스 내에서 쿼리 랭기지(query language)로 join을 한 것이다. 실제 csv형태의 파일을 join하려면 데이터베이스 내에 테이블(table)을 생성하고 sqlloader를 이용해서 데이터를 데이터베이스에 적재한 후 query language로 join을 하는 복잡한 과정이 필요하다. 하지만 이 모든 과정을 명령어로 표현하기는 지면이 부족하여 join하는 query language만을 그림으로 표현했다.

▲ Alteryx Join 예제

▲ Oracle Database Join 예제

미국과 일본에서는 데이터 분석가(Data Analyst)라는 새로운 직종이 생겨났다. 데이터에 대한 분석과 빅데이터(Big data)가 화두가 되면서 그 만큼 데이터분석이 중요하다는 의미이다. 그렇다면 한국에서 데이터분석가(Data Analyst)라는 새로운 직종이 생긴다면 과연 어떤 전공자나 어떤 분야의 사람이 데이터 분석가(Data Analyst)가 될 수 있을까? 현재는 대부분의 기관이나 기업체에서 데이터에 관한 관리 및 처리는 IT 담당자가 하고 있다. 하지만 데이터에 대한 진짜 전문가는 그 데이터를 분석하고 다루는 사람이지 데이터를 가공해서 처리해주는 IT 담당자가 아니다. Citizen Analyst라는 단어는 데이터를 바라보는 한국과 미국의 시각차이를 느끼게 한다.

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