학위 수여식 (2012/8/31)

사용자 삽입 이미지
학부를 졸업한 지 어언 7년이 지난 뒤에야 후드가 걸쳐진 졸업 가운이라는 걸 입게 됐다. 주황색은 공학을 뜻한다. (학사용 졸업 가운은 후드가 없음.)

학사는 성적이 중요하니 최우등/우등 졸업이라는 게 있다. 박사는 시험 점수 따위를 초월하여 개개인이 이제 자기 분야에서 프로 연구자이니, 졸업자들이 모두 호명되고 학위 논문의 제목까지 유인물에 다 기재된다.
그 반면, 석사는 둘 중 어느 것에도 속하지 않는 콩라인이다.

태풍 직후, 날씨가 최강 좋았다. 맑고 파란 하늘 덕분에 사진 찍기는 최고의 날씨였다.
괜히 Y대 아니랄까봐, 학위수여식은 찬송가 제창과 성경 봉독으로 시작해서 축도로 끝났다.
혼자 예상한 것보다 좀 더 오버하듯이 씨익~ 웃어야 사진이 더 밝고 명랑한 표정으로 나온다는 걸 느꼈다.

내가 전형적인 내 학부 학교 출신들이 가지 않는 학교와 과로 대학원 진학을 하고, 남들은 박사까지 다 마칠 나이에 이제 겨우 석사를 마친 건 정말 어쩔 수 없는 귀결이다. 남들이 전혀 관심을 갖지 않는 분야에 없는 진로를 만들면서 가고 있어서..;;

Posted by 사무엘

2012/09/03 19:20 2012/09/03 19:20
, , ,
Response
No Trackback , 11 Comments
RSS :
http://moogi.new21.org/tc/rss/response/728

사용자 삽입 이미지

- (1) 부대내의 박물관 관람 → (2) 천안함 잔해 구경 → (3) 초청자가 현재 근무하고 있는 군함 구경 → (4) 초청자의 관사에서 식사 대접 받으며 교제 순의 코스였다. 옆에 같이 간 사람들은 모두 교회 사람들. 단순 안보 관광인 (1), (2)를 넘어 (3), (4)는 군 관계자 인맥이 없으면 경험하기 쉽지 않을 것이다.

- 나의 “천하의 개쌍놈 북한” 관념이 이 견학을 계기로 더욱 투철해졌다. 정정당당한 교전으로는 남한을 이길 수 없어지니 치밀하게 비열한 복수극을 계획한 나쁜 놈들. 늘 민족 동족 운운하면서 뒤로는 일본 이상으로 나쁜짓을 해 온 녀석들이다.

- 제2 연평해전 당시에 교전 수칙 때문에 대통령이 많이 까였었다. 그런데 그것보다도 내가 더 이해를 할 수 없는 건 당시 제1 연평해전을 승리로 이끈 지휘관인 박 정선 제독을 나라에서는 (사실상) 좌천 발령시키고 이내 전역시켜버렸다는 사실. 100번 까여야 마땅하다. 어디에서 주장하는 것처럼 이건 북한의 요구대로 한 게 정말 사실인가?

- 제2 연평해전 전사자 영결식이던가 그때 대통령이 안 온 것에 대해서, 기지 견학을 시켜 준 해군 관계자는 아직까지도 꽤 유감스러워하는 표정이었다.

- 제주 해군 기지 건설에도 배후에 그렇게 깊은 뜻이 있는 줄 처음 알았다.

- 육군은 닥치고 쪽수이고, 공군은 1인 1비행기인 전투기 파일럿만 빼면 대부분이 비전투 병과인 반면, 해군은 배가 생활 공간 겸 그대로 전장이다 보니 그 중간에 속하는 군대 문화를 갖추고 있다. 대한민국은 수출에 목숨 걸어야 하고 바다 없이는 못 사는 나라인 주제에, 해군에 대한 지원이 너무 열악하다고 한다.

- 군함에는 내연기관과 제트엔진이 모두 달려 있다고 한다. 이것도 자동차와 비행기의 중간인 셈인데, 제트엔진을 가동하면 무척 빨리 움직일 수 있지만 극심한 소음과 연료 소모를 감수해야 한다고. 그런데 둘은 사용하는 연료부터가 서로 다르지 않나? (중유 vs 등유)

- 평택 시내의 경부 고속선 고가를 달리는 KTX를 보니 정말 감격스러웠다.

- 우리나라 철도를 공부하면서 단련된 나의 우리나라 역사, 지리, 안보 지식은 군 관계자와 얘기를 나누면서도 유감없이 발휘되었다. 철도님, 사랑합니다.

- 이런 곳에 신실한 KJV 빌리버 크리스천이 계셔서 성경 교제와 안보 관광을 동시에 하고 올 줄이야. 친절하게 군 시설을 안내하고 융숭한 대접을 해 주신 해군 관계자들께 감사드린다.

Posted by 사무엘

2012/09/01 19:34 2012/09/01 19:34
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/727

1. conime가 conhost로

윈도우 NT 계열 운영체제에는 전통적으로 시스템 디렉터리에 conime.exe라는 자그마한 프로세스가 있었다.
이 프로그램의 타이틀은 Console IME로, 말 그대로 명령 프롬프트(콘솔이라고 불리는)라는 특수한 환경에서 한글이나 일본어의 입력을 지원하기 위해 운영체제와 명령 프롬프트 사이의 통신을 담당하는 듯하다.

conime는 명령 프롬프트를 여러 개 연다고 여러 인스턴스가 중복 실행되지는 않는다. 하지만 한번 실행되고 나면 나중에 명령 프롬프트를 모두 닫아도 종료되지 않고 남아 있는다. 그래서 명령 프롬프트에서 <날개셋> 한글 입력기를 사용하다가 나중에 <날개셋>을 버전업/제거한다거나 하면 conime 프로세스를 강제 종료시켜야 한다고 설치 프로그램이 징징대는 걸 볼 수 있다.

뭐, 작업 관리자로 이 프로세스를 강제 종료시키더라도 운영체제에 악영향은 (전혀) 없다. 나중에 명령 프롬프트를 열면 운영체제가 그걸 알아서 또 실행해 준다.

그런데 윈도우 7에서는 시스템 프로세스 중에 conime.exe가 사라졌다는 걸 본인은 아주 뒤늦게 확인했다. 명령 프롬프트에다 IME 기반 문자 입력을 제공하는 계층이 다른 걸로 바뀌었다는 뜻인데, 어쩌면 이런 변화 때문에 콘솔에서 조합 중인 한글이 덧나는 버그('다다.' 같은)도 덩달아 들어간 게 아닌가 하는 추측도 할 수 있을 것 같다.

관찰해 보니, 윈도우 7에서 콘솔과 관련하여 대신 등장한 프로세스는 conhost.exe이다. 콘솔에서 <날개셋> 한글 입력기를 사용하고 있는 채로 해당 프로그램을 제거하거나 변경하려고 시도하면 conhost 때문에 안 된다는 경고가 뜬다.

그럼 conhost는 cmd.exe 자체와 일대일 대응하는 자매 프로세스냐 하면 꼭 그렇지는 않다.
명령 프롬프트에서 또 cmd라고 치면 그 동일한 창 안에서 명령 프롬프트가 또 구동되는데(exit를 치면 종료 가능한), 이때는 conhost가 또 생기지는 않는다. start cmd라고 쳐서 독립된 콘솔 창이 생성되어야 conhost도 중첩 생성된다. 관계가 이해되시겠는가?

conime와는 달리, 이놈은 명령 프롬프트 창의 인스턴스와 일대일 대응하고, 창이 닫히면 이 프로세스도 종료되어서 IME 프로그램 파일에 걸렸던 lock이 풀린다. 예전에는 콘솔 디버깅 후에는 conime를 강제로 죽여 줘야 했는데 윈7에서는 그럴 필요가 없어진 건 편해진 점이다.

2. 윈도우 7의 kernel32.dll 리모델링

이뿐만이 아니라, 윈도우 운영체제의 시스템 프로그래밍 내지 파일 해킹에 관심이 많은 분이라면 윈도우 7의 under the hood에서 일어난 흥미로운 변화를 하나 알고 있을 것이다.
운영체제의 근간을 이루는 시스템 DLL 중 하나인 kernel32.dll이 내부적으로 여러 분야로 리모델링을 거치기 시작했다는 점이다.

