« Previous : 1 : ... 121 : 122 : 123 : 124 : 125 : 126 : 127 : 128 : 129 : ... 221 : Next »

구원과 행위의 관계

세상의 다음 법칙들을 생각해 보자.

  • 길거리에서 나눠 주는 무료 유인물이 공짜라고 해서, 거기 있는 유인물들을 몽땅 혼자 가져가도 되는 건 아니며,
  • 지하철역의 쓰레기통이 공짜라고 해서 자기 집 쓰레기를 몽땅 가져와서 거기에다 버려도 되는 게 아니다.
  • 뷔페가 음식 무한 리필이 가능하다고 해서 딴 그릇에 담으면서까지 막 퍼 가도 되는 건 아니다.
  • 노인은 지하철을 무료로 이용할 수 있다고 해서 무임 승차권조차 아예 없이 개찰 구역 안으로 제 집처럼 마음대로 드나들 수 있는 건 아니다.
  • 남이 만든 어떤 소프트웨어가 누구나 무료로 쓸 수 있다고 해서 그걸 자기가 만들었다고 저작권 자체를 사칭해도 되는 건 아니다.
  • 자유가 있다고 해서 남의 자유를 침해할 자유, 자기가 속한 공동체를 와해시킬 자유까지 허용되는 건 아니다.

우리 주변엔 이와 비슷한 원리의 적용을 받는 것들이 이것 말고도 많이 있을 것이다.
그리고 finally.. 은혜로 말미암아 믿음으로 받는 혼의 구원이 공짜이고 영원히 지속된다고 해서 □□□ 해도 되는 건 아니다. 안에 들어갈 말은 건전한 예수쟁이라면 누구나 유추 가능할 것이고. (롬 6, 엡 2, 고전 8:2, 갈 5:13 등)

다시 말하지만, 크리스천은 구원받기 위해서, 혹은 받은 구원을 유지하기 위해서 선행을 하는 게 아니다.
단지 그 구원에 감격하고 감사해서, 다른 사람이나 세상 정세를 보는 게 아니라 절대적인 선과 보상의 기준을 보고 믿음 안에서 성령의 열매 차원에서 선행이 나오는 것이다.

크리스천이 믿음의 선행을 하는 것은, 마치 철덕이 Looking for you를 3천 번 듣고 우리나라 철도의 모든 것을 줄줄 외우는 것과 조금도 다를 게 없는 자연스럽고 지당한 이치이다.
보이지 않는 것을 믿는다는 증거는 보이는 형태로 드러나게 마련이다.

Q. 너는 철도를 사랑한다는 것을 무엇으로 보일 테냐?
A. 새마을호 객실에서 흘러나왔던 Looking for you를 3천 번 듣고 악보로 만든 것으로 보일 것이다. (그러나 입증하는 방법이 이것만 있는 건 물론 아니다. 복수 정답이 존재함)


이렇듯, 로마서와 야고보서는 lexical하게는 이랬다 저랬다 하는 진술처럼 보일지 모르나 그 실질적인 내용은 일맥상통하며 모순이 아니다.
그 정도 모순도 분간 못 할 정도면 성경 못 읽는다. 성경엔 그거 말고도 이랬다 저랬다 하는 말이 차고 넘친다.

Posted by 사무엘

2015/06/03 08:29 2015/06/03 08:29
, , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1100

세상의 영화나 드라마 같은 창작물 매체에는 "열린 결말"이라는 게 있다. 총이 그 수단으로 즐겨 쓰인다.
일례로 웹툰 <26년>은 그냥 건물 밖에서 "탕!" 총성만 나면서 끝난다. 격발은 대머리 전대통령을 저격하려는 그 여주인공이 했는지, 아니면 그녀를 저지하려는 다른 경호원이 했는지 알 수 없는 구도로 끝난다.

완전한 열린 결말은 아니지만 그에 좀 근접한 예로는 <이연걸의 정무문>이 있다. 결말부에서 주인공 진진이 "내가 모든 책임을 져야겠군요"라고 하면서 총을 한 발 쏘긴 하는데, 그래도 죽지는 않고 몰래 빠져나와서 김 두한 코스프레를 하고 택시를 타는 걸로 끝난다. 이건 뭔가 성경적인 심상이 담긴 게 아닌가 싶다. "한 사람이 온 백성을 위해 죽는 것이 유익하다." (요 18:14)

그리고 사실은 성경 내부에도 뭔가 열린 결말처럼 보이는 스토리가 있다.
대표적인 예가 바로 이스라엘의 사사 시절에 활동했던 '입다'라는 사람이다. 사사기 11장을 읽어 보시라.
이 사람은 사생아 출신이어서 동족들로부터 냉대받으며 서럽게 자랐지만, 훗날 동족을 구하는 영웅이 되었다.

그는 암몬 족과의 전투를 앞두고 하나님 앞에 서원을 했는데.. 내용인즉슨 "하나님이 이 전투를 이기게 해 주신다면, 돌아오는 길에 우리집 문앞에 가장 먼저 마중을 나오는 생명체를 번제 헌물로 바치겠다"였다. 이 사람은 가축을 많이 키웠던 것 같다.
그런데, 전투에서는 대승을 거뒀지만 싸움을 마치고 집에 돌아오니 자기를 가장 먼저 맞이하며 축하해 준 생명체는...;; 자신의 외동딸이었다.

입다는 대성통곡을 했다. 하지만 그의 딸은 담담하게 자신의 운명을 받아들였으며, 아버지에게 어서 서원한 대로 행하라고 당부를 했다. 단, 친구들과 함께 자신의 처지로 인해 무려 2개월 동안 펑펑 울면서 애곡을 하고 온 뒤 그렇게 했다.

입다는 "한번 서원한 건 반드시 이행해야 한다"는 말씀 하나만은 일말의 책임감을 갖고 철썩같이 곧이곧대로 실천했다(신 23:21-23). 그러나 그는 아무리 전쟁을 앞둔 위급하고 비장한 상황이긴 했다지만, 일단 생명체 번제 헌물까지 걸면서 애초에 서원을 리스크가 큰 형태로 좀 무리하게 했다.

그리고 서원을 잘못 적용했다. 법과 약속의 적용 우선순위에 무지했다. 서원을 빌미로 다른 사람을 막 죽여도 되는 게 정당화되지는 않을 뿐더러, 설령 사람이 아닌 짐승이라 해도 부정한 짐승인 개나 돼지가 가장 먼저 마중을 나왔다면 그런 건 바칠 수 없다. 허나 입다는 개나 돼지가 1타로 걸렸다면 실제로 그렇게 했을 것으로 예상되는 사람이다. =_=;;;

이는 사사 시대에 심지어 정치· 군사 지도자인 사사(판관)들마저도 율법에 대해 굉장히 무지했으며, 요즘 스타일로 고상하게 표현하자면 성경을 바르게 나누어 적용할 줄 몰랐음을 암시한다.
나중에 삼손조차도 율법 따위는 깡그리 무시하고(삿 13:14) 죽은 사자의 부정한 시체에 있는 꿀을 막 먹었으며 부모에게까지 준다. 그러니 입다 정도는 약과였겠다는 생각이 든다.

자, 그런데 여기서 문제가 시작된다.
이때 입다의 딸은 실제로 비참하게 죽어서 번제 헌물로 바쳐진 게 아니라, 그냥 시집 갈 자격을 박탈당하고 평생 처녀로 살면서 하나님께 헌신된 삶을 살기만 한 거라고 해석하는 분들이 있다.
당장 본문만 보면 입다의 딸이 "처녀 됨 / 남자를 알지 아니하였더라"라는 사실만 엄청 부각되어 나오지, "죽었다"라는 직접적인 표현 자체는 안 나오긴 한다.

그러나 직접적인 표현이 없다고 해서 그 문맥에서 딸이 죽지 않고 생존했다고 결론을 내리는 것은 말이 안 된다.
그런 주장을 하는 분들과 딱히 논쟁을 하거나 싸우고 싶지는 않지만.. 그 문맥에서 딸이 실제로 죽은 게 아니면 다른 방법으로 도대체 어떤 해석이 가능한지 난 이해가 되지 않는다.

가장 핵심 전제 조건부터 제시하겠다.
여기서 문제의 핵심은 하나님이 인신제물/인신공양을 받아들이는 잔인한 신이냐, 그게 율법적으로 맞느냐 아니냐 같은 게 아니다!
오로지 '입다'가 자기 딸을 죽이는 뻘짓을 했느냐 안 했느냐, 그 사건이 실제로 벌어졌냐 안 벌어졌느냐만을 따져야 한다. 잘못을 해도 그건 입다의 개인적인 삽질일 뿐이지 하나님의 성품 같은 건 이 자리에서 논할 필요가 없다는 것이다. 동의하시는가?

그런데 (1) 저 주장을 하는 분들은 먼저 그걸 혼동하는 것 같다.
마치 사형 제도가 하나님이 제정한 제도이며 성경적으로 옳다는 주장을 하는데, 그걸 마치 "우리가, 교회가 흉악범에게 직접 보복을 하는 것인양" 이상한 비약을 혼자 자기 상상 속에서나 하면서 반발하는 것과 비슷한 부류의 오류를 저지르고 있다는 뜻이다.

그리고 다음으로, (2) 단순히 잔인하다는 이유만으로 '애비가 딸을 정말로 죽이지는 않았을 것이다'라고 실드를 치는 것도 말이 안 된다. 성경에는 애비가 외동딸을 죽인 것보다 더 잔인한 장면도 많다.
다윗이 이방 민족들을 톱과 써레로 잘랐다는 말도 있고, 개독안티들이 맨날 욕하는 가나안 백성 진멸도 나오고... 비록 실행은 안 됐고 문맥이 좀 다르긴 하지만, 하나님은 애초에 아브라함 보고도 외아들 이삭을 번제 헌물로 바치라고 명령하신 적이 있다. 요 문맥만 딱 떼어서 생각하면 발상 자체는 영락없이 인신제물인 것이다.

심지어 변개된 잘못된 성경들은 원어 드립을 치면서 그걸 '보정'하기까지 했다. 톱과 써레로 잘랐다는 표현을 톱과 써레로 강제 노동을 시킨 것으로 바꾸고, 지옥을 삭제하고 음부· 스올로 바꾸고, devil을 덜 자극적인 단어인 demon으로 바꾸는 등..

입다의 외동딸 생존을 주장하는 분들은 비록 성경 변개자들처럼 악의적이지는 않겠지만, 혹시 자신도 부지중에 저런 성경 변개자의 심정에 동조하고 있지는 않나 생각해 봐야 할 것이다. "모세는 정말로 홍해를 건넌 게 아니라 갈대밭을 건넌 것이다"와 "입다의 딸은 정말로 죽은 게 아니라 그냥 평생 동정으로 산 것이다"의 차이는 의외로 종이 한 장 차이에 불과할지도 모른다.

