1909년 10월 26일은 안 중근 의사가 중국의 하얼빈 역에서 이토 히로부미를 권총으로 쏘아 쓰러뜨린 날이다. 그런데 그로부터 딱 70년 뒤, 1979년 10월 26일은 박 정희 대통령이 부하인 중앙정보부장 김 재규의 권총에 맞고 절명한 날이다. 10.26 사태라고 불리는 이 사건은 우리나라의 이후 역사를 크게 바꿔 놓은 사건이었다.

박통의 갑작스러운 죽음으로 인해, 1961년부터 시작된 18년간의 군사 독재가 이제 좀 끝이 나는가 싶었지만 그게 끝이 아니었다. 애초에 우리가 우리 힘으로 일제로부터 해방된 게 아니었던 것만큼이나 이것도 시민의 힘으로 직접 독재 정권을 끌어내린 게 아니었으니까. 그러니 박 정희가 남긴 뒷자리는 그의 심복이던 전 두환이 냉큼, 날름, 덥석 차지하게 됐다. 어차피 사람만 바뀌었지 또 다른 군사 독재인 건 마찬가지다. 오늘은 그 얘기를 좀 더 늘어놓아 보겠다.

1979년 10월 26일 저녁, 박통은 삽교천 준공식을 마치고서 서울로 돌아와서 피로도 풀 겸 궁정동 안가에서 회식을 했다. 최측근 참모들과 더불어 20대 중반의 어여쁜 여대생, 그리고 비슷한 연배의 잘나가던 여자 가수까지 데려 와서 말이다.
뭐, 그렇다고 해서 이 회식은 누가 박통에 대해 험담하는 것처럼 그 정도로 사치스럽고 음란방탕한 자리는 아니었다. (저걸 갖고 험담하는 사람들은.. 반대로 여자와 관해서 일체의 난잡한 면모가 없었고, 극도로 근검절약 검소했으며 회식 자리에 기생이 아니라 각자 자기 부인을 데려 오게 한 전직 대통령을 좋아하느냐 하면, 그것도 어차피 아니다.)

박통은 알다시피 수 년 전에 영부인을 불의의 사고로 잃은 뒤부터 멘탈이 많이 피폐해졌다. 곁에서 쓴소리 조언을 해 주는 사람이 없어지면서 자제력을 잃고 예전보다 점점 더 과격 고집불통 폭주끼도 보이기 시작한 건 사실이어 보인다. 박통은 육 영수 여사를 두고 "지금 내 옆에 제일 상대하기 까다로운 골수 야당 총수가 있소" 이런 농을 치기도 한 바 있다.

이 와중에 암살 가해자인 김 재규 중앙정보부장은 경호실장이던 차 지철과 박통에 대해서 쌓인 앙금이 많은 상태였다. 그러다 무슨 자극을 받았는지 이 패거리들을 오늘 회식 자리에서 해치워 버려야겠다는 생각을 하게 됐다.
안 그래도 권총까지 챙겨 가서 죽일 기회만 노리고 있는데, 아니나 다를까 회식 자리에서 차 지철과 박통은 합심해서 김 재규를 코너로 몰아 넣었다. "야당이며 반대파들이 이렇게 정권에 대항하면서 날뛰고 있는데 중정은 지금 도대체 뭘 하고 있는 거야? 좀 더 강하게 짓밟아 버리지 못해?" 이렇게 갈구고 있으니 김 재규가 속이 얼마나 뒤집어졌을까?

결국 김 재규는 차 지철과 박통을 권총으로 쏘고 말았다. 그에게서 지시를 미리 받은 그의 부하들은(박 선호, 박 흥주 등) 총소리를 듣고서 주변의 경호원들을 사살해서 궁정동 안가를 완전히 무력화시켰다.
김 재규는 사살 계획 자체는 이렇게 치밀하게 준비해서 결국은 성공했다. 그러나 일을 저지른 뒤에는 정말 놀라울 정도로 멘붕· 당황· 우왕좌왕 하고 패닉에 빠져 버렸다.

그는 차 지철이 하극상을 벌여서 원조각하를 살해했으며, 자기는 이를 저지하다가 정당방위 차원에서 그를 사살했을 뿐이라고 얼~~마든지 의심 안 사고 조작과 은폐를 할 수 있었다. 그는 위장과 조작의 달인인 중앙정보부의 최고 수장이었으니 말이다. 왜 저렇게 하지 않았는지는 정말 제1의 미스터리이다.

그리고 더 따지고 보면, 박통은 암살 안 당했으면 대통령을 도대체 언제까지 해 먹었을지도 궁금해진다. 이건 제2의 미스터리이다. 할 거 다 하고, 1990년대에 수도 이전과 올림픽 유치까지 다 해 놓은 뒤, 7· 80대 나이쯤 됐을 때 물러나겠다고 증언한 기록도 있다고 하는데 출처는 지금 기억이 안 난다. 뭐 어쨌든..

김 재규는 일을 저지른 뒤 상황을 자기에게 최대한 유리하게 조작하기 위해서는 자기 휘하의 남산 중정으로 갔어야 했다. 그런데 이 와중에 보안을 위해서는 군대의 도움이 필요하다고 생각했으며, 중정 대신 육본으로 가는 일생일대의 패착을 뒀다. (정확히는 현장에 같이 초청했던 정 승화 육군 참모총장의 제안을 별 생각 없이 따른 것)
그는 누가 각하를 죽였는지 대놓고 거짓말은 차마 못 한 채, 어영부영 나라가 위기에 빠졌다고 계엄드립만 늘어놓다가 군 수뇌부 앞에서 탈탈 털렸다.

원조각하의 죽음이 확인되고 더구나 이게 북한이 아닌 내부 소행임이 확실시되자, 군 내부에서는 평소에도 월권과 하극상을 일삼던 차 지철의 도발을 먼저 의심했다. 그리고 혹시 군 내부에 다른 차 지철 파 쿠데타 세력이 있는지 의심했다. 그러나 입막음을 당부받았던 김 계원 비서실장이 양심의 가책을 견디다 못해 김 재규의 단독 범행(= 중정 말고 군 내부에 다른 배후 세력은 없는)을 정 승화 장군에게 몰래 실토하는 바람에, 김 재규는 그대로 인생 운지하고 말았다.

김 재규의 패착은 북한에서 6·25 전쟁을 조장했던 박 헌영의 패착과 거의 동급 수준이었다.
사건을 제대로 은폐하지 못한 채 저런 허술한 행동에 뜬금없는 기승전 계엄 얘기만 한 걸로 미뤄 보면, 그는 대통령을 살해한 와중에도 일말의 국가 안보 걱정은 최우선으로 한 듯하다. 다만, 무슨 민주화를 위해서 각하를 쐈다는 말은.. 글쎄다. 다른 때라면 몰라도 사건 당일엔 차 지철에 대한 증오심이 더 컸지, 그런 거창한 이념까지 생각할 겨를은 없었을 것 같다.

갑자기 철권 독재 대통령이 없어지고 경호실장과 정보부장까지 없어지니 나라에는 엄청난 통치 공백이 생겼다.
이 와중에 최 규하는 우리나라 역사상 제일 존재감 없는-_- 대통령으로 기록됐지만, 한편으로 정당 활동이 없이 학자와 관료 테크만 거쳐서 국무총리-대통령 권한대행-대통령에 오른 유일한 사람이다. 덩치 크고 엄청난 학식과 인품의 소유자이고.. 그는 스펙은 참 훌륭했지만 국가 지도자로서는 지지 기반이 너무 없고 우왕좌왕했다.

뭐, 결과적으로는 김 재규의 요청대로 전국에 계엄이 선포됐다. 그리고 10.26 사태의 수사권을 쥔 군부가 사실상 권력의 실세가 됐다. 미우나 고우나 군부 말고 다른 대안이 없으니...
정 승화가 계엄 사령관이 됐고, 그 밑에 육사 동기들 중에 제일 잘나가던 전땅크가 10.26 수사본부장이 됐는데... 그는 이 엄청난 기회를 놓치지 않고 적절히 활용하여 뒤통수를 쳤다.

"어? 정 승화 저 사람도 그때 현장 근처에 있었다면서 왜 김 재규를 적극적으로 저지하거나 신고하지 않았을까? 혹시 이 사람도 쿠데타 가담 세력 아냐? 김 재규에 대한 체포 명령을 내린 당사자라지만 좀 냄새가 나는데?"
이렇게 어거지를 씌운 게 12.12 군사반란의 본질이다. 군대 인사 발령이 끝나고 10·26 사건에 대한 수사도 끝나 가던 12월 12일이 사고 치기에 가장 적절한 시기였다. 이후 스토리는 다들 아시는 대로...;;

쿠데타를 일으키는 주범이 다른 멀쩡한 사람을 도리어 쿠데타범으로 몰아 가다니.. 역사적으로 정치판 싸움은 이런 식의 암투로 진행된 듯하다. 선배고 후배고, 내 부대 네 부대 구분 따위도 없었다.
제5 공화국 드라마의 명대사인 "야 이 반란군놈의 새X야! ... 내 지금 전차를 몰고 가서 네놈들 머리통을 다 날려 버리겠어!"(장 태완 장군)도 정 승화 참모총장이 반란군에게 억류 당해 있을 때 나온 대사이다.

전대갈· 전땅크, 29만원 아저씨는 독재(?)를 했다지만 전임인 이통, 박통에 비해서야 존재감이 덜하며 우파로부터도 그 전임들만치 긍정적인 평판은 못 받는 전직 대통령이다. 군대를 장악한 뒤에 정권도 장악하고(5· 17 쿠데타) 최 규하 대통령까지 완전히 사임시키기까지는 생각보다 시간이 오래 걸렸다.

사용자 삽입 이미지

그는 2016년 1월 현재 일단 생존 중인 최고 오래 된 전직 대통령이다. 몸 관리 잘한 군인들이 대체로 그런 것처럼(1920년대생인 백 선엽 장군도 아직 살아 있다!) 그는 역시 얄밉다는 생각이 들 정도로 안전한 저택에서 잘 먹고 잘 살면서 천수를 누리다 갈 것으로 예상된다. "나한테 당해 보지도 않고 말이야" 드립을 칠 정도의 여유와 멘탈갑 센스-_-도 갖추신 지 오래다.. 저 기백과 배짱을 보라. 그러니 하야· 암살과는 차원이 다른 가성비를 얻었다.

전땅크에 대해서 오해하지 말아야 할 것은, 이 아저씨는 권좌에 앉기 위해서 쿠데타를 일으켰지, 일단 대통령이 된 뒤에는 7년 단임만 하고 진짜로 물러났다는 점이다. 집권 도중에 장기 통치하려고 헌법을 뜯어고치거나 하지는 않았다.
1987년의 6월 항쟁도 개헌을 통해 '5년 단임 직선제'라는.. “후임 대통령의 선출 방식”을 민주화하기 위한 시위였지, 전땅크의 장기 집권 자체를 규탄하는 시위가 아니었다.

독재자 타이틀이 있는 전임들의 행적과 비교하면 이렇다.

  • 이 승만: 초대 대통령으로 선출 자체는 적법하게 됐지만, 2대· 3대에 4대까지 연임하는 과정에서 사사오입 개헌에다 야당 정치인 탄압 등 지저분한 짓거리가 끼어 들어갔다. 결과적으로 12년 동안 1~3대 대통령을 역임했으며, 이 시기를 헌정 시스템 기수로는 제1 공화국이라고 부른다. 이 사람은 하야 후 명목상 노환으로 자연사하긴 했지만 타지에서 최후를 맞이했으며, 귀국이 좌절되면서 더 건강이 나빠지기도 했다. (쿠데타 ×, 장기 집권 목적 개헌 )
  • 박 정희: 정말 통 크게 해 먹었다. 집권 때도 그 당시에는 혁명이라고 불린 5· 16 쿠데타를 일으켰고, 집권 중엔 유신 헌법 버프를 자가발동하여 총 무려 18년 가까이 집권했다. 5~9대 대통령을 역임하고 제3과 제4 공화국을 새로 썼다. 대한민국의 헌정 역사상 전무후무할 것이다. 말년엔 잘 알다시피 부하에게 피격 당했다. (쿠데타 , 장기 집권 목적 개헌 )
  • 그리고 전땅크: 이 승만과는 반대로 집권 과정에서 쿠데타를 일으켰으며, 집권 중에는 다른 뻘짓 없이 임기를 채우고 물러났다. 아주 해피하게 살다가 갈 것으로 예상. (쿠데타 , 장기 집권 목적 개헌 ×)

(어느 나라건 독립 운동가 출신 초대 대통령은 독재자로 흑화하는 경우가 드물지 않다. 어떻게 해서 이룬 독립이고 어떻게 해서 세운 나라인데, 불안해서 선뜻 후임에게 놔 주고 싶지 않은 심정을 본인도 나이가 드니 조금은 이해할 것 같다. 처음부터 2선만 딱 하고 물러난 미국의 조지 워싱턴 대통령이 참 이례적인 대인배라고 봐야 할 것이다.)

우리나라의 경우, 저렇게 XO, OO, OX를 거친 뒤에야 현재의 대통령들은 일관되게 XX가 유지되고 있다.
뭐, 전땅크는 명목상 11, 12대 대통령이지만, 중간에 연임을 해서 두 대가 커버된 건 아니다. 집권 초기에 헌정 시스템이 바뀌었기 때문에 대수가 올라간 것이다. 5공이라고 불리는 이 사람의 실질적인 통치 기간은 12대가 전부인 게 맞다.

박통에서 전땅크로 넘어간 과정을 살펴본 본인의 생각은 이러하다.
10.26 사태는 남한 내부에 정말 심각한 수준의 권력 공백과 혼란을 그것도 너무나 갑작스럽게 야기했다. 이 승만이 하야하던 시절보다도 상황이 훨씬 더 심각하다. Windows API에다 비유하자면 ExitProcess와 TerminateProcess의 차이와 같기 때문이다.

그러나 이 틈을 노려 북한이 도발을 하지 않은 건 참으로 다행스러운 일이다. 또한 정치 불안으로 인해 상황이 얼마든지 더 나빠지고 혼세마왕 강림 급의 헬게이트가 열릴 수도 있었을 텐데, 그나마 피해가 저 정도밖에 발생하지 않은 쿠데타(?)로 그럭저럭 내부 수습과 권력 이양이 된 것도 무척 다행이다.

이 시절에 벌어졌던, 일부 반공을 빙자한 인권 유린은 당연히 욕 쳐먹어야 하고 두고두고 까여야 함이 마땅하다. 그 중 최악의 흑역사는 영화를 능가하는 병맛을 자랑하는 수지 킴 간첩 조작 사건이 아닐까 한다. 어휴..;; 성경에서 다윗이 아무리 성군이었다 해도 우리야의 유족에게는 석고대죄해야 할 잘못을 저지른 것처럼, 전땅크 정권도 특정 개인에게 씻을 수 없는 큰 잘못을 저지른 게 있다.
허나 그럼에도 불구하고 전땅크를 비롯해 5공 주역들이 일차적으로 근본적으로, 민생을 생각하고 여전히 경제를 일으키는 독재를 했다는 건 감사할 점이다. 5공 시절의 물가 안정과 경제 호황은 누구나 인정하는 바이다.

