요 데이터마이닝 관련 프로젝트는 많은 소프트웨어 개발자들이 느끼는 개발자 자신의 겸손한 자세를 요구하는것과 더불어 인간 지적판단의 위대함을 다시한번 느끼게 해주는 몇 안되는 프로젝트이다. 많은 소프트웨어의 버그 해결 과정은 깊은 자기 반성의 시간이 된다. 자신에 대한 확신이 강한 사람은 심지어 컴파일러까지도 의심하지만 대부분의 경우 본인에게 문제가 있다. 이런 과정이 반복되고 경험이 쌓이면 개발자 자신이 자신에 대해서 겸손해진다. 난 이래서 경험이 많은 개발자들의 겸손함을 존경한다.
데이터 마이닝 관련 프로젝트에서 리서치를 위해 정말 많은 동기부여를 해서 수많은 코드 라인을 작성했는데, 그 결과가 실망스럽다면, 일단 누구든지 패닉에 빠지게 된다. (아.. 그래서 나는 요런 데이터 처리하는 프로젝트의 언어는 스크립트 언어를 사용하는걸 선호한다. 왜냐면 빨리 결과를 볼 수 있기 때문이다. 그러나 C나 C++로 이런 프로그램의 프로토타입을 짠다면…. ) 이 과정에서 무릎에 손을 엊고 깊은 자기 성찰을 하게 된다. 내가 가지고 있던 데이터에 대한 이상은 현실과 큰 괴리가 있다고 되뇌이면서 말이다. 그러다 이 데이터를 만든 인간이라는 존재에 대해서 다시금 깊은 존경을 하게 된다(하지만 동시에 나라는 인간의 편향된 데이터에 대한 관점에 실망하게 된다). 어떤 패턴으로든 이 인간들이 만든 데이터와 똑같은 행동을 하는 프로그램을 만들고 싶은것 뿐인데, 인간의 어느 한 구석진 특징과 성향조차도 흉내내기가 쉽지 않다는 것을 알게되면서 점점 데이터 그 자체가 알고리즘이 될수 있는 버퍼를 주는게 차라리 낫다는 생각을 하게된다.
데이터들이 자유롭게 알고리즘이라는 뼈마디 사이를 피와 살처럼 채우게끔 하는게 사용자와 비슷한 행동 패턴을 만들어 내는데 더 유용하다는 사실은 자신의 손으로 뭔가를 만들어야 직성이 풀리는 우리 개발자들이 불편해할 충분한 이유를 가지고 있다. 개발자들은 되도록 자신의 알고리즘으로 촘촘히 뼈 마디마디를 만들어 놓기를 원한다. 하지만 이마저도 인간 지적판단의 위대함은 허용하지 않는다.
그래서 개발자들은 오히려 데이터를 이용해 아주 간단한 알고리즘으로 복잡한 뼈마디를 데이터 스스로 구축할 수 있게끔 인프라를 만들어 주는데 집중해야 한다고 생각한다.
1년 전에… 이쪽으로 경험이 있는 개발자가 한 이야기가 생각난다.
“어짜피 알고리즘이 로그 데이터를 먹으면 먹을 수록 더 성능이 좋아지니 조바심 가지지 마세요.”
책에서는 아주 많이 나오는 말이지만 실무에서 이 이야기를 듣고 실제 경험을 해봤다는것은 나로서는 엄청난 경험이였다. 이 경험에서 스스로 진화하는 프로그램을 연상한다는건 당연한일이 아닌가 싶다.
거꾸로 말하면, 데이터의 위대함을 알고있으며 개발에 대한 겸손함을 가지고 있고, 인간 지적판단에 대한 경외감을 가진 개발자들이 똑똑한 지능형 애플리케이션을 만들 가능성이 많다고도 볼 수 있을 것이다.
따라서 지능형 소프트웨어 개발은 일반 소프트웨어 개발보다 더 엄격한 자기 수양의 길일지도 모를일이다.
흉내내기 힘든 인간 지적판단과 지능형 소프트웨어 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.