오늘은 프란시스 베이컨의 우상론이 갑자기 생각이 나서 개발자와 어떤 관계가 있을까 곰곰히 생각을 해보았습니다. 학교 다닐 때 배우신게 기억나실 것 같네요. 베이컨의 우상론은 4가지 오류에 대하여 이야기하고 있는데 종족의 우상, 동굴의 우상, 시장의 우상과 극장의 우상입니다.
개발자 혹은 IT와 관계된 우상론과 그것을 어떻게 타파할 수 있을지에 대한 궁금증이 슬그머니 나오게 되어 만득이(http://www.mandki.com)로 정리하고 글을 쓰네요.
첫째로 종족의 우상을 살펴볼까요. 우리의 인식 능력이 가진 한계로 인하여 사물을 판단하는 잣대를 동질감을 느끼는 종족에게 한정시켜 버리는 오류를 이야기합니다. 보통 개발자분들이 개발자 특유의 고집과 편견을 가지고 있는 게 많이 보입니다. 그저 개발자 집단은 늦게까지 일하고 청바지에 남방이나 티셔츠를 입는 모습을 상상하는 것 자체부터가 종족 오류가 아닐까 하는 생각이 듭니다. 그렇지 않은 사람이 더 많아진다고 해도 이미 사람들 사이에 그렇게 인식이 되어있기 때문에 선입견을 깨기란 상당히 힘이 들게 되겠지요. 문제는 이런 점을 타파하기가 상당히 어렵다는 것이죠. 스스로 인터넷이라는 거대 공간에 개발자 종족을 만들어 버렸기 때문입니다. 변화가 쉽지 않아보이는 영역 중에 하나입니다.
둘째는 동굴의 우상입니다. 개인의 좁은 경험, 습관, 생활 환경, 지식 등으로 인하여 생기는 인식의 오류 현상입니다. "역시 프레임워크는 스프링밖에 없어", "웹 프레임워크로 왜 Struts를 안쓰는데? 무조건 그게 최고야", "그 기술을 왜 쓰니? 쓸데 없어" 등등의 말이 될 수도 있겠습니다. 단순히 개발자 본인이 알고 있는 지식이나 경험에 의하여 프로젝트에 더욱 적합한 솔루션들이 있음에도 불구하고 본인 시야에 비친 일부를 전체라고 이야기하는 분들도 있을 겁니다. 이 세상은 항상 다양함이 존재하고 있고 스스로 보지 못한 더 넓은 영역이 존재할 수 있습니다. 결국 동굴이라는 곳에 갖혀 바라보는 창(window)의 크기가 동굴의 입구밖에는 안되는 문제가 발생을 합니다. 개발자의 아픔이라고 하면 새로운 프레임워크 지식들이 상당히 쏟아져 나온다는 겁니다. 내가 했던 것만을 할 것인지 아니면 시간을 내어 천천히 그것들을 살펴보고 프로젝트에 맞는 성격은 무엇인지 되돌아볼 수 있는 것은 상당한 차이가 있습니다. 나무를 바라보는 것에서 벗어나 숲을 볼 수 있는 능력을 키워야 하겠습니다.
세째는 시장의 우상입니다. 언어를 통해 의사 소통하는 과정에서 모호한 말이나 개념적인 설명이 틀릴 경우 나타나는 오류입니다. 스타 블로거나 유명 개발자가 이 오류에 빠졌을 경우 일반 개발자들은 이후에 설명하는 극장의 우상으로 변질될 수 있지 않을까 합니다. 개인적인 생각으로 한참 유행을 탈뻔(?)했던 SOA가 그 대표적인 케이스가 아닐까 합니다. 각 벤더의 마케팅 선전 문구의 SOA는 사실 추상적인 개념입니다. 소위 조직적인 체계가 만들어지지 않으면 구현하기도 어려울 뿐더러 프로젝트간 연결관계에서 재사용에 대한 상세 레벨을 어디까지 만들어야 하는지도 모릅니다. 결국 뜬 구름을 잡을 수도 있는 개념인데 벤더들이나 컨설팅 펌에서 마치 SOA를 적용하면 모든 것이 다 되는 것마냥 이야기함으로써 고객이 실제 구현체를 손쉽게 만들 수 있다고 착각속에 빠지게 합니다. 이제 SOA를 외치는 벤더는 국내에서 하나밖에 남지 않았습니다. 이 오류에서 벗어나려면 경험과 실험을 통해 얻은 결과가 무엇인지를 먼저 분석하고 자신의 회사에 맞게 적용하는 수밖에는 없습니다.
네째는 극장의 우상입니다. 정의를 말 그대로 옮기면 전통이나 권위에 의지한 지식이나 학문을 아무런 비판없이 받아들이는 현상입니다. 얘기가 조금 빗나가겠지만 대표적인 케이스가 조중동에 의한 휩쓸리기일 수도 있겠네요. 조작임을 알면서도 실제처럼 믿어버리는 현상이 대표적일 겁니다. 앞서 이야기한 것처럼 "이 프레임워크에서 이 사람이 유명하니까 이 사람이 한 이야기는 무조건 맞을 거야~"라고 생각하는 게 대표적일 겁니다. 문제는 스스로 객관적인 지식을 얻으려 하지 않는 사람들이 이러한 오류에 빠지기 쉽다는 겁니다. 만약 groovy와 ruby를 가지고 고민을 하게 되었을 때 유명한 누군가의 글에 ruby가 최고입니다라는 이야기를 마치 진리인 것처럼 착각하고 믿어버리는 경우는 없어야겠습니다. 이 오류에서 벗어나려면 대상을 보는 자신만의 관점을 가지고 여러 면을 나름 객관적으로 분석할 수 있는 기술이 필요합니다. "왜?"라는 질문을 만들어내고 그것에 대한 해답을 얻지 못하면 스스로 판단의 오류에 빠질 수밖에 없을 겁니다. 의구심을 생활화하여 극장에서 빠져나올 수 있는 방법을 찾아야 하지 않을까요.
되도록 제가 가진 문제를 찾아보려 노력하는데 쉽지 않습니다. 제가 보기엔 이미 4가지 우상을 모두 경험하고 혹은 빠져있지 않나 생각합니다. 어떻게 하면 좋을까요.





