현재 버전


수정 이력

2021-06-11 10:42:01 에 아래 제목에서 변경 됨 #2

문학과 프로그래밍에 대해서 그냥 개인적인 생각.

2021-06-11 10:42:01 에 아래 내용에서 변경 됨 #1

과거에 저는 문학을 정말 좋아했습니다. 

그래서 열심히 이상문학상이나 동인문학상을 읽기도 했습니다. 

아마도 2000년대 초반일 것입니다. 

이문열을 비롯해서 모든 비평가가 대상받은 작품에 대해서 마지막 부분을 비판하였습니다. 

감옥도 갔다올 만큼 갔다오고... 누가 그리도 무서울까. 

그런데 나는 이 말이 하나도 이해가 되질 않았습니다. 

사실 그때의 저는 이상문학상에서 대상이 제일 재미가 없었습니다. 

저는 대상보다는 가작을 더 재미있게 읽었습니다. 

이 수준차이를 느낀 것은 30대 중반의 어느날 무렵이었습니다. 

그리고 갑자기 문학이 눈앞에 다가왔습니다. 

문학성이라는 것이 무엇인지, 그리고 그것의 기량이 얼마나 깊은 것인지를 알게 되었습니다. 

문학에는 주제의 깊이를 밀도있게 끌고 나가기 위해서 감정의 압력을 일정하게 유지해야하는 

상당히 높은 기량이 요구됩니다. 가작이 재미있었던 것은 그런 감정의 압력변화가 다이너믹하게

종반으로가서 치닫기 때문이었습니다. 그런 자극이 재미를 준 것이었습니다. 


프로그래밍에서도 이와 비슷한 경험을 실은 40대 초반에 하게 되었습니다. 

어떤 외국의 프로그래머가 짜놓은 코드를 보고서 아... 하는 감탄을 하였죠. 

우리는 프로그래밍에서 일관성의 압력을 받게 됩니다. 

이 일관성이 정말로 무시무시한 무기가 되는 것은 코드를 예측할 수가 있다는 것입니다. 

그러나 문제는 프로젝트의 복잡한 구조화에 따른 알고리즘이 이런 일관성을 무너뜨릴 수가 있습니다. 

예를 들면 디자인 패턴 같은 것이죠. 

그러나 그 코드를 보면서 느낀 것은 그런 패턴 조차도 일관성의 압력을 일정하게 유지하면서 

예측 가능성을 보여주었습니다. 여기서 중요한 것은 네이밍과 인터페이스였습니다. 

특히 인터페이스의 추상화는 패턴들의 목적을 너무도 쉽고 명료하게 표현해 주었습니다. 

어떻게 이것이 가능한 일일까를 참 많이 생각하였습니다. 

누군가는 시간이 남아 돌아서 참 좋았겠다라는 말을 하였지만, 저의 능력으로는 아무리 시간이 

남아돌아도 이렇게까지 설계하지는 못했을 것입니다. 

이것을 보고서 다시 MFC의 구조를 보니 이게 또다시 다른 수준으로 느껴졌습니다. 

일관성과 구조의 특정 복잡성을 MFC는 묘하게 일치시키는 개성이 있었습니다. 

RTTI를 #define 문으로 고정시켜서 MFC dll를 동적으로 연결하는 것을 굳이 이렇게까지 해야 하는가

라는 생각도 들었지만, 이게 단순히 RTTI의 문제가 아니라 윈도우 메시지 전달 구조와 맞물리면서 돌아가

는게 정말 기가막혔습니다. 물론 아직도 완전히 이해하는 것은 아니지만요. 

이 방법을 완전히 익히면 웬만한 중급 규모의 프로젝트는 훨씬 수월하겠다는 생각이 들었습니다. 

아무튼... 델파이의 VCL 라이브러리나 MFC 라이브러리나 구조의 일관성은 내가 모르는 수준에서의 

일관성이었던 것입니다. 물론 지금의 VCL소스나 MFC 라이브러리는 초기의 구조에 비해서 많이 훼손되고

지저분해 진 부분들이 있습니다. 

프로젝트의 설계가 얼마나 무서운 것인지, 또 얼마나 중요한 것인지를 이런 라이브러리를 분석할 때마다

소름이 돋을 때가 있습니다. 물론 제 실력이 그런 라이브러리를 훤히 꽤뚫을 정도는 안됩니다. 

그냥 그정도 수준이 얼마나 높은 기량인 것인가 정도를 느끼는 정도입니다. 

저도 사실은 어떤 의미에서는 초보입니다. 

그것에 눈을 뜬 것이 얼마 되지 않았고, 그것에 눈을 뜨자마자 또다른 세계가 나왔기 때문입니다. 

이제 나이 50대에 겨우 여기까지 헉헉대고 왔는데... 나머지는 후배들이 어떻게좀 극복해주었으면 

좋겠습니다. 

 그래서 우리나라에서도 오토캐드나 3Dmax, 혹은 밀라이브러리나 심지어 할콘 라이브러리, 

또는 깃허브와 같은 엄청난 프로그램이 쉽게 쉽게 개발되는 그런 경지에 오르기를 희망하여 오늘도 

아프리카에서 사자를 잡는 꿈을 꾸어 봅니다.