우리는 김 성모 화뷁님의 만화에 있는 아래의 유명한 짤방을 알고 있다.

사용자 삽입 이미지

'부모'를 '부친'으로 잘못 적은 게 아닐까 싶다. ㅋㅋ
그런데 어라? 성경을 보니 예수님의 육신의 어머니인 마리아의 남편도 부친이 복수인 거 같다.

야곱은 마리아의 남편 요셉을 낳았는데 마리아에게서 그리스도라 하는 예수님이 태어나시니라. (마 1:16)
비로소 예수님 자신이 서른 살쯤 되시니라. (사람들이 생각하기에) 이분은 요셉의 아들이신데 요셉은 헬리의 아들이요, (눅 3:23)

물론, 예수님은 요셉과 마리아의 부부 관계에 의해 태어난 분은 절대 아니다.
그래서 마태복음은 다른 인물에 대해서는 '낳고 낳고' 일색이다가 예수님에 대해서만 저렇게 예외적인 진술을 해 놓았다. 요셉이 예수님을 '낳은' 게 아니므로.
누가복음도 마찬가지이다. 예수님이 '사람들이 생각하기에' 요셉의 아들인 것처럼 보였다고 기록해 놓은 독특한 필체를 주목하기 바란다. 재미있지 않은가?

허나 이것은 그리 어려울 것 없는 문제이다. 결론부터 말하자면, 누가복음 3장에 나오는 계보는 마리아네 집안의 계보이다. 헬리는 요셉의 장인이다. (☞ 자세한 설명 클릭)

성경이 사위를 아들이라고 적은 것은 모순이 아니며, 부정확하고 모호한 표현을 뭉뚱그려 쓴 것도 아니다. 그 당시 사위는 법적으로 장인의 아들과 동급으로 취급되었다. 영어 표현이 괜히 son-in-law가 아니다. 삼상 26:17에서는 사울이 사위 다윗을 아들이라고 일컬었으며, 룻기를 읽어 본 분이라면 기억할 것이다. 시어머니 나오미는 며느리 룻을 시종일관 딸이라고 불렀음을!

물론, 그렇다고 해서 막 6:3처럼 요셉과 마리아의 부부 관계에 의해 태어난 진짜 아들딸들까지 전부 아예 사촌으로 해석하면서 마리아가 평생 동정을 지켰다고 주장하는 모 종교의 주장은 내가 보기엔 드립이다.. 사위· 며느리라면 차라리 아까처럼 성경적 근거라도 있지. -_-;;

예수님이 공생애를 시작하신 후, 마리아는 남에게 “예수님이 하라는 대로 그대로 따라라”(요 2:5)라는 말도 하고, 성령 강림을 위해 다른 성도들과 같이 열심히 기도도 하는 등(성경에서 마리아가 마지막으로 등장하는 장면인 행 1:14), 신실한 크리스천의 모습이 더 부각될 뿐, 하나님의 어머니 따위의 이미지는 성경에서 찾을 수 없다.

김 화백 만화에는 오류가 많지만, 성경에는 오류가 없다. 언뜻 보기에 자비심 없어 보이는 문체와 이해가 잘 안 되는 구절이 있을 뿐이다.
그러나 KJV 이외의 변개된 성경들은 유감스럽게도 성경의 정확도와 신뢰성을 김 화백 만화 수준으로 떨어뜨리고 있다.

루시퍼를 '계명성/새벽별'로 변개하여 사탄 마귀에게 예수님의 칭호(계 22:16)를 붙였다거나,
이스터를 유월절로 바꿔서(행 12:4), 베드로의 재판(과 처형) 스케줄을 이미 지나 버린 유월절 타이밍으로 엉뚱하게 뒤섞어 버렸다.

유월절이 지나고 무교절 기간에 베드로가 체포되었는데, 그 베드로를 유월절이 지난 뒤에 끌어낸다고라?
2만 1천원짜리 밥을 사 먹고는 2만원 내던지면서 “잔돈은 애새끼들 과자나 사 주라”고 쿨하게 나가는 논리이지 않은가?

사용자 삽입 이미지


Posted by 사무엘

2012/01/17 08:44 2012/01/17 08:44
, , ,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/628

요즘 코레일 일반열차 시각표의 경부선 하행을 보면,
아침 9시 40분에 출발하는 서울 발 포항 행 새마을호 1041 열차가 있다.
알 만한 분은 이미 다 아시겠지만, 이 열차의 전신은 그 유명한 울산· 포항 분리(경주에서) 복합 편성 새마을호로, KTX 개통 전에는 번호가 그냥 7x대였다. 그러던 것이 두 계열은 완전히 따로 찢어지면서 제각기 다른 운명을 맞이하였다.

계속해서 남쪽으로 내려가기 때문에 동선이 괜찮은 편인 울산 행은, 부전으로 운행 거리가 연장되고 약간 증차도 되었다. 그 반면 포항 행은 하루 2회의 희귀열차 신세를 면치 못하고, 사실 포항 역을 출발하는 대부분의 서울 방면 열차는 동대구 셔틀 수준에 머무르게 되었다. 그래도 서울-포항 직통 새마을호는 예전처럼 경주 역까지 깊숙하게 들어갔다가 후진해서 나오는 삽질이 사라지고, 서경주(구 금장) 역만 거치게 동선이 약간 개선되기도 했다.

한편, KTX 2차 개통 후 서울-부전 직통 열차도 모조리 동대구-부전 셔틀로 전락했다. 그러나 포항-서울 새마을호는 포항이 KTX의 혜택을 전혀 못 받는 덕분에 아직까지 건재하다. 2012년 현재, 경주에서 서울로 한번에 가는 새마을호는 서경주 역을 찍는 이 열차 하루 두 편밖에 없다. 신경주 역에 1시간에 1대꼴로 KTX가 정차해 주고 있으니, 재래식 장거리 열차는 경영 방침상으로도 많이 남겨서는 안 될 일이다.

동해남부선의 복선 전철화 이설 공사가 모두 끝나고 현재의 경주 역이 사라지는 날이 오면(아마 2015년 전후해서), 그 새마을호도 남아나지 못할 것이다. 아니, 그때쯤이면 지금 새마을호 열차들의 내구연한 자체가 끝나 있을 것이다. 아마 마지막 새마을호의 퇴역식 때는 전국에서 철덕들이 바글바글 몰릴 것이다.

이렇게 경부선 경유 동해남부선 방면 새마을호 얘기를 본인이 꺼낸 이유는, 지금 1041의 스케줄이 보기에 참 안습해서이다.
과거에 새마을호는 정차를 좀 하더라도 서울-대전이 보통 1시간 40~45분대였고, 1시간 50분은 가히 마지노선이었다.

그런데 지금 1041은 서울 9:40에, 대전 도착이 무려 11:44이다! 현재 서울-대전이 2시간을 경과하는 유일한 새마을호이다.
소요 시간이 가히 무궁화호급이며, 이는 지난 2004년에 KTX 개통 직후에 일반열차가 몇 달간 최악의 막장 정차 시각표로 운행되었을 때에나 볼 수 있던 소요 시간이다. 사실은, 1041보다 정차를 더 하는 1023 같은 열차도 그만치 오래 걸리지는 않는다.

왜 1041만 유난히도 느린 폭탄 열차가 된 걸까? 이럴 때 철덕의 마음에서는 의문이 꽃핀다. “왜??”
아무리 악한 현 세상이고(갈 1:4) 지금이 영적으로 마지막 시대라 해도, 새마을호가 서울-대전이 2시간이 넘는다는 건 죄악에 가깝지 않은지? -_-;;

본인은 그 이유가 KTX 때문이라고 추정한다.
일단 KTX 개통 후, 서울-영등포가 10분이 넘어서 무려 13분까지 걸리는 열차가 시각표에 등장했다. 이건 두말 할 나위도 없이 영등포 역에서 후속 KTX를 기다리고 먼저 보내 주느라 늦는 열차이다. 예전에는 서울-영등포는 통상 8분이면 충분했고, 요즘은 그것도 못 지키겠는지 10분대로 현실화한 듯하다. KTX가 더욱 자주 운행될수록, 이 지점에서의 병목으로 인해 일반열차의 운행 시간은 더욱 길어질 수밖에 없다. KTX가 지연되면 그게 일반열차에까지 누적된다.

1041은 자기보다 5분 나중에 출발하여 뒤쫓아오는 KTX를 영등포 역에서 먼저 보내 주는 듯하다. 무슨 열차냐고? 서울 9:45, 부산 11:58인 서울-부산 무정차 KTX 제1열차이다.

그런데 KTX를 먼저 보내 주는 열차는 얘만 있는 게 아닌데, 1041은 수원 이남부터도 왜 이렇게 주행 속도가 느릴까?
그 이유는 이제 영등포-수원 경유 KTX의 등장 때문으로 보인다. 즉, 기존선을 달리는 KTX의 주변 열차들은 알아서 대피하고 굽신굽신할 수밖에 없다는 뜻이다. 일반열차의 소요 시간이 더욱 증가한다. 귀하신 KTX님은 끽해야 영등포나 수원에서밖에 정차를 안 하니까.

서울 10:20, 수원 10:48, 대전 11:55인 KTX 353 열차가 있다. 얘는 대전에 도착할 때까지 1041을 중간에 추월을 하는 것도 아니고 1041보다 10분 남짓 뒤에 대전에 도착한다. 하지만 고속선과 기존선 사이의 열차 스레드 동기화 차원에서 부근의 1041도 진행 속도가 늦춰진 걸로 보인다. 다시 말하지만, 새마을호의 서울-대전 1시간대 붕괴 현상은 이렇게밖에는 설명이 되지 않는다.

1041이 얼마나 느린지를 단적으로 보여주는 예가 있다. 1041은 자신보다 딱 5분 먼저 서울 역을 출발하는 무궁화호 1271 열차를 대전까지 가도록 추월을 못 한다! 무궁화호급 새마을호라는 걸 웅변으로 입증하는 셈이다.

겨우 5분 간격으로 서울에서 무궁화호를 쫓아가는 새마을호는, 정차역수의 차이로 인해 예전 같았으면 평택이나 천안, 정말 못해도 조치원쯤에서 무궁화호를 진작에 추월하는 게 당연지사이다. 그러나 오늘날의 1041은 대전까지 지난 옥천에서야 1271을 간신히 추월하게 된다. 이것도 안습 그 자체이다. 아무래도 KTX 때문에 일반열차들이 운행을 보수적으로 하는 게 확실히 느껴진다.

