« Previous : 1 : ... 129 : 130 : 131 : 132 : 133 : 134 : 135 : 136 : 137 : ... 221 : Next »

코딩 신선놀음 중

오랜만에 근황 겸 내 사진이나 좀 투척하겠다. 이제 날짜상으로는 여름이 다 갔다지만 난 여전히 낮과 밤에 반팔 차림이다.
사용자 삽입 이미지
확실히 북한산 맑은 공기를 주입해 주면 코딩이 잘 되는 거 같다.. ㅋㅋ
사용자 삽입 이미지
어느 전원 주택 2층 다락방에서의 신선놀음. 참고로 우리집 아님.

날 가까이에서 볼 수 있는 학교· 교회 등의 지인 한정으로나 의미가 있겠지만..
도대체 저 인간은 왜 어딜 가나 맨날 노트북 PC를 들고 다니고 게다가 인터넷조차 없이도 혼자 뭘 끄적거리는지 궁금하신 분들은 내 연구실을 오프라인 방문하는 걸 언제든지 환영한다. 장소가 따로 있는 게 아니라, 그냥 컴퓨터 펼쳐 놓고 작업하고 있는 곳이 어디든지 연구실.
내가 지금 한글 입력에서 관심사가 무엇이고 뭐가 고민인지를 코드와 함께 친절하게 알려 드리겠다.

Posted by 사무엘

2014/10/01 08:39 2014/10/01 08:39
,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1013

동성애의 실상

다음은 오랫동안 게이로 살다가 수 년 전에 전향했다는 어떤 사람이 털어놓은 양심선언이다.

식성, 항문성교, 변실금, 곤지름, 찜방...
와.. ㅠ.ㅠ 정말 상상 이상으로 더럽고 혐오스럽고 충격적이고 끔찍하다..!
내 블로그를 구독하는 분들과도 한번쯤은 공유할 필요를 느껴서 부득이하게 이런 유쾌하지 못한 링크를 소개하게 되었다.

참고로 저건 종교적인 편견이나 훈계 같은 거 없다. 그냥 그 바닥의 실상만을 있는 그대로 까발려 놓은 것이니 누구라도 부담 없이 보시면 된다.
마치 알베르토 리베라의 게이 버전을 보는 듯한 느낌이다.

어찌 보면 당연한 말이지만, 동성애라고 해서 사람이 무슨 자웅동체처럼 행동한다거나 하는 게 아니다.
그들 사이에서도 남자 역할과 여자 역할이 있다. 그런데 동성끼리 이성 흉내를 내려다 보니 차마 입에 담기 민망한 추잡한 짓을 하게 된다.

게다가 이들은 평생 한 배우자(?)하고만 그러는 게 아니다. 게이바에서 서로 식성이 맞고 죽이 맞는 사람끼리 원나잇 스탠드를 하는데, 평생 수십~수백 명의 파트너를 만나서 그 짓을 한다.

“... 여기에 중독되면 그때부터는 동성애에서 빠져나오는 것은 거의 불가능합니다. ... 그 쾌감은 일반 남성들은 절대로 알 수 없습니다.”


으으.. 오싹... ㅠ.ㅠ
지금까지는 나도 그냥 장난조로 “ㅉㅉㅉ 세상에 많고 많은 예쁜 여자들을 놔 두고 같은 남자가 좋냐?” “짝! / 찰지구나” 이러면서 낄낄대기만 하고 넘어가는 편이었는데, 생각보다 심각하고 무서운 짓인 것 같다.

병맛 웹툰 작가 엉덩국은 <성 정체성을 깨달은 아이>라는 만화를 올려서 일약 스타덤에 올랐는데, 한편으로 게이에 대한 이미지를 왜곡했다는 질타를 받아서 다음과 같은 해명 만화도 올렸다.

“게이라고 해서 아무 남자나 좋아하고 밝히는 건 아니라는 거군요”라는 명제는 '식성'을 감안했을 때 확실히 '참'인 듯하다.
그러나 그 작가도 앞의 저 링크에 소개된 웹툰을 좀 일독을 했으면 싶다.

아무튼,
동성애의 커밍아웃이 아니라 음지에 가려져 있던 동성애자 바닥에 대한 과감한 커밍아웃이 하나 떡 올라오니, 이미지 수습을 위한 반박도 응당 올라왔다.
“모든 게이가 다 그러는 거 아니다, 저거는 게이 중에서도 아주 예외적이고 진짜 음란한 극소수 변태들의 예일 뿐이다.” 같은 식.
그러나 친절하게도 그에 대한 재반박까지 올라와 있다.

또한 동성애에 대해서 아무리 변명과 합리화를 늘어놓는다 한들, 다음과 같은 정말 근본적인 결말까지 반박이 가능할지는 의문이다. 동성애는 정말 마약 이상으로 사람의 인생을 파멸로 몰아넣는 마귀의 속임수임이 틀림없다.

“나이 든 동성애자들은 동성애 세계가 얼마나 무서운지 알고 있습니다.
젊음의 때가 가고 30대가 넘어 식성 경쟁에서 밀려나기 시작하면 동성애자들은 그 후로 절대 고독과 외로움 속에 평생을 살아야 합니다.
나이 든 동성애자는 서로 얘기 안 해도 누가 에이즈에 걸렸는지도 잘 압니다.
하지만 젊은 동성애자나 일반인에게 이런 것들을 말해 주지 않습니다.”


세상에는 “나는 당신의 사상에 동의하지 않습니다. 그러나 당신이 그것 때문에 박해를 받는다면 나도 당신의 말할 자유를 위해 당신과 함께 싸우겠습니다” 이런 사고방식으로 동성애자 운동을 성소수자(?)라고 지지하는 대인배 진보주의자들이 많다. 한번 동성애 세계가 어떤지 제대로 알기는 한 뒤에 같이 싸우든가 말든가 했으면 하는 바람이 있다.

사형 제도 논쟁을 할 때 “니 가족이나 애인을 죽인 흉악 범죄자한테도 사형 반대하겠냐?” 이렇게.. 틀린 말은 아니지만 좀 '거시기하게' 논리를 들이대는 사람이 있다. 게다가 일부 박애주의자 중에는 진짜로 “응, 그래도 반대할 거다”라고 대답하는 사람도 없지는 않다는 걸 감안해야 한다.

그런데 동성애는 어떨까? “니 아들이 나중에 남자를 데려와 놓고는 '아버지, 저는 이 남자가 좋습니다' 이래도 괜찮겠냐? 니 집 주변에 게이바가 잔뜩 있어도 애들을 안심하고 키우겠냐?” 이런 질문에 선뜻 “응!”이라고 기꺼이 대답할 사람은 얼마나 있을지 궁금하다. 아무리 멋있는 걸로 치장한다 해도 죄는 결국 죄일 수밖에 없다.

흔히 이성애자 중에서도 바람 피우고 간음 저지르는 인간들도 죄 짓는 건 마찬가지 아니냐는 식으로 퉁치려 드는 사람이 있다. 그런 식의 문란한 정도로 치자면 동성애자가 훨씬 더하다. 그리고 이성애자는 최소한 부끄러운 줄은 알고 몰래 그런다. 요즘 게이들처럼 퍼레이드를 하고 난장판을 벌이지는 않았다. 오죽했으면 옛날에 에어장도 도망쳐서 에어컨 실외기에 매달려 있다가 장렬히 최후를 맞이하지 않았는가?
성경에서도 다윗이 저지른 죄는 밧세바와의 간음이다. 차라리 그 정도면 양반이지, 요나단과 그 짓-_-을 한 것이었다면 얼마나 끔찍했을까? -_-;;

사실 우리나라나 미국 같은 자유 진영 국가에서는 지금도 저렇게 게이로 사는 데 아무 지장 없다.
그런데도 저 사람들이 저렇게 합법화에 뭐에 난리를 치는 이유는 단순히 '금지되지 않는' 수준이 아니라 권리를 보장받기 위해서이다.

