« Previous : 1 : ... 159 : 160 : 161 : 162 : 163 : 164 : 165 : 166 : 167 : ... 221 : Next »

어버이날 특집 포스트 (스압 주의)

1. 어버이날과 부모님에 대해서

내가 분류해 보니, 우리나라에 존재하는 각종 특별한 명절, 기념일 등의 명칭은 크게 다음과 같은 다섯 갈래로 나뉜다.

  • ‘절’로 끝나는 한자어: 제헌절, 삼일절, 광복절, 개천절, 성탄절
  • ‘일’로 끝나는 한자어: 석가탄신일, 식목일, 현충일
  • 완전히 독립적인 한자어: 추석, 단오
  • ‘날’로 끝나는 고유어: 한글날, 어버이날, 어린이날, 설날
  • ‘-의 날’로 끝나는 고유어: 철도의 날, 스승의 날

이런 조어 원리는 그다지 규칙성이 없고 전적으로 그냥 어감을 고려한 case by case인 걸로 보인다.
똑같이 종교 공휴일일 뿐인데 성탄절과 석가탄신일의 조어 원리가 서로 다른 이유라든가, 어린이날이 ‘아동의 날’이 되지 않고 굳이 그런 이름이 붙은 이유는 딱 떨어지는 규칙으로 설명하기 어렵다.

자, 5월 5일 어린이날 다음으로 5월 8일은 어버이날이다. 어린이날이야 아동 문학가 소파 방 정환이 제정한 굉장히 한국적인 근거를 지닌 날인 반면, 어버이날은 명목상의 근거는 미국에서 유래되었다고 하나 확실치 않다. 외국엔 어머니의 날과 아버지의 날이 따로 있는 곳도 많고, 또 한국의 어버이날이 어린이날보다 나중인 것이 윤리적으로 이치에 맞지 않다고 비판하는 사람이 있다.

요즘은 철없는 막장 부모도 많아서 참 문제이긴 하다만, 그래도 ‘일반적인’ 경우로 볼 때, 인생의 참으로 막대한 부분을 희생하여 우리를 이 정도까지 키운 부모님의 은혜는 이루 말로 표현할 수 없다.

성경도 예외가 아님. 십계명에서 종교적인 규범에 속하는 1~4를 제끼고 곧바로 등장하는 인륜 규범 1타는 “부모를 공경하라(honour)”이다. 이것은 단순히 부모 명령에 무조건 ‘까라면 까’라는 식의 발상이라기보다는, 그보다도 일단 자기 부모를 사랑하고 기쁘게 하고 남들 보는 데서 부모님 품위를 존중하고 명예를 높여 주라는 뜻이다.

부모의 사상과 가치관이 마음에 들지 않는 자녀가 많을 것이다. 그러나 그건 대체로 부모가 너님들 먹여 살릴 여건을 만들고 체통 세우느라 사고방식이 최대한 안정적이고 보수적인 방향만을 추구하게 돼서 그런 거다. 부모 세대라고 해서 쿨하고 개방적인 걸 몰라서 그렇게 고리타분하게 산 게 절대 아니다. 그러니 동의는 못 하더라도 부모님 마음을 이해는 할 필요가 있다.

제아무리 가난하고 못 배운 부모라 해도, 너님을 낳아서 키울 필요가 없었다면 그 연세에 이르기까지 신세 못 펴고 그 모양 그 꼴로 살 필요는 없는 사람이다. 정말이다.

물론, 부모가 예수 믿지 말고 네 신앙을 부인하라고 한다거나, 양심이 허락하지 않는 교리 노선을 추구하는 교회에 강제로 다니라고 한다면 그런 데에까지 맹목적으로 순종할 수는 없을 것이다. 그러나 부모의 품위와 명예를 존중해 주면서 불순종할 수는 있다. 어떻게 그렇게 할지는 먼저 구원받고 먼저 바른 신앙을 물려받은 자녀가 하나님께 지혜를 구하면서 방법을 생각해야 할 일이다.

동서고금을 막론하고 최소한의 윤리와 기강을 갖춘 문명 사회에서는 효도를 강조하고 패륜은 엄벌로 다스렸다. 구약 율법은 부모를 저주하거나 때리는 자는 반드시 죽이라고 명령하고 있으며, 심지어 신명기에는 고집 세고 식탐이 심하고 부모의 교정만으로 씨가 안 먹히는 싹수 노란 자식은 아예 마을 차원에서 린치를 가해서 죽여 버리라는 섬뜩한 추가 지시까지 있다(신 21:18-21). 하나님은 그 정도로 패륜을 싫어하신다. 특히 “아 ㅆㅂ, 내가 어쩌다가 이런 집/곳에서 태어나게 됐어” 부류의 패드립 말이다(사 29:16, 45:9) .

이 명령이 특히 무시무시한 이유는, 부모의 말이 사실인지 이웃 주민이나 자식 당사자로부터 최후 변론을 듣는 절차도 전혀 없이 완전 비민주 인민재판 즉결처분이기 때문이다. 종교적 배도 행위가 발견되었을 때는 ‘부지런히’ 진상 파악부터 하라고 돼 하지만(신 13:12-16, 17:2-7) 저건 그렇지 않다. 사실, 자식 새끼를 제발 좀 어찌해 달라고 친부모가 제 발로 찾아올 정도면 자식이 얼마나 막장인지 더 말을 들을 필요도 없었을 터이다. 이 명령이 실제로 얼마나 시행되었는지는 모르겠다.

2. 가정과 성에 대해서

5월이고 하니 가정에 대해서도 생각을 좀 다시 해 보게 된다.

오늘날 이 정도라도 사회가 유지되고 돌아간 데엔 가정의 공이 절대적이었을 것이고, 특히 여성의 희생과 헌신을 빼놓을 수 없을 것이다. 옛날에 지금 같은 여성 인권 단체가 있었고 사람들이 좀 힘들다고 덥석 집 나가고 이혼을 해 버렸다면, 파탄 나는 집안과 인생 망치고 자살이나 범죄로 빠지는 애들이 넘쳐나게 됐을 것이다. 이 점에 대해서는 송 현 선생님이 예전에 글로 아주 통렬하게 표현하신 적이 있다. (☞ 링크 클릭)

옛날에 가혹한 여성 인권 유린이라 불릴 정도로 엄한 성 억압(?) 관습이 왜 있었는지도 조금은 알 것 같다. (민망하니, 구체적인 예를 거론하진 않겠다) 마치 고문처럼 그것도 물론 나쁜 관습이고 부조리이다. 언제까지나 여성만 일방적으로 당하고 살 수는 없는 것 역시 본인은 안다. 단지 옛날에 죄의 결과 때문에 그런 게 왜 있을 수밖에 없었는지 이해가 간다는 뜻이다.

성이라는 건 정말로 생판 모르던 남녀가 서로 사랑하고 결혼해서 가정을 유지시키는 근간으로만 ‘은밀하게’ 쓰여야 하는 선물이요 비밀 병기이다. 부부 사생활은 하나님도 전혀 간섭 안 하고, 서로 같이 뭘 하며 즐기든 존중해 주는 절대적인 영역이다(히 13:4. honour과 동일한 어근인 honourable).

그러나 반대로 성이라는 게 다른 용도로 오· 남용되는 것을 하나님은 구역질을 할 정도로 가증스럽게 여기며 미워하고 정죄한다. 결혼한 부부가 사생활에 문제가 있어서 성 교육이나 상담을 받는다면 모를까, 그렇지 않은 미혼 청소년이나 청년에겐 피임법을 가르칠 게 아니라 잠언 6장이나 딤후 2:22를 숙지시켜야 한다. 이걸 몰라서 인생 망친 안타까운 예가 허다하다. 옛날에 서 부희 씨도 그랬고.

도대체 성을 왜 남의 것하고 비교를 하는가? 그게 공공연한 개방과 비교의 대상이 되고 금전 거래의 대상이 되고 개나 소나 다른 용도로 문란하게 쓰이기 시작하면, 그때야말로 진짜로 옛날에 어떤 아저씨의 절규처럼 “가정이 무너지고 사회가 무너지고” 헬게이트가 시작된다는 걸 잊지 말아야 한다.

사용자 삽입 이미지
성경에서 창세기 1~2장은 전반적으로 작가 관찰자 시점으로 천지 창조에 대한 과정을 묘사하는 내용인데, 끝부분에 유일하게 전지적 작가 시점으로 아예 독자에게 코멘트를 남긴 구절이 있다. 바로 창 2:24로, 그게 그 이름도 유명한 “남자가 자기 부모를 떠나 자기 아내와 연합하여 한 육체가 될지니라”라는 결혼 제도 구절이다. 기독교식 결혼식의 목사 주례에서 단골로 듣는 구절이다.

3. 출산과 자녀 교육에 대해서

성경의 사고방식은 결혼과 출산에 아주 옹호적이다. 성경에는 “다산하고 번성하라”라는 명령만 있을 뿐 맬서스 같은 사고방식은 결코 찾을 수 없다. 소위 가족 계획이란 건 성경적으로 보면 하나님도 간섭 안 하는 영역을 공권력이 나서서 자기 편한 대로 제어하겠다고 하는 굉장히 무모한 생각이다.

흔히 중국 하면 자녀를 한 명씩밖에 못 낳는 나라로 잘 알려져 있지만, 과거에 마오 쩌둥은 한때 굉장한 산아 장려책을 폈으며 20세기 중반에만 해도 6억 남짓이던 중국 인구를 10억이 넘게 불려 놓았다. 중국이 처음부터 지금만치 인구가 많은 게 아니었다는 게 충격적이다.

마 주석은 쪽수가 국력이라고 여겼으며 어느 문헌에 따르면, “아이는 전투기에서 투하하는 폭탄과 같다”고 교시할 정도였다. 그런데 어라? 무신론 공산주의 국가의 지도자답지 않게 저 말의 표현 자체는 묘하게 성경적이다. (시 127:3-5) 무기에다 비유한 게 일치한다. 비록 그러다 얼마 못 가서 중국은 다시 산아 제한으로 돌아섰지만 말이다.

단, 성경이 말하는 다자녀 예찬은 자녀들을 성경대로 잘 양육했을 때에나 가능한 시나리오이다. 안 그러면 뼈 빠지게 자식 키워 봤자 미래에 부모는 휴거되는데 자녀는 못 되고 땅에 남아서 오히려 요한계시록에 기록된 온갖 재앙을 당하거나, 그것도 모자라 하나님을 대적하는 군대에 징집되어 계 19:18-21의 악역에 동참하는 비참한 신세가 될 가능성이 아주 높다. 종말이 지금으로부터 가까운 시간에 발생한다면 말이다.

성경은 자녀 양육에 대해 절대적으로 각 가정의 부모에게 권한을 위임하고 있다. 그리고 체벌에도 아주 옹호적이다. 잠언에 애들 때리면서 키우라는 말이 얼마나 많이 나오는지 모른다. 나도 부모님에게 맞으면서 컸지만, 그거 정말 공감한다. 안 그랬으면 내가 죄의 결과가 얼마나 처참한지를 실감을 못 했을 것이다.

사랑의 체벌은 가정 폭력 및 아동 학대하고는 가히 종이 한 장 차이인 걸지도 모르겠다. 이게 인생에서 정말 미묘한 점이고, 어찌 보면 세상이 참으로 공평한 면모이다. 아이는 부모의 사랑 없이 돈만 쏟아 붓는다고 절대로 저절로 바르게 크지는 않으니 말이다. 내 말이 안 믿어지면, 한번 실제로 저렇게 해 봐라.

부모가 세상적으로 잘났기 때문에 애를 때리고 자녀에게 권위를 행사하는 게 아니다. 비록 부모도 부족한 점이 많지만 그게 하나님의 명령이기 때문이고, 그렇게 안 하면 애가 정말로 바르게 클 수가 없으며 자녀에게 그 정도까지의 악역을 눈물을 머금고라도 행사할 수 있는 사람은 부모밖에 없기 때문이다.