우리나라가 뭐 언제부터 그렇게 성숙한 민주주의를 시행해 왔다고.. 군부 말고 무슨 탄탄한 대안이 있었던 것도 아닌데, 이들 군인 출신 정치인들이 뭐 잘했다는 얘기는 아니지만, 반대로 그렇게까지 "심각하게" 민주주의를 치명적으로 유린했다는 식으로 생각하지도 않는다. (난 개인적으로 신앙의 자유가 있다는 것 하나만으로도 정치 체계는 높으신 분들이 뭐 어떤 방식으로 다스리든 별 상관 안 한다. 일단 독재자의 개막장 자기우상화 걱정은 안 해도 된다는 뜻이므로.).

이런 이유로 인해 본인은 "옛날에는 지금처럼 대통령을 5년마다 한 번씩 뽑는 게 아니었다. 군사 독재가 횡행했다. 반공을 빌미로 억울한 사람들이 빨갱이로 몰려서 고초를 겪었다." 이런 말에 그렇게 큰 의미를 부여하지 않는다.
"옛날에는 위생이 안 좋아서 집집마다 머릿니를 잡고 쥐를 잡아서 꼬리를 할당량 채워서 학교에다 제출해야 했다. 자동차는 물론이고 텔레비전도 사치품 중의 사치품이었다. 결핵이나 천연두, 콜레라 같은 후진국형 질병이 횡행했다. 서민이 해외 여행을 하기도 훨씬 더 어려웠다. 사회· 조직 문화가 지금보다 훨씬 더 험악하고 폭력적이었다." 이런 말하고 하등 전혀 다를 바 없다.

과학 기술 없고 돈 없고 못 살던 시절에 무슨 일인들 없었겠는가? CCTV도 유전자 감식도 없고, 공산주의자의 흉악한 이간질에 서로 믿을 수가 없고, 한두 사람의 잘못이나 악행 때문에 집단 전체가 망하게 생겼는데 언제까지나 신사적이고 인간적으로만 사람을 대할 수가 있었겠나? 그땐 어쩔 수 없이 그랬고 일부 부작용도 있었지, 그 시절의 정치 행태가 그~렇게까지 이를 물고 비관할 정도가 아니었다는 게 본인의 지론이다. 원래부터 현실이 시궁창이었지, 뭔가 잘되려는 걸 누가 망쳐 놓은 게 아니라는 거다. "김 구만 대통령 됐으면, 장 준하만 대통령 됐으면 민주주의가 뭐 어떻고, 친일 척결만 잘했으면.." 이런 식으로 전혀 생각하지 않는다.

민주주의라는 건 정치 제도이고, 정치 제도는 생각보다 아주 상대적인 개념이다. 까놓고 말해 세종대왕 급의 아주 유능한 1인 독재자가 있으면 굳이 n년 주기로 대통령을 힘들게 새로 뽑아야 할 필요가 있겠나.. =_=;; 하다못해 지금도 이 사회 시스템으로는 답이 없으니, 확 다 갈아엎고 강력한 독재자가 좀 나와야 된다고 생각하는 사람들이 있는데 하물며 그 못살던 시절에는 어떠했겠는가.
대통령 직선제라는 건, 뭐 이뤄낸 건 잘한 일이다만, 이게 무슨 북괴 침략으로부터 나라를 지키거나 5천 년 가난을 물리친 것만치 그렇게까지 위대하고 훌륭한 일이라고 볼 수는 없다는 것이다.

일면 독재 미화 발언처럼 들릴지 모르는 말이나, 세계 역사에서 '진짜 악의 악질적인 독재자'가 하는 짓거리를 객관적으로 관찰해 보면 저건 절대로 근거 없는 실드가 아니다. 정말 작정하고 몇천~몇만 명 이상 짓밟아 버리면 민중 항쟁, 시위? 그런 건 애초에 일어나지도 못한다. 북한과 캄보디아를 생각해 보아라. 우리나라가 저 상황에서도 예외적으로 복 받은 거 맞다. 함부로 여기나 북한이나 똑같다는 소리 하지 마라.

10여 년 전에 MBC에서 방영했던 제5 공화국 드라마는 지금 다시 봐도 굉장히 고퀄로 잘 만들어지긴 했다. 실제로는 5공보다 여전히 4공 시절 이야기가 더 많긴 하다만..
또한, 논조가 그냥 일방적으로 전땅크와 신군부를 병크 저지른 것, 잘못한 것만 부각시키는 게 목적이라는 점은 감안할 필요가 있다. 정말 객관적으로 그 시절의 역사를 다룰 의도라면 최소한 1983년의 아웅산 테러라든가 이 윤상 군 유괴 사건도 다뤘으면 하는 아쉬움이 있다. "유괴범은 듣거라. 아이가 살면 너도 살고 아이가 죽으면 너도 죽는다"라는 대사를 이 덕화 씨가 읊었으면 재미있지 않았겠는가?
그럼 다음 잡설들을 추가로 늘어놓으면서 글을 맺도록 하겠다.

(1) 난 박통의 최종 계급이 투스타인 걸로 지금까지 알고 있었는데.. 사실은 전역 직전에 명목상 포스타로 쾌속 진급을 한 뒤에 전역했다. 이건 전땅크, 심지어 후임 노 태우도 마찬가지. 다 예비역 대장이다.
이러니 김 영삼이 자기 정권 코드 네임을 '문민정부'라고 지었겠다 싶다. 군인 출신이 아니라 순수 민간 정치인이 정권다운 정권을 역사상 처음으로 잡았다고 말이다.

몇 달 전에 고인이 된 김 영삼 전대통령은 교회 장로여서 그런지 이 승만에 대해서는 좋게 말한 반면, 직접적으로 자기를 탄압했던 박 정희에 대해서는 늘그막까지도 혹평과 악담 스탠스를 바꾸지 않았다. 실제로 그는 박통 말기에 이 정권은 얼마 못 가 무너질 것이고, 그것도 아주 비참하게 무너질 거라고 저주를 내리기도 했다.
보통은 둘 다 좋아하거나 둘 다 싫어하고, 하나만 고르라면 차라리 박 정희를 이 승만보다 더 선호하는 경우가 많은데 김 영삼과 같은 성향은 좀 흔치 않아 보인다.

(2) 이 승만, 장 면, 윤 보선, 최 규하, 노 태우는 다 영어를 작살나게 잘한 정치인이었다. 학구파 기질이 있었다. 거기에다 지금 레이디 가카도 영어를 포함해 외국어에 일가견이 있다는 건 잘 알려진 사실이고.
그에 반해 전땅크는 공부 타입은 아니고 체력, 리더십, 인맥 연줄, 사회성처럼 사업가나 정치인에게 어쩌면 더 필요한 아날로그스러운 자질이 충만했던 타입이다.

(3) 전땅크는.. 좀 얄미운 구석은 있다만, 그래도 대통령으로서 인사 배치와 리더십은 나쁘지 않았다. 군인이던 시절엔 1.21 사태 때 큰 전공 세우고 나중에 그의 주도하에 제3 땅굴까지 발견했다. 그리고 아까도 잠시 언급했지만, 집권 중에 이 윤상 군 유괴 사건을 잘 해결하고 사형 집행 잘해서 사회 정의를 실현한 것도 잘한 점이다.
잘한 건 잘한 거다만.. 돈 많은 거 알고 있다, 선고받은 뇌물 추징금은 빨랑 뱉어라. -_-;;

Posted by 사무엘

2016/01/29 08:44 2016/01/29 08:44
, , , ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1187

겨울왕국 (Frozen)

우리나라는 동북 아시아 CJK 중 유일하게 12월 25일 성탄절이 빨간날이다. 그리고 그로부터 딱 1주일 뒤에 있는 1월 1일 신정도 빨간날이다.
지난 2015년은 성탄절과 신정이 금요일이고 그 뒤에 토요일과 일요일이 이어져서 황금 연휴가 두 주 연속으로 있었다. 그 사이 기간을 연차 휴가로 연결하면 직장인도 사실상 겨울방학 기분을 낼 수 있었을 듯하다. 장기간 외국 여행도 가능하다.
그래서 그런지 금요일 오후 당일은 도로도 왕창 막히고 지하철도 혼잡했다. 그러나 연휴 동안은 도로와 지하철이 텅 비어서 한산했다.

그때는 밤 10시에 텔레비전에서 이색적인 프로가 방영되었다.
12월 25일엔 종교 케이블 방송도 아니고 공영 방송인 KBS1에서 주 기철 목사 다큐를 방영했으며, 그 다음날 26일 같은 시각엔 OCN에서 그 이름도 유명한 월트 디즈니 <겨울왕국>을 방영했다.

본인은 전국· 전세계가 Let it go로 열광하던 그 시절에도 <겨울왕국>을 보지 않았다. 너무 바빠서..;; 그 대신 얼마 후 개봉했던 <신이 보낸 사람>은 봤다.
그로부터 2년에 가까운 시간이 지나서 TV 방영이 될 정도가 돼서야 <겨울왕국>을 보게 됐다. 도대체 무슨 내용인지? 저 노래들이 어느 문맥에서 등장하는지가 궁금하기도 해서 주의 깊게 시청했다.

사용자 삽입 이미지
궁극의 뒷북인 주제에, 저걸 보며 아이디어 메모를 남겨 놓은 게 한 페이지가 넘었다. =_=;; 주 기철 목사에 대해서도 지금까지 내 블로그에서 다룬 적이 거의 없었던 것 같긴 한데, 일단은 겨울왕국 얘기부터 먼저 하겠다.

- 연관 검색: 제목이 '테이큰'처럼 '-en'형 불규칙 동사의 과거분사형 한 단어로 구성되어 있어서 인상이 왠지 좋게 느껴졌다. Frozen. 참고로 난 '테이큰' 광팬이다.;;

- 연관 검색: 극지방 근처 북유럽 하늘 → 오로라 → 안나와 엘사 → 아 맞다 옛날에 "오로라 공주" 이런 거 나오는 만화영화가 있었는데.
검색을 해 보니 80년대 말에 <SF 서유기 스타징가>, 국내에서는 <오로라 공주와 손오공>이라고 소개된 일본 애니가 있었다는 걸 확인했다.
일본은 그렇고 비슷한 시기에 미국산 애니로는 <우주 보안관 장고>가 있었다. 보안관이라니 역시 발상이 미국스럽다..;; 내가 '텍사스'라는 단어를 태어나서 최초로 접한 매체가 저거였다. '캘리포니아'는 건포도 제조지로 처음 접했고.

- 연관 검색: '안나'라는 이름은 포카혼타스에서는 인디언들 언어로 작별 인사 '굿바이'라는 뜻인 게 와 닿는다. 기억하시는지? 만났을 때 인사인 '윙가포'의 반의어이다.

- 잠깐 깨알같이 등장하는 룬 문자로 쓰인 책이 인상적이었다.

- 월트 디즈니는 내가 알기로, 없는 눈을 CG로 만들어 내는 기술이 세계 최정상급이라고 들었다.
하긴, 대전 액션 게임들이 눈 덮인 바닥을 실시간으로 렌더링하는 것도 보면 혀를 내두를 지경이다. 사람이 그 위로 밟거나 자빠지면 자국이 물론 패인다.

- 엘사는 뭔가 초월적인 자기 능력을 컨트롤을 못 한다는 점에서 가위손 같기도 하며, 섬뜩한 쪽을 더 부각시키면 M에 나오는 주인공 박마리 같기도 하다.
애들의 기억을 지우네 뭐네 하는 게 M스럽게 느껴지며, 가위손의 경우 거기에도 나름 얼음으로 조각품 만드는 장면이 나온다.

사용자 삽입 이미지

- 성경에 따르면 예수님은 액체 상태의 물 위를 걷긴 했는데, 엘사는 아예 물을 실시간으로 꽁꽁 얼려 버려서 얼음 위를 달려간다. 물이 비열이 얼마나 높은 물질인지를 생각한다면 대단한 능력이 아닐 수 없는데, 어느 게 더 기술 레벨이 높은 건지는 내가 판단을 못 하겠다.

- 안나는 정말 '금사빠'다. "나 미친 소리 좀 해도 돼? 나랑 결혼해 줄래?" /
"나 더 미친 소리 좀 해도 돼? 응! 그럴게! ^^" 우와 정말..;; ㄷㄷㄷㄷ
그 반면 한스는... 라이온 킹 Be prepared 같은 악역 노래 하나 없이 관객까지 뒤통수 칠 정도로 180도 돌변하는 게 디즈니의 관행상 이례적이다.

- 눈사람 올라프는 정말 플라나리아 급의 초재생능력의 소유자이다. 사지가 잘리고 데굴데굴 굴러도 살아 있는데, 그래도 녹으면 죽는 듯하다. 플라나리아도 사지가 1/n로 짤려도 다 살아나지만, 살고 있는 물이 조금만 더러워지면 녹아 버린다. 세포 구조가 아주 단순한 덕분에 외부적인 생존성은 강하지만, 복잡한 물질대사를 할 수 없어서 내부적인 생존성은 쥐약이기 때문임.

- 주인공이 타고 있던 말이 도망가고 겨울에 눈 쌓인 숲 속에서 늑대 떼에게 쫓기는 것, 그리고 악당들이 주인공이 사는 산 속의 성에 쳐들어가는 건.. <미녀와 야수>를 쏙 빼닮았다.

- 영하 수십 도 이하의 혹한에서 쇠붙이 수갑이 깨져 버릴 수 있는지는 잘 모르겠지만, 주석(Sn)은 실제로 그렇게 부스러진다. 이것 때문에 남극 탐험을 갔던 영국의 스콧 일행, 그리고 러시아로 원정 갔던 나폴레옹까지 낭패 보고 고생했었다.

- 기온이 올라서 현실에서 주변의 눈이 녹는 장면은 저 영화와는 비교도 할 수 없을 정도로 훨~씬 더 지저분하다. 곳곳이 축축하고 도로는 온통 진흙투성이가 되고...;;
그리고 군대에서 제설의 트라우마를 경험한 분이라면 애초에 겨울왕국 같은 영화가 결코 낭만적으로만 느껴지지 않을 것이다.

- 영어에서 heart는 사람의 장기인 '심장'도 되고 추상적인 '마음'도 되는 중의적인 단어인지라 성경 번역에서도 다루기가 까다롭다. 그래서 결말부에서 이런 대사도 나오는 게 인상적이었다.
한스: 어, 언니가 니 heart를 얼려 버렸잖아? (그런데 너 어떻게 생물학적인 목숨이 붙어 있지?)
안나: 지금 여기서 heart가 얼어붙어 있는 놈은 너뿐이지! (너 완전 인간 말종이야)

