« Previous : 1 : ... 156 : 157 : 158 : 159 : 160 : 161 : 162 : 163 : 164 : ... 215 : Next »

1.
겨울방학도 이렇게 끝이 보인다.
본인이 이번 방학 때 이뤄낸 가장 뜻 깊은 성과를 둘 꼽자면 하나는 <날개셋> 한글 입력기 6.5이고, 다른 하나는 HFT(아래아한글 전용 글꼴) 해킹 성공이다.

사용자 삽입 이미지

저 글꼴들을 MS 오피스 제품에서도 쓰고 PDF도 자유롭게 만들고, 무엇보다도 화면에 anti-alias가 된 부드러운 모습으로 보니 너무 좋다.. 근성의 reverse engineering 오덕질을 통해서 이뤄 낸 성과. ㅋㅋ 새로운 글꼴로 아무 글이나 마구마구 써 보고 싶다.

또한, 날개셋 6.5 버전은 아직까지도 프로그램을 크게 고친 부분이 없을 정도로 역대 최고로 손꼽히는 안정성과 완성도로 잘 만들어졌다. 대단히 만족스럽다. 그래서 당분간 안심하고 완전히 새로운 기능 연구와 논문 준비 등에 전념할 수 있을 것 같다.

2.
윈도우 7은 콘솔(명령창)에서 세벌식을 쓰면 '다다.' 이렇게 한글이 덧나는 버그가 있다. 왜 SP1에서도 안 고쳐진 걸까? 예전에도 언급한 적이 있지만, 이런 건 두고두고 디스를 좀 해 줘야 된다.
윈도우 운영체제는 NT 계열도 꼭 이런 이상한 버그가 역사적으로 하나씩 있었다.

과거 2000은 256색으로 들어갔다가 돌아오면 군청색 제목 표시줄의 색깔이 옅어지는 버그를 유일하게 갖고 있어서 SP4에서까지 안 고쳐졌고,
XP는 테마를 저장했다가 불러오면 Luna 모드에서도 메뉴가 클래식 모드처럼 표시되어 색깔이 이상해지는 버그가 있는데 역시 SP3에서까지 안 고쳐지고 저렇게 끝났다.

이런 이유로 인해 본인은 한글 IME 개발과 관련하여 까탈스럽고 안 좋은 추억 때문에 남들이 7 좋아하는 것만치 7을 좋아하지는 않으며, 남들이 비스타 싫어하는 것만치 비스타를 싫어하지도 않는다. -_-;; 뭐, 비스타도 희한한 버그 의심 증상이 하나 있긴 했으나, SP1에서 곧바로 고쳐짐.

3.
<날개셋> 편집기는 txt 확장자를 자기 프로그램으로 연결한다거나 하지는 않는다.
그렇기 때문에 이렇게만 놔 둬서는 윈도우 7의 jump list를 활용하지 못한다. (윈7 사용자 중에 jump list가 뭔지 모르는 분은 없으리라 생각되지만, 어쨌든 모른다면 검색 요망)

탐색기에서 txt 파일을 우클릭하여 '연결 프로그램 선택 → 찾아보기' 등을 골라서 <날개셋> 편집기를 한 번이라도 지정한 뒤(꼭, 기본 연결을 시켜 놓을 필요는 없고 이렇게만이라도), 나중에 <날개셋> 편집기의 열기 대화상자로 txt 파일을 열고 나면 그건 앞으로 jump list 에 등재되게 된다.

jump list를 좀 더 창의적으로 활용하면, 편집기는 당장 저런 기본 용도만으로도 충분할 것이고(최근 파일 열기),
변환기는 클립보드 변환 같은 자주 사용할 만한 task를 등록해 놓을 수 있겠으며,
입력 패드는 자주 쓰는 보조 입력 도구를 실행과 동시에 바로 꺼내 놓게 할 수 있겠는데 더 자세한 활용법에 대해서는 좀 더 시간을 두고 고민해 봐야겠다.

4.
얼마 전엔 드디어 <날개셋> 한글 입력기 프로젝트를 비주얼 C++ 2010용으로 정식으로 포팅해서 빌드해 봤다. 특이사항으로는,

- 사소한 컴파일 에러가 있었으나, 더 깔끔하고 분명한 코드를 만드는 데 도움이 되는 에러였으며 쉽게 잡았다.
- VS 2010의 빌드 시스템은 $(TargetPath) 변수의 값을 예전과는 다른 방식으로 부여하는 듯하다. 그래서 이걸 조정하는 노가다를 매 프로젝트들마다 좀 해야 했다.

이것 외엔 딱히 트러블이 없었으니 무리 없이 잘 갈아탔다.

동일한 옵션으로 빌드했지만 x86 바이너리(32비트)들은 VS 2008과 비교했을 때 크기가 살짝 더 커졌고, x64 바이너리(64비트)들은 살짝 더 줄어들었다.
같은 코드를 빌드했을 때 바이너리 크기가 조금씩 더 커지는 건, VC6 이래로 개발툴이 업데이트되면서 비교적 일관되게 관찰되는 추세였다. 최적화가 인라이닝 등 코드 크기를 더 키우는 쪽으로 행해져서 그런 것 같다.

비주얼 C++ 2010은 C/C++ 언어도 빌드 중에 'Linking...'이라는 말이 안 뜨고 generating code...에 링킹이 포함되는 듯하다.
똑똑한 인텔리센스는 부러운 점이긴 하다만, 너무 커진 덩치, 이질감이 생긴 GUI와 도움말 시스템 때문에 2010은 개인적으로 언제쯤 도입하게 될지 모르겠다. 다만, 리소스 에디터가 드디어 윈도우 비스타의 PNG 내장 아이콘(256*256)까지 제대로 표시해 주는 점은 마음에 든다.

5.
내 경험상 윈7은 USB 메모리(스틱 or 외장 하드) 매체의 제거를 예전 OS에 비해 더 관대하게, 더 빨리 허용해 주는 것 같다. 해당 드라이브를 사용하는 프로그램들을 다 껐는데도 '사용 중이기 때문에 제거 못 함' 꼬장 때문에 할 수 없이 아예 OS를 로그오프하거나 아니면 그냥 강제로 매체를 제거해 버린 일이 거의 발생하지 않았다.

그리고 다른 얘기이다만, 윈도우 7은 Taskbar에 있는 각종 프로그램들 아이콘과 시스템 트레이의 아이콘을 드래그하여 마음대로 순서를 바꿀 수 있는 게 무척 인상적이다.
7에서 새로 바뀐 작업 표시줄은, 실행 중인 프로그램과(동일 프로그램이 중복 실행된 것 포함) 그렇지 않은 프로그램의 구분이 잘 되아 보이는 걸 개인적으론 안 좋게 생각했었다. 그러나 한동안 써 보니까 이게 그럭저럭 나쁘지 않은 디자인이라는 생각이 든다.

무엇보다도, 창을 몇 개씩 띄워 놔도 많이 띄웠다는 느낌이 심리적으로 안 드는 게 인상적임.
옛날에 윈9x의 전통적인 시작 메뉴 시절엔, 컴을 몇 년 쓰면서 수십 종류의 프로그램들을 설치하고 나니까 '프로그램' 메뉴 옆으로 프로그램 리스트가 두 칼럼 이상씩 차지하는 크고 아름다운 면적으로 주렁주렁 달렸던 거 기억하는가?

또한 인터넷 서핑하다가 브라우저 창이 열몇 개씩 넘어가니까 작업 표시줄 모습이 가히 가관으로 바뀌던 것도 기억하시는지? 윈도우 7은 복잡도를 제어하는 디자인에 무척 신경을 썼다..

6. 윈도우 비스타와 7 모두, 로그인 화면에서 암호를 입력하고 나면, 암호가 맞든 틀리든 일단 Welcome부터 출력하면서 설레발을 치다가 그 뒤에 암호가 틀렸으면 사용자 진입을 거부한다. “안 돼! / 돼!”도 아니고 츤데레도 아니고 이건 도대체 무슨 디자인일까?? -_-;;
암호가 맞을 때만 Welcome을 출력하게 개선되면 좋겠다.

7.
윈도우 9x는 프로그램을 조심해서 짜는 데에 도움을 준다.
NT 계열에서는 해제했던 메모리를 중복 해제하거나, 자원을 반납· 해제하는 걸 깜빡하는 식으로 대충 대충 짜도 당장 티가 안 나며 그냥 넘어간다. 그러나 9x에서 그랬다간 얼마 못 가 시스템 자원이 바닥난다거나 바로 뻗어 버리기 때문에, 이런 차이 덕분에 프로그램을 윈도우 9x에서 테스트하다가 버그를 발견하여 구조적인 문제를 해결한 경우가 지금까지 종종 있다.

아마 <날개셋> 한글 입력기도 한 2~3년 동안 윈9x에서 테스트를 안 한 채 개발을 계속하다가 버전이 1.0쯤 올라간 뒤에 다시 윈9x용으로 테스트하면, 여기저기서 원인을 알 수 없는 버그가 자꾸 튀어나와서 단순히 유니코드 API layer를 쓰는 것만으로는 윈9x를 결코 다시 지원할 수 없는 수준에 이를 것이다.
지금 <날개셋> 한글 입력기 소스가, 비록 같은 C++언어이지만 비주얼 C++ 6.0으로는 도저히 개발을 계속할 수 없는 이질적인 단계에 도달한 것처럼 말이다(각종 문법 차이 때문).

Posted by 사무엘

2012/02/23 08:33 2012/02/23 08:33
, , , ,
Response
No Trackback , 8 Comments
RSS :
http://moogi.new21.org/tc/rss/response/645

사관학교 이야기

우리나라에는 잘 알다시피 국군이라고 불리는 정규 군대가 존재하고 징병제를 시행하고 있다.
이웃 나라 일본은 너무 국력이 강해서 과거에 세계를 상대로 깽판을 친 벌로, 국제법상으로는 오히려 군대를 가질 수 없는 나라가 되었는데... 우리나라는 지정학적 여건이 좋지 않고 국력도 충분치 못해서 반대로 징병을 안 하면 안 되는 신세가 된 게 한탄스럽긴 하다.