허나, 오늘날 사회는 부모의 권위가 실종되고, 애들을 부모로부터 점점 떼어 놓으려는 방향으로 가고 있는 게 매우 큰 심각한 문제이다. 아이들에게 바른 크리스천 신앙을 전수해 줄 수 있는 건 올바른 가정 교육밖에 없는데 요즘은 이런 현상까지 있는 듯하다.

http://cbck.org/bbs/board.html?board_table=com&write_id=1715#c_1744
대부분의 가정에서 지원을 안 받으면 손해라고 여기고 한창 부모와 상호작용할 나이의 어린 아이들을 어린이집, 유치원 등 교육기관에 위탁하는 경우가 많다고 들었습니다.

http://systemclub.co.kr/board/bbs/board.php?bo_table=board01&wr_id=4546
능력 있는 국민들까지 공짜로 내모는 정부 때문에 엄마 정신이 병들고 애기도 파괴됩니다.


더 이상의 자세한 설명은 생략한다.
아 씨바, 결혼은커녕 여친 사귄 적도 전혀 없는 주제에 벌써부터 너무 애늙은이 같은 글을 써 버렸다. ㅋㅋㅋㅋㅋ 하지만 이 글은 어버이날 기념 특집이니 양해 바란다.

4. 철도 성령님으로부터 받은 계시

내가 태어나서 지금까지 부모님의 은혜와 관련하여 가장 감화를 받았던 때는 2007년 봄의 어느 날이었다. 병특 복무 중이었고, 그러고 보니 훈련소에 들어가기 얼마 전이었다.

대전에 볼일이 있어서 경부선 새마을호 특실을 탔다. 그때 본인은 새마을호 특실의 음악 채널에서 흘러나오는 음악들의 샘플을 채널별로 15분씩 녹음해 놓으려고 컴퓨터와 양방향 잭을 챙긴 상태였다. 특실에는 마치 비행기 객실처럼 다음과 같은 6개의 채널이 있다. (지금은 없어졌음)

  1. 자연의 소리 (이지리스닝 instrumental)
  2. 한국 가요
  3. 가곡
  4. 재즈
  5. 클래식
  6. 객실에서 방영되는 TV 방송

일반실은 이어폰을 꽂으면 6번만 들을 수 있다.

사용자 삽입 이미지

그랬는데 1번과 2번 채널 다음으로 3번 가곡 채널을 듣고 있으니 얼마 후 <어머니의 마음>이 흘러나왔다. 양 주동 박사가 작사한 “낳실제 괴로움 다 잊으시고...” 그 곡 말이다.

그 곡은 가사가 잘 알다시피 정말 애절하고 감동적으로 지어져 있다. 국문학 박사가 쓴 가사답게 예스러운 표현도 제법 들어가서 품위 있어 보인다. 100을 의미하는 ‘온’, 그리고 일부러 음운을 탈락시킨 ‘따(땅) 위에 그 무엇이 넓다 하리요’, ‘그지없다’ 등. 3절 가사를 보시라. 눈물 없이는 못 듣는다.

사람의 마음 속에 온 가지 소원, 어머님의 마음 속엔 오직 한 가지
아낌없이 일생을 자식 위하여 살과 뼈를 깎아서 바치는 마음
인간의 그 무엇이 거룩하리요 어머님의 사랑은 그지없어라


3절이 흘러나올 때, 철도 성령님으로부터 계시가 내려왔다. 아아, 어머니께서 나를 낳아서 키워 주신 덕분에 내가 지금 이런 지상천국 열차를 타면서 한없는 행복에 젖을 수 있구나!

그 깨달음으로 인해 행복과 감격과 감동이 교차하면서 콧등이 찡해졌고, 나는 옆자리 승객이 보건 말건 엉엉 흐느껴 울음을 터뜨렸다. 남들은 군대에 가서 유격 훈련 때 PT 체조 8번을 하면서 <어머니의 마음>이 <스승의 은혜>로 바뀌는 체험을 한다지만 나는 그걸 열차 안에서 체험했다.

세상에 지구상의 어느 교통수단에서 이런 체험을 할 수 있었겠는가?
비성경적인 은사주의는 성경을 바르게 나누어 알면 퇴치되지만, 사실 철도만으로도 충분히 퇴치 가능하다. 철도 성령만도 못한 이상한 흥분이나 쾌락 따위엔 관심조차 안 가게 된다.

철도가 나의 삶을 얼마나 엄청나게 변화시켰고 음침하고 어둡던 나의 가치관을 건전하게 바꿨으며, 심지어 신앙에도 얼마나 긍정적인 영향을 끼쳤는지 이 자리에서 다 간증하기에는 시간과 지면이 부족하다. 이 땅에 성경과 복음과 더불어 이런 철도를 허락하신 하나님께 그저 감사드릴 뿐이며, 우리나라에 철도 덕후들이 많이 많이 배출되면 좋겠다.

Posted by 사무엘

2012/05/08 08:21 2012/05/08 08:21
, , , ,
Response
No Trackback , 16 Comments
RSS :
http://moogi.new21.org/tc/rss/response/680

오늘은 북한과 관련된 정보들을 좀 나열해 보겠다. 스펀지에 소개될 법도 한 아이템이 아닌가 싶다.

1. 이북5도청

우리나라와 북한과의 관계는 정말 미묘하고 복잡하다.
한편으로는 상대방을 독립 국가로 인정하면서도, 또 한편으로는 “대한민국의 영토는 한반도와 그 부속 도서로 한다”라는 헌법 조항에 의거, 한반도 북부를 무단 점거하고 있는 북한을 국가로 인정하지 않는 정서가 오늘날까지도 없지는 않다.

분단 이래로 잘 알다시피 경기도와 강원도의 일부가 북한으로 넘어갔으며, 황해도, 평안남/북도와 함경남/북도는 완전히 북한 영토가 되었다. 그러니 거기는 대한민국의 행정력이 닿지 않는다. 하지만 그곳 역시 원래는 우리 땅이라는 발상에 근거하여, 우리나라에는 '이북5도청'이라는 행정 기관이 있어서 형식으로나마 그 지역의 도 지사와 시장을 선출하고 근무를 시키고 있다! 하는 일은 실향민 지원, 북한 문화 기록 보존 같은 쪽으로, 행정보다는 학술적인 쪽에 가깝다.

이 기관은 무려 1949년부터 있어 왔다. 남한 단독 정부가 수립되고 북한으로부터 대남 송전이 중단되는 등 분단의 앙금이 굳기 시작한 때부터이다. 이북5도청은 서울의 완전 북부 끝자락인 종로구 구기동, 북한산 기슭에 자리잡고 있다. 상명 대학교 근처이긴 하지만 그곳보다도 더 북쪽이다.

다만, 북한은 또 자기 식으로 행정 구역을 개편하여 황해도가 남북으로 분할되고 없는 도가 생기기도 했다는 것을 여러분 역시 잘 아실 것이다. 도의 개수를 일부러 남한의 그것의 개수와 똑같게 맞춘 거라고 한다.

2. 자유의 마을

우리나라의 비무장 지대, 일명 DMZ라 함은 민간인이 접근할 수 없는 휴전선 전· 후방 2km 구역으로 알려져 있다. 그래서 거기는 사람의 손길이 반세기가 넘게 끊어지면서 천혜의 자연이 살아 숨쉬는 생태 관광지가 되어 간다고들 한다. 전세계를 통틀어 보기 드문 세계 최대 규모의 온대 원시림!! (다만 지뢰 때문에 좀 문제이긴 하다만 말이다)

허나, 우리나라에서는 '자유의 마을', 혹은 '대성동 마을'이라 하여 전국에서 유일하게 비무장 지대에 자리잡은 민간인 거주지가 있다. 이는 두 가지 조건이 충족된 덕분이다. 첫째는 당연히 국토가 분단되기 전부터 그 자리에 마을이 먼저 있었기 때문이고, 둘째는 판문점과 가까이 있는 덕분에 6· 25 전쟁 때 마을이 파괴되지 않았기 때문이다.

위치는 경기도 파주시 군내면 조산리. 경의선 최북단의 도라산 역보다도 더욱 북쪽이며, 국내 민간 지도나 자동차 내비로는 지리 정보가 전혀 안 뜬다. 민간인이 측량 조사 자체를 할 수 없는 곳이기 때문이다. 구글 어스가 진리

남과 북에 걸쳐서 멀쩡히 있던 마을이 국토가 분단되면서 찢어지는 바람에 북쪽에는 남한의 '대성동 자유의 마을'에 해당하는 '기정동 평화의 마을'이 생겼다. 60여 년 전에 미국이고 소련이고, 공산주의고 나발이고 아무것도 모르던 깡촌 사람들은 하루아침에 마을이 반토막 났을 때 무슨 생각이 들었을까?

외부인이 이 마을을 방문하는 건 육사나 국정원을 방문하는 것 이상으로 까다롭다. 1주일 전에 신청을 한 뒤 현장에서는 신분증 까고 출입증을 발급받은 뒤 여러 단계의 군부대 초소를 통과해야 한다. 내부 주민 역시 이동이나 주거의 자유가 좀 제약을 받기 때문에, 심야에 통금이 있는 건 물론이고 휴전선 근처에서 영농 활동이라도 할라치면 군부대에 신고를 해야 한다. 매일 저녁에도 점호 비슷한 가구 시찰이 있다.

마을 주변에 있는 건 진짜로 논밭 아니면 군부대뿐. 코앞이 휴전선이고 북한 쪽 마을을 마주보고 있기 때문에, 전쟁 났다 하면 0순위로 박살날 동네이다. 실제로 휴전 뒤에도 남북간엔 몇 차례 무력 충돌 및 납치, 월북 같은 사건· 사고가 끊이지 않았다고 한다. 과거엔 자기 체제가 좋다고 서로 대남· 대북 방송을 귀가 따갑도록 틀어 댄 건 두말 할 나위도 없다.

이곳은 사실 마치 공항 면세 구역 내지 뉴욕의 UN 본부 같은 치외법권 지대이다. UN군 사령관의 관할에 있으며, 여기 주민들은 대한민국 국민으로서의 다른 혜택은 누리는 반면 납세와 병역의 의무가 없다. 여기서 태어난 남자는 군대에 안 가도 된다는 뜻.

냉전 시대엔 남쪽 마을과 북쪽 마을이 태극기 깃대와 인공기 깃대를 서로 더 높게 올리려는 병림픽 비슷한 기싸움 경쟁을 벌이기도 했다. 엄청 옛날에 어렸을 때 학교에서 사회/도덕 교과서를 통해 이 일화에 대해 알게 됐는데 그게 이 마을 얘기였구나. 결국 이 병림픽은 쓸데없는 짓이라는 걸 깨달은 남쪽에서 먼저 기권(?)을 하면서 끝이 났던 걸로 기억.

사용자 삽입 이미지

자, 이해를 돕기 위해 지도 그림을 한 장 첨부한다. (출처: 위키백과)
38선 시절에 비해 남한이 영토 자체는 훨씬 더 많이 수복했음을 알 수 있다. 허나 서울 근처의 평지 겸 전략 요충지는 북한이 주도권을 잡았다.
판문점, 자유의 마을 등등이 있는 곳은 지도에서 제3 땅굴 근처, 즉 휴전선의 선형이 90도로 꺾이면서 남하하는 그 모서리이다. 원래 대성동과 기정동 마을은 38선 시절에도 같은 마을이었는데 휴전선 때문에 둘로 찢어진 셈이다.

