아래 코드를 실행하면 놀랍게도..
입력된 숫자에 대한 팩토리얼 값이 출력된다. 단, 플랫폼은 x86 한정으로..;;
(뭐, 컴퓨터가 돌아가는 원리를 아는 사람이라거나 맨날 기계어 코드 들여다보는 게 직업인 사람이라면 전혀 새삼스러운 일이 아니겠지만)

비주얼 C++뿐만이 아니라 도스용 DJGPP로도 프로그램이 잘 동작하는 걸 확인했다. 둘 다 IA32 아키텍처인 건 동일하니까 이는 당연한 귀결.

int main(int argc, char* argv[])
{
 BYTE instrs[]={
  0x55,
  0x8B,0xEC,
  0x83,0xEC,0x08,
  0xC7,0x45,0xFC,0x01,0x00,0x00,0x00,
  0x8B,0x45,0xFC,
  0x89,0x45,0xF8,
  0xEB,0x09,
  0x8B,0x4D,0xF8,
  0x83,0xC1,0x01,
  0x89,0x4D,0xF8,
  0x8B,0x55,0xF8,
  0x3B,0x55,0x08,
  0x7F,0x0C,
  0x8B,0x45,0xFC,
  0x0F,0xAF,0x45,0xF8,
  0x89,0x45,0xFC,
  0xEB,0xE3,
  0x8B,0x45,0xFC,
  0x8B,0xE5,
  0x5D,
  0xC3
 };

 PVOID pv = instrs;
 
int (*pfn)(int) = reinterpret_cast<int (*)(int)>(pv), y;
 while(1) {
  printf("? "); scanf("%d", &y); if(y<1) break;
  printf("%d\n", pfn(y));
 }
 return 0;
}


프로그래밍 언어의 인터프리터 내지 just-in-time 컴파일러를 만든다거나,
가상 기계 에뮬레이터를 만드는 것은 어렵지 않다.
결국 핵심이 뭐냐 하면 컴퓨터가 직통으로 실행하는 코드 자체를 실행 시간에 메모리에다 생성하는 건데,
함수 포인터가 가리키고 있는 게 바로 저런 것들이다.

물론, 위에서처럼 실행해야 할 코드가 완전히 고정돼 있는 경우라면
소스 코드에다 인라인 어셈블리를 집어넣으면 되겠지만, 그 코드는 데이터 영역에 들어가는 게 아니라 소스 코드(text) 영역에 그대로 포함되어 버리게 될 것이다.

위의 팩토리얼 함수는 물론 컴파일러가 생성해 준 코드를 복사한 것이다.
최적화를 안 한지라, 간단한 for 루프 하나밖에 없는 함수가 코드 길이가 꽤 길다.
최적화를 하고 나면 정상적인 함수 입출력 껍데기에 해당하는 코드조차도 거추장스러운지 생성되지 않아서
그걸 저렇게 따로 떼어내서 쓸 수가 없었다.

Posted by 사무엘

2011/07/08 08:06 2011/07/08 08:06
, ,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/537

프로그래밍 잡설

1. 닷넷 기반 프로그램의 특징:

- 뜨는 데 시간이 좀 오래 걸린다.
- 파일 내부를 들여다보면 전통적인 네이티브 프로그램처럼 kernel32, user32, gdi32 따위가 아니라, mscoree.dll에 대한 Dependency만 있다.
- 생성하는 GUI 윈도우들의 클래스를 보면 WindowsForm10 이런 명칭으로 시작한다.
- 같이 들어있는 DLL들이 '뭐.뭐' 이런 식으로 대소문자가 섞이고 중간에 마침표도 있는 등, 이례적으로 이름이 긴 경향이 있다. 네이티브 EXE/DLL은 그런 식으로 작명되는 경우가, 금지되거나 불가능한 건 절대 아님에도 불구하고, 거의 없다. 유닉스 내지 심지어 도스 시절 8.3 영향을 받은 짧고 암호 같은 영어 알파벳 조합이 아직까지 대세.

유명한 닷넷 프로그램으로는 MS Keyboard Layout Creator, Paint .NET이 있다. 비록 닷넷 기반으로 비주얼 베이직.NET과 C++ managed extension 같은 언어도 있긴 하지만, 그래도 90%이상의 여건에서는 닷넷이 곧 C#이나 마찬가지이다.

게임 자체는 모르겠지만, 최소한 게임과 관련된 툴 정도는 C#으로 만드는 게 충분히 승산이 있는 단계에 이른 것 같다. 스타크래프트의 StarEdit처럼 고객이 사용하는 툴이든, 게임 개발사 내부에서 디자이너나 기획자가 쓰는 툴이든 말이다. C#은 일종의 가상 기계 프레임워크 기반이면서도 로컬 환경 역시 적당하게 잘 공략한 것 같다. 이제 MFC는 덩치가 커져도 너무 커졌고, C#은 빌드 속도 같은 생산성 면에서 C++을 압도적으로 능가한다.

게임 클라이언트에 이어 게임 서버까지 C#으로 만들어 돌리는 날이 과연 올지는 모르겠다. 컴퓨터의 성능이 계속 향상되니까 괜찮을 거라는 말이 있지만, 그래도 과거에 C/C++은 어셈블리와 일대일 대응하는 최소한 네이티브 코드 생성 언어이지 않았던가.
다만, 아직은 C# 프로그램이 네이티브에 비해 느린 건 둘째치고라도, 앞서 말했듯이 좀 무겁다는 인상이 짙게 느껴진다. (뜨는 데 걸리는 시간) 이게 좀 개선됐으면 좋겠다. 듣자하니, MS는 내부적으로는 C# 코드를 산뜻한 네이티브 코드로 빌드해 주는 컴파일러를 보유하고 있다는데..;;

2.
본인, 전공이 전공이다 보니 소위 '국어 정보 처리' 분야의 프로그램들을 좀 접했다. 형태소 분석, 말뭉치 검색 등.
비주얼 C++ + MFC로 만들어진 게 다수이지만 2005년 이후부터는 C#을 쓴 것도 심심찮게 보인다. 다만, '깜짝새'라고 유명한 프로그램이 있는데, 얘는 이례적으로 델파이로 개발됐다.

이런 프로그램들은 그 특성상, 결과 데이터를 마치 스프레드 시트처럼 row-column 형태의 출력하는 경우가 많다. 그런데 순수하게 처리를 하는 비용뿐만이 아니라, 처리가 끝난 결과 데이터를 해당 리스트 컨트롤에다 등록하는 데 걸리는 시간도 만만찮아서 본인은 그게 불만이다. 결과 출력하느라 리스트 컨트롤의 스크롤바가 쫘르륵~~ 변하는 모습을 보고 있으면 좀 민망하다. 불필요한 화면 refresh가 수천, 수만 회 발생하고 있다는 뜻이지 않은가?

대용량의 데이터를 그런 형태로 출력할 때는, owner-draw라든가 virtual list control 테크닉을 써서, 결과 데이터를 일일이 리스트 컨트롤로 복사하는 게 아니라, 그때 그때 출력을 내가 직접 하도록 해야 한다. 이렇게만 하면 프로그램의 체감 동작 속도가 월등히 빨라지며 메모리도 크게 아낄 수 있다.
도스 시절이었다면 리스트 컨트롤 같은 컴포넌트라는 개념 자체가 없었을 터이니 이런 비효율 자체가 존재할 여지가 없었을 것이다. 물론, 소프트웨어의 재활용성면에서 도스는 어차피 빵점인 열악한 환경이니 도스 시절이 마냥 좋다는 건 아니다.

저런 프로그램들이 어떤 여건 속에서 개발되었는지 잘은 모르겠다. 허나, 열악한 자금과 시간에 쫓기면서 공밀레 공밀레 하면서 만들어진 프로그램이라면, 개발자가 아무리 날고 기는 천재 프로그래머라고 해도 답이 없다. 품질을 보증할 수 없고, 이런 자그마한 곳에서의 사용자 배려 따위는 절대로 기대할 수 없다. 이는 개인의 프로그래밍 실력과는 하등 관계 없는 문제이다.

그 반면에 <날개셋> 한글 입력기가 가히 변태적인 수준의 최적화를 자랑하며 개발되고 있는 이유는 시간과 돈에 전혀 구애받지 않고 전적으로 개인의 자아 실현을 위해 만들어지는 프로그램이기 때문이다. -_-;; 언제까지나 그런 태도로 프로그램을 만들 수는 없으니까 그게 문제지만.
이런 문제를 이쪽에 계시는 교수님들도 인지는 하고 있지만, 우리나라 IT 인프라에 전반적으로 딱히 답이 안 보이는 문제이니 어쩔 수 없다.

3.
C/C++ 부류의 type 시스템은 액세스(MS Access)와 비슷하고,
파이썬 부류의 type 시스템은 엑셀(MS Excel)과 비슷하다. 진짜 딱 대응하는 것 같다.

스프레드 시트인 엑셀은 아무 셀에 아무 타입의 데이터나 바로 집어넣을 수 있으며, 그러면 그 형태를 엑셀이 알아서 인식해서 출력해 준다. 날짜는 날짜처럼, 문자열은 문자열처럼, 숫자는 숫자처럼 오른쪽 정렬을 해서.
그러나 데이터베이스 프로그램인 엑세스는 테이블을 설계할 때 모든 애트리뷰트와 각 애트리뷰트에 들어갈 수 있는 값의 타입을 지정해야 하며, 딱 그 값만 넣을 수 있다. 문자열은 길이 제한까지도 생각해야 한다. 정말 딱딱하고 까다롭다.

엑셀은 셀의 값들에 서식도 자유롭게 지정할 수 있고 Undo도 얼마든지 가능하다. 엑세스는 그런 게 없으며, 테이블을 수정한 게 파일에도 바로 반영된다.

그러나 수십, 수백만 개에 달하는 데이터를 검색하고 한꺼번에 고치고, 테이블 간의 관계를 분석하는 동작에서 엑셀과 엑세스의 효율은...;; 더 설명이 필요하지 않을 것이다.

그럼에도 불구하고 엑세스 급의 전문적인 성능이 필요한 경우는 매우 드물다. 일반 사용자들은 어지간한 중소 규모의 데이터나 다룰 것이고 이때는 친근한 엑셀이 대부분의 경우 훨씬 더 도움이 될 것이다.

4.
PC 파워 유저라면, 윈도우용 EXE 파일에는 리소스라는 별도의 데이터 섹션이 있다는 걸 알 것이다. 윈도우용 EXE는 이례적으로 자체 아이콘을 갖춘 파일 포맷인데, 그것도 바로 리소스라는 형태로 들어있다. 운영체제는 EXE/DLL의 리소스를 조작하는 API를 제공하며, 이를 이용하면 프로그램의 메뉴, 메시지 문자열을 고쳐서 허접하게나마 프로그램을 한글화(자국어화)할 수도 있다. 물론, 모든 프로그램에 그런 테크닉이 통하는 건 아니지만.

이 일을 프로그래밍을 통해서 하려면 BeginUpdateResource, UpdateResource, EndUpdateResource라는 함수를 쓰면 된다. 다만, 윈도우 9x는 이 기능을 지원하지 않았으며 그건 NT에서만 지원됐다. 그런 기능을 어차피 일반 사용자가 쓸 일은 없었을 테니까.
그런데 신기하게도 그 당시 윈도우 9x에서 실행된 비주얼 C++ 6은, 32비트 EXE/DLL의 리소스를 고칠 수는 없었던 반면, 16비트 EXE/DLL의 리소스를 고쳐서 저장할 수는 있었다.

윈도우 API를 쓴 건지, 아니면 16비트 바이너리는 비주얼 C++의 자체 기능으로 파일을 건드렸는지는 잘 모르겠다. 다만, 16비트 바이너리와 32비트 바이너리는 리소스를 저장하는 방식이 상당히 다르기 때문에 아마 자체 기능이 아니었겠나 싶다. 근본적으로 32비트 바이너리는 wide character 유니코드를 사용하지만 16비트 바이너리는 그렇지 않다. 그래서 과거에 윈도우 3.1에다가 Win32s를 설치하면 각종 시스템 DLL뿐만이 아니라 유니코드 변환 테이블인 NLS 파일들도 잔뜩 설치됐던 것이다.

Posted by 사무엘

2011/07/06 08:09 2011/07/06 08:09
,
Response
No Trackback , 10 Comments
RSS :
http://moogi.new21.org/tc/rss/response/536

현재 세계에서 가장 높은 곳에 있는 도시는 볼리비아의 수도 라파스라고 한다. 해발 고도가 무려 3600m에 달해 우리나라의 백두산보다도 더 높다!
이 외에도 에콰도르, 콜롬비아 같은 나라들도 높은 고도를 자랑하는 곳이고, 멕시코의 수도 멕시코시티 역시 고도가 2240m로, 한라산의 높이를 능가한다. 1968년에는 이곳에서 올림픽이 개최되었는데, 평지보다 산소가 부족해서 참가 선수들이 굉장히 힘들어했다고 한다. 하지만 대기가 그만큼 옅은 덕에 멀리/높이뛰기의 기록 수립에는 도움이 됐다는 말도 있다.

