« Previous : 1 : ... 30 : 31 : 32 : 33 : 34 : 35 : 36 : 37 : 38 : ... 45 : Next »

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

옛날에 나의 기억 속에 남아 있는 매킨토시는 가히 꿈의 컴퓨터였다. 여기서 옛날이라 함은 대략 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

CJK의 정체성

한국

  • 반도에 자리잡은 유일한 분단 국가. 징병제. 분단되지 않고 남북을 합쳐도 인구나 면적이 CJK 중 가장 작은데 하물며 지금은.. 안습
  • 한글! (한자어에 대한 의존도가 높지만 이례적으로 한자는 거의 안 쓰는 아주 특별한 국가)
  • 미국과 비슷한 대통령 직선제
  • 성탄절이 유일하게 공휴일임. 넘사벽급의 교회 인프라
  • 과학 분야의 노벨 상 수상자가 유일하게 전무-_-함

중국

  • 압도적인 영토 면적과 인구. 대륙의 기상-_-
  • (명목상의) 공산당
  • 고립어. 한국어나 일본어와는 달리 S+V+O형 언어
  • 국기의 모양도 한국-일본보다는 이질감이 더 큼
  • 훨씬 더 강경한 마약 단속. 많은 사형 집행

일본

  • 섬 나라. 한국보다 남쪽에 있지만, 북쪽 끝도 북한을 넘어 러시아와 만날 정도로 영토가 은근히 넓다.
  • 유일하게 좌측통행, 협궤, 그리고 110V 전압 (근대화· 산업화를 일찍 한 흔적이다. 얘들도 아주 장기적으로 승압을 찔끔찔끔 하고 있다고는 함)
  • 전범 국가. 정규군 대신 자위대
  • 세계에서 가장 복잡한 축에 드는 문자 체계. 세로쓰기 (하지만 일본에서도 젊은 세대들은 점점 가로쓰기에 더 익숙해지고 있다고 함)
  • 영국과 비슷한 입헌 군주제

결국 한국과 일본이 비슷한 건 사회주의 체계가 아닌 것과 언어 구조요,
한국과 중국이 비슷한 건 차량 통행 방향이나 전압 같은 산업 인프라 및 일본에 대한 피해의식이며,
일본과 중국이 비슷한 건 한자 의존도 정도로 요약된다.

Posted by 사무엘

2012/08/06 08:16 2012/08/06 08:16
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/716

1. 병시나 산소 / 문과 출신인 나도 알고 있음

사용자 삽입 이미지
2007년 말, 디씨를 통째로 빵터지게 만들었던 유럽연합 님의 희대의 말실수 사건. 잠이 좀 덜 깬 채로 댓글을 달았는가 보다. 더 이상의 자세한 설명은 생략한닼ㅋㅋㅋㅋㅋㅋ.
지금은 검색을 해 보면 저 원본 스샷보다도, H2O가 산소라는 걸 풍자하는 대사가 담긴 온갖 만화 패러디 그림들이 더 많이 나돌고 있다.

요즘은 최악의 올림픽 오심 병크 때문에 H2O도 모자라서 1초의 정의마저 바뀌게 생긴 듯. 화학에 이어 물리까지

2. 안드로메다 행 열차

사용자 삽입 이미지
2008년 7월경에 서울 메트로 소속 4호선 모 전동차에서 직원이 LED 전광판을 테스트하느라, 승객이 보고 있는 줄도 모른 채 순간 저런 문구를 집어넣어서 승객들을 뒤집어 놓았다.
안드로메다는 어느 샌가 사람들이 개념을 냅다 보내 버리는 안습한 장소...;;로 전락해 있다.

3. 섯!

사용자 삽입 이미지
정지도 아니고, 멈춤도 아니고, STOP은 더욱 아니고, 북한에서는 교통 표지판에 저렇게 써져 있다고 한다..;;

비문도 아니고 의미 전달에 아무 결격사유가 없는 표현이 남한에서는 황당함과 웃음을 선사하는 이유는 언어학에서는 격식의 충돌 때문으로 분석한다. 북한이 평소에도 자기 특유의 우악스럽고 과격한 언어 활용을 공식 매체에서 즐겨 하기 때문에, 이를 풍자하여 “천하의 개쌍놈들” 합성 짤방이 나돌기도 하는 것이고 말이다.

4. 개미를 죽입시다 개미는 나의 원수

사용자 삽입 이미지
초등학생이 어지간히도 슬프고 화가 났던가 보다. 진정한 적개심(...)을 느낄 수 있는 글인데 읽다 보면 웬지 웃긴다. 이것도 이제는 왕년의 “나일록 방석 갓다노라. 안 그러면 방법한다. 방법하면 손발리 오그라진다” 급의 전설이 되어 가는 중. 그나저나 크리스천은 모름지기 “육신을 죽입시다 육신은 나의 원수”를 외쳐야 할 것 같다.

5. 어둠의 다크에서 죽음의 데스를 느끼며

사용자 삽입 이미지
무슨 영단어 암송시도 아니고...
왕년에 이 외수 씨를 경악하게 만든 전설의 시라고 한다.

가만히 읽어 보면, 성경 출애굽기에서 이집트의 아홉째 재앙인 어둠 재앙 같은 느낌이 들지 않는지? -_-;;
그때 이집트 사람들은 진짜 어둠의 다크에서 죽음의 데스를 느끼며 이 재앙이 길이길이 가슴속의 하트에 기억될 리멤버가 되었지 싶다. 뭐, 서풍은 메뚜기 재앙을 끝낼 때 불었던 바람이긴 하지만.

지금도 “어둠의 다크”, “개미를 죽입시다”, “병시나 산소” 등은 구글이나 네이버에서 자동 완성까지 되는 유명한 문구이며, 각종 웹툰에서 패러디까지 되고 있다.

6. 김 성모 만화를 너무 많이 본 사람이 작성한 약관

사용자 삽입 이미지
사람들이 어디 가입할 때 약관을 도통 안 읽는 것만큼이나
대부분의 크리스천들도 성경에 관심이 없으며 안 읽는다. (어쩌면 자기네 교회 헌법에도)

그래서 수백여 군데의 사이트에 저런 '빅장을 구사하고 뼈와 살이 분리되는' 약관이 한때 복붙으로 나돌았으며,
그런 것처럼 열세 군데가 삭제되고 6만여 군데가 변개된 성경이 오히려 진짜 행세를 하면서 버젓이 나도는가 보다.

Posted by 사무엘

2012/08/03 08:24 2012/08/03 08:24
,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/715

1.

<날개셋> 한글 입력기는 잘 알다시피 글쇠배열 수준을 넘어서 한글 조합 로직을 완전히 외부에 expose하고 사용자가 이를 입력 옵션의 일부로서 마음대로 고칠 수 있는 유일한 한글 입력 프로그램이다.

한글 조합 로직은 전산학에서 오토마타라고 불리는 '정규 문법'(regular grammar)으로 흔히 모델링되며, 보통은 그 알고리즘이 해당 한글 입력 프로그램의 소스 코드 내부에 복잡한 switch문의 형태로 하드코딩되어 있다. 그러나 <날개셋> 한글 입력기는 그렇지 않으며, 아예 C언어 수식의 문법 형태로 오토마타를 사용자가 일일이 지정이 가능하다.

정규 문법은 옛날에 1996년도 한국 정보 올림피아드 경시부(본인이 그 시절에 정올 공부를 한 세대여서.. ^^)에서 출제되었던 잠수함 코드 식별 문제와 같은 차원의 난이도이다. 주어진 규칙대로 상태를 쭉쭉 switch해 나가다가 코드가 yes로 끝나면 잠수함이고, 그렇지 않으면 noise이다. 한글 입력 오토마타도 그런 수준이라는 뜻이다.

첨언하자면, 이것보다 한 단계 더 복잡한 차원의 문법은 그 이름도 유명한 문맥 자유 문법(CFG)이다. 이제는 다단계의 여닫는 식별 부호를 재귀적으로 처리할 정도가 되어야 하고, 제대로 파싱하기 위해서는 스택이 필요하다. 여기서 스택은 한글 입력 순서를 기억하는 그런 스택이 아니라, 각 재귀 단계별 상태를 기억하기 위한 스택이다. 정규 문법이 Windows의 INI 파일 정도의 복잡도라면, 문맥 자유 문법은 XML 정도 된다고 보면 된다.

전산학 전공자라면 데이터 구조 시간에 복잡한 괄호와 연산자가 들어간 수식을 처리하는 프로그램을 만든 적이 있을 텐데, 그게 바로 간단한 문맥 자유 문법을 인식하는 프로그램을 구현해 본 것이다. 그러나 한글은 초-중-종성으로만 구성되지 '초성-여는 중성-종성-닫는 중성'이라든가, '여는 초성-중성-여는 종성-닫는 종성-닫는 초성' 처럼 글자 자체가 재귀적으로 이상하게 전개되는 형태는 아니므로, CFG가 아닌 정규 문법만으로 표현이 충분히 가능하다.

