라이브러리란 것은, 도서관입니다. 네. 도서관이란 다름이 아니라 다른 사람이 써놓은 책을 가서 볼 수 있는 곳이죠. 아시겠지만, 도서관에는 지금까지 출간됐던 적이 있는 책들은 거의 모두 구비하고 있습니다. 제가 다니던 학교 도서관에는 제가 좋아하는 SF는 국내 출판됐던 책은 거의 다 장서목록에 있더군요. 그러한 고로, SF 독자인 저는 SF를 보고 싶으면 도서관에 가서 적당히 보고 싶은 책을 골라다가 보면 됩니다. 이미 출판된 SF로도 제 취향을 만족시켜줄만한 책은 (국내 사정은 좀 열악하지만) 찾아보면 있거든요. 나는 SF를 좋아하니까 내가 좋아하는 SF 소설은 모두 내 손으로 써야 되겠다고 생각하는 사람이 있다면, 글쓰기의 천재일 수도 있지만, 천재는 매우 희귀하므로, 바보일 가능성이 매우 높겠죠. 더군다나 쓰고자 하는 소설의 내용이 장르의 바이블이라고 일컬어지는 작품과 매우 유사한 소재와 주제를 갖고 있다면, 차라리 안쓰느니만 못한 결과가 나올 겁니다.

코드 라이브러리, 즉 흔히들 .lib, .a 파일로 이름붙여지는 컴파일된 코드의 집합체들은 바로 위와 똑같은 개념에서 출발했습니다. 원하는 내용이 있다면, 라이브러리를 뒤져서 적절한 부분을 떼어다가 쓰면 된다는 개념입니다. 프로그래밍의 역사가 비록 50여년밖에 안되지만, 프로그래머들은 인간중에서도 무척 부지런한 쪽에 속하는지 수백종류의 언어로 만들어진 수만가지 라이브러리가 존재합니다. 이 중에서 나의 필요에 적당히 맞는 코드가 한 두개쯤 있으리라는고 기대하는 편이 합리적이죠. 만약 자기가 쓸 코드는 모두 자기 손으로 직접 만들어야 한다고 말하는 사람이 있다면, 그 사람은 다른 사람이 해놓은 일을 자기 시간을 들여서 다시 할 생각인 것이죠.

소설에 습작이 있고, 수학엔 연습문제가 있듯이, 프로그래밍에 있어서도 남들이 다들 한번씩 풀어본 문제를 자기 손으로 한번 풀어서 구현해 보는 것은 매우 중요한 학습방법입니다. 문제는 이것이 학습방법이라는 거죠. 직업 소설가 중에 습작 팔아서 먹고 사는 사람이 있을까요? 있다면 아마 진짜 천재 작가일 겁니다. 직업 수학자들 중에 교재의 연습문제를 풀어서 연구비 받는 사람이 있을까요? 그런 사람이 있다면, 아마 수학 교사이거나 그 비슷한 직업이겠죠. 그런 사람을 수학자라고 하지는 않습니다. 프로그래머들도 남들이 다들 풀어본 문제를 다시 풀어보면서 월급을 받겠다고 한다면, 고용주 입장에서는 매우 달갑지 않은 직원이 될겁니다.

더군다나 '표준라이브러리'라 일컬어지는 것과 동일한 기능을 가진 라이브러리 조차도 자기 손으로 직접 만들겠다는 사람이 있으면, 엄청난 시간낭비일 뿐 아니라 언어를 쓰는 이유조차도 부정하는 셈이죠. 사람의 말로 치자면, 한 언어의 표준 라이브러리는 기본 어휘와 같아서, 모든 사람이 공통으로 알고 있고, 쓸수 있을 것이라고 가정하고 언어의 일부분으로 만드는 구성요소입니다. 결코 언어가 만들어진 다음에 덧붙여진 기능이 아니란 거죠. 애초에 언어의 일부로 설계되고 제작된 것이 표준라이브러리입니다. 표준라이브러리가 괜히 '표준'인 것이 아닙니다.