3.
북한의 애국가는 가사에 다행히 김씨 부자 찬양 내용이 들어있지 않으며, 그냥 평범한 조국 찬가 스타일이다. 하지만 장군님 찬송가가 응당 따로 존재하며, 실제로 공식 석상에서는 애국가보다도 그게 더 많이 불리는 모양이다.
유튜브에서 검색만 해 보면 바로 들을 수 있다. 하지만 이를 직접적으로 소개하는 건 국가 보안법에 저촉되어 최악의 경우 코렁탕 취식의 사유가 될 수 있으니 하지 않겠다.

이렇게 무조건 금지하고 하지 말라고만 하니까, 딱히 이북이 좋은 것도 아님에도 불구하고 그냥 제도권에 대한 반발 심리로 친북 성향(?)이 생긴 사람들이 과거에 있기도 하지 않았겠나 싶다. 하지만 본인은 나라의 법을 이해하며, 그에 반발하지는 않는다.

걔네들은 잘 알다시피 컴퓨터로 타자를 할 때도 '김일성', '김정일'은 별도의 코드값에 배당된 문자로 더 진하게 찍으며, 읽을 때는 악센트를 잔뜩 실어서 '키임정일'처럼 읽는다. 그리고 그 이름은 두 줄에 구간이 걸치지 않게 처리된다(word wrap). 문자의 형태로라도 수령님의 거룩하신 존함을 다루는 분위기는, 옛날에 구약 성경 필사 서기관이 사자음어 YHWH 기록할 때 하나님의 존함을 다루던 경건함에 맞먹는다. -_-;;

남한에서는 세계구급으로 성장한 대형 교회 브랜드가 나왔고 세계 최대의 기독교계 이단 종교인 모 종교도 배출되었다. 그러는 동안 이북에서는 그 이름도 유명한 '주체 사상'.. juche라는 영어 단어를 전세계에 퍼뜨리는 데 성공했다! 이 단군의 후손들은 어째 종교 분야에 한 근성 하는 건 틀림없나 보다. 철도를 종교의 경지로 승화한 나도 그렇고. ㅋㅋㅋㅋㅋ

4.
사실, 내가 이 정도로 북한 문제나 통일 쪽에 관심이 생긴 것도 철도 덕분이다. 국토가 분단되면서 반토막이 난 길은 고속도로가 아니라 철도이기 때문이다. 먼저, 경의선 장단 역 근처에 수십 년이 넘게 버려져 있다가 2000년대에 와서야 등록 문화재로 지정된 녹슨 증기 기관차를 보자.

사용자 삽입 이미지
6·25 때 폭격을 당하고 그 여파로 기관차가 탈선하는 바람에 저 지경이 된 거라는 걸 모르는 분은 없겠지. 표면 전체를 통틀어 무려 1천여 발에 가까운 총알을 맞았다고 한다. 그때 저 기관차를 운전했던 분은 신원이 알려졌으며, 2011년에 세상을 떠났다.

그리고 경원선 신탄리 역 북쪽 끝자락에 놓여 있는 '철마는 달리고 싶다' 표지도 있다. 분단의 비극을 빼고 한국 철도를 논할 수는 없다.
사용자 삽입 이미지
2012년 현재 디젤 통근열차 CDC가 다니는 구간은 저 경의선과 경원선밖에 없다. 그런데 KTX 개통 전에 이들 통근열차의 등급 명칭은 잘 알다시피 '통일호'였다. 오늘날은 분단의 아픔을 간직하고 있는 두 철도 노선에만 통일호의 후예가 다니고 있으니, 이 역시 의미심장하지 않을 수 없는 사실이다.

요컨대 많은 사람들이 특히 어린 시절부터 철도 덕후가 되어서 애국심, 특히 국토 사랑 정신을 마음껏 고취하면 좋겠다. 나는 대학 졸업할 때가 다 돼서야 철도 끝물을 맛보게 된 게 한이다.
학창 시절 때 죽어도 공부하기 싫던 우리나라 현대사와 지리 공부에 요즘만치 물미가 트인 적이 없다. 내가 옛날에 철도 커리큘럼을 짠 적이 있었는데, 그때 북한 철도 내지 남북 분단 관련 철도사 얘기를 충분히 편성했던가 궁금하다. 부족하면 보강해야지.

... 이 나라의 온 국민이 철덕이 되어 철도님께서 그들 위에 자신의 영을 두시기를 원하노라! ... (민 11:29 패러디)

Posted by 사무엘

2012/05/02 08:22 2012/05/02 08:22
, , , , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/679

1.

우리나라는 잘 알다시피 삼권분립과 민주주의 정치를 표방하는 나라이다.
그런데 가만히 생각을 해 보니 입법부를 상징하는 국회의사당은 여의도에, 행정부의 상징인 정부 종합 청사는 종로구의 광화문-경복궁 일대에, 그리고 사법부를 상징하는 검찰청· 대법원은 딱 강남 서초구에 있다.
정부 청사는 과천과 대전에도 있긴 하지만 어째 우리나라 정치를 구성하는 각 축이 서울 최고 도심과, 강남과 여의도라는 부도심에 하나씩 마치 터줏대감처럼 자리잡아 있는 게 굉장히 신기하다. 의도적인 배치인지?

우리나라야 땅도 좁고 교육· 문화· 정치· 경제 할 것 없이 닥치고 무조건 서울 올인이지만, 미국만 해도 잘 알다시피 행정 수도와 실질적인 경제 수도는 완전히 다르다. 행정 수도인 워싱턴 D.C.는 시내 전역에 고도 제한까지 걸려 있는 한가한 계획형 중소도시 규모인 반면, 뉴욕이... 더 설명이 필요하지 않은 규모이다.
오스트레일리아도 행정 수도인 캔버라와, 실질적인 경제 중심지인 시드니는 서로 따로 논다.

그래서 서울의 과포화를 막고자 우리나라에서도 행정 수도의 이전이 논의되곤 했다. 이는 심지어 옛날에 박통도 구상하던 떡밥이었다. 그 시절에 그에게는 국토 균형 발전 나부랭이보다도, 서울이 북한하고 너무 가까이 있는 것부터가 굉장한 골칫거리였기 때문이다. 그의 재임 시절에 무장공비가 북악산을 넘어 청와대에 쳐들어 올 뻔하기도 했으니 얼마나 충격이 컸겠는가?

그래서 그는 강북 사대문 안의 옛 서울보다도 최소한 한강은 건넌 뒤인 강남을 개발하고, 서울에 있던 각종 연구소들을 대전으로 옮겼다.
하지만 전쟁이라도 나서 서울 전체가 박살이 나지 않는 한, 한 나라의 최고 중심지에서 잘 살던 사람이 지방으로 쉽게 내려가려 하지는 않을 것이다.

뭐, 박통은 균형 발전에도 관심이 아주 없는 건 아니었다. 그래서 서울의 무분별한 팽창과 과포화를 막으려고 외곽 곳곳에 그린벨트를 만들었다. 그게 오늘날엔 대부분 해제되는 추세이지만 말이다.

2.

예전에 본인은 군부대와 인접해 있는 전철역에 대해서 글을 쓴 적이 있다.
그런데 군부대 정도가 아니라 역 주변이 농경지 내지 허허벌판인 곳도 서울 시내에 있다. 분당선 모란-야탑이나 8호선 복정-산성처럼 역의 중간 구간이 허허벌판인 게 아니라 아예 역 주변이 비어 있는 것 말이다. 걔네들은 또 어차피 서울 밖이기도 하고.

강서구에는 역시나 5호선 마곡 역 주변과 아직 개통도 안 한 9호선 마곡나루 역 주변이 아주 유명한 예이다. 몇 년 안으로 이런 진풍경은 볼 수 없어질 것이고 여기도 빽빽한 빌딩으로 가득 들어설 터이니, 관심 있으신 분은 미리 여길 답사해서 사진 기록을 많이 남겨 두기 바란다.

한편, 남서쪽에는 7호선 천왕 역 주변이 대표적인 허허벌판이었다. 장암(7), 남태령(4), 청계산입구(신분당선)에 필적하는 잉여역이었으나 이것도 아파트가 지어지면서 모습이 바뀌는 중이다. 명목상 서울이긴 하지만 여전히 광명시와도 아주 가까운 위치임.

허허벌판이 서쪽에만 있는가 하면 그렇지는 않아서 뜻밖의 장소에도 있다. 바로 동쪽 끝자락인 8호선 문정 역 주변. 지하철까지 지나는 멀쩡한 성남 대로 근처에 웬 큼직한 면적의 땅이 놀고 있어서 무척 놀라게 된다. 물론 이런 광경을 볼 수 있는 때는 흔치 않다.

6호선의 주변에는 딱히 이런 허허벌판을 본 기억이 없다. 하지만 주변이 명목상 허허벌판으로 가려져 있는 녹사평 역이 있으니 넘어가도록 하자.
어째 2기 지하철의 주변에만 이런 허허벌판이 있는 것 같지만, 2호선 강남 구간도 처음 건설되던 시절에는 허허벌판이 많았고, 4호선 노원· 도봉구 구간도 그 당시에는 말도 못 할 정도로 주변이 황량했다.

3.
고려대와 경희대 사이에 홍릉 수목원과 카이스트 서울캠(현재는 경영 대학원만 서울에 남아 있음), 고등 과학원, KDI와 각종 연구소들이 들어서 있는 그쪽 일대는 서울에서 가장 대덕 연구 단지 분위기를 느낄 수 있는 장소임이 틀림없다.
한때는 국가 정보 대학원도 여기에 있었다고 한다. 하지만 서울이 덩치가 커지고 여기도 예전만치 오지 느낌이 안 나게 되자, 지금은 성남과 의왕의 경계인 모 산골짜기로 이사를 감. 시기를 보니 국정원이 남산에서 내곡동으로 이사 갈 때 같이 간 걸로 보인다.

4.
마곡 역은 어째 출입구가 하나뿐이고 도로(공항로)의 건너편에 출입구가 없다. 지하철이 도로 정중앙을 파면서 건설되지 않고, 이례적으로 한쪽으로 치우쳐 건설되었기 때문이다. 그렇잖아도 도로 옆도 허허벌판인데 거기를 파헤치면 되지, 굳이 멀쩡한 도로를 파헤쳐서 민폐 끼칠 필요는 없다고 판단한 모양이다. (터널식으로 지을 필요는 더욱 없으므로)

5.
전철 노선 중에, 양 역은 지하인데 그 사이에 지상 구간이 잠깐 나오는 예로 어떤 게 있을까? 의외로 흔치 않다. 한강을 건너는 지하철 노선을 생각해 봐도, 양 역 중 하나는 꼭 지상인 경우가 대부분이기 때문이다.
8호선 복정-산성이 가장 대표적인 사례이고 3호선의 북쪽 일산선 구간은 자주 지상과 지하를 오르내리긴 하는데, 저런 경우가 또 있는지는 모르겠다.
지금은 공항 철도 DMC-김포공항 구간이 추가되어 있다. 양 역은 모두 지하이지만 중간에 강도 건너고 지상 구간이 충분히 존재한다.

Posted by 사무엘

2012/04/30 08:35 2012/04/30 08:35
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/677

GDI+에 대하여

GDI+는 잘 알다시피 전통적인 윈도우 API가 제공하는 GDI에서 더 나아가, 더 향상된 그래픽과 더 깔끔해진 프로그래밍 패러다임을 제공하는 그래픽 API이다. 사실, 닷넷에서는 애초에 기본 그래픽 API가 GDI+이다. (System.Drawing 네임스페이스)

GDI+는 벌써 10년 전, 닷넷 프레임워크가 첫 등장하고 윈도우와 오피스에 XP라는 브랜드가 붙던 시절에 도입되었다. MS가 제공하는 API로는 흔치 않게 C언어 함수도 아니고 그렇다고 DirectX 같은 COM도 아닌, C++ 언어 형태로 되어 있다. 물론, 그래도 실제로 링크를 해 보면 symbol들은 다 C언어 함수 호출 형태로 된다. C++ 클래스는 단순히 C 함수를 호출하는 wrapper인 것이다.