그 정도까지 간다면 나는 이를 도저히 용납할 수 없다.
자기가 본성에 어긋나는 흉한 짓을 해서 병에 걸려 놓고는 그걸 전부 국민 세금으로 치료받는다면, 그건 음주운전 하다가 교통사고 낸 걸 아무 처벌도 없이 단순 실수 교통사고와 똑같이 보험으로 보상해 주는 것과 다를 게 무엇인가? 결국 그렇게 해서 증가한 보험료 부담은 고스란히 다른 모든 선량한 운전자들에게 돌아온다.

멀쩡한 국어사전의 '결혼' 뜻풀이도 뜯어고칠려고 하는 거 같던데 그것도 “난 절대 반댈세.” -_-;;;; '남자'와 '여자'이던 것을 '배우자'와 '파트너' 이 따위로 바꾸는 것 말이다.
이 세상을 악의 구렁텅이로 몰아넣으려는 세력들은 그런 인권 좋아하는 진보적인 성향을 아주 교묘하게 잘 이용해 먹을 줄 안다. 종북· 용공 사상 쪽도 그렇고 말이다. 내가 그래서 그런 성향을 매우 싫어하는 것이다.

이렇듯, 동성애는 해롭지 않고 중립적이며 '취존'의 영역에 들어올 수 있는 그런 성향이 절대로 아니다. 이성애의 범주 안에 들기는 하는 죄악하고는 '레베루'가 다르다. 이 글이 나의 종교색이 전혀 가미되지 않았다고 볼 수는 없겠지만, 굳이 성경 같은 걸 배제하고 보더라도 동성애는 망국병이고 절대로 합법화되어서는 안 된다.
게이 커밍아웃을 일베충-_- 커밍아웃보다 더 부끄러움 없이 떳떳하게 할 수 있다는 건.. 아무리 생각해도 제정신 정상인 분위기는 아니다. 그래서 내가 구태여 이런 글까지 올리게 됐다.

사족을 덧붙이자면.. 그러고 보니 성경 역본도 NIV는 고린도전서에서 게이들을 전부 까는 내용을.. homosexual offender이라고 바꿔 놓기도 했다. 게이 중에서도 offender라는 일부만이 잘못된다는 뉘앙스가 들어가게 한 것이다. 변명과 합리화는 늘 이런 식이다. 이에 대한 자세한 사항은 본인이 옛날에 쓴 <음란한 성경은 가라> 글을 참고하시라.

Posted by 사무엘

2014/09/25 08:35 2014/09/25 08:35
,
Response
No Trackback , 10 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1011

미국의 지질학자 클레어 패터슨 (1922-1995).
굉장히 유명한 업적을 둘 남긴 것치고는 대중적으로 굉장히 덜 알려진 사람이다. 단, 과학사 내지 과학과 사회 윤리 이런 쪽에 관심이 있는 분이라면 이미 이름을 들어 보셨을 것이다. 그는,

(1) 방사성 원소 측정법을 이용해서 지구의 나이가 45.n억 년임을 당시로서는 획기적인 정확도로 규명하였다. 이 연도는 오늘날까지 중등학교 과학 시간에도 가르쳐지고 있으며, 그로부터 수십 년이 흐른 지금까지도 이보다 더 정확한 값은 나오지 않았다. 쉽게 말해 이 분야에 끝판왕 급의 업적을 남겼다.

(2) 그리고, 자동차 유연휘발유에 첨가되는 테트라에틸납 성분이 대기 중의 납 농도를 증가시켜 사람의 건강을 치명적으로 해친다는 것을 규명하였으며, 전세계적으로 유연휘발유를 퇴출시키는 데 큰 공헌을 했다.

young earth creationism을 주장하는 진영(지구의 나이가 6천 년..!)에서는 별로 좋아하지 않을 연구를 하던 중에 지구와 인류를 구한 업적을 이뤘다는 게 참 특이하다.

조금이라도 오차가 있어서는 안 되는 실험 결과가 자꾸 어긋나는 게 이상해서 조사를 해 보니..
“공기 중의 미세한 납 성분이 실험 진행을 방해하고 있다 → 이거 아무래도 자동차 배기가스 때문인 거 같다 → 이건 사람 건강에도 치명적이다” 순의 발견까지 하게 된 것이다.

물론 그의 행적은 유연휘발유를 제조· 판매하던 당대의 업계 종사자들로부터는 미움도 많이 받았다. 당연히 “저건 일반적인 빈도를 벗어나지 않는 산업재해일 뿐이며 딱히 유연휘발유가 해로워서 그런 건 아니다” 식으로 실드를 치고 치부를 은폐하려 노력했을 것이다.

우리나라의 경우 이런 국제 추세에 맞춰 1987년 7월부터 무연 휘발유가 첫 도입되었으며, 1993년 1월부터는 유연 휘발유의 유통이 전면 금지되었다. 1987년 7월이면 민주화 항쟁에 새마을호 전후동력형 디젤 동차 도입 같은 굵직한 사건이 있었는데 바로 그 시기에 무연 휘발유까지 등장한 거구나!

그래서 그 과도기에는 주유소에 유연 휘발유/무연 휘발유 구분이 따로 있었고, 새로 생산된 차들은 반드시 무연 휘발유만 넣어야 한다는 안내문 스티커가 붙곤 했다. 본인은 그 시절을 기억하고 있다.

다시 패터슨 아저씨 이야기로 돌아오면,
지질학에서는 “지금으로부터 대략 6500만 년 전에 공룡이 멸종했다” 같은 식으로 맨날 'n년 전'이라는 말을 쓴다.
그때 '전'의 기준이 되는 지질학적 기준 시기는 “1950년 1월 1일”이라고 학계에서 정식으로 정했다. 방사선 원소 측정법이 정착하고 지구의 나이가 저런 식으로 규명된 때가 1950년대이기도 해서 말이다.

영어로는 before present를 줄여서 65 million years BP 이런 식으로 쓰는데, 이는 1950년으로부터 6500만 년 전이라는 뜻이다. 저 때가 컴퓨터의 유닉스 연대기의 기준인 1970년만큼이나 나름 학문적인 의미가 큰 해인 셈이다.

난 예전에도 글로 썼듯이 지구와 우주의 나이는 장구히 길고, 인류와 현존하는 생명체들의 내력만 6천여 년 남짓이라고 믿는다. 간극 하나만 설정하면 과학 얘기와 문자적인 6일 창조 성경 교리가 싹 깔끔하게 풀린다. 이건 어거지가 아니라 성경 자체가 교리적으로 그런 간극을 지지하고 있다. 6일 창조가 창조의 전부가 결코 아니기 때문이다.

과학 쪽으로든 성경 쪽으로든 젊은 우주/지구를 믿지 않는 진영에서는 창조 과학회를 굉장히 싫어하는 경향이 있다. 전자야 두 말할 나위도 없이 과학적인 연구 방법론도 모르는 사이비 유사과학이라고 까고, 후자 진영은 성경 말씀을 어줍잖은 과학으로 풀어서 교만한 짓거리를 한다고 깐다.

본인은 내 견해와 다르다고 해서 창조 과학회를 필요 이상으로 싫어하거나 매도하지는 않는다. 6천여 년 전에 6일 만에 모든 게 끝났다는 식으로 믿으면 뒤끝 없고 뭔가 기독교스럽고 깔끔해 보이긴 한다. 아담이 마치 성인 형태로 곧바로 창조되었듯이, 지구와 우주도 겉보기로만 오래 된 듯이 보이는 것일 뿐이라고 합리화를 해 버리면 뭐 답이 없다. 더 논쟁을 할 수가 없다.

단지 본인은 지구와 우주는 아담과 같은 부류는 아니라고 믿는다. 수많은 화석과 지층이 노아의 홍수만으로는 도저히 생겨날 수 없고, 지구 지형과 각종 천체가 수억~수십억 년이라는 장구한 기간 동안 생성되고 소멸된 증거가 명백히 존재하는데 하나님이 다른 것도 아니고 그걸 왜 훼이크를 칠 필요가 있는 걸까?