- 겨울왕국과 비슷한 분위기의 다른 매체로는 영화 <투모로우>, 이말년 씨리즈 제100화 <얼음탑의 마법사들>, 계몽사 어린이 세계 명작 미국편 <샴라크의 크리스마스>를 참고하면 될 듯하다. 게다가 이말년 씨리즈는 겨울왕국보다 훨씬 먼저 만들어진 작품이다!

사용자 삽입 이미지
"고급 얼음 마법을 잘 쓰기 위해선 마음을 차갑게 하는 것이 중요하지. 지금부터 한 명씩 나와서 쌀쌀맞게 대하는 연습을 한다. 실시!"

- "몇몇 좋은 부분이 있지만 기본적으로 애들 영화입니다.", "전형적인 디즈니 영화입니다."라고 SNS에서 영화에 대해 본인에게 힌트를 준 분이 있었는데, 본인 역시 이에 적극 공감한다. 결말이 좀 허탈하고 오글거리게 느껴질 수도 있다.
고전 게임 <보글보글> 오락실판의 해피 엔딩에 이런 말이 나오지 않던가. 딱 그 스타일이다.

사용자 삽입 이미지
Congratulations!
Now you found the most important magic in the world.
It's "LOVE" & "FRIENDSHIP"!

Posted by 사무엘

2016/01/26 19:32 2016/01/26 19:32
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1186

대한민국의 연혁은 since 1919일까, 1948일까?
이건 안 중근은 의사인가 장군(중장!)인가, 한글은 총 몇 자인가,
우리나라에서 제일 높은 산은 백두산인가 한라산인가.. 뭐 그런 급으로 관점에 따라 답이 달라지는 말장난에 지나지 않아 보이는 질문이다.

건국절 드립을 치면서 1948을 미는 분들은 잘 알다시피 이 승만 대통령의 건국 공로를 띄워 주는 경향이 있다.
그런데 정작 이 승만 정권은 그 당시의 각종 관보에서 since 1919를 적극 밀면서 건국 29주년, 30몇 주년 그런 표기를 썼었다. 이건 뭐 문헌상으로 확인 가능한 팩트이며, 건국절 드립을 싫어하는 사람들이 증거로 제시하곤 한다.

사용자 삽입 이미지

왜 1919를 강조한 걸까?
그렇게 함으로써 남한, 대한민국만이 임시정부의 이념을 온전히 계승했고 한반도의 유일하게(one and only) 합법적인 UN 승인 정권임을 강조할 수 있기 때문이었다. 게다가 이 승만 자신도 한때 임시정부의 대통령이기도 했으니 말이다.

이 와중에 북한 따위는? 라이벌은 고사하고 아예 존재감 자체를 인정하지 않았다. 그냥 없는 놈 취급하고 무시했다. 마치, 일본에서 아무리 X랄을 하든 아랑곳하지 않고 우리나라에서 독도에다 군대가 아닌 경찰을 배치하고 있는 것처럼.
그러니 북한은 1919를 뺏긴 대신, 타이타닉 호가 침몰하고 수령님이 탄생하신 해에다가 억지로 정통성을 연결하여 주체 원년이라고 갖다붙이게 되었다. 그리고 그와 동시에 그들의 역사에서 유 관순이니 삼일 운동, 임시정부 따위는 아오안이 됐다.

그런 관점에서 보면 1948년의 남한 단독 정부 수립은 막 그렇게까지 대단하게 유세를 떨 일이 아니었다. 그래서 이 승만 정부는 오히려 날짜조차도 티를 안 내려고, 의도적으로 8월 15일 광복절과 동일하게 날짜를 맞췄다! 더 일찍 선포를 하고 하루라도 더 빨리 미군정을 졸업할 수도 있었지만 광복절로 미룬 것이다. 1948년 스타트를 너무 강조하는 건, 남한의 격을 비슷한 시기에 새로 정부를 수립한 북괴의 격과 동등하게 격하할 수도 있다고 봤던 듯하다.

그럼 1919에 비해 1948이 아무 의미가 없느냐 하면 또 그렇지도 않다.
1919년 건국은 지금 실질적인 대한민국의 역사에서 냉정하게 비춰 보자면, 명목상 상징에 가까운 선언일 뿐이다. 일제로부터 해방되기 전인 1945년 이전에, 상하이 망명 신세이던 임시정부가 한반도에 실질적인 통치력을 행사하고 있었다고 볼 수는 없다. 영토나 국민은 그렇다 치더라도 주권이 여전히 없음은 명백하지 않은가.

마치 안 중근이 위대한 일을 했으며 만약 어느 주권 국가의 정규군에서 장교로 복무했다면 장군감이 되었을 가능성이 높긴 하지만, 현실에서 그가 실제로 정식 군 장성은 아니었던 것과 같은 이치다. 또한 남극이나 달· 화성에다 영토 선언을 해 놨지만 당장 그 땅에서 할 수 있는 건 현실적으로 아무것도 없는 것에다가도 비유할 수 있다.

비록 해방 자체는 우리 힘이 아니라 국제 정세에 의해 얻은 것이라 치지만, 북괴의 적화통일 야욕을 막고 공산주의와는 단호한 분리를 감행하고, 자유 민주주의 이념으로 당당히 UN 승인 독립 국가 간판을 내건 1948년 레알 스타트도 이제 와서는 존재감이 결코 무시되어서는 안 된다고 본다. 심판의 선고와 실제 집행의 차이랄까? 특히 요즘은 국가 정체성을 부정하고 비하하는 온갖 악독하고 해로운 역사관들이 사람 심성을 망쳐 놓는 시기이니 말이다.

비록 그 스타트의 주역들은 겸손해서, 혹은 전략적인 이유가 있어서 그걸 막 내세우지 않고 숨기고 광복절과 오버랩까지 시켰지만, 지금은 그 '건국'의 순간도 재조명될 필요가 있다. 뉴라이트네 수꼴이네 일베충이네 하는 별 희한한 비방이 두려워서 진실을 말하는 걸 두려워할 필요는 없다.

요컨대 대한민국의 '정통성'을 강조하고 싶으면 1919를 부각시키면 되고, '정체성'을 강조하고 싶으면 1948을 밀면 될 것이다. 이 정도면 애초에 서로 싸울 필요 없이 선호하는 연대를 '취존'(?)해 주면 될 것으로 여겨진다. 덧붙이자면, 그 옛날 3·1 운동 당시에도, 구호의 명칭이 '조선 독립 만세'가 아니라 대한 제국에서 모티브를 딴 '대한 독립 만세'였다는 점도 생각할 필요가 있다.

검색을 해 보니 본인과 비슷한 생각을 하는 분이 이미 꽤 오래 전에 신문에 칼럼을 기고해 둔 게 있다. 그거 링크를 소개하며 이 글을 맺겠다. 저기서는 정체성 대신 정당성이라는 용어를 썼다.

Posted by 사무엘

2016/01/24 08:31 2016/01/24 08:31
,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1185

본인은 초등학교 때 GWBASIC으로 프로그래밍을 시작했다. 8비트나 자기 테이프 같은 건 경험하지 못했고 16비트 교육용 PC가 최초로 프로그램을 짜 본 컴퓨터 환경이었다. 중학교 때는 전국 PC 경진대회가 정보 올림피아드로 바뀌는 것을 겪었다. 그리고 비슷한 시기에 이 상협 씨던가 1990년대 후반에 <칵테일>이라는 멀티미디어 저작도구를 개발해서 벤처를 차리는 것을 봤다. 지금 그분은 언론에 일체 등장하지 않고 있다.

우리나라의 교육 제도가 너무 일률적이고 꽉 막혀 있다고는 하지만 그때는 그나마 그 분위기에 많이 편승하는 편이었다. "나이 타파, 학벌 타파, 한 가지만 잘해도 대학 간다, 하나에 미쳐야 산다" 이러던 시절이었으며, 본인 역시 그런 풍조의 덕을 봤다.
내가 그때 컴퓨터보다 새마을호를 먼저 많이 타고 여행을 많이 다니면서 Looking for you를 들었으면, 난 컴퓨터 대신 철도를 직업과 전공으로 선택하게 됐을 것이다. 그래도 철도는 컴퓨터 프로그래밍만치 학교 교육과정하고는 완전 딴판인 오덕질을 요구하지는 않았을 것이기 때문에 난 지금과는 꽤 다른 인생을 살고 있지 싶다.

뭐, 지금은 그때에 비해 컴퓨터 프로그래밍 특기자에 대한 거품이 많이 빠졌다. 일류 공대들의 컴공/전산학과의 입결은 2000년대 초반보다 훨씬 더 낮아졌다. 사실은 나조차도 전형적인 IT 엔지니어 형태의 길을 갈 사람이 아닌 건 오래 전부터 스스로 느끼고 있다.
기술은 끊임없이 상향평준화하고 있고 어지간한 건 다 오픈소스다 뭐다 하면서 무료로 풀리고 있는데, 앞으로 컴퓨터 코딩만으로 무슨 창의적인 물건을 더 만들 수 있으며, 먹고 살기 위해 나아가야 할 길이 무엇인지는 잘 모르겠다. 난 그런 건 모르겠고 단지 아무도 관심 안 갖는 한글 입출력 기술 쪽 연구만 하고 있다.

이런 와중에 칵테일보다도 더 전, 까마득한 옛날에 1980년대에도 언론에 이름을 날렸던 10대 고딩 프로그래머가 국내에 있었다는 사실에 새삼 눈길이 간다. 이 글에서는 두 분을 소개하고자 한다.

먼저, 박 현철 씨.
고등학교 재학 시절에 컴퓨터 하드웨어의 조립만으로는 한계를 느끼고 프로그래밍 공부를 직접 시작했다. 그래서 하드웨어를 직접 제어하여 (보아하니) 일종의 전자식 타자기처럼 한글 문장을 찍어 주는 초간단 한글 워드 프로세서를 개발했다. 무려 1982년의 일이다.
저 때가 얼마나 옛날이냐 하면, 한글 입력과 직접적인 관계가 있는 지금의 표준 KS X 5002 두벌식 글자판이 거의 저 무렵에 제정되었다. 그리고 국내 열차 승차권의 전산 발매가 시작된 게 1981년이며, 그것도 한번에 왕창 된 게 아니라 경부선 새마을호부터 시작해서 1984년까지 끌었을 정도이다.

당시 이분을 소개한 TV 동영상을 한번 보시라.

별도의 하드웨어 없이 소프트웨어만으로 화면과 프린터로 한글을 찍는 프로그램이라니!
워드 프로세서라는 개념이 없던 시절이어서 프로그램의 이름이 그냥 '한글 워드 프로세서 버전 1.0'이었다.
이걸로 이분은 겨우 17세의 나이로 전국적으로 매스컴을 타고 일약 스타가 됐다. 굴지의 대기업들 전산실에서는 스카웃에 유학 등 각종 러브콜을 보냈다고 한다. 사람들이 그 당시 비슷한 연배의 천재이던 김 웅용 씨를 신기하게 여겼던 것처럼 말이다.

하지만 이분은 그런 지나친 관심을 부담스러워했으며, 당장의 부귀영화보다는 그저 '자유로운 영혼을 지닌 개발자' 노선만을 고지식하게 추구했던 것 같다.
그로부터 30여 년의 세월이 지나서 50대 중년이 된 이분은 작은 회사에서 프로그램을 개발하며 일단은 아직까지도 개발자로 종사하고 계신다. 잠시 미국에도 갔다 오고 창업을 하기도 했지만, 운이 없었는지 사업 수완이 부족했는지 실패하고 빚도 지고 고생을 많이 했다고 한다.

관련 신문 기사: 스티브 잡스를 꿈꿨지만 현실은 참담했다

사실 나중에 알고 보니, 그와 함께 동업을 사람들도 그저 그의 유명세와 재능을 이용만 해 먹으려는 먹튀형이 많았다고 한다.

오, 나름 이념 쪽의 소신을 밝힌 것도 있다. "국내의 많은 진보 인사들이 잡스를 존경한다는 사실에 난 충격을 받았다. 잡스는 (빌 게이츠와 같은 급의 세계정복만을 이루지 못했을 뿐) 여러 행적으로 볼 때 악덕 독재 경영자의 전형이다. 그런데도 한쪽에서는 한진 중공업 김 진숙(노동 운동가)을 옹호하면서 다른 한쪽에서는 스티브 잡스를 맹신하다니, 그건 논리적인 모습이 아니라고 본다."
빌 게이츠만이 절대악이고 더구나 그의 대안이 스티브 잡스라고 생각하는 분이 있다면 저분의 말을 한번 곱씹어 봤으면 싶다.

그리고 최근에 또 이분의 인터뷰 기사가 인터넷에 소개됐는데..
이분은 그 어린 나이와 그 옛날에 한글 워드 프로세서를 개발한 분답게 굉장한 '한글빠'라는 것이 밝혀졌다.

관련 신문 기사: 한글은 세종대왕이라는 천재가 후손들에게 준 선물

한글빠 + 고딩 나이로 한글 입력 프로그램을 만들고 지금은 철도 관제 소프트웨어를 개발한다니..
난 고딩 때 날개셋 한글 입력기 1.0을 만들었으며 지금은 완전 철덕이다. 처지만 빼면 여러 모로 완전 나의 롤모델이 아닐 수 없다.
꼭 뭐 돈방석 위에 앉아야 하나, 자아 성취를 이뤘다면 저 정도도 충분히 성공한 게 아닌가..;; 엄청 고지식한 것까지도 나랑 완전 똑같다.

그 다음으로 비슷하게 주목받은 분으로는, 고딩 때 최초의 "한글 롤플레잉 게임"인 <신검의 전설>(1987)을 개발한 남 인환 씨가 있다.

사용자 삽입 이미지

프랑스에서는 같은 나이의 어느 괴수 고등학생이 Another world를 만들었다지만, 그래도 그보다 전에 우리나라에서는 애플 2 어셈블리를 독학한 고등학생이 국내 최초의 상용 게임을 만들어 냈다니 참 대단하고 자랑스러운 일이 아닐 수 없다. 한글 출력, 그래픽, 기획 등등 다 혼자 했다는데, 학교 공부를 어지간히 땡땡이 치지 않고는 이런 작품을 만들 수 없었지 싶다.

그는 똑같이 애플 2 플랫폼에서 <페르시아의 왕자>를 만든 조던 메크너처럼 영상 종합 예술에 관심이 있었는가 보다. 뭐, 게임 개발자로서는 같이 연계해서 나쁠 게 없는 분야이다. 그는 1990년대 초엔 무명이나마 영화 배우로 잠시 활약하다가 다시 게임 업계로 돌아오고, 지금은 온라인 게임 개발사의 부사장으로 재직 중이다.

