洪民憙 (홍민희) 블로그

가끔 프로그래머가 아닌 사람들이 프로그래밍이 창조적인 작업이라고 언급하는 얘기를 듣는다. 또 어떨 때는 반대로 프로그래밍은 실제로 창조적인 작업이 아니고, 실제로 창조적인 것은 프로그램에 담겨지는 어떤 아이디어를 만들 때 이루어지는 것이라고 주장하는 얘기도 듣는다.

그러고 나면 대체 뭐가 창조적이라는 건지 헷갈려지기 시작한다. 가끔 어떤 음악에 대한 상반된 평가를 들을 때가 있다. 한쪽은 교묘하고 복잡한 연주로부터 그의 음악적 깊이가 느껴진다는 찬사를 하는데, 동시에 다른 한쪽은 기교에만 빠져있을뿐 그의 음악에는 창조성이 없다, 뭐 그런 식의 평가를 하기도 한다.

그래서 요즘에는 그냥 창조적이라는 말을 좋다라는 말과 비슷하게 여기게 되었다. 그냥 내가 보기에 좋아보이면 창조적이라고 좀더 근사하게 말할 수 있는 것 같다.

음, 아니다. 사실 이런 허무한 얘기를 하려던 건 아니다.

창조적이라는 표현의 자의적이라는 주장을 하려는 것은 맞다. 하지만 저런 허무한 얘기를 하려는 것이 아니라, 사람마다 관심을 보이는 면이 다를 뿐이라고 생각한다. 관심이 없는 부분에 대해서는 원래 어떠한 것도 보이지 않는 법이다. 사실 이 말은 조금 동어반복적인 면이 있다. 관심을 기울인다는 것은 자세히 보려는 태도를 뜻한다. 그러므로 관심을 기울이지 않는다는 말은 반대로 자세히 보려고 하지 않는다는 뜻이다. 원래 관심이라는 단어가 그런 뜻의 단어라는 얘기이다. (다른 뜻이 있나?)

프로그래머들은 대체로 코딩이라는 행위가 창조적이라고 생각하는 편이다. 하지만 가끔은 이른바 자칭 아키텍트들은 전체적인 설계가 중요할 뿐, 코딩은 코더나 하는 거라고 생각하는 경우도 있다. 그 사람들은 코딩에 관심이 없는데, 코딩에 관심이 있는 프로그래머들은 그런 사람들의 주장에 불쾌함을 느낄 수도 있다. 그런데 정작 우리들도 모든 코드가 창조적이라고 생각하지는 않는다. 대표적으로, 메타프로그래밍에 의해 생성된 코드들은 대부분의 프로그래머 역시 창조적이라고 여기지 않는다. 창조적인 것은 그런 코드를 생성해내는 메타프로그램 코드이지, 생성된 코드들이 아니다. 왜 그럴까? 메타프로그래밍이라는 것은 관심을 두고 싶지 않는 반복적인 코드 더미들을 직접 다루고 싶지 않기 때문에 하는 행위이기 때문이다. 프로그래머들은 자신이 관심 있는 코드를 생성하는 메타프로그래밍을 하지 않는다.

아마 프로그래밍이 창조적이지 않다고 생각하는 사람들도 마찬가지로 프로그래밍을 직접 다루고 싶지 않기 때문에 그러는 것이라고 생각한다.