우리나라 국군의 기본적인 이념은 defensive이다. 아니, 사실 오늘날 적극적인 offensive를 표방하는 군대는 세계 경찰· 지구 방위대를 자처하는 미군-_-밖에 없을 것이다.
군대는 육· 해· 공으로 분야가 크게 나뉜다. 한국군은 국토가 삼면이 바다인 반도 지형인데도 불구하고 육군만 기형적으로 너무 크다는 지적이 있다. 뭐, 비록 오늘날의 전쟁은 최첨단 무기의 각축장이긴 하나, 그래도 정말 최후에 점령지에서 깃발 꽂고 승리 인증샷을 남기는 사람은 언제나 재래식 육군 보병이니, 전쟁의 기본 구도가 예나 지금이나 크게 바뀔 일은 없을 것이다.

군대에는 군대를 잘 이끌어나갈 유능한 차세대 지도자가 필요하며, 이를 양성하기 위해 우리나라에도 육· 해· 공별로 총 3개의 사관학교가 있다. 육사는 서울 노원구에 있고, 공사는 충북 청원에, 해사는 창원에 있어서 남한의 북부· 중부· 남부에 자리잡고 있다.

원래 공사는 서울에 있었으나 1985년에 충청도로 이사 갔다. 그리고 옛 공사 부지가 지금의 보라매 공원으로 조성되어 있다. 이것이 서울 지하철 7호선 보라매 역의 어원이다.
한편, 다른 덴 몰라도 해사는 당연히 바닷가 항구 도시에 있어야 할 것이다. 그래서 그런지 해군은 병사 훈련소도 사관학교와 동일한 창원시 진해군에 있다.

사관학교는 예나 지금이나 명문 학교로 간주되고 있으며, 또 그래야만 정상이다.
군사 정권 시절에 비해서는 인지도가 떨어진 게 사실이나, 지금도 경쟁률이 꽤 높으며 서성한이나 중경외시 사이는 충분히 되는 입결인 걸로 본인은 알고 있다.
이 어려운 연간 등록금 1000만 원 시대에, 사관학교는 학비는 물론 주거비· 생활비가 전혀 들지 않으며, 오히려 학교에서 품위유지비 월급까지 나온다. 입학하면 개인별로 노트북 PC가 지급되고 기숙사 방에는 프린터도 있다.

그리고 그렇기 때문에 사관학교는 학생을 상대로 굉장히 까다로운 조건을 걸고 까칠하게 굴 수 있다.
입학 전형은 여름 무렵부터 일찌감치 시작되며, 필기고사부터 시작해 내신은 물론 마지막의 수능 결과까지 입시에 반영된다. 필기고사는 3사관학교가 공동 출제하여 동시에 시험을 보기 때문에, 학생은 서로 다른 군의 사관학교에 동시 지원을 할 수 없다. 체력 검정과 신원 조회까지 다 한다.

최종 합격자는 고3 겨울방학 자유시간이 없다. 가입교 기간이라 하여 군사 훈련을 받으면서 다 보내야 한다. 뭐, 해군과 공군처럼 100% 지원자로만 구성되는 군대는 병사도 가입교 기간이 있긴 하다만, 사관학교의 가입교는 성격이 좀 다르다.

정식 입학한 사관학교 학생은 생도라고 불린다. 영어로도 그냥 student가 아닌 cadet이라고 다른 호칭이 붙는다. 이들은 국비로 엘리트 장교로 양성되는 대신, 일반 대학생보다 개인 자유를 훨씬 더 제한당한 채 4년을 보내야 한다.
학교 생활 전반이 군생활이다. 수업을 들으러 기숙사에서 강의동으로 이동하는 것도 단순 등교가 아니라 학사 출장이기 때문에, 단체로 오와열 맞춰서 해야 한다.
방학다운 방학도 없으며, 이때의 스케줄은 군사 훈련이나 국토 대장정 같은 다른 활동으로 꽉 차 있다..

군대는 전쟁터에서 공권력을 동원한 폭력을 합법적으로 행사하는 집단이 아니던가. 그래서 조직이 잘 돌아가게 하기 위해 야만성을 최대한 감추고, 그 대신 명예와 규율, 정의를 이념적으로 어지간한 종교 집단 이상으로 대단히 강조한다. 육· 해· 공 사관학교는 공통으로, 중간과 기말 때 감독이 없는 명예 시험을 실시하며, “사관 생도는 진실만을 말한다. 사관 생도의 언행은 언제나 일치한다...” 같은 honor code도 부과되고 있다.

생도는 학사 경고를 한 번만 먹어도 바로 퇴교(퇴학도, 제적도 아닌 퇴교)이며, 심한 질병이 아닌 다른 사유로는 휴학도 못 한다.
육사의 경우 낙하산 타고 뛰어내리는 공수 훈련을 무서워서 못 받으면 퇴교이고, 승마와 태권도도 졸업 때까지 무슨 급 이상까지 못 해내면 퇴교이다. 뭐, 이런 저런 식으로 언뜻 보기에 까다로운 제약 조건이 많긴 하지만, 군인 정신 투철하고 육사까지 갈 정도로 심신이 건강한 사람이 못 할 수준은 물론 아니다.

이런 학교 시스템에 적응을 못 하고 퇴교하는 사람이 종종 발생하는데, 이것은 국가로서는 예산 낭비이고 손실이다. 성적 미달(능력 부족-_-)이나 질병(불가피) 이외의 사유로 퇴교하는 사람은--특히 자퇴하거나 사고 치고 짤리면-- 이제 국군에서 어떤 형태로든 장교가 영원히 될 수 없다. 그리고 1학년은 병-_-으로, 2~3학년은 하사로, 4학년은 중사로 곧바로 군 복무를 하게 된다. 뭐, 연장자도 자기가 원한다면 부사관 대신 병으로 복무할 수도 있긴 하지만.. 왕년의 짬밥이 있으니 군사 훈련은 물론 면제이고 바로 자대 배치이며, 육사에 다녔던 기간이 감안되어 복무 기간은 다소 짧아진다고 한다.

여자 생도야 퇴교와 동시에 군대와의 인연은 그대로 끝이다. 단, 남자든 여자든 가입교 기간에 뛰쳐나간 것은 애시당초 정식 입학이 아니기 때문에 추후의 장교 복무 지원에 문제가 되지 않는다.

고된 4년간의 생도 생활을 마치면 이들은 군사학 학사와 더불어 자기 전공에 따라 문학사나 공학사, 이렇게 두 개의 학사 학위를 받고 소위로 임관한다. 이들이 방학도 없이 얼마나 빡세게 지냈는지를 감안하면, 학위를 둘 받는 게 이상한 일은 아닐 듯. 임관식 때는 잘 알다시피 대통령을 비롯한 높으신 분들도 많이 온다. 이들의 의무 군복무 기간은 10년이나, 아마 5년차에 단기 전역 신청도 가능은 하지 싶다.

일단 중위에서 대위로 넘어가면 정말 군대가 단순 통과 경로가 아니라 삶의 목적이며 생계 수단인 사람들인데, 10년보다도 더 오래 남아 있으려는 사람은, 대령에 장군까지도 넘보는 군대 고위 간부요 만렙 지망생인 셈이다. 중령 이상 되면 전역 후에도 연금까지 나올 걸?

사관학교는 우리가 생각하는 것보다 굉장히 작은 학교여서 전교생이 몇백 명, 천 명이 될까말까이다. 그러니 실제 복무 중인 장교들은 사관학교뿐만이 아니라 학사 장교, ROTC 등 다른 출신이 더 많다.

하지만 이들 중에 사관학교 출신이야말로 성골이며, 진급이 가장 유리함은 두말 할 나위도 없다. 딱히 전쟁이 안 나고 누가 북한군을 몇 명 더 잡았다는 식으로 눈에 띄는 공적 기록이 없는 군인들의 세계에서는, 저런 출신으로 랭크가 생기는 게 어쩔 수 없는 귀결이다. 다만, 이들이 더 힘들고 위험한 전방 부대의 전투 병과로 더 우선적으로 배치되며, 그런 곳에서의 근무 경력이 진급에 당연히 더 유리하게 작용하는 것도 사실이다. 큰 사고 안 치면 중령까지는 거의 확실하고 대령부터가 갈라진다고 보면 된다.

생도와 일반 병사와의 관계는 어떨까? 사관학교는 학교인 동시에 일종의 군부대이기 때문에 내부에서 잡일 근무하는 병사도 소수 존재한다. 사관학교 내부에 근로 장학생을 둘 수는 없는 노릇이니까. 그러나 병사와 생도는 서로 다른 구역에서 생활하며, 마주치더라도 상종을 안 하는 게 불문율이다. 덧붙이자면, 육사 출신이 그런 병사들을 통솔하는 간부로 발령 나지도 않는다.

다만, 육사에는 생도들에게 승마를 가르치는 군마조교병이라는 특기병이 있는 건 특이점이라 하겠다. 병사가 생도를 가르친다니! 이곳에서 근무하는 병사의 인터뷰를 본인은 본 적이 있다.
또한 여기가 비록 군사 시설이라 해도, 민간인의 사관학교 방문은 국정원을 방문하는 것만치 까다롭지는 않다.

사관학교는 잘 알다시피 해병대처럼 학번 대신 기수로 서열을 매긴다. 군대가 무슨 민영화-_-를 해서 다른 경쟁 사관학교가 있기라도 한 게 아니기 때문에, 사관학교 출신들은 순혈주의-_- 동문 문화가 굉장히 발달해 있고, 교수들도 당연히 육사면 육사, 공사면 공사 등 동일 학교 출신이다. 군 복무 기간 동안 군에서 보내 주는 대학원에서 공부를 더 한 케이스라 하겠다.

사관학교 출신은 비록 군대에 오래 몸담지 않고 일찍 예편한다 하더라도, 앞서 말했듯이 나름 명문대 출신으로 사회에서도 응당 인정을 받고 있다. 회사에서도 사람 뽑을 때 같은 값이면 병보다는 장교 복무 경력이 있는 사람을 더 쳐주지 않던가? 게다가 공사 졸업한 전투기 조종사 출신은 민간 항공기 조종사라는 마법의 진로까지 있다. 군대보다 보수가 훨씬 더 좋고, 민항사에서 공사 출신 인재를 적극 원하기도 하니 윈윈 게임인데 정작 공군 측에서는 인재 유출 때문에 고민이라고 한다. (과학고/카이스트에서 국비로 공부한 이공계 인재가 그래 봤자 다 의대로 빠져나가는 것과 비슷한 차원의 고민쯤으로 생각하면 됨 ㄲㄲㄲㄲ)