과학 상식에 따르면, 대류권에서는 높이 올라갈수록 기온이 조금씩 떨어지고, 물이 끓는 온도도 차츰 내려가서 고지대에서 지은 밥은 설익는 경향이 있다. 또한, 에베레스트 산 정상 정도 되는 곳에서 산소통 없이 돌아다니면, 발을 떼어 좀 걷기만 해도 100미터를 전력질주라도 한 것처럼 숨이 가빠 온다고 한다. 학창 시절 과학동아 잡지에서 읽은 내용이다.
히말라야 산맥의 그 높은 산중턱에서 조개껍데기 화석이 발견되기도 했다니 더욱 흥미로운 사실이다.

덧붙이자면, 현재 지구를 초월해 태양계의 행성들 내부에서 가장 높은 산으로 알려진 산은, 화성에 있는 올림푸스 산. 백두산처럼 칼데라가 있는 화산 지형인지라, 과거에 화산이었던 걸로 추정된다.
화성에는 지구처럼 물이 없으니 해발 고도 같은 개념은 없고 행성의 평균 반지름이던가 하는 기준의 차이로 산의 높이를 재는데, 저 산의 높이는 25km에 달해서 에베레스트 산의 3배에 필적한다. 게다가 산 전체가 차지하는 면적은 한반도의 그것에 맞먹는다고. (단, 면적이 면적인 만큼, 경사는 굉장히 완만해서 별도의 등산 테크닉이 필요 없을 정도라 함.)

지구 같았으면 활발한 지질 활동으로 인해 아예 산맥이 생겼을 텐데, 그러지는 못하고 화성이기 때문에 그냥 크고 아름다운 단일 산이 생기는 것으로 그친 거라고들 한다. (게다가 화성 자체의 반지름이 지구의 절반밖에 안 된다는 걸 감안한다면 얼마나 큰가?)

지구에서 높은 곳을 살펴보았으니 다음으로는 낮은 곳 차례이다.
먼저 네덜란드가 있다. 국토의 상당수가 간척지이며, 해수면보다 수~십수 m가량 낮은 곳이 많다. 이런 곳에 쓰나미라도 몰아쳤다간 정말... jot망일 듯.

이탈리아의 베네치아는 과거에 한메 타자 교사 게임의 배경으로 등장해서 우리나라에 널리 알려졌다. 툼레이더 2에서 레벨 2의 배경이기도 하고.. 거기 묘사되어 있듯이 그곳은 도시 전체가 수로로 연결되어 있어 배로만 이동 가능하고 자동차가 못 다닌다. 말 그대로 물의 도시. 하지만 주기적으로 폭우의 피해를 심심찮게 당하며, 도시가 매년 진짜로 차츰 가라앉고 있어서 걱정이라 한다.

일본의 칸사이 국제 공항도 비슷한 사정. 토지 보상 문제를 원천봉쇄하기 위해 오지게 고생해서 바다 위에 인공섬을 만들고 그 위에 공항을 만들었는데... 지반이 약해서 섬이 예상보다 꽤 빠른 속도로 가라앉고 있다고 한다. 일본 침몰이 아니라 칸사이 공항의 침몰. 이미 10미터가 넘게 가라앉았고 게다가 부위별로 가라앉는 속도가 다르기까지 하다. 덜덜;;; 이 때문에 이 공항은 건설 비용뿐만이 아니라 유지 보수 비용이 장난 아니게 들고 있으며, 세계에서 공항 이용료가 비싸기로 악명 높은 공항의 순위권을 지키고 있다.

이런 인간이 만든 간척지 말고, 진짜 순수하게 자연적으로 지구 중심부에서 가장 가까이 있는 땅은 잘 알다시피 사해(dead sea) 일대이다. 그 해발 고도는 -421m이며, 인근의 여타 사막 지역과의 고도 차이는 7~800m나 된다. 해발보다 세계 무역 센터급 마천루의 높이만치 더 낮다고 생각하면 이해하기 쉬우려나?
요르단 강에서 이곳으로 유입된 물은 증발만 할 뿐 밖으로 빠져나가질 못한다. 그렇잖아도 이곳은 엄청나게 더운 곳이다.

말이 나왔으니 사해 얘기를 좀 더 하자. 사해는 저런 지형적 특성으로 인해 무진장 짜다. 일반 바닷물의 소금 농도는 3.5% 남짓이어서 보통은 퍼센트(1/100)도 아닌 퍼밀(1/1000)로 측정하는 반면, 사해의 농도는 20%가 넘는다. 그것도 모자라서 녹지 못한 소금이 기둥을 이루고 있으며, 요즘 거기는 물의 유입량보다 증발량이 더 많아서 차츰 메마르고 있다고. 몇십 년 뒤엔 사해는 물이 다 증발하고 진짜 소금 뻘밭이 될지도 모른다.;;; ㅎㄷㄷㄷ;;

사용자 삽입 이미지
이건 얼음이 아니라 소금 덩어리이다. -_-;;;

이곳에서 생명체 따윈 살지 못한다. 목 마르다고 바닷물을 마시다간 염분으로 인한 탈수 때문에 더 목 말라지고 죽듯이, 민물고기 따위가 여기 들어갔다간 그냥 즉사한다...;;

소금으로 인해 워낙 밀도가 높기 때문에, 여러분도 이미 잘 알다시피, 사해에서는 수영을 전혀 안 해도 사람 정도는 물에 그냥 둥둥 뜬다. 뭐, 그렇다고 해서 아예 물 위에서 서서 첨벙첨벙 걸을 수 있을 정도는 아니겠지만. (예수님의 기적은 신기하기 그지없다!)
사해 수면에 둥실둥실 떠서 한가롭게 책이나 신문을 읽는 아저씨 사진은 누구나 본 기억이 있을 것이다.

어렸을 때 물에다 계란을 넣어서 가라앉혔는데, 소금을 집어넣자 그게 떠오르는 실험을 한 기억이 난다.
그러고 보니, 초딩~중딩 시절엔 소금물의 농도와 관련된 수학 방정식 문제들이 본인을 무척 괴롭혔었다..;;
사해의 물은 민물보다 그만큼 더 단단(?)하고 끈끈하기 때문에, 민물에다 하듯이 다이빙을 하는 것도 위험하다고 한다.

다만, 사해는 소금뿐만이 아니라 온갖 지하자원의 보고이기도 해서 관광지 이상으로 그 가치가 높다. 인간의 활용 가능성에 관한 한 사해는 결코 죽은 바다가 아니라는 뜻.
통념과는 달리, 전세계에 유통되는 소금의 상당수는 암염으로부터 채취된 것이라고 한다. 염전 생산의 비중은 그리 크지 않다. 염전을 아무 바닷가 지형에서나 조성할 수 있는 것도 아니고, 비열이 그렇게도 높은 물을 대량으로 끓이거나 증발시키는 건 역시 쉬운 일이 아닌가 보다.

사해는 성경에도 응당 등장하며, salt sea라고 창세기부터 여호수아기에 이르기까지 여러 차례 언급되어 있다. 유황불 맞고 폭삭 망한 소돔과 고모라가 있던 곳이 여기라고들 한다(소금기둥으로 변한 롯의 아내-_-). 그리고 민수기를 보면 모세에게 반역하다가 산 채로 땅속 지옥으로 떨어져 버린 고라의 얘기가 나오는데, 그들이 있던 곳이 고증상 마침 해발 고도가 가장 낮고, 고로 지옥과도 가장 가까이 있는 이곳 부근이었다고 한다.

우리나라에서 가장 높은 산인 백두산 일대와, 세계의 지붕인 에베레스트 산 일대, 노아의 방주 떡밥이 나도는 아라랏 산 일대, 세계에서 가장 넓은 호수인 카스피 해 일대가 그런 것처럼 사해도 둘 이상의 나라의 국경을 접하고 있다. 백두산 관광을 북한이 아닌 중국을 통해 가듯, 관광객들은 사해 관광을 요르단을 경유해서 하는 경우가 많다고 한다. 익사할 위험이 없다고 자기도 모르게 건너편까지 멀리 수영을 즐기는 관광객이 있는가 본데, 이는 무단 월경으로 오인당할 수 있기 때문에 주의가 필요하다고. 우리나라 같은 반도 + 분단국 정서로는 이해하기 쉽지 않은 모습이다.

사해 얘기가 길어지긴 했다만, 고산 지대만큼이나 이런 저지대에 생태학적으로 다른 side effect가 있는지는 잘 모르겠다. 더 더워지긴 하겠지만, 어차피 해수면보다 1km가 넘게 심하게 낮은 육지가 존재하는 것도 아니니 뭐..
태양계에서 압력과 온도의 극단적인 예는 물론 금성 표면이겠지만, 지표면에는 그런 곳이 없다. 그런 금성은 오히려 성층권 이상의 높은 곳의 대기 온도와 압력이 지구의 대류권의 그것과 비슷하다고 하니 흥미롭다.

Summary:

1. 아주 어렸을 때 본인, 지금의 철덕의 수준에는 훨씬 못 미치지만 그래도 약간 지구과학덕 색깔을 좀 띤 적은 있었다. -_-;;
2. 홍해는 영어로 Red Sea이지만, 홍차는 red tea가 아니다. 어??
3. 민물고기를 직류 전동차, 바닷물고기를 교류 전동차에다 비유한 건 아무리 다시 생각해 봐도 참 적절한 비유 같다. 바닷물과 민물이 만나는 곳은 바로 절연 구간(dead section)!

Posted by 사무엘

2011/07/04 08:00 2011/07/04 08:00
, , ,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/535

세상에는 갖가지 종류의 상(prize)이 있다.
그 중 세계구급인 상으로는, 우리나라에서 그토록 입상자를 배출하려고 애써도 결국 못 받고 있는 노벨 상(과학 분야)이 있고, 수학 분야에서 노벨 상보다 더 받기 어렵다는 필즈 상이 있다.
그리고 전산학계에는 튜링 상이 있고, 사회· 정치 분야에는 막사이사이 상도 있으며 교육· 문화 분야에는 세종대왕 상도 있(었)다고 카더라.

이런 상들은 연구 실적을 기관에서 따로 평가하여 입상자가 결정되는 상이지만, 아예 contest, competition을 치러서 입상자를 결정하는 대회 성격이 짙은 상도 있다. 각종 올림픽, 올림피아드가 그 예이며, 이런 곳은 상이 메달의 형태로 등급이 매겨져 있다.

그런데, 이런 세상의 많고 많은 상 중엔 영예(honor, pride)가 아닌 굴욕(humiliation)에 가까운 상도 있으니,
다윈 상이라고 혹시 들어 보셨는가?
이건 개그 내지 풍자 성격으로 온라인 공간에서 수여되는 상인데...
열성 유전자를 지닌 사람이 자신의 씨를 스스로 끊음으로써 인류의 발전/진화-_-에 공헌한 경우 수상할 수 있다.
공식 홈페이지는 여기. http://www.darwinawards.com/

그래, 한 마디로 개소리이다. -_-;;;
쉽게 말해서 ㅂㅅ같은 개죽음을 맞이하거나 최소한 생식불능이 된 사람이라면 이 상을 받을 수 있다. 더 구체적으로 말하면 다음과 같은 다섯 가지 조건이 있다.

1. 수상자는 기막히고 놀라울 정도로 충분히 멍청한 짓을 하거나 어이없는 일을 당해야 한다.
2. 수상자는 그로 인해 죽거나 고자가 돼야 한다. 내가 고자라니
3. 그 행동은 의도했건 안 했건 자신의 능동적이고 자발적인 의지로 인해 야기된 것이어야 한다.
4. 당연한 말이지만, 수상자는 정상적인 지적 능력을 지닌 사람이어야 한다.
5. 행적에 신빙성이 있어야 한다. 공신력 있는 매체에 보도되었다거나, 증언이 충분히 믿을 만하다거나.

예를 들자면,
- 공짜로 음료수를 마시기 위해 자판기를 기울이다 자판기에 깔려 죽은 사람. -_-;;; (1994년)
- 독사에게 물렸는데, 병원에 안 가고 술집에서 술이나 퍼 마시면서 깡으로 “난 독사에게 물리고도 끄떡없어”라고 자랑을 하고는 곧 죽어 버린 어느 미국인 남성 (1997년)
- 자기 집에다가 수심이 자기 키보다 얕게 수영장을 설치하고는 다이빙 후 목이 부러져 죽은 사람 (1998년)
- 광산에서 수정을 캐고 있었는데 위에 달려 있던 수정이 떨어지면서 거기에 정통으로 찔려 죽은 멕시코의 광부.. (2001년)
- 벌집을 옮기려고 온몸을 얼굴까지 보호막으로 둘러쌌는데, 작업 중에 그만 밀폐된 비닐봉지 안에서 질식사한 농부.. 숨구멍을 안 뚫었다. -_-;; (2002년)