이상, 사무엘 님의 철도 평론이었다. 다음은 열차 관련 TRIVIA들.

1. 작년 가을엔 어느 일본인 관광객 여남은 명이, 10분 뒤에 출발하는 서울 9:55발 KTX 303열차를 타고 천안아산 역에 갔어야 했는데 실수로 서울-부산 무정차 1열차를 탄 적이 있었다(서울 9:45 발). 결국 해당 열차 기관사는 인도주의 차원에서 열차를 그들의 목적지인 천안아산 역에다 잠깐 세워 주고 말았다. 이 때문에 열차는 15분 가까이 지연됐고... 다른 승객들 민폐는 얼마나 됐을까? -_-  게다가 후속 KTX들과 주변의 일반열차들의 연쇄 지연은? -_- 그런 분통 터지는 일이 있었다.

KTX는 이 글에서 귀가 따갑도록 언급돼 있듯, 통과 우선순위가 최상이며 KTX가 지연되면 일반열차들까지 지연이 먹이 사슬처럼 쌓이게 된다. 그런 책임감을 생각해서라도 코레일은 공과 사를 구분하고, 저러지 말았어야 했다.
하긴, 우리나라는 승객의 막장짓에 지하철까지 역주행을 한 적이 있을 정도이니, 행정에 너무 우격다짐이 잘 통하고 목소리 큰 놈이 장땡이고 원칙이 없다. 정치와 외교까지 저러니까 북한도 우리나라를 우습게 여기는 건 아닌가 모르겠다. 폭력 시위대에 공권력이 굴복하고, 테러리스트에게 굴복하고, 북한의 생떼 요구에 굴복하고... 그러는 식.

2. 열차 시각표를 보면 아침 11시와 정오 사이에 KTX가 없는 걸 알 수 있다. 내가 아마 전에도 글을 쓴 적이 있지 싶은데, 이때는 잠시 고속선 선로를 정비하느라 의도적으로 열차 운행이 없는 것이다. 주말 임시 열차도 없이 열차 운행이 진짜 하나도 없는 걸 보면, 선로 정비가 심야뿐만 아니라 낮에도 꼭 필요는 한가 보다.

KTX 2차 개통 직후에 서울-부산 새마을호가 완전 전멸하다시피한 적이 있었는데(지금은 반발로 인해 그때보다는 다시 생겨남), 그때 하루 두 편 남았던 새마을호는 하나는 딱 저 시간대에 다니는 놈이었고, 다른 하나는 밤차였다. KTX가 없는 시간대에만 딱 투입한 셈이다.

3. 그래도 아직 천안 역 무정차 통과 열차가 전멸하지는 않고 아직까지 남아 있는 게 용하긴 하다. 예전에는 밤차 새마을호가 하나 천안 통과였던 것 같은데, 지금은 서울 8:43 발 동대구 행 1021열차가 천안을 무정차 통과하는 유일한 열차이다.
개인적으로는 대구 역도 좀 한두 개는 통과 열차 좀 넣어 주지 하는 아쉬움이 있다. 동대구 역이 있고 거리도 용산-영등포만큼이나 굉장히 가까운데 말이다;;

Posted by 사무엘

2012/01/15 08:38 2012/01/15 08:38
, , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/627

내가 에디터를 새로 만든 이유

오늘날처럼 유니코드에 OpenType, subpixel 렌더링(ClearType 같은) 등의 최신 문자 처리 기술이 컴퓨터에 보편화해 있고 심지어 스마트폰조차 화면 해상도가 1000을 넘어서서 큼직한 윤곽선 글꼴로 글자를 찍는 세상에,

<날개셋> 한글 입력기의 편집기 프로그램은 20년 가까이 전의 유물인 구닥다리 8*16, 16*16 비트맵 글꼴을 여전히 고수하고 있다.
그 많은 시간과 노력을 들여서 에디팅 엔진을 따로 만들고, 그것도 그런 초라한 자체 한글 출력 시스템 기반으로 만들어야 할 특별한 이유가 있는 것일까?

여기에는 여러 정황상의 이유가 있다. 지금은 그 명분이 다소 약해진 것도 있지만, 큰 방향은 변하지 않았다.

첫째, <날개셋> 한글 입력기가 처음 개발되던 1999년 말~2000년 초에는 아직 PC 환경이 굉장히 열악했다.
당시의 주류 운영체제이던 윈도우 95/98은 내부적으로 아직 유니코드 기반이지 않았기 때문에, 운영체제의 기본 GUI로는 영문 윈도우에서 한글이 찍혀 나오지 못했다. 운영체제의 언어하고 다른 언어의 IME를 설치할 수도 없어서 Global IME 같은 별도의 특수한 프로토콜이 따로 있을 정도였다. 지금 생각하면 얼마나 격세지감인가?

그렇기 때문에 그 당시에 나름 한글 관련 기능으로 유명세를 탄 아래아한글, 이야기 같은 프로그램은 32비트 Windows 환경에서도 여전히 '자체 한글' 에디팅 엔진을 사용하곤 했다. 운영체제의 언어를 불문하고 한글 입출력 환경을 제공하기 위해서이다. 이 추세를 <날개셋> 한글 입력기 역시 따른 것이다.
뭐, 아래아한글만 빼면 나머지 자체 한글을 지원하던 이야기, 새롬 데이타맨, Token 2는 어차피 전통적으로 고정폭 글꼴이 강세인 터미널 접속 프로그램이기도 했고 말이다.

둘째, Windows 환경은 저런 국제화나 유니코드 이슈를 떠나서라도, 맥(TextEdit)이나 리눅스(gedit)에 비해 전통적으로 에디터 프로그램이 부실했다. 가령, 운영체제가 기본 제공하는 에디터 중에는(메모장+워드패드) syntax coloring이 제공되는 놈이 없고, 특히 MDI를 지원하는 놈도 없다.

운영체제의 에디트 컨트롤을 그대로 사용하는 메모장은 윈9x 시절엔 아예 64KB 메모리 제한이 있었다.
지금의 메모장은 비록 명목상의 메모리 제한은 없지만 내부적으로 단일 버퍼 구조인 건 변함없기 때문에, 몇백 KB 이상의 큰 파일을 여는 덴 여전히 부적합하다. 로딩 시간이 굉장히 길 뿐만 아니라 앞부분에다 글자를 삽입하거나 지우는 오버헤드가 굉장히 크다. 직접 해 보면 안다.
이런 와중에 에디터 프로그램을 하나 만들어 보는 것도 나쁘지는 않겠다는 생각이 자연스럽게 들게 된 것이다.

셋째, 글꼴 관련 문제 때문이다.
수많은 글꼴들이 범람하는 시대이지만, 영문과는 달리 한글은 화면 본문으로 쓸 만한 글꼴이 오늘날까지도 대단히 드물다.
인제 와서 맑은 고딕을 시작으로 ClearType에 최적화된 글꼴이 좀 개발되어 상황이 아주 약간 나아졌다만,
정말 15년 전이나 지금이나 화면용 글꼴은 굴림, 바탕 일색이다.

이럴 바에야, 좀 아마추어 냄새가 나긴 해도 옛날에 개발되었던 수십 종의 비트맵 글꼴들을 그대로 살려 쓸 수 있는 자체 한글 체계가 일종의 참신함과 매력을 줄 수도 있다.
하지만 이 장점은 도스 시절 비트맵 글꼴을 경험하지 못한 세대가 늘면서 점차 사라질지도 모르겠다. -_-;;

그리고 사실 이보다 더 큰 이유는 완전한 조합형 기반 세벌식 한글 표현 때문이다. <날개셋> 한글 입력기는 무려 2008년이던 과거 5.0 시절에 최초로 유니코드 5.2 옛한글을 앞서 도입했는데, 이 역시 독자적인 한글 입출력 시스템을 사용하기 때문에 가능했던 일이다.

굳이 옛한글이 아니더라도 가령 초성 ㄱ과 종성 ㄱ을 구분하고, ㄱ+종성ㄴ이나 ㅏ+종성ㅇ 같은 중간 형태 역시, 자체 한글 체계로는 아주 쉽게 표현할 수 있는 반면 Windows 제도권(?) 글꼴 시스템으로는 그럴 수 없다.
<날개셋> 한글 입력기의 특장점 중 하나가 초성만 쏙 지우고 모아치기를 하고 무한 낱자 수정을 하는 등, 그런 미완성 중간 한글을 남발하는 기능들이다! 그런데 그런 걸 화면으로 표현을 못 하면 어떡한단 말인가?

이건 프로그램의 본질적인 정체성이 달려 있는 문제이다.
극소수 옛한글 표현이 가능하게 설계된 글꼴로는 제도권으로도 저런 것들 표현이 가능하지만, 글꼴 파일 덩치가 심하게 크고 아름답다.. (한자가 같이 들어있는 경우가 많기도 하고)

글꼴이라는 게 오늘날 체계가 굉장히 복잡해져 있다. 그 이유 중 하나는 글립 인덱스 개수 한계 때문이다. 단일 글꼴만으로 유니코드 전영역의 글자를 담는 게 불가능하다. 글립 인덱스는 파일 포맷만 확장한다고 간단히 해결되는 게 아니라 이와 얽힌 각종 운영체제 API나 내부 구조체와도 연계가 되어야 해서 문제 해결이 더욱 어렵다.

그런 데에 얽매일 바에야 속 시원하게 <날개셋> 한글 입력기 같은 단순한 전· 반각 문자 체계가 유리한 점도 있다. 어차피 유니코드 영역의 대다수를 차지하는 주범은 한자이고, 한자는 전각으로 처리 가능한 아주 단순한 문자이니까 말이다. -_-;;

본인이 독자적인 에디팅 엔진과 글꼴 시스템을 개발한 마지막 이유로는, <날개셋> 한글 입력기는 단순히 입력기만을 지향하는 프로그램이 아니라는 점을 생각할 필요가 있다.