한글 워드 프로세서 같은 '애국심 마케팅 + 생산용 소프트웨어'가 아니라 게임을 만들어서 그런지, 이분이 1987년 당시에 막 매스컴을 타고 대기업 스카웃을 받았던 것 같지는 않다. 그러나 지금 와서는 게임 개발을 한 이분이 돈도 더 많이 벌고 더 잘나가고 있는 듯하다. 역시 컴퓨터 프로그래밍으로 SI 같은 품팔이가 아닌 방식으로 돈을 벌려면 게임밖에 답이 없나 싶은 생각이 든다.

...;;
본인 역시 고등학교 나이 때 컴퓨터 프로그램을 독자적으로 개발한 것 덕분에 전국 대회에서 상도 받고 언론도 타 봤다. 그런 특권을 입은 사람으로서 나 역시 가능한 한 잘됐으면 좋겠고, 그때 입상했던 프로그램이 계속해서 명맥이 유지되고, 내 연구의 뒤를 잇는 후배들이 나왔으면 좋겠다는 생각을 한다.

어린애가 컴퓨터를 뚝딱 해서 뭐 좀 비범한 걸 만들어 내면 언론에서 금방 '한국의 스티브 잡스, 한국의 빌게이츠' 드립을 치며 온갖 호들갑을 떨고 애를 막 비행기를 태운다. 그러나 그 열기가 좀 가라앉거나 그 애가 약간 실패라도 하면 분위기는 싹 바뀐다. 본인은 개인적으로 그런 냄비근성 관행부터 없어져야 한다고 생각한다.

하지만 한편으로는 그런 주목을 받는 아이도 겨우 그런 것에 일희일비 연연하지 않는 근성과 멘탈을 갖출 필요가 있다. 다 지나고 나서 생각해 보니, 그게 프로그램 개발 공부와는 별개로 필요한 인생 공부라는 느낌이 들었다. 대중을 상대로 하는 언론이 스티브 잡스보다 데니스 리치를 더 중요하게 언급해 주기를 바랄 수는 없는 노릇이니까.

그래서 <날개셋> 한글 입력기는 오늘도 8.x 다음 버전의 개발이 계속 진행 중이다. 이 세상 그 누구도 나에게서 한글 입력기 새 버전을 창조해 낼 자유를 앗아 갈 수는 없다. 정말 극소수 예외가 아닌 한은 대한민국은 아직은 '노오력'하는 사람이 인정받고 성공할 수 있는 사회가 아닌가 싶다. 부정적인 예외만 작정하고 찾자면 뭐 나보다 훨씬 천재인데도 시대를 못 타고 나서 인정 못 받고 무진장 불우하게 살다가 간 경우도 엄청 많을 테고 말이다.

Posted by 사무엘

2016/01/21 08:33 2016/01/21 08:33
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1184

옛날 글을 검색해 보니 5년도 더 전, 굉장히 옛날에 한번 텔레비전 방송 사고에 대해서 글을 쓴 적이 있었다. 그때는 말 그대로 출연자가 저지른 실수 위주로 유명한 국내 사건들을 나열했었다.
이번에는 그것보다 더 거시적인 관점에서 분류를 해 보고자 한다. 이유와 원인이야 어쨌든 최종 시청자들이 방송사에서 의도하지 않은 화면을 보게 된 일체의 사건들을 일컫는다.

다음 카테고리들은 위에서 아래로 갈수록 현실성이 떨어지며, 사건의 심각성도 그에 비례해서 더 커진다. 실수가 아니라 범죄에 더 가까워진다.

1. 출연자의 실수

생방송 중에 갑자기 돌발상황이 발생하여 출연자들이 웃음을 참지 못하고 빵터져 버리는 귀여운 유형이 많다. "나라의 경제를 얘기하고 있는데 파리가 앉았습니다"(2001)가 이 카테고리의 대표적인 예다. 한번 웃음병이 도져 버리면 마치 비행기가 실속에 빠져 버린 것처럼 출연자들이 헤어나오기가 어려운 듯.

사용자 삽입 이미지사용자 삽입 이미지

분위기를 수습하려고 MC가 나름 재치와 센스를 발휘해서 애드립을 구사한 것이었을 텐데, 오히려 그게 게스트 출연자의 웃음 고문을 더욱 가속해 버렸다. =_=;

다만, 외국에서는 생방송 중에 뉴스 기자가 현장에서 사고를 당하거나 심지어 살해당하는 방송사고도 있었다. 이건 재미있는 사고라고 볼 수는 없다.
출연자의 실수로 인한 방송 사고는 관계자가 자기 방송사 내부에서 징계를 당하는 결과는 야기할 수 있는 반면, 그래도 대외적으로 누가 경찰서 정모를 한다거나 공권력의 철퇴를 받지는 않는다. 사안이 제일 가볍다.

2. 출연자의 고의 난동

국내에서는 카우치 성기 노출(2005)이 이 카테고리에서는 아마 제일 충격적인 사례에 속할 것이다.
이것 때문에 인디 음악 하는 사람들이 몇 년 동안 방송에 나오지도 못하고 고생 많이 해야 했다. 그리고 쇼 프로는 무조건 생방송이 아니라 최소한의 사전 검열은 가능하게 5분 지연 전송을 하게 제도가 바뀌었다.
이건 스샷을 올리기가 좀 민망하니 그냥 링크로 대체하겠다. 오죽했으면 이 장면을 북한 방송 화면에다 합성하여 "천하의 개쌍놈들" 짤방이 만들어졌다.

그나저나 또 외국에서는 생방송 중에 리포터가 갑자기 권총 자살을 하는 경우가 있었다. 이건 실수의 영역은 아닐 것이다.

3. 외부인의 난입

여기서부터는 일단 해당 TV 프로의 제작과 출연에 관여하는 사람에게는 잘못이 없다. 방송 중 외부인의 난입은 비행기 사고로 치면 버드 스트라이크(조류 충돌)와 비슷한 격이다.
이 분야에서 지존으로 꼽히는 국내 방송 사고는 두 건이 있다. 먼저 "귓속에 도청장치" 사건(1988). 이건 세계 어디에 내놓아도 손색이 없을 엽기적인 사고인지라 외국에서도 소개되었다. 어떻게 겁대가리를 상실하고서 생방송 중인 뉴스 스튜디오로 침입을..? 하지만 그래도 심하게 악의적이지는 않은 정신병자의 난동일 뿐이었다는 게 다행이다.

사용자 삽입 이미지

동영상을 보면 화들짝 놀란 스탭이 괴청년을 제압하여 바닥에 철퍼덕! 패대기치는 장면이 인상적이다..;;
또한, 괴청년은 끌려 나가서 화면 밖으로 사라진 뒤에도.. 다시 한 번 "도청장~~!@#!@"이라고 단말마의 비명을 처절하게 외친다.

이 사건과는 달리, 만민 중앙 교회 MBC 침입 난동(1999)은 사안이 더 심각하다. 일개 종교 집단의 시위로 인해 공중파 방송국이 털리고 정규 방송이 중단되는 초유의 해프닝이 발생했으니 말이다.
하지만 외부인의 물리적인 난입보다 더 ㅎㄷㄷ한 단계가 있으니 바로 그것은..

4. 전파 납치

컴퓨터에 해킹이나 패킷 스니핑이 있듯이, 이건.. 방송국이 멀쩡하게 송신해 준 신호를 가로채서 다른 것으로 대체해 버리는 무지막지한 테크닉이다. 이것은 방송계의 위조지폐 내지 비행기 하이잭이나 마찬가지이며, 통상적인 방송 사고를 아득히 초월하는 범죄 행위이다. 특히 북한과 대처 중인 우리나라에서는 전파를 갖고 장난 치는 짓을 더욱 무겁고 심각하게 다룰 수밖에 없다.

단순히 기존 신호를 교란시키고 수신을 방해만 하는 게 아니라, 아예 다른 신호로 대체하는 것은 값비싼 장비가 필요하고 기술적으로도 대단히 어렵기 때문에 아무나 할 수는 없다. 음성은 그렇다 쳐도 영상은 바꿔치는 게 훨씬 더 어렵다.
그래서 그런지 전파 납치는 국내에서는 보고된 적이 없다. 세계적으로 가장 유명한 사례는 미국에서 벌어진 '맥스 헤드룸' 전파 납치 사건(1987)이다. 영화가 방영되던 텔레비전에서 몇 분 동안 갑자기 기괴한 배경에 가면을 쓴 웬 정신병자의 기괴한 엽기 퍼포먼스가 흘러나왔으니 시청자들의 충격이 얼마나 컸을까?

사용자 삽입 이미지

이건 괴전파가 대략 어느 지역에서 발신되었는지 정도만이 어렴풋이 파악됐을 뿐, 누가 왜 저질렀는지 범인은 끝내 잡히지 못하고 미제 사건으로 남았다.
저 정체 모를 아저씨는 방송국에 가지 않고, 방송국 기자를 만나지 않고도 "텔레비전에 내가 나왔으면 정말 좋겠네"를 그럭저럭 실현했다. 하지만 어렵게 기껏 집어넣은 화면엔 동요 가사처럼 "춤추고 노래하는 예쁜 내 얼굴" 따위는 없었다. 가면을 쓴 얼굴에 알아듣기 힘든 기괴한 음성, 그리고 끝에는 웬 SM스러운 스팽킹+신음 장면만이 고스란히 전파를 탔을 뿐이다.

이 글을 쓰면서 느낀 건데..
방송· 통신 내지 전파 공학이라고 해야 하나.. 저런 것도 특히 처음 개발되고 등장하던 당시엔 슈퍼 울트라 하이테크이긴 했겠다. 난 저런 건 진짜 새까맣게 모른다. 하나도 모르는 문외한이다. 근원을 파헤치려면 물리학의 전자기파부터 다시 시작해야겠지만.. 이건 뉴턴 고전 역학도 아니고 손에 잡히지 않는 물질 세계의 특성에 대해 난 도저히 이해를 할 수 없어서 GG를 쳐 버렸다.

라디오에 FM과 AM이 왜 존재하고 어떤 특성이 있는지, 중파· 단파 방송은 무엇이고 케이블 TV, 위성 TV, DMB는 무엇인지, 옛날에 무전기는 어떤 원리로 동작했고 지금의 휴대전화와는 기술적으로 무엇이 다른지, 그리고 지금의 와이파이 무선 인터넷과는 차이가 무엇인지, UHF/VHF는 무엇인지...
터널 안에서도 음성· 영상 신호가 끊어지지 않으려면 뭘 해야 하는지(자동차 내비는 터널 주행 중일 때 보정을 어떻게 하나?) 그러고 보니 옛날에 무전기는 송· 수신을 동시에 할 수 없어서(시뮬레이션 게임으로 치면 실시간이 아니라 철저하게 턴 방식!) 말을 하는 쪽이 내 말이 끝났음을 알리기 위해 '오버'라고 해 줘야 했다. 그거랑 지금 무선 전화의 기술적인 차이는 무엇인지 등등등..;;

그래도 이런 분야에도 괴수 천재는 분명 있을 것이다. 옛날엔 정말 전파를 갖고 노는 사람은 자동차 기술자만큼이나 가히 마술사라고 불리기도 했을 것 같다.
신호 상태가 안 좋거나 수신되는 신호가 아예 없을 때는 옛날에는 수상기를 통해 그저 랜덤한 아날로그 white noise와 치지지직 소리만을 접할 수 있었던 반면, 요즘은 JPG artifact를 본다. 과연 디지털 시대를  실감한다.

* 이미 다들 아시겠지만, 본인은 11년쯤 전에 공중파 텔레비전에 출연한 적 있음. ^^;;

Posted by 사무엘

2016/01/18 08:25 2016/01/18 08:25
, , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1183

1. 구한말의 매국노

옛날에 나라를 일본에다 팔아먹은 을사오적 매국노 중에 다른 사람은 몰라도 이 완용을 모르는 한국인은 없을 것이다. 사실 송 병준도 만만찮은 악질이고 후손들이 하는 짓까지 쌍으로 우주 쓰레기급임에도 불구하고 이 완용만 너무 유명하다. 하지만 그렇다 해도 그건 정당한 자업자득 인과응보이다.

결론부터 먼저 말하자면, 이 완용의 행적은 흔히 얘기가 나오는 것처럼 "저 사람이 아니었어도/없었어도 어차피 조선은 망할 처지였다, 매국은 한 개인만으로 가능한 악행이 아니다" 같은 실드를 칠 수 있는 수준이 아니다! 우파 진영에서 괜히 그런 말을 해서 친일 수꼴이라고 안 먹어도 될 욕과 오해, 거짓 고소를 쳐먹을 필요가 없다.

저 사람은 김 옥균처럼 애국을 생각하고 의도는 그게 아니었는데 결과가 안 좋게 된 그런 성향의 친일을 한 사람이 아니다. 그럼 일본을 진심으로 존경하고 좋아하는 일빠 오덕후 매니아였느냐 하면 그것도 아니다. 무능하고 부패하고 개 썩어 빠진 미개한 조선 정부보다는 선진국 일본에게 통치를 맡기는 게 근대화를 제대로 이룰 수 있고 장기적으로는 조선 백성에게 더 좋을 거라는.. 그런 순진한 의도로 매국을 한 것도 아니다.

단적인 예로 이 완용은 일본어라고는 한 마디도 할 줄 몰랐던 사람이다. 이토 히로부미와 나라를 팔아먹는 얘기를 나눌 때도 통역을 쓰거나, 아니면 간단한 담소쯤은 영어로 나눴다. 둘 다 똑똑하고 영어는 잘했으니까. =_=;; 이 완용은 죽기 전에 아들한테 유언으로 "앞으로는 또 미국이 뜰 거 같으니 그쪽으로 잘 보여라" 이런 말을 했다고 하는데 사실인지는 모르겠다. 사실이라면 정말 꺼삐딴 리의 실사판이다.

그는 성경으로 치면 발람처럼 그냥 자기 가족의 영달을 위한 기회주의자일 뿐이었다. 자기는 일본어를 할 줄 모르면서 조선 땅의 학교에다가는 일본어 시간을 잔뜩 늘리고, 3·1 운동 가담자에게는 불순분자 선동에 넘어가서 뻘짓 하지 말고 곱게 찌그러져 있으라는 공갈 담화문이나 신문에 게재했었다.

만에 하나 시대의 대세가 도저히 어쩔 수 없어서 나라를 팔아먹는 일에 관여했다 해도, 그 뒤의 태도가 어떻느냐에 따라서 실드와 평생까임권이 갈릴 수가 있는 법이다. 그러나 이 완용은 평생 일말의 반성이 없었으며 이에 대해서는 그 어떤 실드와 동정의 여지가 없다. 그 사람도 한반도에 무슨 근대적인 제도를 도입하고 마냥 나쁘기만 한 사람은 아니었다는 식의 말도 있나 본데, 그런 식이면 김 일성조차도 왕년에는 눈꼽만치 항일 운동을 한 경력이 있는 건 마찬가지일 것이다. (그리고 사실 지금의 북한 치하보다야 차라리 일제 강점기가 훨씬 더 낫다. 일제 말기로 갈수록 '훨씬'이라는 단서는 설득력을 잃겠지만.)