이런 사람들이 받아 왔다. ㄲㄲㄲㄲㄲㄲㄲㄲ

이런 상이 다루는 사건들이든, 이런 상이 존재한다는 사실 자체이든 모두 단순히 엽기 해외 토픽 정도로 치부될 법도 한데
이 다윈 상은 최근에 우리나라에서 큰 주목을 받기 시작했다.
왜냐하면 작년(2010) 여름에 우리나라에서 압도적인 지지로 첫 다윈 상 수상자가 배출되었기 때문이다.

그 주인공은 바로...;;
대전 지하철 서대전네거리 역에서 휠체어 탄 채로 추락사한 어느 장애인.. ㅠㅠㅠㅠㅠ

구체적인 스토리를 아는 분도 있겠지만...
고인은 8월 25일, 지하철 타러 내려가려고 엘리베이터를 타러 가는 길이었다.
그런데 아주 간발의 차이로 엘리베이터 문이 닫히고, 엘리베이터는 한참 전에 먼저 탄 어느 60대 여인 혼자만을 싣고 매정하게 먼저 아래층으로 내려가 버렸다.
내가 알기로 지하철의 엘리베이터는 한번 문이 열리고 나면 닫히지 않고 굉장히 오랫동안 열려 있으며, 주행 속도도 아주 느리다. 비장애인들이 남용하지 말라고 말이다. 그러니, 이 엘리베이터를 놓치면 또 몇 분이 그냥 날아가는지 모른다.

나라도 짜증 났겠다. 그래서 고인은 빡쳤는지, 닫힌 엘리베이터 문을 휠체어로 쾅쾅 들이받았다. 그런데 2타 때는 약한 엘리베이터 문이 벌어졌고, 3타 때는 그가 그대로 밑으로 엘리베이터 문 아래로 추락해 버렸다.
서대전네거리 역이 얼마나 깊은 역인지는 모르겠지만.. 그 역이 무슨 여의나루나 만덕 같은 역이 아닌 이상, 설마 사람이 추락사할 높이였겠나 싶다. 허나, 몸이 불편했던 장애인은 충격을 최소화하는 자세를 유지하지 못했는지, 아래의 엘리베이터 상부에 휠체어에 앉은 채로 떨어져서 그대로 사망. 떨어지면서 순간 무슨 생각을 했을까? -_-;;;

여인이 탄 엘리베이터가 아래층에 막 도착하려던 찰나, 그 장애인과 휠체어가 엘리베이터 카 위로 쾅 떨어졌으며, 충격을 받은 엘리베이터는 그대로 불이 꺼지고 고장이 났다. 결국 그 여인도 엘리베이터 안에 한동안 갇혔다. -_-;;; 마른 하늘에 날벼락.
이 모든 장면은 CCTV에 고스란히 찍혔다.
동영상은 인터넷을 통해 삽시간에 퍼졌으며, 외국에까지 소개되면서 네티즌들은 이 사람을 올해의 다윈 상 1등급 수상자로 뽑게 되었다.

듣자하니, 당시 엘리베이터에 구조적인 이상은 없었다고 한다. 무거운 휠체어로 그 속도로 저 정도로 작정하고 쾅쾅 들이받는 건 어차피 설계 기준을 초과하는 충격이기 때문에 엘리베이터 관리자의 관점에서는 면책 사유가 성립한다고. 그러니 고인의 죽음은 정말 빼도 박도 못하고 자업자득인 꼴이 됐다. 완전 캐굴욕. 그저 묵념뿐이다.

다윈 상의 취지 자체가 고인드립인 건 말할 것도 없고, 한국식 정서라면 망자에 대한 명예 훼손감일 텐데. 에휴...;;
사실은 찰스 다윈조차도 그런 상의 이름에 자기 이름이 붙은 것으로 인해 통탄할지도 모르겠다. 다윈에 대한 고인드립 ㄲㄲㄲㄲㄲ
하지만 다윈 상의 발상 자체가 진화론적이니 이 역시 자업자득이다.
참고로, 내가 전에도 말했지만 우리나라는 한때(일제 강점기 때) 다윈의 기일을 기려서 과학의 날을 제정하기도 한 적이 있다. 왜 하필 다윈일까.;;

에어장 목사 정도면 다윈 상의 범주에 들지 궁금하다. 그런데 그건 굴욕적이긴 해도, 바보짓이라기보다는 천하의 개쌍놈짓을 하다가 자업자득으로 명을 다한 것이기 때문에 조금은 성격이 다르다 하겠다.

다윈 상 자체에는 뭔가 노골적인 종교적 이념이 없지만, 그래도 이건 창조· 진화 논쟁을 의식해서, 더 나아가 기독교를 좀 조롱하려는 의도에서 만들어졌다는 뉘앙스가 전혀 없다고 말하면 그 역시 거짓말일 것 같다. 날으는 스파게티 괴물(FSM 날스괴;;)처럼 말이다. 유한 상태 기계가 아니다!
FSM 의 공식 홈페이지: http://www.venganza.org/

FSM 하니까 여러 모로 라면교 교주가 떠오르던데.. 한국 버전은 라면이고 양놈들 버전은 스파게티이다. -_-;;
라면교 교주는 끓는 물에 돌아가셨다가 3분 만에 부활하셨다거나, 극악한 사탄의 무리인 비빔면과 짜파게티 무리를 조심하고 적그리스도인 뿌셔뿌셔에게 현혹되지 말아야 한다는 둥 그냥 웃고 넘길 수 있는 패러디 수준인 반면..
FSM에는 좀 더 수위가 높은 비수가 꽂혀 있다.

FSM 신도들이 웬만하면 하지 말았으면 하는 짓
1. 웬만하면 나를 믿는다고 남들보다 성스러운 척 하지 말았으면 좋겠다. 나는 남이 나를 믿지 않는다고 마음 상하지 않으며, 어차피 안 믿는 자들에게 하려는 말들이 아니므로 말 돌리지 마라.
2. 웬만하면 내 존재를 남들을 괴롭히는 핑계로 사용하지 말았으면 좋겠다.
(...)
6. 웬만하면 내 신전을 짓는데 수억금을 낭비하지 말았으면 좋겠다. 더 좋은 데 쓸 데가 많다.
7. 웬만하면 내가 임하여 영지를 내린다고 떠들고 다니지 말았으면 좋겠다. 이웃을 사랑하랬다. 좀 알아 먹어라.
뭐 이런 것들이 있다.

흔히 “종교는 나약한 사람들이나 의지하는 수단이지. 난 차라리 내 주먹을 믿는다”고 말하는 사람이 있다.
그거보다 조금 온화(?)한 사람이 한다는 말은 뻔하다. “뭐, 심신 수양을 위해서 종교 하나 갖는 거 나쁘지는 않지. 하지만 너무 빠지지는 말고, 특히 네 종교만 옳다는 독단에 빠지지는 마라”

국내외의 유~명한 개독안티 석학들은 종교가 지금까지 저질러 온 온갖 폐해들, 종교 때문에 벌어진 각종 참극은 둘째치고라도 그게 사람의 이성을 얼마나 마비시키고 우민화해 왔는지를 지적한다.
그걸 직설적으로 표현 안 하고 교묘하게 sarcasm을 섞어 풍자하다 보니 FSM 같은 것도 만들어진 것이리라.
애초에, FSM교는 “어이쿠! 창조론과 지적 설계를 가르칠 정도로 학교 교육이 막장으로 치닫는다면, 아예 날으는 스파게티 괴물님을 가르쳐도 되겠네요 ㅋㅋㅋㅋㅋ” 이런 비꼼의 목적으로 만들어졌다.

난 그런 것에는 별로 대응할 필요를 못 느껴서 대응 안 한다.
걔네들의 말 중에서 한 20~30% 정도는 특정 문맥에서 '몇몇 가정이 성립한다는 전제 하에서' 맞는 말도 물론 있다.
마치 성경에서 “어리석은 자가 '마음 속으로 이르기를', '하나님이 없다' 하는도다”라는 문장 자체는 참인 것과 같은 맥락에서 말이다.

신을 찾아 온 것도 인간이고 그 신이 필요없다고 신 없이 살자고 부르짖는 것도 인간이다. 그런데 과연 신 없이 인간이 잘 살면 얼마나 훌륭하게 잘 살 수 있을까? 신이 없다고 주장하는 사람이 과연 당신의 혼을 사랑하고 걱정해서 그렇게 말하는 걸까? 잘 생각해 보기 바란다.

인간이 아무리 노력해도 인간에게 진짜 중요하고 필요한 가치는 눈으로, 시스템으로 측정할 수 없으며 돈과 권력과 과학 기술로 얻을 수 없다.
그걸 측정할 수 없기 때문에 한국의 입시 위주 교육 제도 문제는 해결될 기미가 보이지 않는 것이고, 아무리 사회 개혁을 외쳐도 사회 구조는 여기서 저기로 쳇바퀴만 돌 뿐 바뀌지 않는 것이다. 잘 생각해 봐라.
아무리 돈을 쳐발라서 스펙 완벽한 배우자와 결혼해도 행복한 결혼 생활을 살 수는 없기 때문에, 상류층들이 이혼을 엄청 많이 한다. 이래도 아직 이해가 안 되겠는가?

뭐 이런 예가 부지기수이다. 인간이 우주에 갔다 오고 핵무기를 발명하고 지구촌을 인터넷으로 연결했다 한들, 과연 저 구도가 본질적으로 바뀔 수가 있을까?
이건 내 주관적인 생각이다만, 세상에 사람들의 빈부 격차가 이토록 심하고 환경과 여건 차이가 난다고 해도 하나님이 공평하다고 하는 이유가 이런 곳에 있는 것 같다. 인간에게 진짜로 공평해야 하는 건 여전히 어느 누구에게나 공평하다.

저렇게 영적으로 불만족스럽고 부족한 것이 존재하는 한, 무신론자들이 아무리 날뛰어도 절대자를 찾는 사람(굳이 기독교가 아니어도)은 없어질 수 없다고 본인은 생각한다. 무신론자 중에 미신에 빠진 유신론자들이 너무 불쌍한 나머지 그들을 위해 대신 죽을 정도의 사랑을 그들에게 베푸는 사람이라도 나오지 않는 이상 말이다.
세상에 저런 데에 왜 매달리는지 내 머리로 진짜 이해가 안 되는 시한부 종말론자, 도박 중독자, 이단들도 세상에 절대로 안 없어지고 있는데 그것보다 훨씬 더 건전한 게 당신의 논리에 설득되어 없어질 거라고? 꿈 깨라.

끝으로..
나의 종교가 '철도'라고 말한다면 그건 맞을 가능성이 높다. ㅋㅋㅋㅋ
하지만 성경에 기록된 예수님의 복음은 나에게 종교가 아니다. 편의상 여타 종교들 중 하나인 것처럼 분류하는 경우는 있지만 본인이 개인적으로 그걸 종교 차원에서 받아들이는 건 아니라는 뜻이다.

“도대체 기독교는 왜 이리도 교파가 많고 이단들도 많습니까?”라고 묻는다면 나의 대답은 간단하다.
“윈도우즈에만 온통 악성 코드나 보안 이슈가 들끓고 있고 맥OS나 리눅스는 바이러스가 거의 없는 것과 비슷한--같지는 않지만-- 이유 때문입니다. 설마 그게 OS의 기술적 우열 차이 때문이라고 생각하시지는 않겠죠?

Posted by 사무엘

2011/07/02 08:15 2011/07/02 08:15
, , , , , , ,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/534

본인은 윈도우 플랫폼용 한글 입력기의 개발자이다. 그런데 진짜 옛날 도스 시절, 텍스트 모드가 따로 있던 시절에 한글 입출력 바이오스 같은 건 어떻게 구현했는지가 무진장 궁금해질 때가 있다.
출력은 그렇다 치더라도 입력은 어떻게 구현했을까? 게다가 한글도 모자라서 한자 입력은?
그리고 한글 정도면 양반이지 도스 시절에 일본은 사정이 어땠을까? 한자 변환까지 포함한 일본어 입력이 가능했을까? -_-;;

IBM 호환 PC는 그렇게 그래픽에 최적화돼 있지도 않던 놈이었고.. 영어 아스키 코드밖에 모르는 이런 기계에다가 없는 문자를 찍기 위해서는 막대한 양의 오버헤드가 필요했다.

요즘은 잘 알다시피 사운드 카드, 랜 카드 따위는 마더보드에 통합되어 버린 지가 오래이고 GPU, PPU 같은 거나 별도로 부착하는 CPU 애드온이다. (그리고 이마저도 요즘은 본격 통합 기세-_-)
허나 한 25~30년 전에는 한글 카드라는 별도의 하드웨어가 있을 정도였다. '한글 도깨비'. 그때는 그만큼 컴퓨터의 성능이 열악했다.

