폴 그레이엄 어록 #1



대학 시절에 어떤 문제를 풀 때에는 그것을 우선 종이 위에서 완전하게 푼 다음 컴퓨터 앞에 앉아야 한다고 배웠다. 하지만 나는 프로그래밍을 그런 식으로 하지 않았다. 그 당시 나는 분명히 몇 장의 종이 보다는 컴퓨터 앞에 앉아서 프로그래밍 하는 것을 더 즐겼다. 또 전체적인 프로그램을 미리 신중하게 적어서 내가 생각하는 방향이 옳은지 여부를 확인하기 전에 조각난 코드부터 대책 없이 늘어놓은 다음 그것의 모양을 조금씩 잡아 나가는 방법으로 프로그래밍을 했다. 내가 배운 바로는 디버깅이란 틀린 철자나 부주의한 실수를 잡아내는 최후의 과정에 속했다. 그러나 내가 일한 방식대로라면 프로그래밍 자체가 완벽하게 디버깅으로 이루어져있다.
초등학교 시절에 선생님이 가르쳐준 대로 연필을 쥐지 못해서 괴로웠던 것처럼, 나는 오랫동안 이런 프로그래밍 방식에 대해서 남몰래 부끄러워했다. 하지만 내가 그 당시에 화가나 건축가 같은 다른 창조자들이 일하는 방식을 알았더라면, 내가 프로그래밍하는 방식을 지칭하는 특별한 이름이 있다는 사실을 알 수 있었을 것이다. 그 이름은 바로 ‘스케치’다. 적어도 내가 보기에 대학 시절에 배운 프로그래밍 방식은 전부 잘못되었다. 소설가, 화가, 그리고 건축가의 작업이 그런 것처럼, 프로그램이란 전체 모습을 미리 알 수 있는 것이 아니라 작성해 나가면서 이해하게 되는 존재다.

- 폴 그레이엄(Paul Graham), 해커와 화가 -


한달 쯤 전에 여기서 한번 인용한 바 있는 폴 그레이엄의 '해커와 화가'에서 발췌한 구절이다. 사실 이 책은 굳이 소프트웨어 뿐만 아니라 여러가지 잡다한 주제에 대한 그의 생각을 담고 있는데, 나는 이 구절이 여러가지 측면에서 나타나는 그의 철학이자 스타일을 단적으로 보여준다고 생각한다.

나는 이 구절을 처음 읽고, 다시 읽고, 또 읽었다. 가슴이 벅차올라 책을 던지고 마구 박수라도 치고 싶었다. 정확히 내가 안고 살던 고민이었고, 정확히 내가 말하고 싶었던 반항의 한마디였다. 아직 경험과 힘이 모자라 이러한 이단아적인 말을 할 용기가 없던 나를 대신해 세상 사람들에게 그 말을 해준 그에게 정말 감사한다.

그의 말 대로, 우리가 만들고자 하는 소프트웨어의 모양을 미리 완벽하게 종이위에 그려낸 다는 것은 넌센스다. 소프트웨어는 끊임없이 계속 진화한다. 개발자의 머릿속에서 순간 지나가는 한토막의 영감으로, 또는 지나가는 사람의 한마디 코멘트로, 얼마든지 바뀔 수 있는게 소프트웨어이고 그와 같은 변화무쌍함이 소프트웨어의 본질이다. 설계도라는 이름이 붙은 한장의 종이가 소프트웨어의 자유로운 속성을 얼마나 구속하고 있을지 진지하게 생각해봐야 할 것이다.