(3) 원래 서원을 보면 대명사가 he가 아닌 it으로 표현돼 있고 사람이 아니라 동물을 바치는 서원이었을 뿐이라는 해석이 있는데 이 역시 금방 반박되는 어불성설일 뿐이다. 그럼 딸이 마중 나왔을 때 부녀가 애초에 슬퍼하고 난리를 칠 필요가 없지 않았겠는가.

이런 것들 외에도 입다의 딸의 생존 가능성을 0으로 확인사살하는 요소는, 그녀의 또래 친구들이 단순히 1회로 그치지 않고 해마다 무려 나흘씩이나 그녀의 '처녀 됨'을 애곡했다는 것이다(삿 11:40).

진지하게 생각해 보자.
주께 바쳐져서 수녀처럼 헌신하며 사는 게 무슨 무인도 염전이나 꽁치잡이 어선 노예로 팔려가는 것이기라도 하나? 영원히 연락이 끊기는 실종이기라도 하나?
사무엘처럼, 혹은 누가복음 2장의 안나처럼 사는 게 그렇게까지 충격적인 엽기 뉴스이고 매년 애곡할 만한 엄청난 비극인가? 일단 당사자가 목숨이 붙어 있는데..?

우리 조선 시대에는 팽형이라는 제도가 있었다. 그건 실제로 죽이지만 않을 뿐이지 그 죄인의 존재를 사회에서 완전히 지워 버리는 형벌이었다. 유족들은 멀쩡히 살아 있는 사람의 장례식을 치르고 제사까지 지내야 했다.
사사 시절의 이스라엘 사회에 그런 팽형에 준하는 제도라도 있지 않았다면, 입다의 딸은 정황상 도저히 살아 있을 수가 없다. 게다가 그녀는 자기가 무슨 죄를 지어서 그렇게 된 것도 아니지 않은가.

"그가 자기가 서원한 대로 그녀에게 행하니 그녀가 남자를 알지 아니하니라." (삿 11:39 did with her according to...)를 보면, 본인은 창세기 9장의 다음 구절도 오버랩 된다.
"노아가 포도주에서 깨어나 자기의 작은아들이 자기에게 행한 일을 알고” (what his younger son had done unto him)

이때도 do만 나오지만, '함'은 자기 아버지가 술 취해서 곯아떨어진 사이에 아버지의 몸에다 굉장히 흉한 짓을 했음을 성경은 암시하지 않은가 말이다. 함이 한 짓이든, 입다가 딸에게 한 짓이든, 그리고 발람이 민수기 24장에서 25장 사이에 발락에게 무슨 조언을 줬는지 같은 것은.. 성경이 굳이 구차하고 민망스럽게 일일이 묘사를 할 필요가 없다. 성경의 저자가 쑥덕같이 말했으면 우리 신자들은 찰떡같이 알아들어야 한다. 하긴, 생각해 보니 창 1:1-2 사이의 "간극"도 이런 implicit한 어려운 주제에 속하는구나!

입다 하나를 갖고 정말 다양한 얘기를 했다.
그런데, 믿거나 말거나 이 '입다'는 히브리서의 믿음장에 이름이 올라 있다. (히 11:32)
'입다'가 실수· 오타가 아님을 인증하기 위해, 심지어 입다 이상의 좌충우돌 사고뭉치이고 자폭 자살로 생을 마감한 삼손도 믿음장에 등재되어 있다. 이건 반전이며 우리에게 시사하는 바가 크다.
하긴, 입다든 삼손이든 삽질만 했지 확실히 심성이 나쁜 사람은 아니었다. 마치 롯처럼 말이다.

Posted by 사무엘

2015/05/28 08:25 2015/05/28 08:25
,
Response
No Trackback , a comment
RSS :
http://moogi.new21.org/tc/rss/response/1098

액체를 끌어올려 분사하는 일을 하는 물건으로는 다음과 같은 것들이 있다.
  • 물뿌리개: 일면 주전자처럼 생겼지만 주둥이의 끝은 샤워기처럼 생긴 물통이다. 확 들이붓더라도 물이 넓은 면적에 고르게 퍼져 나오도록 만들어져 있다. 다만, 물을 내보내는 메커니즘은 중력밖에 없으니 딱히 신기할 게 없다. 이름 그대로 화단에 물을 주는 용도로 쓴다.
  • 펌프: 진공을 만들어서 압력차를 이용해 물을 끌어올리는 도구이다. 옛날에 오늘날과 같은 편리한 상수도 시설이 갖춰지기 전, 시골에서는 종종 볼 수 있었다. 두레박으로 우물물을 끌어올리던 시절보다는 많이 발전했지만, 그래도 수동식 펌프는 펌프질을 위해 여전히 사람의 체력이 필요했다.
  • 분무기: 물이나 향수 같은 걸 펌프와 같은 원리로 끌어올린 뒤, 안개처럼 조금씩 뿌옇게 분사한다. 손으로 손잡이를 눌러서 손잡이가 끝까지 들어갈 때까지 그렇게 동작한다. 그리고 정확하게 어떻게 조작을 했는지는 기억이 안 나지만, 일부 분무기는 노즐 '모드'를 바꿔서 물을 뿌옇게 분사하는 게 아니라 물총처럼 가느다란 물줄기를 찍찍 갈기게 만들 수도 있었다.
  • 스프레이: 분무기보다 기술적으로 더 발달했다. 위의 분무기는 손잡이가 끝에 닿아서 멈춘 뒤엔 더 분사가 되지 않지만, 스프레이는 버튼을 누르고 있는 동안 계속해서 액체가 분사되어 나온다. 스프링이나 태엽, 전기 동력 같은 게 있는 것도 아닌데 액체를 밀어내는 역할은? 같이 들어가는 압축 기체가 한다. 그 대신 여기에 들어가는 액체도 역시 단순한 물 같은 게 아니라 아무래도 살충제, 페인트 같은 화학 약품들이다. 아, 그러고 보니 소화기도 따지고 보면 이런 스프레이에 속한다.

총으로 치면 단순 압축 분무기는 반자동 모드이고, 에어로졸 스프레이는 연사가 되는 자동 모드에 해당한다고 봐도 되겠다.

사용자 삽입 이미지

예전에 본인은 액체 연료와 고체 연료의 차이에 대해서 글을 쓴 적이 있는데, 액체를 끌어올려 뿌옇게 분사하는 기술은 액체 연료를 다루는 핵심 기술이며 기계공학에서도 굉장히 중요하게 다뤄지지 않나 싶다. 유체역학과 열역학의 영향을 많이 받을 것이다.

난 사람이 일상생활에서 사용하는 세제, 치약, 샴푸 같은 것에 유체의 극미량 분사 기술이 필요하다고 생각한다. 흔히 찌익 짜서 쓰는 양보다 훨씬 적게 써도 씻는 데 부족함이 없음에도 불구하고, 기분상의 이유로 과다 사용되고 있기 때문이다.

그건 그렇다 치고, 자동차 엔진에서 분사 기술의 중요성은 그야말로 물으면 잔소리이다.
<이연걸의 정무문> 영화의 맨 앞부분을 보면.. 주인공 진진은 설정상 일본으로 유학을 가서 내연기관이라는 신문물에 대해 공부하고 있는 게 나온다. (오오~ 기계공학..) 그때도 대사를 들어 보면, 선생이 '카뷰레터'라는 장치를 언급한다~!
서양 제국주의는 내연기관이 달린 기계와 총기를 통해서 이뤄진 거라 해도 과언이 아니었으니, 그 당시로서는 엔진 기술이 오늘날의 반도체나 소프트웨어 기술만큼이나 최첨단 기술이었을 것이다.

사용자 삽입 이미지

자동차는 잘 알다시피 공기 중에 연료를 아주 희박하게 분사한 뒤 이를 폭발시켜서 그 힘으로 피스톤을 누르고 바퀴를 굴린다.
이를 수행하는 가장 원시적인 장치가 바로 '카뷰레터'이다. 얘는 말 그대로 분무기처럼 동작을 하여 가솔린+공기 혼합 기체를 엔진에다 보내 준다. 참고로 카뷰레터는 탄소 carbon에서 유래된 탄화물 carburet의 파생어이다.

어린이용 과학 실험 중에.. 빨때를 ㄱ자로 꺾어서 수면에다 꽂은 뒤, ㅡ 모양의 한쪽 끝을 입으로 세게 불면 아래에 있던 물이 빨려 올라가는 실험이 있다. 바로 그 원리이다. 유식한 표현으로는 베르누이의 정리 내지 벤트리 효과이다.
더 나아가 바다에서 사람이 배의 스크류에 빨려 들어가서 사고를 당하는 것, 열차가 빠르게 달리는 쪽으로 사람이 빨려 들어가는 것도 다 유체역학적으로 같은 원리 때문이다.

여기서 잠시 옛날 이야기를 하겠다.
현대 자동차에서 예전에 만들었던 승용차인 '엑셀'. 그 기원을 찾자면 포니 엑셀, 프레스토 등 더 옛날 차로 거슬러 올라가긴 하는데, 그 중 가장 엑셀스러운 첫 모델은 1989년 4월에 나온 2세대 모델이다. (그러고 보니 저 시기는 아래아한글 1.0이 나온 시기와도 비슷하다)

사용자 삽입 이미지

그 당시 엑셀은 1300cc, 1500cc GL, 1500cc GLSi 이렇게 세 모델로 출시되었다.
창문도 최하급은 전도어가 수동이고 중간급은 앞좌석 두 개만 자동, 고급은 전좌석이 파워윈도우였다.
그리고 그것보다 더 큰 차이는 연료 분사 방식인데, 앞의 둘은 기계식 카뷰레터보다 약간 더 발전한 전자식 피드백 카뷰레터인 FBC이고, 최고급 GLSi는 그 당시로는 최첨단 기술이던 다중분사 MPI 방식이었다.

GLSi의 경우, 차 측면에 Multiple Point Injection이라고 당당히 자랑하는 글귀가 붙어 있을 정도였다. DOHC 흡기 방식이거나 자동 변속기가 달린 차는 측면에 Automatic 내지 DOHC라고 자랑을 치던 시절의 얘기다.

흐음, 기계식 카뷰레터, 전자식 카뷰레터, MPI(완전 전자식)라는 세 계층의 기술을 보니..
이듬해 봄에 발표되었던 마소 Windows 3.0의 리얼 모드, 286 표준 모드, 그리고 386 확장 모드가 같이 연상된다!
그땐 자동차와 컴퓨터 모두 기술적으로 크게 발전하던 과도기이긴 했다. 전동차로 치면 저항, 쵸퍼, VVVF와 비슷하다.

카뷰레터는 전자 제어가 없이 전적으로 밟은 만큼 밸브가 열리고, 곧이곧대로 연료가 분사되다 보니.. 구조가 단순하고 저렴하고 무엇보다도 정비성이 좋았다. 변속기도 수동이었으니 반응 하나는 정말 최강이었을 것 같다.
193,40년대에 미국에서는 퍼져 버린 차를 시골 깡촌의 소녀가 간단한 공구로 뚝딱 수리하는 걸 보고 미국으로 견학을 간 어느 일본군 장교가 경악했다는 일화가 전해진다. "전국민이 저렇게 기계를 잘 다루는 나라와는 전쟁을 벌여서 이길 수 없다"라고 직감을 했다고.