사람이 다루는 자연어든, 컴파일러가 다루는 프로그래밍 언어 소스가 아니어도, 컴퓨터라는 계산 기계가 인식과 생성과 처리 가능한 모든 파일 포맷은 결국 이런 문법으로 formal하게 생성 규칙을 나타낼 수 있으며 그럴 수밖에 없다. 텍스트 파일이든, 그래픽 포맷이든, 심지어 기계어 코드의 포맷이든 말이다. 그래서 오토마타 이론은 전산학에서 매우 중요하게 다루어진다.

2.

다시 본론으로 돌아와 한글 입력기 얘기를 계속하겠다.
한글 입력기도 구현체가 제각각이기 때문에 프로그램마다 동작 방식이 대동소이한 차이가 있었다. 예를 들어 “중성+종성 형태의 미완성 한글의 입력이 가능한가? 그리고 세벌식의 경우 초성+종성 미완성 한글도 입력 가능한가?” 하는 것 말이다. 오토마타는 바로 이런 세밀한 로직을 바꿀 수 있다.

아래아한글은 도스용 3.x까지만 해도 그런 게 가능하지 않다가 윈도우용으로 넘어오면서 어느 샌가 미완성 한글의 표현이 가능해졌으며, 특히 97 때는 전무후무하게 초-종-중 순의 입력도 가능해서 아주 초보적인 형태의 모아치기까지 지원했었다. 그게 워디안 이후부터는 다시 없어졌지만 말이다.

<날개셋> 한글 입력기는 그런 것들을 구분하기 위해서 일반적인 이어치기 오토마타뿐만이 아니라 미완성 한글의 입력을 불허하는 오토마타도 따로 갖추고 있다.
PC 환경이 도스에서 윈도우로 넘어가면서 한글 코드의 주류도 조합형에서 완성형으로 넘어갔다. 완성형은 구조적으로 낱자의 초성과 종성을 구분하는 게 불가능하고 미완성 한글도 표현할 수 없기 때문에, 한글 입력 오토마타도 그에 맞춰서 설계되는 게 불가피했다.

그런데 맥 OS가 제공하는 한글 입력기는 동작 방식이 흥미롭다. 두벌식은 별 차이가 없는데 MS의 한글 입력기와 큰 차이를 보이는 부분은 세벌식이다.
오토마타가 '미완성 한글을 허용 안 하는 이어치기'의 변종이다. 초성과 중성의 단독 입력은 허용하지만, 종성 단독이나 여타 미완성 한글의 입력은 아예 무시하여 허용하지 않는다. 또한 받침 ㄲ, ㅆ은 ㄱ, ㅅ의 연타로 입력을 못 하고 반드시 한 타로만 쳐야 한다.

입력 무시는 <날개셋> 한글 입력기의 오토마타에서 -1이라는 음수 상태로 정의되어 있으므로 이런 입력 로직도 <날개셋> 한글 입력기로 어렵지 않게 구현할 수 있다.

0 → A ? 1 : B ? 3 : C ? -1 : 0
1 → A ? 1 : B ? 2 : C ? -1 : 0
2 → B ? 2 : C ? 4 : 0
3 → B ? 3 : C ? -1 : 0
4 → C ? 4 : A|B ? 0 : -1

초기 상태에서는 종성 C만 -1로 빠지게 하여 무시하면 된다. 그리고 초성이 입력된 상태인 1번 상태에서도 C만 무시하면 된다.
초성과 중성이 모두 입력된 2번 상태에서만 종성의 입력이 허용되며, 이 경우 오토마타는 4번 상태로 가게 된다.
중성만 단독으로 입력된 상태인 3번에서도 중성만 동일 상태로 받아들이면 되고 종성은 여전히 무시한다. (C ? -1: 0)

끝으로 문제가 되는 건 초-중-종성이 모두 입력된 4번 상태이다. 받침 ㄴ+ㅎ=ㄶ 같은 결합은 계속 허용해야 하지만 더 결합할 수 없는 받침은 입력을 무시해야 한다. 그리고 초성과 중성은 다음 글자로 입력을 받아들인다. 이 상태를 어떻게 표현하면 좋을까?

<날개셋> 한글 입력기는 오토마타로부터 양수 상태값을 얻어서 결합 가능 승인은 받았지만 실제로는 낱자 결합 규칙이 존재하지 않아서 추가 결합이 불가능해진 낱자가 발견될 경우, 성분 변수 A~C에다가 모두 0을 집어넣어서 해당 상태에 대한 오토마타 함수값을 다시 구한다. 그렇기 때문에 C에 값이 있을 때는 일단 4번 상태를 계속 유지하게 하되, 초성이나 중성에 값이 있으면(A|B) 다음 글자로 넘어가서 조합을 진행하게 하고(0), 진짜로 세 변수가 모두 0일 때만 -1로 조합을 무시하게 하면 된다.

요컨대 초성과 중성만 단독 입력이 가능하고 정확하게 초-중-종 순서를 따르지 않은 unexpected 종성은 입력을 무시하게 한 오토마타인데, 이것도 좀 오래 써 보니 오타 방지 차원에서는 나쁘지 않은 것 같다.

3.

이제 오토마타 얘기 말고 다른 기술적인 얘기로 넘어가겠다.
맥 사용자라면 이미 충분히 아시겠지만, 매킨토시 컴퓨터는 별도의 한/영이나 한자 키가 없기 때문에 한/영 전환이 cmd+space이고, 한자 변환은 opt(alt)+enter이다.

다만 약간 불편한 점은, 두벌식이든 세벌식이든 겹받침을 입력하는 방법이 없다는 것이다. 두벌식에서 ㄱ+ㅅ을 누르면 둘은 따로 떨어지며, 세벌식은 아예 겹받침 단독 입력이 불가능하기 때문이다.

초성+한자로 특수문자를 입력하는 기능도 맥에는 없다. 일반 PC에서는 그야말로 도스 시절에서부터 존재한 오랜 전통임에도 불구하고, 맥은 그런 것의 영향을 지금까지 전혀 받지 않은 채 지내 왔다니 놀라울 따름이다. 전/반각 모드 같은 것도 맥에서는 찾을 수 없다.

윈도우에서는 두벌식/세벌식이 한 한글 IME 내부에서의 설정치로 존재해 왔지만 맥은 각각의 벌식이 마치 영문 쿼티/드보락처럼 별개의 입력 방식으로 다뤄진다. 어찌 보면 이게 더 직관적인 디자인인 건지도 모르겠다. 그래서 입력 환경 설정 대화상자에는 글자판을 선택하는 옵션은 없으며 backspace 키의 동작 방식 같은 것만 있다.

Windows는 95 이래로 조합 중인 한글을 깜빡이는 네모 커서로 나타내는 관행을 도스 시절 프로그램으로부터 확실하게 도입하여 정착시켰다. 이 당연한 관행이 3.1때까지만 해도 없었기 때문에, 한글을 조합 중일 때 커서는 그냥 해당 한글의 앞에 똑같은 길쭉한 형태로만 보였다. 당시 윈도우 3.x용 MS 워드 6.0이 예외적으로 IME를 자체 처리하여 네모 커서를 자체 구현하던 수준이었다.

그에 반해 맥은 조합 중인 한글을 그냥 일본어나 중국어의 조합을 표시하듯이 밑줄로 처리한다. 즉, 맥에서는 깜빡이는 네모 커서를 볼 일이 없다는 뜻. 사실, 깜빡이는 네모 커서는 도스 시절 이래로 오랫동안 봐 왔기 때문에 심리적으로 편하기는 하지만, 한글 조합을 두 글자 이상의 길이로 표현하는 가능성을 차단했다는 큰 제약도 존재한다.

그래서 MS 운영체제에서는 전통적으로 한글 조합을 단어 단위로 잡는 기능이 존재한 적이 없다. 한자 입력할 때를 빼면 사실 전/반각만큼이나 별로 필요하지도 않은 것도 사실이긴 하지만 말이다. 그 반면 맥에는 그 옵션이 있다.

이런 점들을 감안하면, 한글 입력 하나를 두고도 맥과 윈도우는 문화가 상당히 다름을 알 수 있다. 차이는 이것으로 그치지 않는다. 오류가 없는 100% 정확한 세벌식 최종 글자판이 윈도우에서는 무려 비스타와 오피스 2007 타임라인에 와서야 겨우 제공된 반면, 맥에서는 공 박사님의 영향력 덕분인지 그야말로 OS X도 아니고 20세기 클래식 시절부터 당연히 기본 제공되어 왔음도 감안할 필요가 있다.

Posted by 사무엘

2012/07/20 19:21 2012/07/20 19:21
, , , , ,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/709

