글쓰기 메뉴

고래

 저녁 8시만 되면 아침에 울리는 자명종처럼 시끄럽게 울어재끼던 옆집 아기 고래의 울음 소리와 나이 서른 처먹은 백수 주제에 술이 입구녕으로 넘어가냐던 윗집 노망난 영감탱이의 잔소리가 사라진 지금, 내 옆에서 젖은 눈으로 잠든 이 꼬마의 숨소리만이 방 안을 가득 메웠다.


"아저씨, 괜찮아요?"


언제 깼는지 비몽사몽 걸어와 되려 나를 위로한다. 고작 8살밖에 안 된 이 아이가 기특하게 울지도 않고 괜찮냐고 물어오는데 안 괜찮아도 별수 있나.


"괜찮아. 너는?"


"안 괜찮아요. 근데 엄마가 그날 안 울고 가만히 있으면 꼭 데릴러 온다고 했어요. 엄마는 약속 잘 지키니까 꼭 데릴러 올 거예요. 전에 놀이공원 간다는 약속도 지켰으니까요."


아이의 목소리가 떨리는 게 느껴졌지만 그냥 모른 척해 줬다. 그리고 나도 그렇게 믿고 싶었다. 시끄러운 평범한 일상이 거짓말처럼 다시 시작되길 바랐다. 지금 이 아이에게 내가 유일하게 해줄 수 있는 건 네 말이 맞다고 인정해주는 것과 눈시울이 붉어진 아이의 머리를 쓰다듬어주는 것밖에는 없었다.


"꼭 약속 지키실 거야."


사건당일은 물살이 아지랑이 피어오르듯 일렁이고 산호초가 평소보다 심하게 요동치는 그런 날이었다. 나 포함 이웃들은 각자의 은신처에 숨어 숨소리마저도 아주 조심스럽게 내뱉었다. 그리고 곧 장시간 지속됐던 정적이 깨지며 외마디 비명소리가 여기저기서 들렸다.


"엄마!"


"우리 아이는 잘못이 없어요! 차라리 절 데려가세요!"


모녀가 울부짖는 소리에 질끈 감고 있었던 눈을 천천히 떴다.

아이의 엄마는 정체모를 도구에 끌려가는 아이를 구하려 안간힘을 써보지만 성인 몸집만한 큰 도구를 이기기엔 역부족이었다. 아이는 도구에 붙잡혀 점점 위로 올라가는데 어찌할 바 몰라 애타는 마음에 발만 동동 구르던 아이의 엄마는 이윽고 자신의 머리를 큰 도구에 들이받는다.


"엄마! 그러지 마! 엄마 피! 엄마 잘못했어! 하지 마!"


아이의 목소리는 점점 커지다 못해 경끼를 일으켰다. 얼마나 세게 부딪혔는지 철컹 소리와 함께 아이가 풀려났다. 아이의 엄마는 행여나 아이가 다치진 않았을까 구석구석 살폈다.


"괜찮아? 다친 곳은 없···"


이번엔 커다란 도구가 아이의 엄마를 꽉 움켜쥐었다. 놀란 아이는 엄마 주변만 빙빙 맴돌았다.


"괜찮아. 아까 엄마 머리 부딪혀서 피났잖아. 이번엔 치료해주려고 온 거야. 그러니까···"


아이의 엄마와 눈이 마주쳤다.


"그, 우리 아이 좀 잘 부탁드립니다..."


"엄마!"


"울지 말고 얌전히 있어. 엄마가 꼭 데릴러 올 거니까."


아이 엄마의 마지막 모습이었다. 그리고 그날은 육지 사람들이 고래사냥을 하는 날이었다.

어디서 왔지?
[["unknown", 26], ["synd.kr", 3]]
다른 글들
0 0
Square

고래

 흰수염 고래, 범고래, 돌고래...
 어릴때 본 두꺼운 플립북에서 본 고래들이 생각났다. 푸른 바다에서 뛰어나온 짙은 남색. 그 고래의 등에서 뿜어져 나오는 물줄기. 마치 '너'를 닮았다.
 절대로 마르진 않고 통통한 편이고, 멀쩡한 교복 놔두고 파란색 학교 체육복을 즐겨 입고, 작은 눈을 가진 너. 절대 호감가는 얼굴은 아니었다.
 입만 열면 쌍욕에, 공부도 그닥. 많이 먹긴 또 많이 먹는다. 무엇하나 빠짐이 없는 최악의 여학생이었지만.
 어째선지 그녀를 볼때마다, 귀여운 고래들이 떠오른다. 산호들과 물고기가 아닌 아스팔트 위를 나는 고래.
0 0

고래