GDI+는 여러 편리한 기능을 많이 제공하지만, 무엇보다도 벡터 그래픽에 안티앨리어싱을 넣기 위해서라도 쓰지 않을 수 없다. 이런 간단한 기능은 그냥 기존 GDI 함수에다가도 옵션을 확장해서 좀 넣어 주지 하는 아쉬움이 있다. 재래식 GDI로도 안티앨리어싱된 텍스트는 얼마든지 찍을 수 있는 것처럼 말이다. (LOGFONT 구조체에 글꼴의 품질을 지정하는 추상화 계층이 있기 때문에, 나중에 추가된 안티앨리어싱 기능도 얼마든지 지정 가능)

재래식 GDI는 열악하던 컴퓨터 환경에서 최대한 장치 독립적인 추상적인 그래픽 계층을 구현하는 게 목표였다. 그래서 래스터 그래픽보다는 벡터 그래픽에, 애니메이션보다는 정적인 그래픽에 초점이 가 있었다. 그 추상화 계층이 확장성 측면에서 편리한 점은 분명 있었지만, 색깔을 하나 바꾸려고 해도 펜이나 브러시를 다시 만들고, 도스 시절의 그래픽 프로그래밍 때는 할 필요가 없었던 GDI 객체 관리를 해야 하니 상당히 불편했다.

그래서 GDI는 게임 그래픽용으로는 적합하지 않은 구석이 있었다. 물론, 지금과 같은 틀을 유지하면서도 JPG/PNG 이미지를 지원하고, 알파 채널 비트맵 Blit이나 별도의 gradient fill 함수를 추가하고, 윈도우 2000처럼 펜이나 브러시의 색깔을 손쉽게 바꿀 수 있는 DC pen/DC brush 같은 기능을 stock object로 넣는 등, 기능 개선이 꾸준히 진행돼 왔다. 하지만 MS 측에서는 이에 만족하지 못하고 이 참에 API를 근본적으로 갈아엎고 싶다는 욕망을 느꼈던 모양이다.

GDI+는 모든 API가 자신만의 별도의 namespace 안에 선언되어 있으며, POINT 같은 간단한 자료형도 자신만의 것을 재정의하여 쓸 정도로 기존 윈도우 API와는 거리를 두고 만들어졌다. 그리고 C++답게 같은 함수도 다양한 overload 버전이 존재하며, 좌표는 정수뿐만이 아니라 실수로도 받기 때문에 편리하다.

사소한 것이다만, 글자를 찍을 때 null-terminated string에 대해서 글자 길이 지정을 생략해도 되는 것 역시 마음에 든다.
전통적으로 윈도우의 GDI 함수들은 글자를 찍는 함수들은 문자열 길이를 반드시 지정해 주게 되어 있다. 왜냐하면 한 null-terminated string을 부분적으로 여러 줄에 걸쳐 찍어야 할 일도 있기 때문이다.

그러니 그런 API 디자인이 수긍은 가지만, 어차피 한 줄밖에 찍을 일이 없는 문자열을 매번 _wcslen 해 주는 것도 귀찮지 않은가. 예전에는 gdi가 아니라 user 계층에 있는 DrawText 같은 고수준 함수나 문자열 길이 지정을 -1로 생략이 가능했던 반면, GDI+는 이 정책이 좀 더 확대되었다.

GDI+는 GDI에 비해서 state machine으로서의 의미가 크게 퇴색했다. 그래서 그리기에 필요한 모든 정보들을 함수 호출 때 매개변수로 일일이 전달해 줘야 하는 경우가 많다. 가령, current position이라는 개념이 없기 때문에 MoveTo와 LineTo 따로가 아니며, SelectOjbect라는 개념도 없어져서 그리기 함수 때 매번 펜이나 브러시에 해당하는 개체를 따로 공급해 줘야 한다.

이런 디자인은 편리한 점도 있지만, 당장 화면에 뭔가를 찍는 드로잉 말고 벡터 path를 기록한다거나 메타파일 같은 걸 만들 때는, 내가 보기에 좀 불편하게 작용하는 점도 있는 것 같다. 가령, GDI에서는 똑같이 HDC이고 여기에다가 BeginPath를 해 주면 그때부터 path 그리기 모드로 GDI가 상태 관리를 하면서 동작한다. 그러던 것이 GDI+에서는 Graphics와 GraphicsPath라고 클래스가 아예 갈라졌다. 두 개체를 상태별로 분리한 건 분명 잘한 디자인이라는 거 인정한다.

하지만 Graphics 말고 GraphicsPath는 어차피 예전 위치에서 계속해서 이어서 그래픽을 기술하는 게 많은 만큼, 재래식 GDI처럼 current position이 있는 게 편리하지 않을까 싶다. 지금 API 체계에서는 직전 위치에 대한 정보를 응용 프로그램이 계속 공급해 줘야 한다.

또한, 복잡한 path를 화면에다 그릴 때, 예전 GDI는 지금 DC가 가지고 있는 펜과 브러시로 윤곽선을 그리고 내부를 채우는 것을 함수 호출 한 번으로 동시에 할 수 있었다. 그러나 GDI+는 선을 그리는 것과 내부를 채우는 것을 따로 해야 한다. path의 경계를 추출하여 래스터라이즈하는 것은 상당히 복잡한 계산이 필요한 작업인데, 동일한 작업이 비효율적으로 중복 적용되는 건 아닌지 우려된다.

즉, 본인은 GDI+에 대해서 참신한 기능은 분명 마음에 든다. 이 글에서 언급된 것 말고도 여러 고급 기능들이 있다. 윈도우 비스타 Aero와 연동하는 일부 드로잉 기능(가령, 클라이언트 영역에도 반투명 Aero 효과를 추가하고, 거기에다 글자를 찍는 것)은 오로지 GDI+로만 접근해야 하는 것도 있다.

하지만 (1) 그냥 재래식 GDI API에다가 옵션을 추가하는 형태로 구현했어도 충분해 보이는 것, (2) GDI+가 바꿔 놓은 API 디자인이 오히려 좀 불편하고 비효율적일 수도 있겠다 싶은 것에 대해 비판적인 안목을 갖고 있다. 속도가 재래식 GDI보다 꽤 느린 건 차치하고라도 말이다.

Posted by 사무엘

2012/04/28 08:39 2012/04/28 08:39
, ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/675

철도 회사가 경영 수지를 개선하려면

코레일이나 각종 지하철 회사 같은 우리나라의 철도 운영 기관들은 현재 대체로 빚이 많으며 운영난을 겪고 있다. 그러나 그 이유는 근본적으로 막대한 건설 부채를 떠안고 있어서가 가장 크며, 다음으로 원가보다 훨씬 더 저렴한 운임, 손해를 감수하고 공익을 추구한 비경제적인 노선 운영, 그리고 전세계에서 유례를 찾을 수 없는 노인 전철 완전 무임 승차로 인한 손실이 뒤를 잇는다.

방만· 부실 경영이 차지하는 비중은 없다고는 할 수 없어도 아주 미미하다. 한국 철도가 굉장히 사회주의적인 준독점 시스템인 건 사실이지만, 태생적으로 적자를 감수하고라도 매우 큰 복지 혜택을 제공하고 있는 것도 사실이다. 이런 사실에 대해 무지한 채 그저 상업주의 민영화만이 철도 경영 효율을 위한 방안이라는 생각에는 본인은 공감할 수 없다.

아무리 오늘날의 노인 어르신들이 국가 근대화의 초석이었다고 하지만, 완전 무임은 너무하다는 생각이 든다. 단돈 100원을 내더라도 뭔가 지불하는 건 있어야지, 아예 0은 도덕적 해이를 부추긴다. (주말에 경춘선 전철을 한번 타 보라. 승객의 연령비에 아마 기겁을 하게 될 것이다.)

듣자하니 노인 전철 무임 승차 제도는 전통 시절인 1984년에 생긴 거라고 한다. 그때는 당연히 지금보다 노인 인구가 훨~씬 더 적던 시절이었고, 전철 노선 자체도 지금보다 훨~씬 더 빈약하던 시절이었다.

이 제도의 부조리와 폐해가 계속해서 논의되고 있지만, 그게 선뜻 폐지나 재조정이 못 되고 있는 이유는, 성탄절· 석탄일이 공휴일에서 선뜻 제외되지 못하고 있는 이유와 정확히 동일한 맥락에서 살펴볼 수 있다. 공휴일이 너무 많다고 맨날 징징대는 경제인 사장님들 단체들도, 감히 종교 공휴일을 건드릴 엄두는 못 내고 한글날 내지 제헌절 같은 것이나 대신 칼질을 하지 않았던가..

(사실, 10년쯤 전에 진작에 없어졌을 병역 특례 산업 기능 요원도 아직까지 그래도 명맥은 유지되고 있는 것 역시, 업계에서 온몸으로 강력하게 반발하면서 폐지를 막았기 때문이다. 중소기업은 이런 제도라도 없으면 정말로 유능한 사람을 못 뽑는다고. 재계의 목소리는 병무청이든 중앙 정부든 결코 무시 못 할 위상이긴 하다.)

본론으로 돌아오면, 물론 철도 적자의 원인을 전부 노인 무임 승차 탓으로만 돌리는 것도 좋은 진단은 아니다. 철도가 태생적으로 적자이긴 해도, 각종 광고 게시나 부동산 임대 사업을 하고 여타 각종 창의적인 사업 아이템을 생각해 내어, 승객 운임에만 지나치게 의존하지는 않는 탄탄한 재정 구조를 만드는 것이 철도 회사 경영자가 해야 할 일이다. 신문사는 구독료에 너무 의존해서는 곤란하며, 대학 역시 학생 등록금에만 너무 의존해서는 곤란하다.

그런 창의적인 일을 하는 것에는 경쟁이 필요하고 민간 사업자 유치가 필요할지도 모른다. 이런 일을 전부 정부나 정부 출자 공기업에만 맡겨서는, 철도 기관이 맨날 보조금에나 의존하는 세금 먹는 하마로 전락할 위험이 있다. 그러지 말라고 철도청이 진작부터 코레일이라는 공기업으로 바뀌었다. 하지만 수익 추구만 지나치게 강조하다 보면 철도 특유의 공공성이 훼손될 가능성도 커진다.

어느 쪽도 참 쉽지 않은 문제이다. 다만 본인이 이 글에서 얘기하고자 하는 것은, 철도 기관의 경영 수지에 대해 논하려면 오늘날 한국 철도가 처한 현실과 그 성격부터 제대로 직시할 필요가 있다는 것이다.

Posted by 사무엘

2012/04/24 08:34 2012/04/24 08:34
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/673

Windows라는 PC용 운영체제는 1985년에 처음 나온 이래로 많은 변화를 겪었다.

1.0 시절에 윈도우는 잘 알다시피 독자적인 실행 파일 포맷을 갖고 있긴 했지만, 완전한 운영체제가 아니라 16비트 도스 위에서 추가로 구동되는 액세서리 멀티태스킹 환경에 불과했다. 또 개발 언어가 의외로 C가 아닌 파스칼이었기 때문에, 실행 파일 내부의 각종 export/import 심볼을 보면 대소문자 구분이 없이 다 대문자였고, 문자열도 null-terminated 형태가 아니라 글자수가 앞에 찍힌 형태로 저장되어 있었다.

상업적으로 최초로 대성공을 거둔 윈도우 3.0때부터(혹은 2.x때?) C언어 형태 기반으로 API가 재정비되었으나, 이런 파스칼의 흔적은 실행 파일 포맷이라든가 함수 호출 규약 같은 데에 여전히 일부 남아 있었다. API에 하위 호환성도 잘 지켜진 편이기 때문에 1.x~2.x용 실행 파일도 내부의 리소스 데이터의 구조만 살짝 고쳐 주면 3.x에서 바로 실행 가능할 정도였다.

