피곤한 글. 하루 하루. Seasonal nomad

방금 전, 잠 잘 시간 중 30분을 쪼개 쓰던 글을 지웠다. 피곤한 글이기 때문이다. 정확히 말하자면, 피곤을 불러 일으킬 글이다.

몇 달 전에 어떤 모임 자리에서 제닉스님과 우스개소리로 이런 말을 주고 받았다. “(우린(나와 제닉스님) 이제는 한 물 간 세대의 블로거에요”, 라고. 나는 그 말에 티 없이 정말 즐겁게 웃으며 동의했다. 이유도 알고 있다. 나나 제닉스님이 지금보다 더 많은 관심을 받던 예전에 비해 요즘엔 피곤한 글을 쓰지 않기 때문이다. (아, 물론 관심도 변화 폭은 내 쪽이 월등히 크다. 에잇, 인기쟁이 제닉스님)

글쓴이를 피곤하게 하는 글은 읽는 사람을 자극하는 정도가 크다. 읽는 사람을 자극하면 할 수록 다양한 응답이 쏟아지는데, 다른 사람이 쏟아내는 반응을 글쓴이가 어떻게 받아들이느냐에 따라 다르긴 하지만 대체로 얼마 못가서 피곤하다고 생각한다. 타고난 낚시꾼이라서 수 많은 입질을 모두 반가이 즐거이 받아들이는 사람도 있긴 하지만, 대체로 글 몇 개로 몇 번 깨물려 본 사람은 미끼가 될 만한 글을 피하려 한다.

2005년부터 2006년 개발 경력을 통채로 들어내먹은 팍팍한 2년을 보내는 동안 나는 피곤한 글을 되도록 피했다. 또, 예전엔 개념 없이 쓰지 않아야 할 글을 써서 부족한 됨됨이를 온 누리에 낱낱히 드러내곤 했는데 요즘엔 하지 않아야 할 말은 참는 개념도 챙겼다. 기특하다 한날, 장하다 한날. 퉤.

..................

내 계획수첩(프랭클린 플래너)이나 iCal은 지난 몇 개월간 텅텅 비었는데, 지난 12월부터는 거의 날마다 뭔가 두 세개씩 들어가 있다. 슬슬 움직이기로 마음을 먹자 기다렸다는 듯이 늪 깊은 곳에 숨어 있던 할 일들이 스멀 스멀 올라와 모습을 드러낸다.

재입학을 한다면 3월부터는 학교 공부(무려 경영학과. 히히)도 해야 하고, 동료가 있기에 주말 마다 잡혀 있는 주 단위 일 처리, 영어와 일본어 공부, 짬짬히 개발도 하고. 아마 3~4월엔 도서관엘 자주 가겠지. 후원사를 찾아야 하기도 하고.

주나 달 단위로 느긋하게 움직였던 내가 2007년 들어서는 주 단위로 할 일을 정리하더니 이젠 하루 단위로 정리한다. 이제 곧 있으면 하루를 시간 단위로 쪼개서 정리하지 않을까 기대와 희망을 품고 있다. 바쁠 때 가장 일을 빨리 잘 했고, 그런 기분 좋은 숨가쁨은 좀처럼 얻기 힘들기 때문이다.

나 요즘 이렇게 바뻐, 라고 글을 쓰는 짓만큼 우스운 짓도 없다고 생각하곤 한다. 정말로 바쁘면 바쁘다며 한탄하는 척하며 우쭐해하는 시간을 좀 더 뜻 있는 글을 쓰거나 일을 할테니 말이다. 즉, 정말로 바쁘지 않다는 말을 하는 것이나 마찬가지이고, 바쁘게 사는 걸 '뭔가 있는 척'하는 우쭐함을 내고 싶은 치졸함이나 마찬가지이다. 적어도 내가 나를 봤을 때는 말이다.

계획에 없던 시간 여유가 쏟아져서 정신 공황 상태를 겪다보니 이런 치졸한 글을 쓰고 자빠졌다. 낄낄.
화장실 작업이나 하자.

..................

RSS로 내 글을 배달 받아 보거나 hannal.net/blog 혹은 /think 로 직접 오는 사람은 아직 모를텐데 '한날의 보금자리'에, 그러니까 으뜸화면에 가면 예전엔 없던 Seasonal nomad를 볼 수 있다. 내가 글을 쓰는 건 아니고 친구인 Tae가 운영하는 블로그이다. 나는 몇 몇 일만 도와주고 있다. 내가 친절하긴(?) 해도 귀찮은 일에 엮이는 건 싫어해서 일(work)은 어지간하지 않으면 도와 주지 않는데, 여러 귀찮은 일을 이미 도와줬고 앞으로도 번거로운 일 몇 개를 더 도와줘야 하니 뭔가 단단히 엮여도 엮여 있는 상태이다.

올 해 슬슬 움직이기로 마음 먹고, 밤마다 꿈에서 나타나 밤잠 이루지 못하게 날 괴롭히던 각종 공상들 중 두 어개를 이미 진행하고 있다. 지금은 두 개를 시작했는데 그 중 하나는 나 혼자서 하지 않고 몇 명과 동아리를 이뤄 움직인다. Tae는 이 동아리 사람 중 한 명이고, Tae 개인 블로그도 어느 정도 우리 일에 관련이 있어 돕고 있다.

아직 검색기에 포착도 안됐고, 껍데기(template) 조차 미처 준비 못해 Wordpress에 원래 달려 있는 껍데기를 그대로 쓰고 있는 따끈 따끈한 새내기 블로그인 Seasonal nomad를 이 자리를 빌어 소개 할까 한다. (실은 내 블로그에 드나드는 검색기들이 저곳도 드나들게 하려고 쓰는 글이다)

Seasonal nomad는 주로 Tae가 여행을 다니며 겪은 일을 글과 사진으로 남겨 놓은 곳이다. 블로그 역사도 제법 길고(내 블로그 보다 몇 개월 느린, 2004년 4월) 꽤 많은 지역을 다루고 있다. 13개 나라를 다녔고 기록이 있다. 게다가 Tae의 기발함을 엿볼 수 있는 면 중 하나인 수동 파노라마(panorama) 사진이나(참고 : day 4a) 생활 속을 찍고자 노력한 사진들도 인상 깊다. 자신이 묵던 방에 쪽지를 남겨 이후에 올 사람에게 작은 선물을 주는 모습도 참 Tae답고 좋은 생각이기도 하고. 아무튼 재미난 곳이다.

다만, 주인장이 영어를 주 언어로 하다보니 자연히 글도 모두 영어로 썼다. 하지만 쉬운 영어가 대부분이고, 대부분 사진으로 상황을 이해할 수 있다.

껍데기(template)를 붙이는 등 마무리 일을 얼른 마쳐서 이 달 안에 정식으로 개장할 예정이다. 원래 입주해있던 livejournal에서 718개나 되는 글을 옮겨오는 일도 만만찮았지만, 앞으로 만들 것들도 만만찮기는 마찬가지이다. 한국어 글도 준비할 예정이니 미리 미리 들러보자. (Adsense도 붙여서 우리 일(project) 비용으로 쓸 예정이니 부디 많이 들러주시라 T_T)


비잉~~ 돌아서 오기

요 근래 정신을 어디다 두고 사는 건지 하지 않아도 될 실수를 무척 자주 많이 한다. 엉뚱한 곳에서 문제 원인을 찾느라 몇 시간이나 허비하고는 멍하니 있다가 찾아내기 일쑤다. 하루에 기능 하나 만드느라 바쁘다. 헐.

오늘은 livejournal.com에 있는 계정 하나를 wordpress로 옮기는 일을 했다. 내 블로그는 아니고, 친구 블로그인데 오늘 하루를 헛되게 보내서 화가 날만큼 실수를 했다. 할 일은 간단했다. livejournal에 있는 글을 xml로 내려 받은 뒤, 각 xml을 xml 해부 파일로 연 뒤 wordpress에 집어 넣는다. 정말이지 아주 쉽고 간결하다.

그런데 잘 안됐다. 자꾸 몇 개만 옮겨지고 특정 xml에서 뻗더라. 이것 때문에 2시간을 헤맸다. 도저히 안되겠다 싶어서 인터넷에서 cgi 형태로 실행하지 않고, 계정에서 php로 직접 실행했다. Segmentation fault가 떴다. 이 오류 원인은 다양하지만, 대체로 메모리 과부하를 일으나려 할 때 발생하며 스스로 죽을 때 나온다. 인터넷에서는 이 오류 내용이 뜨지 않고 웹서버가 죽은 것처럼 보여서 당연스럽게도 이런 내용을 알 수 없다. 2시간 만에 원인을 깨닫고는 메모리 낭비 부분을 찾아 손을 보기 시작했다...만, 효과는 없었다. 아무래도 xml 해부기(parser)가 쓰는 꾸러미가 문제인 것 같다. 고작 xml 하나 가져와 요소 단위로 나누는데 그 덩치 큰 PEAR를 열고, DB에 내용을 넣으려고 ADODB까지 연다. 뻗을만 했다. 어쩐다. 크기가 큰 xml 파일은 여럿 있고, 이 놈들 읽을 때마다 Segmentation fault로 뻗을 건 뻔하고. 답이 나오지 않는 상황이었다. Perl로 짤까? 했지만 그러고 싶지 않았다. -_- python도 귀찮았다. (치환문 때문에)

진도도 안나가고 해서 wordpress 관리자 영역에 들어가 괜히 이것 저것 눌러 봤다. 그런데 '가져오기(import)' 기능이 있고, 그곳에 Livejournal용 xml 파일을 wordpress로 가져오는 기능이 있었다. 내가 쓰는 wordpress 두 개 모두 판올림 하기 귀찮아서 예전 판 그대로 둬서 몰랐는데(하나는 1.5.2, 또 하나는 2.0.3), 최신 판(2.1)에는 있던 모양이다. 오오, 하는 마음에 말썽을 일으키는 뚱뚱한 xml 파일을 wordpress로 가져와 봤는데(import) 놀랍게도 아주 간단히 들어왔다. 뭐지, 뭐지, 하면서 소스(source)를 들여다 봤는데... 아뿔싸... 나처럼 무식하게 xml을 요소 별로 나누느라 덩치 큰 도우미들 불러오지 않고, 아주 간단하게 치환문(replace)으로 해결했더라. 이를테면

preg_match('|<subject>(.*?)</subject>|is', $post, $post_title);

이런 식이다. 컥... 아찔했다. 굳이 wordpress에 있는 db table 구조를 파악할 필요도 없었다. wordpress에 집어 넣을 xml 파일을 지정하고 내 목적에 맞게 내용을 가져와 가공한 뒤 wordpress에 집어 넣는 함수로 내용물을 던져주면 끝이었다. 그래서 wp-admin/import/livejournal.php 을 열어서 xml 파일을 가져오는 부분을 손 본 뒤 718개나 되는 xml 파일을 wordpress에 다 넣었다. 소스 고치고 집어 넣는데 20분이 채 안걸렸다.

애초 wordpress 새 판을 좀 더 꼼꼼히 살펴보고 이렇게 했다면 총 30분 만에 끝났을 일이 3시간 넘게 걸렸다. 원래 예정대로라면 토요일 하루는 livejournal에 있던 글을 모두 wordpress로 옮기고 글 갈래(category)를 지정하고 미리 매겨 놓은 꼬리표(tag)까지 집어 넣었어야 했다.

할 일은 많고 시간은 없는데, 적은 일을 많은 시간을 들여 처리하는 요즘같은 비효율에 아주 진저리 난다.

음... 갑자기 네이버 지도 API 때문에 2시간 정도 뻘짓한 기억이 나는군. 문서엔 분명히 utf-8로 정보를 주고 받는다고 했는데, geocode.php (주소를 치면 좌표 정보를 xml로 뱉어주는 파일)은 euc-kr로 정보를 받고 xml 파일도 euc-kr이었다. utf-8로 정보를 아무리 넘겨줘도 마치 접근을 하지 못한 것처럼 결과를 뱉어내서 php으로 proxy server를 만들었다. 그런데 아무래도 curl 함수들이 필요해서 웹호스팅 업체에 요청을 했더니 안해준다고 했다. 싫다는데 어쩔 수 없지. 그래서 python으로 proxy server를 만들었다. 그래도 안되서 하늘 멍하니 쳐다봤다가 새로운 마음으로 다시 시작하려는데 혹시나 해서 euc-kr로 정보를 날려주니 반응하더라. -_-+ utf-8로 정보를 주고 받는다는 naver openapi에 있는 문서에다가 “뻥치지마”라고 글을 걸고(trackback) 싶었다.