미국이 (1) 193,40년대에 이미 마이카 시대가 열렸을 정도로 잘사는 나라이며, (2) 인건비가 높아서 어지간한 작업은 스스로 다 알아서 해야 하는 나라인 것도 있지만, (3) 한편으로 그 시절엔 자동차의 구조가 지금보다 훨씬 더 단순하기도 했다는 뜻이다.

물론 지금은 기계식 카뷰레터만으로는 요즘 정도의 엄청나게 까다로운 연비나 배기가스 기준을 도저히 맞출 수 없다. 지금은 MPI에 이어 직분사라는 GDI 엔진까지 출현했고, 또 그 동작을 제어하는 것 역시 옛날보다 훨씬 더 똑똑하졌다. 컴퓨터가 이것저것 따져서 판단을 내리기 때문이다.

기계식 카뷰레터 기반이던 포니에는 초크 밸브를 개폐하는 스위치도 운전석에 있었다니 참 신기하다. 공회전 때 엔진 회전수를 조절하는 역할도 하고, 또 추운 곳에서 오랜만에 시동을 걸 때는 이거 제어를 잘 해 줘야 했던가 보다. 지금은 그런 밸브는 오토바이에서나 볼 수 있는 물건인 듯.

Posted by 사무엘

2015/05/25 08:30 2015/05/25 08:30
, , , , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1097

* 평소에 내가 좀체 다루지 않던 경제 쪽 주제에 대해서 오랜만에 글을 써 본다.
그래서, 뒷부분에 성경 얘기가 많이 나오지만 분류도 기독교 쪽이 아닌 그냥 보통명사로 했다.

세상의 모든 물건들은 담보로 맡기는 게 아닌 이상, 그 자체만을 남에게 안심하고 맡기려면 맡아 주는 사람에게 보관료를 내야 한다. 교통수단을 세워 둘 때 드는 주차료· 주기료 같은 건 말할 것도 없고, 아기나 애완동물을 맡길 때도 말이다. 이게 세상의 보편적인 이치이다.

하지만 유일한 예외가 있으니, 바로 돈 그 자체이다. 돈을 맡기면 맡은 사람이 오히려 반대로 맡긴 사람에게 주기적으로 돈을 준다. 그렇게 주어지는 돈을 우리는 이자라고 부른다. 생각을 해 보시라. 돈을 안전하게 보관하기 위해서는 맡는 쪽에서 막대한 경비 비용을 부담해야 하는데도 불구하고 그래도 맡은 사람이 맡긴 사람에게 돈을 준다.

이 원리를 이해하는 게 자본주의 원칙과 경제 원리를 이해하는 첫걸음임이 틀림없다. “세상에 공짜란 없다” 다음으로 초등학교에서 가르칠 법한 제2의 핵심 원리이다.

그리고 은행들 역시 예금을 곱게 꿍쳐 놓고만 있지 않는다. 대부분의 돈을 다른 데에 투자하거나 대출을 줘서 돈을 불리는 일을 한다. 그러니 모든 예금자가 불시에 자신의 예금을 전부 인출하려 들면 은행은 못 버틴다.
이런 점에서 성경의 달란트/므나 비유에 나오는 게으르고 악한 종은 선악을 따지기에 앞서 정말 최소한의 경제 관념조차 없던 멍청한 친구였다. (마 25:27, 눅 19:23)

지금이야 우리나라가 먹고 살 만하니까 쏙 들어갔지만, 옛날에는 나라에서 국민들 보고 그렇게도 저축을 많이 하라고 홍보하고 과소비 추방하자고 캠페인을 벌였던 게.. 단순히 근검절약(?) 정신을 함양하고 외화 유출을 방지하려는 차원이 아니었다. 그건 부수적인 효과다.
저축을 많이 함으로써 은행이 돈을 많이 보유하게 하고, 이로써 초기 자본이 많이 드는 기업에다 투자를 많이 하게 하려는 의도였다.

무슨 유머 중에, 학교에서 "지금 손에 100만 달러가 생기면 무엇을 하겠는가?"를 상상해서 작문을 시키는 시간이 있었는데 어떤 애는 그냥 가만히 있었다는 이야기가 전해진다. 교사가 이상하게 여겨서 "세계일주를 한다, 여자를 꼬신다" 등 왜 뭐라도 안 쓰냐고 물었더니 아이 왈, "네, 저는 100만 달러가 있으면 저는 아무것도 안 하고 가만히 있을 거예요(모든 걸 남에게 시키고)" 이랬다는데..
그 애도 알고 보면 굉장히 천진난만 순진한 타입이다.
자본주의 사회의 법칙을 일찌감치 깨달은 영악한 애라면, 그 돈으로 지금 당장 흥청망청 유흥을 즐기는 게 아니라, 어딜 투자를 하든지 해서 100만 달러를 1000만 달러 이상으로 불릴 궁리를 할 것이다.

그리고 혼자만 살 때는 돈 욕심 없이 자급자족으로 만족할 것처럼 지내던 사람이라도 처자식이 생기고 나면 어지간해서는 생각이 달라진다. 나는 상관없지만 내 자식에게 남들만치 밥 사주고 용돈 주고 비싼 학교에 옷 등등을 차려 주지 못한다면..? 그때부터는 어쩔 수 없이 돈독 오르게 된다. 그게 현실이다.

자 그럼, 돈으로 돈을 버는 것에 대해 성경은 뭐라 말할까?
일단 구약 율법에서 내가 느끼는 뉘앙스는.. 정말 천하의 개쌍놈 급의 절대 하지 말아야 할 몹쓸 짓까지는 아니지만, 어지간해서는 그러지 마라. “이방인들을 상대로라면 몰라도 동족간에는 최대한 아량을 베풀어라. 이자 따지지 말고, 못 돌려받을 걸 감수하고라도 관대하게 꿔 줘라. 손해분은 내가 친히 갚아 주겠다” 정도인 것 같다.

이건 십일조만큼이나 “신정국가+유대 민족의 믿음 테스트+이 땅에서의 복” 문맥이다. 그러니 신약 시대엔 자선행위 차원에서, 혹은 교회 지체들끼리 적용 가능한 가이드라인이 될지 몰라도, 굳이 이방인 세상 정부에서 행정법 수준의 강제 사항이 될 필요는 없을 것이다. 오히려 달란트/므나 비유에서 “하다못해 이자라도 받아 왔어야지?” 같은 주인의 책망이 있는 걸 보면, 성경도 돈 자체가 악이라고 말하지 않는 것만큼이나 돈으로 돈을 버는 것 자체가 악이라고는 안 하는 듯하다.

성경은 명백히 사유재산과 free market, 빈부격차를 인정한다. 사실, 돈으로 돈을 불리는 것도 아예 불가능하다면 투자라는 게 생길 수 없고 경제가 성장할 수가 없어진다. 절대적인 빈부격차 자체는 더 커질지 몰라도, 그래도 입에 풀칠도 못 하던 가난뱅이를 중산층으로, 그리고 지금 부자는 훨씬 더 큰 부자로 만드는 게 낫지 않은가?

부자가 가진 돈이 고용과 일자리를 더 만드는 발전적인 쪽에도 부분적이나마 쓰이는 게 더 나은가, 아니면 걍 오로지 부자들의 유흥과 사치에만 돈이 쓰이는 게 더 나은가? 이런 관점에서 봐야 한다. (“부자들 돈을 강제로 뺏어서 분배해야 된다” 이건 영락없이 빨갱이 생각이 되는 거고.)

또한 생각해 볼 점은, 성경에는 이자에 대해서 정확한 가이드라인도 안 나온다는 점이다. 하나님이 인정하는 금리나 사채 이율 한도는 최대 몇 %이고 그 이상은 악.. 뭐 그딴 얘기는 없다. 음악이나 옷차림에 대해서도 추상적인 원칙만 있을 뿐 디테일한 적용 방법은 안 나오는 것과 마찬가지 맥락이다.

그 숫자놀음이 얼마인지는 중요하지 않으며, 그게 얼마이든 전혀 무관하게 인간의 불완전한 경제 제도가 인간의 죄성과 맞물리면 문제와 폐단이 생길 수밖에 없기 때문일 것이다.
“서로 사랑하는 것 외에는 누구에게든지 어떤 것도 빚지지 말라”, “돈을 사랑함이 모든 악의 뿌리”, “급히 부자가 되려 하는 자는 악한 눈을 가졌으므로...”, “탐욕은 우상 숭배”처럼 인간의 자유의지와 사유재산은 존중하되, 경제와 관련된 인간의 죄악을 제어하는 말씀은 성경에 이미 충분히 있다.

그런데 이게 자발적으로 이행되지 않고, 각 개인의 이기적인 행동이 집단 전체의 이익이 아니라 공멸로 가는 경우도 있으니, 비효율적인 줄 뻔히 알면서도 정부가 시장에 개입해서 최저임금이니 무슨 비율이니 하는 걸 강제로 정하고 복지라는 명목으로 세금을 꽤 많이 걷어 가는 일도 생기는 걸로 보인다. 참 절대적인 답이 없는 문제 같다.

NOTES:

1. 은행이 불안하다 싶으면 개인 예금주들은 전부 몰려와서 자기 돈을 빼려고 몰려올 것이고, 이러면 아까 말했듯이 그 어떤 은행도 버티지 못한다. 은행은 그런 상황을 감안하고 운영되는 기관이 아니다.
하지만 각 개인이 자기 예금을 전부 인출하려는 행위 자체는 법적으로 하나도 전혀 문제될 게 없는 행동이다. 마치 기업이 생존을 위해 구조 조정을 하고 경쟁력 없는 기업은 시장에서 도태하는 것만큼이나, 그리고 전쟁터에서 군인이 무장한 다른 적군(포로나 항복한 군인, 민간인이 아니라)을 죽이는 것만큼이나 합법이다.

2. 흔히 "올림픽 메달리스트 운동 선수의 자녀가 또 올림픽 금메달리스트가 될 확률하고, 재벌의 자녀가 계속 재벌로 있을 확률이 동일한 사회가 좋은 사회이다" 이런 말이 나도는 듯하다. 무슨 취지로 하는 말인지는 이해하겠으나 거기에 마냥 100% 공감할 수는 없다. 재능과 재화는 근본적으로 동일한 자산이 아니기 때문이다.

세상에서는 돈을 많이 가진 사람, 소득이 높은 사람에게 절대적인 액수로나 혹은 비율로나 어쨌든 더 많은 액수의 세금을 매긴다.
그러나 시험 쳐서 100점 맞고 올림픽 같은 대회에서 1등을 하는 등, 재능이 뛰어난 사람에게 재능이 뛰어난 것 그 자체만으로 세금을 부과하지는 않는다. 그랬다가는 재능의 발휘에 도무지 동기 부여가 되겠는가? 세금을 부과하더라도 그건 상금에서 세금을 일부 공제하는 형태일 뿐이다.