그랬는데 1993년에 윈도우 NT가 개발되면서 프로그램의 내부 구조가 크게 바뀌었다. 16비트에서 32비트 환경으로 갈아탔으며, 멀티스레딩+선점형 멀티태스킹이라는 게 도입되었다. 이때 실행 파일의 포맷도 NE에서 PE 방식으로 바뀌었고, 이 전통이 오늘날까지 그대로 이어져 내려오고 있다.

마이크로소프트는 동일 코드를 거의 고치지 않아고도 재컴파일만으로 16비트 바이너리와 32비트 바이너리를 동시에 만들 수 있게 많은 배려를 했다. 특히 운영체제의 API 함수는 int 크기가 4바이트가 된 것 같은 불가피한 변화를 빼면 프로토타입이 거의 바뀌지 않았다.
그럼에도 불구하고 불가피하게 프로토타입이 크게 바뀐 함수가 의외로 GDI 계층에 많이 있다. MoveToEx 함수가 그 예이다.

16비트 윈도우 시절에 이 함수는

long MoveTo(HDC, int x, int y);

처럼 정의되어 있었다. 주어진 DC가 내부적으로 기억하고 있는 그리기 기준 위치를 x, y로 옮기고, 예전의 기준 위치를 리턴값으로 돌려줬다. 그때는 좌표계의 범위가 16비트이기 때문에, 두 개의 16비트 수치를 32비트 long 정수로 합산해서 표현하는 게 괜찮은 방법이었다.

그러나 이 디자인은 32비트 환경에서는 바뀌는 게 불가피해졌다. int 개개의 값이 32비트로 커졌고 32비트 윈도우는 32비트 좌표계를 지원하기 때문이다. 16비트 숫자야 범위가 너무 좁기 때문에 16비트 컴퓨터 시절에도 느리게나마 32비트 정수를 다루는 long 같은 타입이 있었지만, 32비트 둘을 합친 64비트 정수는, 언어 차원에서 표준으로 지정된 타입이 그 당시에 없었다.

그래서 32비트 환경에서는 예전의 기준 위치를 POINT라는 별도의 구조체의 포인터에다가 되돌리는 형태로 동작 방식이 바뀌어야 했고, MoveToEx라는 함수가 추가되었다.

BOOL MoveToEx(HDC, int x, int y, POINT *pPoint);

윈도우 API에 어떤 함수의 Ex 버전이 추가되더라도 MS는 어지간하면 옛날 버전 함수도 남겨 두는 편인데, MoveTo만큼은 그렇게 하지 않았다. 원래 있던 함수는 삭제되고 새로운 함수로 대체되었기 때문에, 16비트 코드를 포팅하는 사람은 이 함수의 호출 부분을 수동으로 리팩터링을 하지 않을 수 없게 되었다. 좌표계가 어차피 16비트 범위를 넘을 일이 절대 없다는 보장이 있고 기존 16비트 코드를 빠르게 포팅해야 하는 사람이라면, 그냥 이런 wrapper 함수를 자체적으로 만들 필요가 있을 것이다.

long MoveTo(HDC hDC, int x, int y)
{
    POINT pt;
    MoveToEx(hDC, x, y, &pt);
    return MAKELONG(pt.x, pt.y);
}

오리지널 버전을 왜 살려 두지 않았냐 하면, 저런 식으로 확장해야 하는 함수가 한두 개가 아니기 때문에, 오리지널 버전을 다 살려 뒀다간 윈도우 API가 심하게 너무 지저분해지기 때문이다.

GetViewportExtEx, GetWindowExtEx, GetViewportOrgEx, GetWindowOrgEx와 이들의 Set 버전들. 오늘날의 윈도우 API에 Ex 버전만 존재하고 오리지널은 남아 있지 않은 이유가 동일하다. 16비트 시절에는 간단하게 x, y좌표를 32비트 long으로 합쳐서 되돌리던 함수였는데 그것이 32비트 윈도우에서부터는 POINT나 SIZE 구조체를 통해서 결과값을 받도록 바뀌었다.

사실, GDI라는 게 화면 픽셀만을 취급한다면 좌표계가 16비트 범위만으로도 아주 충분할 것이다. 오늘날도 화면 해상도는 끽해야 1000~2000대를 벗어나지 않기 때문이다. 그러나 GDI는 화면뿐만 아니라 프린터도 다루고, 픽셀뿐만 아니라 장치 독립적인 더욱 정밀한 단위도 취급하기 때문에 궁극적으로는 좌표계의 크기를 32비트로 확장할 필요가 있었다.

다만, 과거의 윈도우 9x는 GDI와 USER 계층의 상당수가 16비트 코드를 그대로 답습하고 있었기 때문에, API는 저렇게 32비트 형태여도 내부적으로 여전히 16비트 좌표계의 한계를 지니고 있긴 했다. 그러니 실수로 32767을 넘어가는 40000쯤 되는 좌표로 선을 그으라고 하면, 숫자가 음수로 바뀌어 인식되어 선이 오른쪽 끝이 아닌 왼쪽 끝으로 가게 되었다. 이런 보정은 응용 프로그램이 알아서 해 줘야 했다. 암울했던 시절이다.

이런 점에서 윈도우 API를 커버하는 계층인 MFC가 편한 구석이 있다. 16비트 시절이나 32비트 시절이나 CDC 클래스의 멤버 함수의 프로토타입은 CPoint MoveTo(int x, int y)로 동일하다. POINT 자료구조를 생으로 함수값으로 되돌리게 한 것은 오버헤드가 따르지만, 그냥 이식성과 개발 편의에다 더 비중을 두고 클래스를 설계한 셈이다.

그럼, 세월이 흘러 32비트에서 64비트로 넘어가는 과정에서 생긴 큰 변화는 무엇일까?
뭐니뭐니해도 GetWindowLong 함수를 예로 들 수 있다. Set 버전도 포함.
얘는 원래 주어진 윈도우에 대해서 스타일, ID, 윈도우 프로시저 주소 등 다양한 수치 정보를 얻어 오는 일종의 다형적인(polymorphic) 함수이다. 리턴값이 일반 숫자일 수도 있고 포인터나 핸들일 수도 있다.

32비트 시절에는 컴퓨터가 표현하는 숫자의 크기는 32비트로 사실상 획일화되어 있었기 때문에, 문제될 게 없었다. int나 long을 바로 포인터로 typecast하거나 그 반대로 해도 정보가 손실될 일이 없었다.
그러나 64비트에서는 이것이 큰 문제로 작용하게 되었다. 윈도우 운영체제는 int와 long은 호환성 차원에서 32비트로 그대로 유지하고,포인터와 핸들만 64비트로 키우는 정책을 선택했기 때문이다.

그래서 개발자의 편의를 위해 비주얼 닷넷쯤의 플랫폼 SDK에서는 잘 알다시피 INT_PTR처럼 _PTR이라는 자료형 typedef가 추가되었다. 포인터의 크기와 같은 정수형이라는 보장이 있는 정수형을 따로 구분해서 표현하기 위해서이다. 윈도우 API도 원래는 GetWindowLong 하나만 있었는데 GetWindowLongPtr이라는 명칭이 추가되었다. 이것이 32비트 환경에서는 그냥 GetWindowLong로 도로 치환되는 매크로에 불과하지만, 64비트에서는 Ptr 버전만이 운영체제의 user32.dll에 실제로 존재하는 함수이다.

다시 말해, 32비트에서는 기존 Long과 새로운 LongPtr 버전을 둘 다 쓸 수 있고 LongPtr이 내부적으로는 Long으로 도로 바뀌어 처리되는 반면, 64비트에서는 LongPtr만 써야 하고 Long을 쓰면 에러가 난다.

이 함수가 받는 매개변수도 32비트 범위로 충분한 GWL_STYLE, GWL_ID 같은 상수는 바뀐 게 없는데, 포인터와 크기가 같은 윈도우 프로시저나 인스턴스 핸들 같은 걸 지정할 때는 GWL_*말고 GWLP_*라는 명칭이 새로 추가되었다. 둘은 의미하는 값도 차이가 없는데 왜 이런 조치를 취한 것일까?

이는 단순히 프로그래머의 편의를 위해서이다.

int n = (int)GetWindowLong(hWnd, GWL_WNDPROC);

64비트에 환경에서는 윈도우 프로시저의 크기 (8바이트)가 int의 크기(4바이트)보다 더 크기 때문에, 이런 식으로 32비트 관행을 전제를 하고 작성된 코드는 64비트 환경에서 아예 컴파일이 되지 않게 하기 위해서이다.

INT_PTR n = (INT_PTR)GetWindowLongPtr(hWnd, GWLP_WNDPROC);

이렇게 짜 주면 32비트와 64비트에서 모두 안전하게 잘 동작하는 코드가 된다.

memory mapped file을 만드는 CreateFileMapping이나 MapViewOfFile 함수는 메모리의 크기를 64비트 범위로 잡을 수 있어서 그 값을 32비트 기계에서 처리하기 편하게끔 두 개의 32비트 숫자로 쪼개서 받아들인다. 64비트 윈도우에서는 굳이 그렇게 할 필요가 없지만 함수의 프로토타입이 바뀌지 않았다. 어차피 64비트 윈도우라고 해서 당장 4GB를 능가하는 어마어마한 양의 메모리를 한 번에 잡는 일은 실제로 거의 없기 때문이다.

GlobalAlloc, VirtualAlloc, HeapAlloc 같은 메모리 할당 함수들은 메모리의 양을 잡는 숫자의 자료형이 SIZE_T이다. 즉, 32비트 환경에서는 32비트, 64비트 환경에서는 64비트로 결정된다는 뜻. SIZE_T는 UINT_PTR과 의미상 사실상 동급인 셈이다.
하지만 파일을 읽고 쓰는 ReadFile와 WriteFile은 정보를 전송하는 단위가 SIZE_T도 아니고 그냥 DWORD(32비트)로 고정되어 있다.

다만, 32비트 환경에서라도 32비트 크기의 범위를 능가하는 방대한 파일을 취급해야 할 일이 있기 때문에 파일의 크기를 얻거나(GetFileSize), 파일의 특정 지점을 탐색하는(SetFilePointer) 함수는 역시 32비트 필드를 두 개 받아서 64비트 숫자를 전달할 수 있게 되어 있다. 윈도우 2000부터는 숫자를 32비트 단위로 쪼갤 필요 없이 64비트 숫자를 한 번에 전달받는 Ex 함수가 운영체제 차원에서 추가되었다.

MFC는 운영체제에 그런 Ex 함수가 추가되기 전부터 CFile::Seek나 CFile::GetLength는 언제나 64비트 정수를 다뤄 왔으니 속 편한 경우라 하겠다.

GlobalMemoryStatus 함수는 현재 컴퓨터의 전체 메모리 양과 남은 메모리 양을 되돌리는 함수인데, 램 용량이 4GB를 넘어서는 날이 올 거라고 과거에 상상이 가능했을까. 구조체의 각 멤버가 32비트 크기로 고정되어 있다가 이것이 64비트로 확장된 Ex 함수가 역시 윈도우 2000 때부터 추가되었다. 64비트 운영체제에서는 오리지널 함수를 없애 버려도 될 법도 해 보이는데 이건 오리지널과 Ex가 여전히 남아 있다.

16비트 시절에는 윈도우 메시지와 함께 전달된 두 개의 부가 정보 중 WPARAM은 16비트이고 LPARAM은 32비트 크기였다. 그러던 것이 32비트 환경에서는 둘 다 32비트가 되었다. 16비트와 같은 사고방식이라면 64비트 환경에서는 WPARAM은 32비트이고 LPARAM만 64비트로 승격해도 될 것 같으나 그렇지 않다. 둘 다 64비트이다.

