이 광근 교수는 프로그램의 정적 분석 분야에서는 아마 우주괴수급의 전문가가 아닌가 여겨지는 분이다.
카이스트 교수로 첫 부임했다가 2003년부터 서울대로 이직했다. 학부 출신 역시 서울대. 1983년에 입학 당시 자연과학 단과대 수석을 차지했으며, 재학 성적 역시 내내 최상위권이던 수재였다.
사진을 보면 알겠지만 이 교수는 상당한 동안이고 학생 시절 모습이 어땠을지가 상상이 된다.

개교 초창기부터 딱부러지게 전산학과가 있었던 카이스트와는 달리, 서울대는 198, 90년대엔 이과에 속한 계산통계학과와 공과에 속한 전자계산기공학과로 컴퓨터 쪽 학과 계열이 므흣하게 나뉘어 있었다. 통합된 컴퓨터공학부라는 게 생긴 것은 1990년대 말 내지 21세기에 들어와서이다. 덧붙이자면, 연세대 역시 컴퓨터과학과라는 이름이 생긴 건 2005년부터이고 그 전엔 정보산업공학이라고 하여 이쪽으로의 분류가 모호했다.
IT 붐과 함께 지금은 당연시되고 있는 학과 이름이 비교적 최근까지도 일류대급에 속하는 대학에도 없었던 게 의외이다. 어쨌든, 이 교수 역시 당시는 서울대 계산통계학과를 졸업했다.

이분의 설파 교리(?)와 연구 분야는 이러하다.
먼저, 기계 중심적이지 않고, 수학적으로 더 엄밀하며 인간의 사고와 논리를 더 자연스럽게 표현할 수 있는 프로그래밍 언어를 지향한다. 사실, C/C++이나 자바는 오늘날의 최신 프로그래밍 언어 이론이나 방법론이 반영된 깨끗한 언어가 아니다.

그래서 이런 전산학 순수주의자(?)는 특별히 람다 대수에 기반한 OCaml이나 최소한 Scheme 같은 함수형 언어를 선호한다. 함수가 마치 일반 상수처럼 코드 중간에서 별다른 작명 없이도 자유롭게 만들어지고 값처럼 다뤄질 수 있다.
이게 좋은 패러다임이기 때문에 심지어 C++도 C++0x에서는 함수 포인터를 대체할 만한 람다 대수 문법이 추가되었으며, 비주얼 스튜디오 2010에서는 F#이라는 함수형 프로그래밍 언어가 새로 도입되었다. 이것은 의미심장한 변화이다.

그리고 이 교수가 연구하는 정적 분석이란, 프로그램을 실제로 실행해 보지 않고, 그 구조를 뜯어보기만 하고서 이 프로그램이 잠재적으로 배열 첨자 초과 오류나 메모리 누설 따위가 발생할 수 있겠다고 진단을 내리는 기술을 말한다. 사실, 좋은 프로그래밍 언어란, 컴파일러만 통과한 프로그램이라면 뻗지 않고 잘 돌아간다는 보장이 되어야 하고 컴파일 시점 때 해당 코드에 존재하는 잠재적인 모든 문제를 찾아낼 수 있어야 한다는 것이 이분의 지론이다.

이게 가능할까? 입력은 키보드나 파일로 들어오고 메모리 할당과 해제가 일어나는 통로가 주어져 있을 때, 복잡한 루프와 배열, 함수 재귀호출, 다중 포인터 로직을 추적하면서(프로그램을 실행하는 게 아니고!) 딱 보고 이 코드는 구조적인 문제가 있다는 걸 찾아내는 게 과연 쉬운 일일까? ㅋㅋ

당연히 머리가 터져나가게 어려운 일일 것이다.
하지만 그게 가능하기만 하다면 프로그램을 일일이 실행해 보는 것보다 훨씬 더 꼼꼼하고 확실한 검증이 행해질 수 있다. 자동차를 실제로 만든 뒤에 충돌시켜서 부숴 보지 않고도 디자인만 딱 보고 운전자의 안전에 어떤 문제가 있겠는지 예측하는 것과 비슷한 맥락이지 않은가.

사실, 프로그램 정적 분석과 뿌리를 공유하는 가장 원초적인 문제는, 바로 전산학에서 다루는 정지 문제(halting problem)이다. 이는 오늘날의 컴퓨터 모델인 튜링 기계에서는 100% 완벽하게 푸는 게 애시당초 불가능하다는 게 증명되어 있다.

이런 맥락에서 프로그램 정적 분석기 또한 100% 완벽하고 정확하게 동작하는 건 불가능하다. 실제로는 문제가 있는 부분이 아닌데 문제가 있다고 진단하는 false alarm도 존재한다. 그 이상 더 정밀하게 동작할 수는 없기 때문.

그래도 이것만으로도 어디냐. C/C++은 성능이 무지막지하게 좋은 대신, dangling pointer, memory leak, buffer overflow 등 이름만 들어도 치를 떨 무시무시한 버그와 보안 문제들에 무방비로 노출되어 있는 chaotic한 언어가 아니던가? 전산학 전공자는 소프트웨어 공학 시간에 익히 배워 알듯, 소프트웨어 개발이란 건 그렇잖아도 작업의 절대적인 양과 질을 측정하기가 어려운 분야이다. 그러니 소스 코드를 정적 분석으로 검증하는 시스템이 없이는 IT 산업계가 제대로 돌아갈 수가 없다. 그렇지 않으면, 어디서 뻑이 날지 모르는 C/C++ 언어로 의료 기기나 우주선 같은 크리티컬 시스템을 만들거나 사용하려면 미리 보험이라도 들어 놔야 하지 않을까 싶다. 진짜로. -_-;;

이런 복잡도를 제어하는 시스템을 연구하는 게 이 광근 교수의 목표이다.
그분은 이걸로 이미 저명한 학술지에 적지 않은 논문을 냈고, 소프트웨어 검증 솔루션을 개발하여 기업체에 납품했다.

사실, 비주얼 스튜디오도 일반인이나 학생이 사용하는 라이선스 말고 제일 비싼 엔터프라이즈급 라이선스 제품을 써 보면, 소스 코드 정적 분석 기능이 들어있다.
기회가 되면 내가 개발한 프로그램도 그런 걸로 한번 좀 분석해 봐야 할 텐데 말이다. 메모리나 GDI 개체, 커널 핸들 등 해제가 필요한 자원들은 전부 클래스 소멸자가 처리하게 바꾸고, 지속적인 개량과 코드 리팩터링을 해 왔기 때문에 그런 초보적인 실수는 이제 없으리라 여겨진다만, 이걸 시스템 차원에서 깔끔하게 입증을 못 하고 있다는 게 문제이긴 하다.

코드를 실행하지 않고 척 들여다보기만 한 뒤 그 코드로부터 문제될 만한 부분을 알아서 찾아 내는 것은 활용 가능성이 굉장히 많다. 마치 공항 검색대가 가방을 열어 보지 않고 사생활 침해 걱정이 없이 비행기에 실을 수 없는 물건을 찾아내는 것처럼 말이다. 이 얼마나 유용한 기술인가?

이 광근 교수는 자기 연구 분야를 차치하고라도, 독특한 스타일의 강의 자료나 여러 글들을 읽어 보면, 가히 공부의 본질을 아는 사람이며 정말로 보통사람이 아니다 싶은 면모가 여럿 느껴진다. 특히 이분은 우리말로 학문하기에 대한 관념이 굉장히 투철한 걸로 잘 알려져 있다.

  • “MIT라는 이름은 본토 사람들이 보기에는 그냥 황해도 과기원 정도로밖에 들리지 않으며, 떼제베도 프랑스 원어민에게 다가오는 의미는 단지 매우 빠른 열차일 뿐이다. 우리만 혼자 폼나 보인다고 외래어 알파벳을 남발하고 있다.”
  • “비록 어떤 개념이나 기술이 외국에서 유래되었다 하더라도, 그 원판을 능가하는 학문적 성과는 언제나 모국어를 통해서만 이뤄져 왔다.

외래어는 싹 다 배격하고 정확· 엄밀함을 희생해서까지 무조건 뭉뚱그려서 순우리말만 쓰자는 국수주의 주장이 절대 아니며, 오히려 완전히 다른 차원에서의 주장이다.
작년에 한창 카이스트가 자살과 영어 강의 때문에 시끄럽던 시절에 이분은 자기의 지론을 다시 한데 정리한 개념글을 하나 교수신문에다 기고했다. 그 후 이 글은 전산 비전공자, 심지어 인문학 하는 사람들에게서도 인용되고 폭풍처럼 칭송받고 있는 중이다.

IT 쪽 최정상에 앉아 있는 사람이 이례적으로 용어 순화와 모국어 강의를 옹호하니 뜻밖이지 않은가? 저 글에 딱히 정치색이 있는 건 물론 전혀 아니지만, 영어 강의, 세계화 이런 것들을 반대하고 이념적으로 진보 성향이 좀 있는 사람들이 더욱 지지를 하는 경향이 있었다. 예를 들어 조 국 교수도 그 글을 완전 극찬한 바 있다.

카이스트 교수 부임 시절에 이 교수는 학과 이름을 전산학과에서 컴퓨터xx학과로 바꾸는 것도 괜히 쓸데없는 일이라고 만류한 적이 있다. ACM, IBM의 M은 완전 구닥다리 용어인 '기계'라는 뜻이지 않냐고 말이다.

그리고 대학 캠퍼스 내부의 건물들을 초행자도 식별하기 쉽게 번호가 좀 있어야 한다고 제안하신 바 있다.
그 제안 때문인지 이분이 서울대로 전근 가신 뒤에 얼마 안 되어(2004~2005년쯤 아마?) 카이스트도 건물들에 N0, E0, S0 같은 식으로 번호가 붙었다.
서울대는 워낙 건물이 많고 내부가 복잡해서 진작부터 그런 게 있다.
연세대는 그런 거 없다. 본교 도입이 시급합니다.

지금이야 카이스트 전산학동이 수 년 전부터 몇 층 더 증축되었지만, 그 당시에 이 광근 교수는 아마 공간 부족으로 인해 전산학동이 아닌 이웃 산업공학동에 연구실이 있었다. 그리고 이런저런 어른들의 사정이 더해져서 그분은 서울대로 전근을 가신 걸로 추정된다. 비슷한 시기에 전산학과의 김 태환 교수도 서울대로 가셨다.

이분의 수업은 진짜 그냥 온갖 기호와 공식, 증명이 즐비한 수학 덕후식이며 빡세다..;;;
그래서 카이스트 재학 시절, 내게는 좀 굴욕적인 기억이 있다.
C++의 사고방식에 완전히 중독되다시피하던 내 머리 구조로는 nML이네 뭐네 하는 “프로그래밍 언어 PL” 수업을 도저히 따라갈 수가 없어서... 전공 필수 과목일 뿐만 아니라 전근을 앞둔 스타 교수의 마지막 수업을 드랍하고 말았다. 2003년 봄 학기의 일이다. 그것도 수강 변경도 아닌 철회 기간에 출혈을 감수하며 드랍.

난 그 당시 <날개셋> 한글 입력기 2.x와 3.0의 개발과 직접적인 관련이 있지 않은 복잡한 추상화 계층이나 뜬구름 잡는 이론에는 머리가 전혀 돌아가지 않던 시절이었다. 동기 부여를 받으면 철도 덕후 수준으로 머리가 미쳐 돌아가지만, 동기 부여가 없는 곳에는 난 담을 확 쌓아 버리고 죽어도 관심 안 보인다. 역시 난 프로그래밍으로 다른 창의적인 작품을 만드는 게 삶의 목적이지, 프로그래밍 패러다임 자체를 바꾸는 일은 내 적성이 아니라는 걸 알 수 있었다. C++보다 더 엄밀하고 깔끔한 프로그래밍 언어로 수학 덕질하는 것보다는, 당장 윈도우 API로 옛한글과 세벌식 모아치기를 구현하는 것에만 온통 관심이 쏠려 있어서..