오늘날 PC에서 명맥을 유지하며 살아있는 데스크톱용 운영체제는 역시나 윈도우, 맥, 리눅스 3관왕이다. 다만 이들이 대등한 점유율이 절대 아니며, 셋의 점유율은 공비가 무려 10에 육박하는 등비수열을 이룬다.

맥이야 x86 계열 CPU로 갈아타고 기계의 가격도 내리면서, 옛날에 비해서야 정말 많이 대중화가 되었다. 또한 아이폰/아이패드가 모바일에서 워낙 큰 성공을 거둔 덕분에 맥북/아이맥까지 반사 이익을 보고 있기도 하다. 아이폰/아이패드에서 돌아가는 소프트웨어를 만들려면 결국 그 계열의 PC가 필요하니까 말이다.

그래도 윈도우에 비하면야 맥 사용자는 정말 10% 이내의 소수이다. 맥OS를 작정하고 써 볼 의향이 있는 게 아니라면, 맥 계열 기계는 비슷한 사양의 일반 컴퓨터보다 여전히 비싸며 구입 후에 서비스도 구리고 키보드· 마우스의 일부 동작 방식이 이질적이기 때문에 덥석 권할 게 못 된다. 솔직히 나도 지금의 맥북 살 돈으로 일반 노트북을 샀다면 아마 화면이 두 배 정도 더 큰 걸 살 수 있었지 싶다. 그러나 ‘스잡빠’, ‘앱등이’로 대표되는 굳건한 추종자도 있는 마당에, 이쪽 진영은 결코 없어지지는 않을 것이다.

맥은 소수이지만 인지도라도 있지 리눅스는 그조차도 없다. 리눅스를 서버도 아닌 데스크톱 로컬 환경의 주 운영체제로 쓰는 사람은 가히 소수 중의 소수이다. 작정하고 MS 진영을 반대하고 철저한 copyleft 정신으로 무장한 컴덕후 해커이거나, 잡스를 숭배하는 것처럼 리처드 스톨먼을 숭배하는(최소한 그의 인격이 아니면 그의 이념을) 사람 정도만이 리눅스를 쓰지 않을까 싶다.

물론, 맥이 예전보다 접근성이 개선된 것만큼이나 리눅스도 옛날에 비해서는 초보자가 쓰기 정말 편해지긴 했다. 하지만 그래도 초보자가 쓰기엔 리눅스는 인지도 있는 응용 프로그램이 부족하고, 뭘 세팅하고 바꾸려면 유닉스 명령줄을 다뤄야 하는 등 생소한 면모가 적지 않다.

사용자 삽입 이미지
(연구 목적으로 2010년 무렵에 VM을 만들어서 돌려 본 우분투 리눅스 9.x의 화면이다. 한때 리눅스의 그래픽 셸은 GNOME이냐 KDE냐로 갈라져 혼란스러운 편이었으나, 요즘은 결국 둘 다 지원하는 쪽으로 가는 추세라 한다.)

20년이 넘게 도스와 윈도우에만 길들여지고 10년이 넘게 윈도우 프로그래밍만 해 본 본인의 입장에서 맥 OS에 존재하는 주목할 만한 특징을 간추려 보면 다음과 같다.

가장 먼저, 운영체제의 시스템 메뉴와 응용 프로그램의 메뉴가 한데 완전히 통합되어 있다는 점이 매우 인상적이다.
Windows는 운영체제의 시스템 메뉴에 해당하는 시작 메뉴가 task bar에 있다. 이것은 응용 프로그램의 창에 소속된 메뉴하고는 당연히 완전히 별개이다. CreateWindowEx 함수는 창을 생성할 때 메뉴 핸들도 별개로 받는다.

그러나 맥은 화면 상단에 항상 고정되어 있는 시스템 메뉴에 응용 프로그램의 메뉴가 얹힌 형태로 나타난다. 이런 건 윈도우에서는 OLE 개체 embedding 상태에서나 어렴풋이 볼 수 있는 모습이다.

사용자 삽입 이미지
(제목은 워드패드인데 도움말에 나와 있는 건 그림판. 어?)

응용 프로그램 메뉴는 파일이나 도움말 같은 기본적인 것만 남고, 그 사이엔 개체를 제공하는 프로그램의 메뉴가 뜨는 것 말이다. 요즘은 이런 디자인도 과거 유물로 치부되어 별도의 프로그램 창이 따로 뜨는 형태로 바뀌고 있지만. (MS부터가 자기네들이 만든 표준 메뉴 인터페이스를 구닥다리로 치부하고 안 쓰려 하니 말이다)

맥에서는 시스템 전체를 통틀어 pull-down 메뉴는 하나만 있으며, 한 순간에 현재 활성화되어 있는 프로그램의 메뉴 하나만 볼 수 있다. 문서 창에 메뉴가 따로 달려 있지 않다. 그리고 맥에서 돌아가는 GUI 응용 프로그램이라면 반드시 이런 디자인을 따라야만 한다.

윈도우에서는 대화상자 하나만 달랑 띄우고 따로 메뉴를 만들기는 곤란한 프로그램의 경우, 대화상자의 시스템 메뉴를 customize해서 보통 ‘이동 / 닫기’만 있는 그 메뉴에다가 About이라든가 Always on top 같은 추가 명령을 넣는 경우가 있다. 그러나 맥은 어떤 프로그램에게라도 무조건 기본 메뉴가 주어지니 그런 식의 테크닉이 존재하지 않는다.

맥은 그런 기본적인 인터페이스가 모든 응용 프로그램에서 무조건 동일하기 때문에 윈도우처럼 무슨 오피스 200x 스타일 메뉴나 도구모음줄을 만들어 주는 GUI 툴킷이라는 게 존재하지 않는다. 윈도우에서야 보급 메뉴 대신에 그 자리에다 싸제 메뉴 창을 얹어서 보급 메뉴처럼 동작하게만 만들면 custom UI를 손쉽게 만들 수 있지만, 맥은 그렇게 할 수 없으니 말이다.

비주얼 C++의 MFC 프로젝트 마법사를 보면, GUI 응용 프로그램을 전통적으로 MDI, SDI, 대화상자라는 세 형태로 분류한다. 그런데 맥에서는 어떤 형태의 프로그램도 일단은 가장 범용적인 MDI에서 시작한다고 볼 수 있다. 실제로 문서 창은 하나밖에 생성하지 않는 프로그램이라 할지라도 말이다. ‘<날개셋> 타자연습’을 맥용으로 만든다면, 프로퍼티 페이지의 밖에 존재하는 ‘사용자 로그인’이나 ‘종합 환경설정’ 같은 명령은 응당 메뉴에서 내리는 명령으로 바뀌어야 할 것이다.

또한 맥은 동일 프로그램의 중복 실행에 대한 개념이 Windows와는 다르다. 같은 프로그램은 한 번만 실행되고 그 동일한 프로그램이 여러 문서를 담당한다는 MDI 사고방식이 맥은 더욱 엄격하다. 그래서 맥 OS의 task bar에 해당하는 dock은 프로그램이 실행됐냐 안 됐냐의 여부만 표시되어 있지만, 이 아이디어를 차용한 윈도우 7의 task bar는 프로그램의 중복 실행 개수도 살짝 표시하고 있는 것이다.

이런 디자인 때문에, 맥에서 프로젝트 단위로 문서를 다루는 프로그램은 내부 구조가 많이 복잡해진다. 개발툴이 그런 예 중 하나이다. 비주얼 C++이야 여러 개를 실행해서 제각기 프로젝트를 열면 되지만, xcode는 프로젝트별로 각각의 문서창을 차지하고 있으면서 그 내부에서 또 파일을 편집하는 창을 관리해야 한다.

맥 응용 프로그램은 마지막 문서 창이 닫혀서 문서가 하나도 없는 상태에서 키보드 포커스가 다른 프로그램으로 넘어갈 때 자동으로 종료되는 편이다. 이런 동작 방식은 Windows에서는 볼 수 없던 모습이다.
물론 모든 프로그램이 그러는 건 아니다. 대표적으로 Finder도 파일 표시(윈도우로 치면 탐색기 창 같은) 창이 하나도 없이 포커스가 바뀌더라도 종료되지 않고 언제나 실행되어 있는다. 내장 웹브라우저인 사파리도 마찬가지이다.

키보드로는 Alt+F4에 해당하는 Cmd+Q를 누르면 언제나 프로그램이 종료된다. 단, 윈도우의 Alt+F4는 그냥 창을 닫는다는 보편적인 용도도 포함하는 단축키인 반면, Cmd+Q는 언제 어디서나 해당 응용 프로그램을 완전히 종료시킨다는 의미 차이가 있다.