그 커다란 몸으로
바다를 헤치는 당신에게
두려운 것은 하나도 없어보였습니다.
그 뒤를 따라가기만 하면
마치 나도 모든 두려움을
잊을 수 있을 것만 같았던
당신의 고래같은
무겁고 웅장한 뒷모습은
나의 추억과 뒤섞여
기억의 바다 끝자락,
파도치는 망각에서
해변의 포말로 사그라집니다.
0 0

고래

고래가 살았다. 아주 큰 고래였다. 얼마나 컸냐면,  옆옆 집에 살던 우람한 덩치인 최씨보다 컸고, 동네에서 가장 넓은 건물을 몸으로 단번에 가릴 수 있을 정도였다. 그 전까지 고래를 봤던 적은 없었지만 이 고래는 세상에서 제일 갈 거라고 생각했다. 고래는 최씨보다 뚱뚱하니까, 고래는 마을회관의 해를 가리니까. 어린 시절의 나는 고래가 세상의 전부인 줄 알았다. 상상할 수도 없을 만큼 크고 대단한. 근데 그게 아니었다. 고래는 죽었고, 세상은 그렇게 푸르지 않았다.
0 0

거울

왜 거울은 항상 대부분의 글에서
자아성찰의 도구로 이용될까
그냥 빛이 반사되서 우리 눈에 들어와
나의 표면적인 모습을 보여줄 뿐인데
0 0

영웅

전란의 시대. 영웅이 태어났다. 모두가 그에게 기대했다. 그는 과중함을 느꼈지만 기대에 미치는 성장을 보여줬다. 힘, 민첩성, 지략. 뭐 하나 부족한 것이 없어 보였다. 그렇게 그는 사람들을 위한 전술기계로 키워졌다. 오직 사람을 죽이기 위한 기계로. 시간이 흐르고 그가 건장한 몸을 갖게 되었을 때, 사람들은 부추겼다.
"요즘 나라가 위험하단 소문이 들려와."
"그가 나서줘야 하는 거 아니야?"
"그를 불러와야 해!"
"그가..."
"그만이..."
사람들은 불러댔다. 영웅... 영웅은 어디있냐고.
그 때-
"제가 가지요."
영웅이 나섰다. [특별한] 힘을 가진 그는 전장에 앞장서 적군을 베어나갔다. 수 명. 수 십명. 수 백명. 수 천명. 수 만명. 해치운 사람의 수가 늘어갈수록 그를 칭송하는 목소리가 높아졌다. 하지만 그 내면의 괴로움도 늘어갔다. 수백, 수천, 수만이 내뱉는 신음, 고통, 좌절, 절망, 저주의 소리. 쌓이고 쌓여갔다. 그는 지쳤다. 쇠약해졌다. 하루에 열 번도 출정하던 몸이 이제는 일 주일에 한 번의 출정도 힘겨워했다. 호쾌한 승리의 소식이 점차 줄어가자 사람들은 비난했다.
"영웅은 지금 뭘 하지?"
"놀고 있는 거야?"
"어서 가서 싸워!!"
의문, 비난, 윽박에서-
"이제 쓸모 없는 거 아니야..?"
-버리고 새로운 영웅의 탄생이 필요하다는 얘기까지.
그제야 영웅은 자각했다. 자신은 [도구]이지 저들과 같은 [사람]이 아니라고. 그 길로 그는 조국을 등졌다.  [영웅]이 없는, [영웅]에 의지해온 나라는 순식간에 적군에 쓸려나갔다. 영웅의 나라. 철의 요새같던 그가 사라진 나라가 증발하자 주변국이 땅따먹기를 통해 나라를 나눠가졌다. 그동안 그는 그저 어릴적 훈련했던 장소, 머물렀던 집, 이제는 아무도 남아있지 않는 마을에 머물렀다. 주변국은 알고 있었다. 영웅이 어디 있는지. 그를 포섭하고자 사신을 보냈다. 미인을 보냈다. 금은보화를 보냈다. 하지만 그는 부질없음을 느꼈다. 모든 것을 놓아버렸다. 영웅이 아무 나라도 선택하지 않는 날이 길어지자 주변국은 불안해했다. 그리곤 합의했다.
[불안요소?]
[움직이지도 않아?]
결론은-
[없애자]
그의 집 앞.
"수 만의 사람들을 죽인 악마는 당장 나와라!!"
"죽여라!!"
"내 동생이...!!"
백이 넘는 병사가 포위했다. 그러나 그는 능력이 있었다. 죽지 않을 능력. 도망칠 능력. 모두 죽여버릴 능력. 악마도 영웅도 아닌 그는 선택하지 않았다.
'질려버렸다. 이렇게 죽이지 않으면 죽는 삶에. 그냥 죽어도 별 문제 없는 거 아니야?'