물론, 일제 강점기 때도 근대화가 이뤄지고 식량 생산이 늘고 인구가 느는 등, 말기의 전쟁만 아니었으면 일말의 긍정적인 면모가 있을 수 있었다. 그런 얘기 자체를 무조건적으로 금기시하지는 않아도 된다. 굳이 일제만을 욕하기 위해 조선의 탐관오리들을 미화할 필요는 없으니 말이다.

허나, 그렇게 식민지 근대화론을 최대한 감안한다 해도, 이 완용은 그와 무관하게 요리 보고 조리 봐도 완벽한 개새끼가 맞다(글자를 XX 따위로 가리는 처리를 일부러 하지 않았다). 단군의 후손이 지구상에 존재하는 한 영원무궁토록 욕과 저주를 먹을 것이며, 족보에서 이름이 파이고 후손들이 부끄러워서 혹은 무서워서 전부 외국으로 이민 가도 그건 어쩔 수 없는 귀결이다.

사실, 이 완용의 후손들은(송 병준의 후손도 마찬가지) 다 재산 잘 챙겨서 잠적하거나 외국으로 도피해 있지, 누구 말마따나 겨우 조무래기 경찰이나 군 간부로 가 있지는 않다. 그리고 숨어서 자기 재산 되찾는 소송이나 걸지 그런 사람들이 미쳤다고 시사· 정치 발언이나 하면서 자기 정체를 드러내고 광역 어그로를 끌겠는가? 얘들의 정체를 정확하게 파악할 줄 알아야 한다.

일본어를 할 줄 모르는 친일파 이 완용의 대조군이 될 만한 사람은 두 명 정도가 있다.
이 봉창 의사는 이 완용과는 달리, 일본어를 일본 토박이와 분간을 못 할 정도로 능숙하게 구사했으며 일본인 지인과 인맥도 많았다. 독립 운동을 하겠다고 김 구를 찾아갔을 때에도 김 구는 쟤가 혹시 일제의 첩자가 아닌가 오랫동안 의심했을 정도였다. 대화를 많이 나눠 보면서 이 봉창의 레알 진심을 확인한 뒤에야 의심을 풀었다.

그는 그렇게 일본 내부에서의 인맥과 접근성 덕분에 덴노가 있는 곳까지 가까이 가서 폭탄을 던질 수 있었다. 의거를 치르러 떠나는 마지막 순간까지도 그의 일본인 친구들은 그가 어디 여행이나 다녀 오는 줄 알고 배웅을 했다. 그때 히로히토 덴노가 죽거나 중상을 입었으면 역사가 또 크게 바뀌었지 싶다. 사람의 속마음은 겉으로 드러나는 언행만 봐서는 알 수 없는 경우가 많음을 느낀다.

그 다음으로, 외국인 대한 독립 유공자인 호머 헐버트가 있다. 그는 한국과 한국인을 진심으로 좋아하고 사랑한 사람이었기 때문에 한국어를 독학으로 마스터 하여 유창하게 구사했다. 그리고 한글 같은 대단한 문자를 스스로 만들어 놓고 지금까지 왜 안 썼냐고 본토 사람들에게 반문을 했을 정도였다. 구한말 때부터 이미 헤이그 특사들을 같이 도와 주고, 이 완용이 디스했던 3·1 운동을 지지한 정말 대단한 분이었다.

2. 아베 노부유키의 괴예언

그럼 다음으로, 구한말이 아니라 일제 말기에 마지막(제9대) 조선 총독이었던 아베 노부유키와 관련된 얘기를 좀 하겠다.
이 사람은 전범이며, 한국인의 입장에서는 실드의 여지가 없는 악행을 많이 저지른 사람이다. 전쟁이 더 길어지고 일제가 일찍 항복해서 물러나지 않았으면 정말 가관이었을 것이다.

이 사람은 일제의 패망으로 인해 한반도에서 철수하면서도 이런 저주에 가까운 말을 남긴 것으로 알려져 왔다. 총과 대포보다 더 무서운 세뇌라..;; 그래서 저 말은 민족주의(?) 성향이 강하고 친일파에 대한 피해의식이 많은 사람들에 의해 꽤 자주 언급되고 인용되는 편이었다.

우리는 패했지만 조선은 승리한 것이 아니다.
장담하건대 조선민이 제정신을 차리고 위대했던 옛 조선의 영광을 되찾으려면 100년이 넘는 세월이 걸릴 것이다.
우리 일본은 조선민에게 총과 대포보다 무서운 식민 교육을 심어 놓았기 때문에 이들은 서로 이간질하며 노예의 삶을 살 것이다.
보라, 실로 조선은 위대했고 찬란했지만 현재 조선은 결국 그 식민 교육의 노예로 전락할 것이다.
그리고 나 아베 노부유키는 다시 돌아온다.


아베 노부유키는 조센징 노예들을 우습게 여긴 아주 나쁜놈이었다는 건 사실이다. 그러나 본인은 이 사실과는 별개로, 저 말이 그에게서 직접 유래되었다고 생각하지 않으며, 저 말이 내용면에서 사실이라고 생각하지도 않는다. 그 이유를 몇 가지 들면 다음과 같다.

첫째, '서로를 이간질하는 노예적 삶'이라고 했는데..
한반도에 서로를 믿지 못하고 감시하고 이간질하는 노예적 삶을 조장한 진짜 주범은 소련과 그쪽을 추종한 공산주의자이다! 공산주의는 사람의 악한 본성을 최대한으로 뽕을 뽑아서 시너지 효과를 내는 사상이기 때문이다. 공산주의는 모든 인민을 평등한 거지로, 입에 풀칠하기에 바쁜 바보 노예로 만들지 않으면 유지가 되지 않는 저주받을 체제이다.

UN의 제안을 거부하고 독자적인 위원회를 발족시킨 것부터(1946년 2월) 시작하여 단독 국기와 애국가 제정(1947년), 분단과 단독 정부 수립도 북한이 먼저 시작한 거다! 아직도 이 승만이 분단의 원흉이네 정읍 발언(1946년 6월)이 민족 반역질이네 이 따위 헛소리가 내 눈에 띄는 거 난 용납 못 한다. 정읍 발언은 이미 다 발생해 있는 원인으로 인한 "대응의 결과"일 뿐, 그 자체가 원인이 아니다.

일제는 단군의 후손들에게 많은 불행을 끼쳤지만, 그래도 이념 갈등과 남북 분단에까지 관여하지는 않았다. 공산주의는 일제의 입장에서 보기에도 그저 탄압과 박멸의 대상일 뿐이었으니 말이다. 러일 전쟁에서 일본이 지고 러시아가 이겼다면 조선은 일제 식민지가 되지 않는 대신에, 러시아의 식민지가 돼서 훗날 한반도 전체가 공산화가 됐을 거라는 전망도 있지 않은가.

남한은 나라가 잘 세워진 덕분에 공산주의의 직접적인 마수는 천만다행으로 피해 갔다. 하지만 그래도 북한의 방해 공작 때문에 민주주의 내지 시민의 자유를 불가피하게 더욱 제약하게 됐고, 더 강력한 공권력이 필요해진 관계로 친일 군경 간부 청산도 제대로 하기 어려워지는 등 여러 간접적인 피해를 입었다.

둘째, '옛 조선의 영광'이라고?
일제는 조선을 아주 비하하면서 망할 수밖에 없는 나라였다는 세뇌를 일삼아 왔다. 그 예 중 하나가 바로, 멀쩡한 지리학자인 김 정호가 병신 같은 조선 정부에 의해 역적으로 몰려 옥사한 거라고 조작한 것이고 말이다. 그런 식으로 비하를 하거나, 아니면 일본과 조선은 정체성이 하나라고 내선일체를 주장했다.

이런 와중에 일제 식민 지배의 수뇌부라는 양반이 갑자기 웬 뜬금없는 '옛 조선의 영광' 드립을 공개적으로 친단 말인가? 논리적으로 앞뒤가 전혀 안 맞는다. 이 어설픈 립서비스만 없었어도 예언(?)의 신뢰성과 사실성이 크게 올라갔을지도 모르는데... 저건 이순신 장군을 존경한다는 무슨 일본 해군 제독 얘기보다도 현실성이 더 떨어진다.
일본이 부러워할 정도로 조선이 리즈 시절이었던 때를 굳이 생각해 보자면, 아마 세종대왕 시절 정도밖에 없을 게다. 그리고 그건 아베 같은 사람이 그 상황에서 갑자기 거론할 이유가 없는 너무 먼 옛날이다.

마지막으로, '옛 조선의 영광을 되찾으려면 100년이라는 세월은 족히 걸릴 것이다'를 생각해 보자. 이거 어디서 많이 들은 표현이다.
바로, 더글러스 맥아더 장군이 했다는 말 중에도 '100년 드립'이 존재한다. 6· 25 전쟁 중이던가 후던가.. 돌 위에 돌 하나 안 남은 처참한 폐허를 보고는 "한국은 이거 다 복구· 재건하려면 한 100년은 더 걸리겠다"라고 한탄했다고 한다. 그런데 맥아더의 저 말도 아베 노부유키의 말과 마찬가지로 정확하게 출처 검증이(언제 어디서 한 말?) 되지 않아서 아쉬움이 남는다.

허나, 맥아더의 말은 설령 사실이 아니라 주작이라 하더라도, 저주· 악담이 아니라 그냥 주관적인 전망일 뿐이었으며 결정적으로 이 예상은 완전히 '빗나갔다'. 비록 영토가 반토막 나고 병크와 비리도 많고 문제도 없는 건 아니지만, 세계 10위권의 찬란한 선진국이 된 대한민국이 여전히 한낱 '옛 조선의 영광'만도 못한 상태인 걸까? 본인은 그렇게 생각하지 않는다. 두 '100년 드립'은 모두 적중하지 않았다.

아베의 괴예언은 "그때 나는 다시 돌아올 것이다"라는 병맛나는 허세로 끝나는데.. 이것조차도 맥아더 장군이 필리핀에서 후퇴하면서 직전에 남긴 말 "I shall return.."을 묘하게 닮아 있다. 물론 맥아더는 나중에 진짜로 돌아와서 마치 프로토스 드라군의 생산 대사처럼 "I have returned"까지 당당하게 찍은 반면, 아베 노부유키는 그런 거 없었다.

우리나라는 이제 사실상 있지도 않은(유효 오차 범위 이내) 친일 망령보다는, 당장 현실적으로 훨씬 더 큰 위협인 이런 망령이 다시 나타나지는 않을까 주의하고 경계하는 것이 훨씬 더 지혜로운 처사라 생각된다.

폴 포트는 죽었지만 그는 언제고 시공을 초월해서 다시 나타날 수 있다.
성공한 자들을 무조건 부정한 무리로 몰아붙이고
자신의 불행한 처지가 무조건 사회 부조리 때문이라 몰아붙이고
자신의 머리로 생각하지 않고 선동가들의 장난에 놀아날 때
폴 포트는 언제고 다시 돌아올 것이다.

Posted by 사무엘

2016/01/15 08:32 2016/01/15 08:32
, , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1182

지금 와서 가만히 생각해 보니, 컴퓨터 알고리즘을 동원하여 푸는 문제들은 다음과 같은 세 범주로 나눌 수 있는 것 같다. 뒤로 갈수록 설명이 길어진다.

1. 최적해를 다항 시간 만에 구할 수 있으며, 직관적인 brute-force 알고리즘과 뭔가 머리를 쓴 알고리즘이 시간 복잡도 면에서 충분히 유의미한 차이를 보이는 문제

간단한 발상의 전환으로 인해서 속도가 드라마틱하게 빨라질 수 있고, 알고리즘에 대한 정량적인 분석도 어렵지 않게 다 되는 경우이다. 요런 게 알고리즘 중에서는 가장 무난하다. 정보 올림피아드에도 이런 부류가 가장 많이 나온다.
가장 전형적인 예는 시간 복잡도 O(n^2)가 O(n log n)으로 바뀐다거나, 지수함수 복잡도가 O(n^2)로, 혹은 O(n^3)이 O(n^2)로 바뀌는 것이다. 물론 시간 복잡도를 줄이기 위해서는 공간 복잡도가 시공간 trade-off 차원에서 추가되는 경우가 대부분이다. 중간 계산 결과들을 모두 저장해 놓는 다이나믹 프로그래밍 문제가 대표적인 예이다.

정렬, common subsequence 구하기, 그래프에서 최단거리 찾기 같은 깔끔하고 고전적인 문제들이 많다. 기하 분야로 가면 convex hull 구하기, 거리가 가까운 두 점 구하기도 있다. 하지만 세상에 산적한 문제들 중에는 이 1번 부류에 속하지 않는 것도 많다.

2. 최적해를 다항 시간 만에 구하는 것이 가능하지 않은 (것으로 여겨지는) 문제

P에는 속하지 않지만 NP에는 속하는 급의 문제이다. 이건 다항 시간 만에 원천적으로 풀 수 없는 문제를 말하는 게 아니며 개념과 관점이 사뭇 다르다. 비결정성 튜링 기계라는, 실물이 없는 이론적인 계산 기계에서는 그래도 다항 시간 안에 풀 수 있다는 뜻이다.

입력 데이터의 개수 n에 비례해서 상수의 n승 내지 n 팩토리얼 개수의 가짓수를 일일이 다 따져야 하는 문제라면 다항 시간 만에 풀 수가 없다. 그런데 실생활에는 이런 무지막지하게 어려운 문제가 은근히 많이 존재한다. 진짜 말 그대로 n!개짜리 뺑이를 쳐야 하는 외판원 문제가 대표적이고, 그래프에도 '해밀턴 경로 문제'처럼 이런 어려운 문제가 산적해 있다. 이런 분야의 문제는 소위 말하는 NP-complete, NP-hard이기도 하다.

요런 문제는 brute force 알고리즘으로는 대용량 데이터를 도저히 감당할 수 없고 그렇다고 다항 시간 최적해 알고리즘이 있는 것도 아니기 때문에, 이런 문제는 100% 최적해는 포기하고 그 대신 95+n%짜리로 절충하고 시간 복잡도는 O(n^2)로.. 뭔가 손실 압축스럽게 tradeoff를 하게 된다.
국제 정보 올림피아드에는 이런 문제가 많이는 안 나오지만 전혀 안 나오는 건 아니다. 출제된다면 답은 최적해와의 비율로 점수가 매겨지며, 프로그램 실행이 아닌 그냥 제출형으로 출제되기도 한다.