물론 표준 라이브러리는 만능이 아닙니다. 표준라이브러리를 어휘로 비유한다면, 순 우리말 만으로 논문을 쓰려고 할 때 봉착하게 될 문제점을 생각해 보면 비슷할 겁니다. 특정한 요구사항이 있다면 표준라이브러리만으로는 결코 해결할 수 없을 수도 있습니다. 요구사항이 너무나 특이해서 표준라이브러리뿐 아니라 기존의 어떤 라이브러리로도 꿰어맞출 수 없을 때가 있습니다. 물론 이런 경우가 생긴다면 당연히 해당 기능은 직접 구현해야 합니다. 이럴 경우에 프로그래머의 진짜 능력이 드러나죠. 프로그래밍은 문제 해결과정이며, 다른 사람이 해결해 놓은 문제의 답안을 가져다 쓰는 것과 다른 사람이 해결해 본 적이 없는 문제를 푸는 일은 매우 다른 능력을 요구합니다.

혼자서 공부할 때는 남들이 다 해본 것이라도 직접 구현하는 것은 매우 좋은 공부방법입니다. 공부할 때는 그렇게 밑바닥부터 기초를 다지는 것이 매우 중요하죠. SF에서 '인조인간의 인간성 고찰'이라는 주제로 나온 소설이 만편은 되겠지만, 자기 혼자 습작으로 이런 주제를 다뤄 보는 것은 권장할만 합니다. 'n이 3이상의 양의 정수일 때, xⁿ + yⁿ = zⁿ을 만족하는 0이 아닌 정수 x,y,z는 존재하지 않는다'는 것은 이미 증명되었지만, 연습문제로(?) 증명해 보는 것은 매우 좋은 수학적 훈련이 됩니다. 마찬가지로, '자기 자신에게 드리워지는 경계가 부드러운  그림자 구현' 같은 문제도 이미 다른 사람이 구현해 놓았지만, 공부할 때는 혼자서 구현해 봐야 합니다. '임의의 위치에서의 삭제/삽입에 상수시간이 걸리는 자료구조 구현'이라는 문제도 프로그래밍을 하는 모든 사람들이 한번씩 해 보았고, 심지어는 표준라이브러리에도 있지만, 공부할 때는 항상, 반드시, 누구나 해보아야 하는 문제인 것이죠.
이런 과정, 즉 남들이 해본 것을 자기 손으로 해보는 학습과정을 통해서 결국에는 자기 손으로 남들이 안해본 것을 할 수 있는 능력을 손에 넣는 것입니다.

아마도, 어떤 소설가가 책을 쓴다면, 누군가가 쓴 적이 없는 내용을 쓰는 것일 테고, 당연히 도서관에도 찾아볼 수 없는 내용일 겁니다. 마찬가지죠. 누군가가 직업적으로 코드를 짤때는 어떤 고유한 문제를 풀기 위해서 짜는 것일 겁니다. 대부분의 사람들이 부딪치는 평균적인 문제에 대한 적절한 해법은 거의 모두 누군가가 풀어 놨습니다. 이런 문제에 대한 해법을 제공하는 것이 라이브러리의 존재 이유입니다. 여러분의 귀중한 시간과 능력은 다른 사람들이 풀어본 적이 없는 문제를 해결하는 데에 사용하시기 바랍니다.
이왕이면 인류 발전을 위해 풀어본 결과를 다른 사람들이 볼 수 있게 해주면 좋겠지요 :)

일본에서 폰트로 그림을 그리는 UCC가 있어서 소개해봅니다.

http://fontpark.morisawa.co.jp/

뭐랄까. 벡터그래픽은 이렇게 써서 놀아야지. 라고 보여주는 이 강렬한 느낌이란 참으로 대단하군요.

들어가서 보시면 여러 사람드이 폰트로 만든 그림을 만드는 과정과 함께 지켜볼수 있습니다.

사용자 삽입 이미지

저는 이 남자 그림이 놀랍군요. 이게 정말 폰트 일부분으로만 만든 그림이다 라고 하며 믿으시겠습니까. :)

제작도 쉬운편입니다. 버튼을 하나밖에 쓰지 못하는 플래시라서 인터페이스 자체에 익숙해지는 데는 시간이 걸리지만.

사용자 삽입 이미지