시스템 디렉터리에 가 보면 api-ms-win-core-*.dll이라는 수십여 개의 DLL들이 보일 것이다.
이것들은 kernel32.dll이 제공하는 1000개가 넘는 윈도우 API를 스레드, 힙 메모리, 동기화 오브젝트, 파이프 등으로 세부 분류한 껍데기들이다.

전통적으로 kernel32.dll은 윈도우 9x 계열의 것은 100% 순수 자체 코드로만 이뤄져서 그런지 외부 DLL에 의존하는 게 아무것도 없었다.
NT 계열의 것은 운영체제 커널보다 먼저 로딩되는 ntdll.dll에만 의존도가 있었다. 그리고 그 ntdll이 외부 DLL에 전혀 의존하지 않는 원초 프로그램이었다.

영원무궁토록 변하지 않을 것 같은 kernel32.dll의 내부 구조가 윈도우 7에서 이렇게 바뀐 걸 처음 봤을 땐 무척 흥미로움을 느꼈다.
지금은 그냥 뭔가 더 큰 변화를 위한 준비 수준일 뿐인 것 같은데, 윈도우 8에서는 변화가 얼마나 더 진행될지가 궁금하다.

3. 콘솔의 시각 테마 적용

윈도우 7로 넘어가면서 콘솔에 미묘하게 생긴 재미있는 변화가 또 있다.
전통적으로 명령 프롬프트 창은 윈도우 XP에서부터 도입된 '시각 스타일', 혹은 시각 테마가 적용되지 않는 딱딱한 창으로 처리되었다.

물론, 공용 컨트롤 6.0 매니페스트가 명시되어 있지 않은 구형 프로그램은 각종 컨트롤이나 child window의 테두리가 구닥다리 고전 테마로 나오긴 했지만, 그래도 프로그램의 제목 표시줄 같은 non-client 영역은 모서리가 둥글게 다듬어지기도 하고 최소한의 시각 테마가 자동으로 적용되었다.

그런데 명령 프롬프트는 그런 게 전혀 없이 완전 사각형 모양에 제목도 여전히 윈도우 98/2000식의 그러데이션이고 100% 고전 테마 스타일로 나왔다.
이렇게 100% 구닥다리로 뜨는 프로그램은 (1) 명령 프롬프트, (2) ntvdm 밑에서 돌아가는 16비트 윈도우 프로그램, 그리고 (3) 사용자가 호환성 옵션에서 '시각 테마 사용 안 함' 옵션을 명시한 프로그램 이렇게 세 종류로 한정되곤 했다.

윈도우 비스타/7의 Aero를 사용하면 100% 구닥다리 프로그램도 제목 표시줄이나 창 프레임 자체는 다른 창과 똑같은 형태로 나오기 때문에 이를 구분하기가 쉽지 않다. 고전 테마 말고 Basic 테마를 고르면 한눈에 구분이 가능해진다. 이게 과거의 윈도우 XP Luna와 기술 수준이 동일한 테마이기 때문이다.

그랬는데 윈도우 7부터는 (1) 명령 프롬프트 창도 시각 테마가 적용되는 창으로 바뀌었다. (2)에 해당하는 16비트 윈도우 프로그램은 64비트 운영체제에서는 아예 존재하지도 않으니, 남은 건 이제 (3)뿐이다.

윈도우 비스타/7이 제공하는 한국어/일본어 입력기는 그렇게 시각 테마 열외 프로그램 밑에서 동작하면 가/A, 漢 같은 아이콘이 흰색이 아닌 검은색으로 표시된다. 고전 테마가 아니라 Basic이나 Aero 같은 일반 테마에서 동작할 때 말이다.
본인은 한글 IME의 개발자로서 그 차이를 눈여겨보고 있었고, 그냥 얘네들이 명령 프롬프트에서 동작할 때만 아이콘 글자색을 검게 처리하는가 보다 하고 넘어갔었다.

그랬는데 윈도우 7에서는 명령 프롬프트에서도 글자색이 변하지 않았고, 이에 의문을 느껴 좀 더 관찰을 해 보니 차이를 만드는 요인은 '시각 테마'의 적용 여부라는 사실을 발견하게 되었다.
왜 일부러 그런 차이를 만들었는지는 나로서는 알 길이 없다. 문자 입력기가 응용 프로그램의 시각 테마 적용 여부에 따라 달리 동작해야 할 요인이 있을 리도 없을 텐데 말이다.

자, 다음 그림은 Basic 테마일 때 윈도우 비스타의 명령 프롬프트 화면과 7의 명령 프롬프트 화면이다. 창 프레임의 모양과 입력기 도구모음줄 아이콘의 색깔에 차이를 주목하시길. 내가 지금까지 설명한 것들이 이해가 될 것이다.

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

4. 도스에서 명령 프롬프트로의 변화

윈도우 9x 계열이야 전용 명령 프롬프트 터미널이라는 게 없이 도스창이 명령 프롬프트의 역할도 겸해 왔다. 그리고 거기서는 아예 도스용 한글 바이오스 프로그램이 따로 쓰이니 conime 같은 컴포넌트는 필요하지 않다.

사실, 16비트 윈도우 시절에 운영체제가 쓰던 전용 실행 파일 포맷(New Executable)은 GUI 환경 전용이었지, 콘솔용은 있지도 않았다. 어차피 똑같은 16비트 기반이고 윈도우 운영체제 자체가 파일 접근 같은 요청은 여전히 도스에다 요청을 해서 처리를 하고 있었으니, 콘솔용 실행 파일을 따로 만드는 건 아무 의미가 없고 필요하지도 않았다.

사실, 매킨토시와는 달리 윈도우 계열 OS에만 존재하는 독특한 ANSI/OEM 인코딩, 코드 페이지 같은 개념은 그 기원을 도스의 명령 프롬프트에서 찾을 수 있을 것이다. 걔네들은 원래 철저하게 1바이트 기반 인코딩을 썼었기 때문이다. 그에 반해 매킨토시는 시작부터가 명령 프롬프트가 전혀 없는 GUI였으니 그런 잔재가 없는 셈일 테고.

5. 윈도우 운영체제의 문자 입력 관련 보조 프로세스

처음에 얘기가 나왔던 conime.exe처럼, Windows에서 문자 입력 프로그램과 관계가 있는 시스템 프로세스를 더 나열하자면...
과거에 윈도우 95~2000/ME까지는 internat.exe라는 프로그램이 있었다. 시스템 트레이에다 현재 선택되어 있는 입력기의 언어와 종류를 띄워 주는 역할을 했다.

그러다가 2001년에 윈도우 XP와 함께 COM 인터페이스 기반의 고급 텍스트 서비스(TSF)가 도입되면서 그 역할은 ctfmon.exe가 대체하게 되었고 그게 오늘날의 비스타/7까지 변함없이 내려오는 중이다. internat이나 ctfmon은 언제나 상주해 있으며, 운영체제를 업데이트하지 않는 한 사용자가 강제 종료할 일도 없는 프로그램이다.

하지만 TSF의 도입 초기이던 오피스/윈도우 XP 시절에는 그게 운영체제의 안정성을 떨어뜨리기도 했기 때문에, 딱히 고급 문자 입력 기능에 관심이 없던 사용자 사이에는 운영체제의 버그를 고친답시고 TSF 기능을 완전히 끄고, 심지어 ctfmon 프로그램을 죽여서 문제를 해결하는 방법이 운영체제 팁으로 공유될 정도였다.

6. MS IME가 등록해 놓는 정체 불명의 유틸리티

MS가 제공하는 한중일 IME는 시작 프로그램에다가 정체를 알 수 없는 이상한 migration 유틸리티 같은 걸 등록하여, 운영체제가 시작될 때 매번 그게 실행되게 해 놓곤 했다. HKLM\Software\Microsoft\Windows\CurrentVersion\Run 아래에 말이다.

사용자 삽입 이미지

일본어나 중국어도 아니고 한국어 IME는 무슨 사용자 데이터를 관리하는 것도 아닌데 도대체 이게 하는 일이 무엇이며 왜 이런 과정이 필요한지는 본인으로서는 알 길이 없다. 그냥 일본어 IME 따라 관례적으로 이런 것도 따라 한 것이기라도 할까?

Posted by 사무엘

2012/08/30 08:37 2012/08/30 08:37
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/726