그런 직감에 근거하여 본인은 과학과 신앙의 관점에서 가장 합리적이라고 여겨지는 걸 믿는다. 가령, 오래 전에 멸종하여 화석이 된 고생대 실러캔스는 옛 세상에서 있었던 놈이고, 오늘날 발견된 실러캔스들은 6일 창조 때 이미 있던 그 종류대로(after his kind) 다시 만들어진 놈이라는 식이다. 단지 인류는 아담이 최초이며, 소위 유인원들은 아예 원숭이이거나 아니면 실제로는 인간도 원숭이도 아닌 다른 생물인 것이다.

끝으로 여담이지만, 클레어 패터슨은 이름만 보고는 여자로 오인받기도 할 정도였다고 한다. 여배우 클레어 데인즈의 철자하고는 글자 하나 차이이다. Clair / Claire 옛날 영화 <로미오와 줄리엣>이 문득 떠오르는구나!

Posted by 사무엘

2014/09/22 19:37 2014/09/22 19:37
,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1010

예전에 에디트 컨트롤에 대해서 글을 한번 쓴 적이 있었는데 그것들 말고도 또 재미있는 이야깃거리가 많아서 글을 추가로 올리게 됐다.

1.
Windows의 에디트 컨트롤에는 ES_AUTOHSCROLL, ES_AUTOVSCROLL이라는 옵션이 있어서 이 옵션이 없으면 에디트 컨트롤은 가로나 세로로 스크롤이 되지 않는다. 그리고 스크롤만 안 되는 게 아니라 지금 화면 영역을 벗어나는 크기로는 텍스트가 입력 자체가 전혀 되지 않게 된다. 가령, 가변폭 글꼴을 쓴다면 W는 몇 개 입력 못 하지만 i는 꽤 많이 집어넣을 수 있다.

차라리 W든 i든 글자 수 자체에 대한 제약을 거는 거라면 모를까, 저런 제약 기능이 실생활에서 쓸 일이 있는지는 본인은 좀 회의적이다. 한 줄짜리 에디트 컨트롤이 메모리 상의 글자 수도 아니고 픽셀 길이가 초과했는데 스크롤이 안 되는 경우는 거의 찾을 수 없기 때문이다. (물론, 글자 수에 제약을 거는 방법은 EM_SETLIMITTEXT라고 방법이 따로 있긴 하다)

2.
에디트 컨트롤은 잘 알다시피 자체적으로 Ctrl+C, X, V 글쇠를 처리하여 텍스트에 대한 Copy/Cut/Paste 기능을 제공한다. 그런데 운영체제나 프로그램에 따라서는 "텍스트 전체 선택"을 의미하는 Ctrl+A도 지원되는 것 같기도 하고 안 되는 것 같기도 하다. 도대체 어찌 된 일일까?

실상은 이러하다. 내가 여러 조건을 달리하여 실험을 해 보니, 공용 컨트롤 6.0이 제공하는 새로운 에디트 컨트롤만이 single-line 방식에 한해서 Ctrl+A도 자체 처리한다. 나머지 일반 에디트나 multi-line 에디트는 아마 호환성 차원에서 이를 지원하지 않는다.

물론, 응용 프로그램이 Ctrl+A를 액셀러레이터에다 등록해서 자체적으로 에디트 컨트롤에다가 EM_SETSEL(0, -1)을 날려 준다면 어디서나 Ctrl+A가 동작하게 된다. 컨트롤이 아니라 그 컨트롤을 사용하는 응용 프로그램이 직접 Ctrl+A를 구현한 대표적인 예는 바로 메모장이다.

3.
에디트 컨트롤은 자신이 키보드 포커스를 받으면 텍스트 전체를 선택해 놓는다. 사용자가 기존 텍스트를 완전히 무시하고 입력을 새로 시작할지, 아니면 기존 입력을 그대로 유지하거나 살짝만 고칠지를 선택 가능하게 하자는 차원에서이다.
그런데 대화상자에서 굳이 tab 키로 포커스를 바꿨을 때뿐만이 아니라 Alt+? 액셀러레이터를 눌렀을 때도 이 동작이 일어나며, 심지어 지금 포커스를 받고 있는 동일한 컨트롤을 Alt+?로 다시 선택했을 때도 동일한 동작이 일어난다. 이것은 WM_SETFOCUS나 WM_KILLFOCUS하고는 관계가 없는 동작인데 어떻게 이런 일이 가능할까?

정답은 에디트 컨트롤이 WM_GETDLGCODE 메시지에 대해서 DLGC_HASSETSEL 비트 플래그를 되돌리기 때문이다.
대화상자는 자기 밑에 있는 컨트롤들에 대해서 이런 세부적인 메시지를 보내어 정보를 파악하는데, 저 플래그가 있는 컨트롤은 문자열 입력란으로 간주하여 액셀러레이터 키를 받았을 때도 EM_SETSEL 메시지를 보내 준다. 저 플래그만 쓰면, 운영체제의 표준 에디트 컨트롤이 아니어도 똑같은 동작을 하는 컨트롤을 얼마든지 만들 수 있다. <날개셋> 한글 입력기의 자체 에디트 컨트롤도 당연히 이 방식을 따랐다.

Posted by 사무엘

2014/09/20 08:38 2014/09/20 08:38
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1009

정치범 수용소의 참상 같은 것보다는 덜 심각한 분위기로 비교적 부담 없이 볼 수 있는 자료들이다.

1. KBS 박 진희 북한 전문 기자

작년 말에 북한에서 장 성택 노동당 행정부장이 권좌에서 쫓겨나고 숙청당하던 당시에, 아주 이색적인 기자가 TV 전파를 타서 눈길을 끌었다.

박 진희 기자는 북한에서 태어나고 자랐지만 훗날 탈북하고, 일본을 거쳐서 2008년에 우리나라에 들어왔다고 한다. 빡세게 교정 훈련을 받았다고는 하지만 여전히 구수한 평양 사투리가 아주 신기하며 인상적이다.
정치범 수용소 출신인 강 철환, 그리고 김일성 대학 출신인 주 성하 씨는 신문 기자인 반면 저 사람은 방송 기자이다. 게다가 여성. 이런 경우는 최초이다.

이 사람을 개인적으로 인터뷰한 기사도 있으니 일독을 권한다.

2. 김 정일 사망 발표

그 당시 TV에서 한동안 모습을 안 비추는 것 같던 리 춘히 아나운서가 검은 상복을 입고 완전 슬픈 표정으로 나타났다.
“위대한 령도자 뽀그리우스 동지께서 2011년 12월 17일 8시 30분에 현지지도의 길에서 급병으로 서거하셨다는 것을 가장 비통한 심정으로 알린다. ㅠ.ㅠ”

17년 전에 김 일성이 죽었을 때도 보도 스타일이 저랬는가 궁금하다.... 가 아니라 당연히 그때도 온갖 미사여구로 혹부리우스의 죽음을 미화하고 애도하고 난리가 났었다.

3. 북한 관광을 온 외국인

굉장히 흥미로운 자료이다. 저 외국인들은 북한을 방문한 건 둘째치고라도 어떻게 이 정도 퀄리티의 영상을 녹화해 갈 수 있었는지 궁금하다. 아마 몰래 북한 정부에다 달러를 엄청 많이 줬지 싶다.

도착하자마자 북한 출신의 통역 가이드가 붙는다. 외국인이 North Korea라고 말하자 가이드는 곧바로 DPRK라고 표현을 교정한다. 아시다시피 북한에서는 자기 나라를 가리킬 때 '북'과 '한'이라는 형태소를 모두 싫어하기 때문이다.
쟤들은 김 일성 동상 앞에 헌화와 참배-_-를 한 뒤 전쟁 박물관과 심지어 판문점까지 관광을 한다. (2011년이라 아직 김 정일 동상은 없던 시절.) 북한의 위치에서 휴전선 이남의 태극기를 바라보는 장면은 마치 달에서 지구를 보는 것만큼이나 굉장히 흥미롭다. 국내 매체에서는 좀체 볼 수 없는 시점이니 말이다.

4. 3차 핵실험 보도