순순히 잡혀 제국의 수도로 이송되었다. 한 숨도 재워주지 않고, 따뜻한 빵이 아닌 거칠고 딱딱한 빵을 먹여가며. 그는 불평하지 않았다. 아니 자기의사가 없는 것처럼 보였다. 그저 초점이 잡히지 않는 눈으로 하늘을 물끄러미 바라볼 뿐이었다.
-와아아아!!
-악마다!!
제국민들로부터 한 뼘... 아니 한 걸음 떨어져 이송되던 그는 근위군의 앞길을 가로막는 한 아이가 보였다. 비켜서지 않으면 즉결처분하겠다는 말에도 아이는 물러서지 않았다. 제국의 수도의 국민이라면 모두 풍족한 삶을 누릴 텐데 저렇게 낡고 헤진 옷을 입고 있는 걸 보니 영웅의 나라... 아니 망국의 피난민일 터였다.
"아저씨!!"
부와 귀가 넘쳐보이는 곳에서의 부조화 때문일까. 순간 그의 초점이 돌아왔다.
"아저씨가 그 영웅 맞죠? 왜 우리 나라를 버린 거에요?! 왜!!!"
점점 시끄러우지는 거리를 의식했는지 앞서가던 대장이 빨리 해치우라는 듯이 손을 휘휘 저었다.
"으아아아아--"
아이가 골목으로 끌려나갔다.
'아마 병사의 칼에 죽고 말겠지.'
(옛)영웅은 생각한다.
'내가 영웅이라고?'
피식
그의 웃음이 점점 진해진다.

"아하하하하하-"
주변의 병사들이 드디어 돌아버렸다는 말을 하지만 전혀 신경쓰지 않고 수 분을 웃는다.
"아하하.. 영웅?"
털썩-
사형장에 도착했다.
"이젠.... 아니야."
또 하나의 목숨이 사형장의 이슬로 사라졌다.
fin.
0 0

Why!?

그렇다면 이런 국내외 기업들이 위키를 쓰는 이유가 뭘까요?
간단하게 설명하면 '오피스 프로그램만으로 일을 하는 경우 발생하는 문제점을 보완하기 위해서 필요하다.' 라고 할 수 있습니다. 요즘은 카카오톡 으로 일하는 경우도 있지만, 여전히 그리고 앞으로도 대부분의 업무는 MS오피스나 iWorks로 작성돼고 이메일을 통해서 이뤄질 것 입니다.
이런 프로그램들은 다양한 기능을 제공하고, 무척 편리한 도구임이 분명하지만 몇 가지 문제점이 있습니다. 
이메일은 언젠가 '지워'집니다.
1 1

영원

영원 이라는 단어는 말 그대로 유한성이나 시한부 따위에 구속 받지않는 상태를 의미한다. 또한 어떠한 현상이나 행동이 변질없이 지속적으로 이어지는 것을 의미한다. 사실 두번째 문장의 설명은 영원이라는 명사적 단어의 최상위 개념인 무한성 밑에 하위개념이기도 하며 동시에 같은 의미이기도 하다. 
인간이라는 존재는 영원이라는 단어를 단지 시간의 범주안에서 게속되는 지속성만 생각하지만 영원이라는 단어를 생각할때 가장 중요한것은 변함이 없다는 것 이다. 
모든 사물은 변한다. 즉 어떠한 상태를 그대로 순수하게 지속하지 못한다.
그러므로 영원이라는 것은 사실상 절대불가 의 범위이며 어떠한 영역에서도 적용할수 없다. 
단적으로 살아있는 모든 생명체들을 확인해 보자. 생명체중 스스로 자유의지를 가지고 운명을 결정하며, 도구를 만들어 쓰고, 언어라는 의사소통을 체계화한 생물이 아닌 이상 영원이라는 것에 대해 연구하고 생각하지 못할 것 이다.
그러므로, 범위는 인간에 한정하게 된다.  그렇다면 인간은 영원이라는 것을 생각할까.
인간은 스스로 자신이 유한성을 지닌 존재라는 것을 알면서도 왜 그렇게 영원에 대한 갈망
으로 가득찬 것 일까? 
그 이유는 모르지만 한가지 확실한 것은, 인간은 모두 영원함을 추구하고 미치도록 갈망한다. 어린 소아기 시절에 지적인 영역의 미성숙으로 생각하지 못 하지만, 사실 이미 태어날때 부터 인간들은 모두다 영원함을 추구하는 마음을 가지고 태어났으며 영원함에 도달하려고 하다가 죽는다. 
유신론이든 무신론이든 머리아픈것을 떠나서 나는 이것에 대한 설명으로 한가지 결론을 내렸다.
신이 인간을 창조할때 이러함을 부여했다고 믿는다. 신이라는 존재는 일반적으로 영원하다. 몇몇 사람들은 신을 인간의 영원함에 의해 탄생한 산물이라고 말하나, 인간안에 기초적인 본능에 해당하는 영원에 대한 갈망이 존재한다는 것은 이러한 설명 밖에 답이 없다. 
애초에 인간이 수백만 수천억 수조년이 걸리면 영원에 도달할 거라고 진화론은 말하지만 결국 수십조년을 지난다 해도 언젠가 그 끝이 존재한다 . 생명연장의학의 발전은 영원이 아닌 유한한 시간을 일시적으로 지연시키는 방지책에 불과하다.
고로 인간의 학문으로는 절대로 영원이라는 것에 대한 해답을 얻지 못한다. 그렇기에 신의 존재와 영원성의 내재를 이것으로 끝 맺는다. 
1 0
Square