한글 입출력 바이오스를 만들려면, 일단 바이오스의 글꼴을 다른 걸로 대체할 수 있을 정도로 하드웨어에 정통해야 했고 메모리 사용량이든 계산량이든 극도의 최적화 작업이 필수였다. 한글 모드에서는 텍스트의 스크롤 속도가 한 2, 30% 정도 감소하는 효과가 있었기 때문. -_-;; 더구나 기본 메모리 640KB는 그야말로 1K라도 아껴야 하는 귀중한 영역이기 때문에, 한자 글꼴 같은 건 XMS/EMS 같은 확장 메모리에다 저장하는 테크닉도 필수였다.

VGA의 기본 텍스트 모드는 잘 알다시피 가로 80글자, 세로 25글자이다. 그런데 아주 신기하게도 한 글자의 크기는 너무나 컴퓨터스럽게 잘 떨어지는 8*16이 아니라, 9*16이다. 그리고 화면 해상도는 640*400도, 640*480도 아니요 720*400이다. 정작 mode 12H 같은 그래픽 모드 중에는 640을 넘는 해상도가 없던 시절이었는데 왜 텍스트 모드만 한 글자의 폭이 8이 아닌 9였는지는 모르겠다.
한글 바이오스들은 16*16 크기의 한글· 한자 글꼴을 사용했으며 640*400 해상도의 텍스트 모드에서 동작했다.

그뿐만이 아니다. 그때 VGA 텍스트 모드에는 화면 전체의 테두리 색이라는 게 있었다! 베이직에서 COLOR문은 보통 글자색과 배경색을 의미하는 A,B만이 쓰이는데, 셋째 인자도 있어서 이걸 지정하면 화면의 테두리에도 색깔을 줄 수 있었다. 이런 기능을 누가 썼고 왜 만들었는지는 모르겠지만...
이건 DosBOX나 VMware 같은 에뮬레이터들도 지원 안 하고 있는 기능이다.
그 테두리가 차지하는 픽셀 수는 얼마나 됐을까? 이것까지 감안한 화면 해상도는 얼마였을지를 생각하면 옛날에 비디오와 관련된 하드웨어 제어는 심오함 그 자체였겠다는 생각이 든다.

텍스트 모드의 바이오스 글꼴을 다루는 테크닉을 구사한 프로그램은 흔치 않았다. 도스용 노턴 유틸리티(Norton Utility)는 이걸 환상적으로 조작해서 텍스트 모드에서 준 GUI 수준의 비주얼을 만들고 심지어 그래픽 모양의 마우스 포인터까지 구현하는 용자짓을 했다. 그리고 Screen Thief라는 캡처 프로그램은 당시로서는 흔치 않게 텍스트 모드를 색깔과 바이오스 글꼴까지 감안한 실제 그래픽 화면 픽셀 그대로 캡처하는 기능이 있었다.
뭐, 한글 바이오스가 구동된 상태에서 노턴 유틸리티 같은 프로그램을 GUI 모드로 동시에 실행했다간 '영 좋지 않은 곳에 하드웨어 접근이 일어나서' 대략 불상사가 발생했겠지만 말이다. "내 컴이 다운이라니!!"

그때는 마우스의 존재 여부를 알아오는 테크닉만큼이나 한글 바이오스의 존재 여부를 알아오는 테크닉도 있었고
이는 텍스트 모드에서 실행되는 프로그램이 선문자를 깨지지 않고 맞게 출력하기 위해서 필수였다. 도스용 V3이나 MDIR 같은 프로그램들 말이다.
그러고 보니 한글 모드에서는 아스키 번호 1~31번 제어 문자도 원래 얼굴 모양 등 각종 도형이던 게, 1바이트 선문자로 바뀌었던 것 같다.

당연한 말이지만, 한글 바이오스는 바이오스의 글자 크기가 8*16이기만 하면, 텍스트가 아닌 그래픽 모드에서도 물론 동작했다.
하지만 그래픽 모드에서까지 텍스트를 찍는 프로그램은 전혀에 가깝게 없을 테니 이건 그리 의미는 없는 기능이었다.
그래픽 모드에서 동작하던 프로그램이 crash가 발생하는 바람에 그 상태 그대로 도스로 빠져나가서 도스 프롬프트가 찍힌 게 아닌 이상 말이다.
텍스트 모드에서는 cursor가 아주 빠르게 깜빡거렸지만 그래픽 모드에서는 cursor가 깜빡이지 않는다는 중요한 차이가 있었다.

그럼, 말이 나온 김에 옛날에 접했던 도스용 한글 바이오스들을 추억 차원에서 몇 개 예나 좀 들어 보자.

1. 본인이 난생 처음으로 접했던 IBM 호환 PC는 대우 전자에 개발한 286 AT였는데, config.sys의 DEVICE 문을 통해 구동하는 자체(대우에서) 개발 소프트웨어 기반 한글 바이오스가 들어있었다. 즉, 일단 load된 후엔 메모리에서 제거하는 방법이 없어서 불편했다. (그 당시 sys 파일은 com 실행 파일과 기술적으로 비슷한 구조가 아니었겠나 싶다.)
Alt+한영을 누르면 한글 바이오스 메뉴가 떠서 영문 전용/조합형/완성형 같은 모드를 바꿀 수 있었고, Alt+한자를 누르면 일시적으로 영문 전용 모드로 전환할 수 있었다.
대우 전자에서 개발한 만큼, 조합형과 완성형뿐만이 아니라 당시 악명 높던 DH 완성형도 지원했는데, 얘는 알파벳 소문자+대문자를 묶어서 한글을 표현하는 경우도 있었던 걸로 기억한다. 물론 한글 코드의 표준화가 일단락되면서 깔끔하게 묻혀서 역사 속으로 사라졌지만.

텍스트 + 한글 모드일 때는 화면의 맨 아래에 자그마하게 현재 한글/영문 모드인지, 완성형인지 조합형인지 같은 상태가 파란 배경의 줄에다 떴다. (그래픽 모드일 때는 그런 거 없음) 텍스트 모드에서 그런 걸 어떻게 구현했는지 지금 생각하면 정말 신기하기 그지없다.
물론 아까 말했던 VGA 테두리도 그보다 더 아래에 표시되었다.

한글을 입력하다가 bksp를 누르면 그냥 바이트 단위로 지워졌다. 즉, '한'을 입력하다가 bksp를 누르면 '하'가 되는 게 아니라 그대로 조합이 끝나면서 KS 완성형 기준 '한'을 구성하는 %C7%D1 중 %C7만 남아서 깨진 문자가 보였다.
우연히 한글 초성만 입력해 놓고 한자 키를 누르니까 지금까지 듣도 보도 못한 온갖 특수문자들이 펼쳐져서 이것도 신비로움 그 자체였다.

2. 한글 MS-DOS를 판매한 MS도 응당 자체 한글 바이오스를 갖추고 있었다.
그런데 지금까지 생각해도 참 대단한 건, MS에서 만든 한글 제품은 텍스트 모드에서도 깨진 문자를 보여주는 법이 없었다.
조합 중인 문자든 조합이 끝난 문자든, 한글은 알아서 자동으로 2바이트씩 한꺼번에 지워졌다. 조합 중인 글자를 조합의 역순으로 차곡차곡 '한' -> '하' 식으로 지워 주기에는 도스 환경이 너무 열악했고, MS가 개발한 한글 바이오스는 그냥 한글을 한꺼번에 지웠다.

GWBASIC, QBASIC 같은 프로그램은 한글판이 따로 있었는데, 한글 바이오스를 구동하지 않고 한글판 프로그램을 실행하면 글자만 깨지는 게 아니라 그대로 컴퓨터가 다운됐었다!
그러나 텍스트 모드에서 GUI를 구현한 한글판 프로그램들을 잘 살펴보면, 메뉴 같은 게 배경에 있는 한글의 2바이트를 반으로 가르게 될 경우 나머지 1바이트도 알아서 지워서 표시해 줬다. 어떤 경우에도 깨진 한글의 잔해 바이트가 표시되는 일이 없었다.

아마 한글 바이오스뿐만이 아니라 응용 프로그램 차원에서 무슨 특수한 처리를 한 것 같긴 한데, 그 대신 당시 MS에서 만든 한글판 프로그램들은 한글 바이오스가 없으면 동작하지 않고, 속도도 느리고 이래저래 파워 사용자들에게서 욕 많이 먹었다. 특히 QuickBasic 한글판은 라이브러리 파일이 영문판과 호환되지 않는 등 최악의 제품이었다.

<날개셋> 한글 입력기는 현재 '마소바탕'이라고 하여 MS 한글 바이오스가 내장한 조합형 글꼴을 그대로 지원하고 있다. 조합 구조가 전통적인 8*4*4벌 도깨비 글꼴과는 다른데 이런 것까지 복원해 냈다.

3. 끝으로 태백한글이라는 프로그램이 있었다. 1994~95년까지 32비트 코드로까지 비교적 오래 개발되었고, 도깨비 글꼴을 그대로 지원한다는 점이 무척 좋았다. 얘는 아마 조합 중인 한글을 음소 단위로 지우는 기능이 있었지 싶다.

도스도 모자라서 영문 윈도우 3.x에서 한글을 구현해 냈다는 한메한글 같은 프로그램은 운영체제의 무슨 계층에서 훅킹을 해서 도대체 어떻게 만든 걸까? 파워 사용자 중에는 영문 윈도우+한메한글이 오히려 한글 윈도우보다 더 안정적이고 좋았다는 말을 할 정도였으니 말이다.
32비트 시대가 도래하기 전에 한글 IME는 DLL이 아닌 EXE이긴 했는데, 그때는 구체적으로 어떤 메카니즘을 썼는지 잘 모르겠다. 물론 그 시절에는 한 프로세스가 시스템 전체에 어떤 영향을 끼치기가 지금보다 훨씬 더 쉬웠을 테니까 그 원리가 그렇게 복잡하고 어려운 건 없었을 것이다.

이것저것 잡설이 길어졌는데, 추억에 공감하시는 분이 있다면 용자.

한글 윈도우 3.1은 실행 전에 언제나 아래와 같은 경고문이 떴었다.
보다시피 MS는 분명히 Hangeul이라는 명칭을 썼었다. 허나 지금 대세는 Hangul이 압도적으로 굳어져 버린 듯. <날개셋> 한글 입력기도 6.0부터는 표기를 Hangul로 바꿨다.

Warning: For correct execution of DOS Box in Hangeul Windows 3.1,
You should use Hangeul Windows 3.1 standard HBIOS.

Warning: Your DOS is not compatible with Hangeul MS-DOS. You may have
some problems when you use Hangeul Windows 3.1.

Press any key to continue...

Posted by 사무엘

2011/06/30 08:47 2011/06/30 08:47
, , ,
Response
No Trackback , 10 Comments
RSS :
http://moogi.new21.org/tc/rss/response/533

오늘날, 어떤 데이터(개념상 Document라고 불리는)를 메모리에 완전히 읽어들여서 사용자가 그 데이터를 편집할 수 있는 업무용 프로그램에는... 거의 필수로 undo 기능이 있다.
이건 우리가 잘 실감을 못 해서 그렇지 사용자에게 심리적으로 굉장한 안정감을 주는 편리한 기능이다. 뭘 잘못해서 망쳐 놓더라도, '미리 저장 -> 지금 문서를 저장 안 하고 예전 문서를 다시 불러오기' 같은 뻘짓을 안 해도 Ctrl+Z만 누르면 만사 OK.

소프트웨어 GUI 가이드라인 교과서를 보면, 소프트웨어는 사용자에게 '용서'(forgiveness)라는 덕목을 발휘해야 한다는 말이 나온다. 사용자가 아무리 바보짓을 하더라도 이를 최대한 추스리고 수습하고 원상복귀 할 수 있어야 한다는 뜻.
컴퓨터 프로그램은 기독교의 하나님 같은 존재가 아니다. “자유 의지가 있으니, 하늘나라든 지옥이든 선택에 따른 책임도 전적으로 네 몫이다” 주의가 아니다. 그러니 인간의 삶에도 Undo가 있으면 참 좋을 텐데 현실은 그렇지 못하니 참으로 안습이다. 오히려 '말은 하고 못 줍는다', '엎질러진 물', '소 잃고 외양간 고친다' 같은 냉정한 속담만이 있을 뿐이다.

잡설이 길어졌다만,
역사적으로 Undo라는 개념이 허접하게나마 가장 일찍부터 존재한 분야는 그래픽 프로그램이었다.
걔네들은 원래부터 문화가 좀 독특해서 마우스의 비중이 매우 높으며, 우클릭이 Context menu의 의미로 쓰이지도 않을 정도이다.
그리고 근본적으로 마우스라는 게 키보드보다 실수를 훨씬 더 하기 쉬운 입력 장비이고, 한 번의 동작으로 수백· 수천 개의 픽셀이 한꺼번이 바뀔 수 있기 때문에 Undo가 없으면 안 된다.