사관학교는 명목상 국립 특수 대학교이긴 하지만, 대표자의 직함이 총장이 아니라 교장이다. 얘네들은 이상하게 '교'짜를 좋아한다. 역시 국립 특수 대학교인 카이스트는 한때 대표자의 직함이 원장이었는데, 한 2004년 무렵부터 총장으로 바뀐 케이스에 속한다.
요즘은 사관학교 교장은 중장, 다시 말해 쓰리스타의 보직으로 여겨지고 있다. 군 지도자를 양성하는 최정예 교육기관을 대표하는 보직이니 높을 수밖에 없다.

그런데, 육· 해· 공을 막론하고 역대 사관학교 교장들의 재임 기간을 보면, 임기가 굉장히 짧다. 교장이 거의 2년 주기로 바뀌며, 생긴 지 길어야 70년도 안 된 학교가 교장의 대수가 3, 40대에 육박해 있다. 왜 그럴까?
이는 하루가 멀다하고 수시로 바뀌는 장군들의 보직 이동 때문이라고 생각하면 되겠다. 사관학교 교장은 일반 대학교의 총장과는 신분이 다르기 때문이다. 우리나라 국군은 인사적체가 아주 심해서 장군 수에 비해 보직 수는 부족하니, 번갈아가면서 교장 자리 앉혀 준 뒤, 빨리 군단장 거쳐서 더 진급할 사람은 포스타 사령관, 합참의장 자리까지 가는가 보다. 잘 알다시피 군대 장교 시스템이라는 것은, 부사관과는 달리 일정 나이 때까지 진급 못 하면 짤리는 피라미드 구조이기 때문.

이상으로 본인이 우리나라의 사관학교에 대해서 알고 있는 것을 쭉 memory dump해 보았다. 참고로 이 글을 쓴 필자는 밀덕이 전혀 아니며, 군대 체질하고는 영 안 맞는 1人이다. -_-;;;

영천에는 3사관학교라고 하여 또 다른 육군 장교 양성 학교가 있다. 생도는 다른 2년제 대학을 마치고 입학해서는 2년 교육 후 여기서 4년제 대학 졸업으로 나오고 임관하는 만큼, 이게 학사 장교나 ROTC보다는 높게 평가되는 듯하다. 하지만 성골인 육사에 비해서는 인지도가 떨어지는 게 사실이다. 교장도 쓰리가 아닌 투스타더라.

Posted by 사무엘

2012/02/21 08:45 2012/02/21 08:45
, ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/644

윈도우 운영체제에는 잘 알다시피 DLL이라는 게 있어서 한 프로세스를 구성하는 코드들을 여러 모듈로 분할할 수 있고, 반대로 동일한 코드를 여러 프로세스가 동시에 효율적으로 공유할 수 있다. 유닉스 계열의 운영체제에는 이와 비슷한 개념으로 shared library (*.so)라는 게 있다.

윈도우 DLL은 주소 공간이 해당 DLL을 로딩한 프로세스(EXE)에 완전히 종속된다. 그렇기 때문에 DLL이 사용하는 코드는 공유될지언정, 그 DLL이 선언하는 전역변수 같은 건 EXE마다 제각각이며, 심지어 동일 EXE를 여러 번 실행하더라도 제각각이다. 이것은 유닉스의 shared library와 다른 점이다. 윈도우에서 진짜 여러 프로세스들이 공유할 수 있는 메모리를 만들려면 내부적으로 공유되는 메모리 섹션을 별도로 생성해 놔야 한다.

이런 차이로 인해 특별히 조심해야 할 점이 있다. 한 EXE 안에서 3개의 DLL이 돌아가고 있고, 이들은 모두 동일한 버전의 비주얼 C++로 개발되어 동일한 CRT 라이브러리를 사용한다고 치자. 만약 이들이 모두 CRT를 DLL로 링크하여 동일한 CRT 라이브러리의 코드와 데이터를 공유한다면, 어느 모듈에서 malloc/new한 메모리를 다른 모듈에서 곧바로 free/delete해도 된다.

그러나 이들이 제각각 CRT를 static link했다면 그럴 수 없다. 한 모듈에서 할당한 메모리는 반드시 동일한 모듈에서만 해제해야 한다. 비록 메모리를 할당하고 해제하는 코드는 실질적으로 동일하지만 해당 코드가 동작하는 context는 모듈들이 모두 서로 다르기 때문이다. 모듈간에 메모리 할당과 해제를 자유롭게 하려면 각 모듈들은 자신만의 메모리 할당/해제 함수를 외부에다 별도로 제공해 줘야 한다.

DLL을 만드는 일은 64비트 운영체제가 등장하면서 다소 까다로워졌다. 32비트와 64비트 사이에는 DLL의 교차 로딩이 되지 않기 때문이다. 즉, 32비트 모듈(EXE/DLL)은 64비트 DLL을 읽을 수 없으며, 반대로 64비트 모듈은 32비트 DLL을 읽을 수 없다. 다시 말해, x64 운영체제에서도 x86 EXE를 아무 차이 없이 실행은 할 수 있지만, 그래도 64비트 EXE가 32비트 DLL을 내부적으로 읽을 수는 없으므로 착오 없기 바란다.

한 주소 공간은 전부 32비트 아니면 전부 64비트뿐이지, 두 종류의 코드가 섞여 있을 수가 없어졌다. 옛날과는 달리 지저분한 썽킹 계층 같은 게 없다. 동일 코드를 32비트와 64비트용으로 제각기 빌드해서 다같이 내놓아야 한다.
그러니 태생적으로 반드시 네이티브 코드 DLL을 만들어야 하는 컴포넌트/미들웨어/드라이버 분야라든가, 훅킹 내지 운영체제의 shell extension을 만드는 쪽은 다른 어떤 분야보다도 진작부터 64비트 프로그래밍이 필요했다. 사실은 IME 쪽도 예외가 아니다.

그런데 문제가 있다. 지금까지 DLL은 코드를 담는 용도로만 쓰여 온 게 아니라는 점이다. 잘 알다시피 윈도우 운영체제는 실행 파일의 포맷 차원에서 리소스라 하여 나름 계층을 갖춘 custom 데이터를 간편하게 불러오는 기능이 있다. 일일이 메모리 할당을 할 필요가 없이, 운영체제가 알아서 메모리 주소를 잡아서 로딩해 주고, API 함수 호출 한 번에 데이터를 곧장 찾아 주기까지 하니, 상당히 편리하다. 그래서 데이터 리소스만 갖춘 DLL도 엄청 많이 쓰였다.

특히 다국어 지원을 위한 외국어 리소스를 집어넣는 데 DLL보다 더 좋은 수단은 지금까지 별로 없었다. 운영체제의 대화상자 내지 string table 같은 주요 리소스 파일의 포맷은 32비트나 64비트나 바뀐 게 없다. 호환성 차원에서 일부러 동일하게 유지시킨 듯하다. 비주얼 스튜디오 200x의 MSDN(Document Explorer)이 사용하는 *.hxs 파일도 리소스 전용 DLL이다.

그런데 DLL은 태생적으로 컴퓨터 기계 종류에 지극히 종속적인 코드를 담는 게 주 목적인 파일 포맷이다. 그렇다면 기계 종류에 관계없이 동일한 데이터를 담는 DLL도 기계별로 일일이 다 따로 만들어야 할까?
그렇지는 않다. 데이터밖에 들어있지 않은 리소스 전용 DLL을 위해서 운영체제는 다음과 같은 배려를 하고 있다.

먼저, DLL을 읽을 때 흔히 사용하는 LoadLibrary 대신, LoadLibraryEx 함수는 LOAD_LIBRARY_AS_IMAGE_RESOURCE 같은 플래그를 제공하여 DLL의 코드 부분을 전혀 감안하지 않고 데이터 부분만 읽게 할 수 있다. 이렇게 하면 해당 DLL은 DllMain 함수 자체가 실행되지 않으며, 자신과 호환되지 않는 기계를 타겟으로 만들어진 DLL도 읽을 수 있다. 물론, FindResource 같은 함수로 리소스 추출만 가능할 뿐, GetProcAddress 같은 기능을 사용할 수는 없다.

다음으로, DLL 자신이 리소스 전용 DLL일 뿐이라고 명시해 줄 수 있다. 비주얼 C++의 DLL 프로젝트에서 링커 옵션을 보면 /NOENTRY가 있다. 이 옵션이 지정되면 그 DLL에는 아무 코드도 삽입되지 않으며, 진입점인 DllMain 함수 자체가 없는 리소스 전용 DLL임이 인증된다. 이런 DLL은 외부에서 그냥 대놓고 LoadLibrary로만 호출해도 기계 종류에 관계 없이 읽을 수 있다.

윈도우는 공유 라이브러리를 다루는 개념이 유닉스 계열과 차이가 있을 뿐만 아니라 실행 파일을 로딩하는 방식에도 개념적인 차이가 있다. 윈도우는 position-dependent, 즉, 주소 종속적인 방식이다. 윈도우의 EXE와 DLL에는 preferred address라는 게 있어서, 이 메모리 주소에 딱 로딩이 되면 아주 성능이 좋지만, 그 주소에 로딩이 못 되면 재배치 페널티가 따르는 방식을 사용한다. 재배치 작업을 어떻게 하면 되는지에 대한 재배치 정보가 reloc이라는 섹션에 있다.

EXE야 Win32s 같은 과거의 열악한 환경이 아닌 이상, 자신만의 고유한 주소 공간이 있기 때문에 언제나 preferred address에 로딩된다는 보장이 있다. 그에 반해 남의 주소 공간에 달라붙는 형태인 DLL은 그렇지 못하기 때문에 일반적으로 반드시 reloc 섹션이 필요하다.
다만, 이런 재배치 작업도 코드가 없는 리소스 전용 DLL에는 전혀 해당사항이 없다. 리소스 내부에 DLL의 메모리 주소에 종속적인 숫자 데이터 같은 게 있을 리가 없기 때문이다.

그러니 이론적으로 리소스 전용 DLL은 reloc 정보를 생략해 버려도 괜찮지만, 그냥 대놓고 생까-_- 버리는 것도 곤란하다. 윈도우 2000 미만의 옛날 운영체제의 경우 DLL을 preferred base에다 로딩을 못 하는데 재배치 정보마저 없다면, 원래 재배치를 할 게 없는 리소스 전용 DLL임에도 불구하고 그냥 일방적으로 로딩을 거부해 버리게 된다.