윈도우 프로그래머라면, 맥에서는 저런 것뿐만이 아니라 응용 프로그램의 파일 구성까지 상상도 못 할 정도로 다르다는 사실에 더욱 놀라게 될 것이다. 단순 실행 파일 말고 GUI 응용 프로그램은 아이콘, 리소스, 구성 파일이 한데 담긴 패키지 형태로 배포된다. 파일 시스템상으로는 디렉터리 구조이지만 운영체제 내부에서는 가상적인 단일 패키지 파일로 취급된다.

맥에서는 그럼 레지스트리가 없으면 응용 프로그램의 설정 저장을 위해 어떤 기법을 쓰는지? 프로그램 추가/제거는 어떻게 하는지? 동일 개발자가 만든 여러 프로그램이 동일 코드를 공유하려면 DLL 같은 건 어느 디렉터리에다 집어넣으면 되는지? 맥은 윈도우 같은 32/64비트 코드 혼용 문제는 없는지?

알고 싶은 게 한두 가지가 아닌데 그런 걸 윈도우 프로그래머의 입장에서 잘 설명해 놓은 인터넷 사이트나 책은 아직까지는 난 못 봤다. 아무래도 둘은 서로 달라도 너무 달라서 두 플랫폼의 사고방식에 모두 완전히 통달한 개발자는 거의 없으리라 예상된다.;;

이렇듯, 그토록 쉽게 다가설 수 없는 이질감에도 불구하고, 맥 OS는 좀 써 보면 윈도우에서는 느낄 수 없는 참을 수 없는 고급스러움, 미적 감각이 느껴지는 건 부인할 수 없다. 맥 같은 녀석이 존재함으로써 IT 세계가 좀 더 다양해지고 MS의 독점을 약간이나마 견제하는 효과가 난 건 인류 전체의 관점에서는 그래도 이익이긴 한 것 같다.

Posted by 사무엘

2012/07/10 08:11 2012/07/10 08:11
, , ,
Response
No Trackback , 10 Comments
RSS :
http://moogi.new21.org/tc/rss/response/705

<날개셋> 한글 입력기의 개발자가 심층 분석한 MS 한글 IME 리포트.
버그를 나열하기 전에 먼저 독자의 이해를 돕기 위한 기술 설명부터 하겠다.

A. MS IME의 두벌식과 세벌식의 구현 차이 -- 오토마타

일단 좋은 말부터 꺼내자면, MS 한글 IME는 현존하는 한글 입력기들 중, 어떤 의미에서는 기본에 충실하게 가장 FM대로 만들어져 있다. 두벌식과 세벌식의 로직이 서로 확고하게 분리되어 있으며 구조가 완전히 다르다. 그리고 MS 버전의 두벌식 한글 입력기는 전산학적으로 볼 때 진정한 두벌식의 고증에 가장 충실하게 만들어져 있다.

무슨 말이냐 하면, 자음이라면 초성을 조합할 때와 종성을 조합할 때의 조합 규칙에 차이가 없다. 그래서 초성이 입력되는 상태에서도 ㄶ, ㄳ 같은 겹받침을 바로 입력할 수 있는 반면, ㄲ, ㅆ 같은 쌍자음은 연타가 아니라 반드시 Shift로만 입력할 수 있다. 이 동작 방식은 내가 알기로 윈도우 95 시절 이래로 시종일관 변함 없다.

<날개셋> 한글 입력기나 아래아한글의 두벌식 입력기는 그렇지 않다. 도깨비불 현상만 추가되었을 뿐 세벌식의 사고방식으로 두벌식을 덤으로 구현한 형태에 가깝다. <날개셋>의 경우, 이 점을 감안하여 지난 6.0 버전에서 초-종성 공유 낱자 결합 규칙이라는 개념이 추가되었으며, 이를 사용하면 두벌식 입력 방식을 좀 더 두벌식스러운 사고방식으로 설정할 수 있다.

뭐, 아래아한글도 1980년대 말에 1.0이 처음 개발되었을 때는 개발자들이 세벌식이 정확하게 뭔지 몰라서 자음만 한 벌 더 있을 뿐 여전히 도깨비불 현상이 존재하는 형태로 만들었다가, 고 공 병우 박사에게서 지적 받고 고쳤다는 일화가 전해지긴 한다만.

B. MS IME의 두벌식과 세벌식의 구현 차이 -- 글쇠 인식

표준 두벌식 글자판은 A부터 Z까지 딱 알파벳 글쇠 26개에만 한글이 배당되어 있고 나머지 글자들은 영문과 완전히 똑같다. 그렇기 때문에 MS 한글 IME는 두벌식일 때는 알파벳 글쇠만 가로채어 사용하며, 숫자, 기호, 공백 글쇠는 처리하지 않고 응용 프로그램으로 그대로 넘겨 준다.

세벌식은 그렇지 않다. 몇 가지 영문과 일치하는 기호가 있긴 하지만 일반적으로 공 병우 세벌식은 4단까지 독자적으로 사용하고 숫자와 기호 영역까지 침범한다. 그래서 MS IME는 세벌식에 대해서는 아예 공백까지 포함한 48개 글쇠 자리를 모두 가로채어 동작한다. <날개셋> 한글 입력기는 가로챌 글쇠 영역 자체를 필요에 따라 정밀하게 제어하는 옵션을 아주 최근의 6.5 버전에서야 추가했다.

이렇게 두 글자판의 구현이 제각각 따로라는 점 자체는 나쁘지 않다. 그러나 이는 MS IME에 두벌식을 쓸 때는 괜찮은데 세벌식을 쓸 때만 자잘한 버그가 존재하는 빌미를 제공하고 있다. 역사적으로 볼 때, 이런 버그는 더럽게 안 고쳐진다는 특징도 있었다. 두벌식과 세벌식의 넘사벽 급의 인지도 차이 때문이다.

10년도 더 전에 포트리스라는 대포 쏘기 게임이 인기였을 때, 세벌식으로는 한글 모드에서 Space로 대포 쏘기가 안 되어 채팅과 게임을 같이 하기가 불편하다는 이슈가 있었다. 두벌식에서는 Space가 응용 프로그램이 직접 접수한 공백이지만, 세벌식에서는 Space가 직접 오는 게 아니라, 한글 IME가 가공을 하고 보내 준 공백이라는 완성된 문자열이 오기 때문이다.

C. 윈도우 7에서의 변화

자, 앞에서 다룬 건 MS 한글 IME의 두벌/세벌 메커니즘의 차이이고, 지금 하는 얘기는 운영체제의 버전에 따른 디테일의 변화 쪽이다.

16비트 윈도우 시절에는 운영체제에 유니코드도, 국제화(I18N)도, 지역화(L10N)도 없었다. 동일 제품을 한중일 나라의 문자를 입출력할 수 있게 개량하는 것은 MS의 각 지사에서 완전히 독자 기술을 사용해서 알아서 재량껏 해야 했다.

그러다가 윈도우 95/NT4가 되면서 글꼴 쪽도 획기적으로 발전하고(내장 비트맵, 트루타입 컬렉션 등), 입력기 쪽도 한중일 통합 IME 프로토콜이 처음으로 제정되었다. 그리고 입력기 프로그램은 EXE가 아니라 여타 운영체제에서 유례를 찾기 힘든 독특한 형태인 DLL이 되었다. 그래서 윈도우만 입력기의 한영 상태가 각 프로그램별로(정확히는 스레드별로) 완전히 따로 놀지, 공유가 되지 않는다.

윈도우 2000부터는 추가 글꼴과 코드 페이지 데이터만 설치해 주면 세계 어느 나라 윈도우에서도 아무 나라 언어의 입력기를 설치할 수 있게 되었고, 윈도우 XP부터는 고급 텍스트 서비스라고 불리는 일명 TSF 기술이 도입되었다. 윈도우 비스타부터는 이제 전세계 언어의 입력기와 글꼴이 추가 설치를 할 필요도 없이 기본으로 제공되며, TSF 프로토콜이 주류가 되고 기존 IME 프로토콜은 호환성 계층을 통해서나 제공된다.

이로써 비스타에서 문자 입력 방식의 그랜드 슬램이 달성되고 해피엔딩이 된 것 같은데, 윈도우 7에 와서는 기능이 추가된 건 없으면서 뭘 또 잘못 건드렸는지 문자 입력 쪽의 안정성이 전반적으로 하락했다. MS 한글 IME만의 버그인 것도 있고 운영체제 자체의 버그인 것도 있다. 이 글에서는 지금까지 언급한 A~C를 염두에 두고, 2012년 현재 MS 한글 IME에 존재하는 것으로 알려진 버그들을 정리해 보았다.

1. 세벌식 최종 + 전각문자