“조선 중앙 통신사 보도! 제 3차 지하 핵시험을 성공적으로 진행!”
저 봐라.. 핵실험 한번 했다고 앵커는 펄럭이는 인공기를 배경으로 눈 부릅뜨고 목에 힘 주고 얼마나 의기양양하게 포고를 하는가? 병맛스러워 보이기도 하지만 한편으로는, 북한 용어를 빌리자면 참 '기백 넘치는'(?) 말투가 아닐 수 없다.
실제로 저 뉴스 보도 중에도 “우주를 정복한 그 정신 그 기백으로”라는 표현이 있다.

저런 북한 특유의 호전적인 웅변· 선동 말투는 한반도의 공산주의자들이 진작부터 개발해서 써먹어 왔지 싶다. 북한은 순수한 의미의 공산주의 국가는 아니지만, 공산주의자들이 사용한 온갖 추악한 거짓 선동 전술은 여전히 그대로 활용하고 있는 건 변함없기 때문이다.

Posted by 사무엘

2014/09/18 08:27 2014/09/18 08:27
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1008

1. 잡설: 개발 후기

늘 느끼는 거지만 코딩 작업은 머리를 짜내고 멘탈을 갈아넣을수록, 그 투입한 input에 비례해서 output은 늘 좋게 나온다.
이런 식의 개발 작업 살생부를 만들어 놓고, list에서 체크 표시가 하나씩 늘어 가는 게 내 인생의 기쁨이었다. 그럼 내가 마치 무슨 암살자가 된 듯한 느낌이랄까. 해치운 아이템들은 체크 표시를 하고 목록에서 지운다.

사용자 삽입 이미지

이제 자꾸 살생부에 살생 대상 아이템이 추가되지는 않았으면 좋겠다. 나도 이제 다른 연구도 하고 연애도 하고 결혼도 좀 해야지? ㄲㄲ

테트리스에는 수직 작대기가 있고 퀘이크 3 Arena에는 레일건이 있으며, 카트라이더에는 니트로 부스터와 드리프트가 있다.
그렇다면 프로그래밍에서 그런 카타르시스와 중독성을 선사하는 요소가 무엇일까? 바로, 공통된 코드 패턴을 한 클래스나 함수로 뽑아내고, 여러 클래스들 중에서도 공통된 요소를 템플릿이나 기반 클래스로 뽑아낼 때가 아닐까 싶다.
같은 기능을 더 적은 시간과 메모리로 수행하는 방법을 찾아내는 것도 좋긴 하지만, 본인은 그런 성능 최적화보다도 복잡함에서 질서를 찾아낼 때가 더 즐겁다. 프로그래밍이라는 건 정말로 극도의 복잡도를 제어하는 지적 노동이기 때문이다.

예전에도 했던 말이 또 반복되는 듯하지만, 한글 입력 패러다임의 관점에서 봤을 때 세벌식은 한글 본연의 성능을 올리고 최적화하는 데 적합하다. 그 반면 두벌식은 직관적이지 못하기 때문에 자동화 처리를 위한 프로그래밍의 관점에서 도전적인 과제가 많다.
두벌식에서는 세벌식처럼 초성 글쇠는 반드시 초성으로, 종성 글쇠는 반드시 종성으로 일대일, 필요충분관계로 대응하는 게 아니다. 문맥에 따라서 종성 글쇠가 초성 역할을 할 수 있고, 공유 옵션을 사용하면 초성의 결합 규칙이 종성을 조합하는 데 쓰일 수 있다.

이런 요소들 하나하나가 입력 순서 재연 알고리즘이나 각종 특수글쇠 조작을 꽤 복잡하게 만든다.
현재 한글 입력 스택에서 "초성만 지워라, 종성만 남겨라" 같은 명령을 수행하는데 세벌식은 초중종 직관적으로 대응해서 테이블이 3개만 있으면 되는 게, 두벌식은 저런 추가적인 상황을 고려하느라 4개가 되고 여러 예외 처리가 또 추가된다. 그래도 두벌식도 초성부용종성 원리에 따라 엄연히 한글을 활용하는 방식 중 하나이고, 속도와 능률보다는 글쇠 수가 더 중요한 환경에서는 의미가 있으니, 이 역시 단군의 후손들이 보유한 지적 재산이다. 단지 세벌식을 적용할 필요가 없는 곳에서 2순위로 적용되어야 할 방식일 뿐이다.

이번 7.5 이후로도 후속 개발 작업은 또 지체없이 계속된다. 최소한 내년 초까지 거의 7.8~8.0 정도에 도달할 때까지는.
난 지금까지 남들 안 하는 짓만 골라서 하면서 살아 왔으며 이것을 가능하게 해 주는 것이 '자유'라고 굳게 믿는 사람이다. 나는 자유를 극도로 사랑한다. 내가 정치적으로 북한에 대해 매우 민감한 것도 이 때문이다. 다른 사람들은 어느 환경에서나 머리 잘 굴려서 알아서 적응 잘 하고 요직을 잘 찾아갈지 모르겠지만, 난 자유가 없는 곳에서는 1분 1초도 못 견딘다. “자유가 아니면 죽음을 달라”라는 말을 적극 이해한다.

2. 공지: 늘 최신 버전을 사용할 것을 권장

내 한글 입력기는 자동 업데이트 기능이 없다 보니..
내게 메일로 버그나 오동작 문의를 하는 사용자 중엔 나로서는 상상도 못 할 까마득한 구버전을 사용하고 있는 경우가 종종 있었다.
그 문제는 이미 옛날 옛적에 해결되어 있기 때문에 그냥 최신 버전 업데이트만 해도 저절로 없어지는 경우가 90% 이상까지는 아니지만 그래도 과반은 됐다.

지난 여름엔 무려 4년 가까이 전에 만들어진 골동품인 5.8 버전을 쓰시던 분을 7.4로, 6.x도 건너뛰고 가히 시간 워프를 시켜 드렸다.

나도 강제 자동 업데이트 같은 걸 무진장 귀찮아하는 타입이고, 구버전의 이미 있는 기능만을 만족하고 잘 쓰고 있는 사용자에게 새 버전을 강요할 생각은 전혀 없다.
하지만 구버전에서 명백하게 불만족스러운 문제가 있다면.. 그 경우라면 최신 버전을 살펴보려는 노력을 사용자가 먼저 해야 하지 않겠는가? ㅎㅎ

<날개셋> 한글 입력기는 버전이 올라가면서 뭐 "종성 두벌식", 초종 공유 낱자 결합 규칙, 사용자 정의 후보 데이터, 특수 도깨비불 알고리즘 등등
헤비 유저들만 사용하는 안드로메다급의 복잡한 고급 기능만 추가되는 게 아니라.. 당장 사용자에게 와닿는 외부 모듈의 안정성 같은 것도 꾸준히 눈에 띌 정도로 개선되고 있다.

그렇기 때문에 굳이 모든 기능을 사용하지 않는 사용자라도 어지간해서는 반드시 최신 버전을 써야만 굳이 겪을 필요가 없는 버그 때문에 골치 아파할 일이 줄어든다.
그런데.. IME는 간단히 EXE 하나만 종료한다고 바로 구동을 중지하고 쉽게 업데이트가 가능한 물건이 아니며, 여러 모로 기술적으로 번거로운 요소가 있어서.. 내 프로그램은 부득이 자동 업데이트 같은 건 제공하지 않고 있다. 사용자가 스스로 내 홈페이지를 찾아와서 새 버전을 설치해야 한다.

3. 잡설: 날개셋 한글 입력기와 관련된 팩트들

이 프로그램의 연구 개발과 관련된 활동은 개발자의 대학교 학· 석사 시절에 일부 학점과 졸업 논문을 책임졌다. 그리고 정보 올림피아드를 포함한 소프트웨어 공모전 입상은 덤.

2014년 8월 현재 작업 중인 프로그램의 전체 코드는 6만 7천 줄 정도이지만, 개발자의 특이한 코딩 스타일을 감안했을 때 실제로는 10만 줄을 훨씬 넘는 분량일 것이라 추측되고 있다. (한 줄에 여러 statement를 100칼럼씩 꼭꼭 채워 집어넣기)