재배치를 안 해도 괜찮은 DLL이라는 별도의 플래그는 윈도우 2000 이상에서부터 도입되었다. 물론, 애당초 기계어 코드가 들어있지 않은 DLL의 reloc 섹션에 의미 있는 재배치 정보 자체가 있을 리가 없다. 그냥 껍데기뿐인 잉여인 것이다.

이렇듯, DLL은 원래 코드를 공유하려고 만들어졌지만 기계와는 무관한 리소스나 데이터를 공유하는 container 역할도 결코 무시할 수 없는 위치에 있다. 심지어 트루타입(TTF) 글꼴이 도입되기 전에 윈도우에서 쓰이던 비트맵/벡터 글꼴인 FON 파일은 16비트 형태의 리소스 전용 DLL로, 오늘날의 64비트 윈도우에서도 그 잔재가 남아 있다!

그래서 운영체제가 리소스 전용 DLL에 대해서는 예외적으로 기계를 가리지 않고 읽을 수 있고, 또 그런 DLL에는 불필요한 정보를 합법적으로 생략도 할 수 있게 별도의 배려를 해 왔음을 우리는 윈도우 API의 변천사를 통해 알 수 있다.
그러고 보니, 32/64비트 응용 프로그램이 각각 32/64비트에 해당하는 윈도우 시스템 디렉터리나 각종 프로그램 디렉터리를 얻어 오고 접근하는 법도 꽤 복잡해져 있는데, 이건 다음 기회에 다루도록 하겠다.

Posted by 사무엘

2012/02/19 08:29 2012/02/19 08:29
,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/643

1. 시스템 종료를 시스템 재시작으로 바꾸기

아주 오래 전부터 생각해 오던 건데...
시스템 종료 명령을 내려서 운영체제가 shutdown 중일 때 특정 글쇠를 누르면...
시스템 종료를 철회하는 것까지는 안 되더라도, 최소한 나중에 컴이 아주 꺼져 버리는 게 아니라 reboot/restart로 바뀌게 하기... 이것만 있어도 아주 아주 편할 것 같다. 난 윈 9x 시절부터 이거 필요성을 몇 년째 느껴 왔다. -_-;;
기술적으로 별로 어려운 것도 없을 텐데.

2. IE의 안습한 속도

내가 IE 쓰면서 굉장히 불만스럽고 싫은 것 중 하나는..
페이지 인코딩이나 팝업 허용 옵션을 변경할 때 매번 해당 페이지를 reload하는 것...
최소한 사용자한테서 묻고 하거나, 지금 로딩돼 있는 놈을 해당 설정만 바꿔서 다시 표시할 수 없나?

그리고 속도도 불만이다. 웹 브라우저가 체감 성능이 좋으려면 페이지 캐싱을 잘 해야 하고 자바스크립트 구동하는 속도가 빨라야 하고 HTML 파싱과 렌더링 알고리즘이 좋아야겠지만, 그 중 기본 중의 기본은 새 탭이나 새 창을 띄우는 반응 속도가 빨라야 한다.

그런데 이 속도를 IE와 사파리와 구글 크롬 이 셋끼리 비교해 보면 IE는 그저 한숨만 나올 뿐이다.

Ctrl+N/T를 누르거나 링크에 대한 Ctrl/Shift+클릭을 했을 때의 반응...;;
IE 이놈은 살 좀 빼야 할 것 같다.
그래도 다운로드 확인 대화상자가 떠 있는 동안 미리 다운로드를 하는 건 좋은 아이디어이며, 체감 다운로드 속도를 크게 끌어올린 주역이다. IE9가 머리 좀 썼다..

3. 악성 코드가 붙은 웹페이지

다만, 크롬도 성가시고 불편한 점이 없지는 않다.
일부 사이트에 들어가면 이 사이트는 어디어디로부터 유래된 악성 코드가 묻어 있으니 위험하다면서 브라우저가 페이지 표시를 거부한다.
요즘 아무리 HTML이 동적인 요소가 많이 발달했다 해도, HTML은 기본적으로 컴퓨터에 아무 영향을 주지 않는 문서일 뿐인데 정보 열람을 브라우저가 제멋대로 거부하니까 굉장히 불쾌하다. 오피스 문서도 출처가 의심스러운 매크로가 있으면 매크로만 제외하고 보여주면 되지 않는가.

실제로, 그런 사이트들의 소스를 보면 문서가 다 끝난 닫는 html 태그 뒤에, 또 이상한 자바스크립트가 들어가 있긴 하다. 이런 건 정체가 무엇이며 내 컴퓨터에 정확하게 어떤 영향을 끼칠 수 있는지? 이런 사이트는 서버가 해킹이라도 당했기 때문에 소스 뒤에 이상한 자바스크립트가 첨부되어 나오는지? 여러가지 디테일이 궁금하다. 바이너리 형태인 EXE 실행 파일 안에 바이러스 코드가 붙은 것도 아니고, 텍스트 형태인 웹문서 소스에도 악성 코드가 붙을 수 있구나? -_-

4. 사용자 계정 컨트롤 (UAC)

윈도우 비스타에서 이 기능이 첫 도입된 취지는 적극 이해한다만, 이를 제대로 인식이나 활용 못 하는 옛날 애플리케이션들 때문에 상당히 고달프다.
다른 브라우저는 테스트하지 않았다만, 내 컴의 IE9는 일반 권한 모드로 실행하면, TextCube 블로그 엔진으로 글 쓰면서 첨부 파일 업로드 버튼을 눌렀을 때 파일 열기 대화상자가 먹통이 되고 뜨지 않는다. 웹 프로그래밍이 UAC의 영향을 받기라도 하나? 그 이유는 모르겠다. 어쨌든 당장 내 블로그에다 그림이 곁들여진 글을 올릴 때는 IE를 관리자 권한으로 실행해야 한다.

여차여차 하다 보면 결국 일반 권한 프로그램과 최고(=관리자) 권한 프로그램이 뒤섞여 있게 되는데, 일반 권한 프로그램은 관리자 권한 프로그램에다가 메시지를 보내거나 interprocess communication을 할 수 없다. 그래서 분명 파일을 열라는 요청을 내렸는데 이게 아무 말도 없이 씹힌다거나 하는 일이 비일비재하다. Program Files 폴더 아래에다가 파일을 건드리는 (몰상식한) 프로그램의 경우, 이게 진짜 Program Files인지, 아니면 UAC가 redirect한 가짜 Program Files인지도 아리까리해지고.. 불편하다.

그리고 나로 하여금 운영체제 차원에서 UAC를 끄지 않을 수 없게 만든 결정적인 주범은 아래아한글 2007.
UAC가 켜져 있으면 아래아한글을 “관리자 권한 주고 실행”하더라도 PDF 인쇄 기능이 전혀 동작하지 않고 그냥 먹통이 된다. 아래아한글 전용 글꼴인 HFT는 자기네 전용 드라이버를 안 쓰면 PDF로 제대로 만들지도 못하는데, 문제는 본인은 아래아한글 2.5 확장팩 글꼴 매니아여서 HFT를 안 쓰면 안 된다는 것. -_-

차라리 발상을 정반대로 바꿔서 말이다. 평소에는 전체 권한으로 지내다가, 좀 risk가 있는 웹페이지 들어갈 때 사용자가 지정한 특정 응용 프로그램만 “권한 낮춰서 실행” 이렇게 접근하는 건 어떨까 싶기도 하다. 파워 유저의 입장에서는 그게 더 편할지도..;

5. 컴퓨터의 시계

시계가 없는 컴퓨터란 상상할 수 없다. 컴퓨터의 내부에는 상당히 정확한 시계가 있다. 기계식일 리는 없고 당연히 전자식.
옛날에 IBM PC XT는 시계 배터리가 없었다. 그래서 컴을 켤 때마다 날짜와 시각을 다시 설정해야 했으며, 이 때문에 당시 MS-DOS는 autoexec.bat가 없더라도 date와 time 명령은 수행한 후 명령 프롬프트가 나타났었다.

그 반면 오늘날처럼 제대로 된 컴퓨터와 운영체제 하에서는 시스템의 날짜와 시각을 바꾸기 위해 관리자 권한이 필요하며, 사실 그렇게 해야 하는 게 마땅하다. 시스템의 날짜· 시각이 멋대로 바뀔 수 있으면 그걸 기준으로 동작하는(특히 뭔가 업데이트 여부를 판단하는) 프로그램들이 모조리 혼란에 빠진다.

윈도우 운영체제를 쓰다가 간단하게 달력을 꺼내 보는 방법은, 작업 표시줄에 있는 시계를 더블클릭하여 날짜/시각 대화상자를 꺼내는 것이었다. 그게 옛날에는 대화상자였는데 비스타부터는 간단한 팝업창처럼 바뀌어서 키보드 포커스를 잃으면 창이 바로 사라져 버리며, 결정적으로 창을 옮길 수가 없게 되어 좀 불편해졌다.
다만, 비스타부터 다른 시간대의 추가 시계를 출력하는 기능이 추가된 것은 아주, 대단히 편리하다. 마음에 든다. 본인은 LA의 시간대와, GMT 표준시간대를 추가해 놓고 지낸다.

그나저나 시계 하니까 생각나는데... 시계의 원조는 기계식 시계이며, 톱니바퀴와 렌치가 일반인들의 머리에 각인되어 있는 기계의 상징인 건 틀림없는 것 같다. 그래서 윈도우에서도 DLL 확장자의 상징 아이콘은 톱니바퀴 그림이고, 각종 공구 모양은 제어판이나 도구, 옵션 기능의 아이콘이 되어 있다.

6. Task dialog

잘 알다시피 윈도우 비스타부터 Task Dialog는 아주 멋진 UI 요소가 추가되었다.
그런데 여기에서 좀 이상한 동작 방식을 우연히 발견하여 여기에 그 내역을 공개한다.
Windows 환경에서는 Alt+F4는 창 닫기 내지 종료를 의미하며, 대화상자는 당연히 '취소'로 닫기 때문에 ESC와 역할이 거의 같다.
하지만 Task dialog를 Alt+F4로 닫아 보면... '취소'가 아니라 언제나 맨 첫째 버튼을 누른 결과가 전달되는 듯하다.