P와 NP 사이의 관계는 전산학계에서 만년 떡밥이다. 현실에서는 마치 장기간 실종자를 법적으로 사망한 것과 마찬가지로 간주하듯이 P와 NP는 서로 같지 않다고 여겨지고 있다. 이를 전제로 깔고 발표된 연구 논문들도 수두룩하다. 하지만 그게 정말로 딱 그러한지는 전세계의 날고 기는 수학자들이 여전히 완벽하게 규명을 못 하고 있다.

엔하위키에는 P!=NP임을 증명하는 사람은 전산학 전공 서적에 이름이 실릴 것이고, P=NP임을 증명하는 사람은 아예 초등학생 위인전에 등재될 것이라고 얘기를 했는데... 적절한 비유인 것 같다. 지수함수 brute force 말고는 답이 없는 문제가 좀 있어야 암호와 보안 업계도 먹고 살 수 있을 텐데..!

3. 최적해를 다항 시간 만에 구할 수 있음이 명백하고, naive 알고리즘도 실생활에서 그럭저럭 나쁘지 않은 결과가 나오지만, 그래도 미시적· 이론적으로는 최적화 여지가 더 있는 심오한 문제

말을 이렇게 어렵게만 써 놓으면 실감이 잘 안 가지만 이 그룹에 속하는 문제의 예를 보면 곧장 "아~!" 소리가 나올 것이다. 이 분야에도 어려운 문제들이 은근히 많다.

(1) 문자열 검색
실생활에서는 그냥 단순한 알고리즘이 장땡이다. 원본 문자열을 한 글자씩 훑으면서 그 글자부터 시작하면 대상 문자열과 일치하는지 처음부터 일일이 비교한다. 실생활에서 텍스트 에디터는 대소문자 무시, 온전한 단어 같은 복잡한 옵션들이 존재하며 각 글자들의 변별성도 높다(대상 문자열과 일치하지 않는 경우 첫 한두/두세 글자에서 곧바로 mismatch가 발생해서 걸러진다는 뜻). 그 때문에 그냥 이렇게만 해도 딱히 비효율이 발생할 일이 없다.

하지만 문자열 검색이라는 건 실무가 아닌 이론으로 들어가면 생각보다 굉장히 심오하고 난해한 분야이다. 원본과 대상 문자열이 자연어 텍스트가 아니라 오로지 0과 1로만 이뤄진 엄청 길고 빽빽하고 아무 치우침이 없는 엔트로피 최강의 난수 비트라고 생각하자. 그러면 예전에 패턴이 어디서부터 어긋났는지를 전혀 감안하지 않은 채 오로지 1글자씩만 전진하는 방식은 효율이 상당히 떨어진다. 이제야 좀 더 똑똑한 문자열 검색 알고리즘이 필요해진다.

퀵 정렬의 중간값(pivot) 선택 알고리즘을 의도적으로 엿먹이는 '안티' 데이터 생성 알고리즘만큼이나..
특정 문자열 검색 알고리즘을 엿먹여서 언제나 최악의 경우로 한 글자씩만 전진하게 만드는 문자열 데이터를 생성하는 안티 알고리즘도 있을 것이다.

(2) 팬케이크 정렬
a1부터 a_n까지 임의의 수 배열이 존재하는데, 우리가 이 수열에 대해 취할 수 있는 동작은 여느 정렬 알고리즘처럼 임의의 두 원소끼리의 교환이 아니다. 1~2, 1~3 또는 1..m (m<=n)처럼 첫째부터 m째의 원소들을 모조리 역순으로 뒤집는 것만 가능하다. 1 7 4 2였으면 2 4 7 1로 바꾼다는 것. n개의 임의의 수열이 있을 때 수열을 정렬하기 위해 필요한 이론적인 최대 뒤집기 횟수는 정확하게 얼마나 될까? 한꺼번에 몇 개를 뒤집건 한번 뒤집는 데 걸리는 시간은 무조건 상수라고 가정하고, 뒤집기 자체 외에 다른 계산의 비용(가령, 현 구간에서 maximum 값을 찾는 것)은 전혀 고려하지 않아도 된다.

본인은 아주 어렸을 때 GWBASIC 교재에서 이 팬케이크 정렬 문제와 같은 방식으로 수열을 뒤집어서 "사람으로 하여금 문제를 풀게 하는" 프로그램을 본 기억이 있다. 프로그램의 이름이 REVERSE였다.
이 문제는 마치 선택 정렬과 비슷한 방식으로 명백한 해법이 존재한다. 가장 큰 수가 m째 원소에 존재한다면 m만치 뒤집어서 가장 큰 수가 맨 처음에 오게 한 뒤, 판 전체를 뒤집어서(n만치) 그 수가 맨 뒤로 가게 하면 된다. 이 과정을 그 다음 둘째, 셋째로 큰 수에 대해서 계속 적용하면 된다.

그렇게 명백한 해법의 계산 횟수는 최대 2*n-3으로 알려져 있다. 하지만 이것은 그렇게 뒤집은 여파가 다음으로 큰 수들을 정렬하는 데 끼치는 영향이 감안되어 있지 않다. 물론 여기서 좀더 머리를 써 봤자 2n이던 계수가 1.xx 정도로나 바뀌지 그게 n 내지 심지어 log n급으로 확 바뀌지는 못한다. 비록 O(n) 표기상으로는 동일하지만 그렇게 상수 계수를 조금이라도 줄이는 최적화이다 보니, 알고리즘이 더 까다롭고 머리가 아프다.

마이크로소프트의 창립자인 그 빌 게이츠가 1979년에 바로 이 문제의 계산 횟수를 최적화하는 알고리즘을 (공동) 연구하여 이산수학 학술지에다 투고했었다. 이 사람의 기록은 그로부터 거의 30년이 지난 2008년에야 더 정교한 알고리즘이 나옴으로써 깨졌다. 이것은 빌이 단순히 비즈니스맨이기만 한 게 아니라 엔지니어 기질도 얼마나 뛰어났고 수학 쪽으로도 얼마나 천재였는지를 짐작케 하는 대목이다. 학부 중퇴 학력만으로도 이미 전산학 석· 박사급의 걸출한 리서치를 했으니 말이다.

(3) 행렬의 곱셈
갑자기 팬케이크 정렬 얘기가 좀 길어졌는데 다음 항목으로 넘어가자면.. 계산 관련 알고리즘도 이런 급에 속한다. 대표적으로 행렬.

일반적으로야 두 개의 n*n 정방행렬끼리 곱셈을 하는 데 필요한 계산량, 정확히 말해 두 수 사이의 곱셈 횟수는 정확하게 O(n^3)에 비례해서 증가한다. 그러나 거대한 행렬을 2*2 형태의 네 개로 쪼개고, 덧셈을 늘리는 대신 곱셈을 줄이는 방식으로 최적화를 하는 게 가능하다. 게다가 쪼개진 행렬이 여전히 크다면 그걸 또 재귀적으로 쪼갤 수 있다.
a+bi와 c+di라는 복소수의 곱셈을 위해서 통상적으로는 ab, ac, bc, bd라고 곱셈이 총 4회 필요하다고 여겨지지만 실은 덧셈을 더 하는 대신에 곱셈은 ac, bd와 (a+b)*(c+d)로 3회로 줄일 수 있지 않은가? 그런 식으로 줄인 것이다.

그렇게 해서 O(n^3)보다 이론상 작은 시간 복잡도가 최초로 제안된 게 1969년에 나온 슈트라센 알고리즘이다. 대략 O(n^2.8). 정확하게 2.8인 건 아니고 지수 자체가 로그 n 이런 형태로 떨어진다. 프랙탈의 차원 수가 로그로 표현되는 것처럼 말이다.
여기서 2.8x의 정확한 의미는 log[2] 7이다. 원래 2*2 행렬 두 개를 곱하기 위해서는 상수 곱셈이 8회 필요한데, 중간 과정의 공식들을 궁극의 캐사기 테크닉을 동원하여 변형했다. 어마어마한 양의 우회 연산을 통해 덧셈은 횟수가 왕창 늘었지만 곱셈이 8회에서 7회로 딱 1회 줄었다! (도대체 무슨 약 빨고 연구해서 이런 걸 생각해 냈을까? ㄷㄷ) 이 여파가 분할 정복법의 특성상 재귀· 연쇄적으로 적용된 덕분에 전체 시간 복잡도가 감소한 것이다.

그리고 이 바닥도 발전에 발전을 거듭한 덕분에 오늘날은 무려 O(n^2.4)대까지 곤두박질쳤다. 덧셈과는 달리 곱셈은 이런 최적화의 여지가 존재한다는 사실 자체가 아주 신기하지 않은가? 크기가 서로 다른 행렬들의 최소 곱셈 횟수를 구하는 다이나믹 프로그래밍 문제하고는 완전 별개의 영역이다.

아래의 그림을 보자(움짤임). RGB라는 세 대의 차량이 서로 부딪치지 않고 G는 그대로 위로, R과 B는 서로 좌우가 엇갈리게 빠져나가려면 어떻게 하면 좋을까? 아래의 중앙은 길이 막혔기 때문에 횡단을 할 수 없다.
결국 가운데 G는 곧이곧대로 위로 나가서는 안 되며, R과 B의 경로를 피해서 몇 배나 더 긴 우회를 해야 한다. 하지만 그래도 RGB 모두 신호 대기가 없이 서로 엇갈리는 방향으로 술술 소통이 가능하다.

사용자 삽입 이미지

자연에는 관성이라는 게 존재하니, 다리가 아니라 바퀴가 달린 자동차나 열차에게는 우회를 하더라도 이게 훨씬 더 나은 방법인 것이다.
행렬도 덧셈이라는 우회가 아무리 몇 배로 더 늘어 봤자, 아주 큰 행렬(차량 소통이 엄청 많을 때)에 대해서는 곱셈이 눈꼽만치라도 줄어드는 게 도로로 치면 신호 대기가 없어지는 것에 맞먹는 이익이 될 수 있다는 생각이 든다.

물론 행렬의 곱셈 시간 복잡도가 O(n^2)보다 더 낮아질 리는 없으며, 저런 알고리즘들은 지수를 줄이는 대신 공간 복잡도(스택 사용..) 같은 다른 오버헤드가 왕창 커졌다는 점을 감안해야 한다. 크기가 몇십~몇백 정도 되는 초대형 행렬에서 두각을 발휘하지, 그냥 3차원 그래픽용으로나 간단히 쓰이는 3*3이나 끽해야 4*4 행렬에서 적용할 만하지는 않다.

Posted by 사무엘

2016/01/12 08:30 2016/01/12 08:30
, , ,
Response
No Trackback , 9 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1181

Windows 프로그래밍의 관점에서 볼 때 대화상자는 참 독특하면서도 중요한 위상을 차지하는 GUI 구성요소이다.
대화상자에는 누구나 공통으로 갖추고 있어야 하는 동작과 처리가 있으면서 한편으로 각종 자식 컨트롤로부터 notification을 처리하는 건 대화상자마다 제각각 customize가 가능해야 한다.

그래서 대화상자 함수는 customization을 위해 사용자가 작성한 대화상자 메시지 처리 콜백 함수를 인자로 받는다. 그리고 WM_SETICON 같은 메시지를 통해 아이콘조차도 클래스 차원이 아니라 윈도우 메시지 차원에서 필요하다면 변경할 수 있게 해 놓았다.
그럼 custom 프로시저가 가로채지 않은 나머지 공통 처리들은.. 마치 DefWindowProc처럼 DefDlgProc 같은 대화상자 윈도우 프로시저를 호출하는 것만으로 전부 가능해야 할 것 같지만, 사실은 그렇지 않다. Alt+단축키 처리, 그리고 포커스 이동 시에 '확인' 같은 default 버튼의 비주얼을 바꾸기 같은 것은 대화상자 윈도우 자체가 메시지를 받는 게 아니라 각 child 컨트롤들이 키보드 메시지를 받고 있을 때 그걸 가로채서 해치워야 한다. 대화상자 윈도우가 무슨 훅킹이라도 하고 있지 않은 이상 말이다.

이런 이유로 인해 대화상자의 동작을 위해서는 message loop 차원에서 메시지를 가로채는 로직이 필요하다. 그래서 IsDialogMessage라는 함수가 그 코드에 들어가야 한다. 물론 DialogBox 함수로 modal 대화상자를 만들었을 때는 해당 함수가 자체적으로 message loop을 돌리면서 그 처리를 당연히 알아서 해 주니, 저런 별도의 함수는 우리 쪽에서 modeless 대화상자를 운용할 때에나 필요하다.

사실 저 함수는 용도를 생각하면 Is..가 아니라 TranslateDialogMessage 정도로 작명이 됐어야 했다. 그래야 오해가 없다. 단순히 쿼리에 대한 판별값을 되돌리는 게 아니라 실제로 무슨 일을 수행하기 때문이다.

뭐, message loop은 그렇다 치고, 대화상자를 대상으로 생성된 메시지는 우리가 지정한 대화상자 프로시저 → 대화상자 자체의 윈도우 프로시저(DefDlgProc) → 운영체제가 제공하는 DefWindowProc 이런 순으로 메시지를 처리하게 된다. 앞 계층에서 처리하지 않은 메시지가 다음 계층으로 간다는 뜻이다.
C++이라면 이건 깔끔한 클래스의 상속 관계로 표현할 수 있을 것이다. 그러나 Windows가 처음 개발됐을 때는 C++이 쓰이지 않았었다. 그리고 결정적으로, 모종의 이유로 인해 대화상자 프로시저와 윈도우 프로시저는 형태가 미묘하게 서로 달라져서 온전한 일관성이 보장되지 않는다.

오리지널 윈도우 프로시저는 내가 메시지의 처리를 한다면 리턴값을 바로 되돌리면 되고, 내가 처리하지 않은 메시지에 대해서는 DefWindowProc()를 해 주면 된다.

return ret; //처리한 경우
return DefWindowProc(hWnd, msg, wParam, lParam); //처리하지 않은 경우

그러나 대화상자 프로시저는 자기가 이미 DefDlgProc라는 디폴트 처리 함수(= 대화상자의 원래 윈도우 프로시저)로부터 호출을 받은 구도이다. 이것이 디자인 상으로 가장 본질적인 차이점이다.
그래서 리턴값으로는 이 메시지를 우리가 처리했는지의 여부만을 BOOL 형태로 되돌리고, 메시지 리턴값은 따로 꽤 번거롭게 넣어야 한다.

SetWindowLongPtr(hDlg, DWLP_MSGRESULT, ret); return TRUE; //처리한 경우
return FALSE; //처리하지 않은 경우

저럴 거면 차라리 함수의 인자에다가 LRESULT *pnResult 같은 포인터를 추가해서 거기로 되돌릴 수 있게라도 하지 하는 아쉬움이 남는다.

*pnResult=ret; return TRUE; //처리한 경우 -- 대안 1
*pbEaten=TRUE; return ret; //처리한 경우 -- 대안 2