그래서 나중에 한 태숙 교수의 PL을 다시 들었다. 이분의 PL 수업이 그나마 내가 생각했던 PL 수업에 더 근접한 평범한(?) 것이었고, 들을 만했다.;; 각종 프로그래밍 언어들의 특성과 개념, 값의 평가 시기, LL 파서, LR 파서, garbage collector의 동작 원리 등등.. 참고로 덧붙이자면, 내가 예전 글에서도 소개한 적이 있듯 한 교수 역시 왕년에 1등을 놓친 적이 없었고 대입 학력고사 전국 수석을 차지했던 공부 만렙 괴물이다.;;

현재는 카이스트 전산학과의 류 석영 교수가 과거 이 광근 교수의 제자이며, 그분 뒤를 이어 카이스트 프로그래밍 언어 연구실을 공동 운영하고 있다(한 태숙, 최 광무 교수와 같이).
류 교수의 증언에 따르면 이 교수 연구실은 말도 못 하게 무지막지하게 빡세기 때문에, (그 대신 잘 적응하면 얻는 것도 많겠지);; 어지간한 각오가 돼 있지 않다면 그분 연구실로 대학원 진학을 하는 건 비추라고 한다. =_=;;;
그래도, 좀 까칠한 것만 빼면 교수님은 학자로서 정말 좋은 분이라고.. ㅜㅜ

어쨌든 이 광근 교수. 수업 하나 들은 적도 없이 헤어졌지만, 이런 식으로 내 기억에 남아 있다.
본인이 이분에 대해 수집한 모든 정보들의 출처는 당연히 그분의 공식 홈페이지이므로, 관심 있으신 분은 방문해 보시라.

한국의 마라토너 손 기정과, 영국의 전산학자 앨런 튜링이 동갑내기이고(1912년생), 게다가 전자가 마라톤에서 우승한 연도와 후자가 겨우 학부 시절에 계산 가능한 수에 대해서 가히 레전드 급의 논문을 낸 해 역시 동일(1936년)하다는 사실을 알게 된 것도 이분 글을 통해서이다. 난 역사 인물에서 그런 식으로 비슷한 공통점을 찾아낸 적이 있는 게 이 희승· 손 병도 교수 정도이다.

Posted by 사무엘

2012/02/29 19:12 2012/02/29 19:12
, , , , , ,
Response
No Trackback , 9 Comments
RSS :
http://moogi.new21.org/tc/rss/response/648

Trackback URL : http://moogi.new21.org/tc/trackback/648

Comments List

  1. 주의사신 2012/02/29 20:08 # M/D Reply Permalink

    1. 무척 어려운 연구를 하시는군요. 제 개인적인 지론은 "버그는 사람의 잘못된 습관에서 생긴다"인데, 그 습관까지 어느 정도 고쳐줄 수 있는 연구라니... 대단합니다.


    2. 한글 관련 글 읽어 보았는데, 정말 멋진 글이네요. 읽을 수 없는 고대 문서들... 좋은 것도 많다고 듣기는 했는데... 가끔 나옵니다.(우리 역사에 어떤 수학자가 있었는데, 이러이러한 연구를 했다.) 수능에도 한 번 그 수학자의 연구를 소재로 했던 문제가 나왔던 기억이 납니다.


    3. Programming Language Pragmatics, Dragon Book으로 유명한 Comiler 책. 어렵기로 유명한 책들이 생각나게 하는 글이었습니다.

    1. 사무엘 2012/03/01 07:54 # M/D Permalink

      1, 2 분야 둘 모두를 살펴봐도 가히 엄청난 분이 아닐 수 없습니다. 뼛속까지 교수 타입.

      제가 나중에 들은 한 태숙 교수의 PL 수업 때 사용된 교재가 Programming Language Pragmatics입니다. 지금 카이스트 PL은 교수도, 교재도 또 다른 걸로 바뀌어 있죠.

  2. 주의사신 2012/03/01 09:13 # M/D Reply Permalink

    MIT에서 컴공 공부하러 들어오는 천재들을 울리는 과목의 교재 중에 "Structure and Interpretation of Computer Programs"라는 책이 있습니다. SICP라는 약자로 유명한데, LISP 컴파일러 만드는 것으로 끝난다고 하더군요.

    아직 안 읽어 봤는데, 얼마나 어려운 책이길래 그 친구들이 힘들어할까 하는 생각이 드는 조금 궁금한 생각이 들게 하는 책입니다.

    Scheme과 lambda가 중간에 나오길래 몇 자 추가해서 적어 보았습니다.

    1. 사무엘 2012/03/01 14:18 # M/D Permalink

      아, 그 책도 유명하죠. 카이스트에서 PP(프로그래밍의 이해) 과목에서 쓰고 있는 교재입니다.

  3. 김재주 2012/03/04 19:58 # M/D Reply Permalink

    이른바 함수형 언어들 중에서 가장 메이저라 할만한 언어는 lisp겠죠. 그 다음으로 ML류 언어들이 있을텐데 이 중에 OCaml은 실행 코드 결과물의 속도가 같은 알고리즘을 이용해서 C로 구현한 것과 동등한 수준이라고 알려져 있죠 ㅎㄷㄷ... C언어로 한 구현이 허접하다거나 한 것도 아닌데.. 어떻게 그게 가능한지 참 신기합니다.

    1. 사무엘 2012/03/04 22:54 # M/D Permalink

      보충 설명에 감사합니다.
      괄호로 둘러싸서 연산자를 prefix 형태로 표기하는 문법은 LISP가 원조이며, Scheme 역시 그것의 변종 방언이죠.
      OCaml은 재귀호출 코드를 내부적으로 비재귀 형태로 바꿔서 실행는 등, 최적화가 굉장히 잘 되어 있나 봅니다. (재귀호출을 비재귀로 바꾸는 원론적인 테크닉도 아마 이 광근 교수 PL 수업의 challenging 과제에서 봤던 것 같습니다.)

  4. Lyn 2012/03/05 13:48 # M/D Reply Permalink

    뭘 어떻게하면 저렇게 머리가 좋아지는거야 ㅜ.ㅜ

    OCaml의 성능의 비결은 stack에 의존하지 않는(함수 호출 등) 구현방식 때문이라고 하더군요. Fortran(Matlab 말고) 이 빠른것과 비슷한 이유라 할 수 있겠네요.

    1. 사무엘 2012/03/05 18:03 # M/D Permalink

      저도 저런 데에 머리가 빨리빨리 잘 돌아가는 사람이 참 부럽습니다. ㅜㅜ
      포트란이야, 포인터 없이 단순한 문법 덕분에 오히려 컴파일러 관점에서 복잡도 파악과 병렬화가 더 유리한 면모가 있다고 저 역시 어렴풋이 알고 있습니다.

  5. 김재주 2012/03/10 12:50 # M/D Reply Permalink

    뭐 근데 사실 OCaml도 구현상 속도에 유리한 코딩방식이 어떤 것인지를 알아야만 그 성능을 100% 발휘할 수 있다는 점은 똑같습니다. 실제 기계의 low-level 구현과는 전혀 관계없이 완전히 수학적인 언어로 프로그램을 기술하려는 것이 함수형 언어인데, 현실에서 높은 성능을 끌어내려면 결국은 컴퓨터 내부 구조에 대해서도 잘 알아야만 한다는 점이 함수형 언어들의 딜레마가 아닌가 싶습니다.


    참고로 재귀호출 코드를 비재귀로 바꾸는 테크닉은 웬만한 C나 C++ 구현에도 다 있습니다. 그리고 꼬리재귀라고 하는 테크닉이 있는데, 예를 들어서 다음 두 함수의 하는 일은 똑같지만 컴파일러에 따라서 생성되는 코드가 전혀 다를 수 있습니다.

    int factorial(int n){
    return n > 1 ? factorial(n-1) * n : n;
    }

    int factorial_tail(int n, int ret){
    return n > 1 ? factorial_tail(n - 1, ret * n) : ret; // 비재귀 형태로 변환됨
    }

    다만 후자는 호출시에 ret에는 1을 넣어줘야겠죠.

Leave a comment

델파이 (개발툴)

한 달쯤 전에 비주얼 베이직 리뷰를 쓴데 이어 오늘은 델파이와 해당 계열 RAD 툴의 리뷰를 좀 써 보겠다.
비주얼 베이직뿐만이 아니라 델파이와 C++ 빌더(C++ Builder)는 본인이 지금 같은 골수 비주얼 C++ 유저가 되기 전에, 도스에서 윈도우 프로그래밍으로 넘어가던 과도기 시절에 잠깐 써 본 개발툴이다. 고등학교 시절의 추억이 담겨 있다.

일단 파스칼이라는 언어 자체가 본인이 베이직에서 C/C++로 넘어가기 전에 과도기적으로 잠깐 공부했던 언어이다. 당시 정보 올림피아드 공부용으로 파스칼이 아주 깔끔하고 좋다는 말이 있기도 했고 말이다. 이 언어는 정말로 베이직과 C 사이의 과도기 역할을 하면서 본인의 프로그래밍 패러다임의 전환에 굉장한 도움을 주었다.

도스용 볼랜드 파스칼 역시 상당히 잘 만든 개발툴이었다. 그래서 본인은 이걸로 뭔가 이렇다할 프로그램을 개발해 보지 못한 게 좀 아쉽다. 개발툴의 본좌(?)이던 마이크로소프트와 볼랜드는 둘 모두 도스에서는 16비트의 한계를 벗어나질 못했으니 말이다. 그리고 지금 역시 <날개셋> 한글 입력기처럼 극도의 최적화를 추구해야 하는 프로그램은, 비주얼 C++만치 더 적격인 툴이 없는 것도 어쩔 수 없는 현실이다.

1990년대 초중반에 마이크로소프트가 '비주얼' 브랜드로 새로운 개발툴을 내놓은 것처럼 볼랜드는 오브젝트 파스칼 기반의 완전히 새로운 RAD 툴을 내놓았다. 그것이 바로 델파이. 게다가 1995년에 첫 출시된 1.0은 전무후무하게 16비트 윈도우용이었다.

델파이는 원래 AppBuilder라는 제품명이 붙을 예정이었고 Delphi는 코드명일 뿐이었다. 내 기억이 맞다면 이에 대해서 재미있는 일화가 전해진다.
잘 알다시피 IT계엔 그 이름도 유명한 Oracle이라는 데이터베이스 엔진(DBMS)가 있다. 이거 참 센스 있는 작명인게, DB에다가 SQL을 때려서 쿼리가 수행되는 것을 마치 신탁을 내리는 것에다 비유한 것이다. “수천만 개의 레코드 중에서 요것과 연계하여 이런 조건을 만족하는 놈을 눈앞에 0.1초 안에 대령하라.” 검색 엔진에다 심마니라는 이름을 붙인 것과 비슷한 맥락의 작명이라 하겠다.

그런데 신탁이 내려지는 곳이 어디던가? 신전이다. 그리고 고대 그리스에는 델파이라는 도시에 아폴로 신전이 있었다.
델파이는 DB와 연동하는 업무용 프로그램을 파스칼 언어를 기반으로 빠르고 편리하게 개발해 내라고 만들어진 개발툴이다. 그래서 DB 쿼리라는 신탁이 내려지는 장소에다 빗대어 델파이라는 코드명이 정해졌고, 이게 곧 제품명이 되었다. (뭐, 굳이 DB를 안 쓰더라도 각종 유틸리티나 에디터, 툴을 만드는 용도로도 좋지만 말이다.)

이런 이유로 인해, 델파이는 지금까지도 신전이나 집 비슷한 모양을 한 아이콘을 갖고 있다. 델파이의 C++ 버전이고 델파이보다는 훨씬 덜 유명한 C++ Builder는 집+크레인처럼 생긴 건축 기계 모양 아이콘이다. C++ 빌더는 다른 건 델파이와 비슷한데 역시 C++의 특성상 빌드 속도는 훨씬 더 느리며, RAD 툴의 용도에 맞게 C++ 문법을 자기 식대로 확장한 게 좀 있다. 또한 C++답게 경쟁사의 MFC 라이브러리도 내장하고는 있다.