<날개셋> 한글 입력기는 '한글 IME' 계층과, 이 IME와 통신하면서 글자를 입력받고 수정하는 편집기 계층 사이의 통신 프로토콜까지 독자적으로 생각하고 구현한 시스템이다. 통신이 왜 필요하냐 하면 이미 있는 글자도 낱자 단위로 고치고 다시 조합을 재현해야 하기 때문이다. 그러니 이걸 모두 시연하려면 에디터를 직접 만들어야 한다. 이걸 만들면서 Windows 운영체제의 문자 입력과 관련된 표준 프로토콜을 모두 공부하고 구현하는 효과까지 달성했다.

<날개셋> 한글 입력기는 텍스트 필터라 하여 한글 입력 기능을 일괄 처리와 자동화하는 기능까지 제공하고 있다. 텍스트를 변형하는 기능을 제공하는 플랫폼 역시 자체적인 에디터 말고는 선택의 여지가 없다. 뭐, 텍스트 필터만 시연하는 게 목적이라면 기존 에디트 컨트롤만 끌어다 써서 만드는 것도 나쁘지는 않겠지만 말이다.

그래서 본인의 프로그램은 에디터를 제공하지만, 그렇다고 해서 전문적인 여타 프로그래머용 에디터를 표방하면서 개발되는 건 결코 아니다. 애초에 그런 부류와 경쟁하려고 만들어진 프로그램이 전혀 아니다.
오히려 <날개셋> 한글 입력기는 자체 에디터가 있고, Windows용 IME가 있고, 여타 프로그램 내부에서 IME를 훅킹하여 동작하는 입력 패드가 있어서 한글 입력기로서 존재할 수 있는 front end가 세 종류이다. 입력기가 존재할 수 있는 모든 경우를 상위 계층에서 생각하여 구현했다.

본인은 <날개셋> 한글 입력기가,
덩치 작지만 깊은 철학과 굉장한 활용 가능성이 있는 프로그램,
사람에게 휠체어가 아니라 자전거 같은 요긴한 도움을 주는 프로그램, (자동차급은 아니어도)
세벌식 기계식 타자기를 컴퓨터로 그대로 옮겨 놓은 듯한 고성능 고효율 프로그램,
한글을 마음껏 입력하고 싶은 생각이 절로 들고 한글 덕후에게 마음의 고향 같은 인상을 주는 프로그램이 될 것을 지향하며 개발하고 있다.

솔직히 내가 만들었지만 내가 생각해도 이 프로그램은 긍정적인 쪽과 부정적인 쪽 모두 좀 똘끼가 굉장히 충만한 프로그램이다. 어떻게 이런 걸 만들 생각을 했는지.. -_-

따라서 이 글의 결론을 한 줄로 요약하면,
<날개셋> 편집기는 앞으로도 글씨 크기 조절 기능을 제공할 가능성은 전혀에 가깝게 없을 것이다. ㅋㅋㅋㅋㅋ

Posted by 사무엘

2012/01/13 08:46 2012/01/13 08:46
Response
No Trackback , 8 Comments
RSS :
http://moogi.new21.org/tc/rss/response/626

당신은 하나님을 어느 정도로 알고 있으며 당신과 그분과의 관계는 현재 어떠한가?
성경의 인물들과 비교해 보면 판단에 도움이 될 것이다.

1.
성경에서 하나님과의 교제가 가장 친밀했다고 기록된 인물은 단연 다윗임이 틀림없다. 그는 하나님을 진심으로 기뻐하고 사랑하였으며, 성인이 되어서도 하나님 앞에서 심지어 어리광을 부리고 망가지는(?) 것까지도 부끄러워하지 않았다(삼하 6:14, 21-22).

그는 자기가 하나님 앞에서 최대한 비천하고 불쌍하게 보이면 하나님도 결국 자신을 동정해 주실 거라고 생각했다(삼하 16:12).
심지어 하나님으로부터 징계를 받을 때도 사람의 손에 떨어지는 것보다 하나님으로부터 직통으로 징계를 받는 것을 택했다(삼하 24:14).

이 정도로 하나님과 친밀했으니 그가 시편의 대부분을 기록하게 되고, 하나님 역시 그를 ‘내(하나님) 마음에 맞는 사람’(행 13:22)이라고 일컬으신 것은 결코 우연이 아닐 것이다.

2.
백부장은 놀라운 믿음으로 예수님을 깜짝 놀라게 한 대단한 사람이다(마 8:6-13). 그는 병에 걸린 부하를 대신하여 예수님을 찾아온 선한 군인일 뿐만 아니라, 군인 정신에 입각하여 놀라운 신앙관을 갖고 있었다. 자기도 부하를 거느리고 명령 권한이 있는 장교인데, 하물며 예수님이라면 말만 하면 병이 뚝 떨어질 것이니 구태여 자기 집에 감히 찾아올 필요조차 없으실 것이라고 말한 것이다.

이거 생각해 보아라, 엄청나지 않은가? 덕분에 그는 원격 진료 즉각 완치(?)라는 기적을 그 믿음대로 보게 되었다.
하나님은 우리에게 지능을 주시고 자유 의지를 주셨기 때문에, 우리는 하나님을 놀라게 할 수 있다(긍정적인 쪽, 기쁜 쪽으로!). 심지어 천장을 뜯어서 병 걸린 친구를 예수님 앞에 내려다 놓은 친구들처럼 돌발행동을 할 수도 있다.

그리고 머리를 써서 무엇이 더 합리적인지를 하나님과 reasoning을 하고(사 1:18), 그걸 끈기 있게 밀어붙여 보도록 하자. 이건 교만이나 하극상이 아니며, 가나안 여인의 명대답(마 15:27)이라든가 히스기야의 항변(왕하 20:3), 불의한 재판관 비유(눅 18:1-5) 같은 좋은 예가 있다. 기독교 신앙은 맹목적인 군대식 “까라면 까”가 아니다.

3.
욥은 의인이었다. 너무 흠잡을 데 없는 스펙이기 때문에 뭔가 특이한 계기가 없이는 하나님을 진정으로 체험하는 기회를 만날 수가 없었다. 그래서 특별히 잘못한 게 없는데도 너무 어처구니없는 고난을 당했다.

욥은 그때도 딱히 하나님을 원망하거나 탓하지 않았다. 이것만으로도 아주 잘한 행동이다. 그는 끝까지 자기 결백을 주장하면서 자기 인생에 대한 회의감을 나타냈고, 하나님이 계신다면 많이는 안 바랄 테니 이 상황에 대해서 잘잘못이나 한번 같이 공정하게 따져 보고 싶다고 거듭 호소했다. 이것도 논리적으로는 지극히 정당한 대응이다.

그러나 정작 하나님이 나타나셨을 때, 그는 지금까지 자기가 너무 선하게 살아서 잘 알지 못했던 하나님의 진면모를 알고 그 앞에서 항복하고 말았다. 하나님은 그 어떤 일을 벌여 놓으실 수도 있고, 그 어떤 일을 벌여 놓더라도 선하고 공의로우신 분이라는 '발상의 전환'이 이뤄지면서 고민이 해결된 것이다.
세상의 악함을 한탄한 시편 73편 기자나 대언자 하박국도 비슷한 체험을 통해 자신의 문제를 해결했다. 여러분은 어떠한가?

(참고: 2번의 reasoning과 3번의 reasoning은 상황과 문맥이 약간 다르므로 적용할 때 올바른 나누기가 필요하다.)

4.
영적으로 성숙한 사람일수록 자기 기도만 하는 게 아니라 남 기도에 대한 비중이 늘어나고, 더욱이 하나님의 입장에서 기도를 할 수 있게 된다.

바울은 남으로부터 연보를 받아서 고맙고 기쁜 게 아니라, 그 사람이 자신에게 연보를 함으로써 그가 하늘나라에서 하나님으로부터 받을 보상이 추가된 걸 생각하니 기쁘다고 성경에다 쓴 적이 있다(빌 4:17) 그리고 에베소서 1장에 기록된 그의 기도 제목은 “우리에게 물질적인 복 좀 달라”가 아니라, “우리가 얼마나 풍부한 영적 복을 이미 받았는지부터 좀 깨닫게 해 달라”이다.
바둑으로 치면 수읽기의 수준이 평범한 신자들과는 차원이 다르지 않은가?

금송아지 사건 때의 모세의 중보 기도(출 32:11-13)도 단순히 자기 동족의 영달을 구한 게 아니라 하나님의 영광과 하나님의 약속에 근거한 좋은 기도였다. 이런 기도일수록 응답률은 크게 올라가며, 하나님과의 관계가 돈독한 사람은 기도 자체도 이런 식으로만 하게 된다. 그러면서 선순환...;;

그럼, 이제부터는 타산지석으로 삼아야 할 부정적인 경우를 살펴보도록 하자.

5.
최초의 여성 이브는 남편 아담으로부터 전해들은 하나님의 경고를 제대로 귀담아 듣지 않았을 뿐만 아니라, 그 조치에 대해서 하나님에 대한 불신이나 쓴뿌리를 갖고 있었던 것으로 보인다. 그렇지 않고서야 창 2:16-17과 창 3:3을 비교했을 때, '만지지도 말라' 같은 극단적인 말이 불쑥 추가되기까지 하기는 어렵다.
“에이, 기왕이면 다 먹게 해 주지 하나만 저렇게 제약을 거는 이유가 뭐야? 치사하다.” 정도?

6.
달란트 비유에 나오는 악하고 게으른 종은 자기 주인에 대해서, 아주 까칠하고 엄격하고 인색하고, 종들을 불가능· 부당한 요구로 착취만 하는 악덕 고용주로 알고 있었다. 탕자의 비유에 나오는 큰아들도, 눅 15:29로부터 미뤄볼 때 아버지에 대해 평소에 꽤 불만이 있었던 것으로 보인다.
혹시 여러분은 악한 현 세상 안에서 신앙생활을 육신의 깡으로만 버티면서 하다가, 제풀에 지친 나머지 하나님에 대해서 저런 오해에 빠지는 경우는 있지 아니한가?

주인이 맡겨 놓은 1달란트를 있는 그대로 잘 간수해서 돌려줬음에도 불구하고 그 종은 주인에게서 심한 꾸지람을 듣고 벌까지 받는다. 왜 그렇게 되었는지 잘 생각해 보자.