이 프로그램이 취급하는 모든 숫자들은 정수이다. 부동소수점 연산은 전혀 존재하지 않는다.

이 프로그램을 구성하는 모든 기계어 코드들은 100% 1인 자작이다. 내부에 타인의 작업물이나 오픈소스 프로젝트 같은 걸 인용한 것은 전혀 없다. 수식 해석, XML 파싱 등등도 전부 자체 제작이다.

이 프로그램은 웹브라우저조차 없는 Windows 95 / NT4 (물론 32비트 에디션 기준) 초창기 판에서도 바로 실행과 사용이 가능할 정도로 특수하게 빌드되었으며 API 최적화가 정밀하게 돼 있다.
한글이 굳이 최신판 컴퓨터과 OS에서야 활용 가능할 정도로 무겁고 복잡한 문자가 아니기 때문에, 이를 활용하는 프로그램도 최대한 가볍게 만들어졌다. 특히 편집기는 마치 기계식 타자기를 컴퓨터로 옮겨 놓은 듯한 아주 작고 가벼운 프로그램이 컨셉이다.

그러면서도 64비트 Windows 7/8이 제공하는 최신 문자 입력 프로토콜도 완벽하게 지원한다.

이 프로그램의 개발 목표는 한글로 무슨 공허한 마술을 부리거나 세계 정복을 하는 게 아니라, 그냥 지금 한글로 당연히 할 수 있는 모든 기술적 가능성을 열어 놓는 것이다. 그 당연한 일이 지금까지 별로 가능하지 않았기 때문에..;;

이 프로그램은 국내에서는 주로 (1) 세벌식 관련 고급 기능, (2) Shift+Space로 한영 전환, (3) 옛한글 처리 (4) 한글과 여타 외국/특수 문자 병행 입력의 목적으로 사용되나, 외국에서는 오로지 (5) 한글 로마자 입력 방식 때문에 입에서 입으로 소문이 퍼지며 사용되고 있다.

Posted by 사무엘

2014/09/15 08:23 2014/09/15 08:23
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1007

<날개셋> 한글 입력기 7.5

추석 연휴의 끝과 함께 <날개셋> 한글 입력기 새 버전 소식이 기다리고 있다.
7.5. 7.x 중반을 나타내는 좋은 번호이고, 7.4 이후로 기간도 100여 일 남짓 지났으니 시기도 적절하고, 프로그램 역시 그에 걸맞은 충분한 성장을 이뤘다.

단, 이번 버전은 지난 7.4에서 첫 도입된 '고급 입력 스키마' 쪽은 부득이 완전히 아웃 오브 안중이 되었으며 바뀐 것이 거의 없다. 그건 더 후대 버전의 작업으로 우선순위가 밀려났다.
그 대신 7.5에서 집중적으로 한 것은 바로 한글 타자 순서 재연과 연속입력 가능 판단 알고리즘을 처음부터 완전히 다시 만든 것이다. 그리고 두벌식 도깨비불 처리 관련 알고리즘들을 아작을 냈다. 더 구체적으로는,

'일반 두벌식'과 '두벌식 종성' 타입,
그리고 '특수 도깨비불 규칙'과 '초-종 공유 결합 도깨비불 규칙'이
입력, 도깨비불 처리, 역도깨비불 재현, 입력 순서 재계산 기능 등과 연계되었을 때 최대한 일관성 있게 동작하게 했다.
7.4에서 닦은 기초를 바탕으로 앞으로 한 10년은, 어쩌면 영원히 더 고칠 필요가 없을 정도의 퀄리티를 자랑하는 코드가 완성되었다. 이번 여름방학의 최대 성과이고 소득이다. 유용하게 사용하시기 바란다.

1.
예전에는 '두벌식 종성' 날개셋문자를 사용한 "Microsoft 두벌식"을 불러온 뒤,
'틀간 근하 때는' 같은 단어를 "문자열을 글자판 입력으로" 필터로 변환해 보면..
연속 입력이 불가능하다고 글자 사이에 가운뎃점이 잘못 찍히는 문제가 있었다. 이는 오류이다.

그리고 7.4 버전에서는 <날개셋> 고급 입력기가 제공하던 글쇠 치환 규칙의 '음절 강제 분리' 옵션이 없어지고 '한글 로마자 입력기'는 오토마타의 O변수를 통해(두벌/세벌 날개셋문자) 음절 강제 분리 여부를 결정하게 바뀌었다.
그런데 예전의 입력 순서 재계산 알고리즘은 이 O변수를 제대로 감안하지 않았기 때문에 이로 인해 입력 순서를 제대로 못 찾는 문제를 일으켰다.

<날개셋> 한글 입력기에 7.5 이전과 같은 골격으로 한글 입력 순서를 찾는 기능이 처음으로 도입된 건 무려 2.3 버전부터이다. 그리고 연속 입력 가능 여부를 찾는 기능은 3.9에서 추가되었다. 그 뼈대에다가 특수 도깨비불, 초-종 공유 결합 규칙, '두벌식 종성' 날개셋문자 등 새로운 옵션들을 추가로 감안하는 기능이 추가되어 왔으나 로직이 완전하지 못하고 이런 저런 한계가 있었다. 결국, 이런 식의 개선에는 한계를 느끼고 해당 알고리즘을 처음부터 완전히 다시 작성했다.

기회가 되면 옛날 코드에는 무슨 문제가 있어서 저런 오동작을 했는지도 좀 추적하고 싶었으나 차마 그러지는 못했다. 여기는 정말 <날개셋> 한글 입력기의 소스 코드 전체에서 다섯 손가락에 꼽힐 정도로 복잡하고 난해한 부분이다. 이 의문의 해답은 미제로 남게 되었다.

2.
입력 순서 탐색 알고리즘을 다시 만들면서 꽤 중요한 변화가 생겼다.
이 프로그램은 A라는 낱자를 입력하는 규칙을 찾을 때 반드시 A 자체를 조합하는 것부터 생각한 뒤, 거기서 답이 없으면 A에 대응하는 가상 낱자들을 찾게 했다. 그리고 가장 짧은 것부터 찾고, 길이가 같으면 가능한 한 일반 문자열 key를 숫자· 기호나 Shift 윗글쇠보다 더 선호하게 했다.

이것은 몇 가지 중요한 변화를 수반하는데..
지금까지는 이중모음 정석을 강요하는 세벌식의 경우 이중모음용 ㅗ,ㅜ가 실제 ㅗ,ㅜ에 대응하고 홑모음 전용 ㅗ,ㅜ는 해당 낱자에 대응하는 가상 낱자로 표현하는 게 관례였다.
그러나 이제부터는 홑모음 전용 ㅗ,ㅜ가 실제 ㅗ,ㅜ에 대응하고, 이중모음용 ㅗ,ㅜ가 가상 낱자로 역할이 바뀌었다.

이 경우 겹모음을 만드는 낱자 결합 규칙도 ㅗ+ㅏ=ㅘ가 아니라 500+ㅏ=ㅘ와 같은 식으로 다 바뀌어야 하는데 이런 불편을 감수한 이유는... 한글 입력 순서를 찾는 알고리즘이 정확하게 동작하게 하기 위해서이다.
겹모음용 ㅗ,ㅜ뿐만 아니라 홑모음용 ㅗ,ㅜ까지 전부 /, 9키로 연결되는 현상을 방지하기 위해서이다. V,B부터 먼저 살펴본 뒤 이 글쇠로는 겹모음을 만들 수 없을 때 가상 낱자에 대응하는 /,9를 살펴보게 된다.

기본 글자판 설정, 한글 로마자, 복벌식, 신세벌식 등 기존 빠른설정이나 입력 예제들도 다 이런 방식을 반영하도록 바뀌었다. 이건 만만찮은 작업이었다.