그런 곳에서는 C++의 위상이 좀 므흣한 게, 닷넷으로 치면 마치 C++ managed extension 같은 존재이다. 닷넷에서는 아예 확실하게 C#을 쓰고 필요한 곳에나 unsafe 코드를 가끔씩 집어넣고 말지, 네이티브 기계어 개발이 아니라면야 C++이 얼마나 메리트가 있겠나 싶다. C/C++을 쓸 정도이면 아예 Win32 API만을 이용한 하드코어 저수준 개발을 하지, 애초에 RAD용으로 만들어진 게 아닌 언어에다가 그 정도로 추상화 계층을 거친 RAD 껍데기를 거추장스럽게 씌울 필요가 있겠나 하는 생각이다.

볼랜드에서는 자기네 RAD 툴에다가도 닷넷 기술을 연동하여 C# Builder 같은 툴을 만들기도 했지만 이건 얼마 못 가 접었다. 다들 비주얼 C#을 쓰지 굳이 볼랜드 툴을 쓰지 않았기 때문. 볼랜드는 그런 자신의 RAD 영역을 더욱 발전시켜서 마치 qt 같은 크로스 플랫폼 개발 프레임워크를 표방하며 리눅스용으로 카일릭스(Kylix)도 내놓고, 지금은 맥 OS X 범용 개발 환경도 내놓았는데, 아이디어는 분명 좋다만 결과는 과연 어떨까 궁금하다. 카일릭스는 수 년 전에 망했고 개발이 중단됐다.

하긴, 말이 나왔으니 말인데 얘들은 개발사의 명칭이나 주체가 여러 번 바뀌었다(개명· 인수 합병). 볼랜드이다가 한때는 Inprise, Codegear를 거쳐 지금은 Embarcadero임.

이런 저런 사정이 많았으나 델파이는 결국 오늘날까지도 그냥 윈도우 플랫폼 한정으로 강세인 것으로 보인다. 나름 네이티브 코드(오옷!)를 가히 C++로는 엄두를 못 낼 전광석화의 속도로 생성하는 RAD 툴이니, 생산성은 확실히 우위이다. 프레임웍에 속하는 코드가 단일 exe에 모조리 static 링크되어 들어가기 때문에, Hello world 급의 프로그램도 Release 빌드의 exe는 1MB 이상은 먹고 들어간다.

비주얼 C++ 2008 이상부터는 MFC를 static link해도 그 정도는 먹고 시작한다. 과거의 6.0 시절에는 MFC의 static link 오버헤드 크기가 200~300KB대였는데, 재미있게도 그 당시의 델파이 2~3도 exe의 기본 크기가 그 정도였으니 옛날이나 지금이나 오버헤드가 서로 비슷하다.

이런 이유로 인해, 델파이로 개발된 프로그램은 실행 파일을 실행 파일 압축기로 압축한 채 배포되는 경우가 종종 있다. 하지만 압축된 실행 파일은 코드 실행 영역이 동적으로 생성되고 고쳐지기 때문에, 동일 EXE가 중복 실행되었을 때 코드 영역이 동일한 물리 메모리를 공유하여 메모리를 절약하는 효과를 못 보지 싶다. 실행 파일 압축기가 집어넣어 준 압축 해제 stub이 그런 걸 똑똑하게 감지하여 처리하지 않는다면 말이다. 뭐, 요즘은 어차피 메모리도 차고 넘치는 시대이긴 하지만...;;

내 기억이 맞다면, C++ Builder는 델파이와는 달리 수 MB짜리 vcl.dll (Visual Component Library) 런타임이 필요한 작은 exe를 생성했었지 싶다. 즉, 정적 링크가 아니라 동적 링크 방식.

그런데 얘들의 프레임웍 라이브러리는 덩치만 큰 게 아니라 윈도우 API를 나름 체계적으로 잘 커버하고 있다. MFC는 윈도우 API에다 아주 최소한의 껍데기만 씌운 것에 가까운 반면, 볼랜드의 라이브러리는 운영체제 API에는 존재하지 않는 여러 추상적인 계층을 더 만들고, 심지어 같은 에디트 컨트롤도 single line (TEdit)과 multi line (TMemo) 버전을 따로 만들었다. MFC는 그냥 CEdit 하나로 끝인데 말이다. 내부 구현이 옵션만 다르게 지정된 동일한 에디트 컨트롤이니까 말이다.

라디오 버튼이나 체크 버튼도 under the hood는 그냥 버튼 컨트롤일 뿐이기 때문에 MFC는 CButton 하나로 끝이다. 그러나 볼랜드의 라이브러리는 응당 TRadioButton과 TCheckBox로 클래스가 따로 나뉘어 있다.
볼랜드의 프레임워크는 DC고 GDI 객체고 나발이고 생각할 것 없이 자기네가 마련한 TCanvas라는 개체를 통해 마음대로 색깔을 바꾸고 픽셀 단위 그래픽 접근이 가능한 반면, MFC에서는 그런 자비를 찾아볼 수 없다. 그런 추상화 계층을 마련하는 오버헤드가 exe의 실행 파일 크기 내지 런타임 DLL로 나타난다고 생각하면 됨.

이런 전통이 사실 볼랜드의 옛 C++ 라이브러리인 OWL (Object Windows Library)부터 어느 정도 전해져 오고 있었다. 델파이가 나오기 전, 볼랜드 C++/파스칼이 윈도우용으로 있던 시절 얘기이다. OWL이 좀 더 객체 지향 철학을 살려서 더 잘 만들어진 라이브러리이긴 했으나, 언제부턴가 IE가 넷스케이프를 누르듯이 MFC가 OWL을 떡실신시켜 버렸다.

세월이 세월이다 보니 델파이도 도움말 레퍼런스는 MS 비주얼 스튜디오의 Document Explorer를 쓰고 있어서 뜻밖이라는 생각이 들었다. 하긴, 옛날 버전은 아예 WinHelp를 쓰고 있었는데, 자기네만의 도움말 시스템을 새로 만드는 건 너무 뻘짓이고 그냥 chm을 쓰기엔 레퍼런스의 분량이 너무 방대한데, 저렇게 하는 게 나은 선택이다.

델파이의 근간 언어인 파스칼은 내부적으로 문자열을 포함하는 방식이 원래 C/C++과는 다르다. 그러나 운영체제의 각종 API들이 오로지 C/C++ 스타일의 null-terminated 문자열만을 취급하기 때문에 델파이 프로그래머도 C/C++ 스타일 문자열이라는 개념을 몰라서는 안 된다. 사실 파스칼과 C/C++은 함수 호출 규약조차도 달라서 과거에는 C/C++에서도 함수 선언할 때 STDCALL뿐만이 아니라 PASCAL이라는 속성이 있을 정도였다.

파스칼에도 포인터가 있긴 하다. 하지만 C/C++만치 배열과 포인터를 아무 구분 없이 남발할 수 있는 건 아니며 쓰임이 제한적이다. a[2]뿐만이 아니라 2[a]까지 가능한 건 가히 C/C++의 변태적인 특성이다만, 파스칼은 등장 초기에는 동적 배열이라는 개념 자체가 아예 없었다고 한다.
타입 선언에서 포인터를 의미하고 실제 수식에서는 포인터가 가리키는 값을 얻어오는 연산자가 C/C++은 *인데 파스칼은 ^이다.
그리고 이미 있는 변수의 주소를 얻어 오는 address-of 연산자는 C/C++은 &이고, 파스칼은 @이다.

델파이로 개발된 프로그램은 윈도우 비스타/7의 Aero 환경에서 창을 최소화해 보면 창이 작업 표시줄 쪽으로 미끄러지듯 fade out이 되지 않고 그냥 혼자 싹 없어지곤 했다. 나타나는 비주얼이 살짝 다르다. 델파이로 빌드된 다른 프로그램들을(특히 구버전) 살펴보면 차이를 알 수 있다.

그랬는데 최신 2011년도 델파이 XE2로 프로그램을 하나 빌드해 보니까 드디어 여타 프로그램처럼 제대로 최소화된다. 개선이 된 듯하다.
델파이가 유니코드와 64비트를 제대로 지원하기 시작한 것도 생각보다 최근이라고 들었다만.. 앞으로 이 툴이 어디까지 발전하고 MS의 비주얼 툴과는 다른 독자적인 지위를 유지할 수 있을지가 지켜보는 건 흥미로운 일일 것이다.

Posted by 사무엘

2012/02/27 19:10 2012/02/27 19:10
, , ,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/647

Trackback URL : http://moogi.new21.org/tc/trackback/647

Comments List

  1. 주의사신 2012/02/27 19:26 # M/D Reply Permalink

    1. 델파이 역시 들어보기는 했지만 안 써 봤습니다.

    2. InnoSetup이 델파이로 만들어져서 파스칼을 써야 설치 프로그램을 만들 수 있게 해 줘서, 올해 내에는 파스칼을 써볼 일이 있지 않을까 생각이 듭니다.

    3. 넷스케이프가 망한 것은 MS한테 대들어서라고 다들 생각하지만, 제일 큰 실수는 넷스케이프 4.0 코드를 다 버리고 새로 브라우저를 만들기 시작했던 것이라고 합니다. 다음 버전인 6.0(5.0은 없습니다!)이 나오기까지 3년이 걸렸고, 그 새 사람들이 다 IE로 몰려갔지요.

    MS의 역사를 조금 보면, 작은 실수는 여럿 있지만, 큰 실수는 거의 안 한 것이, 망하지 않고, 계속 그런 거대한 모습을 계속 유지하게 한 힘이 아닐까 하는 생각을 여러 번 해 보게 됩니다.

    1. 사무엘 2012/02/27 21:59 # M/D Permalink

      오옷, 글이 올라오자마자 거의 즉시 보셨군요. ㅎㅎ

      윈도우 플랫폼에서 네이티브 코드를 생성해 내는 개발툴로 비주얼 C++만 빼면 델파이만치 오늘날까지 자신만의 영역을 확보하고 살아남은 물건은 없을 겁니다. 대단하지요.

      이걸로 패키지 소프트웨어도 만들고 게임도 만듭니다만, 델파이의 진짜 영역은 사무 자동화 및 각종 정보 관리 시스템 소프트웨어의 개발입니다. 불특정 다수보다는 특정 분야에서만 쓰이는 주문형 소프트웨어들 말이죠. 저는 대학원 와서 연구실 내부에서 사용하는 국어사전 공동 작업용 소프트웨어를 봤는데, 이것 역시 델파이로 개발되었습니다.

      끝으로, 말씀하신 대로, 넷스케이프는 전적으로 MS의 독점 행위 때문에만 망한 건 확실히 아닙니다. 자폭을 야기한 삽질을 많이 했죠.

  2. Lyn 2012/02/27 23:15 # M/D Reply Permalink

    런타임 라이브러리 끌고다니는건 Delphi나 C++Builder나 똑같습니다.
    단지 C++Builder 는 VC++처럼 기본 옵션이 동적링크고 Delphi는 기본옵션이 정적 링크일뿐

    근데 웃긴건 stdcall 이 pascal에서 쓰던 방식이라 VC++ 에서 PASCAL 이란 매크로를 stdcall 이랑 같은것으로 지원하는데 막상 델파이는 fastcall 을 기본방식으로 쓰고있는 아이러니 (...)

    1. 사무엘 2012/02/28 11:17 # M/D Permalink

      그렇군요. 델파이에도 동적 링크 옵션이 있긴 하다는 뜻이군요?

      이미 아실지도 모르겠지만, 사실 윈도우라는 놈 자체가 완전 초창기에는 파스칼로 개발된 적이 있습니다. 그래서 그런지 16비트 시절의 실행 파일 바이너리를 보면 import/export 심볼들이 대소문자 구분이 없이 대문자로만 적혀 있고, 심볼 문자열도 null-terminate 대신 글자수+문자열 형태로 기록된 게 있습니다.
      비록 윈도우 API는 곧 C 언어 기반으로 정착했지만, 저런 함수 호출 규약도 초기 파스칼의 잔재가 아닌가 하는 생각이 드네요.

  3. 주의사신 2012/03/01 09:09 # M/D Reply Permalink

    과거 유행했던 영화 중에 행렬(?)이라는 영화가 있었습니다. 거기에 보면, 예언자로 오라클이라는 사람이 나옵니다.

    그 영화를 봤던 한 오라클 개발자는 왜 DB 이름을 사람 이름으로 썼을까 생각을 해 보셨다고 하더군요. 그리고 집에 와서 사전 찾아 보고, 오라클이 그런 뜻이었구나 알게 되었다고 합니다.

    특수한 고유 명사로 생각하고 있었던 것이죠.