폰트를 선택해서 집어넣고, 휠로 크기 조정. 더블클릭을 하면 복사되고 끝을 잡고 회전이 되고, 집어서 밖으로 날리면 사라지죠.

사용자 삽입 이미지

갤러리에는 여러사람들이 다양하게 그린 그림들이 전시되어있습니다. 폰트로만 만든 그림들도 꼭 감상해보세요.

쉽게 참여를 이끌어내면서도 보기에도 멋진 놀이방법이라는 점에서 저는 이 서비스가 굉장히 감동스럽습니다.
나온지는 조금 됐지만 사진집 이야기입니다.

Jason Rowe 와, 스타워즈 갤럭시의 그의

출처 : http://media.newscientist.com/data/images/ns/av/techblog/alterego_200705/

샘플사진입니다. 저 사이트로 들어가보시면 저자가 이 책에서 인상깊은 사진들을 몇장 모아 나레이션과 함께 보여줍니다.

어떤 책인지 감이 오시나요.

http://www.newscientist.com/blog/technology/2007/05/avatar-other-you.html

사가 Robbie Cooper는 우연히 외국출장을 나가있던 한 아이의 아버지가, 그의 아이와 인터넷으로 만나 에버퀘스트를 플레이하는 것을 보고는 이 책에 대해 영감을 얻었다고 합니다. 그리고 몇년동안 세계를 여행하면서 온라인게임을 하는 사람과 그들의 아바타 사진을 찍은거지요. 그리고 그들과의 인터뷰 약간과 함께요.

인터넷에서 저 사진을 보고 저도 인상깊어서 결국 책을 구했습니다. 국내에 들어온건 별로 없고 교보문고를 통해 해외주문을 해서 구입했습니다.

위의 저 사진은 Jason Rowe라는 75년생의 미국 텍사스에 사는 사람입니다. 하는 게임은 스타워즈 갤럭시구요. 인터뷰의 마지막의 We were all just gamers. 라는 말이 인상깊네요.

저분은 사진집안에서도 좀 특수한 경우고 보통은 일반인의 사진과 그들의 아바타 사진을 다루고 있습니다. 미국사람들도 많지만 한국사람도 꽤 많습니다. 하리수 사진도 있더군요 :)

 

Alter Ego 표지 A

책의 표지입니다 상상한거랑은 달리 책이 위아래로 좀 길더군요. 표지를 장식한 저 두사람은 한국인. 그리고 와우를 하는 커플입니다. 사진에도 각도탓에 살짝 나왔지만 이 표지는 홀로그램으로 되어있어서,

 

Alter Ego 표지 B

보는 방향을 바꾸면 샤샥 하고 바뀝니다. 언데드 유저죠 :) 정말 괜찮은 아이디어인 것 같아요.


어 떤 사람이 어떤 게임의 아바타를 사용하고 있는지를 보는건 정말 재미난 일 같습니다. 은근 우리나라는 이쁜 캐릭 위주로 흐르지만, 외국쪽은 정말 자신과 아바타를 일치시키는 경우도 많더군요. 어떤 사진은 이게 아바타를 자기랑 닮게 만드는건지 자기가 아바타를 코스프레하는건지 모르는 사진도 있었습니다.

리니지 혈의 단체
 

사진중에는 리니지의 혈도 있었고.

 

와우 길드의

와우의 길드도 있었습니다.

 

중학생 소녀들과, 그녀들의 게임 아바타

게임을 즐기는 중학생아이들도 있었구요.

세컨드라이프를 즐기는 할머니 할아버지들도, 시티오브히어로를 즐기는 중국인도. 주부도, 정육점주인도. 트럭운전사도 있었습니다.

게임안과 게임밖의 세상을 볼수 있던 재미난 기회였다랄까요. 아바타 뒤의 사람들이 모습을 볼수 있는 아주 특별한 기회였던것 같습니다.

다른 분들도 기회가 된다면 한번쯤 구입해보는 것도 괜찮을것 같네요.

한가지 아쉬운건 라그나로크 온라인 같은 게임도 뒤의 주석에는 설명되어있었는데, 3D게임쪽의 아바타만 다뤘던것 같다는게 좀 아쉽더군요.


+ Recent posts