메모장을 띄운 뒤, 텍스트를 고치고서 저장 안 하고 Alt+F4를 누른다.
“변경 내용을 저장하시겠습니까?” 대화상자(task dialog임)가 뜬 상태에서 포커스를 '저장'이나 '저장하지 않음', '취소' 중 아무것에다 둔 뒤에 Alt+F4를 누르면...
놀랍게도 '다른 이름으로 저장' 대화상자가 뜬다. 맨 왼쪽의 '저장' 버튼이 눌린 것처럼 반응이 온다.
이거 좀 문제가 있어 보인다.
윈도우 비스타와 7 모두 최신 서비스 팩 있는 상태에서도 동일하게 동작함.

Posted by 사무엘

2012/02/16 19:32 2012/02/16 19:32
Response
No Trackback , 12 Comments
RSS :
http://moogi.new21.org/tc/rss/response/642

세벌식 파워업 이야기

본인은 10여 년 전인 2000~2001년 사이에 세벌식 솔루션 3관왕-_-? 3총사를 차례로 최초로 개발하였다. 이 홈페이지 대문에 다 공개되어 있다.

하나는 주력 연구 작품인 <날개셋> 한글 입력기. 이건 사실 세벌식 글자판을 기본으로 삼아 한글 입력 체계에 대한 총체적인 연구를 목표로 하는 학술적인 프로그램이다. 이윤을 목표로 만드는 것도 아니고, 또 딱히 사용자 중심적으로 만드는 프로그램도 아니기 때문에, 여느 공개 소프트웨어에서는 찾을 수 없는 특이한 기능과 라이선스, 그리고 초심자가 언뜻 보기에 접근하기 어려워 보이는 복잡한 UI를 고수하고 있다.

뭐, 그래도 어쨌든 대부분의 일반 사용자들은 그냥 에디터가 하나 필요해서, 혹은 Shift+Space를 쓰거나 한글 로마자 글자판을 쓰려고, 혹은 세벌식 모아치기를 하려고, 또는 드보락 자판을 같이 쓰려고 이 프로그램을 사용한다. 하지만 그건 이 프로그램이 제공하는 기능의 완전 빙산일각일 뿐이다. 좀 외람된 비유이다만, 구원받아서 누리는 크리스천의 온갖 영적 복은 다 제끼고, 오로지 죽어서 지옥 안 가고 천당 가려고 예수 믿는 것과 비슷한 맥락이다. (엥?)

그리고 다음으로 잘 알다시피 타자연습 프로그램이 있다. 세벌식을 연습하려면 세벌식 사용자가 만든 세벌식에 최적화된 타자연습 프로그램이 있어야겠다는 생각을 해서 만들었다. 세벌식이 그냥 잉여 옵션이 아니라, 세벌식, 특히 최종 자판이 main인 프로그램.

사실, 아래아한글 워디안/2002가 리모델링된 한컴타자 유틸리티를 공개하기 전이던 2000년대 초엔, 세벌식 최종을 정식 지원하는 타자연습 프로그램은 박 정만 님이 개발한 '광타'밖에 없었다. 그리고 윈도우 운영체제와 아래아한글 97이 제공하던 최종 자판은 오류가 있었다. 그만치 최종 자판은 인지도가 안습하였다. 그런 와중에 세벌식 최종 전용 타자연습 프로그램인 <날개셋> 타자연습의 임팩트는 결코 작지 않았다.

타자연습은 잘 알다시피 한글 입력기의 한글 입출력 엔진을 빌려서 개발되었다. 비록 수 년 전부터는 입력기의 연구 개발에 밀려서 타자연습의 메이저 버전업이 중단된 상태이지만, 본인은 이 프로그램의 개발을 완전히 접거나 포기한 상태가 아니다. 껀수가 생기면 얼마든지 프로그램을 또 업데이트할 생각이다. 이 프로그램은 입력기보다는 훨씬 더 사용자 지향적으로 개발되고 있다.

다음으로 이 두 프로그램에 비해 인지도가 덜하고 <날개셋>이라는 브랜드도 붙어 있지 않으나, 또 아주 중요한 세벌식 솔루션이 마지막으로 있으니, 그것은 바로 세벌식 파워업이다.

세벌식 파워업은 세벌식과 관계가 있으나 <날개셋> 한글 입력기와는 무관한 프로그램이다. 이건 <날개셋> 없이 운영체제의 기본 IME만으로 세벌식을 쓰려는 사람에게 필요하다. 이 프로그램은 클릭 한 번으로 MS 기본 한글 IME의 두벌식/세벌식 설정을 간편하게 바꿔 준다. 이 외에도 화면에 세벌식 최종 글쇠배열을 띄워 놓는 기능과 한글 IME 제어판 설정을 바로 꺼내 주는 기능도 있어서 세벌식 사용자에게 무척 유용하다.

이 프로그램은 사실 <날개셋> 한글 입력기 1.0의 개발이 끝나고 정보 올림피아드도 끝났던 2000년 말에 처음으로 개발되었다. 레지스트리 설정을 바꿈으로써 윈도우 95/98/ME의 한글 IME를 대상으로는 잘 동작했으나, 2000에서는 동작하지 않았다. 하지만 이 기능만으로도 본인은 세벌식 사용자들에게서 칭찬과 감사의 말을 굉장히 많이 들었다.

그러다가 세벌식 파워업이 진짜로 ‘파워업’이 된 때는 2004년, <날개셋> 한글 입력기가 3.0으로 대폭 업그레이드된 그 시절이었다. 그때 두 가지 정말 큰일을 해냈다. 먼저 공유 메모리 패치 지점을 reverse engineering으로 찾아냄으로써, 드디어 2000/XP 등 모든 계열의 한글 IME에서 세벌식 자동 전환 기능을 동작시키는 데 성공했다. 그리고 다음으로, 당시 오류가 있던 MS 한글 IME의 세벌식 최종 글쇠배열을 아예 파일 차원에서 ‘패치’하는 엽기적인 기능을 추가했다!

그 당시는 <날개셋> 한글 입력기 3.0과 더불어 외부 모듈이 처음으로 개발되고 있었는데, 그러는 한편으로 MS IME 자체에 대한 연구도 진행되어, 그걸로 참고표와 가운뎃점을 찍는 방법을 찾아냈던 것이다. 이것 역시 <날개셋> 개발에 필적하는 쾌거였다.

파워업 프로그램이 마지막으로 큰 변화를 겪은 때는 그로부터 2년 반쯤 뒤에, 윈도우 비스타와 MS 오피스 2007이 나왔을 때이다. 이제야 정신을 차린 MS가 세벌식 최종 글쇠배열 오류를 고쳐 준 덕분에, 패치 기능은 이제 더 필요하지 않았다. 하지만 글자판 자동 전환 기능이 동작하려면 바뀐 메모리 변경 지점을 알아야 했기에, 그때는 VMware로 윈도우 비스타를 급히 설치하고, 아주 가벼운 개발툴인 비주얼 C++ 4.2 (무려 1996년 프로그램!)를 설치하여 그거 디버거를 이용해 메모리 변경 지점을 알아냈다.

윈도우 7/오피스 2010의 한글 IME는 윈도우 비스타/오피스 2007의 그것과 구조가 거의 같기 때문에 파워업의 추가적인 알고리즘 패치가 필요하지 않다. 하지만 파워업을 관리자 권한으로 실행하고 나면 한글 IME 설정 대화상자가 뜨지 않으며(그쪽에서 의도적으로 실행을 거부함), 관리자 권한으로 실행된 프로그램은 파워업의 글자판 전환 기능이 통하지 않는 문제가 있었다.
새로운 이슈가 발견된 셈인데, 글자판 전환 기능이 안 되던 문제는 최근에 다행히 간단한 조치 끝에 해결하여 패치를 등록하였다. 관심 있으신 분은 받아서 사용하기 바란다.

내가 왕년에 무슨 생각으로 무슨 똘끼를 발휘하여 이런 세벌식 솔루션을 세 종류나 만들어 버렸는지 모르겠다. 세벌식을 극도로 활용한 전문적인 한글 입력기, 그리고 세벌식 beginner를 위한 타자연습, 그리고 단순 세벌식 light user를 위한 파워업. 제각기 커버하는 영역이 있다!.

공교롭게도 이 세 프로그램은 유니코드 API를 지원하는 방식도 제각기 다 다르다. 입력기는 잘 알다시피 자체 제작한 호환 레이어가 있어서 유니코드 기반 바이너리로도 9x 계열 운영체제에서 동작 가능한 가장 정교하고 바람직한 구조로 되어 있다. 타자연습은 ANSI/유니코드 에디션이 제각각 빌드되어 있고, 파워업은 그냥 ANSI 빌드로만 배포된다. 한편, 64비트 바이너리가 따로 빌드되어 배포되고 있는 건 입력기가 유일하다.

본인은 이 프로그램들이 지난 10여 년 동안 세벌식의 보급에 큰 기여를 해 왔을 거라는 자부심을 갖고 있다. 고인드립이 될까 봐 조심스럽게 하는 말이지만, 공 병우 박사님이 5~10년 정도만 더 살아 계셨으면(1995년 타계) <날개셋> 한글 입력기가 개발되는 것도 보고 가셨을 텐데 하는 약간의 아쉬움도 있다.

내가 지금까지 왜 이런 짓을 했을까? 글쎄다. 딴 게 아니고 한글 같은 문자는 컴퓨터에서 두벌식으로만 쓰기에는 너무 아깝다는 막연한 관념이 있어서였다. 그리고 한글 기계화 이념에 관한 한은 세벌식만이 살 길이라는 강한 확신이 들어서이다. 그 생각은 10년 전이나 지금이나 변함이 없다. 좀 심하게 표현하자면 이렇게까지 말할 수 있다. “그 불편한 두벌식을 쓰면서 어떻게 한글이 우수한 문자라는 말을 할 수 있을까?”

지금은 세월이 흘러, 나의 감성을 건드리는 영역은 철도에게 자리를 많이 내 줬다. 세벌식 쪽은 그냥 워낙 오래 전부터 내가 전문적으로 연구해 온 분야이기 때문에 지금까지 그저 관성만으로 덕-_-력이 유지되고 있는 것도 있다.

그러나 세벌식은 그래도 너무 매력 있는 한글 글쇠배열이며, 동시에 한글 기계화의 근간을 이루는 교리이다. 요즘은 컴퓨터도 다들 멀티코어가 대세인데, 세벌식은 내가 예전에 글로 쓴 적이 있듯이 사람 손의 병렬화-_-에 유리한 방식이다. 이 글을 보시는 분들도 다들 이 기회에 세벌식으로 글자판을 바꿔 보시길 바란다. 터치스크린이 주류인 모바일에서는 세벌식은 동시치기를 통한 활로를 적극적으로 모색되어야 하지 않을까 싶다.