Leave a comment

천주교에 대해서

우리말로는 천주교라고 하여 예배당의 이름을 '성당'이라고 부르며, 외국어 표기로는 카톨릭/캐톨릭과 얼추 비슷한데 공식 표기는 가톨릭인 종교가 있다. 심지어 아마 한국 한정으로, '개신교'의 반대 개념으로서 이 종교를 '구교'라고 표기한 게 간혹 통용되기도 한다.

많은 사람들은 이 천주교와 더불어 개신교가 각각 기독교의 subset을 구성한다고 생각한다. 똑같이 신을 팔고 예수 파는데, 둘이 뭐가 다른지 잘 모른다. 그래서 오늘은 천주교에서 가르치는 것이 본인의 기독교 신앙과 무엇이 얼마나 다르며, 나는 그런 통념과는 달리 둘을 왜 동일시할 수 없고 천주교의 교리에 동의하지 않는지에 대해 오랜만에 최대한 이성적이고 차분하게 좀 써 내려가도록 하겠다.

1. 기독교는 구원관과 내세관에 관한 한 매우 극단적이다. 예수님 외에 그 어디에도 구원이 없으며, 인간의 그 어떤 선행으로도 하나님의 절대적인 의의 기준을 충족할 수 없다고 가르친다. 한번 죽으면 이 세상에서의 삶은 완전히 끝이지만, 사람의 혼은 불멸이기 때문에 하늘 아니면 지옥에서 영원히 자기 의식을 갖고 산다고 가르친다.

특히 기독교는 구원의 영원한 보장을 가르친다. 한번 회개하고 믿고 예수님을 영접했다면 그 뒤에 제아무리 잘못하더라도 구원을 잃지 않는다. 내 선행으로 구원을 얻은 게 아니니, 내 악행으로 구원을 잃지도 않는다. 아멘. 이런 대인배적(?) 교리가 있는 다른 종교? 난 못 봤다. 그리고 반대로 제 2의 기회가 없이 영원히 빠져나갈 수 없는 뜨거운 지옥을 가르치는 곳도 흔치 않다. 천주교는 이 둘 중 어느 것에도 해당하지 않는다. 믿음으로 얻는 구원은 종교 개혁의 빌미가 되었을 정도로 천주교의 큰 교리 차이 중 하나이고, 지옥의 경우 천주교는 연옥 교리가 있기 때문이다.

2. 기독교의 '주의 만찬'은 예수님의 고난을 기억하는 의식이다. 이때 같이 먹는 빵과 포도즙은 당연히 그냥 상징일 뿐이다. 그런데 천주교는 이걸 이상하게 배배 틀어서 그 빵과 포도즙 자체가 예수님의 진짜 옥체와 보혈이라고 억지를 부려 왔다. 사제가 라틴어로 주문을 외우면서 평범한 빵과 포도즙을 예수님 자체로 변신시킨다고. 화체설이라고 들어 보셨는지?

이게 도대체 뭔 궤변인가 싶지만, 이거야말로 가히 중세에 무수히 많은 크리스천들의 피를 부른 치명적인 교리이다. 김 성한의 소설 <바비도>에도 잠깐 언급돼 있다. 천주교 하면 떠오르는 상징이라 해도 과언이 아닌 동그란 빵.. 이거 굉장히 사악한 배후에서 시작된 거라 한다.

3. 또한 기독교는 세례를 인정하지 않고 유아 세례는 더욱 거부하는데... 이건 과거의 종교 개혁자들조차도 가장 청산을 못 한 분야에 속하는지라 어지간한 개신교 교파들도 천주교의 관행을 그대로 답습하고 있다. 그래서 내가 더 강하게 말을 못 하겠다.

성경 구절을 편 각종 증명들과 세례의 역사적 폐해 나열은 귀찮으니까 생략하고, 결론만 말하도록 하겠다. 주님께서 명령하신 구원의 증표는 침례이다. 스스로 구원 간증을 하고 믿음을 고백할 수 있을 정도로 성장한 사람이 물에 잠겼다 나오는 침례만이 맞다. 그런데 세상에서는 이거 뭐 침례를 주는 교회만 침례교라고 따로 부를 정도이니 현실은 얼마나 시궁창인가?

4. 마리아는 그냥 신실하고 현숙한 여인이고, 우리와 똑같은 죄인의 피를 물려받았다가 구원받은 평범한 크리스천이었을 뿐이다. 그녀는 특히 예수님 이후에 요셉과의 부부 관계를 통해 여러 자녀들을 낳기도 한 진짜 평범한 어머니이다. 기독교는 마리아에게 기도를 한다거나 경의를 표한다거나 하지 않는다. 형상 같은 건 더욱 안 만든다.
마리아가 오늘날 자기 신분이 얼마나 날조되고 있는지를 안다면, 아마 놀라 기절초풍하고 까무러치다 못해 심장마비에 걸릴 것이다. 이 휘소 박사가 핵 물리학자로 왜곡된 것하고는 스케일이 급이 다르다.

마리아의 시점에서 천주교의 교리 오류에 대해 잘 써 놓은 전도지 <Why Is Mary Crying?> 클릭

5. 베드로는 예수님의 제자이고 유대인을 주 대상으로 사역을 하다가(바울은 이방인들 대상) 세상을 떠난 사도이다. 그는 천주교나 교황 제도 같은 건 알지도 못했다. 베드로라는 이름은 성경에도 나와 있듯이 돌멩이라는 뜻일 뿐이며, 베드로는 교회의 반석이 결코 아니다.

6. 기독교에 따르면 이미 죽어 버린 사람은 이미 하늘이나 지옥으로 가 버렸으니까 끝이다. 이는 제사나 추도 같은 망자에 대한 관념까지 바꿔 놓는다. 좋게 말하면 깔~끔하게 바꿔 놓는다.
허나, 죽은 사람을 갖고 고인드립을 치면서 “헌금 많이 바치면, 뭘 열심히 하면 연옥에 가 있는 사람이 연옥에서 빨리 나올 수 있다” 이렇게 되면 정말 골치 아파진다. 난 구원관과 사후 관념이 모 아니면 도로 깔끔한 지금의 내 신앙을 좋아한다.

7. 그리고 끝으로, 천주교는 성경을 보는 마인드부터가 기독교하고는 완전히 다르다. 창조론 같은 쪽으로 들어가면 성경을 절대로 문자적으로 해석하지 않는다. 성경을 본다고 말은 하지만 실질적으로는 각종 교회 전통, 교회법 등을 더 우선시한다. 아니, 중세 암흑기 때는 오히려 성경을 금서로 지정하고, 라틴 벌게이트 같은 부패한 역본이나 자기네들끼리 돌려 보고 성경을 읽던 사람들을 잡아 죽이던 집단이 그들이다.
... 이렇게 말하려고 했는데 요즘은 기독교를 자처하는 어지간한 개신교 교회들도 성경에 그렇게까지 연연하지 않기는 마찬가지이고. -_-;;

난 차라리 아예 안 믿고 말지, 하나님 팔고 예수 팔고 성경을 판다면서 천주교처럼 믿을 수는 없다는 생각을 아주 오래 전부터 했다. 천주교의 각종 성화, 성상, 특히 마리아 형상을 보면 이것들의 배후와 기원이 떠오르기 때문에 마음이 굉장히 불편하며, 어떨 때는 오싹 소름까지 돋는다만..
얘네들은 어째 세상 불신자들을 상대로는 굉장히 좋은 이미지로 appeal해 있다. 세례고 침례고 나발이고 교리 따위는 중요하지 않은 일반 사람에게 천주교는 종교적인 비주얼이 아주 그럴싸하기 때문이다.

그래서 영화나 드라마 같은 매체에서는 천주교는 아주 정의롭고 이성적이고 좋게 그려져 있는 반면(조선 명탐정처럼), 기독교 쪽은 그냥 뻘건 십자가에 개념 없는 광신자나 나약한 loser 내지 위선자 이미지이다(도가니, 파괴된 사나이, 밀양 등). ㄲㄲㄲㄲㄲ 그래서 한숨뿐.

천주교는 기독교와 이렇게도 다른데도 사람들은 십자군 전쟁이나 종교 재판, 갈릴레이 갈릴레오 재판도 다 기독교의 과오라고 싸잡아 부르고 있으며, 종교 개혁으로 인해 개신교가 생기기 전부터 명맥을 유지해 왔던 기독교 집단(천주교로부터 탄압 받고 존재가 부정되어 온)들에 대해서는 절대 무지하다. 알비겐시스, 왈덴시스 등.

난 애시당초 콘스탄틴의 기독교 공인이 기독교에 플러스가 된 사건이라고 생각한 적이 없다. 그건 기독교를 무력으로 박멸하는 게 불가능하고 그래 봤자 국익에 보탬이 되지도 않으니, 자기 식으로 융합· 짬뽕된 짝퉁 종교를 기독교라고 로마 황제가 공인해 준 것일 뿐이다. 싸움의 양상이 이젠 더욱 교묘해졌다. 마치 이북 평양에 있는 국영 교회라든가, 일제 강점기의 문화 통치하고 완전히 똑같다. 저게 어떻게 기독교계의 승리란 말인가? 그 로마 교회는 성경의 로마서가 기록되던 시절의 로마 교회가 절대 아니다.

천주교치고 친이스라엘· 친유대인 노선을 주장하거나 이스라엘의 문자적인 회복을 믿는 사람은 단언하건대 결코 없다. 왜 그런지 설명하자면 말이 굉장히 길어지니 이 자리에서는 생략하겠다.

천주교치고 킹 제임스 성경을 지지하는 사람은 없다. 너무 당연한 귀결이다. 천주교의 오류를 가장 잘 까발리는 성경인데 좋아할 리가. 적장은 적장을 알아보는 법이다.

천주교는 종교 개혁을 종교 분열이라고 부르고, 루터 역시 종교 분열자라고 부른다. 그리고 종교 개혁 이전의 각종 듣보잡 기독교 집단들은 다 이단 사이비들이며 자기네가 기독교 정통이라고 여전히 잡아떼는 중. 위클리프, 틴데일 같은 사람을 오늘날까지도 엄청나게 싫어한다...;;

옛날에 천주교의 성경 변개는 이 정도로 막장이었다.
예를 들어, “너희도 회개하지 않으면 이와 같이 멸망하리라” (눅 13:3,5)에서 '회개'(repent)를 고해(do penance)로 바꿔서 고해성사 교리를 지지하게 해 놨다거나 (약 5:16의 잘못→죄 변개하고는 변개의 차원이 다르다),

눅 1:28에서 천사가 예수님의 육신의 어머니가 될 마리아에게 “너는 정말 복이 많기도 해라. 하나님으로부터 큰 호의를 입으니 참 좋겠다”(수동)라는 뉘앙스로 말한 걸 “넌 정말 은혜가 너무 너무 충만한 사람이구나”(능동)로 바꿔서 마리아를 마치 제 스스로 은혜가 가득해서 남에게 무슨 은총을 잔뜩 베풀 수도 있는 성인으로 신격화했다.

이들의 마리아 '빠' 기질은 창세기에서부터 시작된다. “여자의 씨, 즉 예수님이 뱀의 머리를 부술 것”이라는 약속(창 3:15)을 “여자가 뱀의 머리를 부술 것”이라고 바꾸기까지 했다.

거짓말이 아니다. 정말 영화보다 더 영화 같은 황당한 조작이 성경을 두고 벌어져 온 것이다.
믿어지지 않는다면 Douay-Rheims라는 옛 천주교 성경의 본문을 직접 보기 바란다. 진실을 아는 사람에게는 천주교와 기독교가 도저히 동일선상으로 보일 수가 없다.