7.
예후는 아합 왕족을 개발살내고 바알 숭배자들을 학살하는 일은 눈에 불을 켜고 열심히 하였으며, 이로써 하나님으로부터 칭찬도 받았다.
그러나 정작 자신은 하나님을 그렇게 신실하게 잘 따랐다고 보기 힘들다. (왕하 9-10)
잘못된 것, 이단 교리를 정죄하고 파괴하는 일에만 앞장설 뿐, 그 대안인 바른 것을 세우고 보급하는 경지에까지는 이르지 못하는 성도가 되지는 말아야 할 것이다.

8.
이스라엘의 초대 왕인 사울은 세상적으로는 정말 괜찮고 흠잡을 데 없는 사람이었다. 키 크고 인상 좋고, 초기엔 성격도 아주 겸손하기까지 했다.
그러나 그는 영적인 일을 처리하는 방식이 카인 같은 '적당히 자기 식'이라는 게 치명적인 문제였다. 불완전한 순종(세상적으로 보기엔 그리 큰 잘못도 아닌데!)과 변명 일색은, 기본부터 글러먹어서 하나님께서 굉장히 싫어하시는 방식이었다.

다윗 같은 급의 큼직한 살인· 간음죄도 없건만 하나님은 이런 사울에게서는 일찌감치 정이 떨어졌고 손을 떼고 말았다.
사울은 다윗과는 달리, 성경의 하나님이 어떤 분이시며 그분의 사고방식이 어떠한지를 제대로 몰랐던 것 같다. 그게 그의 가장 큰 문제였으며, 그는 말년에는 정 안 되니까 무당을 찾을 정도로 영적 상태가 막장으로 치달았다.

9.
성경에는 카인, 아합, 이세벨, 가룟 유다 등 여러 악역(?)이 등장한다. 그러나 성경 66권을 통틀어 하나님께서 가장 싫어하시는 악질적인 악역은 아마 발람일 것이다. 돈을 따라 간에 붙었다 쓸개에 붙었다 한 양다리 회색분자일 뿐만 아니라, 그는 영악해서 하나님의 성품을 이용해 잔머리까지 굴린 사람이다.

민수기 24장과 25장 사이에 있었던 일을 각색하자면 이렇다.
“이스라엘 민족은 참 신인 여호와 하나님이 보호하는 민족이기 때문에 평범한 군사력만으로는 우리가 절대로 이길 수 없다. 그러나 기쁨조 미인계를 동원해서 쟤네들을 우상 숭배와 음행으로 타락시키면 하나님이 제 발로 자기 민족을 징계할 수밖에 없게 된다. OK?”

이스라엘을 직접 저주하지는 못한 대신, 발람이 요런 천기를 누설해 준 것이다.
그래서 비록 이스라엘은 이 작전에 말려서 적지 않은 피해를 보았으나, 성경은 이 원수 발람도 결국은 제 명에 못 살고 뒈졌다고 민 31:8에서 친절히 써 놓았다. 그리고 신약 성경에서까지 발람의 길, 발람의 교리 등으로 두고두고 그를 디스한다. 신약에서 나쁘게 등장하는 구약 인물은 죽어서 지옥 가 있다고 간주하면 정확하다.

※ 맺는 말

내가 느낀 건데, 영적 성장에는 영재· 천재가 없다.
초등학생 나이 때 미적분을 술술 풀고 성경 100구절 이상을 암송하고 토플 만점을 받는 애는 있어도,
초등학생 나이 때 부모님의 마음을 다 이해하고 자기보다 남을 먼저 생각하고, 때리면서 훈계할 필요가 없어서 잠 22:15의 예외에 해당하는 애는 없다. 이래서 성경이 만고불변의 진리인 것이다.

자동차 운전은 그야말로 개나 소나 다 할 정도로 쉬운 일이다. 그러나 아무리 자동차 설명서와 도로 교통 법규를 다 외우고 있다 해도 그런 어린아이에게 운전을 맡기는 사람은 없다. 그 이유 역시 굳이 말할 필요가 없을 것이다.
아무쪼록 하나님에 대해 어떻게 알고 있냐에 따라 그 사람의 인생이 바뀔 수가 있으니, 위에서 열거한 예에 따라 우리는 성경에 기록된 바람직한 예를 벤치마킹하고 이를 따라가도록 노력해야겠다.

한동안 미친 듯이 컴퓨터나 철도, 교통수단 쪽 글을 썼지만 성경의 사색과 묵상의 결과도 틈틈이 메모해 놓은 게 있다.
필요악에 대해서, 그리고 모세에 이어 요셉에 대해서도 아이디어만 적어 놨는데 본격적으로 집필을 할 시간이 없다.

아 끝으로 이 글의 주제와 관련하여...
믿음 행사를 위한 위법 행위의 적법성 여부에 대해서 내가 내린 결론은 그냥 “case by case”이다. 위법 행위가 뭔질 물으신다면 라합 내지 이집트 산파의 거짓말 같은 걸 가리킨다. 미래에 기회가 되면 이런 경우에 대한 분석도 다루고 싶다.
여백이 부족하니 오늘은 여기까지 쓰련다.

Posted by 사무엘

2012/01/10 19:28 2012/01/10 19:28
,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/625

한글 입력기에 이어 다음은 글꼴 쪽 소식이다.

사용자 삽입 이미지
이게 과연 가능할까 나 자신도 장담할 수 없었는데 결국은 해냈다.
스크린샷의 프로그램은, 아래아한글 2.0 전문용에 들어있는 영문 신명조 HFT 파일을 읽어서 거기에 있는 글자를 찍은 모습이다.
TTF로 존재하지 않는 아래아한글만의 독창적인 글꼴--공한체나 휴먼옛체, 강낭콩 등--을 인증샷으로 보여야 더 재미가 있을 텐데, 아래아한글 2.0 시절에는 독창적인 글꼴이 아직 흔치 않았었다.

궁극의 오덕질의 승리.
뭐, 아예 압축 파일 포맷을 혼자 Reverse engineering만으로 알아낸 사람도 있는데, 이 정도 가지고 내가 딱히 RE의 귀재이거나 한 건 아니다.

아래아한글 2.0은 윤곽선 글꼴이 도입된 첫 버전이었고(무려 1992년 발매!), 지금의 아래아한글이 사용하는 '통합 글꼴' 포맷이 완전히 제정되기 전이었다. 글꼴 파일 내부에 아직 이름이나 제조사 같은 정보도 없고, 파일 포맷도 별도의 추상적인 계층이나 미래 확장 대비 공간이 전혀 없이 아주 아주 단순했다. 헥스 에디터로 딱 들여다보면, 이건 글자별 글립 데이터 오프셋 정보, 이건 글자별 폭(영문 가변폭 글꼴 기준) 이런 식으로 구간이 나뉘어 있겠다는 게 눈에 들어왔다. 구간을 나누는 데 성공한 것만으로도 최하 30% 이상은 성공이었다.

글립 데이터를 들여다보고 있으니, 처음 부분은 고정된 헤더인 듯하다. 그 지점 이후부터 가변 길이의 인스트럭션들이 나오는데(직선을 그어라, 곡선을 만들어라, 다음 폴리곤으로 넘어가라, 등의 그래픽 명령) 이건 알기가 쉽지 않았다.
그래서 가장 간단한 글자인 중고딕 . I L - _ (다 사각형 하나만 달랑 나오는-_-)가 어떻게 돼 있는지 분석하는 걸 시작으로, + = / : 을 이어 추적했다.

가장 마지막으로 원리를 알아 낸 건 물론 곡선 부분이다. 다행히 이 HFT는 트루타입(TTF)보다는 구조가 훨씬 더 단순했다. TTF 정도의 복잡도만 돼도 나 혼자서는 포맷을 못 알아냈을 것이다.
내가 이미 TTF 같은 더 복잡한 글꼴 파일 포맷의 구조에 대해 어느 정도 알고 있고, 그러니 뭐가 나올지 어느 정도 예상을 하고 있으며, HFT는 그보다 단순할 거라고 예상도 했기 때문에 해킹에 성공할 수 있었다.

다음 관심사는, 물론 아래아한글 2.1부터 지금까지 쓰이고 있는 통합 글꼴이다.
아래아한글 2.x 확장팩 글꼴들을 ttf로 바꿔서 윈도우 다른 프로그램에서도 쓰는 게 소원이다. -_-;;
언뜻 들여다본 바로는, 2.0하고는 인스트럭션들의 포맷이 살짝 다른 듯하다.

같은 한양 시스템 글꼴을 2.0 것과 통합 글꼴 것을 대조해 보면 분석이 훨씬 더 쉽겠지만, 안타깝게도 현재 아래아한글의 한양 시스템 hft 글꼴은 빡세게 암호화되어 있어서 분석을 할 수 없다. 파일 크기와 처리 성능으로 미뤄 보건대 내가 보기엔 압축은 아니고, 그냥 단순 암호화이다. HFT 중에서도 암호화가 안 된 글꼴만이 추후 분석 대상임.

아마 나는 아래아한글의 소스를 본 적이 전혀 없는 사람 중에서는,
글자 입출력과 관련하여 아래아한글이 사용하는 각종 데이터 파일의 구조를 우리나라에서 제일 잘 아는 사람일 것이다.
당장 <날개셋> 한글 입력기에 역대 아래아한글이 사용한 모든 custom 글쇠배열 파일을 읽어들이는 기능이 있으며,
바탕, 가는샘물, 필기는 도스용 아래아한글의 화면용 글꼴 파일을 추출한 것이다.

1월 10일 추가:
오늘 새벽. 통합 글꼴 HFT도 뚫는 데 성공. 단, 이건 내 혼자 힘만으로 한 건 아니다.
인증샷 대상 글꼴은 '신명 신명조'이다.

사용자 삽입 이미지

Posted by 사무엘

2012/01/08 19:23 2012/01/08 19:23
,
Response
No Trackback , 15 Comments
RSS :
http://moogi.new21.org/tc/rss/response/624

날개셋 한글 입력기 6.5 공개

6.5 버전! 이 얼마 만의 버전업인가.
몇 달간 마음의 부담으로 남아 있던 작업들을 상당수 이뤄 내서 매우 기쁘다. (☞ 받으러 가기)
편집기· 변환기· 내부 엔진· 외부 모듈 등 거의 모든 분야에서 골고루 많은 발전이 있었다.
내일(1월 7일) 공개라고 계획을 잡고 문서에도 다 그렇게 썼지만, 그냥 기분상-_- 하루 당겨 버렸다. ㄲㄲ