문득 든 생각: 그래픽 프로그램을 이용해서 마우스로 Freehand drawing을 하는 도중에 bksp 키를 누르면.. 직전의 수 픽셀 단위로 곡선을 철회하는 기능이 있으면 좋을 것 같다. 정교한 도트 노가다 할 때 유용할 것 같다. 보통 Ctrl+Z 누르면 그렸던 선 전체가 한 방에 날아가 버리잖아?

물론 Undo라는 건 그렇게 쉽게 구현할 수 있는 기능이 아니며 메모리 오버헤드가 크다.
더구나, 과거에 Undo 기능이 있던 프로그램은 딱 한 단계밖에 취소가 되지 않았었다. Ctrl+Z를 누르면 직전 작업을 취소했다가, 다시 살렸다가 하기만을 반복할 뿐이었다. (메모장.. 정확히 말하면 윈도우 운영체제의 에디트 컨트롤도 딱 그 수준의 1단계 Undo를 지원한다.)
수십, 수백 단계의 작업을 고스란히 취소하고 취소 내역을 다시 철회(redo)까지 하는 command history 수준의 multi-level undo 기능은 1990년대까지만 해도 MS 워드 같은 소수의 상업용 대형 프로그램에서나 볼 수 있었다.

이런 프로그램은 Document의 내용을 변형하는 모든 명령들이 체계적으로 분류가 돼 있다. 그래서 편집 메뉴를 열어 보면 단순히 '실행 취소 / 재실행'이라고만 돼 있는 게 아니라 '삭제 취소 / 취소된 자동 완성 재실행'처럼, 무슨 명령이 직전에 취소되었고 무엇을 재실행할지 명령의 이름까지 메뉴에 친절하게 표시돼 있기도 한다.
그 반면, Undo/redo를 염두에 두지 않고 Document를 고치는 코드가 제멋대로 섞여 있던 프로그램에다가 어느덧 갑자기 multi-level Undo/redo 기능을 최초로 추가할 일이 생겼다면 아마 십중팔구 코드를 다 갈아엎는 대공사를 해야 할 것이다.

컴퓨터의 성능이 열악하던 도스 시절엔, Undo와 Redo가 모두 존재하는 프로그램은 매우 드물었다.
아래아한글 1.x는 좀 특이한 경우인데, 줄 끝까지 지우기· 단어 지우기 같은 몇몇 지우기 명령으로 인해 지워진 텍스트만을 1회에 한해 되살리는 Undo 기능이 있었다.
그 후 아래아한글 2.0에서 97은 그 Undo의 단계가 3회로 늘었을 뿐이었다. 내 기억이 맞다면, 이 기능은 최근 3회의 주요 지우기 단축키(메뉴에 등재되지 않은)에 의해 지워졌던 텍스트 중 하나를 골라서 커서가 있는 곳에다 삽입해 주는 기능에 불과했다. 원래 있던 위치에 되돌려 놓는 것도 아니고... -_-

Ctrl+X(오려두기)야 본문이 클립보드에 고스란히 들어가 있으니 별도의 Undo 버퍼에다 저장할 필요가 없고,
Ctrl+E(지우기)로 지워진 텍스트는 의도적으로 되살리기가 전혀 되지 않는다고 도움말에 친절하게 안내까지 돼 있었다. ^^;;
그것 말고 문서나 표 레이아웃을 잘못 건드려서 망쳤다거나 하는 더 중요한 기능에 Undo 따위는.. “Undo 뭥미? 그거 먹는겅미? 우걱우걱...”이었다. 그냥 이전 문서를 새로 불러오는 수밖에..
이런 불편한 프로그램을 옛날 사람들은 어떻게 쓰고 지냈을까?

그래서 아래아한글 2002는 256단계 undo가 지원된다고 잔뜩 광고를 하고 다녔었다. MS 제품들은 진작부터 지원한 기능인데도 말이다. 하긴, 그것 말고도 글자 크기 제한이 드디어 없어지고 글자색 제한이 없어진 것도 개인적으로 무척 마음에 들긴 했다. better late than never이다.

<날개셋> 한글 입력기의 편집기 프로그램은 1.x와 2.x 시절에는 Undo 비슷한 기능도 전혀 없었다. 3.0에 가서야 32단계의 multi-level undo가 추가되기는 했으나... 글자 하나, 한글 낱자 하나 입력되는 모든 단계가 histroy에 기록된지라 실용성이 시원찮았다.
그것이 지금의 형태로 개선되 것이 4.2 버전부터이다. 연속된 에디팅 동작뿐만이 아니라 불연속적인 에디팅 동작을 한 history로 통합하는 기능까지 추가되어, 여러 블록을 동시에 삭제한 것이나 Replace All 명령을 내린 것도 한 번에 취소가 가능해졌다.

사실 <날개셋> 편집기의 에디팅 엔진은 아직 좀 효율적이지 못한 구석이 있다. Undo/redo 명령을 내리면 그 부분이 아무리 사소하더라도 문서 전체의 레이아웃을 싹 다시 하고, 화면 전체를 새로 그린다. 그렇기 때문에 수~수십 MB짜리 텍스트를 연 뒤에 Ctrl+Z를 꾹 누르고 있기가 겁난다. 본인은 이 프로그램을 만든 사람이고 프로그램의 내부 디테일이 어떤지를 잘 알기 때문에 그러기가 더욱 꺼려진다.

2004년에 만든 3.0 이래로 그냥 brute-force 알고리즘을 그 부분만은 아직까지 최적화를 못 했다. 한글 입력 부분과 직접적인 관계가 없고, 딱히 크게 티가 나는 부분이 아니다 보니 지금까지 방치되어 온 것이다. <날개셋> 한글 입력기 6.0의 다음 버전은 이 부분을 개선하여, 이제 안심하고 Ctrl+Z를 꾹 누를 수 있는 프로그램이 될 것이다.

Undo 기능과 관련된 얘깃거리를 두 가지만 더 꺼내고 글을 맺겠다.

첫째, 예전에 한번 언급한 적이 있듯이, 프로그램들이 Undo는 거의 예외 없이 Ctrl+Z로 정착해 있는 반면 Redo는 단축키가 프로그램마다 일치하지 않는 경우가 있다. MS의 관행은 Ctrl+Y인 듯하지만 Ctrl+Shift+Z인 프로그램도 있다.
아래아한글은 도스 시절에 Ctrl+Y가 지우기 명령의 일종이기 때문에 주의해야 한다. Redo를 생각하고 눌렀다가는 Redo는커녕 텍스트를 지우면서 후폭풍으로 기존 Undo history까지 모두 날려 버리기 때문이다!

둘째, Multi-level undo를 잘 구현한 프로그램이라면, 문서의 modified 플래그 처리도 잘 되어야 한다. 무슨 말이냐 하면, 문서를 저장했다가 어딘가를 건드린 후(= modified 플래그 켜짐), Ctrl+Z를 눌러 그 작업을 철회한다면 문서는 당연히 다시 unmodified 상태로 바뀌어야 한다.
그리고 반대로, 저장한 문서에 대해서 Undo를 해서 modified 상태가 됐더라도, 그걸 다시 Redo로 철회했다면 문서는 unmodified로 되돌아가야 한다. 논리적으로 당연한 얘기이다. <날개셋> 편집기는 multi-level undo가 처음으로 지원되기 시작한 3.0 때 이거 하나는 아주 철저하게 잘 구현해 뒀다.

비주얼 C++ 에디터, 그리고 국산 에디터인 EditPlus는 이 플래그 처리가 잘 된다. MS 오피스 제품도 마찬가지.
그러나 AcroEdit는 이게 되지 않아서 불편하며, 아래아한글도 2007은 처리가 되지 않는다. WordPad 역시 지원 안 함.

Undo나 Redo 같은 Command history 기능은 문서의 modified 상태까지 예전으로 되돌리는 명령이기 때문에 문서를 건드리는(modified 플래그를 언제나 켜는) 동작보다 상위에서 돌아가야 할 텐데, 이 점을 미처 고려를 못 한 것 같다. Undo나 Redo나 문서를 고치는 기능인 건 매한가지이기 때문에 무조건 modified 상태로. ^^

Posted by 사무엘

2011/06/26 08:23 2011/06/26 08:23
, , ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/531

본인의 국적인 대한민국의 건국 정체성에 대해서는 잘 알다시피 두 개의 극단적인 평이 있다.
엄친아 이 승만의 영도력으로 그 어렵고 열악하고 위태롭던 여건하에서(우리나라는 국제적으로 무슨 권리가 있는 전승국도 아니었다!) 중국도, 소련도 아닌 미국을 끌어들여 공산주의가 아닌 자유 민주주의 국가를 한반도에다 기적적으로 세웠으며, 더구나 초대 대통령이 크리스천이었던 덕분에 제헌 국회 때 감사 기도까지 올렸더라...;; 이건 밝은 면만 본 것이다.

이 국가의 사회 시스템에 대해 굉장한 피해의식이 있는 사람들이 무슨 얘기를 하는지를 굳이 여기서 또 설명하지는 않겠다. 단적인 예로 인터넷 상에 이 승만을 칭송하는 글의 양하고, 악담과 저주를 퍼붓는 글의 양의 비율이 어떻게 되던가? -_-

그런 것처럼, 미국의 태생에 대해서도 마찬가지이다.
미국이 건국 이념이 담긴 메이플라워 서약에서부터 “하나님의 이름으로 아멘”이 들어가고 지폐에 “In God We Trust”가 들어간 기독교 국가라고 자랑스러워하는 기독빠가 있는가 하면,
사실 초대 대통령인 조지 워싱턴을 포함한 미국의 건국 공신들의 상당수는 그저 이신론(deism)을 믿었을 뿐이며 성경의 하나님을 믿은 게 아니었다는 반론도 존재한다. 심지어 그들이 프리메이슨이었다는 주장까지 있다..;;
또한, 과거의 흑인 노예라든가 인디언들 학대 문제 같은 흑역사를 들추면서 미국을 까는 사람도 있다.

뭐, 미국이 아무리 기독교 냄새가 짙다 해도 미국의 국교가 기독교로 헌법에 명시되어 있기라도 한 건 아니며, 독일처럼 목사가 아예 공무원이기라도 한 것도 아니다. 오히려 미국은 시간이 갈수록 기독교 냄새가 옅어지고 있고, 이를 미국 내부의 크리스천들은 배도와 타락-_-이라고 표현한다.

본인은 개인 신념상의 친미와 반미 중 하나만 고르라면 명백하게 친미이다.-_-;;; 미국이 전세계를 상대로 오지랖을 떨면서 잘한 것도 있고 병크를 저지른 것도 다 있겠지만, 미국이 지금까지 세계 평화와 인류 복지에 기여하고 유익을 끼친 것이, 잘못한 것을 월등히 압도한다고 의심의 여지 없이 인정한다. 소련· 중국이나 일본 같은 나라가 세계 패권 국가였다고 생각해 봐라. 미국보다 훨씬 더 나쁜 짓 많이 했겠지..
특히 다른 나라도 아니고 대한민국 같은 나라가 반미 할 자격이라고는 정말 없다고 생각한다.

미국은 그나마 국민 의식이 선진적인 덕분에, 저렇게 많은 자유가 있으면서도 나라가 그 정도나마 질서가 유지되고 잘 돌아간다. 부자에 대한 인식이 우리나라보다 낫고, 기부나 상속에 대한 문화도 더 낫다. 국민 대다수가 그냥 시골에서 자영업이나 농업에만 종사해도 집과 차 장만하고 심지어 호신용 총까지 장만해서 잘 산다. 그러나 소수 똘똘이 엘리트들은 그야말로 세계를 호령한다.

미국은 9· 11 테러 같은 예외를 제외하면 역사상 자국 영토가 적의 침략을 직접 받은 적이 없다. (그러나 한반도는 역사상 침략을 몇 번 받았다더라? -_-) 미국의 현충일인 재향 군인의 날은, 자국을 지키기 위해 목숨을 바친 군인이 아니라 세계 각국에 나가서 남을 위해 싸운 자국 군인을 기리는 날이다.
이 뿐이던가? 미국은 건국 당시부터, 선거로 뽑힌 국가 원수가 지정된 임기 동안만 나라를 다스리는 공화정 대통령제를 시행했다. 200여 년의 역사 동안 비록 대통령의 암살은 있었을지언정 군사 쿠데타가 일어난 적이 없고 정권이 비교적 평화롭게 잘 교체되어 온 것도 한국의 현대사와 비교하면 정말 대단한 면모가 아닐 수 없다.