비록 오늘날의 변개된 성경들은 킹 제임스 성경에 비해 여전히 좀 불량 구절이 남아 있긴 하지만, 최소한 저런 짓을 하지는 않으며, 한국어 공동번역이나 영어 New American Bible 같은 오늘날의 천주교 성경들도 저건 고쳐졌다.
이것도 그나마 성경이 널리 보급되고 진리의 빛이 퍼지면서 쟤들이 중세 암흑기 같은 깽판을 대놓고 벌이지는 못하게 되어 상황이 개선된 것이다.

성경이 천주교 수뇌부의 전유물이어서 내가 구원으로 이르는 참된 길을 몰랐다면... 그래서 저런 변개된 성경에 속아서 평생 교회의 노예로 고생하다가 죽어서는 지옥 갔다면...? 이건 상상도 하기 싫은 일이다.. 나는 내가 믿는 이 믿음을 피로 지키면서 전해 준 믿음의 선진들에게 많은 빚을 지고 있다. 옛날 같았으면 이런 글을 공개적으로 올렸다간 나는 쥐도 새도 모르게 없어져서 열나게 고문 당하거나, 아예 진작에 목이 달아났을 것이다. -_-;;

신앙이라는 건 인생의 본질과 영원을 다루는 매우 중대한 문제이다. 그런데도 이런 문제의 핵심을 보질 않고 왜 다들 대외 이미지라든가, 겉보기로 거~룩하고 경건하고 착하게 사는 사람들만 보는지 모르겠다. 한낱 인간이 제 깜냥에 의로우면 얼마나 의롭다고?

이 글을 읽고 심기가 불편함을 느끼는 분이 있으려나 모르겠다. 나도 이런 글은 몹시 조심해서 쓴다.
제발 내 글에 악이 받쳐서 해코지하고 어떻게든 지엽적인 허점 찾아내고 반박하려고 시간 낭비를 하지 않길 바란다.

아예 무교나 기독교 안티라면 말도 안 한다. 천주교라면.. 당신은 도대체 천주교의 무엇이 마음에 들어서 지금과 같은 종교관을 갖고 있는지, 당신에게 예수님이나 성경은 어떤 존재인지를 곰곰이 좀 생각해 본 뒤, 이 글을 다시 읽어 보기 바란다. 사실, 이런 사람치고 자기가 소속된 천주교 교리를 제대로 알기라도 하는 사람을 난 못 봤다.

겨우 인간적으로 고상하고 그럴싸한 종교 생활을 하는 게 목표라면 차라리 나처럼 철도교에 입문해라. 그러나 성경이 말하는 복음은 종교 레벨 자체가 아니다.
아무쪼록 독자 여러분이 예수 그리스도를 인격적으로 만나고, 성경이 말하는 구원의 길을 발견하고 따르길 원한다.

Posted by 사무엘

2012/02/25 19:26 2012/02/25 19:26
, , ,
Response
No Trackback , 9 Comments
RSS :
http://moogi.new21.org/tc/rss/response/646

Trackback URL : http://moogi.new21.org/tc/trackback/646

Comments List

  1. 소범준 2012/02/25 21:32 # M/D Reply Permalink

    1. 성경 & 교회 관련 글이 간만에 올라왔군요. 요새 마니 기대하고 있었는뎁...;;

    글 감사합니당..

    2. 저도 저 톈쥬교-_-; 체제 밑에 있었으면 지금 같은 상황을 그대로 옮겨놓는다면 속이 부글부글 끓겠습니다.
    저정도로 악랄한 교리 체계에 사람 얽매이는 건 나도 못참아~~~!!!!!!

    3. 문제는 이걸 읽는 사람들 중에 골수 캐톨닉 신자거나 캐톨닉 옹호자인 경우는 '에이~~ 여기에 뭘 볼게 있다구 C--_-;' 이런 식으로 받아들일 수도 있겠죠. 결국 자기네 영혼 문제인데 자기네 그 신=이 세상 신이 자기네들 눈을 가리고 있는 건 알지 못하고....(고후4:4)

    결국에는 의로운 자는 더 의롭게, 악한 자는 더 악하게 된다는 말씀이 생각나서 마음이 아플 뿐입니다.

    1. 사무엘 2012/02/25 22:35 # M/D Permalink

      이 글은 “이건 맞고 저건 틀리다”를 주장하기에 앞서 “이것과 저것은 같지 않다. 분명히 다르다. 그리고 둘 다 옳을 수는 없다”를 주장하는 게 목적입니다. 아무도 오해 없으시기 바랍니다.

      이 글을 보고도 반발심에 연옥이 있다는 생각이 들고, 마리아에게 경의를 표하는 게 더 좋고, 성찬식의 빵과 포도즙이 진짜 예수님의 실체라는 확신이 들고, 천주교가 가르치는 신이 더 마음에 들어 보이고, 골치아픈 성경 읽는 것보다 교회 윗사람이 시키는 대로만 고분고분 따르는 게 편하게 보이면... 그렇게 믿고 그렇게 행하면 됩니다. 아무도 강요 안 합니다. 거기에 항거하다가 순교까지 한 옛날 사람들만 완전 개죽음을 당한 것이겠죠.

      그러나.. 그렇게 믿고 행한 것에 대한 책임은 각자가 지게 될 것입니다.
      제가 진리를 사랑으로 전하라는 성경 말씀을 어긴 게 아니기를 바랍니다.

  2. 윤정호 2012/02/26 04:11 # M/D Reply Permalink

    그래도 너무 매몰차게 얘기하시는 거 아닌지;
    전 저번에 사관학교 글처럼 읽으면 재미있는 글인지 알았는데 읽다보니까 좀 그르네요
    참고로 전 불가지론자 겸 무교입니다(사실 잘 모릅니다)

    1. 사무엘 2012/02/26 08:29 # M/D Permalink

      옛날의 안 좋은 기억도 있고 해서 이런 부류의 글은 진짜 최대한 정중하게 몇 번씩 고치면서 썼습니다만..
      제가 다시 읽어봐도 중립적인 비교보다는 '한쪽 까'스러운 표현이 불가피하게 좀 들어갔군요. 양해를 구합니다. ㅎㅎ

      하지만 저도 저만의 개성과 합당한 이념이 있고 남들이 꼭 봤으면 하는 정보가 있는 만큼, 부담 없고 재미있기만(?) 한 글뿐만이 아니라 색깔 들어간 글도 아주 가끔은 올라올 겁니다.

  3. 겨울하늘 2012/03/16 02:05 # M/D Reply Permalink

    안녕하세요 사무엘 님~^^

    댓글은 잘 달지 못했어도 사무엘 님 글을 종종 와서 잘 보고 갔습니다. 감사합니다. 사실 사무엘 님께서 천주교에 대해 가진 생각은 애초에 어느 정도 알고 있었고, 최근엔 KJV 400주년을 맞아 연작(?)으로 쓰신 글들과 더불어 이 글도 얼마 전에 한두 차례 읽었는데, 일 하던 중 오늘 밤에 다시 읽고 처음으로 저의 종교에 대하여 밝힐까 합니다.^^

    저는 천주교 신자입니다. 처음에는(벌써 몇 년 전이군요..) 사무엘 님의 시선이 조금 거북하게 다가왔던 것은 사실이지만 언제부턴가 흥미롭게 받아들이고 사무엘 님의 종교 및 성경관련 포스트를 즐겨 읽은지는 꽤 되었습니다. 재미있지요?^^

    평신도에 불과한 저의 지식은 분명 일천하겠으나 교리와 성경에 상당한 '관심'은 가진 편이라고 얘기할 정도는 된다고 자부합니다. 또 Vulgata, Douay-Rheims처럼 사무엘 님이 좀 싫어하시는 편인^^; 역본을 교회의 전통과 역사가 담긴 역본이라고 생각하여 사랑하는 편입니다. (저는 저 역본을 한글로 적을 때 원어를 존중하여 '불가타', '두에-랭스'라고 부르고 있습니다. ㅎㅎ 두에-랭스의 경우 영어성경이긴 하나 영국의 가톨릭교회 박해를 피해 프랑스에서 번역된 것이므로..)

    사무엘 님께서는 조금 안타까우실지 모르겠지만 저는 천주교를 절대무오의 진리로 받들어 믿고 살아가고 있으며, 천주교가 구원의 확실한 방주임을 믿습니다. 성경 말씀과, 연옥의 존재와, 빵과 포도주의 형상 안에 예수께서 계심과, 예수께서 베드로와 그 후계자에게 수위권을 부여하셨음을 한치의 의심 없이 믿습니다. 그리고 분명 제 자식에게도 그 구원을 위해 천주교 유아세례를 받게 하고 천주교 교리를 가르칠 것입니다.

    사무엘 님 글에 감정이 상했다거나 하는 일은 없으니 걱정 마시기 바랍니다. 아시다시피 전 사무엘 님의 종교관과 문체에 아주 익숙한! ㅎㅎ 이 블로그의 오래된 애독자이자, 날개셋을 정말 감사하게 쓰고 있는 사무엘 님의 팬이니까요.^^

    오늘밤도 그냥 지나갈까 하다가 무슨 끼가 발동했는지 그냥 갑작스럽게 커밍아웃을 하고 싶더군요. ㅎㅎ
    그냥 생각없이 '겉보기에 마음에 들어서' 천주교에 적을 둔 사람도 있겠지만, 이런 사람도 있다는 것을 그저 알려드리고 싶었습니다.

    일교차가 심하군요. 사무엘 님 건강 유의하십시오!

    1. 사무엘 2012/03/16 08:46 # M/D Permalink

      겨울하늘 님, 오랜만에 뵙네요! :)

      지금까지 저의 경험으로는, 저의 종교색 관련 글에 불쾌감과 반감을 표시한 수많은 분들치고 천주교 교리를 제대로 알고 믿기나 하는 사람을 거의 못 봤습니다. 자기는 교리에 목숨을 거는 독실한 신자가 아니고 일반 불신자나 다를 게 없으면서, 그냥 남 종교 교리 비판하는 걸 싫어하는 케이스였죠. 그러니 말이 통한 적이 없고 대화가 되지 않았습니다. 상대하기가 오히려 쉬워요.

      그런데 직접 두에-랭스 역본과, 천주교의 핵심 교리들을 언급하면서 자기는 스스로 그걸 당당하게 인정하고 믿는다고 말씀하시는 분은 굉장히 아주 예외적인 경우이며, 제가 수 년간 이 홈페이지를 운영하면서 진짜 처음 뵙는다고 말씀드리고 싶습니다. 역시나 제 홈페이지에 오시는 분들 중에 별의별 이력을 지닌 경우가 많고, 글은 더욱 조심해서 써야겠다는 걸 이번 일을 계기로 또 느낍니다. 신기하네요. ㄷㄷㄷ;;

      저의 신앙의 양심을 존중하고 글을 읽어 주신 것에 감사드립니다.
      저만 요즘 일교차 크다고 느끼는 건 아니죠? 선생님도 건강하시길 바랍니다. ^^

  4. 백성 2012/04/06 12:02 # M/D Reply Permalink

    안티들이 성경(물론 개역을 공격하지만.) 외에 주로 공격하는 건, 천주교와 개신교의 비리, 잘못 등이지요.

    그런데 문제는 천주교와 개신교는 기독교가 아니라는 겁니다.
    아예 기독교라는 집합 내에 포함시키지도 말아야 할 집합들을 합집합 시켜서 기독교 Set라고 부르니, 짚어도 뭘 잘못 짚었죠.
    물론 개신교 Set 내에도 기독교 Set와 교집합인 사람들이 있고 이게 천주교 Set와 기독교 Set의 교집합인 사람들보다 많긴 하지만, 그래도 개신교 Set가 기독교 Set의 부분집합은 아닙니다.

    (수덕 근성이 발휘되어서 집합론을 이야기했지만 무시하세요.;;;)

    KJB 진영에서 좋은 신앙의 소유자 대표자 격으로 말하고 있는 청교도 역시, 원주민 살해 병크를 저질르면서 이게 개신교 잘못이라고 하는 많은 훌리건들을 양성했습니다.

    결론은, 기독교 = 천주교 + 개신교 이렇게 나누면 필연적으로 기독교 = 악마 이것밖에 답이 도출되지 않습니다.
    루터 칼빈 병크로 인해 답이 없죠. 그런데 많은 논객들은 저 명제가 틀렸다는 걸 인식을 못하고 있습니다.

  5. 슈페리어 2012/05/09 19:40 # M/D Reply Permalink

    안녕하세요 용묵님. 용묵님 블로그의 이 글을 다시 읽다가 잘 이해가지 않는 부분이 있어서 여쭙고 싶어요.

    3. 또한 기독교는 세례를 인정하지 않고 유아 세례는 더욱 거부하는데... 이건 과거의 종교 개혁자들조차도 가장 청산을 못 한 분야에 속하는지라 어지간한 개신교 교파들도 천주교의 관행을 그대로 답습하고 있다. 그래서 내가 더 강하게 말을 못 하겠다.

    라고 써주신 글에서 "기독교는 세례를 인정하지 않고 유아 세례는 더욱 거부하는데" 라는 부분은 무슨 뜻인가요?
    기독교 내의 교회에서 세례를 하고있는데 기독교가 거부하고 있다니 왜 이렇게 적어주셨는지 잘 이해가지 않아서요.

    5.베드로라는 이름은 성경에도 나와 있듯이 돌멩이라는 뜻일 뿐이며, 베드로는 교회의 반석이 결코 아니다.
    라고 하셨는데 이 부분에 대해서도 설명 부탁드릴게요.

    제가 아직 성경에 대한 지식이 많이 부족하여 그러니 너그러운 마음으로 이해해주시길 부탁드립니다.
    감사합니다.

    1. 사무엘 2012/05/09 21:41 # M/D Permalink

      3. 행 8:36-38 (특히 37절도 포함!) 등 성경의 용례를 보면 성경에 세례란 없습니다.
      온몸을 담갔다가 나오는 침례만이 있구요, 게다가 그 침례도 스스로 믿음을 고백할 수 있을 정도로 성장한 청소년 이상에게 줘야 맞습니다.
      그것이 변질되어서 제대로 구원받지 못한 사람들까지 쉽게 교회 회원으로 만들려고 세례가 되었고, 특히 성경적으로 아무 의미 없는 유아 세례까지 생긴 것입니다.

      훗날 종교 개혁 때 천주교에서 빠져나온 개신교 교파들은 '이신칭의' 하나는 건져서 기독교로 돌아왔지만, 세례까지 침례로 되돌리지는 못했다는 게 본문의 의미입니다.

      5. 요 1:42를 참고하세요. 게바 = 베드로 = 돌(길바닥에 굴러다니는 돌멩이)입니다.
      건물을 짓는 기반인 '반석'하고는 완전히 다른 문맥이죠.
      마 16:18은 “베드로야, 넌 이름이 돌멩이라는 뜻이지? 근데 나는 이런 커다란 반석 위에다 교회를 세울 거다”인 언어유희 뉘앙스로 이해하시면 됩니다. 이 자리에서는 여기까지만 설명 드리죠.

