프로그래머 에 해당하는 글1 개
2009/06/15   프로그래머 (52)


프로그래머
프로그래머

나는 프로그래머들을 참 좋아한다. 이것은 동경이면서 존경이다. 내가 이들을 동경하는 이유는 이 사람들이 세계를 창조하는 직업인이기 때문이다. 이들에게 하드웨어는 자연이고, 소프트웨어는 사회다. 이들은 그 사회의 건설인이면서, 입안자다. 또 내가 이들은 존경하는 이유는 이들이 이룩한 성취 때문이다. 이들이 건설한 사회는 처음엔 현실을 모방했지만, 이제는 미수에 그친 죽은 사회학자들의 '유지'를 실현하고 있다.

이를테면 오픈소스는 사회주의와 닮아있다. 사회주의가 자본의 공공성을 주장하는 것처럼 오픈소스도 지적자산의 공공성을 주장한다. 각자가 도출된 과정도 닮아있는 것을 보면, 둘의 지향점이 비슷한 것은 우연이 아니다. 사회주의는 자본주의에 대한 반동으로 출현했다. 마찬가지로, 오픈소스도 자폐적인 상업주의에 대한 반발에서 시작했다. 이제 오픈소스는 거역하기 어려운 시대의 요구로 받아들여지는 분위기다. 그 것은 소수의 공헌자에 의해 시작했지만, 그 과실은 모두가 공유하고 있다. 이것은 확실히 현실사회주의의 몰락과는 구분되는 것이다.

개발자는 현실에 대한 충실한 모방자이기도 하다. 인간에게 가장 큰 사회는 국가다. 일반적으로 국가에서 가장 중요한 요소는 입법, 행정, 사법이다. 이것은 프로그래머의 사회에도 적용할 수 있다. 프로그래머에게 입법은 코딩이고, 행정은 로직이며, 사법은 디버깅이다. 다시 말해 이들은 코딩으로 사회를 만들고, 로직으로 운영하며, 디버깅으로 단죄한다.

또, 이들은 민주주의를 모방해, 자기들만의 사회를 고안하기도 했다. 객체지향이라고 불리는 이 사조는 중앙집권적인 절차지향에서 벗어나서, 단위 로직인 객체가 스스로의 주인이 되는 사회를 말한다. 개별적인 객체는 각자의 소명을 지니고 있으며, 주어진 소명을 충실히 이행함으로써 전체에 공헌한다. 이것의 기저에는 개인주의가 깔려있는데, 객체는 각자의 로직에 충실할 뿐, 다른 객체의 로직에 관여하지 않는다. 이러한 개인주의를 프로그래머들은 인캡슐레이션(encapsulation)이라고 부르고, 객체가 다른 객체에게 과도하게 개입하는 것을 커플링(coupling)이라며 강력하게 반발한다. 인간 세계에서는 전체주의라고 부르는 이 억압은 다양성을 말살하고, 변화를 가로막는 질병이다. 고압적인 절차지향에 대한 반동으로 나타난 객체지향은 처음에는 프로그래밍 스타일로 확산되다가, 객체지향 언어인 C++과 자바가 등장하면서 형식적인 완결성을 지닌 체제로 완성되었다. 물론, 현실세계에서 실질적 민주주의가 아직 요원한 것처럼, 소프트웨어의 세계에서도 실질적 객체지향은 갈 길이 바쁘다.

프로그래머들은 역사에 대한 목격자이기도 하다. 이들은 로그를 금과옥조로 여긴다. 로그란 시스템의 위협을 단죄하는 단서이면서, 과거의 실수와 화해하기 위한 열쇠다. 이들은 자신이 작성한 코드에 주석을 달아서 또 다른 시간에 살고 있는 또 다른 개발자를 배려하고, 사용자들의 행동을 엑세스 로그에 기록한다. 역사란 과거를 통해 현재를 이해하고, 미래를 예측하기 위한 활동이다. 하지만, 개발자들은 이 전통적인 역사의 범주를 벗어난다. 이들의 역사는 단순히 '성찰'하는데 그치지 않고 '복원'한다. '버전관리'라는 것이 있다. 버전이란 프로그램에서 변경점들의 의미있는 그룹을 말하는데, 이것을 로그로 저장하는 것이 버전관리다. 이 로그는 문제의 원인을 규명하고, 관련자를 색출하며, 과거로 되돌릴 수 있게한다. 마치 스카이넷이 존코너를 없애기 위해서 과거로  터미네이터를 파견하는 것과 비슷하다. 버전관리는 타임머신이고, 존코너는 색출해야 할 버그인 샘이다.  