1.
지금 윈도우 7 + <날개셋> 6.3 이하 버전 사용자라면, <날개셋> 한글 입력기를 윈도우용 IME로 지정한 후 <날개셋> 한글 입력기의 About 대화상자를 꺼내 보기 바란다. 이 About 대화상자에는 키보드 포커스를 받는 컨트롤이 개발자 홈페이지를 여는 링크 컨트롤, 그리고 대화상자를 닫는 '닫기' 버튼 이렇게 두 개가 있다. 전자는 IME 입력을 받으나(비록 IME 입력이 아무 의미가 없긴 하지만), 후자는 버튼이기 때문에 받지 않는다.

두 컨트롤을 탭을 누르면서 반복해서 왕래해 보라. 그런데 포커스가 '닫기' 버튼에 있을 때 <날개셋> IME의 버튼들이 사용 불가(disable) 모양으로 흐리게(grayed) 바뀌는가, 그렇지 않은가? (흐려져야 맞음. MS IME와 동작을 비교해 볼 것)

깜짝 놀랐고 내 눈을 의심했다.
윈도우 7이 출시된 지가 2년이 넘었는데 이런 버그가 아직까지 있는 줄은 꿈에도 몰랐다.
혹시 예전에는 없었다가 새 버전에서 추가되고 바뀐 기능 때문에 새로 갑작스럽게 생긴 버그이진 않은가 해서, 5.3대의 엄청 옛날 버전을 깔아서 이걸로도 확인해 봤다. 그러나 동일 증상이 여전히 발견됐다.

이 정도면 고질적인 버그를 하나 찾아내서 잡은 것이기 때문에 readme에다가도 적지 않을 수가 없다. 후대 버전에서 몰래 생긴 버그라면 문서 기록 따위는 남기지도 않았을 텐데. 비스타는 해당사항 없고 오로지 7에만 존재하는 문제이다. (이번 6.5에서 해결됨)

그 많고 많은 윈도우 7 사용자 중에 왜 이 기본적인 버그를 지적하는 사람은 지금까지 없었을까?
윈도우 7은 IME 쪽이 생각보다 굉장히 많이 바뀌어서, 예전에는 이 정도까지만 적당히 짜 주면 됐던 게 거기서만 이상하게 까탈스럽게 구는 게 많다. 전반적으로는 좀 엄격하게 바뀐 것 같다. 이것 때문에 <날개셋> 한글 입력기도 5.5 때는 5.51, 5.52 같은 자질구레한 패치가 나와야만 했다..

2.
개인적으로는 근래에 패턴 치환 필터를 정말 유용하게 썼다.
엑셀에서 복사하여 탭으로 구분되어 있는

A B C D E

형태의 데이터를

insert into Table1 values('A', 'B', 'C', 'D', 'E');

형태의 SQL 쿼리로 직통으로 바꾼다거나,

제목
1 문장A
2 문장B

이런 텍스트에서 제목은 삭제하고 숫자와 탭으로 구분된 문장만 다 뽑아내는 것,

그리고 심지어

0xAC, 0x50, 0xB7

같은 숫자 배열을

"\xAC\x50\xB7"

처럼 문자열 상수 형태로 바꾸는 것도 패턴 치환으로 다 가능하다. 패턴 치환과 더불어, 일괄 치환 기능도 익혀 놓으면 아주 유용하다.

<날개셋> 편집기가 겉보기로는 정말 허름한 에디터 같아도, 한글 입력 기능뿐만 아니라 보조 입력 도구와 텍스트 필터를 생각하면 결코 만만하지 않을 것이다. 비록 저런 기능이 <날개셋> 한글 입력기의 주 개발 목표는 아니며, 편집기가 매크로 기능을 직접 제공하지는 않지만, 저런 게 매크로 자동화 기능이나 마찬가지이다.

3.
다음 버전은, 이젠 진짜로 한자 관련 시스템을 제발 업그레이드 좀 해야겠다. 번호는 6.7로 계획했다. <날개셋> 한글 입력기 개발 역사상 최초로 버전 번호에 7이 들어갈 예정.

일대일로만 가능하던 한자 후보 변환을 다대다로 확장하여 단어 단위 한자 변환 기능을 넣고, BMP 영역만 취급 가능하던 각종 한자 처리 시스템을 surrogate까지 지원하도록 확장한다.
지금 옵션이 달랑 3개밖에 없어서 황량한 '편집기 계층' 제어판 대화상자에는, '가능하면 글자 대신 단어 단위로 한자 변환', 그리고 'BMP뿐만 아니라 surrogate 영역 한자도 사용' 이라는 한자 관련 옵션이 최소한 두 개 더 추가될 예정이다.

그리고 다중 candidate를 도입한다. 이건 이번 6.5에서도 터닦기 작업은 해 놨다.
특수글쇠를 보면 한자 후보 기능 글쇠가 예전처럼 하나만 있는 게 아니라 4개가 존재하는데,
1번 default candidate은 전통적인 한자나 초성 특수문자인 반면, 2번부터 4번까지는 customize 가능한 다른 후보 변환을 할 수 있게 하는 것이다. 가령, 한자 변환 대신 구결 변환을 넣는다거나 하는 식으로 활용이 가능하다.

'<날개셋> 고급 입력기'뿐만이 아니라 기본 입력기도 후보 데이터의 사용자 정의의 폭이 크게 넓어진다는 뜻이다. 물론 이미 후보 데이터 편집 기능을 갖추고 있는 '고급 입력기' 역시 늘어난 후보 개수에 맞게 그 구조가 확장되어야겠지만 말이다.

한자 키는 예전과 같은 1번 candidate이지만, Shift+한자는 2번 candidate를 배당하면 된다. 아직 터닦기만 해 놓고 그 기능이 실제로 구현되지는 않은 6.5에서는, 여전히 1번 candidate만 사용 가능하다.

끝으로, 장기적으로는 <날개셋> 편집기의 한자 변환 대화상자도 지금의 외부 모듈과 같은 UI로 바꾸려는 계획이 세워져 있기도 하다.

이런 식으로 한자 시스템 업그레이드는 여러 대규모 작업들이 한데 얽혀 있는 '군'(group; family)을 이루고 있다. 작업의 일부만 해내도 프로그램 버전이 최하 0.1 이상은 충분히 올라갈 수 있다.
치밀한 계획을 세워야 하고, 프로그램 API가 크게 바뀔 수도 있는 장기전을 감수해야 할 수도 있기 때문에, 이걸 지금까지 선뜻 추진하지 못한 것이다. 이제 6.5 다음 버전에서는 할 수 있겠지.

그리고 부가적으로는 보조 입력 도구 쪽도 편의 기능을 강화할 예정.
예를 들어, 화면 키보드에서 마우스 클릭만으로 Shift 윗글쇠를 입력할 수 있게 하는 것 말이다.
다음 버전인 6.7(가칭)의 개발 방향· 테마는 이런 식으로 이미 다 잡혀 있다.

Posted by 사무엘

2012/01/06 08:18 2012/01/06 08:18
Response
No Trackback , 12 Comments
RSS :
http://moogi.new21.org/tc/rss/response/623

분당선 연장 개통

신분당선이 개통한 지 딱 두 달 뒤, 구(舊) 분당선도 보정 아래로 세 역--구성, 신갈, 기흥--이 연장 개통했다. 분당선이 이제 거의 민속촌 근처까지 내려갔다.

분당선!
노 태우 정권 시절에 건설된 1기 신도시 중 하나인 성남시 분당구를 서울과 잇기 위해 건설된 광역전철이다.
직통 운행하는 여타 지하철이 없이 100% 코레일 관할인데 지상이 없는 100% 지하 구간이고, 생긴 건 지하철처럼 생겼으면서 직류가 아닌 교류 전기를 쓴다는 점에서 옛날부터 굉장히 이색적인 전철 노선이었다.

맨 처음에 1994년에 수서-오리 구간이 개통한 게 원조이다. 그러던 것이 2003년에 서울 시내의 수서-선릉이 개통하였고, 200x년대 중후반엔 오리 이남으로 죽전과 보정 역이 찔끔 개통했다. 그리고 보정은 차량 기지 내부에 있는 임시역이었다.

그 후 1994년으로부터 무려 17년이 지난 2011년에 그나마 연장다운 연장이 이뤄졌다. 이거 뭐 김 일성이 죽은 해에 1차 구간이 개통하고, 그의 아들이 죽은 해에 또 이렇게 대규모 연장 구간이 개통한 건 그냥 우연의 일치일 것이다. 우연이고말고. ㄲㄲㄲㄲ

임시 보정 역은 진짜배기 지하 보정 역으로 이설되었고, 이제 분당선의 지상역은 죽전 역만 유일하게 남게 되었다. 하지만 분당선의 북쪽 말단으로 계획되어 있는 왕십리 역은 지상에 중앙선과 나란히 만들어질 예정임. 죽전 역은 분당선의 20세기 구간(수서까지만)과 21세기 구간을 가르는 중요한 이정표가 될 것으로 보인다. 죽전은 보정보다도 나중에 개통한 역인데 어째 존재감이 커졌다.

직통 운행을 하는 전철 노선 구간에 무려 17년의 간극이 존재하는 경우는 매우 드물다. 뭐, 전철 1호선은 워낙 역사가 길고, 또 지상이니까 제외한다 치지만 지하철은 1기 지하철과 3기 지하철이 공존하는 3호선(수서-오금) 내지 앞으로 개통할 7호선 연장 구간에서나 그 정도 간극을 체험할 수 있을 것 같다.

그래서일까? 분당선은 오리 이북과 보정 이남은 분위기가 완전히 다르다.
분당선은 개통 초기부터 시끄러운 소음철로 악명을 떨쳤다. 그나마 지금은 노력을 해서 옛날보다 많이 감소한 것이다.
20세기 구간은 장대 레일도 아니어서 레일의 덜컹거림과 터널 소음이 다 들리는 반면, 21세기에 개통한 신규 구간은 조용함 그 자체이다. 타 보면 차이를 바로 느낄 수 있다. 철덕이라면 “분당선이 이렇게 조용하다니! 오래 살고 볼 일이야” 소리가 절로 나오게 된다.