굳이 돈이 아니라 소위 '열정페이, 재능기부' 같은 것도 철저하게 당사자가 자발적으로 하는 것이지, 그것이 세금을 걷는 것처럼 법적으로 강제되지는 않는다. 이것이 재능과 재화의 차이인 것이다.
부모가 똑똑해서 자녀를 좀 더 편하게 살게 해 주려고 재산을 많이 물려 주는 것 자체가 죄악이라 할 수 있을까? 내 자녀였으면 그러고 싶은 생각이 들지 않겠는가?

물론 자녀가 인격도 의사결정권도 일체 없이 부모의 소유물과 다를 바 없이 취급하는 생각은 잘못되었지만, 그렇다고 부모와 자녀는 법적으로 아무 상관도 없는 완전히 다른 사람이니 부모의 재산은 한 푼도 안 남기고 몽땅, 마치 무연고 사망자의 재산마냥 국고로 환수해 버린다면 그것도 올바른 처사이겠느냐 말이다.

또한 부모가 재벌이라고 해서 그 자녀 세대까지 재벌인 게 마냥 100% 보장되는 것도 아니다. 기업은 치열한 세계 시장에서 언제 도태될 지 모르니, 경영진은 수많은 종업원들에게 꼬박꼬박 월급을 주기 위해 맨날 이대로는 안 된다며 위기 드립을 치고, 때로는 좀 더러운 짓도 하고 여론 관리도 하고, 미래에 뜨는 아이템을 예측하고 사업 방향을 구상해야 한다. 재벌이 유지될 확률이 대대로 올림픽 메달리스트가 나올 확률과 그렇게까지 크게 차이가 나지는 않을 수도 있다는 뜻이다.

문제를 이런 관점에서 볼 수도 있어야 한다. 나야 일개 학생 겸 월급쟁이일 뿐이고 무슨 대기업 재벌 재계 인사하고는 하등 아무 관계도 없는 처지이지만, 나중에 내가 무슨 있는 돈 없는 돈 꼬라박아서 사업을 해서 종업원을 고용하는 처지가 되는 상황을 상상해 보면, 지금 사회 구조가 마냥 근로자만이 약자이고 모든 기업주가 그저 갑질을 일삼는 악당이라고 여겨지지는 않는다.

3. 난 지금까지 정치관이나 역사관 관점에서 우리나라 체제를 방어하는 글을 쓰는 편이었다.
하지만 알고 보면 우리나라의 경제관을 부정하는 불순세력의 공격도 많다. 자기들도 입고 있는 큰 혜택에 대해서는 입 싹 씻고 작은 부작용과 폐해만 자꾸 부각시키면서 우리나라를 점점 사회주의 공산주의 체계로 바꾸려고 하는 시도들.

여기에 대해서도 이론적으로 조금씩 공부하고 무장을 해야 할 필요를 느낀다. 난 인간의 이기심과 욕심을 있는 그대로 인정하면서 그나마 그걸 모두가 잘살고 파이의 크기를 키우는 쪽으로 유도하는 경제 체제를 지지한다. 인간을 감히 성선설적으로 보면서 불가능한 것을 가능하다고 선동하는 속임수에 속지 않는다. 기업이 노동자를 착취하는 세상은 국가가 개인을 착취하는 세상에 비해서는 비교할 수 없이 훨씬 더 천국이다.

Posted by 사무엘

2015/05/22 08:34 2015/05/22 08:34
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1096

등산의 재발견

5년 전에 했던 얘기를 오랜만에 다시 늘어놓자면, 본인은 일단 운동이라는 걸 굉장히 싫어한다.
괜히 고생스럽고 힘만 들고 딱히 성취감이 느껴지는 게 없고, 이걸 해도 들인 노력에 비해 딱히 체력이 향상되거나 건강이 좋아진다는 느낌이 '거의'(전혀는 아니겠지만) 안 들어서이다. 가성비가 안 맞다.

초중고 시절을 통틀어서 체육 시간은 내가 제일 싫어하는 시간이었다.
(1) 애들이 왜 이렇게 연예인에게 열광을 하는지, 그리고 (2) 공이라는 도대체 왜 차고 뛰어다니는지 뭔 재미로 하는지를 이해를 못 한 채 학창 시절을 보냈다.
구한말 때 서양 선교사들이 볼 차고 노는 걸 보면서 조선 양반들이 “ㅉㅉㅉ 하인을 시켜서 주워 오게 하면 될 걸 왜 저리 뛰어다니고 고생이냐” 라고 비아냥거렸다는 게 실화인지는 모르겠지만, 난 어쨌든 그 양반들 심정은 이해한다.

하물며 등산은 두 말할 나위도 없다. 난 “어차피 내려갈 걸 왜 힘들게 올라가냐”라는 지극히 경제적인 사고방식의 신봉자이다.
난 어떻게 '운동 중독'이라는 게 있을 수 있는지를 이해 못 한다.

러닝 머신?
쭉쭉 달리면 서울 지하철 터널이나 중앙선, 경부고속선의 전경이 화면에 펼쳐지는 러닝머신이라도 있지 않다면 동기 부여가 안 될 것 같다.
그나마 난 술· 담배를 전혀 안 하고, 먹고 자는 걸 스트레스 없이 잘하고 지내며, 또 전철역에서 회사까지 편도로 3km가 좀 안 되는 거리를 자전거를 타는 게 최소한의 건강 유지 활동이다.

하지만 이것만으로는 체중을 줄이는 데 부족하고 언제까지나 이렇게 살 수는 없는지라..
미리 운동 안 해 놓으면 40대가 넘어서 고생한다는 반 협박성 얘기에 마지못해 어쩔 수 없이, 얼마 전부터 가끔 등산을 시작했다.

이건 뭐 안 믿어지지만 어쨌든 반신반의하며 그물을 던지는 베드로의 심정과 같고(눅 5:5),
마지못해 일단 요르단 강에 가서 목욕을 한 나아만 장군의 심정과도 같다(왕하 5:13-14).
젊었을 때 실컷 개고생 해서 돈 벌어 놓고 늙어서는 병원비로 그 돈을 다 탕진하며 가족에게 민폐 끼치는 바보짓은 나도 하고 싶지 않아서 말이다.
북한산 정상에서의 맥북 인증샷도 이런 맥락에서 만들어진 사진이다.

그랬는데 요즘은 피할 수 없으면 즐기자는 차원에서 발상을 좀 바꿔 긍정적으로 생각해 보기로 했다.
나는 기본적으로 신체 활동을 귀찮하고 싫어하지만, 여기에는 크게 두 가지 예외가 있다.

1. 난 운동을 싫어하지만 그렇다고 게으르지는 않으며, 성질이 급하다. 할일 없이 기다리는 것을 움직이는 것보다 더 싫어한다. 고로 평소에 달리기를 아무리 싫어하더라도, 파란불 신호가 곧 끝나 가거나 지하철 문이 닫히려고 하면 필사적으로 뛰어가서 건너거나 탄다.
2. 난 뭔가 동기와 의미 부여만 되고 나면 움직이는 것도 삽질로 생각하지 않으며, 얼마든지 한다.

그래서 2번 원칙에 의거하여, 등산을 괜히 삽질만 하는 운동이 아니라 여행과 지리 답사로 자가승화할 생각이다.
기왕 등산을 가는 거면 오르기로 한 산에는 어떤 의미가 있고, 여기 주변은 조선 시대엔 어떤 지역이었는데 나중에 어떻게 바뀌었고 우리나라 정부 수립 이래로 어떤 개발 역사가 있었는지 같은 걸 모두 공부를 하면서 가는 것이다.

예전에 청계산을 오르던 중엔, 지금으로부터 30년쯤 전에 C123 수송기가 성남 서울 공항에 착륙하려다가 안개 때문에 시야를 잃고 여기 근처에 추락해서 탑승자가 모두 사망했다는 표지판을 본 적이 있다. 그런 것들이 본인의 기억에 남아 있다.

또한 본인은 서울 교외의 그린벨트 지역에 대해서 굉장히 동경을 하고 있다. 지방도 23호선의 왼쪽에 있는 성남의 그린벨트, 그리고 서울 서초구와 강남구 최남단에 자리잡은 그린벨트 말이다. 철도가 없는 이런 오지들은 왜 분당이나 판교 같은 신도시와는 달리 개발되지 못했는지도 세세히 알고 싶다.
서울 남부의 산들, 그리고 분당의 동쪽을 가로막고 성남과 광주를 분리하고 있는 산들도 생각해 보면, 주변엔 가 보고 싶은 산들이 온통 널린 셈이다.

그런 의미에서 올해 초엔 타워팰리스가 내려다보이는 서울 강남 일대의 모 야산을 정상까지 오르고 왔다. 인터넷 항공 사진으로만 보던 곳을 실제로 가 보니 힘들지만 재미있었다.
타워팰리스와 구룡마을은 같은 시와 같은 구에 사는 사람끼리도 이 정도로 빈부격차가 존재한다는 걸 단적으로 보이고 있다.

사용자 삽입 이미지

이 산은 이남과 이북이 완전히 단절되어 있다. 한쪽 방향으로는 여러 등산로가 개방되어 있는 반면, 정상에서 반대편으로 넘어갈 수는 없다. 건너편은 문화 유산과 군사 사실 보호라는 명목으로 능선을 따라 철조망이 빽빽이 쳐져 있다. 산 절반이 이렇게 틀어막혀 있는 곳은 청와대를 감싸고 있는 북악산 말고는 이것 정도밖에 없을 것이다.
난 왜 그렇게 됐는지, 건너편에 무엇이 있는지 알고 있지만, 자세한 내막을 이 자리에서 얘기할 수는 없다. ㅎㅎ 직접 가서 보니까 역시 감쪽같이 잘 은폐해 놨더라.

하긴, 여기 말고도 서울 시내를 감싸는 산들은 다 이런 식으로 수도 방위를 위한 군사 시설이 조금씩 비치되어 있는 것 같다.
나보다 덜 헉헉대고 덜 쉬고도 더 빨리 오랫동안 산을 잘 오르는 사람들이 좀 부럽긴 했다.
그래도 등산을 조금이라도 철도와 연관지어서 덜 괴롭게 하는 방법을 스스로 찾아내서 만족스럽다.

끝으로, 높이 300미터 남짓한 산의 정상이 이 정도라면, 비슷한 높이인 와룡산에서 내려오는 건 일도 아니었겠다는 생각이 들었다. 일명 개구리 소년이라고 알려진 옛날 성서 초등학교 애들은 나쁜 흉악범에게 불의의 사고를 당해서 죽었지, 자기들끼리 스스로 길을 잃거나 조난 당한 건 확실히 아닌 것 같다.

Posted by 사무엘

2015/05/19 08:27 2015/05/19 08:27
, ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1095

요즘은 거의 찾을 수 없는 관행인데, 옛날에 메뉴가 달린 Windows용 프로그램 중에는 파일, 편집 같은 다른 메뉴는 왼쪽에 있는 반면 '도움말' 같은 마지막 메뉴 하나만은 맨 오른쪽에 따로 떨어져서 배치된 것들이 종종 있었다. 그게 유행이었다. 특히 16비트 Windows 3.x 시절에 말이다.