오랜만에 <날개셋> 한글 입력기의 새 버전 소식을 전하게 된 것을 기쁘게 생각한다.
6.51 다음으로 6.7! 나의 대학원 석사 졸업 기념작이다.
나의 대학 학부 졸업 기념작은 까마득한 옛날인 2005년 여름에 나온 3.41이고,
4년 전 여름에 나온 5.0은 병특 만료 기념작이다.
작년에 6.2가 나온 뒤 거의 정확히 1년 만에 버전이 0.5만치 올라가게 되었다.

이번 버전은 비주얼 C++ 2010으로 개발된 첫 버전이다. 5.5부터 지난 6.51까지는 약 3년 동안 2008로 개발됐다.
더 옛날의 2.5부터 5.31까지는 거의 6년 동안 2003을 썼고 말이다. 그에 반해 VC++ 2005는 처음에 64비트 에디션을 빌드할 때만 잠깐 썼고 그다지 즐겨 사용되지 않았다.

버전 번호에 7이라는 숫자가 들어가는 것은 지난 12년간의 <날개셋> 한글 입력기의 개발 역사상 최초이다. 물론 6.x를 졸업하고 아예 메이저 버전이 7로 진입할 날도 얼마 안 남았고 말이다.
6.7은 여느 역대 버전들과 마찬가지로 다방면의 기능 추가와 개선을 거쳤다. 하지만 이번에도 시간과 여유의 부족으로 인해 원하는 기능, 넣고 싶었던 기능들을 모두 충분히 넣지 못했다. 그렇기 때문에 6.7까지는 안 하고 6.65, 심지어 6.66-_-으로 번호를 정하는 것도 이론적으로 충분히 가능하나, 국민 정서를 감안하여 그러지는 않았다.

한동안 <날개셋> 한글 입력기의 API에 큰 변화가 없었기 때문에 타자연습 3.3은 입력기 6.2부터 6.51까지 API 호환이 지켜졌으나, 이번 6.7에서는 클래스 가상 함수 한 군데의 프로토타입이 바뀌는 바람에 정말 어쩔 수 없이 API 호환이 깨지게 되었다.

타자연습은 1년 전이나 지금이나 바뀐 건 없고, 입력기 6.7의 API를 기준으로 재빌드한 프로그램만 다시 올렸다.
물론, 이제는 API 호환이 안 되는 버전의 <날개셋> 입력기 외부 모듈과 타자연습이 서로 같이 실행되어도 충돌이 없기 때문에, 굳이 타자연습에서 입력기 6.7에 새로 추가된 기능을 꼭 써서 타자 연습을 해야 할 분이 아니라면, 이미 설치된 타자연습 3.3을 또 재설치해야 할 필요는 없다.

이번 6.7에서 내세울 만한 변화는 다음과 같다.

1. 편집기의 에디팅 엔진 최적화

비록 눈에 당장 차이가 느껴지지는 않는 변화이긴 하나, 새 버전에서는 에디팅 엔진의 최적화가 최후 종결자 지점에 이르렀다.
텍스트의 여러 군데가 동시다발적으로 바뀌어서 구간별로 어디는 다시 그려져야 하고, 어디는 단순히 위로 몇 줄 스크롤하면 되고, 더 아랫부분은 반대로 아래로 스크롤되어야 할 때... O(n^2) 복잡도까지 감수하면서 구간별로 모든 가짓수를 100% 정확하게 파악하여 동작하게 했다. (물론, n이 너무 커지면 골치 아프게 그런 것 따질 필요 없이 그냥 화면 전체를 다시 그려 버리면 된다)

예전에는 그냥 최악의 상황을 가정하고 무조건 화면을 다시 그리게 하던 것이 지난 6.2 버전이던가 그때쯤에 크게 개선되었다. 그러나 그것도 동작이 지금 정도로 정교하지는 못했으며, 나중에 다시 생각해 보니 논리 자체에도 원천적으로 결함이 있어서 아주 특수한 상황에서는 여전히 화면 잔상이 남는 버그까지 있었다.

그 점이 찝찝했었는데 이번 버전에서는 드디어 작정하고 매달린 끝에 완전히 끝장을 내고 말았다. 만세! 새로운 기능 구현도, 단순 리팩터링도 아니고 최적화 작업을 끝냈을 때의 홀가분한 기분은 직접 구현해 본 사람만이 느낄 수 있을 것이다. 역시 좋은 프로그래머란, 모든 경우의 수를 논리적으로 잘 따지는 사람임을 느꼈다.

텍스트 에디터를 만들면서 이런 식으로 구간과 구간 사이의 여러 변화들을 한데 합성하는 알고리즘을 구현하는 게 굉장히 힘들었다. <날개셋> 편집기는 한글에만 초점을 맞추려고 complex script는커녕 글씨 크기 변경도 안 되고 가변폭 글꼴조차 지원 안 하는 아주 제한된 에디팅 엔진을 의도적으로 고수하고 있지만, 그 정도를 만드는 데도 지금까지 의외로 복잡하고 어려운 알고리즘이 제법 들어갔다. undo/redo를 관리하는 것도 그렇고.

2. 한글 입력 오토마타 차원에서의 기능 추가

이 달 초에 블로그 글을 통해 먼저 소개한 바 있는 종성 지향 두벌식은, 예전에는 없던 완전히 새로운 개념이 추가된 것이다. 같은 두벌식이라도 음절 경계에서 자음을 초성으로 볼 것인가, 종성으로 볼 것인가 하는 것을 이제 사용자가 직접 지정하는 것은, 한글 입력 전문 프로그램으로서 매우 중요한 기능이 아닐 수 없다.
종성 지향 두벌식과 맞물려 돌아가는 BKSP 옵션, 특수 키, 타수 복원 알고리즘 등등도 다 일관성 있게 동작하도록 로직의 수정과 보강이 이뤄졌음은 두 말할 나위가 없다.

그리고 오토마타에서는 현재 입력된 날개셋문자가 두벌식인지(종성 지향 포함) 세벌식인지를 나타내는 변수를 추가하여, 한 오토마타가 벌식에 따라 다르게 동작할 수도 있게 했다.

사실 이 두 기능은 내 학위 논문에도 들어가야 했을 아이디어인데 논문 학기가 다 끝난 뒤에야 생각이 나고 구현된 것이 좀 아쉽다. ^^;;

3. 단어 단위 한자 변환

<날개셋> 한글 입력기의 아주 오랜 숙원이 이번 버전에서 드디어 부분적으로나마 성취되었다. 만세!
드디어 '대한민국'에서 '국'을 조합 중이거나 '국'의 뒤에다 커서를 두고 한자 키를 누르면 단어를 한꺼번에 大韓民國로 바꿀 수 있다. 그리고 한자를 한글로 바꾸는 것도 최대 12글자까지 한꺼번에 할 수 있다.

사용자 삽입 이미지

이렇게 하기 위해서는 제어판의 '편집기 계층'에서 '단어 단위 한자 변환' 옵션을 켜 주면 된다. 그리고 이 기능은 아무데서나 쓸 수 있는 건 아니고, 자체 편집기나 TSF A급 프로그램(워드패드, MS 워드 등 몇몇)에서만 가능하다.

단, 이것은 아주 초보적인 수준으로만 구현된 것이기 때문에 한계도 적지 않다.
커서 바로 앞까지 끝나는 범위의 단어만 한자로 바꿀 수 있으며, 글자가 아닌 단어 영역에 대해서 블록 같은 시각적인 피드백이 없다.

그리고 이 단어 사전은 <날개셋> 한글 입력기가 자체적으로 갖추고 있는 게 아니다. MS 한글 IME의 한자 사전을 빌려다 써서 동작한다. 그래서 내 프로그램으로 단어 단위 한자 변환을 하려면 윈도우 비스타/7의 한글 IME가 설치되어야 있어야 한다. 자체 사전이 아니므로 사용자 사전 등록 기능 같은 것도 없다.

이번 버전은 그냥 최소한의 노력으로 <날개셋> 한글 입력기도 이제 제한적으로나마 단어 단위 한자 변환이 가능하다는 걸 맛만 보여 준다는 데 의미가 있다. 그러나 이렇게만 해도 정말 신기하기 그지없다.

4. 그 밖의 사소한 변화들

- <날개셋> 한글 입력기의 외부 모듈은 설치하여 구동하고 나면 language bar에 예닐곱 개의 아이콘들이 주렁주렁 달리는 편이었는데, 이번 버전부터는 잉여력이 꽤 강한 전/반각 모드, 텍스트 필터(극소수의 TSF A급 프로그램에서만 사용 가능), 문자표는 제외하고 기본적으로 4개의 아이콘(한/영, 한자, 제어판, 보조 입력 도구)만 표시되게 바꿨다. 나머지 아이콘들은 별도의 명령을 내려서 사용자가 표시하도록 해야 표시된다.