그런데, 대화상자 프로시저에도... 형태가 간단한 극소수의 예외적인 메시지는 리턴값을 SetWindowLongPtr이 아니라 일반 윈도우 프로시저처럼 자신의 리턴값으로 되돌린다. 그렇기 때문에 대화상자 프로시저는 대부분의 경우 TRUE/FALSE만을 되돌림에도 불구하고 리턴값이 쿨하게 BOOL이 아니라 INT_PTR로 지정되어 있다. LRESULT도 아니고 이거 참.. 지저분하다면 지저분하다.

그 예외로는 자식 컨트롤의 배경을 칠할 브러시를 되돌리는 WM_CTL*, owner-draw 컨트롤에서 아이템 간의 대소를 비교하는 WM_COMPAREITEM, 그리고 역시 owner-draw 컨트롤에서 아이템의 바로가기 key를 지정하는 WM_(CHAR/VKEY)TOITEM이 여기에 해당한다. COM 함수라고 해도 실패를 할 우려가 전혀 없고 리턴값도 BOOL 값 달랑 하나 같은 건 굳이 BOOL *pfResult라는 인자로 주기보다는 간단히 S_OK, S_FALSE라는 자기 리턴값으로 되돌리는 게 더 나은 것과 같은 이치이다.

그리고 저 예외 메시지들은 owner-draw처럼 애초에 custom 동작을 염두에 두고 만들어진 메시지이므로 default로 넘기느냐 마느냐를 따지는 게 전혀 무의미하다. 그러니 리턴값을 바로 직통으로 사용하는 것이 더 간편하고 낫다. WM_CTL*의 경우도 컨트롤을 서브클래싱할 때에나 쓰이니 이 역시 customization과 관계가 있다.

왜 저렇게 예외가 만들어졌는지 이제 이해는 되지만, 그래도 대화상자 프로시저의 인터페이스가 구리고 지저분하고 복잡해 보이는 건 어쩔 수 없는 사실이다. 그래서 대화상자 프로시저도 윈도우 프로시저와 비슷한 구조로 만들 수 있게 하는 일종의 코딩 디자인 템플릿이 있다. MFC 같은 C++ 프레임워크는 밑바닥에서 당연히 이런 일도 다 해 주고 있지만, C만 쓴다거나 MFC보다 더 가벼운 Windows API 프레임워크를 우리가 직접 만드는 상황이라면 그 내부 디테일을 알 필요가 있다.

기본적인 아이디어는 이렇다.
운영체제의 DefDlgProc는 우리 프로시저를 먼저 호출하여 메시지의 처리 여부를 묻는다. 우리 프로시저는 그 메시지를 처리한 경우라면 리턴값 + TRUE만 되돌리면 되니 끝이다. 그 반면 처리하지 않은 경우, 내부적인 재귀호출 플래그를 설정한 뒤 DefDlgProc을 또 호출한다.
그럼 DefDlgProc는 아까처럼 우리를 또 호출하는데, 이때 우리 프로시저는 이미 설정된 재귀호출 플래그를 보고는 비로소 더 처리를 하지 않는 FALSE를 되돌린다.

또한, 리턴값을 지정할 때 메시지 종류에 따라 곧이곧대로 리턴(일부 예외 메시지들)하거나 SetWindowLongPtr을 호출하는 것은 메시지 핸들러 말고 그 아래의 static 콜백 함수에서 하면 된다.
이 아이디어를 의사코드로 표현하면 다음과 같다.

class CMyDialog {
    static INT_PTR CALLBACK DialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam);
    BOOL m_bRecur;
protected:
    virtual LRESULT DlgProc(UINT msg, WPARAM wParam, LPARAM lParam);
public:
    CMyDialog(): m_bRecur(FALSE) { }
};

//클래스에서는 아마 private로 지정되어 있을 우리 대화상자 프로시저 callback.
INT_PTR CALLBACK CMyDialog::DialogProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
    //HWND로부터 C++ 오브젝트 얻기. 훅킹을 해서 WM_NCCREATE를 잡든가 아니면 WM_INITDIALOG일 때
    //hDlg와 C++ 오브젝트를 연결하는 작업을 할 것. 이 코드에서는 그걸 생략함
    CMyDialog *obj = GetObject(hDlg);

    //BOOL값. 저 값이 true이면 재귀 상태라는 뜻이므로 그걸 false로 바꾸고, 함수도 false로 종료.
    CheckDefDlgRecursion(&obj->m_bRecur);
    //msg가 예외에 속하면 리턴값을 바로 되돌리고, 아니면 SetWindowLongPtr로 리턴값을 지정해 줌.
    return SetDlgMsgResult(hdlg, msg, obj->DlgProc(msg, wParam, lParam));
}

//각 클래스별로 오버라이드 하면 되는 가상 함수.
//윈도우 핸들은 우리 C++ 클래스의 멤버에 포함되어 있다고 가정함.
LRESULT CMyDialog::DlgProc(UINT msg, WPARAM wParam, LPARAM lParam)
{
    //재귀호출 플래그를 켠 뒤에 DefDlgProc를 호출한다.
    return DefDlgProcEx(m_hWnd, msg, wParam, lParam);
}

windowsx.h를 보면 SetDlgMsgResult, DefDlgProcEx, CheckDefDlgRecursion 같은 매크로 함수가 이런 디자인 패턴을 구현하라고 만들어진 물건들이다. 16비트 시절부터 있었고 MFC만큼이나 역사와 내력이 대단히 길다.

<날개셋> 한글 입력기는 지난 3.0때부터 GUI가 그냥 Windows API와 자체 제작 프레임워크를 사용해서 만들어졌지만, 그땐 본인은 이런 기법을 미처 생각하지 못했었다. 그래서 대화상자 프로시저들은 대충 return 1에 SetWindowLongPtr 등을 뒤죽박죽 섞어서 만들어져 있다. 그러나 저런 방법을 진작에 알았으면 대화상자 메시지 처리기도 마치 윈도우 프로시저 스타일로 일관성 있게 만들 수 있었겠다. 이제 와서 수많은 대화상자 프로시저들을 저 기준대로 고치는 것은 무의미한 지경이 됐지만 말이다.

Posted by 사무엘

2016/01/09 08:26 2016/01/09 08:26
, , ,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1180

컴퓨터 소프트웨어에서 뭔가 기능은 동일하지만 프로토콜(입출력)이 다른 두 시스템을 최상위 계층에서 중재하여 서로 이어 주는 메커니즘을 '썽킹(thunking)'이라는 용어로 표현하는 것 같다. 영한사전에 제대로 등재돼 있지도 않은 신조어인데 정확한 어원이 궁금하다. 영문 위키백과는 a subroutine that is created, often automatically, to assist a call to another subroutine라고 풀이를 하며, 그래서

  • Windows 9x에서 유니코드(W) API 호출 요청이 왔을 때, 매개변수 값을 적당히 조절해서 그에 상응하는 Ansi API를 대신 호출하고 출력 결과도 wide string 기준으로 보정하는 것
  • C++의 멤버 함수 포인터에서 다중 상속된 클래스의 멤버 함수를 호출하기 전에 this 포인터의 오프셋을 보정해 주는 전처리 함수 (보정 정보가 포인터의 내부에 있지 않고 그냥 또 다른 함수를 생성해서 때우는 경우)

이런 것들도 다 넓게는 썽크/썽킹이라고 부른다. 그리고 썽킹을 수행하는 함수를 썽크 함수라고 한다. 다만 Windows에서 썽킹은 컴퓨터 아키텍처의 장벽을 극복하는 호환성 유지 작업을 가리킬 때 주로 쓰인다. 16비트와 32비트 사이, 그리고 요즘은 32비트와 64비트 사이에서 말이다.
그래서 그런 썽킹 시스템을 WoW라고 부른다. 월드 오브 워크래프트...가 아니라 Windows on Windows의 약자로, 말 그대로 Windows 위에서 Windows를 또 가상으로 구동한다는 뜻이다.

오늘날 우리가 사용하고 있는 x86-64 아키텍처는 과거 32비트 IA32의 superset 구도로 설계되었다. 그래서 32비트 x86 코드도 에뮬레이션이 아니라 네이티브 직통으로 실행 가능하기 때문에 Windows 입장에서는 소프트웨어적으로 32비트와 64비트를 모두 지원하기 위해 특별히 힘든 일을 해 줘야 할 건 없다. 64비트 시대에도 어마어마한 32비트 유물들은 비록 바이너리 형태가 아무리 지저분하더라도 결코 외면할 수 없는 물건임이 입증된 셈이다. 비록 성능을 추구했다고는 하지만 x86 코드를 거북이처럼 에뮬레이션으로 돌리고 다른 문제점도 많았던 IA64는 정말 시원하게 망해서 인텔의 흑역사가 됐다.;;

32비트와 64비트는 한 주소 공간 안에서 코드가 섞이는 게 전혀 불가능하며, 서로 교류하는 방법은 API나 커널 오브젝트 차원에서의 IPC 메커니즘밖에 선택의 여지가 없다. 특히 WM_COPYDATA 메시지는 16, 32, 64비트까지 세대를 넘어 두루 통용되는 대단히 훌륭한 해결사이다.
그러나 16비트와 32비트가 공존하던 시절에는 상황이 훨씬 더 지저분했다. 기존 소프트웨어와의 호환성, 그리고 부족한 PC 메모리 같은 현실적인 한계 때문이었다.

그 시절에는 기술적으로 다음과 같은 형용사가 붙은 썽킹들이 존재했다. 썽킹이 무슨 CPU 에뮬레이션까지 하는 건 물론 아니고, 주로 한 일은 최신 32비트 가상 메모리 주소와 구닥다리 16비트의 세그먼트-오프셋 주소를 그냥 상호 변환하는 것이었다.

1. Universal: 16비트 플랫폼에서 16비트 EXE가 32비트 DLL을 실행
이건 가장 원초적인 썽킹이며, 쉽게 말해 Win32s의 기술 수준이 여기에 해당한다.

2. Generic: 32비트 플랫폼에서 16비트 EXE가 32비트 DLL을 실행
이것은 32비트 Windows 9x/NT 계열이 모두 지원하는 썽크로, 방향이 universal과는 반대이다.
본인은 IME 개발자로서 이 썽킹의 존재를 자연스럽게 인지하고 있었다. 16비트 프로그램에서도 <날개셋> 한글 입력기 외부 모듈이 동작했기 때문이다. 물론 곧 오류가 나고 제대로 사용하기는 어렵지만.

Windows 9x의 경우, 16비트 프로세스 내부에서 돌아가는 32비트 코드는 마치 Win32s처럼 극도로 가난한 16비트 컴퓨터의 끔찍한 제약들이 고스란히 적용되었다. 스레드를 생성할 수 없으며 스택 크기도 기본 1MB 이상이 아니라 64KB 미만으로 팍 줄었다. 그러니 복잡한 재귀호출이나 큰 배열조차도 함부로 만들면 안 됐다.

Windows NT는 모든 운영체제의 코드가 32비트 이상이다. 하지만 그렇다고 해서 16비트 코드를 실행하는 기능 자체가 아예 없는 건 아니었으니 16비트 프로그램이 32비트 코드를 사용하기 위한 최소한의 썽킹 계층은 마련하고 있다.

16비트 EXE 안에서 동작하는 32비트 dll이 GetModuleFileName(NULL)을 해 보면 9x 계열의 경우, 16비트 EXE 이름이 아니라 그냥 kernel32.dll이 돌아온다. 그러나 NT 계열은 ntvdm.exe가 돌아온다. 16비트 코드는 아예 샌드박스 안에서 고립된 채 돌아가고, 얘와 연계하여 동작하는 32비트 DLL은 여전히 32비트 문맥이 완전히 보장된다.

3. Flat: 32비트 플랫폼에서 32비트 EXE가 16비트 DLL을 실행
이것은 Windows 9x에만 존재한다. 20여 년 전에 Windows 95가 나오고 제품의 32비트 에디션을 출시하긴 해야 하는데 방대한 16비트 기반 DLL 엔진 같은 걸 차마 다 32비트로 포팅할 시간이 없을 때, 차선책으로 쓰라고 도입된 솔루션이다.

Universal은 그냥 32비트로 빌드만 하면 혜택을 입을 수 있고 Generic도 해당 16비트 EXE에서 LoadLibrary32Ex32W나 CallProc32W 같은 썽킹 API만 새로 사용하면 썽킹이 가능한 반면, Flat 썽킹을 활용하려면 thunk 컴파일러를 이용해서 상호 교신하고자 하는 32/16비트 바이너리들에 썽크 중재용 DLL을 추가로 넣어 줘야 한다.

1~3은 성격과 용도가 제각각 다르다는 걸 알 수 있다.
과거에 아래아한글이 최초의 Windows 버전인 3.0이 개발되었을 때, 시행착오로 인해 universal 썽크만 생각했지 flat 썽크를 고려하지는 못한 듯하다. 그래서 내가 듣기로는 Windows 3.1 + win32s에서는 실행되었는데 정작, 곧 출시된 Windows 95에서는 어처구니없게도 동작하지 않았다고 한다. (NT는 모르겠음)

아래아한글이 100% 완벽하게 32비트로만 개발됐으면 이런 일이 없었을 텐데 아마 내부적으로 호환성 때문에 16비트 코드가 일부 존재했던 모양이다. 그리고 내가 들은 이런 소문들이 사실이라면, Universal 썽크는 Win32s + 32비트 EXE에서 도로 16비트 DLL을 로딩하는 것도 지원하긴 했나 보다. Windows 95에서 추가로 해야 하는 썽킹이 없이도 뭔가 되는 일이 있었으니까 말이다.
어쨌든 이 때문에 Windows 95가 발매된 1995년 말엔 그 문제를 해결한 3.0b가 신속하게 나와야 했다. 소문에 따르면 3.0a도 있었는데 이건 3.0 원판보다도 존재감이 "더" 없는 것 같다.

이런 썽킹은 커널 레벨에서 발생하기 때문에 뭔가 정보를 잘못 줘서 에러가 나더라도 애플리케이션 레벨에서는 디버깅조차 할 수 없다. 더 깊게 들어가지 않은 채로 그냥 에러가 난다는 뜻이다. 이런 건 커널 레벨 디버거를 써서 살펴봐야 한댄다.
비록 제대로 안 돌아가는 제품을 돈 주고 사서 쓰다 고생한 사용자들에게서 욕도 많이 먹었겠지만, 그래도 그 열악한 환경에서 그 방대한 도스용 프로그램을 그 제한된 시간과 예산 하에서 Windows용으로 뚝딱 포팅을 한 건 대단한 일이긴 해 보인다.