Posted by 사무엘

2012/02/14 08:16 2012/02/14 08:16
, , ,
Response
No Trackback , 11 Comments
RSS :
http://moogi.new21.org/tc/rss/response/641

Looking for you의 작곡자, MALTA

이제는 더 말하면 입만 아프겠다만,
본인은 2003~2004년 사이에 새마을호에서 Looking for you라는 음악을 들으면서 철도 성령을 체험하고 철도 덕후의 길을 가기 시작했다.

그 Looking for you를 작곡한 사람은 MALTA라는 예명을 쓰는 일본의 재즈 색소폰 연주자이다. (☞ 공식 홈페이지) 유튜브에서 검색해 보면, 공유 정신이 투철한 네티즌들 덕분에 이 사람 주요 곡은 물론, 심지어 과거의 실황 공연 동영상까지도 어렵지 않게 찾을 수 있다.

생각보다 연세가 지긋한 분이고, 본인의 부모님 연배이다. 아니, 부모님보다 나이 더 많다..;;
일본인이라기보다는 서양 사람처럼 생겼다. 덩치도 그렇고.

공식 홈페이지에 기재된 프로필에 따르면, 그는 13세 때부터 색소폰을 불기 시작해서 도쿄 예술 대학을 졸업했다. 그 후 미국 유학을 선택하여 그 이름도 유명한 버클리(Berklee) 음대를 졸업하고 거기서 강사도 역임했다고 한다.
재즈 내지 실용 음악이 강한 학교에 잘 찾아간 듯하다. 몇 년 전에 본인이 뒷조사를 해 본 기억에 따르면, 버클리 음대 Alumni 리스트에 저 사람도 있었다.

그리고 1983년 11월, 일본에서 MALTA라는 예명으로 활동을 시작하고 첫 음반을 냈다.
Looking for you가 수록된 앨범은 Obsession으로, 1988년에 발매됐다. 즉, 여전히 상당히 초창기 시절의 작품인 것이다. 그때는 기술과 장비가 차이가 있었는지, 음반 녹음을 미국 LA에서 했다고 자랑을 치던 시절이었다. 즉, 우리가 지금 듣는 Looking for you도 원판은 미국에서 녹음됐다는 뜻.

사용자 삽입 이미지
(철도 성령을 소환해 낸 전설의 곡 Looking for you가 첫 소개된 그 앨범)

생각을 해 보라. 어느 때에 한국의 대중교통에서, 운행 시작 전이나 종료 후에 객실 내부에서 저렇게 가슴 터질 것 같은 빠르고 경쾌하고 톡 쏘는 아름다운 음악이 흘러나왔던가? 그리고 그 당시 철도청이나 코모넷(새마을호 내부의 시청각 UI를 담당하던 하청 업체) 담당자는 어째 이렇게 매니악한 음악을 선곡할 생각을 했을까? 생각하면 생각할수록 신통방통하지 않은가?

난 재즈를 별로 좋아하지도 않는데 저 음악만은 예외로 그냥 닥치고 수백, 수천 번 듣고 또 들었다. 눈 지그시 감고 앉아서 새마을호 객실에서 저 음악 들으면서 타거나 내리던 시절을 회상하는 게 습관이 됐다. 그리고 전곡을 허접하게나마 nwc 악보로 옮겼다.

참고로 Looking for you는 새마을호에 처음으로 비디오 화면이 도입된 지 얼마 되지 않았던 2001~2002년 사이에 등장했다가, KTX가 개통한 2004년 중반부터는 종착역 도착 때만 흘러나오는 걸로 바뀌었고(출발 전에는 이제 Steve Barakatt의 Dreamers로 변경), 2007년 중반 무렵에 완전히 사라진 것으로 추정된다. 본인이 2006년에 세 차례 Looking for you 열차내 재생 장면을 촬영하여 유튜브에 올린 것은 이제 전설적인 역사 기록으로 등극해 있다.

나는 흔히 말하는 각종 가요나 연예인, 영화, 락 음악 같은 것에 전혀 영향을 받지 않은 대신, 그쪽 똘끼가 여기에 전부 쏟아졌다.
MALTA 당사자는 꿈에도 모르겠지만, 역사는 그의 음악이 한국에서 극렬 철도 덕후를 한 명 배출하는 데 결정적인 역할을 했다고 기록할 것이다. 철도님, 사랑합니다.

Posted by 사무엘

2012/02/11 08:12 2012/02/11 08:12
, , , ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/640

(上으로부터 이어짐)

왕년에 게임 개발자였던 Bill Williams가 진로를 바꾼 것에는 그의 기구한 성장 내력도 작용을 했으리라 생각된다.
그는 낭포성 섬유증(cystic fibrosis)이라는 희소 유전병을 지니고 있었다(몇백· 몇천 명 중에 한 명꼴로 걸리는 병이고 아시아· 아프리카계 사람에게는 거의 발견되지 않음. 열성 유전자.). 인체 장기 내부에서 만들어져야 하는 점액이 선천적으로 이상하게 만들어져서 각종 물질대사와 질병 면역의 효율을 떨어뜨리고, 이 때문에 보균자는 몸의 이곳저곳에서 탈이 나면서 오래 못 살고 서서히 고통스럽게 죽는다고 한다. 무슨 에이즈도 아니고..?

애초에 그는 13세까지밖에 못 산다는 시한부 선고까지 받았지만 예상의 3배에 가까운 기간을 산 상태였다.
그가 신학교를 다닌 지역인 시카고는 공기가 그리 안 좋은 곳이었고, 거기서 지낸 2년간의 시간이 그의 지병을 악화시켰을 거라는 추측도 있다.

그는 신학교를 졸업한 후, 고통과 고뇌 가운데서 Naked Before God: The Return of a Broken Disciple이라는 책을 썼다. 예수님 시대에 ‘나다니엘’이라는 어느 소심하고 병약한 젊은이가 몰래 예수님을 만나고, 그분으로부터 이 세상의 질병과 슬픔, 고통에 대한 의문의 해결책을 얻는다는 내용으로, 사실상 작가 자신의 삶을 그린 자서전적 소설이다. 교리보다는 영성 분야이다.

사용자 삽입 이미지
인생에 대한 고찰이 담겨 있다는 점에서 성경의 욥기가 떠오르기도 하고, 요한복음 2~3장이 생각나기도 하지만, 이 책에서 주인공을 설정한 첫 모티브는 막 14:51-52이라고 한다. 마가복음에만 기록된 그 유명한 사건! 책 제목에 괜히 naked란 말이 들어간 게 아니다.

이 책이 출간된 지 얼마 못 가 그는 세상을 떠났다. 아마존 서평을 보니 책에 대한 독자 리뷰는 굉장히 좋은 편이다. (구글 도서 서비스는 완전히 엉뚱한 동명이인을 책의 저자라고 소개하고 있는데, 그 사람이 아니므로 착오 없기 바란다.)
15년 전의 그의 대표작인 Alley Cat이라는 게임과는 너무나 딴판인 분위기이지 않은지?

그와 좋은 대조를 이루는 인물이 IT계에 있다.
오늘날 전세계에 가장 널리 퍼진 압축 알고리즘인 zip을 고안한 사람은 Phil Katz (1962-2000)라는 천재 프로그래머이다. 도스 시절에 쓰이던 pkzip, pkunzip에서 pk는 당연히 그의 이름의 이니셜이며, 사실 모든 zip 파일은 첫 부분이 PK라는 문자로 시작한다.

jar이나 안드로이드 apk, 그리고 MS 오피스 2007 문서들도 다 zip을 컨테이너 파일 포맷으로 사용하고 있으니 그 인지도는 얼마나 압도적인가?
도스 EXE의 식별자인 MZ (고안자인 Mark Zbikowski에서 유래)와 더불어 그는 가장 유명한 파일 포맷을 만든 거장 중 하나이다.

Phil Katz는 Bill Williams와 딱 두 살 차이이고, pkzip의 전신인 pkarc를 만든 게 1986년으로 역시 20대 초중반의 나이로 작품을 남긴 사람이다. 게다가 30대 후반의 나이로 요절한 것까지도 놀라울 정도로 똑같다. (빌의 생년과 몰년에다가 2만 더하면 된다.)

그러나 알 만한 사람들은 다 알듯, pkzip의 개발자는 Bill Williams와는 전혀 다른 삶을 살다가 전혀 다른 방법으로 급사하여 그 당시 IT계 사람들을 안타깝게 했다. (갑자기 늘어난 부를 감당하지 못한 나머지 재산 탕진하고 알코올 중독에 빠진 채 호텔에서 객사했다 -_-)

세상엔 이런 사람도 있고 저런 사람도 있다. IT계라도 예외가 아니다.
작년 가을엔 세상 언론들이 스티브 잡스의 죽음에는 완전 애도하고 자서전까지 만들고 난리도 아니었지만, 그로부터 1주일 뒤에 잡스보다 컴퓨터의 발전에 월등히 더 기여한 어느 전산학자가 죽었을 때는 거의 관심이 없었다. (유닉스 운영체제의 개발에 참여하고 C언어를 발명한 사람이다!)

세상 사람들은 영문학의 기반을 다 닦은 셰익스피어를 문학의 천재로 칭송하지만, 그와 거의 동시대를 살았고 아예 킹 제임스 성경의 번역에 참여한 천재 언어학자인 랜설롯 앤드류스 같은 사람은 거의 알지 못한다.

이런 것처럼, 개인적인 재능과는 무관하게 인생의 정확한 행로와 목표를 아는 사람과 그렇지 못한 사람의 삶은 달라지는 게 자명하며, 그리고 사람의 어떤 행적에 대해 사람의 평가와 하나님의 평가는 다를 수밖에 없을 것이다.

기독교 신앙하고는 웬지 거리가 있어 보이는 게임계에도 저런 사연을 남긴 개발자가 있었다는 게 무척 애착이 간다. 그리고 그 Alley Cat 게임도 보통사람이 만든 게 아니라는 걸 알고 나니 다시 보게 된다.

Posted by 사무엘

2012/02/09 08:24 2012/02/09 08:24
, ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/639

여러분 중에 혹시 옛날에 Alley Cat이라는 아래의 완전 구석기 시대 게임을 해 보신 분이 있는가?

사용자 삽입 이미지

난 해 봤다.
전설의 카세트테이프까지 접하지는 못했지만, 그래도 1990년대의 16비트 IBM 호환 PC의 발전은 다 지켜본 세대이기 때문이다.