이렇게 하니까 훨~씬 깔끔하고 좋다. 외부 모듈이 개발된 지도 벌써 7~8년째인데 왜 지금까지 이렇게 정리를 할 생각을 안 했나 모르겠다.

- 그리고 <날개셋> 편집기에서 외부 모듈을 사용하면서 편집기의 도구-옵션 명령으로 프로그램의 GUI 언어를 변경한 경우, 외부 모듈의 도구모음줄 아이콘의 툴팁이나 명칭도 해당 언어로 바뀌게 했다. 크게 의미 있는 변화는 아니지만 프로그램간의 일체성을 향상시킨 조치이다.

- 외부 모듈의 한자 변환 후보 선택 중에 Ctrl+C를 누르면 선택된 한자를 클립보드에다 복사가 되게 했고, Shift+엔터/번호를 누르면 한(韓) 형태로, 그리고 Ctrl+엔터/번호를 누르면 韓(한) 형태로 삽입이 되게 했다. 저 기능도 언젠가 넣어야 할 필요를 느끼고 있었는데 이렇게 하는 게 제일 좋을 것 같다.
필요는 발명을 낳는 법. 단어 단위 한자 변환과 연계하면 더욱 편리해진다. '대한민국(大韓民國)' 같은 문구를 한번에 바로 삽입할 수 있으니 말이다.

- '한글을 소리 나는 대로' 필터가 받침 ㄷ계열(ㄷ, ㅅ, ㅌ 등)+ㄹ을 지금까지 ㄹㄹ로 동화시키고 있었는데 이를 ㄴㄴ 계열로 수정했다. 그런데 한국어에서 저렇게 동화가 일어나는 경우가 전혀에 가깝게 없기 때문에 <날개셋> 3.0 이래로 이에 대한 문제를 제기할 일이 없었다.

- '한글 낱자 종류 변환' 필터에 호환용 한글 자모 4개 나열로부터 표준 한글 자모나 한글 글자마디를 만드는 변환 기능을 추가했다. 이것은 우리나라 표준 문자 코드에 명시되어 있는 스펙이기 때문에 도입했다. (거의 사문 전락 수준이 아닌가 의심되긴 하지만.)

- 굳이 나열하기에도 구차한 여러 버그 수정들은 덤. 사용자는 거의 접할 일이 없겠지만.
- 그리고 이번 버전부터 후원 안내문이 프로그램 설치 화면과 도움말 구석에 추가되었다.

5. 제공 자료들

새로 추가된 한글 입력 기능을 활용하여 두벌/세벌 판별 변수를 활용한 복벌식용 모아치기 오토마타, 그리고 맥 OS의 세벌식 자판이 예제로 추가되었다. 종성 지향 두벌식을 사용하여 고증을 100% 살린 MS 두벌식도 예제로 제공된다.
그리고 6.7의 새로운 기능으로만 가능한 건 아니지만, 아래아한글 97이 과거에 제공하던 세벌식 semi-모아치기 오토마타도 예제로 추가했다.

아래아한글 97을 기억하시는가? 아래아한글 2.0 기반의 에디팅 엔진과 3.0 기반의 파일 포맷, 그리고 한컴 2바이트 코드를 사용하던 마지막 버전임과 동시에, 당대로서는 가장 완성도가 높았고 1990년대 말과 2000년대 중반까지 전국적인 사랑을 받았던 명작 워드 프로세서이다.

아래아한글 97은 세벌식 글자판에서 우리나라의 소프트웨어 역사상 전무후무한 한글 입력 로직을 갖고 있었다.
초성만 가장 먼저 입력한 뒤엔, 그 후의 중성과 종성은 아무 순서대로나 입력하면 된다. 아래아한글 97의 오토마타를 <날개셋> 식으로 기술해 보면 다음과 같은데...

0 → A ? 1 : B|C ? 2 : 0
1 → A ? 1 : B|C ? 2 : 0
2 → B|C ? 2 : 0

수식이 정말 심하게 단순하다!
<날개셋>의 표준 모아치기 오토마타는 초성을 나중에 뒤늦게 입력하는 경우를 고려하는 것도 있기 때문에 0부터 3까지 4상태이다. 그러나 아래아한글은 초성 아니면 중성/종성으로만 딱 칼같이 나눠서 겨우 3상태이고 수식도 더 간결하다.
거기에다가 아래아한글의 전통인 조건부 / 키만(초성 입력 직후에만 ㅗ, 나머지 상황엔 / 그대로) 수식으로 넣어 주면 100% 정확한 아래아한글 스타일 세벌식이 완성된다.

Mac OS의 세벌식에 이어 아래아한글 97의 세벌식 입력 오토마타를 구현해 보니 스스로 생각해 봐도 재미있다. 다 똑같은 한글 입력 방식 같아도 실제로는 100% 똑같지가 않다.

내가 예전 글에서 썼듯이, <날개셋> 한글 입력기는 그야말로 한글 덕후들의 지적 욕구를 충족할 수 있는 프로그램, 한글 덕후의 마음의 고향 같은 프로그램을 표방하며 개발되고 있다. 그리고 이번 6.7은 그 이상향에 더욱 근접했다고 볼 수 있으며, 글을 다 써 놓고 보니까 마음이 바뀌는 듯. 이 정도면 6.51에서 6.7로 충분히 버전을 올릴 만도 하다는 생각이 든다. ^^

Posted by 사무엘

2012/08/27 08:20 2012/08/27 08:20
, ,
Response
No Trackback , 13 Comments
RSS :
http://moogi.new21.org/tc/rss/response/725

옛날에 나의 기억 속에 남아 있는 매킨토시는 가히 꿈의 컴퓨터였다. 여기서 옛날이라 함은 대략 1990년대를 말한다.

그때 우리의 IBM 호환 PC는 아키텍처가 다 공개되어 있기도 했으니 ‘행정 전산망용’ 내지 ‘교육용’이라는 타이틀을 달고 국내 대기업이 로컬라이즈까지 해서(일본의 로컬라이즈 방식을 따라한 것이겠지만) 보급되고 있었다. 그러니 맥에 비해 희귀하다는 느낌이 덜했다. 그리고 이 기계는 그래픽 성능이 맥보다 훨씬 시원찮았다.

그에 비해 매킨토시는 희귀함과 화려함 그 자체였다. IBM PC가 겨우 도스 명령 프롬프트에서 16색, 256색 VGA를 논하는 동안 매킨토시 화면에서는 화려한 GUI 운영체제에다 천연색 사진 그래픽과 각종 전자 출판물 편집 장면이 나오고 있었다. 듣자 하니 매킨토시 컴퓨터에는 텍스트 모드라는 게 아예 없다는데? (물론, PC에서도 텍스트 모드는 컴퓨터 켠 직후에나 잠깐 보이는 과거 유물 잉여가 된 지 오래이지만.)

사용자 삽입 이미지
이미지 출처는 모 블로그.

기계의 모양을 봐도 모니터와 본체 일체형에, 하드웨어와 소프트웨어도 다 무조건 자기네 순정만 쓰이는 게 고급스러움과 간지 그 자체였고, 웬지 지구인이 만든 물건 같지가 않은 티가 역력했다. 엘렉스 컴퓨터가 총판을 맡던 시절에, 매킨토시는 가격도 억소리 나게 크고 아름다웠기 때문에 딱히 전자출판· 그래픽 분야 종사자나 유학파 얼리어답터들이 아니면 쓸 엄두를 내기 어려웠다.

(물론, 그때 컴퓨터 덕질을 안 하고 그 돈 더 모아서 서울 강남에다 집을 사 놨으면, 지금쯤 떼부자가 됐을 거라고 자조 섞인 말투로 회상하는 얼리어답터도 있다고 카더라)

매킨토시 진영은 서비스 구리고 하위 호환성에 자비심 없는 것으로도 잘 알려져 있다. ‘윈텔’ 진영과는 성향이 달라도 너무 다르다. MS 윈도우야 API의 하위 호환성은 정말 경악스러울 정도이고, x86 아키텍처 자체도 호환성에 목숨 거느라 그 지저분함이 말도 못 할 수준이지 않던가.