"웹"이란 뭔가. 태우님의 표현을 빌자면 웹이란 기술, 사회, 경제, 그리고 법이라는 속성을 품고 있다. 나는 이러한 4가지의 속성들이 소프트웨어라는 표현수단으로 실현된 것이 웹이라고 전제하고 싶다. 그렇다면 웹 역시 소프트웨어와 마찬가지로 진화론적 속성을 품고 있다고 할 수 있을 것이다. 그렇다면 Buzz Word다 아니다 논란의 대상이 되고 있는 "Web 2.0"이라는 용어도 상당부분 이해가 되지 않을까 싶다. 오스트랄로피테쿠스, 크로마뇽인, 호모 사피엔스. 난 생물학에는 문외한이므로 적합한 비유인지는 모르겠지만, 암튼 이와 같이 서로 다른 이름이 붙어있으나 그들 사이에는 분명 continuous한 변화가 있었을 것이고 지금도 그 진행중에 있을 것이다. 그럼에도 불구하고 우리는 중간 중간에 서로 다른 이름의 푯말을 꽂는다. 물론 그렇다고 continuous한 속성이 discrete해 지는 것은 아니다.

이와 같은 지금 이 시점에서 "소프트웨어는 진화한다"는 명제의 state-of-the-art는 바로 최근 RIA 등과 함께 각광받는 웹 기반 애플리케이션이다. Release Cycle이라는 말은 더이상 의미가 없으며, 매일 매시간 매분마다 새로운 코드가 추가되고 기존의 코드가 사라진다. "새로운 버전이 나왔으니 업데이트 하시겠습니까?" 따위의 멘트로 고객을 귀찮게 할 필요도 없다. 웹 기반 애플리케이션을 통해 우리는 이제 소프트웨어를 더이상 "제품"으로 보지 않을 것이다. "제품"이란 전통적인 하드웨어 중심의 산업사회에서 나온 산물이다. 이 제품이라는 개념은, 소프트웨어라는 것은 종이 박스에 담겨서 마치 손으로 만질 수 있고 눈으로 볼 수 있는 대상이라는 착각을 심어주는 것 이상으로 수많은 고정관념을 낳았다고 본다. 너무 앞서가는 생각이 아닐지 모르지만, 나는 이러한 생각에 입각해서 소프트웨어에 대한 "재산권"이라는 개념도 다른 각도에서 재조명될 필요가 있다고 본다.

누구는 소프트웨어란 제품이 아니라 서비스라고 한다. 또 다른 누구는 소프트웨어란 공산품이 아니라 창작품, 예술품이라고 한다. 역시 너무 앞서가는 생각이 아닐까 싶지만, 나는 소프트웨어란 생물일지도 모른다고 말해보고 싶다. 또 누가 아나, 위와 같이 "소프트웨어는 끊임없이 진화한다"는 본질이 언젠가 그 자체로 생물의 속성을 만족시키는 날이 올지. 영화 "매트릭스: 레볼루션"에서 아키텍트가 "Random segment of code..." 라고 읊조리던 대사가 귓가에 메아리친다.
Creative Commons License

Posted by saber

2006/01/26 00:28 2006/01/26 00:28
, , , ,
Response
A trackback , 2 Comments
RSS :
http://saberang.net/tc/rss/response/297

Trackback URL : http://saberang.net/tc/trackback/297

Trackbacks List

  1. 컴퓨터로 글쓰기

    Tracked from YY 2006/04/23 23:04 Delete

    나도 컴퓨터가 없으면 글을 못쓰는 사람들 중에 하나이다. 컴퓨터는 스케치를 하거나 마구 수정하는데에 참 좋은 도구이다. 컴퓨터로 글쓰기에 관한 가장 공감이 가고 재미있었던 이야기는...

Comments List

  1. poosuk 2006/01/26 02:41 # M/D Reply Permalink

    폴 그레이엄 멋져~ 스케치란 거였구나. 화가란 제목이 달린 이유. 담에 시간 내서 읽어봐야겠네. 일단 진보주의 서적들 좀 보고. ;;

    1. saber 2006/01/26 13:52 # M/D Permalink

      오호 진보서적 러시인가. Political Compass나 한번 돌려보시게 ㅎㅎ

Leave a comment
[로그인][오픈아이디란?]
« Previous : 1 : ... 124 : 125 : 126 : 127 : 128 : 129 : 130 : 131 : 132 : ... 351 : Next »

블로그 이미지

- saber

Archives

Calendar

«   2010/09   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

Site Stats

Total hits:
448646
Today:
148
Yesterday:
125
Creative Commons License

이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.