저 게임의 제목은 우리말로는 딱 ‘도둑고양이’라는 뜻이다.
내가 갓난아기이던 1984년에 만들어진 게임이요, (PC용이 1984년. 8비트 Atari용 원판은 1983년에!)
6만 바이트가 채 안 되는 실행 파일 하나에 게임에 필요한 모든 코드와 데이터가 다 들어있다.
실행하면, 도.도. 시.시. 라~시라솔... 로 시작하는 그 중독성 있는 음악이 나온다.

실행 파일을 들여다보면,

This program requires a color graphics adapter.

라는 문자열이 있다.
This program requires Microsoft Windows도 아니고(과거에 윈도우 3.x용 프로그램이 도스에서 실행되었을 때 뜨던 실행 거부 메시지), VGA도 아니고.. 컴에 CGA가 없을 때 출력해 줄 에러 메시지가 들어있다니 도대체 얼마나 옛날 게임인 걸까? 320*200 4색짜리 그래픽 ㅋㅋ

이 게임을 만든 사람은 Bill Williams (1960-1998)라는 분이다. 정확히 말하면, John Harris라는 다른 프로그래머가 만들다 만 것을 이어받아서 자기 식으로 완수한 거라고 함.

사용자 삽입 이미지
(사진 출처: 영문 위키백과)

아주 흔하고 동명이인이 많은 이름이긴 한데, William의 애칭이 Bill 아니던가? 그럼 동일 이름 중복?

그야말로 20대 초중반의 나이에 그 열악한 하드웨어에서 어셈블리 코딩만으로 저렇게 고양이가 뛰어다니는 세계를 창조했다는 게 심히 놀랍지 않을 수 없다.
참고로 존 카맥(John Carmack)이 Doom 엔진을 만들어 낸 나이도 저 때와 비슷하다. 다들 25세가 채 되기 전이다! 천재들은 다 그 나이 때 이미 세상에 이름을 남긴다.

저 게임은 솔직히 내 취향은 아니었다. 나는 아케이드· 플랫폼 게임을 좋아하는 편이지만, HP가 없이 즉사하는 시스템을 별로 안 좋아했다. (사람을 조마조마하게 만들고 놀라게 해서-_-) 그리고 맨날 빗자루에 걷어 채여 날아가는 고양이가 좀 불쌍했다. 드럼통에서 창문 빨랫줄로 올라가려고 하는데 그때 딱 창문에서 떨어지는 물건에 이따금씩 맞는 게 싫기도 했고.

하지만 게임의 세계관이 심히 창의적이고 독특한 건 사실이다. 게임은 몰입도가 상당히 높다. 게임 속의 고양이는 끊임없이 움직이지 않으면 안 된다. 길바닥에서 고양이가 좀 지체하고 있으면 개가 달려와서 고양이를 죽인다. 드럼통에도 너무 오래 있으면 밑에서 괴물 머리가 툭 튀어나오면서 고양이를 밑으로 쫓아낸다. 방에 들어가서도 안심할 수 없다. 빗자루의 방해를 안 받고 미션을 완수하려면, 주기적으로 계속 바닥을 돌아다니면서 흙먼지를 묻혀 줘야 한다. 고양이가 좀 발 붙이고 쉴 틈이라곤 없다.

보글보글만큼이나 게임에 갑툭튀하는 랜덤한 요소가 많다. 화살표 키도 어떻게 조작하냐에 따라 고양이의 이동 속도와 점프 방향이 생각보다 다양하게 바뀐다. 나름 머리를 써서 만들었다는 흔적을 느낄 수 있다. PC 스피커만으로 상당히 정교하게 합성해 낸 효과음도 일품.

이 게임은 딱히 엔딩이 없어서, 퀘스트를 달성해서 암고양이를 만난 뒤에도, 진행 속도와 난이도만 더 올라간 채 게임은 한없이 반복되었다. 또한 원래 PC가 아닌 게임기용으로 만들어져서 그런지 PC 버전도 종료 기능이 없었기 때문에, 나중에는 컴퓨터를 그냥 끄거나 Game Wizard 같은 유틸리티의 Crash back to DOS 기능을 사용해서 빠져나가야 했다.

난 Bill Williams의 작품이라고는 Alley Cat밖에 알지 못하지만, 외국에 있는 어느 고전 게임 개발자 열전 사이트에서는 그를 1980년대를 풍미한 천재 게임 개발자라면서 게임 디자인계의 ‘스탠리 큐브릭’이라고 칭송하고 있다. “His games are completely original and stunning.”

그는 1990년대에는 게임 개발을 완전히 접고, 뜻밖의 진로를 선택했다.
기독교 신자였던 그는 목회를 할 의향으로 시카고에 있는 루터 신학교에 돌연 입학하여, 1994년에는 신학 석사 학위를 받았다.
재학 중에도 성경 탐구에 대한 열의가 남다른 우수한 학생이었다고 한다.

(下에서 계속됨)

Posted by 사무엘

2012/02/07 08:18 2012/02/07 08:18
, , ,
Response
No Trackback , 17 Comments
RSS :
http://moogi.new21.org/tc/rss/response/638

도로의 확장

단칸방에서 살림을 시작한 신혼부부가 세월이 흘러 경제력이 생기고, 또 자녀들 때문에 더 넓은 행동반경이 필요해지면 더 큰 집으로 이사를 간다.
어떤 교회가 성도 수가 늘고 기존 건물이 너무 비좁아지면, 역시 더 큰 곳으로 예배당을 옮긴다.
건물을 예로 들었지만 길도 예외가 아니다. 처음에 설계했던 길의 크기에 비해 교통량이 지나치게 늘면 길을 넓히게 된다.

과거에 경부 고속도로의 건설이 끝난 뒤, 박 정희 대통령은 이런 말을 남겼다고 한다.
“내가 야당이 하도 반대를 해 대서 일단 4차선으로만 만들었지만, 이 도로는 얼마 못 가 너무 비좁아지는 때가 분명 온다. 그러니 언제든지 확장을 할 수 있게 대비해 두고, 도로의 양 옆 50m에는 건물 건축 허가를 내 주지 말아라.”

오늘날 박통의 예상이 틀렸다고 생각하는 사람은 아무도 없을 것이다. 오늘날 경부 고속도로가 40년 전의 4차선 형태 그대로 아직까지 남아 있는 곳은 영천-경주-울산과 추풍령 일대의 극소수 구간뿐이다.
비록 경부 고속도로가 처음에 너무 저비용으로 단기간에 날림으로 만들어져서 나중에 땜질을 하는 데 비용이 더 들었다는 비판이 있긴 하다만, 박통 역시 정황상 원하던 규모로 도로를 애시당초 못 만든 고충도 있었던 게 사실이다.

1. 길을 넓히는 작업은, 이상적인 경우라면 기존 도로의 양 옆에 차선이 하나씩 추가되는 게 가장 자연스럽다. 중앙 분리대의 위치가 바뀌지 않으며, 기존 도로의 센터를 건드릴 필요가 없다는 점이 매우 좋다.
다만, 터널이나 교량은 유연한 확장이 매우 어렵기 때문에 양 옆으로 같은 시설을 더 만드는 식으로 확장이 이뤄진다. 오래 된 터널이 세 개 존재하고 중앙의 2차선짜리 터널 내부에 중앙선이 있다면, 그건 100% 나중에 1차선짜리 터널이 추가로 건설된 거라고 보면 된다. (예: 서울 종로구의 사직 터널)

2. 그러나 기존 도로의 한쪽 옆에 동일한 규모의 새 도로가 건설되어 기존 도로는 상행, 새 도로는 전체가 하행이 되는 식으로 확장되는 경우도 적지 않다. 기존 도로와 새 도로가 완전히 분리되는 건 말할 것도 없고 서로 고저 차이가 있기도 하다.

서울의 대표적인 횡축 자동차 전용 도로인 강변북로(그리고 아마 올림픽 대로도)가 이런 식으로 확장된 좋은 예이다. 강변북로는 지금의 서쪽 방향이 원래 있던 도로였다. 편도 2차선의 4차선짜리 도로였는데 좀더 한강 쪽에 가까운 4차선짜리 고가 도로가 추가로 건설됨으로써 총 8차선이 되고, 새 도로는 동쪽 방향을 맡게 되었다.
터널 중에서는 남산 제1터널이 이런 방식으로 확장되었다. 추후에 옆에 터널을 하나 더 만든 뒤, 각각 상· 하행 역할 분담.

3. 이러지도 저러지도 못하면 그냥 옆에, 혹은 복층으로 독립적인 상· 하행 방면이 존재하는 새 도로가 추가되는 걸로 끝난다. 중부 고속도로(고속국도 35호선)가 좋은 예이다. 험준한 산 위에 놓인 높은 고가는 이거 뭐 건드릴 수가 없기 때문에 옆에 그냥 제2 중부 고속도로(고속국도 37호선)를 추가로 만드는 것 외엔 답이 없었다. 철도로 치면 방향별 복복선이 아닌 선로별 복복선처럼 되었다.

세 가지 경우 중 기존 선로나 차선의 상하행 용도가 바뀌기도 하는 방식은 2번이 유일하다. 그래서 길에 각종 신호 시스템이 정교하게 얽혀 있는 철도가 2번처럼 확장되기란 대단히 어렵다. 뭐, 철도는 복선에서 복복선으로 바뀌는 것 자체가 수도권 대도시가 아니면 대단히 드문 일이긴 하지만 말이다.
경부· 경인선은 1번과 같은 방식으로 복복선으로 확장되었지만, 이들이 합류하는 구로 이북의 서울 시내 구간은 3번 방식으로 확장되었으며, 이는 아마 부지 문제 때문에 그렇게 된 것으로 보인다.

이런 식으로, 어떤 길이 처음엔 작았다가 나중에 확장되었다는 증거는 구조물로부터 확인할 수 있다. 그리고 자동차 전용 도로의 경우는 진출입로에서도 드러난다.

우리나라는 자동차가 우측통행을 하며, 편도 4차선 도로라면 진출입로는 당연히 맨 오른쪽 끝인 4차로에 있다. 중앙선과 가장 가까운 곳이 1차로이니까 말이다.
그런데 강변북로의 동쪽 방면 도로는 맨 왼쪽 끝의 1차로에 진출입로가 수시로 존재한다. 마포 대교나 원효 대교의 진출입 램프를 생각해 보기 바란다. 왜 그럴까?