그런데, 그 간지 최강 귀족 컴퓨터에서 돌아가는 맥 OS도, X 이전의 클래식 버전은 사실 선점형 멀티스레딩도 없이 기술적으로는 윈도우 95보다도 뒤쳐진 물건이었다고 한다.
하긴, 어렸을 땐 난 시커먼 도스 프롬프트에서 그 허접한 윈도우 3.1이 시동되는 모습만 보고도, 화려한 그래픽에 동심이 매료되고 가슴이 두근거렸는데 하물며 매킨토시는 어땠을까?

그로부터 세월이 흘러 매킨토시 진영의 역사상 있었던 대단히 큰 사건들을 요약해 보자면 다음과 같다. 200x년대에 굵직한 일들이 많았다.

1. 엘렉스 대신 애플 코리아가 직접 한국으로 진출 (1999)
2. 맥 OS X 출시 (2001)
3. 인텔 아키텍처 기반으로 전향 (2005-2006)
4. 아이폰의 흥행 대성공(과 국내에 드디어 시판) (2007, 2009)
(5. 그리고 아마, 잡느님의 사망. 2011)

매킨토시가 옛날에 비해서는 정말 가격도 많이 떨어지고 보급도 많이 된 건 사실이지만, 서비스의 품질은 오히려 엘렉스 시절보다도 못한 면모도 있다는 성토가 여전히 나돈다.
또한 최강의 장사꾼 기질로 한글화를 꼬박꼬박 친절하게 하는 MS 윈도우 진영과는 달리, 맥 진영은 소프트웨어의 한글화도 좀 투박한 구석이 있다. 기본 제공되는 한글 서체의 품질이 저질이라고 폭풍처럼 까여 온 것 역시 그런 맥락일 테고.

맥은 하드웨어 배경이 완전히 다르다 보니 640KB 메모리 제한이라든가 16비트/32비트 썽킹 같은 흑역사는 없다.
다만, PowerPC에서 x86으로 갈아탄 것은 워낙 여파가 너무 큰 변화이기 때문에 제작사인 애플에서도 어떤 형태로든 호환 레이어를 제공하지 않을 수가 없었다. 그래서 CPU 에뮬레이터인 '로제타'를 만들고, 그리고 한 프로그램 바이너리에 아예 x86 코드와 PowerPC 기계어가 같이 들어있는 Universal binary라는 포맷도 제정했다.

물론 지금은 시간이 충분히 지났기 때문에 Snow Leopard던가 Lion이던가 버전부터는 PowerPC 지원은 완전히 끊겼다. 그리고 Universal binary는 PowerPC/x86이 아니라 같은 x86 계열 안에서 32비트와 64비트 코드를 동시에 내장하기 위한 용도로 쓰이고 있다. 앞으로는 ARM과 x86(-64) 사이의 동시 지원이 필요해질 듯.

가만히 생각해 보면 이게 옛날에 MS가 윈도우 NT 시절에 제정한 Portable Executable과 일맥상통하는 개념이 아닌가 여겨진다. 당시에 윈도우 NT는 x86, PowerPC 등 다양한 CPU를 target으로 개발되고 있었기 때문에, 비록 기계어 코드는 공유를 못 하더라도 동일한 헤더로 실행 파일 바이너리들을 식별하고 관리 가능하게 할 필요는 있었다. 하지만 정작 PE는 한 바이너리에 다양한 아키텍처의 기계어 코드를 한꺼번에 담는 건 지원하지 않는다.

세월이 흘러 지금이야 PC의 역량도 충분히 매우 발전하여, 매킨토시를 사실상 다 따라잡은 지가 오래이다. (그런 비주얼 쪽의 발전을 주도한 건 다 게임이라 해도 과언이 아닐 듯.) 기계어까지 가상 바이트코드로 대체하려는 발칙한 시도가 가능해졌을 정도이니 컴퓨터가 얼마나 성능이 좋아진 셈인가?

그랬는데, 지금 나는 그 시절의 매킨토시보다 훨씬 더 성능이 좋은 매킨토시 노트북 PC를 아무렇지도 않게 갖고 다니며 쓰고 있고, 사실 그 기계로 맥OS보다 윈도우를 여전히 훨씬 더 많이 쓰고 지낸다. 격세지감이 아닐 수 없다!

사용자 삽입 이미지
(폭풍간지 사과 무늬...ㅋㅋ)

Posted by 사무엘

2012/08/24 19:37 2012/08/24 19:37
, , , ,
Response
No Trackback , 7 Comments
RSS :
http://moogi.new21.org/tc/rss/response/724

지난 2012년 6월 30일엔 수인선 복선 전철 1차 구간이 개통했다. 그리고 그 이튿날에는 서울 수도권에서의 첫 경전철인 의정부 경전철이 개통했다. 그런데 그와 비슷한 시기인 6월 27일에는 철덕들이 기릴 만한 아주 의미심장한 사건이 또 있었다. 바로 우리나라에서 딱 한 군데 존재하던 영동선 스위치백이 역사 속으로 사라진 것이다.

문제의 장소는 태백선과 영동선이 합류하는 강원도 태백시와 삼척시 사이의 지점이다. 아래의 그림을 보기 바란다. (바탕 그림의 출처: 네이버 지도)

사용자 삽입 이미지

동백산 역 이북으로 올라가는 영동선은 험준한 산을 오르느라 몹시 고달프다.
자, 무엇부터 설명하는 게 좋을까?
이번에 새로 개통한 노선은 연화산을 빙 도는 연보라색의 둥근 똬리굴(1)과 한 치의 곡선도 없이 북쪽으로 정면돌파하는 분홍색 선(2)이다. 이것이 기존의 초록색 선과 파란색 선을 대체하게 되었다.

지금으로부터 거의 반세기 가까이 전에는 영동선에 인클라인이 있었다는 것을 철덕이라면 알 것이다. 거기는 철길이긴 하지만 경사가 지나치게 급해서 열차가 자기 힘으로 올라갈 수가 없었다. “설렁탕을 사 왔는데 왜 먹지를 못하니?”가 아니라, “레일을 깔아 놓았는데 왜 달리지를 못하니?”였다.
그래서 이 구간만 기관차와 객차를 한 량씩 크레인으로 끌어당기고, 승객들은 내려서 옆에서 언덕을 걸어 올라가야 했다.

여기서 오해하지 말아야 할 점은, 크레인의 힘이 부족해서 승객이 내려야 한 건 아니라는 사실이다.
객차에 승객과 짐이 꽉 차 있어 봤자 기관차 한 량보다 더 무거울 리는 없잖은가.
승객들을 부득이 다 하차시킨 것은 그냥 안전 문제 때문이었을 거라는 게 내 생각이다. 사람들이 뒤에서 같이 객차를 밀어야 했던 건 더욱 아니다.

자, 그 인클라인이 있던 곳이 바로 지금은 폐역하고 없는 통리 역과 심포리 역 사이였고, 지도에서는 대략 '빨간색 선'에 해당한다. 이 1km 남짓 되는 인클라인을 8배가 넘는 거리와 그 대신 1/8 이하의 경사로 우회 대체시킨 것이 옆의 초록색 선이다.

그 뒤 그 이름도 유명한 스위치백은 N자 모양의 파란색 선이다. 초록색 선 정도의 회전 반경을 낼 공간마저 부족했던 관계로 부득이 열차를 정지시키고 후진을 하게 만든 것이다.

스위치백은 관광객에게는 흥미로운 체험 수단이지만 원시적이고 운전하기 까다로우며 열차의 원활한 운행에는 방해가 되는 존재였다. 게다가 구불구불한 기존 초록색-파란색 선로는 지반도 그리 좋지 않아서 위험했다고 하니, 궁극적으로는 이들을 대체할 깔끔한 선로가 필요했다.

그래서 다른 지대인 연화산 기슭을 한 바퀴 빙 돌면서 언덕을 오르는 대체 똬리굴이 개통했다. 평지가 아니라 터널이다. 똬리굴 자체는 우리나라에 이미 중앙선을 비롯해 몇 군데 있지만 이번에 개통한 건 국내 최대 규모이다. 이 터널의 이름은 '솔안 터널'이고, 터널 자체는 이미 2006년에 관통식까지 끝나고 완공되었다.