사용자 삽입 이미지

음성학 연구용으로 많이 사용되는 사운드 편집기 프로그램인 프라트(Praat)는 최신 버전까지도 그런 형태라는 게 흥미로웠다. 단어 배치로 치면 단순히 space가 아니라 왼쪽 정렬 탭과 오른쪽 정렬 탭으로 구분된 셈이다.

사족을 덧붙이자면, 얘는 도움말 메뉴뿐만이 아니라 프로그램 외형이 전반적으로 좀 범상치 않아서 혹시 qt나 자바 같은 범용 프레임워크로 GUI를 만들었나 하는 생각이 들었다. 허나 Spy++로 들여다보니 그렇지는 않아 보인다. 다만 컴파일러는 Visual C++이 아니라 gcc 계열을 써서 빌드 됐더라. 그리고 얘 자체가 크로스 플랫폼 프로그램이기도 하고 도움말까지 자체 구현인 걸 보면, 독자 개발한 자체 GUI 라이브러리 자체는 사용한 것으로 보인다. (그리고 이 정도 엄청난 프로그램이 무료 공개라는 게 참 대단하다!)

그나저나, 오른쪽에 따로 떨어진 메뉴 아이템은 어떻게 구현된 걸까?
본인은 아무 근거 없이 정말 막연하게.. 왼쪽의 맨 마지막 아이템과 오른쪽으로 밀려난 첫 아이템 사이에 "아마 separator 아이템이 있는 게 아닐까?"라고 오랫동안 생각했다. 하지만 실제로 이걸 넣어 보니, 아이템과 아이템 사이에 공간만 더 생길 뿐 정렬 방식이 달라지지는 않았다.

이걸 구현한 방식은 허무할 정도로 간단하다. 바로 체크/disabled 등을 나타내는 그 상태 플래그에 MFT_RIGHTJUSTIFY라는 정보도 같이 들어있다. 즉, 플래그에는 자신의 상태도 들어있고 속성도 같이 들어있는 것이다. 그건 뭐 윈도우 스타일도 마찬가지이지만.

여러 메뉴 아이템에 그 스타일이 있으면, 스타일이 등장하는 첫 아이템부터 나머지 메뉴 아이템들은 죄다 오른쪽에 정렬되어 나온다. 가로로 배치된 메뉴 말고 세로로 배치된 메뉴 내지 우클릭 팝업 메뉴 같은 데서는 이 플래그는 아무 기능도 하지 않는 잉여이다. 그걸로 끝이다.
마치 콤보 박스의 extended UI 스타일만큼이나 자주 보기 쉽지 않은 UI이다 보니, 더 특별한 방법이 있는가 싶었는데 다소 실망스럽기까지 했다.

예전에 메뉴에 대해서 한번 글을 쓴 적이 있었는데 그 당시에는 오른쪽 정렬 메뉴 아이템에 대해서는 미처 생각을 못 하고 있었다. 그러니 이번에는 메뉴와 관련해서 non-client 영역 얘기나 좀 더 하고 글을 맺겠다.
메뉴가 표시되는 영역다 응용 프로그램이 자체적으로 뭔가 출력을 하는 예로 옛날에 Freecell 게임이 있었다. 남은 카드의 수가 메뉴의 오른쪽 끝에 나타났기 때문이다.

사용자 삽입 이미지

프리셀은 유사품인 카드놀이(solitaire)와는 달리, 처음부터 32비트 코드 기반으로 개발되어 옛날에 Win32s와 함께 제공되기도 했던 역사적인 유물이다.

그런데 Windows XP로 오면서 살짝 옥에티가 생겼다.
XP의 기본 luna 테마에서는 가로로 배치된 메뉴 표시줄은 회색이다. 하지만 펼쳐진 메뉴 창은 흰색이다. 고전 테마 때는 이런 일이 없었는데 역사상 처음으로 메뉴 표시줄의 배경색과 메뉴 창의 배경색이 서로 달라진 것이다.
허나 프리셀은 "남은 카드 수"를 메뉴 창의 배경색으로 출력하는지 옅은 회색 배경에 흰색 배경으로 글자가 찍혀서 뭔가 이질감이 생겨 있다.

그래서 Vista인가 7부터 프리셀은 화면 하단에 상태 표시줄이 별도로 추가되었고, 남은 카드 수는 거기에다 출력하게 동작이 바뀌었다.

그림을 그리라고 운영체제가 보장을 해 준 클라이언트 영역 말고, 창의 프레임이나 제목 표시줄, 메뉴 표시줄 등은 논클라이언트(non-client) 영역으로 분류된다.
여기는 일단은 운영체제가 알아서 모든 처리를 해 준다. 그릴 일이 있을 때 WM_NCPAINT라는 메시지를 날려 주기는 하지만, 어지간해서는 응용 프로그램이 그걸 건드리지는 않는 게 좋다.

전에도 한번 말했듯이 MS Office는 95 시절에 캡션 바(제목 표시줄)를 독자적으로 그러데이션을 입혀서 그리곤 했다. 이건 1회 유행으로 끝났고 그러데이션은 나중에 Windows 98에서 완전히 전체적으로 적용되었다.
더 옛날 16비트 시절에 시스템 차원의 훅킹이 더 쉽던 시절엔 모든 창의 캡션에 응용 프로그램이 자신의 기능을 수행하는 버튼 같은 것도 막 집어넣기도 했던 것 같다.

허나, 그 동작을 어설프게 가로채면, Windows가 버전업 되어서 논클라이언트 영역의 비주얼이 또 바뀌었는데 응용 프로그램은 동기화가 안 되어서 외형이 이상해지고 프로그램이 오동작 할 수가 있게 된다.
일례로, 과거에 아래아한글 97은 논클라이언트까지 완전히 독자적으로 GUI를 그리던 대표적인 프로그램이다. 그런데 Windows XP 테마에서는 윈도우의 논클라이언트 가장자리에 둥그런 모서리 region이 적용되었다.
하지만 아래아한글 97은 기본 region은 딱히 건드리지 않고 그림만 직사각형 region을 기준으로 곧이곧대로 그렸기 때문에 가장자리가 짤려서 대화상자에 약간 glitch가 있었던 것이다.

하지만 Windows는 맥 OS처럼 GUI가 선택의 여지가 없이 독재 획일화인 운영체제는 아닌지라 당장 MS 자신들부터가 Office나 Visual Studio 같은 중요한 밥줄 프로그램들은 운영체제의 표준 GUI 따위는 전혀 안 쓴다.
특히 리본 UI는 논클라이언트를 완전히 제멋대로 재정의해서 쓴다. 논클라이언트 영역에 적용되는 Aero 투명 효과까지 세밀하게 제어하면서 말이다. 지금은 Aero가 폐기돼서 별 의미는 없어졌지만 말이다.

MS 같은 GUI 잉여짓을 할 여력이 없는 프로그래머라면 WM_NCPAINT를 다룰 일은 별로 없겠지만, custom 컨트롤을 만드는 경우라면 불가피하게 이 메시지를 직접 처리해야 하게 된다.
공용 컨트롤 6 매니페스트가 적용되었더라도 윈도우의 테두리는 그냥 가만히 놔 두면 새끈한 테마 형태가 아니라 옛날의 밋밋한 기본 스타일로 그려지기 때문이다. OpenThemeData와 DrawThemeBackgroundEx 같은 함수로 수동으로 그려야 한다.

이런 부류의 글은 결론이 언제나 동일하다. Windows 프로그래밍은 재미있더라.

Posted by 사무엘

2015/05/16 08:25 2015/05/16 08:25
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1094

서해대교 29중 추돌 참사

우리나라는 서해를 건너는 두 개의 대형 교량 위에서 안개가 자욱하게 낀 날에 초대형 연쇄 추돌 교통사고를 한 건씩 경험하게 됐다. (2006. 10. 서해, 2015. 2. 영종)

두 다리는 각각 2000년 11월 10일과 20일에 개통해서 개통 시기도 참 묘하게 비슷하다. 딱 그 중간인 11월 14일이 2001학년도 수능 전날인 동시에 비둘기호 열차가 마지막 운행을 마친 날이긴 했는데, 그건 일단 이 글에서는 논외로 하고.

서해대교에 대해서 좀 더 자세히 서술하자면, 이 다리는 내게 소설 <상록수>와 소설가 심 훈을 떠올리게 한다. 일제 강점기 때는 서해대교와 서해안 고속도로가 없었으니, 당진에서 안산 샘골을 찾아갈 때 저 작가가 훨씬 더 고생을 해야 했을 것이다.
그 반면, 오늘날은 교통이 참 편리해졌다.

2006년 개천절은 북한이 핵실험 예고 선언을 했으며, 반 기문 씨가 유엔 사무총장 후보로 출마하네 마네 하던 날이었다.
그랬는데 그 날 아침, 짙은 안개 속에서 대형 트럭이 앞서가던 1톤 트럭을 추돌했으며, 최초 사고 유발 차량들이 차를 갓길로 안 빼고 우왕좌왕 하는 사이에 뒤따라 오던 차들이 연쇄적으로 앞 차를 들이받았다.

영종대교 때와는 달리 서해대교 사고에서는 차에서 화재가 발생하는 바람에 사고 현장은 정말 헬게이트로 바뀌고 피해 규모가 더욱 커졌다. 공장에서 갓 출고된 새 승용차 여러 대를 싣고 가던 트레일러에도 불이 옮겨 붙었다. 그래서 거기 실려 있던 승용차들은 미처 팔려 나가기도 전에 깡그리 잿더미가 됐다.

사용자 삽입 이미지

하지만 물적 손실보다 더 심각한 건 인명 피해이다. 초기에는 사망자가 총 11명이라고 집계되었지만 전신에 중화상을 입고 치료를 받던 남성 1명이 치료 3개월 만에 결국 사망하면서 사망자는 최종적으로 12명으로 늘었다. 현장에서 혹은 구조된 후에 사망한 사람이 7명, 스스로 대피하던 도중에 2차 사고를 당해 사망한 사람이 5명이었다고 한다.

다른 차량에서는 보통 1대당 운전자 1명꼴로 사망자가 나왔지만, 유일하게 탑승자 일가족 3인이 전원 사망한 차량이 있었다. 이건 대형 차량들 사이에 끼여서 처참하게 으스러지고 완전히 박살이 난 소형 승용차였다. 그 상태로 불까지 붙어 활활 탔으니 탑승자는 도저히 살아 있을 수가 없었을 것이다.

바로 저 차에서 운전자의 아내와 아들은 현장에서 즉사했으며, 당사자만이 목숨만 겨우 건졌지만 나중에는 그도 사망했다. 화상이 워낙 심각한 상태였기 때문에 더 손을 쓸 수가 없었다. 고인은 마지막 순간까지 아내와 아들도 역시 생존해서 자신과는 다른 병원에서 치료를 받고 있을 거라고 생각했다고 하니 참으로 안타까운 일이 아닐 수 없다.

