'매력'에 해당되는 글 1건

  1. 2018.02.13 프로그래밍의 즐거움
정보기술2018. 2. 13. 10:42


프로그래밍의 즐거움


 프로그래밍은 왜 재미있는가? 프로그램을 만드는 사람들은 어떤 즐거움을 대가로 기대하고 있는가?


 첫 번째는 무언가를 만드는 데서 오는 순전한 기쁨이다. 아이들이 진흙으로 과자를 만들면서 즐거워하듯이 어른들도 무언가 만드는 것을 즐기며, 그것이 직접 설계한 것이라면 더욱 그렇다. 나는 이런 기쁨이 조물주가 만물을 창조할 때 느꼈을 기쁨과 다르지 않을 거라고 생각한다. 그 모든 나뭇잎, 모든 눈송이가 낱낱이 새롭고 어느 하나라도 같지 않음에서 엿볼 수 있는 그런 기쁨 말이다.


 두 번째는 다른 이들에게 쓸모 있는 사물을 만드는 데서 오는 기쁨일 것이다. 우리는 자신이 만든 것을 다른 사람이 쓰면서 유용하다고 느끼기를 마음 깊은 곳에서 바란다. 이런 면에서 시스템 프로그래밍은 ‘아빠 회사에서’ 쓰라고 아이가 처음으로 만든 찰흙 연필꽂이와 별로 다르지 않다.


 세 번째는 서로 맞물려 돌아가는 부속품으로 이루어진 복잡한 퍼즐 같은 사물을 만들고, 거기 심어 놓은 여러 가지 법칙이 미묘한 순환 속에서 펼쳐지는 것을 바라보는 매혹적인 경험이다. 프로그래밍된 컴퓨터는 핀볼 기계나 주크박스 장치의 모든 매력을 가지면서도 그것을 궁극으로 끌어올린 것이라 할 수 있다.


 네 번째는 지속적인 배움에서 오는 기쁨이다. 이것은 반복되는 작업이 없다는 특성에서 비롯된다. 모든 문제에는 어딘가 새로운 측면이 있고, 문제를 해결하는 사람은 거기서 어쨌거나 무언가를 배우게 된다. 그 무언가는 때로 실용적이고 때로 이론적인 것이며, 가끔은 둘다일 경우도 있다.


 마지막 즐거움은, 너무도 유연하고 다루기 쉬운 표현 수단으로 작업하는 데서 오는 기쁨이다. 프로그래머의 작업은 시인과 마찬가지로 순수한 사고의 산물에 가깝다. 그는 허공 위에다 허공으로 만든 성을 상상의 힘으로 짓는다. 이만큼 유연하며 다듬기 쉽고 장대한 개념적 구조를 실체화하는 데 적합한 재료는 별로 없다(나중에 보겠지만 이런 유연성에도 나름의 문제는 있다).


 하지만 이런 프로그램들은 작동했을 때 그 자체와는 별개로 실재하는 결과물을 만들어낸다는 점에서 시인의 시구와 달리 현실에 닿아 있다. 이 프로그램은 결과를 출력하고 그림을 그리며, 소리를 내고 기계팔을 움직이기도 한다. 미신과 전설 속의 마법이 우리 시대에 이르러 현실이 된 것이다. 키보드에 올바른 주문을 타이핑하면 모니터 화면은 생명을 얻고, 이전에는 존재하지도 않았고 존재할 수도 없었던 것들을 우리에게 보여준다.


 이렇게 우리 마음 깊은 곳 창작에 대한 갈망을 충족시키고 모든 인간이 공통적으로 지닌 감수성을 즐겁게 하기에, 프로그래밍은 재미있는 일이다.


 출처: 맨먼스 미신 : 소프트웨어 공학에 관한 에세이. 프레더릭 브룩스 저. 강증빈 역.

 

Posted by 어쩌다보니 Jay Two

댓글을 달아 주세요