솔안 터널은 스위치백뿐만 아니라 과거의 인클라인 대체 우회 선로까지 훌륭히 대체했으며, 전체 거리는 기존의 우회 선로보다 더 단축시키고 열차의 운행 시간도 10분이 넘게 더욱 단축시켰다.
어떤 철도의 선형이 하루아침에 이 정도로 급격하게 바뀌고 지도까지 덩달아 바뀌는 일은 앞으로도 매우 드물 것이기 때문에 이는 국내 철도사에 길이 남을 큰 사건으로 기억될 것이다.

재래식 스위치백 선로의 폐선을 며칠 앞두고 코레일에서는 평소에는 정차하지 않던 스위치백 구간의 간이역에도 영동선 여객 열차를 정차시켜 줬었다. 거기서는 당연히 철덕들의 향연이 펼쳐지곤 했다.

그리고 좀 옛날 소식이긴 하다만, 지난 6월 초엔 웬 KTX 산천 한 편성이 강릉으로 디젤 기관차의 견인을 받아 끌려가서 스위치백까지 넘는 사상 초유의 이벤트가 벌어졌었다. 평창 동계 올림픽도 열리는데 앞으로는 강원도에도 고속신선이 깔리고 고속철이 들어갈 거라는 홍보 행사를 위해 현역 고속철 한 편성이 얼굴마담 자격으로 끌려간 듯하다.

발상 자체는 좀 병맛 같기도 하지만 어쨌든 KTX 산천이 강원도에 들어와서 스위치백 고개를 넘는다니, 게다가 한 달 남짓 뒤면 역사 속으로 사라질 그 스위치백을 말이다. 이 소식은 전국의, 아니 듣자하니 심지어 일본의 일부 철덕들의 시선까지 사로잡았다. 이 KTX는 미리 대기하고 있던 철덕들의 카메라 플래시 세례를 집중적으로 받았으며, 자가용을 굴리는 철덕은 아예 도로를 나란히 달리면서 열차를 따라가며 사진을 찍었다.

사용자 삽입 이미지

이런 열정을 가진 사람들이 있기에 세상은 비록 죄악도 있으나 일말의 아름다움도 갖추고 있다. 비록 본인은 교회크리와 논문크리 때문에 그 당시에 이런 사람들과 함께하지 못했으나, 마음만은 그들과 함께하며 그들을 응원한다.

Posted by 사무엘

2012/08/22 08:46 2012/08/22 08:46
, , , ,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/723

프로그래밍 언어가 제공하는 기본 라이브러리에는 단순히 자주 쓰이는 자료 구조나 알고리즘 외에도, 운영체제에다 요청을 해야 지원받을 수 있는 기능이 일부 있다. 메모리를 할당하거나 파일을 읽고 쓰는 작업이 대표적인 예이다. C/C++ 라이브러리라 해도 그런 기능은 궁극적으로 Windows API 같은 저수준 API를 호출함으로써 제공하는 셈이다.

그러니 프로그래머로서는 굳이 이식성을 염두에 두고 작성하는 코드가 아니라면, 언어가 제공하는 API보다 운영체제가 제공하는 API를 직통으로 쓰는 게 성능면에서 낫지 않나 하는 생각을 하게 된다.
이게 완전히 잘못된 생각은 아니다. 그러나 그렇지 않은 경우도 있으므로 주의해야 한다.

예를 들어, 윈도우 API에 있는 ReadFile/WriteFile과, C 라이브러리에 있는 fread와 fwrite를 생각해 보자.
C 라이브러리의 소스를 보신 분은 있겠지만, 일례로 fwrite는 내부적으로 _write 함수를 호출하는 형태이고, 두 함수만 해도 소스 코드가 수백 줄에 달한다. 뭔가 추상화 계층을 거치는 게 있고 복잡하다. 그러면서 _write 함수의 한쪽 구석에 결국은 WriteFile 함수를 호출하는 부분이 있다. fwrie가 WriteFile 직통보다 빠를래야 빠를 수가 없어 보인다.

그런데 윈도우 환경에서 프로그래밍을 오래 해 본 분은 경험적으로 아시겠지만, 몇 바이트짜리 소량의 I/O를 수백, 수천 번씩 반복해서 시켜 보면 fread/fwrite가 ReadFile/WriteFile보다 훨씬 더 빠르게 수행된다.
그렇다. C 함수는 내부적으로 버퍼링? 캐싱?을 해서 소량의 I/O는 뭉쳤다가 몰아서 한꺼번에 하는 반면, 운영체제 API는 곧이곧대로 매번 오버헤드를 감수하면서 I/O를 직통으로 하기 때문이다.

물론, 요즘은 운영체제가 자체적으로 디스크 캐싱을 다 하는 게 대세이지만, C 함수는 더 상위 계층에서도 캐싱을 하는 걸로 보인다. 이게 성능 차이가 굉장히 많이 난다.
<날개셋> 한글 입력기에서 1년 전쯤에 공개된 지난 6.2 버전의 README를 보면, 편집기의 파일 저장 및 변환기의 변환 속도가 훨씬 더 빨라졌다고 적혀 있다. 이것의 비결이 바로 저 특성을 이용해서 파일 I/O 속도를 향상시킨 것이었다.

메모리 할당도 마찬가지이다.
운영체제는 프로세스마다 heap이라는 가상 메모리를 둬서 프로그램이 다수의 작은 메모리 덩어리를 동적으로 요청할 때 빨리 빨리 반응할 수 있게 하고 있다. 연결 리스트나 트리 같은 자료구조는 메모리 할당이 잽싸게 안 되면 성능이 크게 떨어질 테니 말이다.
(이때 heap은 자료 구조 heap하고는 전혀 관계 없는 개념이므로 혼동하지 말 것.) 그래서 윈도우 운영체제에서 C 라이브러리의 malloc 계열 함수는 HeapAlloc이라는 API 함수를 호출하는 상위 계층이다.

내 경험상으로는 요즘의 NT 커널 윈도우는 HeapAlloc와 malloc, 그리고 HeapFree와 free가 성능 차이가 거의 느껴지지 않는다. 그러나 과거의 윈도우 9x 시절에는 그렇지 않았다.
“윈도우 9x에서는 이 함수는 진짜로 작은 메모리 블록에만 최적화되어 있기 때문에, 이걸로 수 MB에 달하는 메모리를 한꺼번에 여러 번 할당하면 성능이 크게 떨어지고 프로그램이 느려짐. 그 경우엔 다른 메모리 할당 함수를 쓰기 바람.”이라는 경고문이 MSDN에 명시되어 있었다.

내부적으로 그 함수가 어떻게 구현되어 있는지는 잘 모르겠지만, 내가 테스트 해 보니 진짜 그랬다. 9x에서는 프로그램이 뻗은 게 아닌가 싶을 정도로 도저히 견딜 수 없이 느려졌다.
이때에도 윈도우 API가 아닌 C 라이브러리의 malloc 함수는 랙 없이 잘 동작했다. 대용량 메모리 할당 요청이 왔을 때 가상 메모리 주소를 다시 잡는 등 대비가 되어 있어서 그런 것 같다.

원론적으로야 추상화 계층이 있는 언어 API보다는 운영체제 API 직통이 더 빠를 수밖에 없는 게 맞다. 사실, Windows API로도 모자라서 NTDLL처럼 아예 문서화되어 있지도 않은 곳에 있는 native API를 사용하는 프로그램이 있기도 하고 말이다.

그러나 프로그램의 이식성까지 희생하면서 굳이 직통 API를 쓰고자 한다면, 위에서 예를 들었듯이, 그 API의 특성을 잘 알고 쓰는 게 무엇보다도 중요하다고 하겠다. C++ 라이브러리야 객체지향 구현을 위해서 bloat되는 게 불가피하다고 쳐도, 그보다는 더 단순한 C 라이브러리의 추상화 계층은 그저 불필요한 잉여밖에 없는 건 아닐 것이기 때문이다.

Posted by 사무엘

2012/08/20 08:25 2012/08/20 08:25
, ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/722

내가 예전에 교통수단의 동력 메커니즘에 대해서 글을 쓴 적이 있듯, 자동차는 내연기관으로 피스톤을 움직이고 그 힘으로 바퀴를 굴린다. 차체는 지면과의 구름 마찰력을 이용해서 나아간다. 엔진이 차체의 하중(과 그로 인한 정지 마찰력)을 직접 상대하는 부담을 덜려면 변속기가 반드시 필요하다. 그리고 세부적으로는 가솔린 엔진과 디젤 엔진이 모두 쓰인다.