그뿐만이 아니라 경의선이나 중앙선에서나 볼 수 있던 컬러 모니터(단순 저색상 LED가 아니라) 달린 최신형 동글이 전동차가 이제 분당선에도 활약하기 시작했다. 다만 이를 위해 기존 중앙선 전동차가 8량이던 게 소리소문 없이 6량으로 더 줄어든 것 역시 감안할 점임. 분당선도 20세기 구간은 역들이 아예 10량 기준으로 맞춰져 있었지만 21세기 구간은 많아야 8량 기준으로 만들어져 있다.

20세기의 코레일 광역전철들은 특히 지하 구간의 경우 승강장 벽면에 벽화(?)가 많은 편이었는데(과천선, 일산선 구간 등을 보라) 요즘 개통하는 역들은 그런 건 없고 그냥 평이한 코레일체+석재 인테리어이다. 기존 지하철 인테리어도 아니고, 9호선 같은 서울 디자인 가이드라인도 아니고, 그렇다고 신분당선 같은 파격적인 디자인은 더욱 아니다.
경춘선· 경의선에서 보던 그런 느낌이 분당선의 지하 구간에서 그대로 재연됐다고 생각하면 정확하다.

한때 오리 역은 수도권 전철의 지하 구간에 있는 국내 유일의 쌍섬식 역으로 유명했다. 하지만 지금은 남쪽 종점인 기흥 역도 쌍섬식이다. 분당선은 아래로 계속 더 연장될 것이기 때문에 이 역도 2폼 3섬식으로는 안 하고 아예 쌍섬식으로 만든 듯하다. 그러니 이 역을 보면서 옛날에 분당선의 남쪽 종점이 오리 역이던 시절을 생각해도 좋을 것 같다.

분당선에 부분적이나마 급행 전동차가 다닐지는 미지수이다. 철도 동호계에서 유명한 떡밥이다. 하지만 선릉 이북의 서울 시내 구간은 도로가 비좁은 관계로 대피선(= 쌍섬식급 승강장)이 확실하게 없을 것으로 보이니 아쉽다. 전통적으로 지상 도로도 횡축보다는 종축이 좁기도 하고 말이다.
참고로 신분당선은 역 자체가 적을 뿐이지 딱히 완급 운행은 없으며 운행 계통은 단순하다. 완급 결합까지 다 무인 운전으로 해낸다면 운영 시스템이 칭송받아도 좋을 듯하다.

분당선의 남쪽 연장 구간은 신분당선의 승객을 늘리는 데도 일조할 것이고, 또 용인 경전철과의 연계도 해내는 여러 긍정적인 효과가 있다. 하지만 후자는 흑역사화의 위기에 처해서 문제이다..

마지막으로 여담이다만, 이 분당선 연장 개통 때문에 어차피 노선도가 업데이트되어야 할 타이밍에 맞춰, 경원대 역이 드디어 가천대 역으로 개명되었다. 경원 대학교가 가천 대학교 경원 캠퍼스로 통합되었기 때문이다.

Posted by 사무엘

2012/01/03 19:27 2012/01/03 19:27
,
Response
No Trackback , 9 Comments
RSS :
http://moogi.new21.org/tc/rss/response/622

1. 정렬 기능

컴퓨터에서 문자열 정렬은 아주 중요한 작업이다.
문자라는 게 디지털 컴퓨터에서는 0과 1의 조합인 숫자로 표현되는 만큼, 코드 번호 값의 대소로 문자를 비교하는 게 가장 직관적이고 당연하고 가장 합당하긴 하지만... 현실은 시궁창.

유니코드의 역사가 워낙 길어지면서 빈 영역 여기저기에 온갖 잡다한 문자들이 추가되었고, 이 때문에 단순 코드값 비교에 따른 정렬은 옛날에 비해 의미가 상당수 퇴색했다. 결국은 비교를 위한 별도의 테이블이나 알고리즘을 또 가지고 있어야 할 지경이 됐으니 말이다.
한글도 옛한글 자모가 몇 차례 나뉘어 추가되어서 좀 지저분해졌다. 그래도 유니코드 5.2 이후로 또 변화가 있을 것 같지는 않으니, 그 이상은 내 관심사 밖이다.

정렬을 할 때는 대소문자 구분을 하지 않는 게 보통이다.
그런데 <날개셋> 한글 입력기가 제공하는 정렬 필터는 한 걸음 더 나아가, 대소문자를 구분하지 않은 두 문자열이 동일하다면, 원래 형태대로 비교를 다시 해서 대소를 가리도록 로직이 다음 버전부터 수정될 예정이다. 경우에 따라서는 이렇게 해 주는 게 유용할 수도 있을 것 같아서이다.

정렬 전 그냥 대소문자 무시 정렬 대소문자 무시+2순위 고려
Base
CASE
SAFE
Vase
base
safe
vase
Safe
BASE
Case
case
Base
base
BASE
CASE
Case
case
SAFE
safe
Safe
Vase
vase
BASE
Base
base
CASE
Case
case
SAFE
Safe
safe
Vase
vase
그래서 WORD, Word, word라는 단어가 모두 존재하면, 똑같은 word라 해도 오름차순에서는 언제나 저 순서가 유지되게 된다. 대소문자뿐만 아니라 전/반각, 한자 독음 비교 같은 다른 옵션에 대해서도 동일한 원칙이 적용된다.

하지만 본인이 아는 유명 프로그램들 중 저걸 배려하는 프로그램은 전혀 없다. 아래아한글, MS 워드, 엑셀, EditPlus, AcroEdit 등... 대소문자 구분을 안 시키면 그 내부에서는 word, WORD, Word 순서는 전혀 지켜지지 않는다.

그뿐만이 아니라 다음 버전에서는 문자열 중의 숫자를 natural order로 비교하는 옵션이 추가된다. 쉽게 말해, A100을 A9보다 나중에 오게 하는 것 말이다. 1은 9보다 먼저 오지만, 100은 9보다 더 큰 수이기 때문.

구현해 놓고 써 보니, 이거 생각보다 굉장히 유용한 기능이다. 왜 진작에 이런 기능을 안 넣었는지 모르겠다. “작은 코딩, 큰 만족”이 프로그래밍 덕질의 아드레날린이며 중독성의 원천이다.

숫자 비교는 자릿수가 더 많은 놈부터 먼저 쳐 주는 로직만 넣으면 끝날 것 같지만, 00100과 101 같은 훼이크도 조심해야 하고, 마이너스와 소숫점까지 생각하면 알고리즘이 의외로 복잡해진다.

현재 정렬 필터는 내부적으로 Quick sort를 사용하지만(unstable 알고리즘), 각 아이템들의 원래 배열 순서도 비교할 때 고려해 주기 때문에, 동일한 아이템끼리도 안정성(stability)이 보장된다. 유니코드 5.2 기준 모든 옛한글의 순서를 정확하게 비교해 내고 아래아한글처럼 종성부터 비교하는 옵션이 있을 뿐만 아니라, 저런 면까지 나름 꼼꼼하게 고려해서 구현되어 있다. ^^;;

2. 아이콘

다음 버전부터는 <날개셋> 변환기와 입력 패드의 아이콘이 바뀔 예정이다.
변환기는 뭔가 변환 메커니즘을 나타내는 회전 화살표가 담긴 아이콘이며,
입력 패드는 그 용도답게 태플릿+스타일러스가 그려진 아이콘이다.

요즘은 인터넷에 예쁜 아이콘들 갤러리가 넘쳐나니, 아이콘도 직접 그리는 것보다는, 이미 그려진 걸 찾아서 찜하고 필요하다면 구입하는 게 나은 세상인 듯하다. 맞춤복보다는 기성복 구도?
물론 아이콘의 출처는 프로그램 도움말의 '일러두기' 란에 명시될 예정이다.

<날개셋> 편집기의 아이콘인 빨간 수첩^^;;은 과거 비주얼 C++이 예제로 제공하던 아이콘이 그 전신이다. EditPlus도 동일 컨셉이긴 하나, 수첩을 펼친 방향이 <날개셋> 편집기의 그것과는 정반대이다.

이 컨셉으로 큼직한 트루컬러+알파 채널 아이콘까지 그려 주신 분은 옛날 인터넷 세벌식 사랑 모임의 운영자이던 이 정민 님이다. 그게 벌써 2003년의 일인데 3.0 시절부터 8년이 넘게 동일 아이콘을 쓰고 있는 셈.

이것 말고도, 마치 지금의 상명 대학교의 로고타입처럼 한글 자모를 세로로 풀어 써서 <날개셋> 자체를 형상화한 '기본 아이콘'도 있는데, 이건 외부 모듈이 사용하고 있다.

사용자 삽입 이미지사용자 삽입 이미지
외부 모듈은 편집기나 입력 패드처럼 다른 여러 응용 프로그램들하고 비교되는 게 아니라, Microsoft IME처럼 이미 같은 입력기들과 비교된다. 그러니 이 프로그램이 IME라는 건 누구나 다 알고 있고 <날개셋>이라는 브랜드가 중요하므로, 프로그램의 기본 아이콘으로 이걸 그냥 쓰는 것이다.

<날개셋> 기본 아이콘의 컨셉은 1.0 만들 때 본인이 구상한 것이다. (당연히 상명 대학교의 로고타입을 모르는 상태에서 디자인한 것임. 우연의 일치. ㄲㄲ) 이를 트루컬러 이미지로 각색하신 분 역시 이 정민 님이다.
참고로, 외부 모듈은 파란 기본 아이콘이고, <날개셋> 타자연습은 여러분도 다 잘 알다시피 초록색 기본 아이콘을 쓰고 있다.

프로그램의 아이콘에 이어 도구모음줄의 각종 아이콘도 트루컬러나 256색화할 때가 되긴 했다만, 흠.. 귀찮다.;;
이렇게 프로그램 UI에 들어가는 각종 이미지들의 기술 수준이 상승했건만, 비주얼 C++의 자체 IDE가 제공하는 아이콘 편집기는 트루컬러+알파 채널, 심지어 요즘 같은 PNG 이미지가 embed된 아이콘을 제대로 열지 못한다. 그런 거 하나 만들려면 이제 별도의 '싸제' 그래픽 에디터를 써야 하니 불편하다.