Leave a comment

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

사용자 삽입 이미지

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Posted by 사무엘

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

Trackback URL : http://moogi.new21.org/tc/trackback/645

Comments List

  1. 백성 2012/02/23 09:57 # M/D Reply Permalink

    암호가 틀리면 환영합니다를 먼저 띄운 다음에 암호가 틀렸으니 나가보라는 메세지를 던지죠.
    짜증나서 관둠

    1. 사무엘 2012/02/23 14:32 # M/D Permalink

      좋아, 암호를 입력했으니 환영의 인사를 전해 주겠다.
      그럼 저는 어떻게 될까요?
      로그인 못 할 것이다. ㄲㄲㄲㄲㄲ

      (음, 일본 환타 CF의 DJ 선생도 생각나는군요.
      실컷 장단 맞춰 주고 나서는 '찌가이마스.')

    2. 백성 2012/02/24 03:14 # M/D Permalink

      쇼군센세상이 훨씬 더 부합해요.

      환영합니다 - 환요합니다 - 혐오합니다 킬킬 두음법칙상 꺼지라는 뜻이군!

  2. 주의사신 2012/02/23 10:27 # M/D Reply Permalink

    '다다' 버그는 IME 2010을 이용하면 해결이 됩니다. IME에서 OS 자체의 문제점을 해결해 준 것인지는 정확히 모르겠지만, 하여간 됩니다. 날개셋을 쓰면 '다다'는 그냥 있지만요.

    1. 사무엘 2012/02/23 14:31 # M/D Permalink

      MS IME는 두벌식일 때는 문제가 없습니다. 세벌식일 때만 저러지요. IME2010도 예외가 아닙니다. (두벌식일 때는 문제를 피해 가는 방법으로 프로그램이 동작합니다.)
      이건 운영체제의 버그이기 때문에 특정 IME 프로그램이 어떻게 할 수 있는 현상은 아니랍니다.

  3. 사무엘 2012/03/21 17:12 # M/D Reply Permalink

    MS 오피스 2010의 한글 IME에도 버그가 있습니다.
    콘솔(명령 프롬프트)로 가서 한글을 조합하고 한자 변환을 시키면 밑에 후보 리스트가 보이지 않습니다.
    위아래 화살표로 selection을 변경해야 그제서야 후보 리스트가 보입니다.
    물론, 후보 리스트가 보이지 않을 때도 1~9 번호를 바로 누르면 되긴 합니다. 화면에 뜨지만 않을 뿐 한자 후보 모드가 되긴 한다는 뜻이죠.

    제가 확인한 바로는 날개셋이나 심지어 윈도우 7이 원래 내장하고 있는 MS 한글 입력기에는 나타나지 않는 현상이고 오피스 2010과 동봉된 IME 2010만 이렇습니다.
    윈도우 7의 '다다.' 버그도 그렇고 오피스 2010까지... 별로 기능이 추가되거나 바뀌는 것도 없는 프로그램에 왜 이런 자잘한 버그가 들어가는지 모르겠네요.

Leave a comment

사관학교 이야기

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Posted by 사무엘

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

Trackback URL : http://moogi.new21.org/tc/trackback/644

Comments List

  1. 소범준 2012/02/21 13:45 # M/D Reply Permalink

    1. 아아아~~~~ 형제 하나 군대 간다고 또 이런 글을 준비하신 건가효..?;;

    2. 요새 군대 갈 준비를 좀 한다고 사관학교 홈피도 살짝 들릴 일이 있어서 가끔씩 보곤 했습니다.
    역시나 병들을 최선두에서 지휘할 정예 군관 양성 기관이다 보니 빡씨~~긴 하겠죠.
    솔직히 병들의 기초 군사 훈련은 사관 생도들에 비하면 '암것도 아냐~~' 쯤.. 되겠죠.

    그래서 '사관 생도 -> 정예 장교'의 루트는 보통 마음의 준비라도 힘들-_- 것 같습니다.

    3. 경북 영천의 3사관학교라면, 여기 킹제임스 진영의 어떤 형제님도 거기 나오셨답니다.
    위관 복무까지 하시다가 예편하고 다른 업종에서 종사하신다는군요.

    1. 사무엘 2012/02/21 15:43 # M/D Permalink

      시기에 적절한 글로 잘 읽으셨다니 저도 반갑네요.
      저는 고향의 지리적 특성상 3사관학교를 길목에서 비교적 자주 보며 지냈습니다. 국도 28호선상에 있죠.

      본문에서는 빼먹었군요. 사관학교는 기본적으로 지휘관 양성을 목표로 하기 때문에, 여기 졸업생은 부하가 지나치게 적거나 계급이 높은 소수정예 특수부대로 첫 발령이 나지도 않습니다. 가령, 소대원이 전부 최하 부사관 이상이라거나, 소위가 제일 쫄따구라거나 하는 곳 말이죠.
      그래도 진급하려면 나중에라도 이런 곳 안 거칠 수는 없지요. 교사로 치면 도서 벽지 근무처럼 말입니다.

  2. 박병선 2012/02/23 10:07 # M/D Reply Permalink

    학사장교나 ROTC 출신은 소위때 부터 자기 병과에서 활동을 하게 됩니다. 그러나 육사 출신은 소위때는 무조건 보병 소대장을 하고, 중위 진급 후 병과 교육을 다시 받는걸로 알고 있습니다.
    사관학교 출신들이 낮은 계급에서는 뛰어난 능력을 보이긴 하지만 위로 올라갈 수록 사회 생활 경험이 적기 때문에 다른 출신들이 드러난다는 글도 어디선가 본거 같네요(육사가 아닌데 그 계급까지 올라가려면 얼마나 노력을 했을지 알 수 있겠죠) - 하지만 연줄의 힘은 큰거 같아요)

    1. 사무엘 2012/02/23 14:31 # M/D Permalink

      좋은 보충 설명에 감사드립니다. ^^

Leave a comment

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Posted by 사무엘

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

Trackback URL : http://moogi.new21.org/tc/trackback/643

Comments List

  1. Lyn 2012/02/20 08:58 # M/D Reply Permalink

    와우... 전 리소스DLL을 써본적이 없다보니 이런건 전혀 몰랏네요.

    1. 사무엘 2012/02/20 14:16 # M/D Permalink

      DLL도 MZ 헤더와 PE 헤더가 있는 엄연한 실행 파일인데 데이터만 담는 용도로 쓴다는 게 어찌 좀 안 어울리지만, 그런 경우가 적지 않습니다. 특히 본문에도 언급되어 있듯, 다국어 리소스를 만들 때가 제일 적합하고요. 아래아한글, MS 오피스, MFC 라이브러리 등 각종 상업용 소프트웨어들이 현업에서 쓰는 방법이기도 합니다. ^^

Leave a comment

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

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

2. IE의 안습한 속도

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

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

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

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

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

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

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

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

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

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

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

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

5. 컴퓨터의 시계

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

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

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

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

6. Task dialog

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

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

Posted by 사무엘

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

Trackback URL : http://moogi.new21.org/tc/trackback/642