할일관리 원더리스트

예전에 그러니까 대략 8~9년전에 todoist 라는웹서비스가 내 첫번째 태스크매니져였지. 스펠 확인하려고 검색해보니 지금도 여전히 서비스 중이고 훨씬 커지고 발전된 모습이네.
내가 기억하는 투두이스트(!)는 개인개발자가 Ajax(비동기 요청 처리방식)로 전체 서비스를 만들었고 (개발자 아버지가 입원 중이시라 간병하며 시간이 남아 만들었다는 스토리가 어디 소개됐었는데) 당시 웹2.0과 심플한 디자인이 인기였던지라 흐름을 타고 입소문이 나서 꽤 인기를 끌었었지.
아무튼 요점이 그게 아니지. 그 후로 직접 만들었던 서비스 하나를 포함해 4~5가지 매니져를 거쳐서 현재는 wunderlist 의 도움을 받는 중.
n디바이스 대응. 프로젝트 관리. 반복 설정. 알림 등등 대부분의 기능은 대부분의 매니져가 갖고 있는 비슷비슷한 정도로 느껴지는데 (사실 대부분의 기능을 내가 쓰지 않지) 내가 맘에 드는건 "원더리스트" 라는 모험심을 자극하는 이름과 인민별 같은 빨간 태그에 별이 그려진 아이콘.
태스크매니저는 업무툴이라 (자발적인 선택이라해도) 태생적으로 부담스러운 도구. 한마디로 꼴도 보기 싫어서 켤 수가 없다능..
왜 그런지 모르겠지만 원더리스트는 그 부담이 덜해서 잘 쓰고 있는 중. 나처럼 태스크매니저 켜는데 심각한 부담을 갖고 있는 사람이 있다면 한번 써보면 좋을 듯.
핸드폰에 있는 사진 업로드해볼라고 글 쓴다는건 비밀.
0 0

향기

에드워드는 벨라의 무덤가 앞에 우두커니 서 있었다. 하얀 눈으로 뒤덮힌 세상은 온 세상이 자신의 피부만큼이나 하얗게 빛났다. 비석 앞에 놓아둔 새빨간 장미 위로 눈발이 쌓여갔다. 달콤한 장미의 향기, 그 위로 처음 지신을 홀리게 했던 벨라의 탐스런 향기가 코 끝을 훑고 지나갔다. 향기라는 것이 그렇다. 기억 속에 오래도록 잔재해 있다. 음미하는 시간도 오래 가지 않았다. 
"보이지 않는다고 해서 곁에 있는 걸 모르는 건 아니야."
에드워드가 읊조리듯 말하며 고개를 돌렸다.
"제이콥."
제이콥 블랙. 옛 연인의 소꿉친구이자 한때 연적이었으며 현재 반목하는 늑대인간. 

"여기에 있어?"
"못 올데라도 왔나?"
"그럴리가. 넌 그 누구보다도 벨라와 가까운 사이었잖아."
말에 가시가 있었다. 하기사 자신이 떠나있을 동안 제이콥이 벨라를 잠깐 흔들기는 했지만 결국 선택 받은 사람은 자신이었다. 그 생각에 제이콥의 빈정거림도 투정으로 들렸다. 귀엽다는 생각에 피식 웃었다. 제이콥은 그것이 거슬렸는지 매서운 눈초리로 에드워드를 바라보았다.
"왜 온거야?"