2차 사고의 희생자 중에서도 기가 막힌 경우가 있다. 바로, 차량과 다리 난간 방호벽 사이에 끼인 채로 탈출을 못 하고 그대로 화마에 휩쓸린 사망자가 2명이나 있었기 때문이다.
당시 사고 현장 사진을 보니, 벽이 딱 그 지점만 사람 모양으로 검게 그을려 있어서 더욱 섬뜩하게 느껴진다.

이 사람들은 사고 직후에 현장에서 즉사나 기절을 한 게 아니라, 제 발로 대피하던 중에 변을 당했다.
그냥 사고 현장 주변만 배회하고 있었을 뿐인데 뒤에서 오는 차들로 인해 추가 추돌 사고가 나면서 근처의 차들이 앞으로 밀려나고, 이 때문에 정말 운이 나쁘게도 방호벽과 차량 사이에 몸이 끼인 것이다.

사용자 삽입 이미지

서해대교 사고에 대해서는 2007년에 KBS 스페셜에서 사건을 CG로 잘 재현하고 분석한 다큐멘터리가 있어서 그게 유튜브와 각종 동영상 포털 사이트에서 나돌고 있다. 이 글에서 언급한 사망자 관련 정보의 출처도 여기이다. 대형차에 끼여서 사망한 3명(빨강), 그리고 트럭과 방호벽 사이에 끼인 채 사망한 2명(파랑)을 모두 확인 가능하다.

이런 사고 장면을 보면, 안개, 특히 해무는 살얼음 빙판 이상으로 위험한 존재이고 한 치 앞이 안 보일 정도로 안개가 너무 짙을 때는 애초에 고속도로 같은 데에 차를 끌고 나가지 말아야겠다는 생각을 하게 된다. 비록 그렇게 하기가 말처럼 쉽지는 않겠지만.

그리고 저런 데서 사고가 났다면.. 니가 10% 더 잘못했네 마네 같은 거 안 따져도 좋으니, 차량이 아직 운행 가능한 상태라면 걍 닥치고 차부터 가장자리로 빼야겠다 싶다. 100미터, 200미터 뒤로 거슬러 가서 삼각대를 놓고 올 배짱 같은 게 없다면 말이다. 또한, 초기의 단순 접촉/추돌 사고 정도라면 차가 운행 불가능한 상태가 되지는 않았을 테니까.

서해대교와 영종대교에서 9년 간격으로 사고가 한 번씩 났는데, 다음에는 이들보다 훨씬 더 긴 다리인 인천대교에서 시즌 3이 발생하지 않기를 간절히 바랄 뿐이다.

Posted by 사무엘

2015/05/13 08:28 2015/05/13 08:28
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1093

여러가지 글꼴 생각

1.
요즘 대세가 복고풍 타이포그래피인지? 옛날목욕탕체, 배달한나체가 정말 인기 많다. 영화 국제시장도 그 성격상 복고풍 서체로 포스터가 만들어졌다.
옛날에는 복고풍 서체라 하면 정말로 궁서체와 휴먼옛체 정도밖에 선택의 여지가 없었는데 이런 분야에도 다양한 서체가 존재한다는 건 그만큼 우리나라가 문화적으로 풍족해졌음을 의미한다. 게다가 라틴 알파벳과는 달리, 한글 서체는 주 사용 인구가 1억도 채 안 되는 내수 시장에서밖에 수요가 없는데도 말이다.

한글에 대해서 옛날 스타일 서체를 꾸준히 고집하고 있는 곳이 최소한 두 곳 떠오르는데
하나는 철없는 전직 부사장이 저지른 땅콩 회항 사건 때문에 이미지를 제대로 구겼던 대한항공이고, 그리고 다른 하나는 육사 부대 마크이다.

사용자 삽입 이미지

비행기 동체의 윗부분에 큼직하게 KOREAN AIR라고 써 놓은 거 말고, 앞부분 아래에 자그맣게 '대한항공'이라고 쓴 부분이 내게는 오래 전부터 인상깊게 와 닿았다. 저 한글 로고그래피는 대한항공이 지금과 같은 치약 하늘색 도색과 영문 CI를 도입하기 전부터 계속 써 오던 물건이다.

육사 부대 마크는 무려 1947년부터 써 오던 것이니 보수적인 군대에서 앞으로도 당연히 계속 쓸 테고.
대한항공이든 육사든, 한번 정한 서체는 자기 정체성을 걸고 안 바꾸고 계속 썼으면 좋겠다.
개인적으로는 서울 지하철 초롱테크 지하철체.. 시각적으로 아무 문제 없는데 무단으로 뜯어고치고 바꾸는 거 마음에 안 든다.
그나저나 옛날 철도 간이역 역명판 서체들도 디지털로 복원하고 싶다. 자료를 많이 모아야 할 텐데.

2.
요건 출근길 지하철 안에서 본 광고판이다.
이 정도면 복고풍 서체가 아니라 혹시 북한 서체이지 않나 싶어서 원전을 찾아보니..
ㅇ의 모양, 그리고 '교'의 모양이 북한 서체를 아슬아슬하게 비껴 가긴 한다.
하지만 첫인상이 여전히 서로 굉장히 닮아 보인다.

사용자 삽입 이미지

3.
베트남은 언어는 중국어와 비슷하게 성조도 있고 1음절 1형태소 1글자 고립어 형태인 것 같은데 그럼에도 불구하고 문자는 프랑스 선교사의 주도로 개혁을 해서 한자를 완전히 없애 버리고 라틴 알파벳을 쓴다. 그래서 분위기가 이색적이었다.
단, 성조를 표기하려고 알파벳의 위· 아래에 이상한 부호들이 많이 달려 있다.

그리고 베트남이 자체적으로 서체를 만들 만한 나라는 아니니, 간판들을 보면 다들 MS Word 95나 아래아한글 96처럼 10년, 20여 년 전부터 기본으로 내장돼 있던 듯한 1990년대 기성 서체들 위주이다.
Cooper Black을 정말 많이 봤고, 그 외에 Copperplate Gothic, Impact, Matura MT Script도 있었다.
그 글꼴이 처음 만들어지던 시절에는 굉장히 참신한 디자인이긴 했지만, 이것도 익숙해지니까 식상하다.

사용자 삽입 이미지

그건 그렇고, 이건 뭘까?

사용자 삽입 이미지

대문자 A의 외곽 획이 활처럼 둥글게 휜 윗줄의 서체도 많이 쓰이는 편이었는데 개인적으로는 좀 낯설다. 그 반면 아랫줄 서체는 우리에게도 비교적 친숙할 것이다.
바로 한미디어에서 개발하고 MBC가 2000년대 초까지 자사 CI에다 썼던 문화방송체이기 때문이다.
저 사람들이 설마 한국산 서체를 썼을 리는 없으니 저것도 영문 원도가 따로 있는가 보다. 알고 보니 원조는 Banco라는 별도의 서체라고 한다.

4.
본인은 직접 써 본 경험은 전무하지만, 클래식 맥 OS에 대해 어느 정도 동경을 하고 있다. 특히 쟤네들의 기본 서체가 참 개성 있다고 생각해 왔다. 아래 그림에서 File, Edit 같은 메뉴, 그리고 System Tools/Folder를 표현하는 서체 말이다. 맥 OS의 Windows System 같은 서체나 마찬가지이다.

사용자 삽입 이미지

이 맥 OS의 서체 이름은 Chicago이다. Windows 95의 코드명인 그 시카고. 나중에는 비트맵뿐만이 아니라 윤곽선 글꼴로도 만들어졌다. 특히 V와 w 같은 글자의 모양을 보노라면 비트맵과 윤곽선 글꼴이 싱크가 잘 맞는 것 같다.

사용자 삽입 이미지

그러고 보니 타이포그래피와 디자인을 좋아하고 컴퓨터를 하드/소프트 독점 일체형으로 만들었던 애플에서는 OS가 이름이 없이 그냥 System이고 애플 전속 서체는 이름이 있었던 반면, 처음부터 소프트웨어에 초점을 뒀던 마소의 Windows는 프로그램이 이름이 있고 서체는 딱히 이름이 없이 그냥 System이다. 아주 재미있는 차이가 아닐 수 없다.

Windows쪽 얘기를 좀 하자면, 1과 2 시절에는 시스템 기본 글꼴이 고정폭이었다. 그러다가 3.0때부터 오늘날과 같은 가변폭 System이 도입되고 예전의 글꼴은 그 유명한 Fixedsys라는 이름으로 개명당했다. 모노크롬 시절에는 byte align이 힘들어서 성능 오버헤드가 더 크기도 했을 텐데 맥은 처음부터 과감하게 1.0때부터 가변폭 글꼴을 채용했다.

Fixedsys는 Windows 1.0 시절에 비트스트림이라는 유명한 서체 회사에 외주를 줘서 개발한 것인 반면, 오늘날의 가변폭 시스템은 마소에서 자기네 정체성을 담아 자체 개발한 글꼴이다. 그러니 System을 그 모양 그대로 윤곽선화해서 이름을 붙일 법도 했을 텐데 마치 현대 자동차에서 포니, 엑셀, 스텔라 같은 이름에 애착이 없는 것만큼이나 마소에서는 그 옛날 글꼴에는 더 애착을 갖고 있지 않은 듯하다.

이미 구닥다리의 상징에, 시스템 리소스가 다 떨어졌을 때에나 나오는 fallback 이미지가 너무 굳어져서인 듯. 게다가 NT 계열 부터는 리소스 제약도 없어져서 더 볼 일이 없어졌다. -_-;; 동아시아 Windows에서 이상하게 MS Sans Serif 대신 System을 쓰던 구닥다리 Visual C++ 6.0 IDE가 마지막이다.

System, Fixedsys 같은 건 트루타입 글꼴이 개발되기 전부터 도입됐기 때문에 당연히 TTF 형태가 아니다. 그래도 운영체제에 완전히 하드코딩으로 박힌 물건은 아니고, 오늘날도 Windows\Fonts 디렉터리에서 vgasys.fon, vgafix.fon이라고 실물 파일을 확인할 수 있다. 1980년대까지는 '장치 독립적인 글꼴'이라는 개념이 없었기 때문에 신기하게도 글꼴 이름이 저런 형태이다. 맥은 그 시절에 어떠했나 모르겠다.

뭐 그런 것과는 별개로, 본인은 한글 전산화의 역사와 추억이 깃든 과거의 16*16 비트맵 조합형 글꼴들도 윤곽선 글꼴로 리메이크가 많이 됐으면 좋겠다. 이야기체나 둥근모 같은 것들. 가장자리를 동그랗게 혹은 적절한 곡선으로 복원해 주면 이런 것이야말로 진정한 복고풍 서체의 위업을 달성할 수 있지 않겠나 싶다.

Posted by 사무엘

2015/05/10 08:27 2015/05/10 08:27
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1091

