Thoughts2012.01.10 15:41
프로그래밍이라는 행위는 여러가지로 글쓰기와 유사합니다. 아무것도 없는 것에서 무언가를 만들어 내기 위해 글자를 쉼없이 타이핑 해 넣어야 한다는 행위적인 유사성 뿐 아니라, 그 결과가 팔려야 하고, 잘 팔리기 위해서는 많은 사람들의 리뷰와 교정을 거쳐야 하고, 최종적으로는 디자인을 덧입히는 패키징 과정을 거쳐야 한다는 점에서도 비슷합니다. 

영작문 기술에 대해 심각하게 고민해 본 사람이라면 한 번쯤은 읽어보았을 책 가운데, The Elements of Style이라는 책이 있습니다. 이 책은 흔한 문법 오류를 바로 잡는 법부터 시작해서, 좋은 글을 쓰기 위해 지켜야 하는 규칙들도 이야기합니다.

이 책의 2장, Elementary Principles of Writing의 첫 절, "Choose a Suitable design and hold to it"을 인용해보겠습니다. (번역은 완전하지 못하며, 군데군데 오류가 있을 수 있습니다.)



A basic structural design underlies every kind of writing. Writers will in part follow this design, in part deviate from it, according to their skills, their needs, and the unexpected events that accompany the act of composition.

모든 종류의 글쓰기는 기본적인 구조 설계를 전제한다. 작가는 부분적으로는 이 설계를 따르기도 하고, 부분적으로는 자신의 기술과 필요, 그리고 작문 도중에 발생하는 예상치 못한 사건들 때문에 그 구조로부터 이탈하기도 한다.

Writing, to be effective, must follow closely the thoughts of the writer, but not necessarily in the order in which those thoughts occur. This calls for a scheme for a procedure. 

효과적으로 글을 쓰려면 작가의 생각에 가깝게 따라가는 것이 좋겠지만, 그렇다고 생각이 떠오르는 순서를 그대로 따라야 한다는 것은 아니다. 그래서 절차적인 방법이 필요하다. 

In some cases, the best design is no design, as with a love letter, which is simply an outpouring, or with a casual essay, which is ramble. But in most cases, planning must be a deliberate prelude to writing. The first principle of composition, therefore, is to foresee or determine the shape of what is to come and pursue that shape.

무설계가 최선의 설계인 경우도 있다. 연애편지처럼 흐르는대로 쏟아내거나, 격식을 차릴 필요 없는 에세이 같은 경우가 그에 해당한다. 하지만 대부분의 경우, 글쓰기 전에는 의식적으로 계획을 먼저 세워야 한다. 그러므로 글쓰기의 첫 번째 원칙은 최종 결과물의 형태를 예측하고 결정한 다음, 그 형태를 추구하는 것이다.

A sonnet is built on a fourteen-line frame, each line containing five feet. Hence, sonneteers know exactly where they are headed, although they may not know how to get there. Most forms of composition are less clearly defined, more flexible, but all have skeletons to which the writer will bring the flesh and the blood. The more clearly the writer perceives the shape, the better are the changes of success.

어떤 구조를 따르고, 최종 결과물의 형태를 예측한 다음 그 형태를 빚어낼 수 있도록 노력해야 한다는 것은, 프로그램의 구조 설계와 그에 필요한 요구사항들을 연상시킵니다. 

자신의 기술과 필요에 따라 처음에 정했던 구조를 이탈하기도 한다는 대목은, 코드를 리팩터링하다보면 초기 구조에서 점차로 이탈하여 새로운 구조가 만들어지기도 하는 것과 비슷합니다. 

보통 글쓰기를 예술적 창조의 영역에 놓습니다. 그렇다면 프로그래밍은 같은 영역에 둘 수 있을까요?

프로그래밍 결과로 만들어지는 코드는 그 자체로 음미할 대상이 아니라는 점에서, 작문과 같은 영역에 놓을 수는 없겠습니다. 우리는 소스 코드를 음미하는 것이 아니라, 결국 최종적으로 만들어진 바이너리를 평가하게 되죠. 

하지만 우리가 글쓰기를 하면서 자기 성찰에 따르는 즐거움을 누리듯, 프로그래밍을 하면서도 같은 기쁨을 느끼곤 한다는 점을 염두에 둔다면, 적어도 프로그래밍을  사적인 예술의 영역에 놓을 수도 있겠습니다. 예술은 기본적으로 즐거움에 관한 것이니까요. 

그러니, 데드라인이 가까와 올 때 까지는 우리 모두, 스스로를 예술가라고 생각하도록 합시다. :-)


저작자 표시 비영리 변경 금지
신고
Posted by 이병준

소중한 의견, 감사합니다. ^^

  1. 데드라인.. 없었으면 좋겠어요 ㅠㅠ

    2012.01.12 00:36 신고 [ ADDR : EDIT/ DEL : REPLY ]
  2. dhyi123

    잘 짜여진 코드를 보면서 아름답다 생각하는 것은 저뿐이 아닐 것 같은데요.
    고객이 정해진 상황이라면 예술작품도 데드라인이 있을 것 같습니다.

    2012.01.12 12:11 신고 [ ADDR : EDIT/ DEL : REPLY ]
  3. 두루

    자신의 미학적 기준으로 창조물을 만든다면 예술행위 맞는데, 아니면 애매~~ㅋㅋ 그래함의 말대로 얼마나 물자체들과 공감하느냐(혹은 할 수 있느냐)가 관건일 텐데,,, 젊었을 때 프로그래밍 좀 배울 걸,,,하는 아쉬움,, 이구~~

    2012.01.16 10:51 신고 [ ADDR : EDIT/ DEL : REPLY ]