□ For the rest of us

Poetic Programmer

팀원들이 나누는 얘기를 듣다가 개발언어도 결국 언어라는 사실을 알았다.

 

화랑이와 재원님은 아직까지 코딩 스타일이 좀 다른데, 디자이너 출신인 화랑이는 정돈과 깔끔함에서 보람을 느낀다. 자간을 맞추고 긴 줄을 내리며 질서를 쌓아가는 과정이 재밌다고 했다.

 

옆에서 듣던 나는 헤밍웨이를 생각했다.
헤밍웨이는 글을 쓸 때 페이지에 출력될 모습을 염두에 두며 언어의 블록들을 일목요연하게 정리했다. 디자인적 관점에서 페이지를 해치는 문장이 있으면 때때로 과감히 쳐내기도 했다.

 

결국 코딩언어도 우리들의 말과 똑같은 언어라는 사실을 눈치챘다.
언어의 작동논리와 알고리즘을 설계하고 가독성을 생각하는 저들은 프로’그래머(grammer)’구나.
동사와 명사로 네이밍을 하는 일은 작가가 문장을 쓰는 일과 다르지 않겠구나.

 

그렇다면 코딩언어도 끝내 언어의 숙명을 감당해야 할 것이다. 언어의 숙명은 간결함이다. 누락하지 않으면서 동시에 낭비하지 않는 것이다. 이것은 당연히 졸라 어려운 일이다. 일반적으로 장편보다 단편을 잘 쓰기가 어렵고, 시를 잘 쓰는 일은 그보다 훨씬 어렵다.

 

간결함의 힘은 난중일기를 토대로 김훈이 쓴 <칼의 노래>의 문장들을 보면 이해가 된다.
이순신에게 깨진 일본군은 앙갚음을 하기 위해 이순신의 고향에 간다. 이순신의 가족들은 무참히 도륙당한다. 이순신이 아끼던 잘생긴 아들 이면도 칼을 맞고 어깻죽지가 갈라져 죽는다.

 

면의 죽음을 알던 날의 이순신을 김훈은 이렇게 썼다.

 


 

“면의 부고를 받던 날, 나는 군무를 폐하고 하루 종일 혼자 앉아 있었다. 환도 두 자루와 면사첩이 걸린 내 숙사 도배지 아래 나는 하루 종일 혼자 앉아 있었다. 바람이 잠들어 바다는 고요했다. 덜 삭은 젖내가 나던 면의 푸른 똥과 면이 돌을 지날 무렵의 아내의 몸 냄새를 생각했다. 쌀냄새가 나고 보리 냄새가 나던 면의 작은 입과 그 알아들을 수 없는 옹아리를 생각했다. 날이 선 연장을 신기해하던 면의 장난을 생각했다. 허벅지와 어깨에 적의 칼을 받고 혼자서 죽어갈 때의 면의 무서움을 생각했고, 산 위에서 불타는 집을 내려다보던 면의 분노를 생각했다. 쓰러져 뒹굴며 통곡하는 늙은 아내를 생각했다. 나를 닮아서, 사물을 아래에서 위로 빨아당기듯이 훑어내는 면의 눈동자를 생각했고, 또 내가 닮은 내 죽은 어머니의 이마와 눈썹과 시선을 생각했다. 젊은 날, 국경에서 돌아와 면을 처음 안았을 때, 그 따스한 젖비린내 속에서 뭉클거리며 솟아오르던 슬픔을 생각했다. (…)”

 

“몸 깊은 곳에서 치솟는 울음을 이를 악물어 참았다. 밀려내려갔던 울음은 다시 잇새로 새어 나오려 했다. 면의 죽음을 알아챈 종사관과 군관들은 내 앞에 얼씬거리지 않았다. 옆방에는 종사관 김수철이 보고 서류를 부시럭거리고 있었고 마루 밖 댓돌 앞에는 창을 쥔 위병이 번을 서고 있었다. 저녁때 나는 숙사를 나와 갯가 염전으로 갔다. 종사관과 당번 군관을 물리치고 나는 혼자서 갔다. 낡은 소금창고들이 노을에 잠겨 있었다. 나는 소금창고 안으로 들어갔다. 가마니 위에 엎드려 나는 겨우 숨죽여 울었다. 적들은 오지 않았다.”

 


 

“나는 하루 종일 혼자 앉아 있었다”는 엄청난 문장이다. 나로 인해 도륙당한 가족의 죽음이라는 비보 앞에서 몰아칠 당혹감, 먹먹함, 분노, 회한, 절규, 현실과 인지의 시차, 속수무책의 무력감 같은 온갖 감정들을 일제히 걷어버리고 “나는 하루 종일 혼자 앉아 있었다”고 이순신은, 그리고 김훈은 썼다. 나는 하루 종일 혼자 앉아 있었다. 다시 봐도 황당할 정도로 엄청난 문장이다.

 

“적들은 오지 않았다”의 경제성도 마찬가지다. 비보 앞에서도 당도한 적들에 맞서지 않을 수 없는 장수의 처참함을 일곱 글자에 담았다.

 

나는 개발을 잘 모르지만 코딩도 언어를 다루는 일이라면 끝은 간결함일 거라고 짐작해본다. 재차 리팩토링해서 낭비를 줄이는 일은 글쓰기의 과정과 동일한 것 같아 보인다.

 

간결함이 끝이기 때문에, 언어의 정수는 시일 것이다.
만약 “나는 혼자 앉아 있었다”와 같은 문장을 개발언어로 쓰는 슈퍼개발자가 있다면, 그런 사람을 ‘Poetic Programmer’라고 부르면 어떨까 생각해본다.

Standard

댓글 남기기