맥 OS는 공 병우 박사(이분이 요즘 같았으면 전형적인 앱등이이셨다ㅋㅋㅋ)의 텃새 덕분에 전통적으로 세벌식 최종이 강세였으며, 세벌식이라 하면 곧 최종 자판을 가리켰다. 그러나 PC 쪽은 도스 시절 이래로 390이 강세였기 때문에 세벌식이라 하면 곧 390을 가리켰다. 최종은 아래아한글조차 97에 와서야 제공하기 시작했을 정도로 인지도가 미미했다.

윈도우 95 때 처음으로 세벌식 최종 글쇠배열이 있긴 했지만 그런 인지도 부족으로 인해 틀린 배열이 굉장히 많았다. 그게 98에서 좀 바로잡히긴 했지만 여전히 오류가 있었고, 그 오류는 윈도우 XP/오피스 2003에 가기까지 고쳐지지 않았다.

비록 최종 글자판은 참고표와 가운뎃점처럼 1바이트 아스키 영역에 없는 글자가 있는 게 특이점이긴 했지만, 윈도우 98부터는 어차피 한글 IME의 모든 내부 자료구조가 유니코드로 바뀌었기 때문에 큰 문제가 되지 않았다. 구조가 그러하니 내가 파워업을 개발해서 패치도 가능했던 것이고.

윈도우 비스타 + MS 오피스 2007에 와서야 드디어 100% 정확한 세벌식 최종 글자판이 제공되기 시작했다. 2003년 중반에 내가 한국 MS를 방문해서 수정을 강력하게 요청했던 것도 아마 작용하지 않았겠나 생각해 본다. 비록 그 해 가을에 발표된 오피스 2003에서 바로 반영되지는 못했지만 말이다.

그런데, 이 사람들이 일을 깔끔하게 처리하지 못했다. 전각 모드에서는 참고표와 가운뎃점이 제대로 입력되지 않는다. 얘들은 아스키 문자가 아니니 라틴 문자처럼 일괄적으로 0xFEE0를 더해서는 안 되는데 그거 처리를 추가하지 않은 듯하다. 윈도우 7+오피스 2010에서까지 변함없다. 물론 한국에서는 전각 문자를 거의 쓰지 않으니, 이건 심각한 문제는 아니다.

참고로 한중일의 MS 오피스는 XP 버전부터 운영체제의 IME를 자기 것으로 패치하는 게 관행이 됐다. 일본어 IME는 운영체제의 것과 오피스의 것이 차이가 난다는 말도 있는 듯하지만, 한글 IME는 운영체제의 것이나 오피스의 것이나 차이가 거의 없음.

2. MS 워드 2007 이상에서 세벌식을 쓸 때만 나타나는 역상 현상

워드 2007 이상에서, 오피스 2007 이상 또는 윈도우 비스타 이상이 제공하는 한글 IME로 세벌식을 써서 한글과 숫자, 기호, 공백을 입력한다. 그 뒤에 IME를 날개셋이라든가 다른 일본어· 중국어 입력기로 바꾼 뒤 글자를 입력한다. 그러면 예전에 MS 한글 IME의 세벌식으로 입력했던 공백이나 숫자, 기호가 역상(검은 배경, 흰 글씨)으로 바뀐다!

사용자 삽입 이미지
굉장히 기괴한 버그이다. 이것은 워드에서만 나타난다는 점에서 워드의 문제이기도 하지만 세벌식으로 입력한 비한글 문자에 대해서만 나타난다는 점에서 MS IME의 문제이기도 하다. B에서 언급한 기술 차이를 생각해 보라.

이 역상은 문서의 내부 서식이 아니라, 문자의 중간 조합 상태를 표현하기 위해 문자 입력기가 임시로 부여하는 시각 효과이다. 일본어 입력 중에 나타나는 점선 밑줄 같은 것 말이다. 해당 문서를 저장한 뒤에 다시 불러오면 다행히 사라지긴 하지만, 그 상태에서 조치를 취하지 않으면 인쇄도 그대로 역상 모양으로 된다. -_-

더욱 기괴한 건, 오피스 2003 같은 예전 버전의 MS IME로는 세벌식을 쓰더라도 이런 현상이 발생하지 않는다는 점이다. MS 제품 자체의 버그가 확실하다. 윈도우 7/오피스 2010에서까지 고쳐지지 않았다.

3. 윈도우 7, 한글 입력 중에 바탕 화면을 클릭했을 때

윈도우 7에서 MS 워드 2007이나 2010을 실행하여 아무 한글 IME로나 한글을 입력한 상태로 있는다. 창을 최대화하지는 않은 채로 가령, ‘아’를 조합하고 있는다. 그리고 그 상태로 마우스로 바탕 화면을 클릭했다가, 다시 워드의 제목 표시줄을 클릭하여 돌아온다.

비스타에서는 동일한 절차를 수행하고 나면 ‘아’의 조합이 종료되어 커서가 ‘아’ 뒤에 가 있다. 그러나 7에서는 커서가 여전히 ‘아’를 조합하고 있지만 실질적으로는 조합이 끝난 상태이다. 받침 ㄴ을 입력하더라도 ‘안’이 되지 않고 ㄴ이 새로 조합된다.

윈도우 7은 한글 조합 중에 창의 포커스가 바뀌었을 때의 내부적인 처리가 갑자기 좀 이상하게 혹은 엄격하게 바뀌었다. 비스타나 XP 이전에는 아무 문제가 없던 게 7에서 갑자기 문제를 일으켜서 그에 대한 방어를 해야 했다. <날개셋> 한글 입력기도 과거의 5.51과 5.52 때 이와 관련된 버그 패치가 행해졌다.

4. 윈도우 7의 콘솔에서 세벌식으로 조합을 종료할 때 글자가 덧남

윈도우 XP/비스타에서는 해당사항 없고 7에서만 발생하는 구조적인 문제이다. 서비스 팩 1에서도 고쳐지지 않았다.
명령 프롬프트에서 세벌식 자판으로 한글을 입력하다가 온점이나 스페이스처럼 비한글 문자를 입력하면서 조합을 종료시키면, 조합 중이던 한글이 덧난다. 가령, ‘다.’를 입력하다 보면 ‘다다.’가 된다.

이건 꽤 황당하고 심각한 버그인데 왜 아직까지 안 고쳐졌는지 이해가 안 된다. 게다가 윈도우 7은 출시된 지 이제 무려 3년이 다 돼 가지 않는가.
왜 세벌식일 때만 그렇냐고? 이 역시 B에서 설명되었듯, 비한글 문자를 처리하는 방식이 두벌식과 세벌식이 다르기 때문이다. 문자 입력 프로그램이 아니라 운영체제의 구조적인 버그이기 때문에 윈도우 7에서는 MS IME든 날개셋이든 동일하게 발생한다.

5. IME 2010, 콘솔에서 한자 후보 목록이 곧바로 나타나지 않음

이것은 약간 불편할 수는 있지만 그렇게 심각한 문제는 아니다. 콘솔에서 한글을 조합하는 중에 한자 키를 눌러 보면, 원래 한자 후보가 콘솔 창의 하단에 곧바로 떠야 하는데 뜨지 않는다.
물론 이 상태에서도 번호를 누르면 해당 한자로 바로 변환이 되며, 좌우 화살표 같은 페이지 전환 키를 누르면 그제서야 후보 목록이 나타난다. 뭔가 코딩 실수가 들어간 듯하다.

이 버그는 윈도우 7의 기본 한글 입력기에서도 존재하지 않으며, 한글판 MS 오피스 2010과 함께 설치된 한글 IME 2010에서만 나타나는 문제이다. 즉, 운영체제의 것을 대체하는 오피스의 IME가 오히려 버그를 포함하고 있는 셈이다.
<날개셋> 한글 입력기에는 물론 이런 문제가 없다.

Posted by 사무엘

2012/06/24 08:34 2012/06/24 08:34
, , , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/699

남극 탐험 -- 下

아문센이 선택한 경로는 스콧이 선택한 경로보다 남극점에 96km 정도, 즉 서울-천안 정도의 거리만치 더 가까운 경로였지만, 완전히 새로운 길을 개척해서 가는 것이었다. 스콧의 경로는 선배 탐험가인 어니스트 섀클턴이 갔던 경로와 동일했다. 거기에다 아문센은 스콧보다 출발도 열흘 정도 더 일찍 했다.
아문센은 1등에 대한 압박 때문에 더 일찍 출발하려 시도를 했지만 역시 맹추위와 준비 미숙 때문에 포기하고 되돌아온 적도 있었다. 그렇잖아도 아문센은 북극점을 먼저 정복하려 했는데 선두를 미국인에게 빼앗겨서 조바심이 난 상태였기 때문이다.

참고로 섀클턴은 스콧보다 먼저 남극 탐험을 갔지만, 준비 미숙과 물자로 부족으로 인한 실패를 인정하고 북극점을 약 150km 정도 앞둔 지점에서 미련 없이 진행을 포기하고 되돌아온 사람이다. 그 대신 모든 대원들이 생환하는 데 성공했다.