그것은, 예전 도로를 기준으로 만들어진 진출입로의 영향 때문이다.
강변북로가 확장되기 전에는, 한강 다리의 북단에서 강변북로의 동쪽 방면으로 진입하려면, 지금은 서쪽 방면으로만 쓰는 옛 도로의 오른쪽 끝으로 진입로(램프)가 이어져야 했다. 그게 자연스러운 결과이다.

그 길을 크게 고치지 않은 채로, 옆에 있는 강변북로 동쪽 방면으로 살짝 연결시키다 보니 새 도로에 처음 닿는 곳은 4차로가 아닌 중앙선 근처의 1차로가 된 것이다. 즉, 강변북로 동쪽으로 갈 때도 서쪽 방면 도로를 살~짝 찍은 뒤에 동쪽 방면으로 건너간다는 뜻이다. (옛 도로의 오른쪽 끝인 2차로 → 새 도로의 왼쪽 끝인 1차로로 바뀜) 이해가 되시겠는가?

동서 방면 도로와 남북으로 가는 도로가 십자형으로 만나고 어느 방향에서든 모든 방향으로 진입할 수 있는 입체 교차로의 가장 교과서적인 형태는 두말 할 나위도 없이 클로버형 나들목이다. 그러나 한강과 복잡한 시가지를 끼고 있고, 더구나 기존 시설물까지 존재하는 서울 시내의 자동차 전용 도로가 그런 깔끔한 모양을 유지하기란 현실적으로 곤란하기 때문에 지금과 같은 약간의 복잡한 시설물이 만들어진 것이다.

한 도로에서 다른 도로로 갈아타는 입체 교차로 램프가 좀 복잡하고 삽질스럽게 생겼다 싶으면, 이것도 옛 도로가 확장된 흔적이기라도 한가 의심해 봐도 좋을 것이다. 입체 교차로는 신호 대기가 없어서 무척 좋긴 하지만, 자동차에 내비가 보급되기 전에는 이런 복잡한 도로를 어떻게 찾아갔을지 옛날에 운전하던 분들이 초행길에 적응하느라 힘들었을 것 같다.

Posted by 사무엘

2012/02/05 08:36 2012/02/05 08:36
, ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/637

요즘 KTX 근황

말도 많고 탈도 많던 KTX 산천 차량이 어느 샌가 경부선에서는 놀라울 정도로 보기 힘들어져 있다.
심지어 하루 단 한 번 있는 서울-부산 무정차 KTX도 처음에는 산천이 다니던 게 다시 떼제베 차량으로 복귀했다. 타는 승객이 많을 리가 없고, 또 과거의 구특전 새마을호 #1~#4 컨셉인 특급 열차엔 최신형 내장재로 무장한 산천만치 적합한 편성은 없을 것 같은데 말이다. 의외의 결과이다.

이렇게 된 일차적인 원인은, 코레일이 이놈의 산천 차량이 하도 고장이 잦아서 차량 품질을 믿을 수 없다고 차량 제조사를 디스했기 때문이다. 안습한 현실이다.
그럼 이 산천 차량이 다 어디 갔느냐 하면, 호남· 전라· 경전선 같은 마이너 노선으로 갔다. 일종의 좌천 발령인가. ㄲㄲㄲㄲ

사실, 2010년 초에 KTX 산천이 처음 도입됐을 때도 새 차량은 호남선에서 집중적으로 베타테스트를 거치곤 했다. 경부선보다 수요가 적고 차량 운행도 뜸하니 위험 리스크가 적기 때문이다. 서울 도시철도 공사가 옛날에 국산 인버터 전동차(일명 609 편성)를 왜 5~8호선 중 6호선에다가 시범 투입했었겠는지를 생각해 보라. 같은 이유이다.

그러나 이 때문에 호남선은 열차의 운행 횟수는 변함없는데 차량이 다 산천으로 바뀜으로써 좌석수가 크게 감소했다. 그래서 승객들이 평일 낮에도 자리를 못 구해 아우성인 지경이 되었다고 한다. 18량 고정 편성인 떼제베는 한 편성에 무려 900명이 넘는 승객을 실어 나르지만, 산천은 8량 1편성이 기본이고 좌석도 더 커서, 수송량이 떼제베의 절반이 채 안 되기 때문이다. 중련을 해도 700명 남짓.

경부선은 2010년에 2단계 공사까지 끝남으로써 광명 이남의 전구간에 전용 고속신선이 부설되었고, 이제 대전과 대구의 시내 구간에만 전용선이 깔리면 된다. 승객 수요도, 선로의 품질도 압도적으로 뛰어나다.
그 반면 호남선은 아직 대전 이남은 느린 기존선이다. 거기에다 광주-서울, 전주-서울 고속버스가 가히 시내버스를 능가하는 배차간격으로 다니고, 천안-논산 고속도로라는 지름길까지 있어서 철도의 강력한 경쟁자 역할을 하고 있다. 그럼에도 불구하고 호남선 KTX도 장사가 그렇게까지 아주 안 되는 건 아닌 게 현실이다.

2010년 말에 경전선 KTX가 개통한데 이어, 이제 전라선도 복선 전철화와 선형 개량이 끝난 관계로 드디어 KTX가 2011년에 소리 소문 없이 들어가기 시작했다. 비록 하루 편도 5회이지만 전주· 남원· 순천도 서울에서 KTX 타고 환승 없이 한번에 가는 시대가 열린 것이다. 여수 엑스포를 염두에 둔 개통이다. 투입된 건 모두 산천 차량이다.

전라선은 한때는 동일 구간을 경유하는 고속도로가 없어서 전통적으로 철도 수요가 많기도 했다. 광주 쪽으로 확 꺾는 호남 고속도로(25)와, 아예 진주· 통영 쪽으로 가는 통영-대전 고속도로(35)의 넓은 공간 사이에 고속도로가 없었던 것이다. 그러던 게 지금은 전주-광양 고속도로(27)가 전라선과 거의 같은 선형으로 생겨서 사정이 나아졌다.

그러나 이런 호남 지방의 수요를 월등히 압도하는 건 역시 영남 지방의 수요임이 드러났다.
말이 경전선이지 사실 '경남선'이라 해야 맞겠다.
경전선 KTX가 개통한 후, 창원· 마산의 여객 수요는 코레일의 예상을 넘어 가히 폭발적이었다. 이 역에서 타고 내리는 승객은 가히 인산인해를 이루었고, 그야말로 자리가 없어서 난리가 났다고 한다. 부랴부랴 열차를 증편해 주고, 산천이던 차량을 떼제베로 바꾸고, 산천 중련의 경우 동대구에서 한 편성 떼어내던 걸 안 떼고 끝까지 가게 했다.

경전선은 어차피 고속신선은 1차 개통 당시의 구간과 동일한 서울-대구까지밖에 이용하지 않는다. 그러니 1차 개통 시절에 진작에 개통했어도 아무 문제가 없었을 텐데, 아직 산천도 없던 시절에 거기까지 투입하기엔 차량이 부족하고, 호남과의 공급 균형(?)과 수요 예측 문제로 인해 아직 개통을 안 했던 것 같다.

2차 개통 후에 영등포와 수원 정차 KTX는 승객이 어떻게 됐나 모르겠다. 듣기로는 영등포보다 수원에서 이용객이 훨씬 더 많았다고 한다.
울산은 신경주에서 그리 멀지 않고 당초 계획에도 없었고, 게다가 울산 시내에서 굉장히 멀다는 여러 악조건이 있었음에도 불구하고 역시 예상 이상의 이용객 대박을 내 주고 있다. “교통 불편하고, 비행기를 타느니 KTX 타지” 라는 비즈니스맨들이 많아서 그런 것이리라 예상한다. 이는 앞으로 포항으로 가는 KTX에 대한 수요도 희망적일 것임을 시사하는 듯하다. 하지만 이 경우, 신경주 역은 손님 많이 뺏길 듯.

요컨대 KTX의 흥행 성적은 접근성이 너무 불편한 구미김천(아무리 구미에 공업 단지가 있다 해도 너무 불편..)이나, 병크에 가까운 ㅇㅅ 역을 빼면 전반적으로 최소 중박 이상인 것 같다. 요즘 KTX는 코레일에게 돈 잘 벌어다 주고 있는 cash cow임이 분명하며, 마땅히 그래야만 한다. 본인보다 더 자세하고 정확한 정보가 있는 철덕이라면 의견 남겨 주기 바란다.

TRIVIA:

1. KTX 고속신선이나 요즘 복선 전철로 개량되는 철도야 고가와 터널이 정말 밥먹듯이 나오지만, 그야말로 20세기 초에 개통하고 복선화까지 되었으며 지형적으로 원래 평지이기까지 한 경부선 대전 이북 구간은 정말 터널이 거의 없다시피하다.
서울울 출발한 경부선 열차가 처음으로 터널을 만나는 곳은 대전까지 거의 다 와서 내판-부강 역 사이 지점이며, 나중에 부강-매포 사이에도 터널이 나온다. 겨우 몇 초 만에 다 통과해 버리지만, 그래도 열차 내부가 다 깜깜해지고 귀에 이명 현상까지 느껴질 정도이니 엄연한 터널이다.

2. 경부선 기존선에서 KTX 고속신선을 올려다볼 수 있는 곳은 흔치 않다. 대전 이북에서 고속신선은 기존 경부선과 딱 두 번 마주치고 그나마 대전 북부에서 기존선과 고속신선이 좀 나란히 달린다. 김천 근처에서는 두 선이 자주 마주치는 편.

그런데 양 열차가 비슷한 시간대에 나란히 달려서 서로 상대방 열차를 볼 수 있게 되는 일은 얼마나 발생할까? 이를 예측하고 관측하는 건 마치 특별한 천체 현상의 관측하는 것 같은 흥미로운 일이 아닐 수 없다. 나는 가끔 본 적이 있다.
혜성의 출현이나 일식· 월식 같은 건 시뮬레이션으로 미래에 일어날 일까지 다 예측하는데, 이것도 열차 시각표와 지리 데이터를 주면 계산에 의한 예측이 충분히 가능할 것이다.

Posted by 사무엘

2012/02/03 08:19 2012/02/03 08:19
,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/636

« Previous : 1 : ... 156 : 157 : 158 : 159 : 160 : 161 : 162 : 163 : 164 : ... 215 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/05   »
      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:
2692430
Today:
466
Yesterday:
1223