3.
<날개셋> 한글 입력기가 제공하는 두벌식 도깨비불 현상은 크게 세 가지 종류가 있다.

  • 그냥 맨 마지막 한 타가 다음 글자로 이동하고 그 직전까지 입력되어 있던 종성(만약 있다면)만 남는 일반 도깨비불
  • 입력 과정과 상관 없이 지정된 규칙대로 종성과 다음 글자 초성을 일괄 결정하고 필요하다면 초성의 일부 입력 순서를 재연하는 특수 도깨비불 (3.9에서 추가)
  • 애초에 종성을 두 뭉치로 나눠서 한쪽 뭉치를 그대로 다음 글자로 넘기는 '초-종 공유 낱자 규칙'에 따른 도깨비불 (6.0에서 추가)

이번 7.5부터는 마지막의 초-종 공유 낱자 결합 규칙에 의해 발생한 도깨비불도 예전의 초성 입력 순서를 그대로 유지하게 되었다.
예를 들어 나랏글 입력 방식을 가져와서 '슬퍼'를 입력한다. 그 '퍼' 상태에서 bksp를 누르면, 지금까지는 초성 ㅍ은 입력 순서가 보존되지 않고 한 타 만에 바로 지워졌지만, 이제는 이것도 ㅍ-ㅂ-ㅁ의 순으로 지워진다.

그리고 이것과 관련하여 더욱 획기적인 변화가 생긴 부분은 bksp 역도깨비불 재현 기능이다.
1.0 이래로 지금까지는, bksp 조작으로 인해 현재 두벌식 타입의 자음이 "한 타밖에 안 남았고" 그게 앞 글자의 종성으로 결합이 가능하면 그걸 자동으로 앞 글자에다 붙이는 방식으로 동작했다.

그러나 이제는 굳이 한 타 이상이더라도 이 자음 전체가 앞 글자와 결합 가능하면 그걸 한꺼번에 앞 글자에다 붙이게 했다. 그래서 나랏글 기준으로 '을' 뒤에서 '파'를 입력하고 있다가 ㅏ를 지우면 굳이 ㅁ까지 안 가더라도 ㅍ이 곧바로 붙어서 '을'이 '읊'으로 바뀐다. 그리고 그 상태에서 또 bksp를 누르면 바로 '을'이 아니라 ㅂ과 ㅁ을 거치게 된다. ㅍ을 조합하는 전과정이 '을' 이후로 붙었기 때문이다.

단, 아무 상황에서나 이렇게 한꺼번에 붙는 게 아니며 여기에는 중요한 단서가 있다. 그리고 이게 진짜로 중요한 점이다.

첫째, 추가로 붙음으로써 예전 낱자로의 순환이 발생하지 않아야 한다.
천지인 입력 방식은 같은 글쇠로 ㄴ과 ㄹ이 순환하는데, 예전에는 '길나' 같은 단어를 입력하고 있다가 '나'의 ㅏ를 지우면 ㄴ이 앞의 받침 ㄹ과 바로 붙어서 '길'이 '긴'으로 바뀌곤 했다.
이것은 일반적으로 바람직한 동작이 아니었을 것이다. 이 '긴'은 ㄴ→ㄹ에서 다시 ㄴ으로 되돌아온 것으로 여겨지기 때문에, 이 상태에서 bksp를 누르면 ㄹ이 복원되는 게 아니라 ㄴ이 완전히 없어지기 때문이다. 7.5부터는 그렇게 예전 낱자로 순환이 발생하는 상황에서는 역도깨비불이 발생하지 않는다.

둘째, 역도깨비불이 발생한 상태에서 다시 모음을 입력했을 때, 역도깨비불 이전 상태로 복원이 가능해야 한다. 두벌식 옛한글 입력 방식에서 받침 ㄹ 다음에 초성 ㄲ으로 시작하는 글자를 입력했다가 bksp를 누르면.. 이들은 받침 ㄹㄲ으로 한꺼번에 넘어간다. 하지만 초성 ㄲ을 ㄱ+ㄱ으로 입력했을 때는 그렇게 넘어가지 않으며, ㄱ이 하나만 남았을 때만 받침 ㄺ으로 넘어간다.
왜냐하면 ㄹㄲ 다음에 모음을 입력하면 다음 글자의 초성은 마지막 한 타만 돌아와서 ㄱ이 되지, 원래대로 ㄲ이 되지느 않기 때문이다.

이런 경우까지 일일이 다 고려해서 프로그램의 두벌식 처리 방식이 크게 강력해졌다. 두벌식 옛한글이든, 천지인이든 결국은 다들 연속 입력이 안 되는 경우라는 공통점이 있다. 다중타를 주고받는 게 가능해졌는데 원래 형태대로 복원이 가능할 때에만 한해서 그렇게 해 준다고 생각하면 정확하다.

4.
그 외에,
(1) 한글 입력 중에 오토마타는 nonzero 값을 되돌렸지만 낱자 결합이 불가능하거나 허용 한글 범위에 걸려서 더 조합이 안 되는 경우, <날개셋> 한글 입력기는 A,B,C에 모두 0을 주고 지금 상태에 대한 오토마타 수식을 재계산한다.
하지만 이때에도 원래 A~C에 무슨 값이 들어있었는지를 I~K 변수를 통해 알 수 있게 했다.

이것이 적용된 경우로는 나랏글 오토마타의 2번 상태 "B ? 2 : C ? 3 : J ? -1 : 0"이다.
모음(J)의 경우 더 결합이 되지 않으면 다음 글자로 넘어가지 않고 입력을 무시(-1)한다. ㅣ+ㅣ=ㅣ 같은 결합 규칙을 추가하는 대신 오토마타 차원에서 이런 조치를 취할 수 있다.
물론 나랏글이라는 두벌식 입력 방식에서 2번 상태에 A=B=C=0이 날아오는 경우는 사실상 모음 입력 상황밖에 없기 때문에, 굳이 J 값을 체크 안 하고 바로 -1을 줘도 문제될 건 없지만, 저게 논리적으로 더 엄밀하다.

(2) 또한 단축글쇠 규칙에서 입력기 전환 수식뿐만 아니라 날개셋문자 전달 수식에도 현재의 입력 항목 번호를 나타내는 A 변수가 추가되었다. 그래서 같은 글쇠라도 지금 사용하는 입력 항목이 무엇이냐에 따라서 서로 다른 글쇠를 되돌리는 게 가능해졌다.

(3) 제어판의 '낱자 처리' 페이지에서 '글쇠배열에 있는 낱자만' 옵션의 알고리즘이.. 초-종 공유 낱자 규칙을 반영하여 종성 부분을 더욱 정확하게 표시하게 개선되었다.
또한 지금까지는 유니코드 표준 영역에 없는 낱자도 회색이고 글쇠배열에 없는 낱자도 회색으로 표시되어 색깔이 겹쳤기 때문에, 후자는 주황색이라는 완전히 새로운 색으로 표시되게 동작을 수정했다.

(4) 꽤 오랜 기간부터 존재했던 문제로 추정되지만 정말 늦게 발견되고 수정되었다.
제어판의 '시스템 계층-외부 모듈 관리'에서, 각종 입력기들의 아이콘이 64비트 에디션에서는 제대로 표시되지 않았다. 운영체제가 기본 제공하는 여러 IME들이 동일한 아이콘으로 출력되는 문제가 있었는데 이번에 수정되었다..

(5) 그리고 간단하지만 의외로 유용한 숙원을 하나 이뤘다.
외부 모듈에서 제어판에서 '활성화' 버튼으로 active 글자판(입력 항목)을 바꾼 것이
시스템의 한/영 상태 제약이 없이 언제나 그대로 반영되게 했다.

지금까지는 <날개셋> 제어판에서 입력 항목을 바꾼 것은 운영체제 차원에서 내부적으로 관리하고 있는 해당 프로그램의 한/영 상태를 결코 바꾸지 않았다.
그래서 한글 글자판을 쓰다가 빈 입력 스키마로 변경을 할 수 없었으며, 이미 한글 모드여야만 같은 한글 세벌식, 한글 두벌식 등등끼리 전환이 가능했다.

시스템 일관성 차원에서 유지하고 있던 제약인데, 그 경우 시스템의 상태도 바꾸면서 글자판도 사용자가 설정한 것으로 바꾸게 하니까 훨씬 더 편하다.