기실 인간사회란 자연을 하드웨어로 하는, 소프트웨어다. 그런 점에서 소프트웨어는 사회를 닮아있다. 그래서 잘 만들어진 소프트웨어는 대체로 사회를 충실하게 모방한 것이고, 소프트웨어를 들여다보면 인간사회를 더 잘 이해할 수 있다. 그래서 그런지 내가 만나본 프로그래머 중에는 사회에 대한 깊은 통찰력을 가진 사람이 많았다. 그것은 이들도 사회를 만드는 사람이기 때문일 것이다. 동시에 개발자 중에는 사회랑은 담쌓고 사는 무심한 사람들도 있는데, 아마 이들이 만들고 있는 사회는 따로 있기 때문일 것이다. 이들은 자기들이 만들고 있는 사회를 건사하는 것만으로도 벅차다. 멋쟁이들. ㅋ

2009/06/15 00:33

태그 : , , , , , , , ,
RSS | 한RSS | 구글리더
트랙백 :: http://egoing.net/trackback/1196
Tracked from hsketch's me2DAY 2009/06/16 09:15 x
제목 : 큐브씨의 느낌
프로그래밍의 미학, 내가 개발자의 혼을 버릴 수 없는 이유..
Tracked from Inureyes의 Mind Forest: Beneath imaginations 2009/06/18 15:06 x
제목 : 생명
언젠가부터 컴퓨터를 만지게 되었는지 기억이 잘 나지 않는다. 벼랑 끝에 있는 기억을 끌어내보면, 컴퓨터에 반미쳐 있던 친척 형의 집에서 애플머신으로 틀어주는 게임을 하던 것과, 어머니 친구분의 집에서 당시에는 개념도 없었던 프롬프트를 보면서 키보드로 abcd를 치면서 똑같이 나오는 것에 신기해하던 것 정도이다. 초등학교에서 보낸 다섯번째 해에, 친구의 집에 xt라는 것이 생겼다. 나와 친구들의 눈에는 그저 "마루에서 텔레비전을 연결시켜서 할 필요가...
Tracked from 세상을 보는 또 다른 시선 2009/08/08 17:13 x
제목 : 프로그래머 그 이후의 삶 - 자화상
저에게 아마 이 세상에서 제일 재미있는 직업이 무엇이냐고 묻는다면 아마도 개발자라고 할 것 같습니다. 두 번째로 재미있는 직업이 무엇이냐고 하면 시스템 엔지니어라고 할 것 같고, 세 번째 마지막으로 재미있는 직업이 무엇이냐고 하면 컨설팅이라고 말하게 될 것 같습니다. (그리 특별한 이유가 있는 것이 아니고 앞서 말한 순서대로 제 경력이 만들어졌기 때문입니다. ^^) 제가 컴퓨터 언어를 배우게 된 것은 아마 꽤 오래 전 COBOL이 최초였던 것 같습니..
A2 2009/06/15 02:30 L R X
좋은 글 잘 읽었습니다. ^^
egoing 2009/06/15 14:34 L X
감사합니다. ^^
필사자 2009/06/15 03:44 L R X
저도 이러한 이유로 프로그래머가 되고 싶다는 생각을 부쩍 가지고 있는데, 문외한이라서요...ㅋㅋ 좋은 글 잘보고 갑니다... 한 2년만에 우연하게... 여기저기 링크타고 들어왔습니다. ^^
egoing 2009/06/15 14:35 L X
반갑습니다. ^^ 프로그래밍 해보세요. 재미납니다. 요즘 같은 세상에 프로그래밍을 할 줄 아는 것은 큰 자산이 되지요.
mepay 2009/06/15 03:47 L R X
트위터가 활성화 됨으로써..
이고잉님이 긴 글을 쓰기 시작하셨군요.
바람직한 현상입니다. ^^
egoing 2009/06/15 14:35 L X
도아님은 글이 길다고 핀잔을 주시던데 ㅋ
아크몬드 2009/06/15 08:21 L R X
잘 보고 갑니다.
egoing 2009/06/15 14:36 L X
아크몬드님 감사합니다. 별거 없는데 말이죠.
Euler 2009/06/15 08:31 L R X
퍼갈게요^^ 공대생 공감
egoing 2009/06/15 14:36 L X
감사합니다. 공대생이 공감해주시니 영광이내요.
금땡 2009/06/15 08:40 L R X
잘 읽었습니다.
egoing 2009/06/15 14:37 L X
감사해요.
mooo 2009/06/15 09:36 L R X
몇몇 문장들은 트위터에서 올리셨던 글이네요. :-)
글 조각들이 하나의 멋진 글로 탄생하였군요.
잘 읽었습니다. 고맙습니다!
egoing 2009/06/15 14:38 L X
사실 글을 먼저 쓰고, 그걸 조각조각 트위터에 올렸었어요. 트위터를 하니까 긴글 쓰기가 점점 어려워집니다. 저도 고맙습니다!
ghost 2009/06/15 10:33 L R X
입법은 코딩이 아니라 설계입니다 ~~~!
egoing 2009/06/15 14:39 L X
나는 코딩에 설계까지 포함했던거지 설계를 배제한 건 아냐. 설계나 코딩이나 둘다 중요하지.
엔젤메이커 2009/06/15 10:36 L R X
글 잘보고 100배 공감하고 갑니다.
오늘 한주를 시작하는 월요일인데 많이 덥네요.
활기차고 힘찬 한주 스타트 하시기 바랍니다.
egoing 2009/06/15 14:39 L X
엔젤메이커님도 힘찬 한주 시작하세요. 공감해주셔서 감사하구요.
레인리스 2009/06/15 10:42 L R X
훌륭합니다. ^^
너무 잘 읽었습니다.
egoing 2009/06/15 14:39 L X
감사합니다. ^^
더링 2009/06/16 12:25 L R X
이고잉님은 로맨틱 프로그래머이십니다.ㅎㅎ
egoing 2009/06/16 15:29 L X
ㅎㅎ 설마요.
keenchin 2009/06/16 12:36 L R X
이렇게 멋진 사회학자들을 지금 우리나라에서는 노예취급하고 있으니 답답할 따름입니다. 하긴 사회학자나 개발자나 우리나라에서 대우 못 받는것은 똑같은 현실이기는 하네요.
글 쓰신 분이 뉘신지 모르나 정말 멋지게 표현을 하셨네요. 단 다른 나라 이야기처럼 들리는 것은 제가 이쪽에 종사하기 때문인지 모르겠습니다.
egoing 2009/06/17 00:49 L X
'하긴 사회학자나 개발자나 우리나라에서 대우 못 받는것은 똑같은 현실이기는 하네요.' 씁쓸하내요. 하신 말씀에 깊이 공감합니다.
맥퓨처 2009/06/16 12:52 L R X
Hello, World! 가 이 맥락의 연장선일까요? :)
egoing 2009/06/17 01:16 L X
아주 멋진 발견입니다. 거기까지는 생각 못 했는데 말이죠. ^^
Magicboy 2009/06/16 14:32 L R X
제..프로그램은. . .망해가는. . . 나라군요 ㅜㅜ..
egoing 2009/06/17 01:16 L X
에이 설마요. ^^
erin 2009/06/16 15:35 L R X
괜히 기분 좋아집니다....
egoing 2009/06/17 01:27 L X
기분이 좋아지신다니 제가 더 기분이 좋습니다. :)
이방인 2009/06/16 17:51 L R X
keenchin님 말씀대로 우리나라에서 프로그래머는 이방인이자 노예가 아닌가라는 생각이 들어 서글픈 마음을 뒤로 하고, 앞으로 글쓴이의 느낌처럼 이런 대접을 받는 사회가 이뤄지길 소망해봅니다. 참 좋은 글 잘 읽고 갑니다.
egoing 2009/06/17 01:27 L X
저도 그런 사회를 소망해봅니다. 참 좋은 댓글 감사합니다.
a3d4c 2009/06/16 20:56 L R X
글 멋집니다. 파스칼이나 페이직 중에 선택해서 해볼까 생각만 하고 있네요. 배워두면 재미있을것 같은데.. 좋은 글 잘 읽고갑니다.
egoing 2009/06/17 01:28 L X
감사합니다. ^^
kang 2009/06/17 17:48 L R X
코딩 : 입법
로직 : 행정
디버깅 : 사법
무슨 기준인가요?
코딩한다고 하면, 프로그램의 살을 잡아가는 과정이고
로직을 세운다고 하면, 프로그램의 뼈대를 잡아가는거고
디버깅 한다고 하면, 오류원인을 찾아서 바로 잡고,원래 나아가고자 하는 방향으로 가는건데.
특히 디버깅이 사법부와 비슷하다라는것은 정말 동의할수없네요.