Comments List

  1. 김 완수 2012/02/17 07:57 # M/D Reply Permalink

    1. shutdown 명령 등으로 시스템 종료 카운트다운에 들어갈 때나 로그오프 되기 전까지 정도에만 쓸 수 있지만 시스템 종료를 중단하는 명령은 있습니다. shutdown -a를 실행하면 지금 진행중인 시스템 종료를 중단할 수 있습니다. 단, 누르는 타이밍이 어중간하게 늦어버리면 컴퓨터를 그냥 끄는게 더 나은 상황이 되어버립니다.

    2. 그래서 제가 IE를 잘 안 씁니다.

    1. 사무엘 2012/02/17 11:41 # M/D Permalink

      하긴, 윈도우 API에도 AbortSystemShutdown 함수가 있으니, 그런 기능이 없지는 않겠습니다.
      하지만 “앗차, 시스템 종료를 철회하거나 최소한 재부팅으로 바꿨으면...”이라는 생각이 드는 때는 대부분 이미 데스크톱이 내려가고 내가 컴을 조종할 수 없는 모드로 진입한 뒤이기 때문에 그 기능만으로는 좀 불충분합니다. ^^;;

      역시나 IE의 속도는 저만 불만인 게 아니군요.

  2. 아라크넹 2012/02/17 10:54 # M/D Reply Permalink

    1. "시스템을 종료하는 중입니다..." 메시지가 뜬 상태에서 아래에 "종료 대신 재시작하기" 같은 버튼을 박는다거나? 하지만 요즘 운영체제들은 점차 시스템 종료가 중요하지 않은 형태로 진화하고 있기 때문에 사실 의미가 별로 없을 것 같습니다.

    2. about:tabs도 더럽게 느리죠.

    3. 최근에는 자주 사용하는 웹 브라우저들(적어도 IE, 파폭, 크롬을 포함)에 대한 심각한 보안 문제(zero-day exploit이라고들 부르죠)는 발견 즉시 활용되는 경향이 있습니다. 웹 페이지를 렌더링하는 중에 버퍼 오버플로가 나서 네이티브 코드를 실행할 수 있게 된다거나... 물론 크롬 같이 그런 경우에도 어느 정도의 대안을 마련해 두는 경우도 있습니다만 완벽할 수는 없으니 그렇게 할 수 밖에요. 참고로 비슷한 종류의 blacklist는 주요 브라우저에는 모두 있습니다(심지어 최신 IE도).

    4. 한 술 더 떠서 Windows 8의 메트로 인터페이스에서는 IPC는 커녕 executable code를 담을 수 있는 메모리 영역의 할당이 제한되어 있다고 하죠. 모질라가 이것 때문에 골치를 좀 앓고 있는 것 같습니다. https://wiki.mozilla.org/Windows_8_Integration

    5. 리눅스에는 (아마 다른 유닉스에도 있을텐데) 시각을 강제로 설정하는 위험한 API와, 단조성(monotonicity)을 보존하면서 시계가 동작하는 속도를 조정할 수 있는 덜 위험한 API가 함께 있습니다. 후자는 만약 시스템 클럭이 문제가 있어서 느리게 간다거나 할 경우 아예 대놓고 보정을 하는 기능이 들어 있기도 하고요.

    6. 아무래도 확실히 버그인듯...

    1. 사무엘 2012/02/17 11:41 # M/D Permalink

      오랜만에 강림하셨군요. ㅋㅋㅋ (저널에서 소식 봤음 ㄲㄲㄲ)

      1. 그렇게 화면에다 유세 부릴 필요도 없고, 파워 유저들이나 쓰라고 단축키만 넣어 주더라도 ㄱㅅㄱㅅ.

      3. 정 보안이 걱정되면, 최소한의 컨텐츠 확인은 가능하게 텍스트+기본 그림만 쭉 보여주는 '안전 모드' 웹 렌더링이라도 넣어 주면 좋겠음. 아예 전체 표시를 거부하는 건 사용자에 대한 예의가 아니지.

      4. PC 환경도 점점 스마트폰처럼 바꾸려고 하는 MS의 시도가 얼마나 성공적으로 잘 될지 모르겠네요. MS는 애플도 아니고 옛날부터 호환성을 특히나 굉장히 중요시했던 집단인데.

    2. 아라크넹 2012/02/18 15:06 # M/D Permalink

      3. 그게... 이미지 처리에서 버퍼 오버플로가 나는 경우도 허다해서;;;; 텍스트만 가지고 익스플로잇을 하는 게 가능한 경우도 있었음(IE 같은 경우). 텍스트와 이미지만 표시하면 안전하다는 보장도 없어진 거지.

      4. 맥 오에스 텐도 다음 버전(10.8)부터는 기본값으로 앱 스토어에 등록되지 않은 프로그램을 깔 수 없게 한다는 얘기가 돌아서 사람들이 반발하고 있는데... 이래 저래 트렌드이긴 한데 매우 기분이 나쁜 트렌드죠.

  3. 김재주 2012/02/17 20:07 # M/D Reply Permalink

    IE10은 엄청나게 최적화를 했다는데 과연 어떨지...

    윈도 8 같은 경우는 메트로 UI는 끄고 기존의 클래식 UI를 사용할 사람이 많을 것 같습니다. 심지어 태블릿 PC라도.

    1. 사무엘 2012/02/18 11:25 # M/D Permalink

      지금이 10년 전 같은 IE 독점 시대도 아닌데, 살아남으려면 최적화 좀 해야겠죠. =_=;;
      저도 개인적인 바람은 그냥 PC는 PC답게, 폰은 폰답게입니다만... 해답은 시간만이 알고 있는 듯합니다.

  4. 주의사신 2012/02/18 10:24 # M/D Reply Permalink

    1. IE 9랑 Firefox 10을 Ctrl + N으로 비교해 봤는데, 별 차이를 못 느끼겠습니다. 저만 그런 건가요?

    2. 웹 관련 일로 보안 공부를 좀 하고 있는데, 자바 스크립트를 이상하게 붙여서 개인 정보를 빼 간다든지 하는 것이 가능합니다. 그래서 이런 것이 보안 위협이 되곤 합니다.

    3. Windows 8의 메트로 인터페이스는 기존 것과 호환을 목표로 만든 것이 아니라 새로운 플랫폼을 하나 만들어 보겠다는 목표를 가지고 만든 것이라서, 모질라가 고생을 좀 하나 봅니다. 기존 것과의 호환은 클래식 UI로 달성을 할 수 있으니까요.

    MS는 PC 점유율을 전화기로 보낼려고 하고 있고, 애플은 전화기 점유율을 PC로 보낼려는 상황인데, 누가 더 잘할지는 지켜 봐야겠습니다.

    4. 메트로 UI 프로그래밍 언어는 HTML5와 자바 스크립트라고 합니다. "Windows API로 HTML과 자바 스크립트가 쓰일 줄이야!"라는 생각이 들었습니다.

    5. 시계는 시계 바로 아래에 있는 날짜 및 시간 설정 변경을 누르면, 시계가 뜨기는 합니다. 달력이 뜨지 않는 것이 매우 아쉽기는 합니다.

    1. 사무엘 2012/02/18 11:25 # M/D Permalink

      1. 헐, 그건 파폭이 IE만치 느리다는 소리처럼 들리네요. ㄲㄲㄲ

      3. 역시 로컬, 웹, 앱의 경계는 점차로 흐려지는 게 피할 수 없는 대세인 듯.

      윈도우 8은 운영체제 차원에서 드디어 유니코드 5.2 방식 옛한글 입력이 가능해지고, 맑은 고딕에도 옛한글 글립과 조합 규칙이 추가된다는군요.
      메트로인지 뭔지 그건 잘 모르겠지만, 어쨌든 IME 계층은 좀 건드리지 말고 가만히 놔 뒀으면 좋겠습니다. ㅋㅋ

      5. 이제 달력 보려면 관리자 권한 크리 ㅋㅋ

  5. 소범준 2012/02/18 11:59 # M/D Reply Permalink

    오늘 워드프로세서 실기 재시험봤습니다.-ㅁ-
    그러고 나니 컴퓨터 관련 글이 더 쉽게 눈에 들어오는 듯 싶네요..

    1. 시스템 종료라면... 예전에 윈95가 생각나서 마이 아픕니다..;;
    뜬금없을 지 모르겠지만, 윈95땐 종료 도중에 컴 전원버튼을 눌러서 바로 끈다면 시스템 에러 크리를 먹는 상황!!-_-;
    그래서 저도 여기에 대해선 형제님과 비슷한 의견을 갖고 있었습니다.

    뭐, 물론 요즈음은 많이 나아지긴 했으니깐 그런 생각은 별로 안 해보고 지냈죠.
    근데 형제님 같은 골수 컴 관련 업종 종사자들에겐 그런 기능이 필요한 가 보죠?

    2. 엇!
    저는 옛날에 도스 썼을 땐 날짜/시각을 그렇게까지 설정하진 않았는데욤..
    저는 그 시절 기준으로 '제 때를 벗어나서 태어나서'(고전15:8) 그런 것인지 모르겠습니다.
    어쨌거나 그런 명령어들이 있었고, 그걸 활용했던 기억은 납니다.

    3. 요즘 윈도우의 관리자 권한 크리는 진짜 안습.
    그 메시지가 뜰 때면 정말 원치 않는 슲흔-_-; 일이 일어나기도 하죠.

    1. 사무엘 2012/02/19 19:52 # M/D Permalink

      범준 형제 정도의 전공이면 워드 프로세서 자격증 같은 게 굳이 필요한가 싶네요?

      1. 딱히 업종 종사자라서라기보다는 습관적으로 시스템 종료 시켜 놓고는 앗차 싶을 때 말이죠. ㄲㄲ
      2. 286 AT쯤부터는 이미 시계 배터리가 있었고, 날짜 시각 대신 자신만의 autoexec.bat가 실행되었기 때문에 매번 부팅 때마다 날짜 시각 설정을 할 필요는 없었을 겁니다.

    2. 소범준 2012/02/19 21:52 # M/D Permalink

      형제님 말씀처럼 제 전공상으로 궂이 필요치 않은 감도 있겠지만 - 작년 봄에 필기 시험 칠 때 그거 때문에 놀랐습니다. 제 전공 지식과 상당히 겹쳤다는 거 ㅎㄷㄷ;; - , 자격증은 적어도 한 개 이상은 따 놓아야죠.ㅋ

Leave a comment

세벌식 파워업 이야기

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Posted by 사무엘

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

Trackback URL : http://moogi.new21.org/tc/trackback/641

Comments List

  1. 소범준 2012/02/14 11:27 # M/D Reply Permalink

    저는 두벌식에 처음 입문한 때부터 한컴타자 및 아래아한글을 사용하면서 세벌식이 있다는 것(정도)은 알았는데 그것으로 전환을 시켜서 좀 쳐봤더니 배열상의 차이를 느끼게 되었습니다.
    그러나 진정한 의미의 호기심이 생기게 된 건 킹제임스 알고 나서 형제님을 안 뒤였죠.

    그나저나 사이에 군대가 끼는 바람에 ... 그 행보에 간극이 생겨 버렸네요?;;

    1. 사무엘 2012/02/14 21:07 # M/D Permalink

      아래아한글이 초창기에는 세벌식 보급에 큰 기여를 했어요. 개발 초창기에는 개발 장소 자체가 공 병우 박사님이 운영하시던 한글 문화원 내부였고, 공 박사님은 당연한 말이지만 컴에다가 한글을 얹는 연구를 하는 젊은 개발자를 무진장 좋아하셨으니까.

      도스용 아래아한글에는 예제 문서에 대놓고 두벌식 디스하고 세벌식 홍보하는 내용들이 잔뜩 있기도 했고, F1 도움말을 보면 세벌식 자판에 대해서는 특별히 도깨비불 현상 없고 기계간의 글자판 통일을 이룰 수 있는 이상적인 글자판이라는 격찬까지 있었습니다.

      타자를 빠르게 잘 치면 군대 가서도 행정병 같은 근무를 할 때 많이 좋을 겁니다.

  2. 백 정수 2012/02/15 03:31 # M/D Reply Permalink

    위 글을 보니 공감되네요.

    저는 군대 행정병 출신이었고,

    입대할 때는 세벌식을 연습한 지 얼마 되지 않아 300타 정도 됐었습니다.

    그럼에도 불구하고 아주 유리한 부분이 있었는데 그것은 주소 입력할 때였습니다.

    1000명 정도씩 주소를 입력해야 되는 경우가 많았는데

    세벌식 자판은 타자를 입력하면서 숫자 입력을 그대로 할 수 있으니 좋았습니다.

  3. 백성 2012/02/15 11:27 # M/D Reply Permalink

    세벌식과 킹제임스성경은 대체 무슨 관계가 있는 걸까요

  4. 사무엘 2012/02/15 17:43 # M/D Reply Permalink

    백 정수: <날개셋> 한글 입력기에는 세벌식의 그 특성을 살려, num lock 램프가 커졌을 때 세벌식의 숫자와 해당 자음 자리를 맞바꾸는 기능도 있습니다. ‘세벌식 키패드’라는 이름으로 빠른설정에서 바로 맞출 수도 있는 옵션이지요. ^^

    특백: 오덕질 대상이라는 공통점. ㄲㄲ http://cafe.naver.com/tenjaga/16162 참고

  5. 팥알 2012/02/15 19:04 # M/D Reply Permalink

    공병우 박사님이 날개셋 입력기를 보셨다면 아무(≒개나 소?)나 자판 배열을 만들 수 있는 것에 놀라셨을 겁니다.
    날개셋 입력기는 두벌/세벌 자판을 가리지 않고 모두 날개를 달아 줄 수 있는 풀그림인데, 3벌 자판에 관심 없는 사람들은 거의 모르는 게 아깝습니다.
    날개셋 입력기도 어쩌면 공 박사님의 타자기처럼 아는 사람이 적어서 정당한 평가를 받기 어려울 것 같다는 걱정(?)이 듭니다.

    세벌 자판 배열이 우수한 것은 기기에 잘 맞추고 잘 다듬어 왔기 때문이지, 세벌식이라는 개념과 틀이 모든 면에서 완벽하기 때문은 아닐 겁니다.
    2벌 자판은 1969년에 수동 타자기 배열에 맞추어 나온 표준 자판이 그대로 쓰이는 문제가 큰데, 3벌 자판도 타자기에 썼던 배열을 그대로 셈틀에 썼다면 경쟁력이 있었을지 장담할 수 없겠지요.
    마음 먹고 만든다면야 멀쩡한 사람도 못 쓸 3벌 자판이 얼마든지 나올 수 있으니까요.^^

    작은 기기에 쓸 자판은 공병우식이 안마태식보다 매력이 떨어지는 것 같습니다.
    엄지만 누를 때는 공병우식이 두 손을 번갈아 쓰기가 애매합니다.
    어쩌면 휴대 기기는 공병우식 3벌 자판의 매력을 느끼기 어려운 영역인지도 모르겠습니다.
    제 생각에도 동시 입력이 돌파구가 될 것 같긴 한데, 동시 입력 때문에 입력 방법이 어려워져도 안 되겠지요.
    무언가 괜찮은 방법만 있다면... 그런 게 바로 특허감이겠네요.

    1. 사무엘 2012/02/16 14:14 # M/D Permalink

      팥알 님, 반갑습니다. 좋은 의견에 감사드립니다. ^^
      동시 입력이 모바일에서 세벌식의 돌파구가 되어야 함은 분명하지만, 그렇다고 입력 방법이 어려워져서는 안 되는 게 또 딜레마입니다. 초성과 종성이 분리된 글쇠배열을 좁은 화면에다 구현하려면 글쇠 수 감소 → 어떤 형태로든 직관적이지 않은 복잡한 입력 방식이 불가피하죠. 쉽지 않은 문제이며, 다소 연구가 필요한 분야인 듯합니다.

      다만, 용어의 정의 내지 개념이 제가 생각한 것과 약간 다른 부분이 있어서 드리고 싶은 의견이 있는데요, 저는 타자기와 컴퓨터가 그렇게까지 이질감이 있다고 생각하지는 않습니다.
      어차피 두벌식으로는 타자기와 컴퓨터에 그대로 동일 글쇠배열을 얹을 수도 없습니다. 네벌식 타자기, 두벌식 타자기, 두벌식 컴퓨터는 셋 모두 배열이라든가 치는 방식에 어떤 형태로든 차이가 있지요.

      그 반면 세벌식으로는 글쇠 frame 자체로 인한 사소한 차이를 제외하면 진짜 기계식 타자기와 컴퓨터의 배열이 99% 이상 같을 수 있습니다. 여러 세벌식 중에서도 공 병우 세벌식의 최대의 특징은 ‘기계간의 글자판’ 통일이에요. 21세기가 되어서 한글 자음 빈도가 바뀌었다거나 @, ^ 같은 글자가 더 필요해진 것은, 시대적인 변화이지 기계간의 차이로 인한 변화는 아니지요. (꼭 굳이 지적하자면 최종 자판의 여닫는 따옴표 정도가 컴퓨터의 관점에서 잉여처럼 됐습니다만...)

      모바일 기기는 논외로 하더라도, 이 점을 생각해 보면 어떨까 합니다. ^^

  6. 김 경록 2012/02/18 12:14 # M/D Reply Permalink

    3총사가 있기에 세벌식을 쓰기가 편합니다. 특히 파워업은 처음 쓰는 컴퓨터에서 세벌식을 사용 할 때는 필수죠. 이게없었으면 세벌식을 포기했을지도 모릅니다.

    1. 사무엘 2012/02/19 19:50 # M/D Permalink

      도움이 되셨다니 저로서는 참 반가운 소식입니다. ^^;;