"아아 아버지가 시키셔서. 어제부터 눈이 많이 오는 날이라 무덤을 정리하라고 하셨어."
제이콥은 태연하게 에드워드의 곁을 지나 도구도 없이 맨손으로 벨라의 무덤가를 정리하기 시작했다. 별 다른 기술 없이 눈을 털어 내는 것 뿐인데도 뜨거운 손길에 눈이 빠르게 녹이내렸다. 과연 늑대인간이야 라는 생각을 하며 에드워드는 그 모습을 지켜보았다. 그런데 아버지의 명으로 왔다고? 벨라의 아버지와 제이콥의 아버지는 각별한 사이라고 들었던 것도 같다. 오랜 이웃 사촌이었다지? 그러고 보니 벨라에 대해 이야기를 많이 나눠보지는 못했다는 생각이 들었다. 항상 사건 사고가 터져서 현재에만 충실하느라 과거를 생각할 겨를도 없었다. 그리고 문득 튀어오르는 궁금증을 억누르지 못하고 물어보았다. 
"벨라가 어렸을 때 얘기 좀 해봐."
제이콥은 의외라는 눈빛으로 에드워드를 바라보았다. 아차 싶기도 했다. 하기사 우리 둘이서 이런 대화를 나눌 사이었던가. 어떻게든 수습하고자 제이콥이 마음에 들만한 답변을 내놓아야 했다. 
"그러니까... 옛날 어렸을때는 둘이 친구였다면서. 그때 나는 있지도 않았으니까..."
제이콥이 그제서야 얼빠진 얼굴을 풀었다. 
"어렸을때라 많이 기억도 안나. 단편적으로 드문드문 기억날 뿐이지. 둘이서 흙탕물에서 놀던 게 제일 잘 기억나. 비 올 수 있는 날 야외에서 가장 신나게 놀 수 있는 유일한 놀이였거든. 집이 가면 아버지하고 스완 아저씨한테 혼나기도 했지만 말야. 그때 우린 참 어렸지. "
아까 보다 훨씬 부드러워진 얼굴로 제이콥은 무덤가 주변을 정리해 나가며 대답했다. 제이콥은 사랑한 여자와 자기만의 추억을 음미하듯이 잠시 눈을 감았다. 하지만 곧 괴로운 표정을 지으며 눈을 떴다. 
벨라는 교통 사고로 세상을 떠났다. 벨라 본인의 의지가 아니었으므로 앨리스는 예측도 하지 못했다. 에드워드도 그 누구도 구하지 못했다. 벨라 혼자 향수를 사러 갔다가 눈 깜짝 할 사이에 벌어진 일이었다. 컬렌 가 사람들을 위해 향수로 자신의 냄새를 덮으면 좋을 것 같다며 생글거리던 벨라의 모습이 아른거린다. 동시에 죄책감 가슴 한켠을 훑어 지나간다. 이는 컬렌가 모든 이들이 같은 마음이었다.
 무덤가 정리를 끝낸 제이콥이 에드워드 옆에 섰다. 몇번을 봐도 에드워드가 주눅드는 신체다. 100년 넘게 산 자신이 성장 중에 있는 어린 늑대인간에게 그런 굴욕감을 느끼다니 안됄 일이다. 제이콥이 눈을 감았다. 묵념을 하는 건가? 
이번엔 벨라가 죽고 나서 본인도 따라 죽을 생각이 들지 않았다. 왜일까. 늑대 특유의 덥고 습한, 동시에 파릇한 새싹과도 같이 생명력 넘치는 청명한 향기가 그를 덮어 오는 것만 같았다. 에드워드도 눈을 감았다. 그 향기에 자신을 조심스레 내려놓아 본다.
0 0

UFW 방화벽 사용하기 - 우분투 14.04