비행기는 제트엔진으로 움직인다. 연료를 공기와 혼합시킨 후 압축· 폭발시키고 내뿜어서 그 반동으로 나아간다. (작용· 반작용의 법칙) 가스 폭발 사고 하나만 나도 주변이 엄청난 파괴력에 얼마나 박살이 나는지를 생각해 보면, 그 힘을 제어하여 자동차와 비행기를 굴리는 걸 상상하기란 어렵지 않을 것이다. 단, 로켓은 아래로 내뿜어서 그 추력 자체로 위로 뜨는 반면, 여타 항공기는 뒤로 내뿜어서 전진만 하고 하늘로 뜨는 건 날개의 양력을 이용한다는 차이가 있을 뿐이다.

항공기의 엔진은 당연한 말이지만 자동차 엔진보다 연료 소모가 많고 후폭풍과 소음도 막대하다. 하지만 결국 엔진이 밀어내는 건 공기일 뿐이기 때문에, 항공기의 엔진은 출력만 높으면 되지 자동차와는 달리 특별히 높은 토크나 동력비 변환 같은 걸 생각할 필요는 없다.

물론 이륙할 때가 비행기에 특별히 힘이 많이 필요하며 순항 중일 때보다 연료가 훨씬 더 많이 소모되는 건 사실이다. 그러나 비행기가 이륙을 위해 활주로를 달릴 때 파일럿이 무슨 1단, 2단 변속을 한다거나 비행기 엔진음이 단계별로 오르내린다거나 하지는 않는다. ^^

항공기의 엔진에 경유-중유 같은 디젤 연료가 쓰이지 않는 이유가 여기에 있다. 항공유는 휘발유와 등유 사이의 등급에 속하며, 액체 연료 로켓에 들어가는 연료도 마찬가지이다. 또한 단순히 뭔가를 돌리기만 하면 되는 게 아니라 연료를 폭발시킨 배기가스 자체를 내뿜어야 하기 때문에, 비행기만은 여타 교통수단과는 달리 '전기 동력화'를 전혀 할 수 없다. (배는 전력 공급 문제 때문에 기름으로 달리지만, 그래도 아예 원자로를 내장하고 전기로 움직이는 원자력 잠수함이 있기도 하다~!)

그렇다면 배가 나아가는 원리를 자동차와 비교해 보면 어떨까? 좀 특수한 상황인 것 같다.
무거운 바닷물 속에서 거대한 스크루를 회전시켜서 추진력을 만들려면 배의 엔진에는 역시 높은 회전수보다는 낮은 회전수에 높은 토크가 필요할 것이고, 이런 상황에는 디젤 엔진이 매우 적합하다. 유원지 가서 보트에서 노를 젓거나 페달 밟아서 오리배라도 몰아 본 분은 아시겠지만, 물에서 배를 움직이는 건 굉장히 힘든 일이다.

그러니 배의 엔진은 자동차 엔진의 확장판이라고 볼 수 있다. 그렇다고 배에 철도처럼 디젤-전기 기관이 쓰이기도 하는지는 난 잘 모르겠다.

다만, 배는 자동차와는 역학적 여건이 다른 점도 분명히 존재한다. 구름 마찰력에 의해 나아가는 게 아니며(스크루는 바퀴가 아니다!), 엔진에 배의 하중이 그대로 걸리는 형태가 아니다. 무게를 직접 받는다면 최하 수백~수만 톤에 달하는 거대한 배는 도저히 나아갈 수 없을 것이기 때문이다.

즉, 배는 구동축이 수중에 있기 때문에 공기보다야 엔진에 기본적으로 걸리는 부담이 훨씬 더 크겠지만, 갓 출발할 때이든 순항 중일 때이든 그 부담이 크게 차이가 나지는 않는다. 그렇기 때문에 기본적인 동력비 변환 외에 자동차 같은 다이나믹한 변속이 필요하지는 않을 것이다. 나중에 배를 탈 일이 있으면 엔진 소리가 어떻게 변하는지를 좀 더 주의 깊게 들어 봐야겠다.

자동차도 제트 엔진을 장착한 초음속 자동차가 사막에서 시운전을 하는데 배에도 굳이 내연기관이 아니라 제트엔진을 장착해서 가게 할 수도 있다. 어차피 망망대해에서는 뒤로 공기를 뿜으며 후폭풍을 일으켜도 위험할 게 없기도 하고 말이다. 물론 이 경우 배는 무척 빨리 움직일 수는 있지만 연비도 크게 감소하는 게 불가피하다. 군함 중에는 경제성과 기동성을 겸비하기 위해 내연기관과 제트 엔진이 모두 달린 배가 있다고 한다.

끝으로, 배가 제동은 어떻게 하겠는지를 생각해 보자. 자동차처럼 브레이크를 밟아서 구동축만 붙잡고 있는다고 서는 게 아니며, 주변은 온통 물뿐인데 땅을 붙잡아서 마찰을 일으켜서 설 수도 없다.
배가 제동을 걸려면 정말 엔진의 동력을 뒤로 향하게 하는 역추진을 하는 수밖에 없다. 사실, 초대형 선박은 그 상상을 초월하는 무게 때문에 속도를 바꾸기가 대형 트레일러나 열차보다도 훨씬 더 힘들 거라고 예상할 수 있다.

다음은 관련 추가 잡설들이다.

1. 대형 선박은 자동차처럼 키 꽂고 START만 돌린다고 해서 바로 시동이 걸리는 게 아니며, 시동 걸어서 초기화하는 데만 30분~1시간이 넘게 걸린다고 한다. 무슨 예열 과정이라도 있는지는 모르겠다.  엔진이 얼마나 거대하면 컴퓨터 운영체제의 부팅도 아니고 기동하는 데 그렇게 오래 걸릴 수 있을까?
참고로 디젤 기관차의 시동을 거는 장면은 류 기윤 님 같은 철덕 기관사가 올린 UCC를 통해 본인은 접할 수 있었다. 일반인이 평소에 듣을 수 없는 웽~ 소리가 난다.

2. 전세계의 항구들은 주변 지형과 시설 구조가 완전 제각각이다. 그에 반해 전세계를 누비는 배들은 덩치가 몹시 크고 가감속이 더디다. 그렇기 때문에 이런 배가 항구의 원하는 위치에 제대로 들어오도록 인도하는 일은 매우 몹시 중요하며, 이 일을 하는 사람을 도선사라고 한다.
교통덕이라면 이미 알고 있겠지만 도선사는 교통· 운수업에서는 비행기 조종사에 필적할 정도로 어렵고 중요한 일을 하는 전문직이기 때문에 종사자의 수도 적고 고령이며, 그 업종에서는 가히 최강의 연봉을 받는다. 게다가 도선사는 영어로는 조종사와 동일한 파일럿(pilot)이라고 불린다.

3. 군사 목적으로 수륙 양용차라는 게 있다. 그리고 철도계에서는 도로와 레일 위를 동시에 달릴 수 있는 특수 자동차도 있다. 흠, 이들을 통합하면 물과 육지는 전천후로 달릴 수 있는 교통수단이 나올 수 있을 듯.
다만, 비행기와의 통합은 현실적으로 힘들 것이다. 엔진 구조와 사용 연료가 근본적으로 다르고 날개를 접었다 꺼내는 설비도 필요할 테고... 굳이 무리해서 만든다고 해도 고정익보다는 헬리콥터 같은 회전익 겸용차가 더 승산이 있을지도 모르겠다.

4. 자전거를 타고 평지에서 정지 상태에서 처음으로 전진할 때는, 페달을 밟는 것보다 땅을 발로 뒤로 차는 게 힘이 덜 들 때가 있다. 그렇게 한 다음에는 페달 밟는 부담이 훨씬 줄어들기 때문이다.
배가 물을 박차고 나아가는 것에도 이와 비슷한 차원의 역학이 적용되는 게 있는지 궁금하다.

Posted by 사무엘

2012/08/18 08:18 2012/08/18 08:18
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/721

복종

복종
남들이 자유를 사랑한다지마는
나는 복종을 좋아하여요.
자유를 모르는 것은 아니지만
당신에게는 복종만 하고 싶어요.
복종하고 싶은데 복종하는 것은
아름다운 자유보다도 달콤합니다.
그것이 나의 행복입니다.
그러나 당신이 나더러
다른 사람을 복종하라면
그것만은 복종을 할 수가 없습니다.
다른 사람을 복종하려면
당신에게 복종할 수 없는 까닭입니다.