그 미국의 주요 전직 대통령들을 다음과 같이 요약해 봤다. 미국 시민권 득템 시험을 통과하려면 이런 거 달달 외워야 하지 않을까 싶다. 과거에 스티브 유 씨도 공부 열심히 했을 것이고. -_-
아, 혹시나 해서 하는 말인데, 본인은 “기독교인은 무조건 기독교인 대통령을 지지해야 한다” 주의가 절대 아니다. 오해 없기 바란다. 글 중에 나오는 “미국의 크리스천들은 대체로 이 대통령에 대해 이렇게 생각한다”라는 문장을 “김 용묵도 크리스천이기 때문에 이 미국 대통령에 대해 이렇게 생각한다”로 확대 해석해서 받아들이지도 말기 바란다.

조지 워싱턴: 미국의 초대 대통령이다. 그 당시 국가 원수로서의 주변의 비교 대상이 왕밖에 없다 보니, 아직은 공식 석상에서 자신을 3인칭 '짐'-_-이라고 부르고 왕처럼 행세한 면이 없지는 않다. 그러나 그는 대통령으로서의 훌륭한 본도 충분히 보였다.
그는 미국의 당시 국력에 비해서 개인적으로 이미 굉장한 부자였기 때문에, 연봉을 안 받고(요즘도 뭐 연봉 1$ CEO들이 있으니까^^) 대통령 직무를 하려고 했다. 그러나 자기 이후에는 가난한 사람 중에도 대통령이 나올 수 있다는 점을 염두에 두고, 선례를 남기려고 연봉을 받았다. 또한 결정적으로 그는, 후세에 독재자가 나와서는 안 된다며 2선까지만 한 후 깨끗이 물러났다.(물론, 이 양반은 어차피 권좌에 안 있어도 워낙 잘 살았고 아쉬울 게 없던 처지이기도 했지만. ㄲㄲ)

우리나라 초대 대통령도 애초에 부카니스탄 같은 막장 정부를 수립한 게 아니었던 이상, 딱 3선까지만 하고 스스로 물러났으면 참 좋았을 텐데. 주위의 아부꾼들이 자꾸 부추기니까, 진짜 국민이 원하는 줄 알고, 고스톱으로 치면 스톱을 안 하고 쓰리고 포고 하다 피박 나서 딥다 바가지 썼다. -_-;;

에이브러햄 링컨: 미국이 단일 국가라기보다는 아직 array/set of States에 가깝고(united가 아니라!) 껀수만 생기면 얼마든지 서로 찢어질 수도 있던 시절... 남북 전쟁이라는 비극까지 벌어지던 시절에 미국 국민들의 정신적 지주 역할을 하고, 연합한 국가로서의 미국의 근간을 세운 위대한 지도자이다.
링컨 하면 노예 해방으로 유명하지만, 그가 그렇다고 해서 흑인을 백인과 완전히 동등하게 대우하고 동등한 권리를 줘야 한다고까지 주장한 박애주의자는 물론 아니었다. 그때 아직 시대가 어느 시대였는데..
또한, <백악관을 기도실로 만든 링컨> 같은 기독교 서적까지 있긴 하지만, 이 사람은 평생 교회에 출석하지 않았으며, 신앙면에서 무척 회의적으로 지냈다는 설도 전해진다. 그래서 골수 남부 백인 출신인 피터 럭크만 같은 성경학자는, 링컨 대통령이 사실 구원 받았다는 증거조차도 없다고까지 그를 깐다. 성경을 믿는 크리스천들끼리라 해도 정치 성향이 일치할 수는 없는 모양.

시어도어 루스벨트: 20세기 초에 상당히 카리스마적인 지도력을 발휘한 훌륭한 대통령이었다고 한다. 그러나 한국의 입장에서는 가쯔라-태프트 밀약을 승인한 정권의 수뇌였으니 감정이 좋을 수는 없을 듯. “미국이 보기에도 조선이라는 듣보잡 나라는 식민지로 좀 먹혀도 이상할 게 없는 미개한 나라인 반면, 러일 전쟁에서 당당히 이긴 너희 일본은 본격 선진국 강대국 인증. 일본이 조선을 갖도록 하고, 나 미국은 필리핀을 사이좋게 나눠 갖겠다.”
그 당시는 이런 합의가 힘의 균형이요 세계 평화와 국제 사회의 질서로 간주되었으며, 이런 거 중재를 잘 한 게 아예 노벨 평화상감이던 시절이었다!
이렇게 샤바샤바가 몰래 되고 나니까, 이 승만 같은 사람이 나중에 뒤늦게 미국을 상대로 아무리 조선 독립을 호소하며 외교 로비를 해도, 얘기는 이미 다 끝났으니 당연히 씨알도 안 먹혔다.

우드로 윌슨: 민족 자결주의를 주장하고 국제 연맹을 창설한 저명한 대학 교수 겸 정치인. 우리나라의 초대 대통령인 이 승만에게 박사 학위를 준 지도 교수이다. 하지만 그의 지론은 정세상 조선의 독립에 그리 도움이 되지는 않았다. 이에 낙담한 이 승만이 “대학원에서 국제법을 아무리 배워 봤자 결국 세상은 법과 원칙이 아니라 강대국 꼴리는 대로만 돌아가니 아무짝에도 쓸모 없군요. 내가 낸 등록금 다시 돌려 주세요”라는 뼈 있는 농담을 건네기도 했다.
윌슨은 미국에서, 이 승만은 한국에서 각각 현재까지, 박사 학위를 소유한 유일한 대통령이다. (명예 박사 말고) 쉽게 말해 최고 고학력자라는 뜻.

프랭클린 루스벨트: 대공황을 극복하기 위한 뉴딜 정책을 밀어붙인 걸로 유명한 사람이고, 미국 역사상 유일하게 12년이나 대통령을 한 합법적 독재자이다. 그때까지 미국 헌법에 중임 제한이 명시되어 있지 않긴 했지만, 통상 대통령은 많아야 2선까지만 하고 제 발로 물러났었는데, 이 사람은 덥석 4선까지 해 버린 것. 그래서 대공황과 훗날 2차 세계 대전의 진주만 폭격 사이엔 기간이 꽤 긴 것 같은데, 이례적으로 미국의 대통령은 동일 인물인 것이다.
그는 소아마비를 앓아서 휠체어를 탄 것으로 유명하다. 종전을 앞둔 1945년에 돌연사했다. (뇌출혈로 인해 왕하 4:19의 장면처럼 세상을 떠났다) 그리고, 그의 서거 후에 대통령의 중임 제한이 헌법으로 추가로 명시되었다.

해리 S. 트루먼: 부통령을 하다가 루스벨트의 갑작스러운 서거로 인해 대통령직을 물려받은 양반. 대통령이 되자마자 194~50년대에 세계의 역사를 바꾸고 한국의 운명도 바꾸는 중요한 결정을 여러 차례 내렸다. 먼저 일본에다 원자폭탄의 투하를 승인함으로써 본격 2차 세계대전 종결자로 등극하였으며, 6· 25 때는 반대로 맥아더 장군의 과격한 행동거지를 견제하고 오히려 그를 해임하기도 했다.
이것 때문에 맥아더를 오로지 민족의 은인으로만 아는 반공 진영에서는 트루먼을 싫어하는 편이나, 맥아더도 당시에 하극상을 벌이면서 너무 무모한 작전을 강행하기도 했었다.

리처드 닉슨: 풍채 좋고 업적이 아주 없는 것도 아닌 양반이다만, 워터게이트 사건 하나로 이미지 다 말아먹었다. 결국 탄핵 당하기 직전에 사임했으며, 미국 역사상 유일하게 임기를 다 못 채우고 굴욕적으로 자방한 대통령으로 역사에 남았다. (본진 털리고 엘리 당하기 직전에 겨우 gg 치고 먼저 나갔다 -_-)

존 F. 케네디: 아주 유명한 대통령. 40대 초반의 상당히 젊은 대통령이고 미국 역사상 최초의 가톨릭 신자였다. 케네디의 집안은 어렸을 때부터 '대통령 배출'을 위해서 자녀들끼리 극성스러운 경쟁과 엄친아 스펙 쌓기 스파르타식 교육이 행해졌다고 한다.
가톨릭 신자는 교회 헌법상 국적이 둘이다(다른 하나는 바티칸-_-). 이 때문에 케네디는 대선 후보 시절에 “당신이 대통령이 된다면, 만약 미국의 국익과 바티칸 시국의 국익이 상충할 때는 어떻게 하겠는가?” 같은 낚시성 질문까지 주변으로부터 받았다고.
종교가 천주교라는 점, 취임 선서 때 무엄하게도(?) 성경에 손을 얹지 않은 점, 게다가 공립 학교에 비치돼 있던 십계명을 철거하고 성경 공부· 기도 시간을 없앤 점들 때문에 미국 내부의 크리스천들로부터는 나라의 기강을 싹 말아먹었다고 정말 축시의 참배급으로 가루가 되도록 폭풍처럼 까이고 있다.

잘 알다시피 케네디는 상당히 괴이하게 암살당했다. 그런데 그 암살범도 이내 암살을 당해 버려서 케네디의 죽음은 각종 음모론의 좋은 소재가 되고 있다. 무명 병사의 군대 의문사도 아니고 한 대통령의 죽음에 왜 이렇게 의혹이 많나? ㄲㄲ

로널드 레이건: Reagan이라고 적혀 있어서 '리건'이라고 낚이기 쉬운데, great처럼 이때 ea는 '레이건'이라고 발음된다. ㄲㄲ 1980년대, 우리나라의 5공 시절을 풍미했던 대통령으로, 70대의 상당한 고령으로 대통령에 취임했고 퇴임 후에도 90세가 넘게 장수했다. 킹 제임스 성경에 대해서 “우리가 처한 온갖 복잡한 문제들에 대한 해답은 저 작은 책 안에 다 들어있다”라는 말을 남긴 바 있다.

조지 부시: 이 사람과 관련해서는 걸프 전쟁밖에 생각 안 난다. 이 사람 자신은 2차 세계대전 참전 용사 출신.
듣자 하니 대선 시절엔 경쟁 후보를 상대로 사형 제도 드립을 시전하여 지지율을 뺏어오는 데 성공했다고 한다. “세상에, 자기 가족을 죽인 살인범에게도 사형 집행을 반대하겠다니, 이런 반인륜적인 불온사상의 소유자가 어찌 대통령이 될 수 있겠습니까 ㄲㄲㄲㄲㄲ” 나도 크리스천으로서 사형 제도를 적극 지지한다만 저건 말장난스럽고 좀 유치하다.. -_-;;

빌 클린턴: 스캔들 하나 때문에 탄핵 위기까지 갔던 양반. 닉슨과 마찬가지로 스캔들 자체보다도 그걸 무마하려고 거짓말을 한 게 그의 입지를 더욱 위협했었다. 문란한 사생활에다가 예수회 소속의 대학 출신이라는 점 때문에 미국의 보수-_- 기독교 진영에서는 그를 무척 싫어했지만, 대통령으로서 행적에 대한 세속 평가는 좋은 편이다.

조지 W. 부시: 젊었을 때 방황도 하고 좀 '놀기도' 했다가 나중에 기독교 신앙으로 교화되고 정신을 차린 케이스이며, 예일대도 사실 가문빨로 들어간 거나 마찬가지이다. 개인적으로 만나면 정말 친절하고 온화하며, 클린턴과는 달리 사생활도 깨끗한 사람이라고 하는데 정치인으로서는 좀 띨띨.. -_-;; 이 양반에 대해서 뭐 전쟁광이네 어쩌네 하는 모함에는 난 별 관심이 없다만, 진짜 어눌했던 건 사실이다.
그나마 신앙빨 하나 내세워서 재선까지도 아슬아슬하게 성공함. 부자가 나란히 대통령이 된 사례로 미국 역사상 둘째라고 한다.

버락 오바마: 미국 역사상 최초의 흑인 대통령. 더 이상의 자세한 설명은 생략한다.

이 사람들 말고도 미국 역사를 공부해 보면 재미있는 사람이 굉장히 많이 나온다.
성경의 열왕기처럼 누가 왕이 돼서 죽을 때까지 실컷 나라를 통치하다가 또 자기 아들에게 왕위 물려주는 패턴이 아니라, 선거로 대통령을 선출해서 지정된 임기 동안만 통치를 하게 하는 나라의 내역은 색다르지 않을 수가 없다.

Posted by 사무엘

2011/06/24 08:45 2011/06/24 08:45
, , , , ,
Response
No Trackback , 12 Comments
RSS :
http://moogi.new21.org/tc/rss/response/530

C/C++로 프로그램을 개발하는 과정에서 아주 난감해지는 경우 중 하나는, 바로 Debug 빌드와 Release 빌드의 실행 결과가 서로 다를 때이다. 개발 중이던 Debug 빌드 스냅샷에서는 잘만 돌아가는 프로그램이 정작 최적화된 Release 빌드에서는 이따금씩(항상도 아니고!) 에러가 난다면?