아문센은 남극점을 빨리 찍고 돌아온다는 그 목표에만 집중하여 대원들도 전부 항해 측량술을 알고 스키를 능숙하게 탈 줄 알며 혹한 환경에서의 생존 능력이 뛰어난 베테랑들로 뽑았다. 그러나 스콧은 겸사겸사 학술 탐사에도 큰 비중을 둬서 대원 중엔 과학자들도 있었다. 군인보다는 민간인을 선호했던 셈. 스콧은 그 힘든 와중에도 죽는 마지막 순간까지 남극에서 채취한 광물을 16kg치나 갖고 보관하고 있었다.

아문센은 북극 원주민들로부터 노하우를 전수받은 대로 남극에 갈 때도 물이 스며들지 않는 두꺼운 가죽옷을 입었고, 짐을 싣는 썰매는 개들을 이용해 운반했다. 현지에서도 수시로 바다표범들을 사냥해서 식량을 비축했고, 탐험 중에도 효용이 떨어진다 싶으면 가차없이 개들을 잡아먹고 심지어 잡은 개고기를 다른 개에게 사료로 주기도 했다.

그러나 스콧은 원주민들이나 입는 가죽옷을 저속하다고 거부하고 개고기도 안 먹었으며, 현지에서의 사냥 역시 할 생각을 않았다. 개나 말이 죽으면 잡아먹기는커녕 묻어서 장례를 치러 줬을 정도이니! 모든 물자는 대영제국에서 조달하는 것만으로 충당하려 했던가 보다. 그러나 영국제 모직물 코트는 옷이 물에 젖고 얼면서 ‘망했어요’ 상태가 되었다.

이들은 개 대신 조랑말과 스노우모빌(설상차)을 활용했는데, 말은 평범한 환경에서야 개보다 먹는 양에 비해 큰 수송력을 제공하는 게 사실이지만 별도의 사료를 챙겨 가야 하며 개들보다 추위에 훨씬 취약했고 잘못해서 크레바스에 빠지기라도 하면 답이 없었다. 스노우모빌은 매서운 추위와 험악한 지형에서 무용지물로 전락했으며, 후원사로부터 지원받은 막대한 양의 통조림도 얼어서 안 따지거나 심지어 터지기 일쑤였다.

영국이 자랑하던 자본력과 당대의 과학 기술은 남극에서만은 그들이 한낱 피지배민 루저로 치부하던 원주민들의 생활 노하우를 앞설 수 없었다.

아문센은 1911년 10월 20일부터 그 해 12월 14일까지 55일 동안 거의 1300km에 달하는 거리를 이동한 끝에 남극점에 도달하는 데 성공했다. 매일 23~24km씩 진행한 셈. 남극점 주변엔 그 어떤 인간의 흔적도 없었으니 그들이 1등을 한 게 확실했다.

아문센은 영국인들이 한 근성을 하기 때문에 스콧 팀도 아마 며칠 안으로 남극점에 곧 도착할 거라고 생각했다. 그러나 스콧 팀이 도착한 것은 그로부터 34일이나 지난 이듬해 1월 17일이었다. 출발 시기가 열흘이 차이가 나고 거리 차이가 100km 정도 났으니 두 주~보름 정도의 간극은 자연스럽지만 한 달이 넘게 차이가 났다는 건 스콧 팀이 시스템적인 비효율로 인해 진행도 더뎠음을 의미한다.

그들은 이미 하루 전인 16일부터 무수한 개들과 썰매 자국을 발견했다. 그리고 남극점에 다다르니 거기엔 역시나 노르웨이 깃발과 함께 천막이 만들어져 있었고, 약간의 물자와 쪽지가 적혀 있었다. 쪽지에 적힌 글은 대략 다음과 같은 요지였다고 한다.

“존경하는 스콧 대장님, 우리가 먼저 남극점에 도착한 듯합니다. 만약 우리가 살아서 귀환하지 못한다면 대장님께서 이 쪽지를 본국으로 전달해서 우리에 대한 증거로 삼아 주시면 좋겠습니다. 그리고 식료품과 털옷을 좀 남겨 놓고 가니, 필요하면 부담 갖지 말고 사용하시기 바랍니다.
대장님의 무사 귀환을 빕니다. 아문센 올림”


아문센은 라이벌을 배려해서 정말 정중하고 대인배스러운 행동을 한 것이었지만, 이 문구는 스콧에게는 가히 자존심을 건드리고 비수를 꽂는 대목이 아닐 수 없었다. 실제로 스콧 팀은 물자가 부족해서 추위와 굶주림에 시달리면서도 아문센이 남긴 보급 물자는 거들떠보지도 않았다. 이것은 현명하지 못한 선택이었다.

아문센 팀은 1월 25일에 자기네 베이스 캠프로 무사히 귀환했다. 갔던 길의 역순으로 그대로 돌아오는 것이었고, 귀환이 42일이 걸렸으니 55일이 걸린 출발보다 기간이 두 주 정도 더 단축됐다.

그러나 개도, 말도, 설상차도 없이 터덜터덜 허탈하게 귀환하던 스콧 팀에게는 이제부터 재앙이 시작되었다. 귀환을 시작한 지 한 달이 경과한 2월 17일인데 이들은 거의 반밖에 진행을 못 했다. 그리고 이때 팀원 중 지질학자인 에드가 에반스가 가장 먼저 혼수 상태에 빠졌다가 목숨을 잃었다. 그는 이미 몇 번 추락 사고를 당해서 뇌진탕과 폐렴 증세로 인해 건강이 몹시 안 좋던 상태였다.

그리고 그로부터 또 한 달이 경과하여 3월 17일이 되었다. 귀환 60일째이고 전체 경로의 70% 정도는 완주한 시점이었다. 대원 중 로렌스 오츠는 발에 심한 동상을 입어서 이미 괴저가 발생하고 거의 걸을 수가 없는 지경이 되어 있었다. 그는 대원들이 자신을 부축하고 자신과 보조를 맞추느라 귀환이 지체되고 있는 걸 알았으며, 제발 자기를 버리고 먼저 가라고 간청했다. 그러나 스콧은 그렇게 하지 않았다.

이에 오츠는 그 날 저녁, “대장님, 밖에 좀 나갔다가 오겠습니다”란 말을 남기고는 불편한 발을 이끌고 눈보라가 휘몰아치는 캠프 밖으로 절뚝거리며 나갔고, 그 길로 자취를 감춰 버렸다. 그는 시신조차도 영영 발견되지 않았다. (눈보라가 얼마나 지독했으면, 눈에 찍힌 발자국조차 이내 사라졌던가 보다.) 스콧은 오츠가 일부러 죽음을 택했다는 걸 눈치 채고, 그가 영국 신사다운 최후를 맞이했다고 슬퍼하는 한편으로 그를 칭송했다.

그러나 이런 오츠의 살신성인도 나머지 세 명을 궁극적으로 살리지는 못했다. 살인적인 악천후 때문에 3월 19일자 캠프에서 스콧 일행은 더 나아가질 못하고 1주일이 넘게 고립되었다. 베이스 캠프까지는 약 200km쯤 남았기 때문에(이미 1000km를 넘게 이동했고, 다 와 감) 저 기간 동안 조금만 더 분발했으면 근처의 보급 기지에도 도착했을 것이고, 베이스 캠프에까지 살아서 돌아갈 가능성은 충분했을 터이나 그들은 그럴 수 없었다.

남극에 무슨 생각으로 물을 끓여야 하는 번거로운 홍차를 가져갔는지 모르겠다. 식료품과 연료는 이미 다 떨어졌고 홍차는 생잎을 뜯어먹어야 했다. 그러다가 3월 29일, 나머지 대원인 에드워드 윌슨과 헨리 바우어즈가 극심한 추위와 굶주림, 어둠, 절망으로 인한 기력 소진 때문에 목숨을 잃었고, 가장 마지막으로 탐험대장인 스콧도 같은 캠프 안에서 사망했다. 그의 일기장에 죽은 두 대원에 대한 언급도 있기 때문에 스콧이 가장 나중에 죽은 것으로 여겨진다.

익사나 추락사처럼 단번에 훅 간 게 아니라 마치 성냥팔이 소녀처럼 굉장히 처절하고 비참하게 죽은 셈이다. 스콧 일행의 시신은 그로부터 무려 8개월 뒤에 남극에 여름이 다시 찾아왔을 때 미국의 탐사대에 의해 발견되었다.

자, 다음 그림은 아문센(빨간색)과 스콧(초록색)의 남극 탐험 경로를 정리한 것이다. (출처: 영문 위키백과)

사용자 삽입 이미지