이 시는 잘 알다시피 그리스도인이 전혀 아닌 사람의 작품이다. 그러나 윤 동주의 <십자가> 만만찮게 상당한 영적 통찰력이 엿보이는 것 같다.
시의 각 행에 내가 검색해 낸 관련 성구를 덧붙여 보면 이렇다.

* 복종

남들이 자유를 사랑한다지마는 / 나는 복종을 좋아하여요. (갈 5:13, 벧전 2:16)

자유를 모르는 것은 아니지만 / 당신에게는 복종만 하고 싶어요. (출 21:5-6, 엡 6:5)

복종하고 싶은데 복종하는 것은 / 아름다운 자유보다도 달콤합니다.
그것이 나의 행복입니다.
(몬 21)

그러나 당신이 나더러 / 다른 사람을 복종하라면
그것만은 복종을 할 수가 없습니다.
(출 20:3-6)

다른 사람을 복종하려면 / 당신에게 복종할 수 없는 까닭입니다. (마 6:24, 눅 16:13)

(성구들 직접 다 찾아 보시기 바란다.)
구원받은 크리스천이라면, 특히 KJV라는 당당한 최종 권위까지 있는 크리스천이라면, 저 '당신'이 기꺼이 예수 그리스도, 그리고 당신이 섬기는 교회가 될 수 있겠는가?

KJV 독립 침례 교회들은 바른 지식이 없이 성도들에게 열심과 헌신만 강요하면서 기형적으로 성장한 기성 교회들의 부작용과 폐단을 경험한 사람들로 구성된 경우가 많다. 그래서 성도들을 너무 닥달하지 않고 그리스도 안에서의 '자유', '자율'을 내세우는 경향이 있다.

그런데, 그랬더니 이번에는 반대로 그 자유를 무질서와 방종, 영적 태만을 합리화하는 데 써먹는 사람들이 있다는 소식이 들린다. 비록 사실이 아니길 최대한 기대해 보지만 이는 사역자와 여타 성도들을 힘 빠지게 하고 우울하게 만들 수밖에 없다.
십일조가 신약 교회의 교리가 아니라는 가르침이 성도가 헌금을 안 해도 된다는 가르침으로 와전된다거나,
목사고 교사고 다 필요 없고 아무도 너희를 가르칠 필요가 없다는 이상한 교리가 나온다거나 말이다.

너 혼자 구원받고 너 혼자 성경이고 교리고 다 알긴 하지만, 그게 남에게 끼칠 간증의 영향력을 상실했다면 당신은 영적 전투에서 이미 마귀에게 진 것이다.
구원이 이제 예수님을 닮아 가는 성화로 이어져야 하고 그게 자연스럽듯, 바른 성경에 대한 지식은 바른 교회를 세우고 유지시키는 헌신으로 이어져야 한다.

본인은 이런 영적 진리를 나누고자 이 주제와 관련하여 문득 떠오른 시를 인용했을 뿐이다. 타 종교에도 '구원의 길'이 있고 다같이 화합하는 게 좋다는 식의 주장을 할 의도는 전혀 없으므로 오해 없으시기 바란다.

끝으로, 시의 저자인 만해 한 용운(1879-1944)에 대해 살펴볼 점이 있다. 그는 시는 저렇게 '해요체' 위주의 아주 여리고 부드러운 여성적인 문체로 썼지만, 평소 언행과 성격은 그와 정반대로 독설과 기행이 가득한 열혈 과격파였던 걸로 잘 알려져 있다.

3· 1 운동 후 투옥된 민족 대표 33인 중 일부가 사형이나 무기징역을 선고받을까봐 통곡하고 두려워하자 그는 격분하여 감방 안의 똥통을 뒤엎어 그들에게 뿌리고는 “이 비겁한 인간들아, 울기는 왜 우느냐! 나라 잃고 죽는 것이 무엇이 슬프냐? 이것이 소위 독립 선언서에 서명을 했다는 민족 대표의 모습이냐? 그 따위 추태를 부리려거든 당장 때려치워라!” 하고 호통을 쳤다.

또한 전국의 주지 스님들을 모아 놓고 강연을 할 때는 교계의 부정부패를 비판하면서 “세상에서 가장 더러운 것은 똥이다. 그리고 똥보다 더 더러운 건 썩어 가는 시체이다. 그런데 시체보다도 더 더러운 것은 바로 염불에는 관심이 없고 잿밥에만 관심이 있는 너희 중놈들의 심보이다!”라고 일갈하고 단상을 내려온 일화는 아주 유명하다.

한 용운이 마 23:27-28과 렘 17:9를 알았는지는 난 모르겠다. 그러나 그 과격은 그가 비인격적이고 몰상식해서가 아니라 진짜 국가와 민족과 나름 자기 종교에 애정이 있기 때문에 표출된 과격일 것이다. 또한 딴 사람도 아니고 민족 대표자 정도나 되는 사람들이 비실비실하니까 저렇게 강한 책망을 했고, 일반 민초들이 아니라 주지 스님들 앞에서 당당히 쓴소리를 했다.

예수님도 마찬가지이다. 종교 지도자들 앞에서야 “뱀들아, 독사의 세대여!”라고 한 치의 두려움 없이 호통을 치셨지, 간음하다 붙잡힌 여인은 오히려 용서하고 다독여 주셨다. 그리고 “주여 믿나이다, 나의 믿음 없음을 도와 주소서”라고 애원하는 사람에게는 기적을 통해 믿음을 북돋워 주셨다.
정반대의 “오 믿음이 없고 비뚤어진 세대여, 내가 언제까지 너희와 함께 있으리요? 언제까지 너희를 용납하리요?” 같은 과격한 책망은(마 17:17) 받은 게 충분한데도 아직 성숙을 못 해서 정말로 책망을 받아야 마땅한 제자들에게나 하셨다!

이렇게 온유와 과격, 단호함을 잘 조절하여 때에 적절한 언행이 나오게끔 나의 행실도 돌아봐야 하겠다는 걸 <복종>이라는 시와 저자를 생각해 보면서 느끼게 되었다.

Posted by 사무엘

2012/08/15 19:17 2012/08/15 19:17
, , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/720

지난 2000년 5월경에 방영된 <현장 르포 제3지대> -- 지하철에 미친 아이들 편

현재까지 공중파 방송에서 철덕들의 행동과 심리에 대해 가장 흥미진진하게 잘 보여준 TV 프로가 아닌가 싶다. 철덕들의 열정과 낭만이 느껴지더라. 난 무척 감명깊게 봤다!
이제는 완전히 자취를 감춘 노랑-초록 도색의 코레일 전동차와, 리모델링 전의 용산 역 승강장의 모습이 덤으로 인상적이다.

역시 겨우 나 정도의 철덕력으로는 저런 사람들에게 명함도 못 내밀 것이다.
저 TV에 나온 이 재원 씨는 MEIS의 운영자이고 지하철역에서 공익 요원으로 병역을 마친 뒤, 현재는 어엿한 서울 도시철도 공사 직원이 되었다. (그리고 다른 국내 유명 철덕이신 '영동선 511' 운영자분도 도철 입사..;;)

“전동차 출발 구동음을 녹음해서 차량별로 어떤 차이가 있는지 알아보고 있어요. 차량 제작사마다 소리가 제각각이거든요.” (38:50 ~ 39:40 구간)

사용자 삽입 이미지

일본 철도 덕후들이 한국 사람보다 한국 철도 차량에 대해 이미 더 잘 알고 더 면밀히 분석해서 일본어로 책을 만들어 놨다. 게다가 그런 책이 일본에서 아주 잘 팔린다고.. “이건 한국인으로서 부끄러운 일이 아닐 수 없습니다.” (41:10 ~ 41:50 구간)

사용자 삽입 이미지

상록수 역 - 한대앞 - 수인선 선로 답사도 난 2005년에 완전히 똑같이 한 적이 있으니 완전 공감이다. 물론 저 TV 프로를 모르던 상태에서.
상록수 역 어원을 찾다가 최 용신 선생의 일대기 공부를 한 것까지도 똑같다. (42:50 ~ 45:30)

사용자 삽입 이미지

Posted by 사무엘

2012/08/11 08:40 2012/08/11 08:40
,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/718

« Previous : 1 : ... 148 : 149 : 150 : 151 : 152 : 153 : 154 : 155 : 156 : ... 214 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/04   »
  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        

Site Stats

Total hits:
2665066
Today:
304
Yesterday:
1937