VC++ 6.0 시절에는 트루컬러 이미지 자체를 열질 못했다. 그런데 256색까지밖에 읽어들이질 못하는 주제에, 내 기억이 맞다면 VC6의 IDE는 JPG 파일을 열 수는 있었다. 그리고는 JPG 사진을 256색으로 '디더링'-_-해서 표시해 줬다. 흠좀 많이 무섭죠? -_-

3. 찾기/바꾸기 대화상자

<날개셋> 편집기의 다음 버전은 찾기/바꾸기 대화상자의 디자인이 살짝 바뀔 예정이다.
'뒤로 검색'은 별도의 옵션으로 존재하지 않으며 버튼 자체가 '다음 찾기'와 '이전 찾기'로 따로 존재함으로써 탐색 방향을 결정하게 된다.

그리고 '처음부터 찾기' 옵션이 별도로 추가되며('이전 찾기'를 하면 문서 끝부분부터 찾게 됨), F3/Shift+F3으로 찾기를 계속하다가 문서의 끝부분에 도달했을 때는 자동으로 첫 부분으로 돌아가서 다시 찾게 할 수 있다.
'처음부터 찾기' 옵션을 지정하고서 '모두 바꾸기'를 누르면 지금 커서 위치에 상관없이 문서 전체에서 찾기/바꾸기를 일괄적으로 수행할 수 있다.

예전에는 '뒤로 검색'을 선택하면 F3이 역방향 검색, Shift+F3이 그 반대인 순방향 검색이었으나,
이제는 F3은 언제나 순방향 검색, Shift+F3이 역방향 검색이 된다..

4. 기본 IME로 지정 옵션

마치 웹브라우저에 자신을 운영체제의 기본 브라우저로 지정하는 옵션이 있듯,
드디어 추가되었다.
'TSF A급 확장 옵션'만 달랑 남아있던 '고급 시스템 옵션'에 이게 들어갔다.

사용자 삽입 이미지

사실 원래 의도했던 건, 프로그램을 설치할 때 “<날개셋> 한글 입력기를 기본 IME로 지정” 옵션을 추가하는 것이었다. 이게 아주 자연스럽지 않은가?
하지만 Windows Installer가 도대체 프로그램을 어떤 환경에서 구동하는지, 그때는 기본 IME 지정이 죽어라고 되지 않아서 어쩔 수 없이 설치 후에 사용자가 이렇게 하는 걸로 디자인을 바꿨다.
이것만으로도 운영체제 제어판을 일일이 꺼내는 것보다 마우스 클릭질을 상당히 줄일 수 있다.

물론, 이미 기본 IME로 지정이 된 상태라면, 버튼은 disable된다.

5. 이 외에도 이번 6.5에서는 드디어 기본 입력 스키마의 '글쇠 인식 옵션'에, 기존 47개 글쇠 94개 자리뿐만이 아니라 임의의 단축글쇠에다가 글쇠를 배당하는 기능이 추가되어 Shift+Capslock을 모아치기/이어치기/풀어쓰기 변환을 한다거나, Numlock 상태의 키패드에다가 한글 입력 방식을 구현한다거나 하는 활용이 가능해진다. 이것도 지금까지 꽤 오랜 숙원이었다. 쉽게 말해 지금 편집기 계층에 있는 '단축글쇠 테이블'이 입력기 계층으로도 일부 내려온 거라고 생각하면 된다.

단타를 하나 인식하는 것까지가 '기본 입력 스키마'가 하는 일이고, 그 이상 더 변칙적인 입력... 가령 동시치기라든가 한 글쇠를 눌렀다가 떼거나 오래 누르거나 하는 것은 '동시입력' 같은 별도의 스키마가 담당하게 될 것이다.

또한, 임의의 글쇠를 인식하는 것과는 반대로 이미 인식하는 글쇠도 인식을 하지 않게 할 수 있다.
예를 들어 표준 두벌식 글자판은 A~Z까지 알파벳 26개 글쇠만 영문과 다를 뿐 나머지 숫자와 기호는 영문과 동일하다. 그래서 MS IME가 동작하는 걸 보면, 두벌식에서는 숫자와 기호는 IME가 아예 가로채지 않으며, 응용 프로그램에는 IME 메시지가 아니라 일반적인 키보드 메시지가 전달된다. 세벌식일 때만 모든 글쇠를 가로챈다.
이것을 <날개셋> 한글 입력기도 이제 사용자가 지정함으로써 구현 가능해진다는 뜻이다. 숫자나 기호 글쇠를 등록한 뒤, '글쇠 독점하지 않기' 옵션을 지정하면 된다.

6. <날개셋> 한글 입력기의 외부 모듈은 TSF A급 환경에서는 전용 편집기와 비슷한 독자적인 텍스트 조작을 지원했다. 이미 조합이 끝난 한글도 낱자 단위로 지우고, 앞 글자에 조합 상태로 달라붙는 기능 말이다. 하지만 현대 한글과는 달리, 2글자 이상의 조합으로 표현되는 옛한글에 대해서는 그런 기능을 제공하지 않았다(못했다). 글꼴과 코드, 운영체제 차원에서 프로토콜 지원 미비, 응용 프로그램마다 동작 방식의 차이 등 여러가지 기술적인 이유 때문이다. 이는 앞으로 Windows 운영체제가 개선되어야 할 사항이다.

하지만 이번 6.5 버전에서는 비스타/7의 TSF 확장 모드에 한해서... 다시 말해 확장 옵션이 켜진 상태에서 웹브라우저의 입력란과 메모장(일반 에디트 컨트롤)에서 유니코드 옛한글의 고급 조작을 시범적으로 enable해 보았다.
TSF 확장 모드 자체가 아직 상당히 불안정하고 오동작이 많은 모드이긴 하지만, MS 워드나 워드패드 같은 원조 TSF A급 환경에서는 고급 조작이 “아예 불가능했다”.

제한적이나마 이제 옛한글도 낱자 단위로 지우고 달라붙어지는 게 신기하다.
사실, <날개셋> 편집기도 이론적으로는 <날개셋> 외부 모듈의 고급 조작을 완벽하게 지원한다. 하지만 그건 어차피 홈그라운드이고, 외부 모듈 말고 자체 입력기도 쓸 수 있는 환경이니, 별 의미는 없다.

이것 말고도 이번 6.5는 내부적으로 프로그램 완성도가 강화되고 각종 버그가 수정된 게 엄청 많다.
2012년의 첫 글은 아주 희망적인 글로 시작했다. 새 버전이 몹시 기대된다.

Posted by 사무엘

2012/01/01 19:11 2012/01/01 19:11
Response
No Trackback , 14 Comments
RSS :
http://moogi.new21.org/tc/rss/response/621

고인의 행적에 대한 오해

한 해를 마무리하는 차원에서 올해의 마지막 글로 채택된 주제는 이것. ㅎㅎ

1. 공 병우 박사
...는 한글 타자기를 최초로 만든 분이 아니다. 세벌식 한글 속도 타자기 내지 한영 겸용 타자기의 최초 발명자일 뿐, 한글 타자기 자체의 최초 발명자는 아니다.

이와 비슷한 맥락으로, 본인에 대해서도 세벌식 글자판이나 세벌식 한글 입력기를 최초로 만들었다고 오해하는 분이 좀 계신다. 이는 당연히 사실이 아니다. 세벌식 자체만을 쓰는 게 목적이라면 기존 MS IME로도 얼마든지 할 수 있으며, 세벌식 모아치기도 현재 내 프로그램만 지원하는 기능은 아니다.

<날개셋> 한글 입력기의 정체성에 대해 가장 짧게 설명하자면, “한글 입력기가 가질 수 있는 모든 요소와 기능을 프로그래밍 가능하게 해 놓은 시스템인데, 그 체계가 철저히 세벌식의 사고방식을 염두에 두고 있다” 정도가 될 것 같다. 어쨌든 말이 어렵다. ^^

2. 우 장춘 박사
...는 씨 없는 수박의 발명자가 아니다. 그걸 발명한 사람은 따로 있으며(일본인), 우 박사는 “우리나라도 품종 개량에 투자를 해야 농업 경쟁력을 확보할 수 있으며, 이 기술로 이런 것도 만들 수 있다!”라고 주장하는 차원에서 씨 없는 수박을 한국에 가져와 재배하는 시범을 보였을 뿐이다. 그분의 업적은 다른 전문 분야에 따로 있으며, 대표적인 게 유전학 쪽의 종의 합성 이론임.

그는 을미사변에 가담했다가 일본으로 망명한 친일파 아버지 우 범선의 아들이었고, 일본에서 너무 오래 살아서 한국어가 어눌할 정도였다. 그러나 그는 자신의 진짜 조국을 진심으로 사랑한 분이며, 대한민국 초기에 각종 장관직 감투도 마다하고 오로지 한국의 영농 선진화에 헌신한 존경스러운 위인이다.

3. 이 휘소 박사
...는 핵 물리학자가 아니다. (ㅠㅠ)
김 진명 씨의 소설 <무궁화꽃이 피었습니다> 때문에, 전세계에서 알아주는 소립자 물리학의 대가가 유독 고향인 한국에서만 핵 물리학자로 와전되어 있다. ㅋㅋㅋㅋ

본인에게는 고등학교· 대학교 동창이며 카이스트에서 물리학 박사까지 마친 수학· 물리 괴수인 친구가 하나 있다. 맨날 실험 기기와 씨름하기보다는 초끈 이론이 어떻고 하는 걸 연구한다기에(이게 이과대와 공대의 차이인가?) 걔에게 “그럼 네가 하는 연구가 故 이 휘소 박사의 연구 분야와 비슷하냐? 이건 좋은 질문 맞지?”라고 묻자, 돌아온 대답은 둘 다 yes였다. ^^;;

그런데 나도 그 소설이 아니었으면, 이 휘소 박사라는 사람이 있는 줄도 모르고 넘어갔을 것 같다. 조국의 핵무기 개발 연구 같은 거창한 민족주의 떡밥이 없었으면, 현대 물리학에 문외한인 평범한 사람이 초끈 이론 따위가 알 게 뭐고 양자역학이 알 게 뭔가? -_-;;