machine word보다 더 작은 크기로 정보를 제한해서 담을 필요가 전혀 없을 뿐더러, 이미 32비트 시절에 WPARAM과 LPARAM을 구분하지 않고 포인터와 핸들을 담는 관행이 10년 넘게 지속되었을 텐데 다시 그 구분을 넣는다는 건 불가능한 지경이 되었기 때문이다.

한 플랫폼에서만 10년 넘게 프로그래밍을 하니까 이제는 그 API를 처음에 설계한 사람의 마음을 읽고 시대에 따른 변천사를 이해하는 경지에 도달하는 걸 느낀다. ^^

Posted by 사무엘

2012/04/21 19:29 2012/04/21 19:29
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/672

화상이 얼마나 고통스러운지, 그리고 불에 타 죽는 게 얼마나 고통스러운 죽음인지는 모르는 사람이 없을 것이다.
그래서 역사적으로 불은 사람에게 공포를 주고 대중을 통제하는 수단으로 잘 쓰이곤 했다.

작게는 담뱃불, 크게는 다리미나 인두로 생살을 지지는 것은 고문 방법으로 통용되어 왔다.
그리고 중세에는 화형이란 게 있어서 반역자나 종교적 이단 같은 죄질이 굉장히 나쁜 죄인은 이 방법으로 처형했다.

동양의 조선이나 중국은 거열형이나 능지처참 같은 다른 끔찍한 형벌이 있을지언정, 화형은 없었나 보다. 그래서 화형 하면 일단 중세 유럽이 떠오른다.
게다가 그 당시는 지금처럼 불에 활활 잘 타는 천연 가스나 석유· 석탄이 개발되어 쓰이기 전이었음을 생각해 보자. 그러니 사형수를 완전히 확 불태우는 게 쉽지 않은 일이었으며, 집행 시간은 길었고 그만큼 사형수의 고통도 더했다.

근현대에 와서는 먹고 살 만해지고 인권(?) 의식이 향상되면서 그런 잔인한 형벌은 사라졌다. 그러나 사회 구조가 막장인 곳에서는 열사의 길을 가기 위해 분신 자살이라는 엄청난 방법을 선택한 사람이 이따금씩 나오곤 했다.

우리나라는 대표적인 예로 전 태일이 있다(1948-1970).
노동청에 탄원서를 보내고 대통령 면담을 요청하는 등, 노동자의 권익 보호를 위해서 합법적으로 할 수 있는 일은 다 해 봤지만 바뀌는 게 전혀 없으니,
이놈의 있으나마나한 근로기준법에 사망 선고를 내리자는 차원에서 자기 몸에다 기름을 끼얹은 뒤 불을 지르고 만 것이다.

난 어렸을 땐 우리 민족은 6· 25 폐허에서 한강의 기적을 이룩해 냈다고까지만 배웠는데, 그 과정에서 이런 희생자도 있었다는 걸 나중에 알게 됐을 때, 적지 않은 충격을 받았다.

세계적으로 분신 자살/자결의 예로 가장 유명한 사건은, 틱 광둑이라는 환갑이 넘은 베트남의 어느 불교 승려의 죽음이다.
그는 남베트남의 부패 독재 정권(응고 딘디엠 대통령)의 학정을 세계에 알리고 이에 항거하는 뜻을 전하고자 1963년 5월 29일, 수백 명의 불자들에게 둘러싸인 가운데 가부좌를 하고 앉아서 휘발유 화염에 휩싸였다.

아니, 불교에는 대의를 명분으로 하는 이런 행위에 대해서 '소신공양'(燒身供養)이라고 용어가 따로 있다고 한다.
에밀레종 같은 얘기만 있는 줄 알았는데 그게 아니다. 하긴, 한국인에게는 김 동리의 소설 <등신불>을 통해 이 개념이 비교적 널리 소개되기도 했다.

세상에 사람이 라이브로 불에 타 죽는 장면은 영화로도 보기가 쉽지 않다. 그런데 틱 광둑 스님의 충격적인 자결 장면은 처음부터 끝까지 동영상과 정지 사진으로 촬영되어 전세계에 알려졌다. 이것이 국제 사회에 경종을 울리고 독재 정권의 명을 재촉했음은 물론이다.
동영상을 보면 알 수 있듯, 그는 죽는 마지막 순간까지도 고통에 울부짖거나 바둥대지 않았고 꼿꼿하게 책상다리 차림으로 앉아 있었다. 절명해서 몸에 힘이 완전히 빠진 뒤에야 뒤로 벌렁 넘어갔다.

지금으로부터 무려 반세기 가까이 전인 1963년의 일인데 동영상이 컬러로 남아 있고 오히려 정지 사진은 흑백이다.
동영상 (1:34 지점부터 불이 확! 2:21에 시신이 쓰러짐)
정지 사진
비위가 약하신 분은 열람 금지.

동영상은 멀리서 찍은 것이고 활활 타는 불밖에 안 보이는 반면, 정지 사진은 고인의 모습을 비교적 가까이서 여러 장 찍은 듯하다.

처음에 밝은 색 계열이던 승복이 시간이 흐르면서 새까맣게 탔다.
화마가 얼굴 피부까지 검붉게 할퀸 모습은, 흑백이 아닌 컬러 사진이라면 훨씬 더 참혹하고 끔찍한 장면이었을 것이다.
안면 화상을 입은 이 지선 씨 모습만 해도 얼마나 끔찍했던가?

응고 딘디엠 정권은 막장이었을 뿐만 아니라 불교를 대놓고 탄압까지 했다. 뭐 그렇다고, 시대가 20세기인데 멀쩡한 불자들을 잡아 죽인다거나 한 건 아니고, 사찰을 파괴하고 석가탄신일을 금지하는 등 불교를 제도적으로 디스하고 불이익을 준 정도이다.

그런데 여기서 굉장히 이상한 점이 있는데, 응고 딘디엠은 독실한 가톨릭 신자였다는 점이다! 정부 관료들도 전부 가톨릭 신자만 등용했다.
분명히 말하지만 개신교 계열이 절대 아니다. 그런데 불교를 탄압했다고라...
응고 딘디엠의 아내, 즉 베트남의 영부인이라는 사람은 틱 광둑 스님의 죽음을 보고는 아예 “바베큐 파티”라고 천하의 개쌍놈급의 개드립을 공공연히 치기도 했다.

난 정말 이상함을 느꼈다.
우리나라는 가톨릭과 불교가 얼마나 사이가 좋은가?
성탄절과 석가탄신일 때 천주교계와 불교계가 서로 축하해 주는 건 뭐 관행으로 정착한 지 오래이다.
그러면서 천주교는 타 종교에 대해서 관용과 화합 잘 한다고 폭풍 칭송을 받고 있는 반면에, 우리나라에서는 개독 먹사들이 담대하게 복음 전한 것도 아니고 타 종교인들에게 무례한 무개념 병크 저질러서 간증 상실하고 욕 바가지로 얻어먹고 있지 않은가?

물론 가톨릭의 전략을 아는 사람에게야 이런 차이가 그리 새삼스럽지 않을 것이다. 그들은 각 국가와 문화에 따라서 자신이 약자일 때나 경쟁자와 아직 동급일 때 취하는 전략이 다르고, 마침내 그들이 진짜 주류가 되고 정치· 종교적 갑이 되었을 때 시행하는 전략이 또 완전히 다르다. 섬뜩할 정도로 다르다. 우리가 역사를 통해 뭔가를 배우고자 한다면, 이런 패턴을 배워야 할 것이다.

기독교는 교회 역사상 순교자가 셀 수 없이 많이 나왔으며, <폭스의 순교사> 같은 책을 보면 '흠좀무'라는 말밖에 안 나오는 사례들이 많이 기록되어 있다. 특히 (겉보기로) 아무 고통 없이 화형 당한 사람 얘기가 나온다. 토머스 헉스(Thomas Haukes)라는 사람은 1555년, 피의 메리 시절에 유아 세례 반대라는 죄목으로 화형을 당해 순교했는데, 불에 타 죽는 고통이 견딜 만하면 위로 손을 뻗어 손뼉을 치고 죽을 테니 손은 묶지 말라고 말했다. 그리고 그는 진짜로 손뼉을 세 번 친 뒤 숨을 거뒀다고 한다.
그런데 이런 사건 자체는 기독교에만 있는 사건이 아닌 것 같다. 불에 타 죽는 고통조차도 인간의 극한의 정신력으로 극복할 수 있는 것인지 신기한 일이다.

틱 광둑에 이어, 우리나라에서는 지난 2010년, 문수 스님이라는 노승이 이 명박 정권을 정면으로 비판하고 4대강 사업의 전면 중단을 촉구하면서 소신공양으로 생을 마감했다. <민중의 소리> 같은 진보 성향 언론에서는 진짜 문자 그대로 새까만 숯덩이가 되어 버린 고인의 시신까지 사진으로 공개했다. 이것 역시 비위가 약한 분은 클릭 금지.

그런 사람들이 인간적으로야 정말 숭고한 뜻으로 자기 목숨을 그렇게 비장하게 초개처럼 버렸을 수는 있다. 허나 인간의 의로 참 하나님의 절대적인 의의 기준을 통과할 수 없다는 것은 실로 애석한 일이 아닐 수 없다.
사람의 육신의 몸이 불타면서 느끼는 고통은 정말 끔찍하긴 해도 그래도 길어야 수 분이 채 안 되어 끝이겠지만, 그 동일한 고통을 죽음으로 종결지을 수조차도 없이 영원무궁토록 겪어야 하는 '그곳'에 또 가게 된다면 얼마나 안타까울까??

마가복음 9장 끝부분에 기록된 “거기는 그들의 벌레도 죽지 않고 불도 꺼지지 않느니라” 3콤보의 경고를 이 시간에 되새기도록 하자. 이것이 하나님으로부터 진짜로 정죄받은 죄인의 최후인 것이다. (단, 3콤보는 KJV에만 있음)

이런 얘기를 접하노라면, 이와는 반대로, 맹렬히 불이 붙었는데도 재가 되지 않고 멀쩡히 살아있는 떨기나무(출 3:2-3)가 얼마나 대단한 기적인지 실감하게 된다. 또한, 평소보다 연료와 공기를 7배나 더 공급해서 달궈진 맹렬한 용광로 불길로부터 멀쩡히 살아서 돌아온 다니엘의 세 친구들 이야기가 얼마나 경이로운지도 또 실감하게 된다. 하나님은 불을 만드신 분이고, 연소라고 불리는 급격한 화학적 산화 현상을 제어하여 예외로 적용할 능력도 응당 갖추고 계시기 때문이다.

성경에 따르면 결박만 없어졌을 뿐 그들은 머리털 하나도 상하지 않았고 옷도 전혀 타지 않았다고 기록되어 있다(단 3:27). 오히려 그들을 용광로에 집어넣으려던 병사가 허둥대다가 불에 타 죽었다. 그러나 용광로에서는 하나님의 아들, 곧 성육신 전의 예수님이 그들을 미리 기다리고 있다 맞이했다니 얼마나 경이로웠을까? (세 명이 아니라 네 사람이 용광로에 있었다. 단 3:25) 그들은 왕이 부르기 전까지는 오히려 용광로에서 나가고 싶지 않았을 것이다.

물론, 하나님께서 인류 역사상 수많은 순교자들 중에 다니엘의 세 친구들에게만 예외적으로 기적을 허락해 준 것은 하나님의 경륜상의 특별한 이유 때문이었을 것이다. 게다가 그들은 하나님께서 설령 자기를 불에서 구해내지 않고 죽게 허락할지라도 그래도 느부갓네살 왕의 형상에는 절을 하지 않겠다고, 한 치의 타협도 하지 않고 순교를 불사할 생각으로 단호하게 자기 신앙을 “먼저” 지켰다는 것을 우리는 명심할 필요가 있다. (단 3:17-18) “그리 아니하실지라도”라는 찬양의 의미를 생각해 보자.