지난 2004년 8월에 발사된 수성 탐사선 메신저 호가 그로부터 거의 11년 뒤인 2015년 5월 1일, 수성 표면에 충돌함으로써 장렬히 산화했다. 이것은 굉장히 의미심장한 소식이다.
20세기 중반부터 인류의 우주 개발이 시작된 이래로 수성을 탐사한 우주선은 저 메신저, 그리고 지금으로부터 무려 40여 년 전(1973-1974)에 발사된 마리너 10호 "단 두 기"밖에 없었기 때문이다. 물론 지구와는 공전 주기나 궤도가 다른 행성이 지구로부터 가장 가까워지고 탐사하기 좋아지는 시기가 언제나 있는 건 아니다. 그러니 그 시기를 놓치고 나면 오랜 기간 동안 탐사선을 '안' 보내는 게 아니라 '못' 보내는 면모도 있음을 감안하도록 하자.

마리너와 메신저는 모두 미국 NASA의 작품이다. 소련은 지구로부터 비교적 가까운 천체인 달(최초로 뒷면 촬영)과 금성(수 차례 착륙!) 전문이었지만 그보다 더 안으로 가거나 더 밖으로 가는 일에서는 크게 재미를 못 봤다. 특히 화성은 숱한 시도에도 불구하고 접근 도중 실패하거나 착륙 직후 통신이 두절되는 등 '화성의 저주'라는 징크스가 업계에서 나돌 정도로 악전고투를 면치 못했다. 물론 미국도 실패의 고배를 여러 번 마셨지만 말이다.

그렇게 화성으로 가는 것은 분명 쉬운 일이 아니지만, 태양 쪽 내행성으로 가는 것도 만만찮게 쉬운 일이 아니었다.
수성은 반지름이 달보다 1.4배 남짓밖에 크지 않을 정도로 작은데 태양과는 또 너무 가깝다. 태양은 혼자서 태양계 전체 질량의 99%를 넘게 점유하고 있는 깡패가 아니던가. (태양계의 모든 행성들이 일렬로 쭉 늘어서면 무슨 균형에 문제가 생기지 않을까 하는 걱정은 천지에 할 필요가 없으며 '기우'를 능가하는 쓸데없는 걱정임..;; )

수성을 제대로 관측하려면 탐사선이 수성의 궤도에 진입해서 수성을 뱅글뱅글 돌 수가 있어야 하는데, 저런 상황에서는 탐사선은 수성을 스치기만 한 후 수성보다 훨씬 더 무거운 태양의 중력에 끌려가기 십상이었다. 애초에 탐사선들이 긴 거리를 연료 없이 빠르게 가는 데는 다른 행성의 중력을 이용한 스윙바이 기법을 사용하는데, 중력의 끝판왕인 태양의 영향력를 어떻게 피하고 수성에만 곱게 진입을 할 수 있겠는가?
실제로 마리너 10호는 금방 도착한 대신에 수성과 금성 사이를 몇 차례 근접 비행만 하다가 곧 태양의 궤도로 끌려갔다. 수성의 모든 표면을 들여다보지는 못하고, 전체의 절반 남짓 정도밖에 촬영을 못 했다.

메신저는 이 한계를 극복하기 위해 수성과 금성 사이에서 오랫동안 스윙바이를 하며 감속을 했다. 스윙바이는 보이저나 파이어니어 같은 외행성 탐사선에서는 가속을 위해 사용하며, 특히 질량이 큰 목성 근처에서 가장 크게 가속을 하는 것이 보통이다. 그러나 내행성 탐사선에서는 일종의 역추진 감속을 위해 사용될 수도 있다.
속도를 줄이고 줄인 끝에, 메신저는 선배인 마리너 10호가 하지 못한 수성의 궤도에 사뿐히 진입하는 데 성공했다. 그래서 수성을 4천(신문 기사를 보니 정확히는 4104회) 회가 넘게 돌면서 10만 장이 넘는 분량의 사진을 지구로 보냈다.

그 대신, 이런 속도 조절을 위해 메신저는 수성까지 가는 데, 아니 정확히는 수성의 궤도에 진입하는 데 발사 이후 무려 6년 반이 넘는 시간이 걸렸다.
지구에서 수성은 가장 가까워졌을 때의 거리가 0.6~0.7 천문단위 정도이다. 패스파인더 화성 탐사선(1996-1997)이 최단거리로 약 0.5 천문단위 정도 떨어진 화성까지 가는 데 약 7~8개월이 걸렸음을 감안하면 시간이 정말 오래 걸린 셈이다. 우주선을 수성의 궤도에 진입시키는 건 그만큼 어려운 일이었다.

우주 탐사선들의 이런 묘기들은 다 연료 없이 활강이나 스윙바이만으로 움직여야 한다는 제약 때문에 필요해진 것이다.
가령, 지구 중력의 탈출 속도가 초속 11.2km라고 하는데 이건 현실의 대기권에서는 당연히 실현 불가능한 속도이다(엔진 성능의 한계, 공기 저항). 더구나 이건 한번 발사 후 추가적인 에너지 공급이 없는 스페이스 건 같은 걸 운운할 때에나 의미가 있다. 현실의 로켓들은 끊임없이 연료를 추진해 주기 때문에, 초속 11.2km와는 비교도 안 되는 느린 속도로도 지구 중력을 잘만 탈출하며 우주로 나간다.

그 대신 9.8m/s^2에 달하는 지구의 중력을 탈출하는 게 보통일이 아니기 때문에, 지구만 빠져나가고 난 뒤부터는 우주 발사체들은 연료 부족에 시달린다. 달에 갔다가 지구로 재진입할 때도, 연료 걱정만 없다면야 역추진 감속을 해서 공기와의 마찰열을 줄이면 되며 착륙도 비행기처럼 우아하게 하거나(우주 왕복선), 아예 로켓 발사의 역순마냥 슬금슬금 수직 강하를 해도 된다. 연료가 없이 글라이더 활강만 해야 하기 때문에 진입 각도 걱정을 해야 하고 공기와의 마찰열 걱정을 하는 등, 재진입이 어렵고 위험천만한 묘기가 되는 것이다.

그런 것처럼 내행성 탐사선도 자체적으로 가속을 할 수 있는 연료만 충분하다면 저런 6년 반짜리 삽질을 안 해도 된다. 태양 근처까지 갔다가 자체적으로 속도와 방향을 바꿔서 태양 대신 수성의 궤도에 쏙 들어가도 됐을 것이다. 그 가속 제어를 안 하면 헬리오스 탐사선(1974년 1호, 1976년 2호)처럼 된다.

얘는 이름도 그리스어로 태양이라는 뜻이고, 처음부터 내행성이 아닌 태양의 탐사를 목표로 NASA+서독 합작으로 발사된 탐사선이다. 그러니 스윙바이 감속 같은 거 필요 없고, 수성보다도 태양에 더 가까이 접근하여 가속을 받은 끝에.. 공전하는 속도는 걷잡을 수 없이 빨라져서 초속 무려 70.2km, 시속으로는 25만 2천 km를 넘어갔다. 이것은 외행성 탐사선 중에 가장 빠르게 움직이고 있는 보이저 1호의 진행 속도의 4배를 넘는 수치이다. 메신저 호의 입장에서는 자체 동력 없이 이걸 막아야만 수성의 궤도에 진입할 수 있었던 것이다.

그럼 메신저는 발사체 말고 자체적으로는 엔진 같은 게 전혀 없느냐 하면 그렇지는 않다. 지구의 인공위성에도 궤도 수정을 위한 최소한의 연료 분사 엔진은 달려 있으며 이는 메신저 역시 마찬가지였다.
궤도에 진입하더라도 그 궤도가 언제까지나 평행하게 유지되지는 않는다. 태양으로 끌려가지는 않는 대신 조금씩 수성 쪽으로 쏠리기 시작했고, 이를 보정하기 위한 연료 분사가 필요했다. 구체적인 역학 원리는 본인도 잘 모르지만, 어쨌든 이것 때문에 수성을 반영구적으로 도는 건 기술적으로 안 되는 듯. 메신저 역시 그 연료가 떨어지면서 수성의 지표면에 충돌하게 됐다. 천지창조 이래로 내행성 수성에 인공 구조물이 최초의 흔적을 남기게 된 것이다. 충돌은 수성의 표면 중 지구 쪽이 아니라 반대편 태양 쪽에서 일어났기 때문에, 지구에서 관측할 수 없었다.

인간이 만든 우주 탐사선이 (1) 사뿐히 착륙 또는 (2) 불의의 사고로 추락이 아니라 고의로 충돌한 적이 있는 천체는 달(소련 루나 2호, 1959 이래로 여럿 있음), 목성(NASA 갈릴레오, 1989-2003)에 이어 수성이 하나 추가됐다. 임무가 다 끝나서 충돌시키거나 충돌 그 자체가 목표인 것 둘 중 하나이다. 금성은 마젤란 호가 연료 고갈 후 1994년 10월에 금성의 대기권 안으로 추락하면서 최후를 맞이한 적이 있다. 내 생각엔 잔해가 땅에 닿지도 못했을 것 같다. (금성의 대기압은 90기압이 넘음!)

끝으로, 우주 탐사선의 외형의 차이에 대해 생각할 점이 있다. 외행성 탐사선은 닥치고 태양으로부터 멀어지니 그냥 원자력 발전기가 달렸고 지구의 인공위성은 태양광 발전판이 달렸다면, 내행성 탐사선은 뜨거운 태양열로부터 전자 기기들을 보호하는 커다란 방열판이 탑재되었다는 차이가 있다.
뭐, 지구 인공위성도 모든 부위가 고르게 태양에 노출되도록 자신을 뱅글뱅글 돌려 주는 장치 정도는 들어가 있다. 한쪽만 너무 열받아서 배터리가 폭발이라도 하면 끝장이기 때문이다.

Posted by 사무엘

2015/05/07 08:27 2015/05/07 08:27
, , ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1092

다음 버전 개발 근황

바야흐로 2015년, <날개셋> 한글 입력기 개발 15주년과 더불어 7 다음 8.0으로 도약할 준비를 하고 있는 프로그램 개발실의 근황을 전하도록 하겠다.

1. 편집기의 한글 정규화 방식 수정

<날개셋> 한글 입력기는 첫 버전인 1은 차치하고라도 지금까지 보면, 피보나치 수열에 해당하는 버전에 첫 진입할 때 편집기의 에디팅 엔진에서 한글 처리와 관련된 중요한 변화가 생기곤 했다.
1.0은 2바이트 조합형 코드 기반이었는데 2.0은 한컴 2바이트 코드로 바뀌었다. 그러다 3.0은 유니코드 + 비표준 정규화 방식을 썼으며 5.0은 유니코드 5.2 체계로 바뀌고 비표준 관행이 완전히 없어졌다.

그러니 5.0의 이후부터는 한글 코드 같은 기본적인 부분은 더 바뀔 일이 없을 것 같았는데 사실은 그렇지 않았다. 이번 8.0은 KS X 1026-2가 규정하는 한글 정규화 규칙을 반영하는 알고리즘이 추가되었다. 현대 한글은 오로지 U+AC00 이후의 글자마디로만 표현 가능하고, U+1100대의 자모의 조합으로 표현하는 것은 허용하지 않게 했다. 자모 조합은 미완성 한글이나 옛한글일 때만 가능하다.