UFW 는 iptables 의 설정 도구로 Uncomplicated Firewall 이란 뜻이며 문자 그대로 복잡하지 않은 방화벽 설정을 위해 사용된다.
서버는 어떤 목적이든, 공인 IP가 있든 없든 외부에서 접근이 가능하다면 보안 위험에 노출될 수 밖에 없다. IDC 레벨이나 네트워크 구성에서 하드웨어/소프트웨어 방화벽이 이미 사용되고 있을 수 있지만 그런 경우에도 각 서버의 방화벽 설정은 매우 유용하다(고 생각한다)
이런 목적으로 사용하기에 iptables 가 매우 적합하나 설정과 관리가 꽤나 복잡하여 나 같은 사람은 필요할 때 검색으로 룰을 설정했다가 어느 순간 뭔가 동작이 이상하면 iptables 전체를 내려버리는 괴상한 방식으로 운영하게되니 계륵이 아닐수가...
그런 의미로 UFW는 신세계! 방화벽이 미적용된 서버가 있다면 당장 UFW를 올려보자!
설치
기본 정책 설정 (들어오는 패킷은 차단, 나가는 패킷은 허용)
ssh, http, https 허용 (ssh 포트를 변경해서 사용한다면 반드시 직접 포트를 입력하자)
포트를 변경해 사용하거나 특정 포트를 허용
방화벽 ON!
위의 명령을 실행하면 "현재 ssh 연결에 문제가 생길 수 있습니다. 적용하시겠습니까?" 뭐 이런 질문이 나온다. ssh 포트는 허용으로 변경했으니 "y" 를 입력해 진행할 수 있다.
확인
ufw 가 실행되고 있지 않다면 아래와 같은 결과가 리턴된다.
방화벽을 끌 때는 아래와 같은 명령어를 입력한다
등록된 규칙을 삭제할 때는 2가지 방법이 있다.
첫번째는 등록 시 사용한 규칙을 그대로 입력하는 방법
두번째는 각 규칙의 번호를 확인하고 번호로 지우는 방법
등록된 규칙의 번호는 줄 맨앞에 있는 [숫자]
2번 규칙 80/tcp 를 지우려면
새로운 규칙의 추가는 동일한 방식으로 가능하다
포트 뒤에 tcp 나 udp 를 지정할 수 있고 지정하지 않는다면 모두 적용된다
새로운 설정을 적용하려면 disable > enable 해도 좋고 아래와 같이 reload 가 가능하다
특정 IP만 허용할 경우 
특정 IP에게 특정 포트만 허용할 경우
포트의 범위를 규칙으로 사용할 경우
특정 아이피에만 일정 범위의 포트를 tcp 패킷만 허용할 경우
서브넷을 특정 포트에 허용할 경우
이 정도면 내가 써봤던 명령어는 다 정리한 것 같다.
0 0
Square

요금은 선불로

남자는 카페 창문에 붙어있는 바 형식의 좌석에 앉아서 밖을 바라보고 있었다. 추적추적 내리는 빗줄기 사이로 구급대원들이 노란 폴리스라인 안쪽에서 움직이는 게 보였다.
남자는 커피를 다시 한 모금 마셨다. 주머니에서 진동이 느껴져서 꺼내보니 핸드폰으로 메시지가 와있었다. 

[2017/09/25_
pm09:00~pm11_m_
docatt_no.325,4333_6734] 

남자는 메시지를 찬찬히 읽고 지웠다. 편리하게도 요즘은 모든 일들이 정직하게 돌아가고 있었다. 남자는 제가 했던 생각을 되짚어봤다. 편리하게도,정직. 앞뒤가 맞지않는 이상한 문장이다. 하지만 편리와 정직이라는 명사는 요즘 남자가 몸담고 있는 업계에서 제일 핫한 단어다. 
그건 아마도 예전엔 달랐기 때문일 것이다. 