(6) 저렇게 입력기 API가 다 뒤집어엎어졌으니 타자연습도 불가피하게 업데이트되었다.
그냥 재빌드만 된 게 아니라 예전에도 말했듯이 새 연습글에서 발견된 수십여 군데의 오타를 바로잡기도 했으니 업데이트가 마냥 아까운 삽질은 아닐 것이다.

Posted by 사무엘

2014/09/12 08:33 2014/09/12 08:33
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1006

지금이야 고등학생이 스마트폰 앱을 뚝딱 만들고 안드로이드나 애플 사의 앱스토어에다 등록하는 소프트웨어 유통망까지 확립된 시대이다. 하지만 지금으로부터 20여 년 전에는 개인이 만든 소위 '공개 소프트웨어'라는 것들이 PC 통신을 통해 배포되곤 했다. 게임, 업무 등 분야도 엄청 많았으며, 이거 하나로 스타 개발자로 유명세 타는 사람 역시 응당 있었다.

개발자들 중엔 대학생이 많았다. 도움말이나 리드미 파일을 보면, PC 통신 ID뿐만 아니라 개발자 자신의 소속 학교, 학과, 학번(연도만)까지 밝히곤 했다. 그들은 지금은 다 어디서 뭘 하고 있을까?
더 어린 중· 고등학생이 그 정도 퀄리티의 도스용 프로그램을 만들기엔 리소스도 부족하고 컴퓨터에 대한 인식이 부족했으며 기계값이 아직 너무 비쌌다. 하물며 Windows용 프로그램을 만들려면 더 좋은 컴퓨터에 더 비싼 개발 환경이 필요했을 테고.

국내 개발자들은 당연히 자기 프로그램의 UI를 한국어로 만들었다.
그리고 세월이 흐르면서 프로그램들은 아무리 간단하고 작은 규모라 해도, 한글 바이오스에 의존하는 텍스트 모드보다는 그래픽 모드에서 '자체 한글' 기반으로 동작하는 경우가 많아졌다.
이때 자연스럽게 필요해지는 것은 그래픽 모드에서 한글을 찍어 주고 때로는 입력까지 처리해 주는 일명 '한글 라이브러리'이다.

옛날에 도스 시절에 자체 한글을 구현한 라이브러리를 만들어서 PC통신으로 뿌리고 잡지에 강좌를 올리고 책도 쓰며 유명세 타던 프로그래머들은 굉장히 날고 기는 수재들이었다.
아예 게임을 만드는 급까지는 아니더라도 나름 VGA 그래픽 하드웨어를 제어하고 여러 래스터 그래픽 알고리즘을 최적화된 어셈블리어 코드로 직접 짜는 건 쉬운 일이 아니었다. 또한 한글 입력 오토마타를 깔끔하게 짜는 것도 아무나 선뜻 할 수 있는 난이도는 아니었다(특히 두벌식은 더 어려움).

그래서 공개 소프트웨어 리드미의 '감사의 글'(acknowledgements)을 보면, “본 프로그램은 이런 한글 라이브러리를 사용하였으며, 우수한 미들웨어를 무료로 공개해 주신 누구누구에게 감사합니다” 같은 문구도 심심찮게 볼 수 있었다.

열악한 환경의 특성상, 그 시절에 한글 라이브러리는 사실상 그래픽 라이브러리나 마찬가지였다. 그리고 더 나아가면 마우스에 간단한 대화상자까지 제공하는 통합 GUI 라이브러리로 발전하곤 했다.

아래아한글의 개발사로 유명한 한글과컴퓨터 사에서는 아무래도 저런 기술의 본좌이었을 테니, 1991년엔가 <컴퓨터 속의 한글>이라는 책을 출간했다. 싸제 한글 라이브러리를 개발한 많은 프로그래머들이 이 책을 참고하여 터를 닦은 뒤, 자기만의 살을 붙이고 자신만의 방식으로 API를 설계해서 물건을 만들었다.

회사가 아닌 개인 자격으로는 PC 통신 시절에 '터보이빨'이라는 닉으로 유명하던 임 인건 씨가 있다. 이분은 그 이름도 유명한 '한라프로'라는 걸출한 물건을 개발하여 상업용으로 판매도 했으며, 아마 서울대 기계공학과 재학 시절에 터보 C 정복이라고 책도 하나 썼다. 본인 역시 아래아한글 1.x로 편집· 조판되어 있던 이 고전을 읽으면서 C언어 기초를 닦았었다.

어디 그 뿐이랴? 지금까지도 인터넷 검색을 하면 굴러다니는 '프로그래머 십계명'이라는 글도 저분 작품이다.
이 정도면 저분은 거의 프로급 소프트웨어 엔지니어 같은데... 프로필을 보면 알 수 있듯 저분은 프로그래밍이 본업이 아니다. 훗날 저분은 같은 학교에서 박사까지 마친 뒤, 업계에서 고급 엔지니어 경력을 쌓다가 지금은 '성진 C&C'라고 금속, 재료 쪽 중소기업의 부사장 자리에 올랐다.

그리고 또 '한라프로'와 더불어 한글 라이브러리의 양대 산맥이던 물건으로는 '허르미'가 있는데, 이걸 개발한 분은 한 우진 씨이다. 국내의 유명 철덕인 한 우진 씨(미래철도 DB)와는 동명이인임.

저분 역시 물건만 만들어 공개하고 끝이 아니라, 한글을 구현하는 기술 디테일을 친절하게 저술까지 해서 이름을 날렸다. 그리고 카이스트 전산학과에서 학, 석, 박을 마치면서 멀티미디어 데이터 압축 알고리즘 쪽 전문가가 되었다. 졸업 후엔 삼성 전자에서 몇 년 근무하다가 나중에는 가천 대학교 교수로 부임했다.

다들 왜 저렇게 똑똑한 거야..;;; ㅜㅜ
후대에 등장한 많은 한글 출력 라이브러리들은 한컴 사의 책이든, 위의 두 제품의 영향을 어떤 형태로든 받았다고 생각하면 된다. 1990년대 중반 이후에 만들어진 것들은 시대의 흐름답게 슈퍼 VGA를 지원하고 32비트 환경(Watcom C/C++ 내지 DJGPP)을 지원하는 식의 발전이 이뤄지기도 했다.

저런 선구자들에 비해, 본인은 도스 시절이 다 끝난 뒤에야 한글 관련 솔루션의 개발에 입문했다. 하드웨어 제어나 그래픽 알고리즘, GUI 따위를 자체 구현할 필요는 전혀 없고 내 입력기는 그렇다고 자동 완성, 상용구, 속기 같은 NLP/lexicon 기반요소가 등장하는 것도 전혀 아닌데 도대체 이 바닥에서 무슨 일을 한 걸까?

그런 것들이 없는 대신에 내 프로그램은 그야말로 한글을 자모 단위로 조작하는 기본 동작에만 초인적인 집중과 최적화를 했으며, 온갖 똘끼 넘치는 아이디어들을 구현하게 됐다.

아울러, 내 프로그램은 다른 건 몰라도 자체 편집기에서 도스 시절의 비트맵 글꼴을 출력하는 루틴만은 여전히 답습하고 있다. 옛날 추억과 한글 프로그래밍 정신 계승(?), 그리고 기술적으로는 한글 조합 자모나 옛한글 표현 같은 여러가지 이유 때문이다.
이건 한글을 가장 가볍고 단순하게, 마치 컴퓨터 속의 기계식 타자기처럼 원시적으로 출력해 주는 시스템이라는 상징적인 의미가 크다.

본인은 지금은 타자기 시절이나 도스 시절과는 다른 차원의 한글 프로그래밍이 여전히 필요하다고 생각하며, 심지어 한국어를 개입시키지 않더라도 한글 자체에 대한 엔지니어링이 연구할 여지가 있다고 생각한다. <날개셋> 한글 입력기의 개발을 다 마치고, 가까운 미래에 박사까지 다 마치고 20년쯤 뒤 먼 미래엔 뭘 하고 있을까? 한글 가지고 더 창의적으로 먹고 살 거리가 없으면 진짜로 철도로 업종 전환할지 알 수 없는 노릇이다. ㅎㅎ