소설 내용이 고인드립이라고 그의 유족들이 불쾌해하며 소송을 제기하기도 했으나, 법원의 판결은 “사실에 대한 왜곡이긴 해도 고인을 '아주 긍정적인 쪽으로' 왜곡한 것이기 때문에 사자 명예 훼손은 아님” 쪽으로 났지 싶다. 나도 공감한다.

다만, 박통이 핵무기나 그에 준하는 무서운 무기(장거리 미사일?)를 개발하려고 노력을 한 건 사실인 듯하다. 후임인 전 두환이 자기네 쿠데타 정권을 미국으로부터 승인받는 조건으로, 그 무기 개발 계획을 분명 백지화했으니 말이다. 그래서 박통이 허무하게 암살 안 당했으면 우리나라는 지금쯤 핵무기 보유국이 됐을 거라고 그리워하는 분도 계심.

저런 시대 정황에다, 의문의 갑작스러운 죽음을 당한 한국 출신 천재 물리학자, 그리고 환빠스러운 민족 정서가 합쳐져서 <무궁화꽃...> 같은 허구 소설이 한때 베스트셀러로 등극한 게 아닌가 싶다. 이 휘소 박사는 생전에 박통의 군사 독재를 매우 싫어하고 비판했던 사람이다.

4. 아인슈타인
...은 상대성 이론으로 노벨 상을 받은 게 아니다.
당시로서는 상대성 이론이 대단한 업적이긴 했으나 아직 논란의 여지가 있었고, 그가 노벨 상을 받은 분야는 광전 효과(광양자 가설)이다.

그런데 이 사람 하면 역시 이 휘소 박사만큼나 원자 폭탄이 떠오르니, 어째 일반 사람들에게 현대 물리학의 총아는 원자력이나 핵무기로 집약되는 듯하다. 이거 뭐 스타크래프트 테란의 코우벌트 옵스(Covert ops) 애드온의 이름이 피직스 랩(Physics lab)이 돼야 하는 건 아닌가 몰라. ㄲㄲㄲㄲㄲ

5. 그리고 끝으로, 저런 사례들만큼이나,
예수님은 사대성인, 성인군자, 유대인의 혁명가, 사상가, 철학가, 도인, 교주 레벨이 절대 아니다. -_-;;;

예수님은 성육신한 하나님이며, 신으로서 인간에게 줄 수 있는 가장 귀한 선물을 주신 분이자 그 선물 자체이다.
그래서 인간의 식량이나 교육이나 주거나 경제· 사회· 정치 문제가 아니라 죄 문제를 십자가에서 해결해 놓으셨다. 예수님만이 인류의 유일무일한 구원의 통로이다.

세상 어느 종교들도 신이 죄 문제 때문에 자신의 창조물(피조물)에게 죽임을 당했다고 가르치지는 않는다.
그 어느 종교도 교주가 죽었다가 스스로 부활하고 승천했다고 가르치지 않으며, 빈 무덤을 자랑하지 않는다. (오히려 엄청 호화찬란한 무덤이라든가, 방부 처리된 성인 내지 교주 시신을 자랑하는 곳은 몇 곳 있다. ㄲㄲㄲ)

대중들에겐 뭔가 임팩트가 크고 육신적인 감각으로 내세우기 쉬운 업적이 부각되는 경향이 있다.
그러나 진실은 그것 너머에 있는 경우가 적지 않다.

Posted by 사무엘

2011/12/30 19:11 2011/12/30 19:11
, , , ,
Response
No Trackback , 10 Comments
RSS :
http://moogi.new21.org/tc/rss/response/620

날개셋 변환기의 리팩터링

우리나라가 인구의 1/4이 서울에 있고, 경기도의 수도권까지 치면 무려 절반이 바둥바둥 몰려 있다고 그런다. 그래서 서울만 지나치게 팽창함으로써 야기되는 각종 사회적 문제가 심각한 수준이며, 이는 이제 어제오늘 일이 아니다.

이와 비슷한 맥락으로, <날개셋> 한글 입력기도 6만여 줄이 좀 넘는 소스 코드의 절반 가까이를 커널인 Ngs3.dll이 차지한다.
그도 그럴 것이 커널에는 문자와 문자열을 처리하는 기초 루틴부터 시작해서 모든 프런트 엔드들이 공유하는 한글 입력 오토마타가 들어있고, 방대한 제어판 GUI를 담당하는 코드도 있다. 수식과 XML parser 역시 거기에 있다. 그러니 덩치가 월등히 크지 않을 수가 없다. 앞으로 한글 입력과 관련된 기능이 또 추가된다면 커널은 더욱 커질 것이다.

그럼에도 불구하고 본인은 Ngs3.dll만이 지나치게 팽창하는 걸 방지하고, <날개셋> 한글 입력기의 코드가 소프트웨어 공학적으로 최대한 바람직하고 보기 좋게(?) 분포하게 하려 노력하고 있다.

그 일환으로 가장 먼저 도입한 개념은 바로 플러그 인이다. <날개셋> 한글 입력기가 제공하는 동일한 성격의 여러 액세서리 기능들을 이미 플러그 인이 분담해 오고 있다.
가령, 20여 종류에 달하는 텍스트 필터들과, <날개셋> 한글 입력기를 처음 접한 사용자가 유용하게 사용하는 빠른설정들은 모두 NgsX.nip라는 플러그 인이 제공하고 있다. <날개셋> 커널은 텍스트 필터와 빠른설정의 프로토콜만을 제시하고, 그 프로토콜대로 구현된 추가 기능들은 플러그 인으로부터 얻어 오는 것이다.

더 나아가, 한글뿐만이 아니라 임의의 상태와 임의의 조합 문자· 변환 후보를 지원하는 ‘<날개셋> 고급 입력기’라든가 ‘동시 입력 스키마’ 역시 플러그 인 담당이다. 커널이 직통으로 제공하는 기능이 아니다. Ngs3.dll의 과포화를 방지함과 동시에, 기반 클래스로부터 이런 확장까지 가능하다는 것을 시연할 목적으로, 이 확장 입력 기능들은 의도적으로 플러그 인으로 구현되었다.

‘부수로 한자 입력’, ‘한손 입력기’ 같은 보조 입력 도구들은 PadUI.nip라는 제2의 플러그 인을 통해 제공되고 있다. <날개셋> 편집기가 아니라 외부 모듈에서 제어판을 호출해 보면 시스템 계층에 ‘한글 표현 방식’ 탭이 있는데, 이 탭도 저 플러그 인이 제공하는 기능이다. 외부 모듈뿐만이 아니라 입력 패드(NgsPad.exe)에서 호출한 제어판도 동일한 탭 UI를 공유하고 있다.
플러그 인은 자신만의 제어판 탭을 갖출 수도 있으며, ‘시스템 계층’은 그런 확장을 하라고 존재하는 계층인 것이다.

이뿐만이 아니다.
제어판의 ‘시스템 계층’에 가면 글꼴 본뜨기를 다시 하는 명령을 찾을 수 있는데, 이때 글꼴 본뜨기를 <날개셋> 편집기 프로그램을 특수한 옵션을 주어 실행하는 형태로 구현된다. 본뜨는 코드는 Ngs3.dll에 있는 게 아니라 NgsEdit.exe의 내부에 있다. 딱히 컴포넌트화할 필요도 없이 <날개셋> 프로그램이 내부적으로만 잠깐 쓰는 보조 기능이니까 말이다.
이런 추세에 따라, 최근에 본인은 이런 리팩터링 작업을 했다.

<날개셋> 한글 입력기 제어판의 글쇠배열 편집기는 글쇠배열과 관련된 굉장히 다양한 종류의 파일을 열 수 있다.
자체 포맷은 말할 것도 없고, 윈도우 운영체제의 키보드 드라이버(NT 계열과 9x 계열 모두)와 아래아한글의 역대 글쇠배열 파일을 모두 지원한다. 그래서 <날개셋> 한글 입력기는 한글 입력 자체도 강력한 기능을 제공하지만, 여타 외국어 글자판과 한글 글자판을 손쉽게 병행해서 쓸 수 있다는 점에서도 매우 유용하고 편리하다.

지금까지는 해당 포맷들의 변환 코드가 모두 Ngs3.dll에 있었다.
그러나 그러던 것을 NgsConv.exe로 옮겼다. 그런 파일 포맷을 불러올 때는 잠시 <날개셋> 변환기를 호출한 후, 그 결과를 가져오게 바꿨다는 뜻이다. 이동한 코드의 양은 대략 8~900줄 정도.

이건 컴퓨터의 입장에서 성능이 향상된 변화라고 볼 수는 없다.
서로 다른 프로세스끼리 데이터를 주고받기 위해 오버헤드가 예전보다 훨씬 더 커지고, 사실 Ngs3.dll의 크기가 감소한 것보다 NgsConv.exe의 크기는 더 증가했기 때문이다(당연한 말이지만).
그러나 외부 파일 변환이 수천· 수만 번 반복되어야 하는 프로세스는 아니고 자주 쓰이는 기능도 아니며, 창의적인 기능이라기보다는 호환성 유지에 가까운 기능인 만큼, NgsConv로 기능이 이동한 것은 바람직한 조치임이 틀림없다.

<날개셋> 변환기는 지난 5.0 버전에서 첫 도입된 후로 그 중요성이 야금야금 커져 왔다.
초창기에는 진짜 기본적인 한글 코드 변환과, <날개셋> 3~4.x 데이터 파일을 변환하는 기능밖에 없었다가 한컴 2바이트 코드 변환 기능이 커널에서 이곳으로 완전히 이동했으며, 이번에 또 대규모 기능 이동이 이뤄졌다. 한글 입력기가 한글 입력과 관련된 데이터나 한글 코드를 변환하는 유틸리티를 제공하는 것은 completeness 차원에서 매우 의미 있는 일이며, 이번 리팩터링은 프로그램의 디자인 관점에서도 바람직한 개편임이 틀림없다.

Posted by 사무엘

2011/12/26 08:21 2011/12/26 08:21
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/618

« Previous : 1 : ... 157 : 158 : 159 : 160 : 161 : 162 : 163 : 164 : 165 : ... 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:
2664042
Today:
1217
Yesterday:
1553