일은 괜찮았다. 언제나 괜찮았다.
계획을 세우고, 사전답사를 하고, 예상외의 상황을 예상하고, 든든하게 끼니를 챙긴 후 쇼핑을 했다. 필요한 도구들을 구입하는일은 늘 두근거리는 일이었다. 남자는 대형 팀으로 움직일때도 꼭 쇼핑만큼은 자기가 도맡아 했다. 본 작업에 앞서 자질구레한 허드렛일이라 생각할수있다. 하지만 남자에게 쇼핑은 결코 잡일이 아니었다. 돈을 버는것은 필요에 의한것이지만 돈을 쓰는것은 정신건강에 좋은일이었다. 어쩌면 심근경색에도 효과가 있을지도 모른다. 남자는 그렇게 믿고 있었다. 
다시 본 이야기로 돌아가서. 남자는 자신의 일을 좋아했지만, 이 직업은 남자의 기호와 상관없이 사회 통념상 용납되지 않는 행위였다. 변태적이지도, 가학적이지도 않았지만. 비 인도적인 일이었다. 살인 청부업은 그랬다. 인간의 도리를 벗어난 일이다. 
그런 직종에 남자는 살인을 즐겨서라거나, 고액의 연봉을 바라고 뛰어든게 아니었다. 남자의 타깃 선정은 까다로웠고 본능적이었다. 주제에 어줍잖은 정의감을 가지고 있다고 말 할 수도 있을 것이다. 보통은 인맥을 통해 의뢰를 받았지만 아주 가끔 스스로 일을 구할때가 있었다. 도저히 구제가 안돼는 쓰레기가 썩은내를 풍기며 자유롭게 길거리를 배회하면. 남자는 그 악취를 맡고 슬그머니 쓰레기의 뒤를 밟았다. 그리고 백이면 백 그런놈들은 적을 많이 만들어 두니, 영업부터 작업접수까지 일사천리로 진행할 수 있었다. 옛 말에 원수를 죽이지 않고 기다리면 나중엔 그놈이 죽은채 강 아래로 떠내려온다는 말이 있다. 남자는 그 속담을 좋아했고, 이야기에 자신을 슬그머니 껴두고 상상하는것을 즐겨했다. 그는 명백히 강 상류에서 시체를 떠내려보내는 역할이었다. 
하지만 이상과 현실은 다르다.
만약 남자와 그의 팀이 경찰이나 사법기관에 꼬리라도 잡히는날에는 최소 종신형이었고, 최대 사형이었다. 당연히 그들은 음지로 고일 수 밖에 없었다. 그리고 그들이 비밀스러워 질수록 사기꾼들이 판을쳤다. 사람 밀수업자들도 진짜배기가 있지만, 대부분 사기꾼인것처럼. 살인 청부업자들의 9.9할은 거짓말쟁이들이었다. 남자는 뜨내기 킬러인척 하는 모리배 장사꾼들을 탐탁치 않아했다.
사업가들은 이런말을 한다. '하이 리스크, 하이 리턴.'
남자는 사기꾼들에게 이 명언을 읊어주며 그들을 설득했다. 효과는 좋았다. 
게다가 시간이 지나고 보니 사기꾼도 그들 나름의 이용가치가 있었다. 나무를 숨기려면 숲에 숨기라고 하던가. 사기꾼들로 가득찬 숲에는 SWAT팀이 찾아오지 않았다. 남자와 동료들은 더 깊숙히 숨을 수 있었다. 물론 도시전설로 취급되는것은 곤란했으니, 작업이 끝난 후 여지를 남겨두는것도 잊지 않았다.
'작업.'들은 괜찮았다. 사기꾼들도, 뭐. 나름 괜찮아졌다. 문제는 고객들이었다. 
고객들은 정직한 사람들이 적은 업계에 믿음이 없으니, 작업 전 지급해야하는 선불금에도 신경을 곤두세웠다. 그리고 남자가 반평생동안 겪어본봐로 일이 끝난뒤 남은 잔고를 제대로 챙겨주는 고객은 한명도 없었다. 
통탄할만한 일이었다. 쥐도 새도 모르게 숨어버린 의뢰인을 찾기위해 정보상들과 설전을 벌이는 일은 이젠 다신 하고싶지 않았다. 
그런데 이 일을 왜 아직까지 하고 있느냐고? 

배운 재주가 이것뿐이라 다른 직장에 적응하지 못했다. 
남자도 노력해봤었다. 정상적이고 평범한 생활을 동경해서 본 업무를 모두 접고 일개 사무직으로 한 중소기업에 취직 한적이 있었다. 
하지만, 이 평범함이라는 것이 얼마나 대단하고 무거운 것인지 남자는 모르고 있었다. 남자는 6개월만에 인정하고야 말았다. 자신이 사무직의 직장생활을 너무 우습게 봤었다고. 그는 그동안의 직장생활을 접고 다시 본직으로 돌아가야만 했다.


남자가 평범한 샐러리맨 생활을 하면서 배운것은 직장인들이 한 여름에 때아닌 감기에 골골 거리는 이유를 알게된 것이었다. 중앙냉난방시스템을 만든 작자는 사무실 내 대류현상이 얼마나 사람을 미치게 하는지 몰랐던걸까. 이마는 꽁꽁 얼어붙고, 책상 아래 두 다리는 펄펄 끓는 하루를 365일 되풀이 해야 중앙냉난방시스템이 자기 인생의 과오고 이 비극적인 시대의 오류라고 순순히 시인하지 않을까? 남자는 중앙냉난방시스템을 만든 사람이 누군지 언젠가 한번 조사를 해볼 필요성을 느꼈다. 
그리고 어느 직종이나 그렇지만 본 업무보다 사람과의 관계가 더 힘든법이라는 것을. 남자는 다시 깨달았다. 인생의 진리를 깨우친 기분이었다. 
어떻게 직장상사라는 인간들은 하나같이 인격모독과 성추행을 하루도 빼놓지 않고 할수가 있을까. 남자는 불쾌감에 앞서 세계 7대 불가사의를 목도한 기분이었다. 과장들의 성희롱적 농담은 전혀 우습지 않았고, 부장들과 팀장들의 인격모독적 발언들은 매번 놀라움을 안겨줬다. 40대에 접어드는 상사들은 모두 대머리 혐오증이라도 걸린걸까? 알수없는 일이었다. 
남자는 키보드와 스카치테이프를 이용해 직장상사를 살해하는 대신 예의 바르게 사표를 쓰고 나왔다.
전 직장상사들이 저열한 인간들임에는 틀림없다. 하지만 그게 죽을정도의 일이라곤 생각치 않았다. 의뢰가 들어온다면 이야기가 달라지겠지만. 보잘것없는 중소기업의 부장들에게 원한을 가진 이들이라면, 하청업체 직원이거나 회사의 카스트 제도상 천민계급인 월급쟁이일텐데 그들이 고액의 의뢰비를 감당할수 있을것같진 않았다. 가격대비 수지가 맞지 않았다. 하지만 남자는 전 직장 동료들이라면 10%정도 할인해줄 용의가 있었다. 암살의 대상이 남자가 생각한 그 사람이라면 25% 인하가에 기쁘게 접수해줄 것이다.
하지만 아마 그런 날은 오지 않을것이다. 평범함이란 무거운 것이므로.
본직으로 돌아온 남자는 다시 자신의 일을 시작했다.
사바세계의 사악한 공기를 마시고 온 남자는 깨달음을 얻었고, 이제부터 의뢰비는 무조건 선불로 받기로 결정했다. 고객들은 항의했고, 팀원들이 난색을 표했지만 아이러니하게도 상황은 점점 더 좋아지고 있었다. 오늘만 해도 벌써 한건 해결하지 않았는가.
커피가 차갑게 식는동안 비가 그쳤고 거리는 다시 한산해졌다. 그 거리에 기묘하게 눈길을 끄는 여자가 보였다. 남자는 자리에서 일어났다. 그는 꺾어뽑은 슬라이드폰을 깨끗이 닦은후 메모리칩을 카페 화장실에 버렸다. 그리고 나머지는 여자를 쫒는동안 강물 속으로 던져버렸다.
0 0