Windows Vista와 7은 이전 버전인 XP와는 달리 자모 조합으로 표현된 현대 한글을 글자로 묶어서 표현해 줬는데 이 기능이 8부터는 도로 없어졌다. 사실은 다 똑같이 묶어서 표현해 주는 게 컴퓨터의 입장에서도 처리하기가 더 편하지, 'all 현대 한글 case'만 또 따로 걸러내는 건 불편한 오버헤드가 추가되는 일이다.

하지만 한 한글은 오로지 한 가지 방식으로만 표현되게 하기 위해서 일부러 이런 정규화 규칙이 도입되었다. 그래서 똑같이 U+11??자모를 썼는데 '갬'은 한데 모이지 않지만, 개+ㅁㄱ 옛한글은 한데 모인다. '한'은 모이지 않지만 '아래아 한'은 모이게 되었다.
Windows도, 날개셋도 다 버전 8부터 이 표준을 반영하기 시작했다는 것이 흥미롭다.

사용자 삽입 이미지

2. 수식에서 상수의 원형 보존

<날개셋> 한글 입력기는 먼 옛날 3.0에서부터 64비트 정수의 수식이 도입되어 글쇠배열, 오토마타, 입력 항목(글자판) 전환 같은 여러 용도로 쓰이고 있다.
수식은 크게 상수, 변수, 연산자로 구성되며 상수는 10진수, 16진수, 작은따옴표로 둘러싸인 문자 하나, 그리고 명칭이라는 네 가지 형태 중 하나로 표현할 수 있다.
사용자가 입력한 수식은 내부 데이터 구조로 바뀌어 저장되며, 이 내부 데이터는 지금까지 사용자가 입력한 상수의 형태에 대한 정보를 갖고 있지 않았다. 즉, 모든 상수를 저 네 형태 중 하나로만 획일화하여 표현했다.

그러던 관행이 오는 8.0에서부터 드디어 개선된다. 글쇠배열 수식을 예로 들면, 어떤 글쇠는 0xAC00이라고 입력하고 다른 글쇠는 '가'라고 입력했다면 사용자가 입력했던 각각의 형태가 드디어 보존된다.
서로 형태가 다른 상수와 상수끼리 연산이 수행된다면, 연산 결과를 나타내는 상수의 타입은 대부분 왼쪽 먼저 등장한 상수의 형태를 따른다. 그래서 100 앞에다가 0x0+을 붙여 주면 아무 효과가 없는 0은 없어지고, 100을 16진수인 0x64로 바꿀 수 있다. 그리고 앞에 'a'-'a'+를 붙이면 아스키 번호 100에 해당하는 'd'로 100의 표현 형태를 바꿀 수 있다. 이런 표현 형태는 내부적인 수식의 값 계산 성능에는 전혀 영향을 주지 않는다.

글쇠배열에 e==10 ? 0xAC00: 0xAC11 같은 수식이 있다고 생각해 보자. 10은 유니코드 문자나 날개셋문자와는 관계가 없고 다른 의미를 갖는 상수이기 때문에 굳이 16진수로 표시되어야 할 필요가 없다.
지금까지는 이 10도 싹 다 16진수로 바뀌어서 0xA로 표현되었지만, 이제부터는 사용자가 처음에 10진수로 입력한 상수는 저장도 10진수로 된다.

이런 식으로 작지만 큰 변화가 버전이 7에서 8로 바뀔 때 실현되기 적절한 변화라고 여겨진다. 새로운 정보가 추가되었기 때문에 8.0의 제어판에서 만들어서 바이너리 방식으로 저장한 입력 설정 파일은 이제 이전 버전에서 거의 읽지 못하게 될 것이다.
음수는 16진수, 명칭, 문자 등 다른 모든 형태를 무시하고 언제나 10진법으로만 표현된다. 그리고 왼쪽 피연산자 상수의 형태를 따르지 않는 예외 연산자는 다음과 같다.

  • 콤마: 연산들을 좌에서 우로 순서대로 나열하는 역할만 하고 최종 계산값은 맨 뒤의 값이 되므로, 왼쪽이 아니라 오른쪽의 형태를 선택한다. 즉, (10, 'A', 0x10)+1은 0x11로 최적화된다는 뜻이다.
  • 조건 연산자: A ? B:C 연산은 B와 C중 값으로 채택된 놈의 형태를 따른다.
  • 참/거짓만을 되돌리는 논리 연산자들: 비교, 동등, 논리 AND/OR/NOT은 좌우 피연산자의 형태에 관계없이 언제나 지금 수식이 사용하는 기본 표현 형태를 따른다. 어차피 0 아니면 1밖에 안 돌아오며 (A==B)*100 이런 변태적인 활용을 하는 일은 없으니 별 의미도 없을 것이다.

이런 시스템을 하나씩 설계하는 게 프로그래머로서 참 재미있는 일이다.

3. 미흡했던 부분 개선

(1) 조합 도중에 출력하는 글자와 그 상태로 조합이 종료됐을 때 표시하는 글자가 다를 수 있는 상황에 대한 처리를 이제 거의 완벽하게 마쳤다. 이 작업이 특별히 중요한 이유는 지난 7.9에서 추가된 '글쇠 누름' 날개셋문자와, 고급 입력기의 '초성 지향 도깨비불'이라는 두 가지 기능 때문이다.
전자의 경우 한글 입력과 관계가 없는 글쇠가 눌러짐으로써 한글 조합이 종료되어야 하며, 후자는 중간에는 '하ㄴ'처럼 조합을 표시하다가 나중에는 '한'으로 바꾸면서 조합을 끝내야 하기 때문이다.
이 작업은 편집기, 외부 모듈, 입력 패드의 각 구현체별로 다 따로 해 줘야 했으며 굉장히 어려운 작업이었다.

프로그램이 처음에 설계될 때부터 이런 것까지 다 고려해서 만들어졌으면 얼마나 좋았겠느냐만, 그 시절에 이것저것 다 따져야 했으면 프로그램이 애초에 제대로 만들어질 수가 없었을 것이다. 그래서 <날개셋> 한글 입력기는 개발된 지 15년이 지난 지금까지도 소스 코드의 이곳저곳이 공사중이다. 예전에 대충 만들었던 코드를 엄밀하게 다시 작성하는 작업이 태반이다.

(2) 외부 모듈: 이번 7.9에서는 아시다시피 Windows 8 이상에서 동작할 때 [한0], [A1] 같은 상태 아이콘의 글자 주변에 검은 테두리가 쳐졌는데.. UI 디자인 가이드라인의 하나만 보고 둘은 몰랐다. 테두리는 검은색이기만 한 게 아니라 반투명 알파값이 적용되어야 하더라..;; 그래서 이것도 마저 적용했다.

(3) 텍스트 필터: '코드 번호로 변환' 필터는 문자를 접두사를 붙여서 해당 글자의 다양한 인코딩 번호 형태로 바꾸는 기능을 제공한다. 알파벳이나 숫자는 원래는 변환 대상이 아니지만 바로 앞의 문자가 인코딩 번호로 바뀌었다면, 또 숫자나 알파벳이 연이어 등장하는 것을 막기 위해서 예외적으로 바꾼다. 다시 말해 '0'은 변환하지 않지만 '가0'은 '\xAC00\x30'처럼 바꾼다는 뜻이다.
그런데 이런 유도리가 유니코드 코드포인트로 바꿀 때에만 적용되었고, 다른 인코딩의 바이트 번호로 바꿀 때에는 적용되지 않았었다. 이것을 모 사용자에게서 지적받고 고쳤다.

4. 버그 수정

(1) 외부 모듈 A: 이번 7.9는... 혹시 눈치 채신 분이 계신지 모르겠는데, 외부 모듈에서 제어판을 이용한 뒤 '미저장 확인'이 동작하지 않는 귀찮은 문제가 있었다. 으윽.. 곧바로 버그 잡음. 편집기나 입력 패드는 상관 없다.
<날개셋> 한글 입력기는 한번 만들고 더 고칠 일 없이 끝이다 싶은 부분도 심심하면 여기저기 파내면서 리팩터링 공사를 하고 있다. 그러면서 불행히도 예기치 못한 실수가 들어가곤 한다.

(2) 외부 모듈 B: 이것은 직전 버전뿐만이 아니라 상당히 오랫동안 존재하던 버그라면 버그이다.
편집기의 경우, 조합이 끝난 한글을 한 글자씩 한자로 바꾸거나 한자를 하나씩 한글로 바꾸면, 글자가 바뀜과 동시에 cursor도 뒤로 밀려났다. 그래서 다음 글자도 연달아 바꿀 수 있다. 그 반면, 두 글자 이상의 글자가 한꺼번에 바뀌면 cursor가 뒤로 밀려나지 않는다.

그런데, 외부 모듈은 편집기와 동일하게 동작이 가능한 TSF A급 환경에서는 한 글자 단위로 변경을 했을 때도 cursor가 뒤로 밀리지 않았다. 안 밀릴 이유가 없는데 구현체별로 동작이 다른 것을.. 꼼꼼한 전체 코드 검증 테스트 끝에 발견하여 수정했다.

또한, 워드패드 같은 일부 TSF A급 구현체에서 0xF 특수글쇠를 이용해 앞 글자를 조합하는 상태로 갔다가 바로 다음다음 글자로 갔을 때, 글자가 생기는 곳과 cursor가 생기는 위치가 어긋나던 문제도 같은 원인 때문이었다. '알려진 문제'라고 오랫동안 도움말에도 등재돼 있던 사항이었는데 드디어 해결되었다.

(3) 입력 패드: '문자표'나 '부수 한자 입력'처럼 콤보 박스가 있는 도구를 꺼낸 뒤, 콤보 박스에서 뭔가를 고르고 나면 프로그램이 바로 뻗었다..;; -_-;; 7.9에만 있는 문제이다. 7.91 패치를 만들기라도 해야 하나 싶은 자괴감이 들었다.

(4) 편집기: 프로그램 창을 최소화시킨 상태에서 시스템 테마 같은 게 바뀌었을 때, 혹은 창의 폭을 아주 작게 한 상태에서 가끔은 텍스트의 문단 정렬 알고리즘에 오동작이 발생해서 프로그램이 무한 루프에 빠지는 심각한 버그가 있었다. 그냥 뺑뺑이만 도는 게 아니라 줄을 나타내는 메모리를 한없이 할당하면서 뻗었다.
굉장히 드문 상황에서 발생하는 문제이고 7.9만의 문제가 아니라 아마 6~7 이전의 굉장히 오래 전 버전부터 존재했던 문제이긴 한데, 이번에 뒤늦게 발견되어 버그를 저격하는 데 성공했다.

Posted by 사무엘

2015/05/04 08:37 2015/05/04 08:37
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1090

« Previous : 1 : ... 121 : 122 : 123 : 124 : 125 : 126 : 127 : 128 : 129 : ... 221 : Next »

블로그 이미지

그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Site Stats

Total hits:
3052480
Today:
787
Yesterday:
2713