이런 버그는 문제를 찾아내려고 정작 디버거를 붙여서 실행할 때는 재연되지 않는 경우가 태반이어서 프로그래머를 더욱 애먹인다. 특히 복잡한 멀티스레드와 관련된 버그라면 그저 묵념뿐..;; 하지만 그런 특수한 경우가 아니라면, Debug와 Release의 실행 결과가 다른 이유는 본인의 경험상 거의 대부분이 초기화되지 않은 변수 때문이었다.

비주얼 C++은 Debug 빌드에서는 초기화되지 않은(공간 확보만 해 놓고 프로그램이 아직 건드리지는 않은) 메모리의 영역을 티가 나는 값으로 미리 표시도 해 놓고 아주 특수하게 취급해 준다. 메모리를 할당해도 좌우에 여분을 두고 좀 넉넉하게 할당하며, 때로는 그 넉넉한 여분 공간의 값이 바뀐 것을 감지하여(바뀌어서는 안 되는데) 배열 첨자 초과 같은 에러를 알려 주기도 한다. 프로그래머의 입장에서야 이건 꽤 유용한 기능이다.

그러나 Release 빌드에는 이런 거추장스러운 작업이 물론 전혀 없다. 그러니 메모리 범위를 초과한다거나, 읽어서는 안 되는 엉뚱한 주소의 메모리로부터 값을 읽거나, 올바른 영역이더라도 초기화되지 않은 쓰레기 값을 얻었을 때의 결과는 두 빌드가 서로 극과 극으로 달라질 수밖에 없다.

이렇게, 빌드 configuration에 따라 동작이 달라지는 코드는 두말 할 나위도 없이 결함이 들어있는 faulty 코드이다. 이런 코드에서 문제의 원인을 찾는 건 극도로 어려운 일이다. 서울에서 김 서방 찾기, 모래사장에서 바늘 찾기, 사격장에서 흘린 탄피 찾기가 따로 없다. ㅜㅜ 자기가 짠 코드에서 결함을 찾는 것도 어려워 죽겠는데 하물며 회사 같은 데서 남이 짠 faulty 코드를 인수인계 받았다면... -_-;;;

(본인이 다니던 모 병특 회사에서 본인의 직속 상사는 이렇게 말했다. “그런 코드를 짜는 건 프로그래밍을 하는 게 아니라 똥을 싸는 거다.” 공감한다. -_-)

C/C++은 물론 간단한 지역 변수에 대해서야 ‘이 변수를 초기화하지 않고 사용했습니다’ 같은 지적을 컴파일 시점에서 해 준다. 그러나 복잡한 포인터나 배열로 가면 일일이 그 용법이 올바른지 컴파일 시점에서 판단하지는 못한다. 그저 프로그래머가 조심해서 코드를 작성하는 수밖에 없다.

이와 관련된 본인의 경험을 소개하겠다.
꽤 옛날에 짜 놓은 비주얼 C++ MFC 기반 GUI 프로그램 소스의 내부에서, 핵심 알고리즘만 떼어내서 다른 콘솔 프로그램에다 붙여야 할 일이 있었다.
그 당시에는 나름 구조적으로 프로그램을 만든 것이지만, 지금 관점에서 모듈간의 cohesion은 여전히 개판오분전이었던지라 상당수의 코드를 리팩터링해야 했다.

그래서 코드를 붙였는데, 원래의 GUI 프로그램에서는 잘 돌아가던 코드가 새로운 프로젝트에서는 얼마 못 가서 뻗어 버렸다. Debug 빌드와 Release 빌드의 실행 결과가 다른 건 두말 할 나위도 없거니와, 심지어 같은 Release 빌드도 F5 디버거를 붙여서 실행하면 별 탈이 없는데 그냥 실행하면 뻗었다! 이건 스레드 쓰는 프로그램도 아닌데! 이거야말로 제일 골치 아픈 경우가 아닐 수 없었다.

Debug 빌드는 Release 빌드보다 워낙 느리게 돌아가고, Release 빌드도 디버거를 붙였을 때와 그렇지 않았을 때 성능이 살짝 달라진다. 그러니 앞에서 언급했듯이 스레드 관련 race condition은 영향을 받을 수 있다. 하지만 그런 것도 아니라면? 의심스러운 배열은 무조건 다 0으로 초기화하고, 혹시 내가 리팩터링을 하면서 실수를 하지는 않았는지 몇 번이나 꼼꼼이 살펴봤지만 문제는 눈에 띄지 않았다.

별 수 있나. printf 로그를 곳곳에다 박아 넣어서 의심스러운 부분을 추적한 뒤 다행히 문제를 찾아냈다.
게임 같은 리얼타임 시스템에서는, 심지어 디버그 로그 찍는 코드만 추가해도 버그가 쏙 숨바꼭질을 해 버리는 막장 중의 막장 경우도 있다만 내 프로그램은 그런 정도는 아니어서리..;;

사실은 기존 GUI 프로그램에서 돌아가던 코드에서부터 문제가 있었다.
배열을 선언했는데, 0~1번 인덱스에 접근할 일이 없어서

ptrData = new char[100];
ptrData-=2;

같은 잔머리를 굴려 줬던 것이다. 요런 짓을 옛날에 Deap 자료구조를 구현할 때도 했던 것 같다.
그러니 이 포인터로는 0과 1번 인덱스를 건드리지 않아야 하는데...
그런데 그것이 실제로 일어났습니다. ㄲㄲㄲㄲㄲ

그 허용되지 않는 메모리의 상태가 GUI 프로그램과 콘솔 프로그램, 심지어 같은 프로그램도 Debug와 Release, 디버거 붙이냐 안 붙이냐 여부에 따라 싹 달라져서 나를 골탕먹였던 것이다. 예전에는 수 년째 아무 탈 없이 잘 돌아가던 코드가 말이다.
저런 간단하고 고전적인 배열 첨자 초과 문제가 이런 결과를 야기할 줄 누가 알았을까?

C/C++은 내가 짠 코드를 내가 완전히 책임질 수 있고 컴퓨터 관점에서의 성능· 능률· 최적화가 중요한 해커나 컴덕후에게는 가히 환상적인 언어이다. 이보다 더 좋을 수가 없다. 예전에 내가 비유했듯, 세벌식이 기계 능률과 인체 공학적인 특징을 잘 살린 것만큼이나 이 언어는 고급 언어의 특성과 기계적인 특성을 꽤-_- 잘 절충했다.

그러나 언어의 구조적으로 가능한 무질서도가 너무 높은 것도 사실. C/C++가 까이는 면모 자체가 크게 (1) 언어 자체의 복잡도 내지 결함 그리고 (2) unmanaged 환경이라는 여건 자체라는 두 갈래로 나뉘는 양상을 보인다. 오늘날의 소프트웨어 시스템에서 프로그래밍 언어는 모름지기 수십, 수백만 줄의 프로젝트에서 살인적인 복잡도를 제어 가능해야 하고, 작성한 코드의 최소한의 품질과 안전성이 보장되어야 하며, 또 무엇보다도 빨리빨리 빌드가 돼야 하는데 C/C++은 영 한계를 보이기도 한다.

뭐, 그래도 이미 C/C++로 작성된 코드가 너-_-무 많고 그것도 다들 중요한 저수준 계층에 있다 보니, 이 언어가 쉽게 없어지지는 않을 것이고 특히 C++은 몰라도 C는 절대 안 없어지리라.. ㅋㅋ 프로그래밍 언어의 라틴어급.

C/C++과는 전혀 다른 언어이다만, 과거엔 QuickBasic도 IDE에서 돌리는 프로그램과, 실제로 컴파일-링크를 한 EXE의 실행 모습이 대동소이하게 달라서 프로그래머를 애먹이기도 했다. 물론 이건 C/C++에서의 Debug/Release와는 다른 양상 때문에 차이가 나는 경우이다.
결론은, 프로그램 작성하다가도 틈틈이 Release 형태로 최종 결과물을 확인하는 게 필요하다. ^^

Posted by 사무엘

2011/06/22 08:23 2011/06/22 08:23
,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/529

세벌식 찬사

요즘 <날개셋> 타자연습에서 추가된 "김 화백 어록" 연습글로 재미있게 타자 연습을 하고 있다. 이런 연습글을 진작에 추가할 생각을 왜 못 했는지 모르겠다. ㅋㅋㅋㅋ

본인은, 사람이 타자를 하는 동작이 컴퓨터 CPU가 돌아가는 과정과 비슷한 구석이 있다는 생각을 오래 전부터 해 왔다.
연습글은 기계어 인스트럭션들이고, 글을 읽는 사람의 눈은 디코더. 타자 속도는 클럭 속도.-_-;;
CPU에 캐쉬 메모리가 있고 파이프라이닝이 있는 것처럼, 사람이 타자를 하는 것도 사실은 글자 단위가 아니라 최소한 단어 단위, 덩어리 단위로 하게 된다. 영문 독해를 빨리 하려면 단어 하나하나가 아니라 덩어리가 통째로 머리에 들어와야 하듯, 타자도 마찬가지이다. 글자 나부랭이 깨작깨작 눌러가지고는 마치 독수리 타법만큼이나 속도가 빨리 날 수가 없다.

세벌식이 두벌식보다 우수하고 속도가 빠른 이유는, 겨우 자모 단위가 아니라 그렇게 머릿속의 덩어리를 그대로 글자판의 손동작으로 옮기는 데 두벌식보다 월등히 더 유리한 구조이기 때문이다. 익숙한 어절이 등장하면 그 초중종성 낱자와 손 모양이 일대일 일심동체가 되어 머리의 지시가 마구잡이로 손으로 전달되고, 머리는 그 글자의 다음 글자가 이루는 손 모양까지 예측하게 된다. 일명 날타. 이런 최적의 조건이 잘 만족되면 세벌식으로 단문은 900~1000타도 어렵지 않게 나온다.

CPU로 치면 파이프라인이 쫙쫙 잘 되는 인스트럭션이라 할 수 있는데 공 병우 세벌식은 우-좌 리듬감 덕분에 이런 게 잘 된다. 쭈루루룩~ 그냥 타자를 치고 싶어진다. '한글날' 같은 글자... 쫘르륵~ 파이프라인이 최적이다.

날타는 오타가 나기 쉽다. 그런데 세벌식은 모아치기라든가 각종 한글 입력 설정 보정을 통해서 그런 오타를 보완하는 시스템까지 갖출 수 있으니, 심리적으로 더욱 편하고 막힘없이 타자를 할 수 있다. 꽤 오랫동안 지치지 않고 장문을 단문 치듯 치는 게 가능하다.
물론 세벌식에서도 '예의, 엽, 까'처럼 좌우 교대가 어긋난다거나 동일 손가락 연타가 발생하는 글자는 미스가 발생하긴 하지만, 종성과 초성 사이의 불규칙한 왼손 연타로 온통 얼룩져 있는 두벌식의 불편함에 비할 바야 물론 아니다.

또한, 앞에서 예를 든 것처럼 대놓고 손가락 움직임이 어긋나는 연타까지는 아니지만 세벌식으로 치기 좀 어려운 글자가 또 있다. '불량률' 같은 단어는 검지의 운지가 1단에서 4단까지 들쭉날쭉해서 세벌식을 10년 넘게 쓴 본인에게도 여전히 쉽지 않다. 이런 글자는 날타가 안 통하고 한 낱자씩 속도를 줄여서 또박또박 쳐야 한다. CPU로 치면 공간 locality의 위배 때문에 캐쉬 미스가 나는 메모리 접근에 비유할 수 있겠다. 날타냐 정타냐를 잘 결정해야 오타 없이 빠른 타자를 할 수 있다. 오타가 한 번 나면 손실이 가히 엄청나기 때문에.

두벌식은 4단을 안 쓰고, 치기 편한 글자와 치기 불편한 글자 사이의 편차가 세벌식만치 심하지는 않다.
하지만 평균적인 타자 experience가 세벌식보다 훨씬 나쁘다. 세벌식은 입체 교차이고 두벌식은 신호등이 있는 평면 교차..

어차피 800타, 900타 치지도 못하고 스마트폰용으로 작은 화면에다 그냥 버튼 수 적은 입력 방식을 만들 때야 두벌식이든 그보다 더 복잡한 입력 방식이든 크게 상관할 바가 아니다만... 생업을 목적으로 방대한 양의 글을 입력할 수 있는 정도의 규모를 갖춘 기계에서 한글을 입력하는 데 세벌식을 생각하지 않는다는 건 어불성설이다.
특히, 타자기를 지나치게 폄하하는 의견에 본인은 다음과 같은 관점에서 동의하지 않는다.

첫째, 타자기의 형태를 거의 그대로 답습한 지금 같은 키보드보다 더 보편적이고 빠른 문자 입력 스키마는 지금까지 나오지 않았으며, 본인은 앞으로도 키보드가 그렇게 호락호락 없어질 거라고는 생각하지는 않는다.
참고로 한 10년 전부터, 스마트폰 같은 게 없던 시절부터도 앞으로 음성 인식 기술 때문에 키보드가 없어질 거라는 낭설이 떠돌았었다. 과연? -_-