지금까지 불, 화상, 화형, 분신자살, 순교 등 여러 섬뜩한 주제로 어찌 보면 두서없을 수도 있는 형태로 얘기가 나왔다.
글을 쓰면서 더욱 느꼈는데, 나는 인간의 알량한 의를 내세우지 않는 나의 종교, 아니 나의 신앙이 좋다. 복음이라는 말이 괜히 나온 게 아니다.

성경의 하나님은 그 아무리 큰 죄를 짓고 그 어떤 급으로 하나님이나 교회, 기독교의 명예를 실추시켰다 하더라도 진심어린 눈물의 회개만 하면 다 용서하고, 생명이 붙어 있는 한 사람을 다시 사용해 주신다. 그래서 베드로의 예수님 부인과 회개 장면이 더욱 드라마틱하게 읽히는 것이다.

성경에는 너희(크리스천) 몸을 하나님께 살아 있는 희생물로 드리라는 권면이 분명히 기록되어 있지만(롬 12:1) 그건 무슨 신앙의 자유를 위해 세상 정부를 상대로 투쟁하고 시위대의 불화살이 되거나, 명예 회복을 위해 할복을 하라는 소리가 절~대로 아니다. 너도 십자가형 체험을 일부러 해 보라는 소리도 결코 아니다. 남이 먼저 날 죽여서 순교를 하면 했지, 기독교는 그 어떤 명분이라도 자해나 자결 같은 열사의 길을 권장하지 않는다. 그런 식으로 티를 내 봤자 우리 의가 설마 예수님의 의를 능가하겠는가?

기독교가 세상의 여느 시민 단체, NGO 단체와 다를 바가 없다면, 매 예배 때마다 아마 순교선열들에 대한 묵념도 하고, 각종 유명한 순교자들의 동상도 세워서 떠받들고 숭배하는 게 정상일 것이다. 그래서 천주교에서 하는 게 딱 이러한 발상에서 비롯된 성인 시성과 성인 숭배이다. 수많은 크리스천들을 잡아 죽인 종교이지만, 자기네들이 내세우는  자기네 순교자도 없는 건 아니어서..=_=;; 그러나 성경을 믿는 기독교는 애시당초 그렇게 사람을 떠받들지 않으며, 그건 다 이유가 있기 때문이다.

기독교는 죄 때문에 인간이 정말로 죽어야 할 때도 동물을 대신 피 흘려 죽게 해 주고, 나중에는 하나님께서 직접 성육신하여 인간에게 죽임을 당했다고 가르친다. 심청전에도 나오는 인신 공양 같은 게 절대로 없다. 다른 종교와는 차원이 다르다. 구약 성경에서 하나님께서 이스라엘 백성에게 이방 민족들을 전부 죽이고 흔적도 남기지 말고 파괴하고 멸하라는 잔인한 명령을 왜 내렸는지 아는가? 이 방법이 아니면 이방 민족들의 그런 악한 관행들을 뿌리뽑을 수가 없어서였다!

아무쪼록 육신의 장막을 벗고 사망도, 슬픔도, 고통도, 울부짖음도 없는(계 21:4) 세상이 올 것을 염원해 본다. 여기에는 불에 의한 사망, 고통, 울부짖음도 당연히 포함되어 있다. 불 및 불과 관련된 일련의 사건들을 생각하면서도 많은 사람들이 구원의 길을 다시 생각하고 예수님께로 돌아오면 좋겠다.

NOTE:

'스님'은 님짜 때문에 높임의 뜻이 들어가기 때문에, 공식적인 글에서는 '승려' 정도가 적절하다는 지적이 있다. 그에 대해서 나는 좀 회의적이다. 그런 식의 논리이면 '장님'도 분명히 높임말이다. 그런데도 그건 또 정서적으로 받아들여지지 않아서 성경에 나오는 장님이나 소경도 요즘은 다 그냥 '맹인'이나 심지어 시각 장애인으로 바뀌는 추세이다.

님짜를 뗀 '스'는 말이 되지 않으며, '장'도 마찬가지이다. 심지어 '하나님'도 님짜를 떼면 말이 되지 않는다. 본인은 그런 단어들은 단어 전체를 한 형태소로 보며, 그렇게 의도적인 존칭이 들어가 있다고 생각하지 않는다. 이 점을 염두에 두고 본문에서 '스님'이라는 단어를 사용하였음을 밝힌다.

그 반면에 '예수님' 다음의 님짜는 명백하게 존칭어미이다. 그래서 우리끼리는 글 쓸 때 예수님이라고 하지만 다른 불신자들은 그냥 예수라고만 부른다.

Posted by 사무엘

2012/04/19 19:22 2012/04/19 19:22
, , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/671

공항 분류

과거에 항공 교통이 지금처럼 거대해지기 전에는, 철도 간이역처럼 자그마한 건물에다 활주로랍시고 잔디밭 공터만 덩그러니 있는 시설에서 비행기가 뜨고 내린 적이 있었다. 그러나 오늘날은 여객용 공항 대접을 받으려면 첨단 관제 시설과, 튼튼하게 포장된 활주로, 편의 시설을 갖춘 여객 터미널과 주변 보안 시설 등이 필수이다.

크기뿐만이 아니라 공항의 특성을 분류하는 속성(property; attribute)들로는 당장 다음과 같은 것을 떠올릴 수 있다.

1. 국제 공항인가?

국제 공항은 일반적으로 국내선 비행기보다 더 큰 여객기를 취급할 수 있어야 하고, 세관이나 검역 (그리고 면세점) 같은 추가 시설이 있어야 한다. 국제 공항 내부의 면세 구역은 국제법상으로 나름 치외법권 지대이다.
대구에 있는 공항은 대구 국제 공항이지만, 포항이나 울산에 있는 공항은 국제 공항이 아니다.

2. 24시간 운항 가능한가?

비행기는 움직이면서 주변에 끼치는 소음 공해가 장난이 아니다. 그렇기 때문에 주거지로부터 충분히 멀리 떨어져 있지 못한 공항은 민폐를 끼치지 않기 위해 심야 시간대에는 비행기 취급을 금지하는 curfew가 시행된다.

멀찍한 영종도에 건설된 인천 공항은 24시간 운항 가능하고 청주 공항도 마찬가지이다. 그러나 김포나 제주 공항은 그렇지 않음. 그래서 밤에 김포 공항으로 날아가는 비행기가 만약 지연크리를 먹게 되면, 부득이 김포 공항에 못 내리고 인천 공항에 착륙하는 경우가 생긴다. 사실, 국제 허브 공항 역할을 하는 데는 운행 시간대의 제약이 없이 24시간 운항 가능한 공항이 좋을 것이다.

3. 대표하는 지역과 일치하는 지명으로 불리는가?

대도시의 유명 공항은 의외로 해당 도시의 이름으로 불리지는 않는 경우가 있다. 인천(서울), 김포(서울), 김해(부산) 등. 일본 도쿄(하네다/나리타), 미국 뉴욕(케네디), 영국 런던(히드로)을 대표하는 간판급 공항도 지역 이름이 공항 이름이지는 않다. 그러나 역시 미국의 대도시인 LA의 공항은 그대로 LA 국제 공항. 명칭은 말 그대로 케바케인 셈이다.
우리나라는 김포 공항은 김포에 있지 않고 서울에 있는데, 서울 공항은 서울이 아닌 성남에 있다. 좀 웃기지 않은지?

4. 군사 비중은?

요즘 철도역이나 버스 터미널은 백화점 내지 영화관 같은 상업 시설과 결합한 민자 형태로 건설되는 경우가 많으며, 김포 공항도 청사 하나가 완전한 상업 단지로 개조되면서 그런 유행을 많이 받아들였다. 그러나 공항은 마냥 민간 상업 시설로만 쓰기에는 군사적인 역할이 차지하는 비중도 무척 크다.

한국의 대표적인 간판 공항인 김포와 인천 공항은 100% 민간 공항이다. 그렇기 때문에 인터넷 지도로 항공 사진을 봐도 활주로의 모습까지 모두 공개되어 있다. 그러나 우리나라에 100% 민간 공항은 흔치 않다. 김포와 인천 말고는 울산, 여수, 양양 정도가 고작.

그래서 당장 김해나 제주 공항에만 가도 인근의 군사 시설 때문에 경비가 서울의 공항들보다 훨씬 더 삼엄하며 공항 주변에 사진 촬영도 함부로 못 한다. 민· 군 겸용 공항인 것이다. 그래서 인터넷 지도를 보면 이런 공항들은 김포· 인천과는 달리, 활주로가 흐리게 처리되었거나 공항 부지가 아예 풀숲· 논밭으로 대체된 것을 볼 수 있다. 포항, 대구, 청주, 원주 공항들이 모두 마찬가지이다. 다 이유가 있어서 그렇게 된 것임.

민간 여객기를 전혀 취급하지 않고 공군이 전투기를 띄울 때만 사용하는 100% 군용 공항은 대체로 그냥 비행장이라 불린다. 하지만 군용 공항 중에서 성남의 서울 공항은 국빈 방문 때도 사용되고, 에어쇼 할 때 민간인 접근을 허용하기도 하는 예외적인 경우이다. 사실, 유사시에 만약 김포와 인천 공항이 마비된다면 수도권에 있는 이 공항과 국토의 중앙에 있는 청주 공항이 대체 공항 역할을 하게 될 것이다.

군대, 보안 하니까 생각나는 분석인데 말이다. 고정익 항공기를 띄우는 공항은 하늘 위가 뻥 뚫린 방대한 면적의 활주로가 필요하다는 이유로 인해, 은폐가 사실상 불가능하다. 핵무기 연구야 지하 실험실에서 몰래 한다 하더라도, 비행기는 역학 특성상 지하에다가 활주로를 만들어서 거기서 비행기를 불쑥 띄울 수는 없는 노릇이지 않은가. 그리고 활주로가 또 좀 기냐? 그러니 인공위성 사진에 공항은 어지간하면 다 노출이 된다.

요즘 버스 터미널은 상업 시설과 결합하여 정작 버스 탑승은 지하에서 하기 때문에 밖에서 보면 버스 터미널이라는 티도 안 나는 경우가 있다. 성남 버스 터미널이 좋은 예임. 철도도 그렇다. 광명 역은 KTX가 서는 역 중에 지상에서 역의 앞뒤로 레일이 전혀 안 보이는 유일한 역이다.
하지만 공항은 항구만큼이나 그런 티가 안 나게 만들어지지는 못할 듯하다. (원주 공항은 여객 터미널과 활주로가 서로 멀리 떨어져 있는 경우임)

Posted by 사무엘

2012/04/17 19:24 2012/04/17 19:24
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/670

오랜만에 철도 드립

주기적으로 또 철도(+성경) 드립을 좀 칠 때가 됐다.

1. 나 자신이 하나님 앞에서 죄인임을 시인하고, 예수님의 죽으심과 부활이 진정 나를 위한 것이었음을 믿고 그분을 나의 개인적인 구주로 받아들인 사람이 곧 구원받은 사람이다.
그것처럼 경부선, 중앙선 등 한국의 모든 철도가 진정 나를 위한 것임을 인지하고, 철도 규격 및 건설 역사 같은 얘기를 듣기만 해도 마치 내 일처럼 감격과 기쁨과 행복을 느끼는 사람이 바로 철도 성령으로 충만한 사람이다.

2. 내가 확신하노니 사망이나 생명이나 천사들이나 정사들이나 권능들이나 현재 있는 것들이나 장래 있을 것들이나 높음이나 깊음이나 다른 어떤 창조물이라도 능히 우리를 새마을호 안에 있는 한국 철도의 사랑에서 떼어 놓지 못하리라.