Posted by 사무엘

2014/09/09 08:30 2014/09/09 08:30
, , , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1005

명복을 빕니다?

예수 믿는 사람들은 제사나 고사 같은 것이야 사람의 생사 교리가 걸린 문제이기 때문에 지내지 않는다.
하지만 죽은 조상이 아니라 살아 계신 부모님에게 세배하느라 절하는 건 딱히 문제될 게 없다.
“새해 복 많이 받으세요”는 요삼 2 같은 구절의 의미를 부여하여 좋게 받아들일 수 있으며,
심지어 “메리 크리스마스”도 문화 통념적인 차원에서 크게 잘못된 관행은 아닐 수 있다. 이교도의 비성경적인 절기이긴 하지만 그래도 크리스마스가 대놓고 드루이드교의 인신공양 관습을 희화한 할로윈 같은 급은 아니니까.

하지만 “고인의 명복을 빕니다”는 좀 생각해 봐야 할 것 같다. 쉽지 않은 문제다.

하다못해 불교에는 단순 명복 내지 애도를 넘어, “고인의 극락왕생과 성불을 빕니다”라고 자기네 내세관이 가미된 덕담 문구가 있다. 그러나 기독교는 내세관이 여타 종교와는 상당히 다르다 보니, 그런 말을 선뜻 사용하기엔 좀 무리가 있다.

우리 쪽 사람들은 교리가 교리이다 보니 누가 돌아가시면 “그래도 아버님은 복음을 전해 들었을 때 분명 의식이 살아 있었으며, 예수님 영접하겠느냐고 물었을 때 고개도 끄덕이셨다. 그러니 구원받고 돌아가신 거다” / “아리까리하다” 이런 식으로 얘기가 종종 나온다.

“고인이 꼭 구원받았고 죽어서 하늘로 가셨기를 우리도 진심으로 바랍니다”...가 바로 예수쟁이들이 “고인의 명복을 빕니다”라고 유족을 위로할 때 머릿속으로 실제로 하는 생각인 것이다.
하지만 '명복'이라는 단어 자체는 “죽은 뒤에 저승에서 받는 복”이라는 뜻이다. 이런 비성경적인 기원의 단어를 이용해서 성경적인 뜻이 오해 없이 전달될 수 있을까 싶다. 다른 표현으로 바꾸고 싶어도 딱히 대안이 안 떠오르니 말이다.

기독교는 하늘-지옥 말고 다른 사후 세계를 가르치지 않는다. 윤회, 환생, 귀신, 완전 소멸 같은 게 없으며 산 자와 죽은 자가 교류 가능하다고 말하지 않는다. 이것은 일면 과격하고 매정하게 보일 수 있으나, 다른 한편으로는 아주 뒤끝 없이 깔끔하며 온갖 고인드립 미신들을 원천봉쇄하는 건전한 교리이기도 하다..

이렇게 극단적으로 사후 세계관이 다르기 때문에 기독교는 오로지 예수님의 죽으심을 기념하는 '주의 만찬'만을 시행할 뿐,
무슨 순교한 믿음의 선배들에 대한 묵념이나 추모 같은 건 안 하는 것이다.
솔직히 교회 역사상 순교자가 얼마나 많이 생겼던가? 군대에서 온갖 장병들의 무용담을 기리고 추모하는 논리를 적용하자면, 예배 때도 매번 그런 묵념이라도 해야 하는 게 정상이다.

그러나 그렇게 하지 않는 이유는 기독교는 부활을 믿고, 그 믿음의 선배들이 지금도 다 살아 있으며 죽어서 다시 만나게 될 거라고 믿기 때문이다. 그게 교리적으로 일관성이 있는 조치이다.

Posted by 사무엘

2014/09/07 08:33 2014/09/07 08:33
, , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1004

폐선된 철도, 안성선을 아십니까?

우리나라의 간선 철도인 경부선을 보면 대전에서 호남선이 서쪽으로 분기하고 천안에서 장항선이 서쪽으로 분기한다. 동쪽 내륙 쪽으로 분기하는 건 조치원(충북선)과 김천(경북선) 정도다.
아울러, 과거에는 수원에서 서쪽으로 수인선이 분기하기도 했다.

한 쪽으로만 분기하는 게 아니라 양방향으로 모두 분기하는 역은 흔치 않다. 안산선과 과천선이 만나는 금정 정도가 고작인데, 얘들은 일반열차가 아니라 전철만 다니는 노선이어서 존재감이 좀 덜하다.

먼 옛날에는 수원에 서쪽으로 수인선뿐만 아니라 동쪽 여주 방면으로 수려선도 있어서 동서남북이 모두 철길로 통했었다. 그러나 수려선은 영동 고속도로 개통의 타격으로 인해 이미 1973년에 폐선됐으니 안타까운 일이 아닐 수 없다. 앞으로 수원은 분당선과 수인선이 만남으로써 일반열차+전철이 수직+수평 양방향으로 분기하는 역이 될 예정이긴 하다.

그때는 수원이 그랬던 것처럼 천안도 양방향 분기역이었다는 사실을 아는 사람은 흔치 않다. 서쪽으로 장항선이 있었다면, 동쪽으로는 안성 방면으로 가는 안성선이라는 철도가 있었기 때문이다. 철도와 전혀 인연이 없어 보이는 안성에도 철도라니? 게다가 둘은 사실 1920년대에 매우 비슷한 시기에 착공되어 개통했다. 그 당시 장항선과 안성선의 이름은 각각 충남선, 경기선이었다.

천안에서 안성까지는 30km가 좀 안 되는 거리이고, 평택과 안성은 지리적으로 수원과 용인 정도의 관계와 비슷하다.
일제는 안성선을 연장해서 이천을 지나 여주까지 가게 할 생각이었다. 여주에는 수려선이 있긴 했으나, 안성선은 표준궤이고 수려선은 협궤인 관계로 선로의 직결은 할 수 없었을 것이다.

리즈 시절에 안성선은 안성을 지나 경기도 이천의 장호원읍까지 약 70km 남짓한 거리가 뻗어 있어서 수려선의 길이와도 비슷했다. 여기서 조금만 더 공사를 하면 실제로 여주에 도달할 수 있었다. 그러나 2차 세계 대전 때문에 안성선은 연장은커녕 이미 있던 선로도 뜯겨져 나가서 천안-안성 사이의 짤막한 로컬선으로 전락해 버렸다. 해방 후에도 이 구간은 복원되지 못했다.

대한민국 정부는 1960년대에 안성선을 연장해서 여주가 아니라 원주까지 가게 할 계획을 한때 했었다. 경북선(김천-영주), 충북선(김천-제천)에 이어 경부선과 중앙선을 잇는 제3의 철도를 만든다는 발상이다.

그러나 1970년대에 정부는 철도보다 자동차 도로를 더 육성하면서 이 계획을 백지화해 버렸다. 경부 고속도로가 안성을 경유하는 노선으로 건설되자 안 그래도 짤막하던 안성선은 더욱 잉여로 전락하고 말았다. 1970년대 말에 안성선은 하루에 겨우 n회밖에 열차가 운행하지 않았을 정도였다고 한다. 그나마 표준궤인 덕분에 수려선보다는 더 오래 명맥을 유지한 건지도 모르겠다.

그 뒤 1985년 4월 1일, 수인선이 영업을 중단하기 10년 남짓 전에 안성선은 여객 열차의 운행이 완전히 중단되었다. 그리고 1989년 1월 1일부로 완전히 폐선 처리되어 모든 선로가 사라졌다. 수려선과 수인선의 종말 사이에 이런 사건도 있었다는 걸 알아 두도록 하자.

Posted by 사무엘

2014/09/04 19:21 2014/09/04 19:21
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1003

« Previous : 1 : ... 129 : 130 : 131 : 132 : 133 : 134 : 135 : 136 : 137 : ... 221 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Site Stats

Total hits:
3064939
Today:
250
Yesterday:
3190