둘째, 사람들은 공 병우 세벌식이 타자기를 고려하느라고 뭔가 굉장히 많은 걸 희생했다고 생각하는 경향이 많다. 그러나 그렇지 않으며, 공 병우 세벌식은 기계의 물리적 호환성과 사람의 편의· 심리라는 두 토끼를 매우 훌륭한 형태로 모두 잡았다.

그리고.. 늘 하는 말이지만, 오토마타가 장땡이 절대 아니다.
두벌식은 오토마타가 있으니까 컴퓨터에서나 겨우 문제될 게 없는 수준인 반면,
세벌식은 이론적으로 오토마타가 아예 없어도 되고, 있으면 당연히 두벌식보다 훨씬 더 앞서갈 수 있다.

세벌식이 글쇠 수가 좀 많은 것은.. 그래 솔까말 손가락이 짧은 사람에게 물리적으로 약간은 불편할 수 있다.
그러나 글쇠배열 자체가 외우기 힘들다거나 배우기가 그렇게 엄살 부릴 정도로 힘든 건... 절대 절대 아니다.
정말로 두벌식을 두 시간 만에 익혔으면 세벌식은 세 시간, 아니면 그래 까짓거 네 시간 만에 익히는 정도.
그러고 나서 평생 그 글자판을 쓰는 시간은 얼마나 되며, 평생 만들어 내는 글자는 몇 자나 될까?
이게 비교나 되는 게임이란 말인가?

그 글쇠 조금 더 익히는 대신에 얻는 것, 그리고 그 글쇠 좀 줄여서 잃는 것...
내가 보기엔 전자가 훨씬 더 남는 장사인데 사람들이 고작 그것만 갖고 야단법석을 떠는 게 안타깝다.

흔히, 지금 아무리 비용이 들더라도 100년 앞을 내다보고 미래를 위해서 해야 하는 투자의 예로 남북 통일도 있고, 독립 운동-_-도 있고 220볼트 승전도 제시되곤 하는데,
세벌식을 쓰는 건 그런 것보다도 더 비용이 덜 들고, 휠씬 '덜 극단적인' 예이다.

공 박사가 아니었으면 공 병우 세벌식 같은 글쇠배열은 도대체 얼마나 더 나중에야 나오게 됐을까, 아니 지구가 멸망하기 전에 발명되는 게 가능하긴 했을까?
컴퓨터는커녕 글을 기계로 쓴다는 생각 자체가 없던 시절에 그런 걸 만들 생각을 했다면, 공 박사는 얼마나 천재이고 시대를 앞서간 사람이었던가?

오늘은 모처럼 아주 고전적인, '클래식'한 주제를 다시 꺼내 보았다.
내가 이렇게 이따금씩 세벌식에 '자뻑'하는 건.. 다 이유가 있어서이다. ^^;;

Posted by 사무엘

2011/06/19 19:22 2011/06/19 19:22
, , ,
Response
No Trackback , 8 Comments
RSS :
http://moogi.new21.org/tc/rss/response/528

김 진우 교수 (언어학자)

김 진우 교수는 한국보다 미국에서 더 유명한 언어학자로, 특히 음운론 분야에서 세계구급 권위자이다. 한국에서는 <언어>의 저자라고 말하면 그쪽 분야 전공자들은 알아듣지 싶다.
이분은 연세대 영문학과를 졸업한 뒤 1960년대 초에 미국에 건너가서 한국인 최초로 UCLA에서 언어학 박사 학위를 받으셨는데... 1964년 석사, 1966년 박사......;;; 뭐야 이거 무서워..;1)

그리고 1967년엔 곧장 일리노이 주립 대학교에 교수로 부임하여 미국에서 언어학을 가르쳤으며, 아예 언어학과 학과장까지 역임했다고 한다. 1982년엔 발행처는 모르겠지만 무슨 미국 인명 사전에 등재되기도 했다고. 도대체 무슨 연구를 하고 뭘 잘해야지 저렇게 될 수 있는지는 내게 묻지 말라..ㄷㄷㄷ;;

교수가 된 지 40년도 더 지난 지금 이분은 학계에서 가히 만렙 중의 만렙을 찍었다. 일리노이 대학 명예 교수에, 학부 모교인 연세대로부터도 “국내에서도 후학 좀 양성해 주삼” 거듭된 요청을 뿌리칠 수 없어 2007년부터 석좌 교수로 부임. 몸이 둘일 수가 없는 게 아쉬울 뿐이지 한국과 미국 어디에서도 와 달라는 곳이 쇄도하는 저명한 석학이 되었다.

서 남표 카이스트 총장과는 한 살 차이. 나이도 비슷하고 미국 유학 가서 대학 학과장을 역임한 교수 출신이라는 공통점이 있다. =_=;;

본인은 이번 학기에 국어 음운론 연구를 들었는데 교수님이 왕년에 저 정도로 괴물이셨지는 미처 몰랐다..;;
내가 언어학 쪽으로 뭘 좀 알면 저런 유명한 교수님에게서 많은 걸 얻고 배워 갈 수 있을 텐데, 나의 그릇 크기가 못 따라간다. -_-;;
지금까지 내가 낸 과제물들을 보고 얼마나 민망해하셨을까? ㅠㅠㅠㅠㅠㅠㅠ

회식 자리에서 잠시 얘기를 나눠 본 바로는 김 진우 교수님은,
제임스 맥콜리 교수(시카고 대학 언어학)와 비슷한 연배이기도 하고, 그 사람과 개인적으로 아는 사이였다고 한다. “맥콜리 교수는 머리가 워낙 비상해서 언어학을 재미로 즐길 줄 아는 양반이었음”이라고 회고하심. 흠좀..;;;
그리고 본인에게 덧붙이기를 “오, 그나저나 자네가 맥콜리 교수를 어떻게 아나?” 이러더이다.

워싱턴 대학의 故 서 두수 교수에 대해서는 개인적으로 잘은 모르지만 미국에서 국어학· 한국학 가르치는 사람이다 보니 이름만 어렴풋이 들어 봤다고 말씀하셨다. 교수 세계는 엄청나게 좁고 좁은 바닥이다 보니 원래 서로 다 안다. ㅡ,.ㅡ;; 그분의 아드님이 그 이름도 유명한 카이스트 서 총장이라고 내가 얘기하자 그건 처음 들었다며 놀라셨다.

첫 수업 시간에 언어 현상에 대한 관찰, 가설 같은 걸 강조하실 때부터 알아봤지만, 이분은 사실 이공계 마인드도 투철해 보였다. 수학· 과학 같은 과목도, 좋고 싫고를 떠나서 학교 공부는 시험만 쳤다 하면 다 100점씩 맞았다네.. ㅠㅠ

의대를 생각하기도 했지만 외과 치료가 적성에 안 맞아서 진로를 바꾸셨다고 한다. 이공계 대학원을 갔으면 자기도 서 남표 같은 거창한 사람이 됐을 거라고 웃으셨지만... 선생님, 선생님은 이미 언어학에서도 충분히 넘사벽급 만렙을 찍어 계십니다.
하긴, 언어학 자체가 추상적인 계층으로 들어가면 다 수학, 논리학인 것도 사실이고.

역시 교수 될 사람은 떡잎부터 알아보는 건가 보다. ㅠㅠㅠ
허나, 이분의 고학 시절 회고록은 우리를 숙연하게 한다.

나는 경제, 사회, 정치적으로 불안정하고 억압적인 환경속에서 소년 시절을 보냈다.
일제 강점기, 2차 세계대전, 한국 전쟁 등 교육 환경도 열악했다.
그러나 나는 가난이 무지의 핑계가 될 수 없다고 생각했다. 그래서 열심히 공부했다.

오늘의 풍요로운 환경을 활용하지 않는 학생들을 볼 때마다 나는 서글프고 안타깝다.
왜냐하면 나는 최상의 조건 속에서 단지 평범함만을 좇는다면 그건 죄라고 생각하기 때문이다.


이분, 학비 벌려고 백인들에게서 멸시 받으면서 접시 닦던 시절에는 '내가 미국까지 가서 이 짓을 왜 하고 있지? 그냥 돌아가서 한국에서 고등학교 영어 교사만 해도 충분한데' 이런 생각까지 하기도 했다고.2)
그때 학업을 때려치웠으면 오늘의 김 진우 교수는 있을 수 없었을 것이다.

서 남표 총장도 미국의 고등학교와 MIT 학부 시절에 자기 말마따나 호스로 물 쏟아붓듯이 밀려드는 학교 수업 물량 공세에 미칠 지경이었다고 한다. 물론 그 사람도 고학을 했으며, 그 당시엔 요즘 같은 자살 따윈 생각할 겨를조차 없을 정도로 바빴댄다.

이런 걸 생각하면 옛날과 지금의 환경을 어떻게 하면 좀 더 객관적으로 비교할 수 있을까 하는 생각이 든다.
지금은 교통과 통신 기술의 발달, 정보 접근성의 평등, 물질적인 풍요 면에서는 과거보다 확실히, 월등히 더 좋아졌다. 이는 본인의 세대가 우리 부모 세대에 고마워해야 할 사항이다.

그러나 그런 사회 시스템이 갖춰진 대신에 신세대들이 치르고 있는 보이지 않는 대가도 있다.
과연 요즘 대학은 옛날 정도의 고학으로 학비 조달이 가능할까?
개천에서 용 날 수 있는 가능성이 옛날과 지금을 비교하면 과연 어떻게 될까?
“미국은 자녀 나이가 18세만 되면 부모가 경제 지원을 딱 끊어 버리는데, 한국은 무슨 부모가 결혼한 자녀의 집까지 마련해 줘야 하나? 나약한 것들..” 이렇게 생각하는 분이 있을지 모르겠는데, 과연 요즘 월급 모아서 집 사는 게 현실적으로 가능할까?

어느 쪽 말도 일리가 있는 면도 있고, 어느 쪽 말도 좀 어폐가 섞인 비약도 있어 보인다. 그 중 어느 게 더 설득력이 있는지는 내 능력으로는 더 결론을 못 내리겠다.
본인 세대가 부모 세대보다야 고생을 모르고 편하게 자라고 나약한 면모가 있을 수는 있다. 그러나 그렇다고 해서 그들이 기성세대가 까는 것만치 그렇게까지 개념 없고 구제불능도 분명 아니다. 그들도 다 자기 살 길 찾아서 최선을 다해 노력하고 있으며, 정말 어지간히 어려울 때 자살하는 건 아니라는 걸 알아야 할 것이다. 아무리 찾아봐도 사회 구조적으로 답이 안 보이니까.. -_-;;

세대간의 갈등을 해소하고 사회 구조에 대한 괜한 피해· 비관 의식을 불식시키려면 이런 사회 구조에 대한 본질적인 고찰도 한번쯤 필요한 것 같다.

김 진우 교수 얘기하다가 갑자기 얘기가 옆길로 많이 샜네..;;
아무튼 저분은 천재에다 노력형... 뭐 더 말이 필요없는 타입 되시겠다. 그저 존경스러울 뿐.
나도 좀 불안한 진로를 가고 있고 학교와 회사 같이 하느라 힘들긴 하지만, 내가 정말로 도저히 못 견딜 정도로 힘든 상태인지는 다시 생각을 해 봐야겠다.


Notes:
1) 재미있게도, 분야만 다를 뿐 출신 학교가 거의 같은 동명이인이 존재한다. 연세대 경영학과 졸업 후 UCLA에서 경영학 석사, 그리고 나중에 카네기 멜론 대학에서 박사 학위를 받고 연세대 경영학과 교수가 된 김 진우 교수도 있다. 정말 헷갈리기 쉽겠다. -_-; 물론 경영학과 교수는 언어학 김 진우 교수보다는 훨씬 젊은 분이다.

2) 여담으로, 유학을 갔다 온 건 아니지만 카이스트에도 좀 비슷한 위상으로 신분을 바꾼 분이 계신다. 기초 필수 영어 과목과 교양 영문학을 가르치는 인문 사회 과학부의 이 수현 교수인데, 무려 15년 가까이나 중등학교 영어 교사로 재직하다가 홀연히 부산대 대학원에 진학하여 영문과 박사 학위를 받고 카이스트 교수로 부임..;; 지금은 역시 만렙 찍은 후 이미 명예교수가 되셨다. 그 나이에 교사에서 교수로 업글한다고 해서 돈· 시간 면에서는 그리 메리트가 없을 텐데 정말 공부 그 자체가 좋아서가 아니라면 쉽지 않은 선택이었을 것이다.

Posted by 사무엘

2011/06/17 19:18 2011/06/17 19:18
, , , , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/527

« Previous : 1 : ... 165 : 166 : 167 : 168 : 169 : 170 : 171 : 172 : 173 : ... 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:
2673295
Today:
1527
Yesterday:
1354