Windows 9x 시절에 썽킹과 관련된 대표적인 테크닉 중 하나는 32비트 프로그램이 지금 시스템에 남은 리소스 퍼센티지를 얻어 오는 것이었다. 그 값을 얻으려면 32비트 프로그램이 32비트 user32.dll이 아니라 16비트 user.exe의 함수를 호출해야 했기 때문에 일종의 flat 썽킹이 필요했다.

물론 운영체제가 제공하는 rsrc32.dll이 제공하는 함수를 호출하는 방법도 있지만(얘는 rsrc16.dll로 내려가고), 걔네들이 하는 일을 별도의 dll 없이 직통으로 수행하는 꼼수가 있는데.. 이건 분량이 길어지는 관계로 나중에 다시 다루도록 하겠다.
자, 그럼 썽킹과 관련된 다른 얘기도 슬슬 좀 꺼내 보겠다.

본인은 에디트, 리스트 같은 기성 컨트롤들에 보이는 명령 메시지들의 값이 16비트 시절과 32비트 이후 시절이 서로 다르다는 것을 비교적 최근에 알고서 놀랐다.
과거에는 LB_ADDSTRING, EM_SETSEL 같은 메시지들이 WM_USER 이후 영역에 있었다. 그러나 32비트에서는 이것들이 WM_USER 이내의 시스템 메시지 영역으로 옮겨졌다. 아마 대화상자 내부에서 다른 사용자 메시지들과의 충돌을 막으려는 의도도 있고, 또 얘는 WM_GET/SETTEXT처럼 프로세스 간에 문자열을 주고받을 때 운영체제가 자동으로 메모리 보정을 해 준다는 의미에서 시스템 메시지로 승격된 게 아닌가 싶다.

대화상자에서 어떤 컨트롤이 WM_GETDLGCODE 메시지에 대해 DLGC_HASSETSEL를 되돌리면 걔는 포커스를 받았을 때 텍스트 전체를 선택하라는 EM_SETSEL 메시지를 받는다. 자신이 에디트 컨트롤을 자체 구현하고 있다면 이 메시지를 저렇게 처리하면 된다.
그런데 Windows 9x에서는 저 메시지가 안 오고 WM_USER+1에 속하는 정체불명의 괴메시지가 오곤 했다. 알고 보니 저건 16비트 시절의 EM_SETSEL과 같은 값이었다.

이런 레거시들 사연들은 모를 때보다 알 때가 프로그래밍에 훨씬 더 도움이 된다. 물론 그렇다고 해도 32비트 프로그램에다가도 Windows 9x는 왜 16비트 기준의 메시지를 보내는지는 알 수 없는 일이다. Windows의 썽킹 계층은 메모리 주소/포인터 변환뿐만 아니라 GUI에서는 이런 메시지의 변환까지도 도맡아 했다고 한다.

지금은 공용 컨트롤들의 메시지가 WM_USER 밖의 영역에 있다. 얘들은 애초부터 프로세스간의 메모리 보호가 잘 되는 32비트 운영체제와 함께 등장하기도 했고 또 알다시피 복잡한 플래그들이 들어간 복잡한 구조체를 주고받다 보니, 운영체제가 inter-process간에도 메모리 보정을 해 주지 않는다.
다른 프로세스에 있는 리스트/트리 컨트롤에다가 데이터를 등록하려면 얄짤없이 훅 프로시저를 써서 그 프로세스의 문맥 안에서 해당 컨트롤을 조작해야 한다. 사실, 남의 프로세스의 GUI 컨트롤을 조작하는 변태적인 작업이 왜 필요한지는 모르겠지만 말이다.

잘 알다시피 16비트 시절엔 DLL 전역변수들이 한데 공유됐으며, 제2, 제3 EXE들이 연결됐을 때 PROCESS_ATTACH 통지가 없었다고 한다. 그러니 DLL 함수는 exe들이 자기 DLL의 context를 매번 함수 인자로 전해 줘야 했겠다. 초기화/해제도 당연히 수동으로 직접 해야 했으나.. crash가 발생해서 해제를 제대로 못 하고 레퍼런스 카운트가 꼬이면 그건 그대로 시스템 자원 누수로 이어졌다.

요즘은 레퍼런스 카운트 관리가 엉망이더라도 프로세스가 종료되면 그 프로세스가 갖고 있던 자원은 100% 회수되는 게 보장된다. 그리고 요즘은 실행이 강제 종료 당한 스레드에서 스택 메모리가 자동 회수되지 않는 것 정도만이 그나마 in-process leak인 반면, 그 시절엔 툭하면 시스템 차원에서의 자원 누수와 고갈을 아주 쉽게 야기할 수 있었다. Windows 9x는 도스와 시스템 영역 메모리가 보호되지 않는 것 정도 때문에만 불안정했지만 3.1은 이보다 훨씬 더 막장이었다.

컴퓨터 환경을 더 좋게 만들기 위한 노력은 단순히 물리적으로 회로 집적도를 높이는 것만으로 되는 게 아니며 그 자원을 효율적으로 활용할 수 있게 소프트웨어적으로도 머리를 엄청 많이 써야 했다는 걸 알 수 있다.

Posted by 사무엘

2016/01/06 08:36 2016/01/06 08:36
, , , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1179

숭고한 죽음, 영웅 이야기

1. 장기를 기증하고 죽은 어린이

'리앙 야오이'라고 중국에서 11살짜리 소년이 뇌종양을 앓다가 지난 2014년 6월 6일에 세상을 떠났다. (☞ 자세한 내용) 그런데 그 아이는 전에 학교에서 뭔가 배운 게 있었는지, 기왕 죽더라도 남에게 도움을 주고 싶다면서 장기 기증을 유언으로 남기고 죽었다.
그래서 아이의 부모는 유언을 따라 아이의 신장, 간 같은 주요 장기를 다른 환자에게 기증해 줬으며.. 그 장기 이식 수술을 마친 의사들은 아이의 시신의 옆에 늘어서서 허리를 90도로 팍 숙이고 진심으로 경의를 표했다고 한다.

사용자 삽입 이미지

"부자가 굶는 건 의사로부터 굶으라는 처방을 받았을 때뿐이다"라는 말이 있다.
의사는 남의 의학적인 생명을 관할하는 전문직이다. 그러니 부자를 강제로 굶게 만들 수 있다. 남에게 "병 빨리 낫고 싶으면 / 건강을 되찾고 싶으면 이렇게 하세요, 저건 하지 마세요"라고 고자세로 훈수를 놓으면 놨지, 의사가 남에게 저 정도로 감사와 경의를 표할 일이 평소에 얼마나 있겠는가? 그런데 환자이던 고인이 자기 장기 기증을 하면서 갔으니, 저건 정말 의대생 시절 해부 실습용 시신 기증에 맞먹는 예우를 해 줘야 할 것이다.

저 사진을 보니 문득 떠오르는 생각: 초록색 아니면 파란색의 solid color(순색) 배경을 볼 수 있는 분야가 크게 둘 있는 것 같다.

  • 외과 의사의 수술복
  • 일기예보나 일부 영화처럼 크로마 키를 사용하는 촬영 현장

(군인 전투복은 황록· 갈록 등에 가까우니 이 범주에 속하지 않음)

2. 6· 25 국군 전사자 유해

다음으로 군대 이야기이다.
이 명박 정권 시절이던 2012년 5월 25일, 6· 25 전쟁 중에 다른 지역이 아니라 '북한 지역'에서 전사한 국군 무명 용사의 유해 12구가 처음으로 우리나라로 운구되어 왔다. 정확히는 장진호 전투에서이다. 장진호는 인명이 아니라 함경남도 장진군에 있는 호수의 이름이며, 저 전투는 UN군이 트라우마급의 참패를 당했던 치열한 전투였다.

6· 25 전쟁은 잘 알다시피 (1) 초반에 남한이 대구와 부산까지 밀림 (2) 인천 상륙 작전을 계기로 확 북진 (3) 중공군 때문에 다시 후퇴 뒤, 1951년 하반기쯤부터는 지금의 휴전선 일대에서 고지 탈환 엎치락뒷치락이 2년간 계속되고 후방은 사실상 일상으로 돌아간 상태였다. 그러니 대한민국 국군이 저렇게 북쪽 끝에서 전사했다는 건 국군이 일시적으로나마 쭉쭉 북진해 있던 1950년 가을경의 일이다.

북한은 만만한 호구 겸 자존심 문제가 걸려 있는 남한하고는 손잡지 않고, 오히려 원쑤 미 제국주의자들과 협정을 맺어 자국 영토 내의 장진호 전투 전사자 유해를 합동으로 발굴했다. (이 과정에서 미국이 북한에 아마 돈 많이 쑤셔넣어 줬을 듯) 미국은 거기서 발굴된 유해를 미 합동 전쟁 포로· 실종자 사령부(JPAC)로 옮겨 신원 확인 작업을 했는데, 이 과정에서 12구가 아시아 인종으로 분류되었다.

이 단계가 돼서야 대한민국 국방부 소속의 유해 발굴 감식단이 나서서 추가 감식을 실시한 결과 그 유해는 국군 전사자로 확인됐으며, 그 중 2구는 김 용수· 이 갑수라고 신원이 완벽하게 확인되고 유족들과 연결까지 되었다! 저런 걸 도대체 어떻게 다 확인할까? 현대 과학 기술의 위대함이 아닐 수 없다.

이런 우여곡절을 거쳐서 거의 70년간을 북한 땅에 파묻혀 있던 무명 용사의 시신은 하와이로 갔다가 대한민국 땅으로 귀환하게 됐다. 위안부 할머니와 일본군 만행을 배경으로 <귀환>이라는 영화가 제작 중이라고 들었는데 이것도 또 다른 종류의 "귀환"인 셈이다.
시신은 군 수송기를 통해 서울 공항에 도착했으며, 이때는 대통령, 국방부 장관, 한미 연합사 사령관 같은 최고의 높으신 분들이 쭈욱 도열해서는 관을 향해 이등병마냥 각 잡고 거수경례를 하면서 최고의 예우를 했다.

사용자 삽입 이미지

저런 사람들이 현직에 있으면서 '살아 있는 사람'에게는 각 잡고 경례할 일이 도대체 있겠는가? 의사들이 장기 기증을 하고 죽은 아이의 시신에게 깍듯이 예를 갖추고 경례하는 장면이 떠올랐다.

남을 구하기 위해 죽음도 감수하는 직업으로는 경찰, 소방관, 군인, 보디가드· 경호원=_= 등이 있다.
이에 덧붙여 기독교 역시 나를 사랑하여 누군가가 나를 위해 대신 죽어 주었다는 걸 가르치고 믿는다. 물론 저런 세상 직업에서의 죽음과는 성격이 좀 다르며, 죽음뿐만 아니라 부활까지 있기도 하지만 말이다.

3. 불굴의 의지로 43년 만에 귀환한 국군 포로 조 창호 중위

1994년 10월 23일, 겨우 이틀 전에 성수대교 붕괴 사고 때문에 전국이 떠들썩하던 시절에, 서해상에 어느 괴선박이 남하해서 우리나라의 어업 지도선에 나포되었다. 그런데 거기에는 먼 옛날 6·25 때 납북되었던 국군 포로가 타고 있었다.

조 창호 중위(1932-2006). 그는 연세 대학교의 전신인 연희 학교를 다니다가 겨우 대학 새내기 나이 때 6· 25 전쟁을 맞이했다. 그 옛날에 대학생이면 굉장한 엘리트였으니 그는 국군 포병 장교로 임관하여 전투에 참가했다. 그러다 1951년 5월, 강원도 인제에서 중공군에게 밀려 대참패를 당했던 그 '현리 전투' 때 그는 포로로 잡혀서 북한으로 끌려갔다.

그는 다른 국군 포로들과 함께 탈출을 계획했다가 적발되어 13년간을 북한 내부의 온갖 오지에 있는 강제 노역소에서 복역하며 고생했다. 농장과 광산에서 온갖 중노동을 해야 했으며, 작업 중에 사고로 몸의 이곳저곳이 다치고 상하기도 했다.
하지만 다른 포로들이 다수가 희망을 잃고 북으로 전향해 버린 것과 달리, 그는 끝까지 전향하지 않았으며 대한민국 정체성을 부정하지 않았다.

그러다가 그는 요양을 빙자하여 변방에서 늘그막을 보내게 되었는데, 거기서 한 조선족 상인과 접촉하면서 고향의 가족들과 서신 연락이 닿고 더 나아가서는 탈북에 기적적으로 성공했다. 그래서 그는 1951년 이래로 무려 43년 만에 남한 땅을 다시 밟게 되고 가족들과 상봉했다. (북한에서 새로 둔 처자식들과는 안타깝지만 이별이지만)

그는 곧바로 병원에서 총체적인 치료와 회복에 들어갔다. 이 놀라운 소식이 전해지자 그 당시 김 영삼 대통령, 국방 장관에 육군 참모 총장까지 높으신 분들이 줄줄이 문병 와서 이 위대한 노병 영웅을 깍듯이 예우하고 격려했다.

사용자 삽입 이미지

그는 참모 총장에게 "귀환"을 정식 보고했고, 서울 현충원에 가서 실종-전사자로 처리되어 있던 자기 이름을 손수 지웠다. 국가로부터는 훈장(보국훈장 통일장)을 받았으며, 6· 25 당시 계급이었던 소위에서 중위로 진급한 뒤 곧바로 육사 생도들의 사열을 받으며 전역했다. 모교인 연세 대학교로부터는 명예 졸업장도 받았다.

그는 그 뒤 12년을 더 살다가 2006년 11월에 향년 75세의 나이로 세상을 떠났다. 그는 6· 25 당시에는 아직 정식으로 있지도 않았던 군진수칙을 43년간 몸으로 실천한 대한민국의 참 군인이었다. 국가에서 공식적으로는 없는 사람으로 간주하며 쥐도 새도 모르게 보낸 북파 공작원이 아니라, 대놓고 국가 정규군으로 전투에 참가하다가 북으로 끌려간 포로들에 대해 우리는 평소에 얼마나 생각하고 있는 걸까?

1. 나는 대한민국 군인이다. 국가와 민족을 위해 신명을 바치겠다.
(중략)
4. 나는 만약에 포로가 되더라도 아국이나 우방에 불리한 여하한 적의 권고나 우대도 거절하며 추호도 적을 돕지 않겠다.
(중략)
6. 나는 만약 포로가 되어 심문을 받더라도 계급·성명·군번·연령을 제외하고는 진술을 회피하며 아국과 우방에 불리한 서명, 기타 여하한 요구에도 응하지 않겠다.
7. 나는 조국에 신명을 바친 대한민국 군인임을 명심하고 나의 행동에 대한 책임을 지겠다. 나는 조국을 사랑하며 조국은 나를 보호하고 있음을 확신한다.
(국방부 훈령 제27호 군진수칙의 일부)

Posted by 사무엘

2016/01/03 08:33 2016/01/03 08:33
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1178


블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2016/01   »
          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:
3936314
Today:
730
Yesterday:
4175