Leave a comment

Looking for you의 작곡자, MALTA

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

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

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

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

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

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

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

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

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

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

Posted by 사무엘

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

Trackback URL : http://moogi.new21.org/tc/trackback/640

Comments List

  1. 소범준 2012/02/11 10:50 # M/D Reply Permalink

    1. ㅎㅎ
    그 Looking For You의 음색이 얼마나 강렬했으면 형제님께 철도 성령을 소환해 내었는지!!!
    저는 제가 이성을 인지할 수 있는 나이에 구원을 받은 반면, 철도 쪽은 대체 언제 '구원'을 받았는지 알 길이 없습니다.
    그래서인지 철도상 육신적(??) 기간이 의외로 길었죠. 어린 시절부터 지하철/기차를 접했으니.
    제 부끄러운 철도 역사인데... 장난감 중에 글쎄 이종 사촌 형이 물려준 모형 열차/레일/시설물 셋트가 있었습니다.^^;

    2. 저는 지하철/KTX/무궁화호/통일호는 타 봤지만, 새마을호는 단 한 번도 타보지 못했습니다.
    그러다 보니 KTX 생기기 전인 8~9년 전 그 당시에 단 한 번이라도 타 보았더라면 적어도 한 번은 열차 내에서 그 음악을 들었을 수도 있겠죠. 그냥 새마을호를 타고도 그 음악을 채보하기가 보통은 아닐텐데, 형제님 똘끼(!)는 보통이 아니시군요!

    3. 킹제임스 성경 쪽으로 물미를 틀기 전에는 재즈를 엄청 좋아했었습니다. 그런데 그런 류의 음악이(물론 사람의 관점에서는 다 나쁘지도 않지만) 육신적으로 흘러가고 있다는 것을 안 뒤로부턴 그다지 좋아하지는 않지만... 이 곡만큼은 어째 예외가 되었네요.ㅎ

    1. 사무엘 2012/02/11 19:35 # M/D Permalink

      그러나 이제 음악 하는 자를 내게로 데려오소서, 하니라. 음악 하는 자가 연주할 때에 철도의 손이 그에게 임하니 (왕하 3:15 패러디)

      하나님께서 우리 민족을 긍휼히 여기셔서 한글 같은 문자와 더불어 새마을호 같은 열차가 있는 철도를 허락하셨습니다. 참으로 감사할 일입니다.

  2. 정 용태 2012/02/13 17:04 # M/D Reply Permalink

    TV나 라디오등의 매체를 접하면서 다양한 경로로 기억속에 남게되는 시그널 송은 우리나라 80년대 말-90년대 각종 프로그램 오프닝이나 나레이션 BGM에 가볍고 활기친 느낌의 다양한 경음악이 유행하였습니다.

    대표적으로 생각나는 아티스트들은 T-Square, Steve Barakatt, 카시오페아(멤버중 키보디스트가 최강철덕으로 유명한^^;;), CUSCO, Yanni, 리처드 클레이더만 등이 있네요.. 그런 흐름들 속에서, 새마을호 음악을 선정할때 강한 철도성령(__)이 임하셔서 MALTA의 곡을 골랐을 것 같습니다 ^^

    참고로 저는 S모 방송사 앨범 디비작업 알바 할때 말타 앨범 찾아서 뒤적뒤적했는데 말타의 다른앨범들은 찾았는데 저 옵세션 앨범은 없어서 매우 슬펐던 기억이 ㅋㅋ 그리고 신촌 북오프(일본 중고서적체인)에서도 말타 앨범 두장정도 있는데 아티스트 인지도가 떨어져서인지 점원이 말타 앨범 하나는 일본재즈 코너에 있고 하나는 일반 아티스트 코너에 배치해 놓았습니다. 그리고 일본 후쿠오카 여행 갔을때 또다시 하카타 북오프에 가서도 저 앨범은 없더군요...

    제가 마지막으로 새마을호 영상 출발도착음악 딴거는 06년 10월 31일 강릉출발 새마을호가 끝이네요. 사무엘님이 녹화한것처럼 잘되지 않았고 그나마 열차 주행음때문에 음악은 거의 들리지 않게 녹화되어 있어서 아쉽습니다.

    1. 사무엘 2012/02/14 08:51 # M/D Permalink

      정 용태 님, 무척 오랜만에 뵙네요. 반갑습니다. ^^
      Looking for you 선곡은 정말 철도 성령님의 섭리와 계시가 아니고서는 있을 수 없는 일인 것 같습니다.

      저도 마지막으로 딴 게 2006년 11월쯤이니, 비슷한 시기네요.
      철도 신앙을 공유하는 분이 계신다는 건 참으로 기쁜 일입니다. ㅋㅋ

Leave a comment

(上으로부터 이어짐)

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

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

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

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

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

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

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

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

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

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

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

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

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

Posted by 사무엘

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

Trackback URL : http://moogi.new21.org/tc/trackback/639

Comments List

  1. 백성 2012/02/09 11:34 # M/D Reply Permalink

    뭐 예전 게임은 그냥 흥미 위주였으니까 저런 독실한 크리스천 프로그래머도 참여하고 그랬겠죠.

    현재(특히 온라인)는 죄다 공포스러운 요소, 폭-_-력, 퀘스트 도배 때문에 할게 없어요.

    ※예전에 접었던 테**런*이라는 게임을 얼마 전에 재시작했습니다만, 이것도 컴퓨터 사정 때문에 잘 안됩니다. ㅋ

    1. 소범준 2012/02/09 16:13 # M/D Permalink

      그런 사례만 늘어놓아도 세상 풍진은 다 본거죠.

      * 주님 어서 오시옵소서.

  2. 소범준 2012/02/09 16:32 # M/D Reply Permalink

    상, 하편 모두 수고하셨습니다.

    1. 읽어 본 즉 결국에는 사람들이 두 편으로 나뉘는군요.
    남들보다 훨씬 불우한 환경에서도 오히려 하나님을 신실하게 찾은 자(히11:6) VS 남들보다 풍족하면서도 허무하게 죽은 자 / 가장 고귀했으나 사람들에게 많은 인정을 받지 못하고, 알려지지 않은 자 VS 사람들에게 촉망받고 인정을 많이 받은 전형적인 자 ...등.

    이런 이야기를 접할 때마다 이런 Repatory가 줄곧 떠오르는 이유가 자못 궁금합니다...
    그리스도인이건 일반 세상 사람들이건 다 똑같이 고민이 되는 문제이지 싶은데요,
    결국에는 영원의 관점에서(하나님의 관점에서) 인정받는 자가 역설적으로 외면을 당하면서도 그 빛이 더욱 영롱한 것 같습니다.(단12:3; 고후10:18) 비록 그렇게 되기란 쉽지는 않고, 또한 그런 사례들은 오랫동안 사람들의 시선에서 멀어져있었기 때문이겠지만요.

    2. 동시에 저 자신에 대해서도 고민하지 않을 수 없는 글이었습니다. 하나님 앞에 .. 다른 사람들 앞에.. 어떤 인생이 될까.. 라는 주제의 질문은 답하기 쉬운 것 같으면서도 실제로는 심오하고 어려운 인생 본질에 대한 질문과도 직결되겠지만요.

    오직 하나님께서 추천하시는 자가 되도록(고후10:18) 힘써야 겠습니다.

  3. 사무엘 2012/02/09 21:49 # M/D Reply Permalink

    백성: 아무래도 30년 전보다 지금의 게임계가 크리스천 개발자가 주도적으로 개발과 기획에 관여하기가 더욱 어렵고 영적으로 껄끄러워져 있는 건 사실입니다.

    소범준: 하지만 반대로 세상적으로도 엄청 성공하고 영적으로도 성공하여 두 토끼를 다 잡은 사람도 있고요(욥처럼?), 세상적으로도 불쌍하고 비참하게 살다가 죽어서까지 지옥 간 사람도 많습니다. 하지만 이런 예는 전도지 같은 데에는 잘 등장하지 않죠.
    성경은 참으로 인생의 좌표를 제시하는 귀한 책임이 분명합니다.
    개인적으로 Naked before God ... 책을 한번 보고 싶긴 합니다. 정 목사님께서 그렇잖아도 얼마 전에 미국 출장 가셨는데, 가능하면 구해 달라고 부탁이라도 드려 볼 걸 그랬습니다. =_=;;

Leave a comment

블로그 이미지

철도를 명절 때에나 떠오르는 4대 교통수단 중 하나로만 아는 것은, 예수님을 사대성인· 성인군자 중 하나로만 아는 것과 같다.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2012/02   »
      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      

Site Stats

Total hits:
162675
Today:
17
Yesterday:
153