소프트웨어의 구성 요소 중에 하나인 데이터와 정보의 차이를 이해해 보자. 프로그램의 가장 기본적인 기능은 데이터를 수집하여 저장하고, 저장된 데이터를 분석하여 가공한 후에 제공하는 것이다. 이 가공된 데이터를 정보라고 부른다. 하지만 소프트웨어 전문가들도 데이터와 정보를 확실하게 구분하여 사용하지 않는 상황이다. 데이터는 다양한 곳으로부터 수집되어 저장 장치에 모여서 보관된다. 데이터는 시간이 지남에 따라 방대한 규모의 크기로 차곡차곡 쌓이게 된다. 그와 동시에 분석되어 가공된 정보도 쌓여지게 된다.

요즘은 IoT(Internet of Things) 플랫폼에 의한 서비스가 시작됨에 따라 IoT 단말기에 붙어 있는 각종 센서로부터 몇 초에 한 번씩 데이터가 발생되면서 수억 개, 수십억 개, 수천억 개의 데이터가 쌓여진다. 집에서는 홈 IoT, 산업계에서는 산업 IoT를 서비스한다. IoT 센서에서 발생하는 데이터는 거의 천문학적인 양으로 만들어져서 저장된다. 고속도로의 교통 상황 정보를 수집하는 경우에도 고속도로에 설치된 차량감지 센서로부터 차량의 이동에 대한 정보가 자동으로 수집된다. 또 교통 감시 카메라로부터 들어온 영상 데이터를 통하여 데이터가 수집된다. 차량의 속도, 차량의 종류, 차량의 번호, 차량이 지나간 시간 등의 데이터로 변환되어 저장된다. 지금 이 순간에도 데이터는 계속하여 엄청나게 쌓이고 있다. 시간이 지남에 따라 쌓여진 데이터는 기존의 데이터 저장 방법으로는 감당할 수 없을 정도의 크기가 된다.

이 커다란 데이터를 제대로 관리하기 위해서 새로운 소프트웨어 관리 개념을 만들었는데 이것이 빅데이터이다. 이제 엄청나게 쌓여지는 데이터들은 빅데이터 플랫폼에 의해서 체계적으로 관리되고 인공 지능과 같은 프로그램으로 잘 처리될 수 있도록 정리된다. 쌓여진 빅데이터는 프로그램을 통하여 우리에게 필요한 정보를 만들기 위해 분석되는 것이다.

프로그램은 데이터가 있어야 진정한 개발 의미를 알 수 있게 된다. 프로그램은 있는데 데이터가 없어서 프로그램을 수행시켜도 아무 결과를 얻을 수 없다면 그 프로그램은 있으나마나 한 존재가 될 것이다. 마찬가지로 데이터는 있으나 이 데이터를 분석할 프로그램이 없다면 데이터는 아무 것도 아닌 것이다. 가비지인 가비지아웃(Garbage in garbage out)이라는 말이 있다. 이 말은 말 그대로 쓰레기를 넣으면 쓰레기가 나온다는 말이다. 소프트웨어 전문가들도 이 말을 자주 인용한다. 데이터가 정리가 안되어 있거나 데이터의 신뢰성이 없다면 아무리 좋은 프로그램을 만들었어도 쓰레기와 같은 결과를 만들어 내기 때문이다.

소프트웨어 개발자들은 프로그램을 코딩 할 때 프로그램의 알고리즘 오류에 대해서 상당히 민감하게 반응한다. 1+1를 했을 때 결과가 3이라고 나오면 이 프로그램의 알고리즘에는 오류가 있는 것이다. 이런 오류들을 일반적으로 벌레라는 뜻의 버그라고 말한다. 프로그램에 버그가 있다는 말은 프로그램이 제대로 된 동작을 안 한다는 얘기이다. 마찬가지로 가비지인 가비지아웃을 생각한다면 데이터에 대해서도 동일한 생각을 가져야 한다. 데이터의 신뢰성이 없다면 그것은 프로그램의 버그와 같다고 할 수 있다.

일부의 프로그램 개발자들은 상대적으로 데이터가 얼마나 믿을 만한지에 대한 신뢰성, 데이터의 정확성 그리고 다른 사람에 의해서 임의로 조작되지 않았다는 것을 보여주는 무결성에 대해서는 조금은 무딘 생각을 갖고 있다. 프로그램의 오류만큼이나 데이터의 신뢰성, 정확성, 무결성도 동일하게 중요한 관심 사항이 되어야 한다.

채성수 chaesungsoo@iabacus.co.kr 소프트웨어개발 전문기업 ㈜애버커스 사업총괄부사장. 엘지전자와 엘지씨엔에스(LG CNS)에서 다년간 컴퓨터 관련 사업을 추진한 전문가이다. 국가 공인 최고 자격인 정보관리기술사로 대학에서 컴퓨터 관련 연구를 하였다. ‘속도경쟁사회’, ‘코딩을위한컴퓨팅사고력’, ‘소프트웨어 인사이더’ 등 6권의 책을 저술하였으며 넥스트데일리의 컬럼니스트로 활동하고 있다.

(*이 칼럼은 Nextdaily의 편집방향과 다를 수 있습니다.)

관련기사

저작권자 © 넥스트데일리 무단전재 및 재배포 금지