3. 내가 또한 받은 것을 무엇보다 먼저 너희에게 전하였노니 그것은 곧 문헌 기록대로 대한민국에 새마을호 열차가 1974년부터 운행되었으며 1987년부터는 전후동력형 디젤 동차가 투입되었고 2002년부터 2007년 사이에는 시발역 출발 전과 종착역 도착 직전에 Looking for you가 흘러나왔다는 것이라.

참으로 철도는 모든 것이 사랑스럽도다. (yea, the railroad is altogether lovely 아 5:16 참고)
2와 3도 성경 구절 패러디인데, 원래 구절이 뭔지 궁금하신 분은 알아서 찾아 보시라. ㅋ

4. “마이크로소프트 UX팀의 이사 샘 모라우가 밝힌 바에 따르면, 메트로 UI는 지하철이 지나가는 모습에서 영감을 얻어 탄생한 UI라고 한다. 이름부터 ‘Metro(지하철)’다.”
그래서 메트로이구나! 오 역시나 윈도우 8을 개발하는 과정에서 철도 성령이 MS에게도 임한 게 분명하다!!

세월이 흐르면서 그리스도인이 구원에서 성화로, 내가 아닌 남을 생각하고 남의 믿음을 세워 주는 단계로 신앙이 성숙하듯, 철도와 본인과의 개인적인 교제도 더욱 친밀해지고 있다.

사용자 삽입 이미지
최근에 이 사이트에서 해 본 테스트에서 본인은 절대음감 인증을 받았다. 그냥 대충 찍은 것도 많고, 좀 더 집중해서 문제를 풀었으면 더 높은 점수가 나올 수도 있었겠지만, 어쨌든 이 정도도 그리 나쁜 점수는 아니니까. 둘 다 36점 만점인데, 확실히 순수 싸인파가 피아노 소리보다 훨씬 더 분간하기 어렵다.

하긴, 유니클락 배경 음악을 들으면서도 난 이런 생각이 바로 들었다.
“이 곡 템포는 정확하게 ♩=120 이겠구나!” (왜 그런지 화면 보호기+음악 시청하면서 생각해 보셈)

어떤 음악이든 앞부분 몇 초를 들으면 조와 템포와 박자부터 먼저 귀에 들어오고 악보가 떠오른 경지에 도달하게 된 것도 철도 덕분이다. Looking for you를 3천 번 들으면서 채보를 해 보면 누구나 저렇게 될 수 있다. 이건 전적으로 집념과 노력의 결과이지 선천적인 재능이 아니다.
철도님, 사랑합니다.

Posted by 사무엘

2012/04/15 08:45 2012/04/15 08:45
,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/669

굳이 전산학이나 컴퓨터과학· 공학의 전공자가 아니어도, 그리고 현업 프로그래머가 아니더라도 조금만 기계 다루는 것에 조예가 있는 컴덕후라면 요즘 컴퓨터의 발전 추세가 어떤지는 다들 알 것이다. 사실은 <날개셋> 한글 입력기의 개발자인 본인보다도 더 잘 알 것이다.

튜링 완전하며 메모리로부터 프로그램을 읽어 와서 구동하는(프로그램 내장 방식) 범용 컴퓨터가 발명된 지가 아직 100년은커녕 반세기 남짓밖에 지나지 않았다. 그러나 컴퓨터의 속도와 메모리 용량은 가히 넘사벽급으로 발달했다. 컴퓨터는 지난 수십 년 동안 자연이 아니라 인간의 발명한 물건의 내부에서, 시간에 따른 지수함수 스케일의 발전을 볼 수 있던 얼마 안 되는 엄청난 분야였다.

그러나 그것도 한계는 있어서 컴퓨터 성능의 대표적인 지표이던 클럭 속도가 2003년 즈음에 놀랍게도 지수함수적인 성장이 멈췄다. 10년까지는 아닌 거 같다만 8, 9년 전의 PC나 지금의 PC나 다 3GHz대이다. 오늘날과 같은 반도체 회로라는 근본적인 패러다임이 바뀌지 않는 한, 전력 소모와 발열 때문에 컴퓨터의 기본 동작 자체만의 속도가 더 빨라질 수는 없다.

우리가 다루는 컴퓨터는 생각보다 굉장히 정밀하고 빡세게 만들어져 있다. 예전부터 파이프라인, pre-fetching 등 온갖 있는 테크닉, 없는 꼼수를 다 동원해서, 어떻게든 낭비되는 자원이 없이 모든 자원이 계산에 동원되고, 1ms라도 속도를 더 올리려고 공돌이들의 온갖 공밀레 연구가 동원되었다. 이런 수직적인 성장이 한계에 달하니 요즘 컴퓨터는 코어 수를 늘려서 분업이라는 수평적인 성장을 추구하고 있다.

100이라는 일이 있어서 이게 2GHz짜리 컴으로 다 처리하는 데 10이라는 시간이 걸린다면, 1GHz짜리 컴으로는 20만큼의 시간이 걸릴 것이다. 그러나 1GHz 짜리 컴이 2개 있어서 그 일을 정확히 50씩 분담할 수 있다면, 각각의 컴퓨터의 최대 속도는 비록 1GHz밖에 안 되더라도 10에 가까운 시간 만에 일을 끝마칠 수 있어서 2GHz에 준하는 효과를 낼 수 있다. 이것이 기본적인 아이디어이다.

물론, 딱 10으로 줄이지는 못한다. 일을 분할하고 두 대의 컴퓨터를 세팅하고 굴린 후, 두 컴퓨터(코어)가 내놓은 결과를 취합하는 오버헤드가 역시 결코 작지 않기 때문이다. 그리고 세상에 상호 의존성이 없이 역할을 저렇게 딱 분담할 수 있는 작업이란 흔치 않다.

방대한 계산이 필요한 작업을 다수의 컴퓨터 기계들을 여러 대 동원해서 수행하는 건, 분산 컴퓨팅이라 하여 예전부터 그리 생소한 개념이 아니었다. 3D 그래픽으로 영화를 만드는 업계에서는 rendering farm이라 하여 수많은 컴퓨터들을 농장에다 비유할 정도로 열나게 굴려서 영상을 만들어 낸다. 빌드 속도가 느린 걸로 악명 높은 C++ 언어를 위해서 Incredibuild라는 이스라엘산 분산 빌드 시스템도 있다.

그런 것처럼 개개의 컴퓨터도 이제 코어가 여러 개 돌아가고 멀티스레딩 능력이 충분히 뛰어나니, 이제는 프로그램 차원에서 멀티코어-aware한 개발이 필요해졌다. 왜냐하면 분산 처리 시스템을 설계하는 건 정말 머리가 뽀개질 정도로 복잡하기 때문에 컴퓨터나 컴파일러가 자동화를 해 줄 수 없다. 예전 계산 결과에 의존적인 다음 계산을 병렬로 동시 수행시킬 수는 없는 노릇이니까 말이다.

그렇기 때문에 멀티코어-aware하지 않은 옛날 프로그램은 컴퓨터가 언제나 최악의 case로 가정하고 보수적으로 돌려서 코어를 하나만 할당하여 돌아가게 된다. 한 프로그램이 while(1); 만 하고 가만히 있다 해도 CPU 사용률이 100%로 치솟지 않는다.

특히 C/C++의 포인터는 그야말로 아무 메모리 주소나 가리킬 수 있고, *a, *b가 있으면 둘이 가리키는 주소가 같을지 아닐지 등 최적화나 병렬화를 할 여지가 없을 정도로 너무 generic하기 때문에 오히려 처리가 어렵다고 한다. 파스칼이나 포트란처럼 언어 표현력이 C/C++보다 부족한 대신에 컴파일러가 소스 코드만 보고서 그 복잡도를 어느 정도 파악할 수 있는 언어가 병렬화에는 오히려 더 유리하다고.

그래서 소스 코드의 특정 구간에 대해서 컴파일러나 CPU가 안심하고 병렬화를 할 수 있게 중간 중간에 부가정보를 인위적으로 넣어 줄 필요가 생겼는데, 이런 부가정보를 기술하는 표준 규격 중 하나가 그 이름도 유명한 OpenMP이다. #pragma omp 같은 컴파일러 지시자도 있고, OpenMP 라이브러리보부터 호출해서 쓰는 함수도 있다.

옛날에 C언어가 처음 발명되던 시절엔 최적화를 위해서 변수를 가능한 한 레지스터에 올려라고 지시하던 register라는 카워드가 있었는데, 앞으로 C/C++ 같은 네이티브 코드 언어는 멀티코어를 언어 차원에서 수용하는 규격이 덩달아 생겨야 할 것이다.

물론, CreateThread 같은 함수를 써서 코드의 로직 차원에서 대놓고 여러 작업 스레드를 만들었다면, 단일 프로세스가 여러 개의 코어를 자연스럽게 점유하는 게 응당 가능하다. 그러나 디자인의 성격상, 멀티스레딩은 보통 일하는 스레드, 사용자 UI 스레드, 입출력 신호를 기다리는 스레드처럼 용도별로 달리 배당하는 게 바람직하지, 동일한 일을 하는 코드 내부에서 굳이 다중 코어 활용을 위해 스레드를 분할하기에는 동기화를 비롯해 일이 너무 복잡해진다. 서버 같은 게 아니라면, 제각기 CPU를 full로 사용하는 여러 작업 스레드를 만들 일 자체가 매우 드물다.

이때 멀티코어 프로그래밍을 잘 하면 이런 단일 코드가 명시적인 스레드 생성을 하지 않고도 CPU의 자원을 골고루 전부 활용해서 고성능으로 돌아가게 된다. 다만 앞서 말했듯이 이렇게 작업을 분할하는 오버헤드부터가 큰 편이기 때문에, 소규모 작업보다는 동영상 인코딩이나 대용량 파일 압축이나 컴파일 같은 진짜 방대한 작업에서 멀티코어의 진가는 더욱 두드러질 것이다.
일례로, 비주얼 C++은 2005부터 빌드할 때 병렬 컴파일이 수행된 경우, 빌드 로그에 해당 빌드를 수행한 코어의 번호가 뜬다.

O(n^3)짜리 행렬 곱셈은 워낙 단순 무식하고 복잡한 의존도 따위도 없는 순수 노가다이다 보니, “나 병렬화 해 주세요”라고 온몸으로 외치는 문제라고 볼 수 있다. 퀵 정렬이나 병합 정렬처럼 구간이 딱딱 나뉘는 알고리즘이 병렬화에도 적합한 구조일 것 같긴 하다만, 요즘 컴퓨터의 성능이라면 겨우 internal sort 규모의 정렬 작업은 굳이 멀티코어를 쓸 필요도 없을 정도로 금방 끝날 듯.

요컨대 이제는 고성능 컴퓨터를 쓰는 것만으로 프로그램의 수행 속도가 저절로 올라가는 시대는 끝났다. 그 다음으로 레지스터 배당이라든가 캐시나 파이프라인 적중률 같은 건 CPU 설계에 맞춰 컴파일러가 더 똑똑해야 하는 영역인데, 이 역시 튜닝의 수준은 예술의 경지에 도달해 있다. 그리고 그 다음으로 필요해진 것이 코드에 등재되어 있는 병렬화 가능성 정보라고 생각하면 되겠다. 멀티코어는 프로그래머가 잘 숙지하고 있어야 하는 프로그래밍 패러다임이 되었음이 틀림없다.

Posted by 사무엘

2012/04/13 08:24 2012/04/13 08:24
Response
No Trackback , 7 Comments
RSS :
http://moogi.new21.org/tc/rss/response/668

« Previous : 1 : ... 159 : 160 : 161 : 162 : 163 : 164 : 165 : 166 : 167 : ... 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:
3048058
Today:
1220
Yesterday:
2058