영국에서는 영국 신사의 기품을 지키면서 남극에서 장렬히 산화한 스콧을 애국자와 영웅으로 열렬히 치켜세우고 떠받드는 한편으로, 어쨌든 1등을 해 버린 아문센을 헐뜯고 잡아먹지 못해 안달이었다. 한때는 아예 대놓고 역사를 왜곡하여 스콧이 먼저 남극점에 도착했다고 가르치기까지 하다가, 국제 사회로부터의 조롱과 비웃음을 한몸에 받고서야 슬쩍 시정했다.

영국이 이런 데서 은근히 찌질한 짓도 좀 했다. 영국인 중에서 양심껏 소신껏 아문센을 지지하고 그의 업적을 인정한 사람은 스콧의 롤모델 탐험가이던 섀클턴 정도가 고작이었다. 어니스트 섀클턴은 이 글에서는 많이 다루지 않지만, 아폴로 13호 같은 ‘성공적인 실패’를 기적적으로 이룩한 덕분에 이 양반 역시 아문센만큼이나 전설이 아니라 레전드급인 위대한 탐험가로 역사에 남아 있다. 관심 있으신 분은 찾아 보기 바란다.

콩진호, 콩라인-_- 같은 예외를 빼면, 세상 역사에서 2등은 정말 너무 가혹하다 싶을 정도로 기억에 남지 못하는 게 통념이다. 허나, 남극에서만큼은 영국의 저런 집요한 로비로 인해 각종 시설물에 꼭 ‘스콧-아문센’ 브랜드가 심심찮게 남아 있다.

남극의 정복자 아문센은 거의 60년 뒤에 달에 갔다 온 닐 암스트롱만큼이나 세계의 영웅으로 등극하였고 곳곳에서 강연 요청이 쇄도했다. 노르웨이 국내에서야 물어 보면 잔소리. 지금 한국으로 치면 김 연아, 안 철수 급의 유명인사가 되었다. 듣보잡 빈곤국이던 노르웨이의 위상을 그만치 끌어올린 사람이 역사상 누가 있었겠는가?

아문센은 교통 덕후여서 이 탐사 후에도 활발히 탐험 활동을 하였으며, 특히 20세기 초는 항공기 기술이 개발되던 시기인지라 남극을 아예 비행선으로 횡단하기도 했다. 그러다 1928년에 비행선 사고로 인해 행방불명되는 걸로 최후를 맞이했다.

훗날 냉전 시절에 미국과 소련이 우주 개발 경쟁을 할 때도 인공위성을 먼저 띄우고 달에 사람을 먼저 보내려고 기싸움이 엄청 벌어지긴 했다. 그러나 우주 개발은 전적으로 자본력과 기술에 의해 승패가 기울었으며, 다행히 우주 공간에서 실종되거나 죽은 사람도 없다. 또한, 소련은 자기네 연구 과정을 워낙 폐쇄적으로 공개를 잘 안 하기도 했고 말이다. 그래서 아문센과 스콧에 필적하는 드라마틱한 이야기도 없는 듯하다.

Posted by 사무엘

2012/06/11 19:39 2012/06/11 19:39
, ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/694

남극 탐험 -- 上

인류 역사상 인간이 지구 밖으로 제일 멀리 나간 여행은 1970년의 아폴로 13호이다. 정말 다행스럽게도 세 명의 승무원이 모두 살아서 돌아오긴 했지만 예상치 못한 폭발 때문에 계획이 틀어진 후 승무원과 관제 센터 직원들은 가히 피 말리는 시간을 보냈으며, 특히 승무원들은 갈증과 추위에 떨면서 엄청난 고생을 해야 했다.

지구에서 가장 높은 산은 8848m(현재는 더 높아져서 8850이라고도 하는데)의 높이를 자랑하는 에베레스트 산이며, 인간이 역사상 최초로 공식적으로 등반 후 생환에 성공한 것은 1953년의 에드먼드 힐과 텐징 노르게이의 공동 등반이다.

지구에 있는 모든 산들은 높아 봤자 대류권의 영역을 벗어나지 않으며, 대류권에서는 고도가 1km 상승할수록 온도는 대략 6.4도 정도 떨어진다. 그래서 이런 높은 산들은 일년 내내 기온이 영하이고 눈이 녹지 않는 만년설 지대이다.
또한 해발 고도가 5천 m 정도 되면 기압도 해수면의 절반 정도로 떨어지고, 에베레스트 산의 정상 무렵에서는 아예 1/3기압이 된다. 물은 100도보다 낮은 온도에서 끓기 때문에 밥을 지어도 쌀이 잘 익지 않으며, 산소도 덩덜아 부족하기 때문에 비숙련자는 조금 걷기만 해도 지표면에서 100미터 전력질주를 한 것처럼 헉헉 숨이 차게 된다고 한다.

에베레스트 산 정도면 지형이 그렇게 험하지 않으며(특히 이웃의 콩라인 K2에 비해서) 인지도도 압도적이고, 덕분에 등산로도 개척될 대로 개척되어 있어서 찾는 사람이 연간 수백여 명에 달한다. 그래서 인근의 네팔은 등산료와 관광 수입을 톡톡히 챙기고 있다고 한다. 지금은 잘 알다시피 심지어 산소통 없이 등반한 사람까지 나왔다. 그러나 세계의 지붕인 이런 산들은 오늘날에도 만만한 곳이 아니어서 날씨가 험악할 때는 입산할 수 없으며, 해마다 최소한 국내의 철길 건널목 사망자 정도만치는 산에 오르다 죽는 사람이 꼭 나온다고 한다.

한편, 지구에서 가장 깊은 바다는 필리핀의 근처에 있는 마리아나 해구 중에서도 더욱 아래에 11034m의 깊이를 자랑하는 비티아즈 해연이다. 1957년에 이곳을 발견한 구소련의 탐사선 비티아즈 호에서 유래된 이름이다. 이 탐사선이 그렇다고 해연의 밑바닥까지 다 내려가 본 건 아니고, 일정 수준 이상의 깊이부터는 그냥 초음파만으로 깊이를 측정한 거라고. 실제로 거기 밑바닥까지 내려간 건 1960년에 미국에서 트리에스테-II 호가 해냈다.

일반 비행기가 공기 때문에 성층권도 못 벗어나고 한없이 높게 뜰 수는 없듯, 일반적인 잠수함들 역시 의외로 깊게 못 들어간다. 겨우 대륙붕 정도의 깊이밖에 못 들어가고 최첨단 핵잠수함도 500~700m 정도의 수심이 한계라고 한다. 군사 목적으로도 더 깊게는 들어갈 필요도 없고, 어차피 그 깊이 안에서 더 오래 머무르는 것만이 목적이니까 말이다. 더 깊게 들어가려면 그 용도로 특별히 제작된 심해 잠수정을 써야 한다.

1만 미터 정도의 수심에서 물체가 받는 압력은 무려 1천 기압. 1㎠당 8톤의 힘이 가해져서 주변에 있는 모든 것을 으스러뜨릴 것만 같은 살인적인 압력이다. 수심이 10미터 깊어질 때마다 대략 1기압이 증가하며(참고로 금성의 표면의 대기압이 90~95기압. 덜덜~) 덩달아 빛도 적어져서 어두워진다. 그래서 어느 수심과 압력 이상부터는 그야말로 암흑천지가 된다. 태양열이 닿지 않으니 수온 역시 영하급이다.

심해 잠수정은 실용성은 포기한 채 최대한 둥글고 작고 단단하게 만들어졌고, 트리에스테 호는 무거운 추를 잡고 가라앉은 뒤, 그 추를 바다에 버리고 다시 떠 올라오는 방법을 썼는데, 그때는 기술상의 한계로 20분 남짓밖에 못 머무르고 다시 올라와야 했다. 그러다가 타이타닉 호의 제작자인 제임스 카메론 감독이 거의 반세기 만에 비티아즈는 아니고 챌린저 해연이라고 만만찮게 깊은 밑바닥을 2012년 지난 3월 말에 탐사한 바 있다.

우주나 심해 탐사는 아무래도 전적으로 기계에 의존하지 않을 수 없다.
그러나 고산 등정은 성격이 약간 다르다. 극소수의 연구원이 최첨단 기계에 탑승해서 탐험하는 형태가 아니라 목적지를 직접 발로 걸으면서 탐험하며, 물자를 보급하는 보조 staff의 숫자도 아주 많다. 마치 영화 한 편이 배우들에 의해서만 만들어지는 게 아니듯이 말이다.

오늘날은 마음만 먹으면 항공기로 금방 에베레스트의 정상에 오를 수 있는데 왜 그렇게 힘들게 산을 오르냐는 질문은, 이건 마치 상대방을 쓰러뜨리려면 권총을 쓰면 되는데 뭣 하러 무술을 연마하냐 하는 식의 우문우답이 될 듯하다.