우분투 14.04 wkhtmltopdf 설치

wkhtmltopdf 는 HTML 페이지를 PDF 로 만들어주는 오픈소스 도구로 Qt WebKit 엔진을 사용한다. 자매품인 wkhtmltoimage 는 같은 방식으로 HTML 을 다양한 형식의 이미지로 변환시켜준다.
Ubuntu 14.04 에서 apt-get 으로 wkhtmltopdf 패키지를 설치할 수 있으나 Qt 가 wkhtmltopdf 에 맟춰 패치되지 않았다면 몇 가지 기능이 제한된다. 예를 들면 HTML 에 있는 링크가 PDF 에 사라지는 등의 오류가 있을 수 있다. 관련 옵션은 --enable-external-link 인데 Qt 가 패치되어 있지 않으면 해당 옵션을 켤 수 없다. 
그러니 wkhtmltopdf 홈페이지에서 컴파일되어 있는 바이너리를 다운받아 설치하도록 하자. 만사가 편하다.
* 우분투 서버를 사용하고 있을 경우 X 시스템과 폰트관련 패키지가 설치되어 있지 않다. 이럴 경우 먼저 필요한 패키지와 폰트를 설치하자.
폰트는 마음에 드는 패키지를 찾아 설치하면 되는데 별도의 설정없이 바로 사용할 수 있는 한글 폰트는 unfonts, baekmuk, nanum 정도 되겠다. 각각 패키지는 아래와 같다. (우분투위키에서 CJK 폰트 참고)
은폰트 - unfonts
백묵폰트 - baekmuk
나눔폰트 - nanum
폰트툴과 폰트가 설치 된 후 wkhtmltopdf 다운로드 페이지에서 Ubuntu Trusty (14.04.1) 버전(64-bit)의 .deb 파일을 다운받아 아래와 같이 설치한다. 
설치 후 아래와 같이 확인할 수 있다.
webpage/url 이라는 주소의 웹페이지를 save.pdf 로 변환하는 명령어 예제는 다음과 같다. 자세한 옵션은 man wkhtmltopdf 로 확인할 수 있다.
--print-media-type
스크린 타입이 아니라 프린트 미디어로 PDF를 렌더한다.
--page-size
페이지 사이즈를 지정한다. Letter, A4, A3 등의 형식으로 지정할 수 있다.
* 공식 홈페이지에서 전체 리스트 링크를 제공하고 있으나 현재 사용이 연결이 되지 않는다. 소스에서 확인한 전체 리스트는 이 곳에 적어둔다.
* --page-width, --page-height 로 페이지 크기를 지정할 수 있다 
--dpi
dpi (dots per inch) 값을 지정한다.
-T, -B, -L, -R
상(Top), 하(Bottom), 좌(Left), 우(Right) 여백을 지정한다.
요즘 웹페이지의 PDF 변환이나 이미지 캡처는 요즘 PhantomJS 를 사용한 방식이 훨씬 많이 소개되고 있다. 의존패키지에 대한 고려나 설정에 대한 부담감이 없기 때문일텐데 개인적으로 wkhtmlto* 를 오래전부터 사용하고 있어서 정리해봤다.