도대체 왜 그런 기준인가요?
왜 비슷한건가요?

GNU가 공동의 발전을 꾀한다는 점도 있긴 하지만,
그것이 소프트웨어의 발전을 빠르게 하는
공동지성의 목적이 더 강한걸로 알고 있는데,
왜 사회주의라고 하시는지?

다른것은 언급하지 않겠습니당...
egoing 2009/06/17 23:38 L X
비슷하지 않게 느끼실 수도 있지요. 제 비유가 부족했을 수도 있구요. 부적절했을 수도 있습니다. 또 동의하실 수 없다고 문제가 될만한 사항도 아닌 것 같습니다. 비유는 비유일 뿐이니까요. 공감하면 공감하는데로, 그럴 수 없으면 아닌데로. ^^ 그런 점에서 솔직한 견해 감사하게 생각합니다. 무엇보다 말씀하신 부분도 맞습니다. :)
lunamoth 2009/06/18 20:45 L R X
아 글 너무 좋습니다 :)
egoing 2009/06/19 11:09 L X
아 댓글 너무 좋습니다 :) ㅋ
Mikolev 2009/06/18 23:21 L R X
음, 그래서 그들이 돈도 없고 삶도 없다 불평하면서도 프로그래머가 되기로 한 것이로군요.
egoing 2009/06/19 11:11 L X
예 그 안에 사회가 있거든요. 레거시라는 기득권과 투쟁하고, 버그라는 위협을 단죄하면서 어렵게 어렵게 사회를 만드는 것이죠.
시리니 2009/07/10 16:16 L R X
제 가슴이 다 찡~합니다. ㅠ.ㅠ;;
코드는 이성적인 0 과 1 로 변화되지만
그 속엔 프로그래머들의 따뜻한 감성이 숨쉬고 있다는 걸 꼭 사용자분들이 알아주시면 좋겠습니다.
그 것이 Windows 던, nateon 이던, twitter.com 을 보여주는 웹 브라우저던 간에... :)
egoing 2009/07/12 17:26 L X
시리니님 말씀에 제 코도 시립니다. 깊이 동의합니다.
shed 2009/08/07 11:26 L R X
프로그래밍의 사회적 역할과 의미에 대해 깊은 통찰을 보여주는 글입니다. 대단하십니다!
egoing 2009/08/09 23:01 L X
프로그래머인 shed님이 더 대단하십니다! 우린 대단한 사람들입니다. :)
사진우주 2009/08/21 18:38 L R X
좋은 글 감사합니다~!! 잘보고 갑니다^^..ㅋㅋ
egoing 2009/08/22 00:48 L X
저도 감사합니다!
꽃군 2009/10/09 08:57 L R X
이야~ 멋진 표현들이 너무 많네요.
좋은 글 감사드립니다.
egoing 2009/10/09 23:13 L X
저도 읽어주셔서 감사해요 :)
멍멍이 2009/11/08 16:40 L R X
프로그래밍에 대한 생각이 남다르시네요 ^^ 오랜만에 좋은 글을 읽었습니다. 감사합니다..
egoing 2009/11/10 06:33 L X
감사합니다 :)
고어핀드 2009/11/24 11:18 L R X
if( true == pProgrammer->isCool() )
{
pGorekun->addComment(pEgoing->blog())
}

ㅎㅎㅎㅎ :)
살사킴 2010/01/20 13:45 L R X
감사합니다. 사랑합니다. ㅜ.ㅡ

아이디 :
비밀번호 :
홈페이지 :
  비밀글로 등록
내용 :
 


[PREV] [1] [NEXT]
RSS | 방명록 | 트위터