지구에 저런 높은 산 말고 또 남아 있는 혹독한 미지의 환경으로는 사막과 극지방이 있다. 이 중 사막은 제끼고, 지구의 자전을 느낄 수 없는 두 꼭지점인 북극점과 남극점은 18세기~19세기 초 사이에 탐험계의 성배로 여겨져 왔다. 그 당시 인류 최초로 북극점을 정ㅋ벅ㅋ한 사람은 미국의 로버트 피어리로 알려져 있었다(1909년 4월. 훗날 그건 오류로 판명되긴 했지만). 그리고 남극점을 정복한 사람은 잘 알다시피 그 이름도 유명한 노르웨이의 로알 아문센이다(1911년 12월).

산이나 해저나 우주 같은 다른 곳에 비해서는 비교적 일찍 정복된 영역이지만, 두 극점 중에서 남극점에는 다른 미지의 영역에는 없는 특이한 역사가 존재한다. 그때는 노르웨이의 아문센 팀과 영국의 로버트 스콧 팀이 남극점을 먼저 찍으려고 경쟁 중이었으며, 궁극적으로는 유럽의 듣보잡 빈민국에 불과했던 노르웨이가 물자가 월등히 더 풍부했던 대영제국을 누르고 압도적인 1등을 차지했기 때문이다.

게다가 아문센 팀은 1등을 했을 뿐만 아니라 한 명도 죽거나 다치지 않고 무사히 돌아와서(개들만 약 40마리쯤 죽었음;;) 국제적인 영웅이 된 반면, 스콧 팀은 그렇잖아도 1등 자리를 빼앗기고 우울하게 돌아오는 길에 며칠째 혹독한 눈보라 때문에 조난을 당해서 스콧 포함 5명의 팀원들이 추위와 굶주림 속에 모조리 목숨을 잃고 말았다.

두 팀의 결말이 이렇게 극과 극으로 달라진 것에는 단순히 운(날씨)보다 훨씬 더한 차이가 존재했다. 아주 간단히 요약하자면, 아문센은 원주민들의 노하우를 받아들여 극도로 최적화와 현지화를 잘 해 간데 반해 스콧은 남극 탐험을 너무 낭만적으로 생각했으며 쓸데없는 곳에서 괜히 명분과 품위만 따지다가 참혹한 낭패를 당했다. 다음 글에서는 이 사람들 얘기를 좀 해 보겠다.

Posted by 사무엘

2012/06/09 19:25 2012/06/09 19:25
, ,
Response
No Trackback , 8 Comments
RSS :
http://moogi.new21.org/tc/rss/response/693

컴퓨터의 모니터 화면을 픽셀 단위로 있는 그대로 저장하는 기능의 필요성은 과거 도스 시절부터 쭉 있어 왔다. 프로그램의 기능을 설명할 때, 특정 인증샷을 남길 때 등 여러 모로 유용하고 필요한 기능이기 때문이다.

오늘날에도 키보드에는 print screen이라는 키가 있다. 옛날에는 사용자가 이걸 누르면 하드웨어 차원에서 인터럽트가 발생하여, 텍스트 모드 화면에 찍혀 있던 글자가 프린터 포트(LPT1)로 진짜로 갔다. 프린터가 안 켜진 상태에서 이걸 누르면 컴퓨터가 멎었다. pause를 누르면 컴퓨터의 전체 작동이 일시 중단되고 ctrl+alt+del을 누르면 컴퓨터가 곧바로 재부팅되던 시절의 얘기이다.

하지만 이런 기본 기능은 너무 원시적이고 빈약하며, 그래픽 모드에 대한 대비책이 전무했기 때문에 화면 캡처는 결국 소프트웨어 계층이 담당하는 영역으로 넘어가게 되었다.

도스 시절의 화면 캡처 프로그램은 응당 램 상주(TSR) 프로그램의 형태였다. 아래아한글의 경우, 1.5x에서는 hcopy.exe라는 자그마한 유틸리티가 있었는데, 텍스트 모드 아니면 무려 허큘리스 단색 그래픽 모드만 지원했었지 싶다. 2.0과 그 이후부터는 별도의 유틸리티는 없어졌고 대신 아래아한글 프로그램에 자체적으로 화면 캡처 기능이 들어갔다. 언제라도 Alt+키패드 +키를 누르면 지금 화면을 PCX 그림 파일로 저장할 수 있었다.

한동안 본인이 사용했던 프로그램은 수채화라는 그래픽 프로그램에 내장되어 있던 snap이라는 덜 유명한 국산 프로그램, 그리고 Screen Thief라는 비교적 유명한 외국산 프로그램이다 ST는 아주 특이하게도 텍스트 모드도 색깔과 바이오스 글꼴이 모두 가미된 그래픽 원형 그대로 캡처해 주는 끝내주는 기능이 있었다. 생성되는 그림 파일 확장자도 GIF로, 비록 오늘날의 JPG에 비할 바는 아니지만 PCX보다야 더 무겁고 압축률이 뛰어난 포맷이었다.

도스에서 윈도우로 넘어가면서 화면 캡처는 굉장히 쉬워졌다. 여러 프로그램들을 동시에 띄우고 드나들 수 있는 멀티태스킹 환경일 뿐만 아니라, 언제든지 Print Screen만 누르면 화면 전체 또는 활성화된 창이 비트맵 형태로 클립보드에 저장되기 때문이다. 그래픽 하드웨어가 워낙 겹겹이 잘 추상화되다 보니, 화면 캡처란 이제 기술적으로 대상 윈도우의 DC 내용을 내 DC로 Bitblt하는 것이 전부이다.

너무 간단해졌다. 옛날에는 하드웨어 가속을 받는 동영상이나 일부 게임 화면은 이 방법으로 캡처할 수 없어서 별도의 특수한 프로그램을 써야만 했지만 이것도 비스타부터는 옛말이 됐다.

기본적인 기능은 운영체제가 자동으로 제공해 주니, 캡처 유틸리티들은 편의성을 더욱 강화하고, 일정 수준 이상의 그래픽 편집과 보정 기능도 갖추는 방향으로 발전하기 시작했다. 여러 윈도우의 동시 캡처, 자동 스크롤 캡처, 그리고 현재 화면보다 더 큰 해상도를 가장한 화면 캡처, 멀티모니터 지원, 텍스트 정보 추출 등, 화면 캡처라는 주제 하나만으로도 기발한 아이디어가 적지 않다. 편집 쪽도 Blur 같은 전문적인 사진 보정보다는, 색깔 추출, 디더링 같은 산술적인 변환 기능이 더 필요할 것이다.

본인은 옛날에는 동영상 화면의 캡처를 위해 HyperSnap이라는 프로그램을 잠깐 썼었는데 나름 굉장히 잘 만든 프로그램이었다. 하지만 지금은 그거 없이도 동영상 화면 캡처가 얼마든지 가능해졌기 때문에 안 쓴다. 그냥 옛날 Paint Shop Pro가 같이 제공하는 화면 캡처 기능을 유용히 쓰는 중이다.
오늘날은 국산 프로그램으로는 ‘오픈캡처’가 이 분야에서 아주 유명하다. 완전 무료 프로그램이다가 최근에는 기업 대상으로 유료화되었다.

윈도우 환경이라도 게임들 역시 전통적으로 화면 캡처 기능을 제공해 왔다. 옛날에 256색 게임들은 운영체제의 print screen 키로는 비록 비트맵 데이터는 화면 캡처가 되지만 팔레트 정보가 저장되지 않아 화면이 이상한 색으로 저장되곤 했기 때문이다. 한편, 요즘은 컴퓨터의 성능이 놀랍도록 좋아지고, UCC 만들기가 보편화하면서 아예 게임 화면 동영상을 찍는 기능도 쓰이고 있다. 외산으로는 프랩스(Fraps), 국산으로는 반디캠 같은 프로그램이 좋은 예이다.

화면도 나오고 동영상도 나왔으니, 글을 맺기 전에 소리 캡처에 대해서도 잠깐만 언급하겠다. XP 이하 시절에는 내 컴퓨터에서 나오는 소리를 도로 녹음하는 것이 비교적 쉽게 가능했는데 비스타부터는 그게 방법이 꽤 까다로워지고, 하드웨어 환경에 따라서는 아예 불가능한 컴퓨터까지 생겼다고 본인은 알고 있다. 비스타 때부터 비디오와 오디오의 하드웨어 계층이 바뀌었다.

개인적으로, 키매크로 유틸리티와 저런 부류의 캡처 유틸리티는 운영체제가 기본 제공할 만한 보조 프로그램의 아주 좋은 예라고 생각한다. 컴퓨터의 활용 능력 및 생산성하고 직접적인 관계가 있는 도구이기 때문이다.

Posted by 사무엘

2012/05/31 08:36 2012/05/31 08:36
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/689

« Previous : 1 : ... 30 : 31 : 32 : 33 : 34 : 35 : 36 : 37 : 38 : ... 45 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/11   »
          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:
2987163
Today:
200
Yesterday:
2516