C 언어는 다른 언어가 언어 차원에서 기본으로 제공해 주는 상식적인 기능이 없고, 대신 별도의 함수 호출에 의존하는 형태인 게 몇 가지 있다. 거듭제곱 연산이 대표적인 예이고, 문자열 타입도 언어가 자체 제공하지 않는다. 사실은 동적(힙) 메모리를 할당하는 기능 자체가 아예 없다.

그 이유는 간단하다. 저런 기능들은 컴퓨터 CPU 명령 차원에서 직관적으로 구현 가능하지 않기 때문이다. 그래서 연산자가 그렇게도 많다는 C 언어는 거듭제곱 연산자가 없으며 pow라는 함수를 호출해야 한다. (그나마 파스칼은 그런 함수조차도 없기 때문에, exp와 log 함수 조합으로 임의의 수의 거듭제곱을 얻어내야 한다.)

메모리 할당도 마찬가지이다. 메모리 관리는 CPU뿐만이 아니라 해당 운영체제/플랫폼이 담당하는 비중도 크기 때문에, 작은 언어인 C가 언어 차원에서 자체 제공하지는 않는 것이다. malloc, free, realloc 같은 함수를 써야 한다. 그러면 윈도우 운영체제의 C 라이브러리는 내부적으로 또 HeapCreate, HeapAlloc 같은 더 저수준의 윈도우 API를 이용해서 그런 메모리 관리 기능을 구현해 준다.

그런데 C++에서는 드디어 동적 메모리 할당과 해제 기능이 언어 차원에서 연산자로 추가되었다. 바로 new와 delete 연산자이다. 그때까지 영단어로 이루어진 연산자는 sizeof가 고작이던 것이 새로 추가되었으며, 그 후로 *_cast라든가 typeid 등 여러 영단어 연산자가 C++에 추가되었다. 메모리 할당이라면 몰라도 개체의 생성과 소멸에 따른 생성자와 소멸자 함수 호출은 언어 차원에서 책임져 줘야 하는 영역이기 때문에 별도의 연산자가 생긴 것이다.

연산자가 추가된 덕분에 일단 type casting이나 sizeof 계산을 할 필요가 없게 된 것은 좋다.

pData = new DATA[nCount];
pData = (DATA *)malloc(sizeof(DATA)*nCount);

물론 번거로운 문법 정도야 C 시절에도 매크로로 대체 가능했겠지만 말이다.

#define NEW_C(T, N)  (T *)malloc(sizeof(T)*(N))

그러나 new 연산자는 malloc 함수처럼 범용적인 void* 포인터를 되돌리는 건 지원하지 않으며, 해당 타입의 배수가 아닌 크기의 메모리도 할당할 수 없다. 그렇기 때문에 가변 길이 구조체 같은 메모리를 할당하는 건 오히려 더 불편할 수 있다.
또한 할당 아니면 해제만 지원되지 C 함수처럼 realloc 기능도 없다. C++의 메모리 연산자는 오로지 개체의 생성과 소멸에만 초점을 둔 것이다. 그렇기 때문에 이것이 기존 C의 메모리 관리 함수를 완전히 대체하지는 못할 것으로 보인다.

new 연산자로 데이터 타입을 지정한 뒤에는 new DATA[100] 처럼 배열 첨자가 올 수 있고, 아니면 new Object(x, y)처럼 해당 개체의 생성자 함수에다 넘겨 줄 인자가 올 수도 있다. 두 문법 중 오로지 하나만 허용된다.
그러므로 생성될 때 생성자 함수 인자 전달이 필요한 개체는 배열로 만들 수 없다. 그러나 인자가 필요한 생성자 함수가 존재한다 할지라도, 전부 default argument가 있어서 대체가 가능하다면 배열을 만들 수 있다.

1. new operator vs operator new

이 new 연산자(new operator)는 내부적으로 operator new라는 함수를 호출하는 형태로 구현되어 있으며, 이 특수한 함수는 나름 오버로딩이 가능하다! (delete도 마찬가지) 비록 개체를 생성하여 생성자 함수를 호출한다는 기본 기능은 C++의 특성상 불변이지만, 이 연산자가 하는 일 중 메모리를 할당하고 해제하는 계층은 customize가 된다는 뜻이다.

void *operator new(size_t size);
void operator delete(void *ptr);

operator new 함수는 첫째 인자는 무조건 포인터 크기와 같은 부호 없는 정수형이어야 한다. 부호 있는 정수형도 허용되지 않는다. 그리고 리턴값은 void *이어야 한다.
한편 delete 함수는 첫째 인자는 무조건 void *이어야 하고, 함수의 리턴값은 void여야 한다. 일단 기본적인 생김새는 malloc, free와 완전히 일치한다는 뜻.

당연한 말이지만 이 함수만 단독 호출이 가능하다.
malloc(100)을 쓸 곳에 그냥 operator new(100) 이라고만 써도 된다. 그러면 어차피 new char[100]과 비슷한 효과가 나게 된다. C++ 언어는 이 함수들의 기본 구현을 라이브러리 차원에서 제공하고 있다. 만약 기본 C/C++ 라이브러리를 사용하지 않으면서 new/delete 연산자도 쓰고 싶다면 내가 직접 이들 함수를 구현해 줘야 한다.

거기에다 나만의 인자를 추가한 operator new/delete를 만들 수 있다. 예를 들어, C/C++ 라이브러리가 사용하는 프로세스 기본 힙이 아닌 다른 곳에다가 메모리를 할당하고 싶다면 이렇게 코드를 써 주면 된다.

void *operator new(size_t size, HANDLE hHeap)
{ return HeapAlloc(hHeap, 0, size); }

HANDLE hMyHeap = HeapCreate( ... );
Object *pt = new(hMyHeap) Object( ... );

new 바로 옆에다가 전달해 주는 인자는 operator new의 둘째 이후의 인자로 전달된다. delete도 비슷한 방식으로 오버로딩 가능하다. 놀랍지 않은지?

모든 개체과 기본 자료형에서 통용되는 global scope의 operator new/delete가 있는 반면, 특정 클래스에서만 통용되는 new/delete 함수를 만들 수도 있다. 함수 프로토타입은 동일하다. 이 new/delete 함수는 굳이 static을 지정해 주지 않더라도 언제나 static으로만 선언되기 때문에, 클래스 내부에 있더라도 가상 함수 지정이나 this 포인터는 지원되지 않는다. 또한 생성자· 소멸자· 대입 연산자 등과는 달리, 파생 클래스로 상속도 된다.

2. new operator vs new[] operator

그런데, 더욱 충공깽한 사실은 new와 new[] (delete도 delete[])가 구분되어 있다는 것. 이런 구분이 언제 필요하냐 하면 소멸자 함수가 존재하는 개체의 배열을 선언할 때이다. (물론 기본 자료형이 아니라 개체를 배열로 만드는 경우는 드물지만 말이다.)
우리가 요청하는 메모리의 크기와 실제로 운영체제로부터 할당되는 메모리의 크기는 여러 가지 요인으로 인해 일치하지 않는 경우가 있으며 후자가 전자보다 대체로 더 크게 잡힌다.

배열을 delete로 해제할 때는 여기에 있던 배열 각 원소들에 대해서도 소멸자 함수를 일일이 호출해 줘야 하는데, 원래 여기에 개체가 정확하게 몇 개 있었는지를 메모리 블록만 봐서는 알 수 없게 되는 것이다.
그래서 1980년대에 C++이 처음 등장했을 때는 delete 연산자에다가 배열의 개수까지 지정을 해 줘야 했다.

int *arr = new int[nCount];
Object *ptr = new Object[nCount];
(....)
delete arr; //기본 자료형은 그냥 이렇게 지워도 무방
delete[nCount] ptr; //이놈은 흠좀무

C++은 그렇잖아도 garbage collector도 없어서 불편해 죽겠는데 배열의 원소 개수까지 프로그래머가 관리해야 한다니, 이게 말이나 되는 소리인가?

프로그래머의 원성이 빗발친 덕분에 시스템이 바뀌었다. 배열의 원소 개수는 C++이 메모리를 할당하면서 내부적으로 알아서 관리하도록 바뀌고 원소 개수를 생략 가능해졌다. 그러나 그래도 이게 배열이라는 힌트는 알아서 줘야 한다. 배열일 때와 그렇지 않을 때 C++이 메모리를 관리하고 인식하는 방식은 여전히 서로 약간 다르기 때문이다.

delete arr; delete[] ptr; 를 해도 괜찮다는 소리이지 delete arr; delete ptr; 처럼 구분이 완전히 사라진 건 아니다.

그래서 operator new/delete를 오버로드했다면 operator new[]/delete[]의 오버로드도 지원된다. 둘은 인자의 의미나 하는 일의 차이는 전혀 없다. 단지 new[]의 경우, 연산자의 리턴값 포인터에다가 곧바로 개체가 저장되지는 않는다는 차이가 존재할 뿐이다. 배열 원소 개수가 앞부분에 먼저 저장되고 그 뒤의 공간부터가 쓰인다.

자바와 C#에서 볼 수 있듯, 요즘 대세는 개체는 무조건 new로 선언하는 것이다. 그게 언어 문법까지 더 명료하게 만들어 주는 효과까지 있다. 그러나 C++은 기본 자료형이든 개체든 스택과 힙에 모두 선언 가능하고, 심지어 함수 전달도 둘 다 call by name이나 reference 방식이 모두 가능하다.

일반적으로 컴파일러들은 C++의 operator new/delete도 내부적으로는 C의 malloc/free로 구현한다. 기능이 완전히 동일한데 둘의 동작 방식이 달라야 할 이유가 전혀 없기 때문이다. 그러나 원칙대로라면 malloc으로 할당한 포인터를 delete로 해제한다거나, new로 할당한 메모리를 free로 해제하는 것은 허용되지 않는 비추 행동이다. 그렇게 섞어 쓰지는 않는 게 좋겠다.

Posted by 사무엘

2010/07/28 08:27 2010/07/28 08:27
, ,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/332

1. IE-only 사이트들

세상엔 아직도 크롬/파폭 같은 비 IE 브라우저에서는 웹사이트 레이아웃이 깨진다거나, 특히 플래시 메뉴 같은 걸 클릭해도 반응이 없는 안습한 웹사이트가 적지 않다.
사실은 플래시가 아닌 메뉴 중에도 비 IE에서는 동작하지 않는 게 있다.
이런 건 주로 무슨 표준을 안 지키고 뭘 잘못 만들어서 그런 건지 개인적으로 굉장히 궁금하다.
ActiveX 같은 걸 쓴 것도 아니고 순전히 자바스크립트 같은 다른 계층의 문제일 것이다. 네이티브 코드를 실행 안 하면 절대 안 되는 상황도 아니며, 코드를 약간만 수정해 주면 의외로 금방 문제를 해결할 수도 있어 보이는데 그저 안타까울 뿐이다.

2. 이런 메뉴 디자인은 최악

그리고 이건 브라우저 호환성 문제는 아니고 웹 디자인과 관련된 다른 얘기.
마우스로 어떤 메뉴를 가리키고 있으면 하부 메뉴가 아래에 뜨고, 그 하부 메뉴를 클릭했을 때 다른 웹페이지가 뜨는 구조인 플래시 메뉴를 생각해 보자. 우리에게 아주 익숙하다. 그런데, 하부 메뉴가 세로가 아니라 주 메뉴와 같은 형태인 가로로 길쭉하게 나타나는 사이트가 많다. 가령,

[ 회사소개 ] | 제품소개 | 커뮤니티 | 사이트맵
회사는  / CEO 소개 / CI 소개 / 조직 구성 / 찾아오시는 길

같은 식.
그런데 굉장히 불편할 때가 언제냐 하면,
마우스 포인터가 { 회사는 ... 찾아오시는 길 } 이라는 하부 메뉴 영역의 위나 아래로 조금만 벗어나도 그 하부 메뉴가 싹 사라져 버릴 때 말이다. -_-++++++;;;

자, [회사소개]를 가리켰다가 저 끝의 [찾아오시는 길]을 선택하는 게 아주 고역이 아닐 수 없다. 차라리 세로로 길쭉해서 하부 메뉴가 가로와 세로로 모두 충분히 공간이 있다면 모를까 저건 좀...;;;
[조직 구성]까지 갔다가 실수로 마우스 포인터를 아래로 옮기면 하부 메뉴가 사라져 버리고, 그럼 다시 [회사소개]를 가리키러 마우스 포인터를 옮기는 삽질을 해야 한다.
그런 메뉴는 좀 하루빨리 시정됐으면 좋겠다.

3. ActiveX

인터넷 세계에서 평생까임권을 획득한 존재이다. 물론 ActiveX의 존재라든가 취지 자체가 악의 축이라고 몰아붙이는 건 좀 억울한 면, 오해가 있는 면도 있다.
2000년대 초까지만 해도 인터넷 상으로 동영상 하나 보려고 해도, 아니면 게시판용 위지윅 HTML 에디터를 좀 붙이려고 해도 온갖 듣보잡 ActiveX 없이는 안 됐었다.
동영상이야 플래시가 2005년쯤부터 완전히 접수해서 여타 플레이어들을 발라 버린 덕분에 게임이 끝났다. 사실은 플래시 자체도 ActiveX이지만 이 녀석은 쓰임이 워낙 범용적이고 전세계 PC에 널리 퍼진지라 예외로 인정되는 인터넷 필수 구성 요소가 되었을 뿐이다.

그 반면 HTML 에디터는 무척 놀랍다. 블로그의 등장과 이것 때문에 평범한 양민이 HTML 코딩으로 홈페이지 만들 일이 완전히 없어졌으며, 덕분에 로컬 환경에서 네이티브로 동작하는 웹에디터는 떡실신하고 만 것이다. 간단한 HTML 위지윅 에디터는 심지어 비주얼 스튜디오 같은 개발툴조차 내장하고 있다. 그러니 기존 웹에디터는 아예 웹사이트 관리자 아니면 HTML 기반 도움말 저작도구로 더 전문적으로 변모하지 않으면 안 되게 구도가 바뀌었다.
요즘은 게시판 하나 만들려고 해도 HTML 에디터는 필수이다. 그런 점에서 그냥 plain text 입력 폼만 덩그러니 뜨는 제로보드 4는 엄청 캐안습 구닥다리이다.

웹에서 돌아가는 위지윅 HTML 에디터가 정착해 가던 과도기에는 이랬다. 그나마 조금 배려를 했다는 사이트는 IE에서는 full feature 위지윅 에디터가 뜨고, 여타 브라우저에서는 그냥 plain text만 입력할 수 있는 에디터가 떴었다. 본인의 주 메일 계정인 드림위즈의 이메일 작성 UI가 한 2, 3년 전까진 딱 그랬었다. plain text only -> IE만 위지윅 에디터 -> 다 위지윅 에디터의 식으로 발전하여 요즘은 어디서나 위지윅 에디터 제공.

요즘은 저렇게 동영상에, 위지윅 에디터에, 어지간한 암호화까지 웹 표준이 커버하는 분야가 크게 늘어난 덕분에 웹 상으로 굳이 네이티브 코드를 소환할 일은 점점 줄어들고 있다. 인터넷 상으로 내 컴퓨터 시스템 정보를 표시해 준다거나, 진짜로 키보드 드라이버 차원의 보안을 구현한다거나, 설치되어 있는 소프트웨어 정보를 레지스트리 정보를 통해 파악한다거나.. 그 정도가 아니라면 말이다.

2000년에 처음 개발된 <날개셋> 한글 입력기 1.x는 무려 ActiveX로 만들어졌었다! -_-;;;
아직 정식 인스톨러 패키지도 없던 시절에 도스창에서 regsvr32 해 주고 <날개셋> 편집기를 구동해서 세벌식 모아치기를 쓰던 시절을 기억하거나 겪어 본 분이 독자 중에 얼마나 있을까? ㅋㅋㅋㅋ
그때 본인은 <날개셋> 자체 에디트 컨트롤을 ActiveX로 만들면 비주얼 베이직이나 심지어 웹브라우저에서도 그대로 연동 가능하다고 해서 그냥 시범삼아 그 테크닉을 써 본 것이다. 그때는 아직 인터넷 상으로 ActiveX 컨트롤 자체를 보기 힘들었고 그게 지금처럼 악의 축으로 문제되기도 전이었다. 오픈웹 운동 나부랭이 따위도 없었다. 그랬는데... 세월 참 많이도 흘렀다.
그러다 2.0부터는 그냥 일반 윈도우 컨트롤로 바뀜.

4. 운영체제 재설치

본인은 가상 머신이 아닌 실제로 사용하는 개인용 컴퓨터의 운영체제를 마지막으로 재설치한 건... 무려 2007년 초쯤이다. 3년이 넘게 윈도우 설치 화면을 볼 일이 없이 지냈으며 앞으로도 당분간 볼 일이 없을 것이다. 본인 노트북은 꽤 오래 전부터 CD롬 드라이브가 고장났으나, 이것도 쓸 일이 없으니 고칠 일도 없었다. 요즘 컴퓨터는 아예 USB 메모리로도 부팅 가능하다고 하는데, 아무리 그래도 그렇지 부팅이 가능하려면 파일 시스템 차원에서 프로그램 파일이 아주 특수하게 기록되어 있어야 하지 않나? 어떻게 그게 가능한지 궁금하다.

마지막으로 윈도우를 재설치하던 3년 반 전에는 XP를 쓰고 있었는데, 그때는 운영체제가 확실하게 맛이 가 있었다. 딱히 악성 코드나 바이러스에 걸린 것도 아니었는데 언제부턴가 제어판의 일부 구성 요소가 제대로 안 나오고, 뭔가 전반적인 성능이 떨어진 느낌이 들고.. 내가 아무리 컴퓨터 유지 보수를 귀찮아하는 게으른 타입이라 해도 이건 인간적으로 OS를 정말 재설치해야 한다는 신호라는 느낌이 팍팍 들었다. 그래서 하드를 포맷해 버렸다.

하지만 점점 운영체제의 자가 관리 능력이 향상되면서 하드를 포맷하고 운영체제를 재설치해야 할 일은 줄어들고 있다는 느낌이 든다. 아직 비스타를 3년이 넘게 써 보지는 못했으나, 굉장히 안정적이라는 건 느낀다.
다만, 각종 업데이트와 패치를 설치하면서 디스크 용량이 줄어드는 건 어쩔 수 없는 듯.
윈도우를 새로 설치하면 그때까지 누적되어 있던 온갖 업데이트, 서비스 팩들도 다 원점으로 돌아가니 안습이다. 업데이트 내역만 쉽게 export/import하는 방법이 있었으면 좋겠다.

Posted by 사무엘

2010/07/27 08:37 2010/07/27 08:37
, , , , ,
Response
No Trackback , 9 Comments
RSS :
http://moogi.new21.org/tc/rss/response/331

오늘날은 과거 어느 때보다도 소위 'name value', 브랜드가 마케팅 수단으로 매우 중요시되고 있다.
그러다 보니 철도계에서는 새로운 형태의 이기주의를 쉽게 찾아볼 수 있다.
바로, 철도역 이름에다 어떻게든 자기네 이름을 집어넣으려는 행정 단체나 대학들이다.

사실, 동 이름만 해도 지하철 역명으로 등장하는 것과 그렇지 못한 것은 인지도 차이가 날 수밖에 없다.
예를 들어 본인은 서울 종로구에 듣보잡 동이 그렇게도 많은 줄 몰랐다. 관철동, 평창동, 당주동, 동숭동, 인의동.. -_-;;; 듣보잡으로 느껴진 이유는 굳이 설명할 필요가 없을 것이다.

어떨 때는 두 대학이나 두 행정 구역이 한 역을 동시에 탐내게 되어, 부산 지하철에는 '경성대 부경대'라는 사상 초유의 스타일의 역명이 생겼고, 고속철에도 '천안아산 (온양온천)'이라는 병맛 나는 역명이 생겼다.
아직까지 (대)기업은 대학이나 행정 구역에 비해 역명 배틀에 끼려는 기미가 덜한 듯하다. 만약 그들까지 꼈다간 잠실은 롯데월드/롯데타운, 강남은 삼성타운이라고 부역명이 붙을지도 모른다. 하지만 잠실은 롯데와 관련된 명칭 대신 송파구청이라는 부역명이 붙어 있으니 아직까지는 행정 구역이 더 우선이다.

지하철 역명에다가 자기 이름을 넣으려는 대학들의 노력은 가히 눈물겹다. 주역명이 안 되면 부역명으로라도 말이다. 우리가 알게 모르게, 지금까지 부역명이 추가된 역은 엄청나게 늘어나 있다. 한세대, 폴리텍대, 나사렛대 등...
우선, 과거에 총신대입구/이수 역 병크는 굉장히 유명하며,

서울대입구 역은 위치상으로는 주역명이 관악구청, 부역명이 그나마 서울대입구 정도가 되어야 마땅하나 현실은 그 반대로 됐다. 서울대에는 역에서 내리고도 마을버스로 지하철 한 정거장 거리를 넘게 더 가야 도달할 수 있는데도 말이다.

한양대는 지하철 연계에 관한 한 가히 대인배인 학교이다. 서울 2호선 한양대 역하고는 바로 연결되어 있을 뿐만 아니라 안산선에 '한대앞'이라는 또 다른 역명까지 가지고 있다. 그러나 안산 캠퍼스는 전철역과 꽤 멀다.

고려대와 숭실대는 그나마 지하철 주역명 자리를 차지하기에 손색이 없을 정도로 위치가 좋다. 숭실대의 경우 지하철 출입구에 맞춰 정문까지 옮겼다고 한다. 서로 가까이 있는 건국대와 세종대도 괜찮은 편.
2호선은 이외에도 홍익대, 서강대 등 우리나라의 대표적인 인서울 대학을 꽤 많이 경유하기 때문에, 어지간한 고등학교 3학년 학급에서 '2호선 라인 대학에 꼭 가자'를 목표로 써 붙여 넣을 정도이다. 이뿐만이 아니라 4호선 역시 강북 구간에 유난히도 대학 이름이 주역명이나 부역명으로 붙은 역들이 많다. 한성대, 숙명여대, 덕성여대 등.

1호선은? 유명한 청량리 역에 '서울 시립대'라는 부역명이 붙었고, 회기 역에도 꽤 오래 전부터 '경희대'라는 부역명이 드디어 붙었다. 대놓고 외대앞이라는 이름이 붙은 역이 존재하기도 한다.
한편, 옛날에는 7호선 상도 역에 '중앙대'라는 부역명이 붙어 있었으나, 그 역보다 중앙대에 더 가까운 흑석 역이 9호선에 개통하면서 부역명은 옮겨 갔다.

대전 지하철 1호선은 충남대와 카이스트를 (사실상) 지나지 않아서 아쉽다. 한때 2호선이 그쪽을 지나고 엑스포 과학 공원까지 가는 순환선으로 계획되었으나 지금은 완전히 흑역사화하여 안습. 결국 카이스트와 가장 가까운 월평 역에 카이스트라는 부역명을 붙이고 학교에서 셔틀 봉고차 운행을 시작하였으나, 역에서 학교까지는 2km 가까이 가야 한다. 아마 한양대 안산 캠퍼스와 한대앞 역까지의 거리와 체감상 비슷하다.

자, 그런데 이런 모든 트렌드에 부합하지 않는 유일한 예외가 있으니 바로 신촌 역이다.
양평과 더불어 완전한 동명이역이다. (경의선과 2호선. 양평은 중앙선과 5호선)
연세대가 탐낼 법도 한 금싸라기 역이지만 부역명을 붙이려고 징징대지 않는다.
SKY 대학 중에서는 유일하게 연세대만이 지하철 노선도에서 이름을 찾을 수 없다. 지하철 역에서 그렇게 멀지도 않은데 말이다. 심지어 바로 옆의 이화여대는 대놓고 '이대'라는 역명을 쓰고 있기도 하다.

이미 신촌이라고만 해도 연세대라는 걸 한국인 중에 모를 사람이 없기 때문에 굳이 역명을 건드리지 않는 걸지도 모른다. 대인배 기질인 것일까?
(뭐, 그래도 나중에 부역명을 붙여 버린다면 낭패. ㅋㅋ 서강대는 6호선 대흥 역에 자기 이름이 부역명으로 붙어 있다.)

연세대는 들어가는 입구에서 철길을 볼 수 있는 전국에서 얼마 안 되는 복 받은 학교이다.
내 기억이 맞다면 포항공대도 옆으로 동해남부선 철길이 지난다. 그쪽에 광역전철이 있다면 효자 역이 포항공대 입성 코스가 되었을 것이나(포항공대에 더 가깝게 역을 이설까지 하면서), 동해남부선의 미래는 앞으로 알 수 없다.

Posted by 사무엘

2010/07/26 10:33 2010/07/26 10:33
, ,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/330

새와 쥐

"낮 말은 새가 듣고 밤 말은 쥐가 듣는다"
라는 속담에 등장하는 이 두 동물은 인간의 항공· 우주 쪽 첨단 산업에도 재앙과 같은 존재이다.

항공업계가 새 때문에 이만저만 골치 아픈 상황이 아니라는 건 상식에 속한다. KTX만 해도 서울에서 부산까지 한번 고고씽을 하고 나면 앞면에 작은 새나 벌레가 부딪혀서 죽은 혈흔이 심심찮게 발견되고 심지어 유리창에 금이 가기도 한다고 들었는데, 그 정도는 오히려 아주 양반.
비행기는 주변의 공기 흐름을 크게 뒤흔들어야만 하늘로 뜨고 움직일 수 있는 기계이다. 조류가 기체에 단순히 부딪히는 것뿐만이 아니라 아예 팬으로 빨려 들어가 버리면 그 생물체는 두말할 나위도 없이 아주 끔살 당하고, 비행기도 뜰 수 없을 정도로 심각한 손상을 입는다.

그래서 공항에서는 공항 주변에 새 떼들이 몰려들지 못하게 전문 용역 업체까지 동원해서 총소리와 이상한 냄새로 새들을 쫓아내고, 서식처를 없애려고 안간힘을 다하고 있다. 날씨가 좋길 바라야 한다는 점과 새떼들을 쫓아내야 한다는 점에서 항공업은 숫제 농업과 공통점이 있다. ^^;;

쥐는 어떨까? 일단 비위생적인 곳에서 병원균을 옮기는 더러운 동물이고 앞니의 성장 속도가 엄청 빨라서 뭔가를 쉴 새 없이 갉아댄다. 이 때문에 인간이 사는 집의 전선까지 갉아먹어서 누전으로 인한 화재 원인까지 제공한다. 백해무익한 동물임이 틀림없다.

우리나라의 나로 호 발사장 주변에도 로켓 발사를 앞두고 대대적인 쥐 소탕 작업이 필요했다. 우주 센터는 그 특성상 자연이 살아 숨쉬는-_- 캐오지에 들어서 있는데, 그곳 역시 개체수가 수천에 달하는 다양한 쥐들이 서식하는 곳이었다. 쥐가 시설 발사대에까지 침입해서 정밀한 기계들의 배선을 하나라도 망가뜨렸다간 시스템 전체를 가히 개발살낼지도 몰랐다.

이때 우리나라에서는 그 이름도 유명한 국내 방제 업체인 세스코에게 용역을 줬다. 50여 명에 달하는 방제 전문가들이 1년 동안 현지를 답사하여 우주 센터 주변과 건물 내외로 강력한 방어막을 구축해 줬다. 덕분에 그 후로 나로 호 시설에는 쥐로 인한 피해가 전혀 발생하지 않았으며, 훗날 나로 호 역시 최소한 쥐 때문에 실패하지는 않을 수 있었다고 한다.

이 회사는 “빵을 먹다가 바퀴벌레 몇 마리를 발견했을 때 제일 끔찍할까요? 답은 반 마리” 같은 재치 있는 광고로 좋은 대외 이미지를 구축하고 있으며, 게다가 고객 상담 게시판도 독극물을 제조하는 살벌한 업체답지 않게 가히 센스쟁이 인기 만점으로 운영되고 있는 듯하다. ^^;;

http://qilian.egloos.com/1084443
http://www.cesco.co.kr/Qna/View.aspx?startpage=1&page=3&a_day=2009-12-08%2009:54:57&idx=326457&keyField=&keyWord=

Q: 우리는 바퀴벌레를 박멸하는 너희 세스코들을 적으로 간주하며 오는 12월 25일 크리스마스 선물로 너희 세스코 본사를 대대적으로 공격할것이다. 우하하하
공격당하기 싫다면 우리 바퀴벌레에 대한 박멸을 당장 중지하고 내 통장으로 인간세계 돈으로 100만원을 입금할것을 요구한다.
거래를 거부한다면 전세계의 모든 바퀴들을 동원하여 세스코 본사를 가루로 만들어 버리겠다.

A: 치사하게 회사가 쉬는 날에 공격을 감행하다니. ㅡㅡ^
그러나 우리가 회사에 있지 않아도, 개미연합 병정개미사령부에서 본사 건물에 대한 방어를 맡기로 했기 때문에
바퀴벌레 네 녀석들의 온다 해도 걱정하지 않는다.
참, 추가로 알려줄 것이 있는데 세스코 본사의 경우 휴일에는 건물 외벽에 미약전류를 흐르게 만들었기 때문에
바퀴벌레는 커녕 개미 한 마리도 침입할 수 없을 거란 점을 참고하기 바란다. *^^*

개... 개미 사령부 ㅠ.ㅠ
세스코는 조류 충돌 방지 업무는 안 하나 모르겠다. 해충 구제와는 좀 분야가 다른가?
생각해 보니까 원자력 발전소 같은 곳도 우주 센터와 같은 맥락으로 철통 방제가 필요하지 않겠나 싶다.
게다가, 인류 역사상 최초의 컴퓨터 버그(오류· 문제점)도, 컴퓨터 내부로 날아들었던 나방.. 즉 진짜 벌레 때문에 발생했다는 점을 기억할 필요가 있다.

참고로,
공항과 새는 이처럼 사이가 몹시 나쁜 반면, 공항과 골프장은 사이가 좋아요 투나잇이다. 흔히 골프장 건설이 환경 파괴라고 까이고 있으나, 이를 뒤집어 생각하면 골치아픈 새의 서식처를 없애는 동시에 넓은 녹지대를 조성하는 방법으로 골프장보다 더 좋은 게 어디 있겠는가?
어차피 공항은 컨트리클럽이나 있을 법한 완전 외곽에 건설되며, 골프는 비행기 자주 타고 다니는 부유층 중산층에게 적합한 여가 수단이기도 하다. 여러 모로 수지가 맞다.인천 공항이 있는 영종도에도 공항 근처에 골프장이 있다.

또한 활주로 옆에도 그냥 콘크리트보다는 잔디라도 깔아 놓는 게 여러 모로 유리하다. 일단 친환경적이고 보기가 좋은 데다, 잔디는 사고가 났을 때 충격을 흡수해 주고, 콘크리트와는 달리 더운 날 열 흡수에도 좋기 때문이다.

Posted by 사무엘

2010/07/23 07:35 2010/07/23 07:35
, , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/328

자동차에서 운전대가 있는 방향이나 버스의 경우 출입문이 달린 방향은 해당 국가가 법으로 규정하고 있는 차량 주행 방향(좌측 또는 우측 통행)에 따라 다르다. 그래서 동일한 자동차 제조사라도 내수용과 수출용 configuration을 서로 달리해서 만들기도 한다.
우리나라는 잘 알다시피 우측 통행을 하는 관계로, 자동차의 운전대는 진행 방향 기준 왼쪽에 있고 대형 버스나 봉고차 같은 승합차의 출입문은 오른쪽에 달렸다. 좌우에 출입문이 다 있는 소형 승합차도 옛날에 본 것 같긴 하나, 흔하지 않다.

철도로 가 보자. 철도 차량 중에 특히 동차는 본인이 아는 한 대칭성이 가장 뛰어난 교통수단이다. 앞뒤로만 움직일 수 있는 특성상 앞뒤가 완전히 대칭이며, 전진과 후진을 완전히 동일한 성능으로 할 수 있다. 차를 돌릴 필요 없이 있는 그대로 동작이 가능하다는 뜻. 물론 동차가 아닌 기관차도 기관차 하나만 보면 앞뒤 대칭인 녀석도 있으며, 기관차를 어느 방향을 향하여 객차와 연결하더라도 아무 방향으로나 주행 가능하다.
철도 차량의 객차는 출입문 역시 좌우에 모두 달려서 전부 개폐 가능하며, 승강장이 선로의 좌우 어디에 있든지 모두 대처가 가능하다. 철도의 승강장 방향은 사실상 random이나 마찬가지이기 때문이다.

자 그럼 이제 우리의 관심사는 비행기이다. 비행기는 출입문이 어디에 달렸을까?
비행기는 돌아다니는 스케일도 전국구를 넘어선 세계구인 만큼, 본인은 언뜻 보기에 철도 차량처럼 좌우에 모두 있을 것이라고 생각했다.
그러나 그렇지 않다. 간단히 답만 말하면 민간 여객기의 출입구는 조종사의 진행 방향 기준 "왼쪽"에만 있다. 그 대신 화물은 오른쪽에서 싣는다.

비행기를 타 본 적이 있는 분이라면 과거의 기억을 떠올려 보기 바란다.
탑승교를 지나서 비행기 앞쪽에 있는 출입구로 들어간 뒤엔, 뒤쪽에 있는 이코노미 객실로 가기 위해 언제나 '우회전'을 했지 좌회전을 한 적이 없을 것이다.
또한, 반대로 비행기에서 내릴 때는 언제나 '좌회전'만 해서 비행기에서 내렸다.

뉴스에서 귀빈들이 비행기에서 밖으로 내리는 장면을 떠올려 봐도 내리는 방향은 비행기의 전방 기준 좌측이다.
그렇다. 출입구는 왼쪽에 있다. 비록 비상용 탈출구는 좌우, 심지어 천장에도 여러 군데에 있지만 말이다.

비행기들의 이 규격은 의외로 획일화 일치가 되어 있다는 뜻이다. 전세계의 공항들도 거기에 다 맞춰져 건설되어 있다. 하긴, 민간 여객기의 제조사 자체가 미국의 보잉 사 아니면 유럽 에어버스처럼 극소수이고 전세계 독점이나 마찬가지이므로 구조가 들쑥날쑥이 될 여지가 없는 것도 사실이다.

그럼 의문이 생긴다. 왜 오른쪽이 아니고 하필 왼쪽일까? 본인도 정확한 이유는 잘 모르겠지만, 그것은 과거에 배가 육지와 연결되던 방향과 관계가 있다고 한다. 오늘날 통용되는 항공 관련 용어와 각종 시스템, 컨벤션들도 상당수 선박 용어에서 유래되었듯이 말이다. 딱히 이유가 있는 건 아니고 그냥 어쩌다 보니 그렇게 되었다.

승객이 왼쪽 방향에서 타기 때문에, 비행기 조종사들은 엔진을 가동할 때 관례적으로 오른쪽에 있는 4번 엔진(승객이 타는 방향에서 가장 멀리 떨어진)부터 시동을 켠다. 이건 옛날에 소규모 프로펠러기 시절에는 승객 안전을 위해서 그럴 필요가 있었지만 오늘날에는 별 의미 없는 관행이 되어 있다.

Posted by 사무엘

2010/07/22 08:30 2010/07/22 08:30
,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/327

비행기 여행은 정말 재미있다. 이착륙 할 때가 제일 재미있다. 엔진 소리의 음높이가 팍 치솟고 '쿠르르릉!' 소리와 함께 비행기가 전속력으로 달음박질을 하더니, 이내 주변의 중력 가속도가 달라진 것 같은 느낌과 함께 비행기는 하늘에 붕 떠 있다. 이게 이륙이다.
한편 착륙은? 점점 고도가 낮아지더니 '쾅쾅!' 소리와 함께 비행기는 이내 랜딩 기어 바퀴에 의존하여 도로를 달리기 시작하고, 엔진이 역회전하여 제동 거는 바람 소리가 귀에 들려온다. 앞쪽이 아닌 뒤쪽부터 착지한다. 뒤쪽에 바퀴도 더 많이 달려 있다.

조종사에게는 이착륙이 제일 힘든 고비이지만 그건 그 사람들 사정이고, 승객에게는 이때가 제일 재미있는 순간이다. 비행기도 열차만큼이나 운전 시스템이 어지간한 건 다 자동화가 돼 있지만, 이착륙만큼은 여전히 사람의 손길이 필요하다. 그 좁은 활주로 위치에 딱 맞게 착지하는 건 정지선을 딱 맞춰 지하철 전동차를 세우는 것 이상으로 어려운 작업일 것이다. 또한, 그 집채만 한 비행기가 어떻게 하늘로 뜰 수 있는지 선풍기 위의 종이를 비롯해 소위 '베르누이의 법칙'을 설명한다는 여러 예제를 봐도 본인은 이해가 잘 안 되고 실감이 안 간다.

비행기는 최대한 높은 고도로 올라가서 난다. 비록 올라가는 과정이 힘들지만, 높은 곳일수록 대기가 옅고 공기 저항이 작아져서 연료 소모가 줄고 동력 효율이 좋아지기 때문이다. 그러나 대기가 너무 옅어서 비행기를 띄워 주는 매개체인 유체 자체가 부족할 지경이어도 안 되기 때문에, 어차피 한없이 높이 올라가지는 못한다. 열기구나 풍선은 터지기 때문에 한없이 못 올라가듯이 말이다.

장거리 여객기의 순항 고도는 3만 피트가 넘으며, km로 환산하면 약 10km 남짓이다. 지구의 대류권과 성층권 사이의 경계쯤이 되는데, 여기가 가격 대 성능비가 가장 뛰어나서 순항하기 좋은 고도라고 한다. 사실 2차 세계 대전 때 미군이 일본에 원자 폭탄을 투하할 때도 거의 9~10km에 달하는 여객기 순항 고도에서.. 이 정도로 굉장히 높은 곳에서 폭탄을 떨어뜨렸다. (그리고 떨어지던 폭탄은 지상으로부터 약 500m에 달한 지점에서 터졌다.)
우리가 지상에서 전방 10km에 아무것도 없는 탁 트인 공간을 볼 일은 거의 없다. 아쉬운 대로 비슷한 체험을 하는 건 등산을 했을 때 정도나? 그러나 비행기 안에서는 나보다 거의 10km 밑으로 성냥갑보다도 작은 집과 도로, 심지어 구름과 바다와 산까지 볼 수 있다. 참으로 놀라운 경험이 아닐 수 없다.

지구 과학 수업 시간의 기억을 떠올려 보면, 대류권에서는 높이 올라갈수록 기온이 떨어지지만 성층권에서는 올라갈수록 다시 기온이 올라간다는 걸 모르는 사람은 없을 것이다. 지상 100km 정도 고도만 돼도 이미 중간권을 지나 열권이다. 참고로 국제 우주 정거장이 있는 곳은 지상으로부터 약 400km 남짓. 즉, 서울-부산 거리 정도만 위로 올라가도 이미 지구가 확실히 둥글다는 게 느껴지며 우주가 코앞에 있다. 로켓은 비행기와는 달리, 지구 중력을 벗어나기 위해서 닥치고 오로지 위로 전속력으로 치솟기만 하라고 만들어진 물건인데, 그 정도 높이까지 발사체를 띄우는 것도 쉬운 일이 아니다. 나로 호가 실패했듯이 말이다.

그리고 기상 현상이 없을 것 같은 그 높은 상공에 공기의 급속한 흐름이 있다는 것도 신기한 사실이다. 일명 제트 기류(jet stream)이다. 이걸 잘 타는 비행기는 바람을 타고 마치 무빙워크 위로 걷듯이 손쉽게 비행이 가능하다. 제트 기류는 발견된 지 얼마 되지도 않았다. 이걸 이용하느라 한국에서 미국으로 가는 비행기는 딱 같은 위도를 유지하면서 일본을 거쳐서 태평양을 수평으로 횡단하지만, 미국에서 한국으로 오는 비행기는 북쪽으로 빙 돌아 알래스카를 거쳐서 오는 것이다. 알래스카 얘기가 나왔으니 말인데, 세상에 그래도 러시아 동쪽 맨 끝과 알래스카 사이 경계가 그나마 인간이 사는 이어진 영토가 제일 없는 곳이다 보니, 거기가 지구상에서 날짜를 끊는 경계선으로 설정된 것도 참 흥미로운 점이다.

문득 이런 생각이 또 든다. 순항 중인 비행기 안에서, 순항 중인 다른 비행기(특히 마주 오는)를 창문 밖을 통해 볼 일이 있을까?
승객은 그런 걸 보기가 좀체 어려울 것이고, 아주 운 좋을 때나 우리 비행기의 밑으로 나는 비행기를 하얀 점으로 아주 잠깐 볼 것이다. 그러나 정면이 보이는 조종석에서는 그런 것 목격이 가능하다고 한다.

오늘날은 전세계적으로 거미줄처럼 이으면서 하늘을 누비는 여객기들이 엄청나게 많다. 그들도 아무 길이나 직선 거리를 찾아 다니는 게 아니라 경제성이 뛰어나다고 알려진 최적화 항로만 몰아서 다니기 때문에 서로 마주칠 가능성이 은근히 높다. 게다가 국제법상 여객기들은 어느 때라도 인근의 공항에 n시간 안으로 즉시 비상 착륙 가능한 항로만 골라서 날아야 하기 때문에, 육지로부터 완전 멀리 떨어진 태평양 허허벌판 같은 곳은 지나지도 않는다고 들었다.

아무 장애물이 없고 가시거리가 굉장히 긴 조종석에서는 하늘 저 편에 무슨 하얀 점처럼 보이는 게 맞은편 여객기이다. 물론 상행(한국->미국)과 하행(미국->한국)별로 날 수 있는 고도도 다 수백 m 이상 차이가 나도록 법으로 정해져 있다. 그 점은 그냥 순식간에 커지다가 쌩~ 하고 없어져 버린다. 나도 900km이고 저쪽도 900km이면 상대 속도는 무려 시속 1800km이며, 1초에 500미터가 넘게 나아가는 속도이다. 아찔하다.

고속도로에서도 자동차끼리 안전 거리가 최하 100미터인데, 자동차의 10배에 가까운 속도로 움직이는 비행기는 서로 100~200m끼리만 근접해도 실제로 부딪쳐서 인명/재산 피해가 나지 않았다고 하더라도 near miss라는 사고로 처리된다. 사고라는 말은 이 사건이 사고 일지에 기록되고 원인 책임 규명 조사와 관련 책임자 징계가 뒤따른다는 뜻이다.

영화나 CF를 보면 구름 위로 하늘을 나는 비행기의 멋진 동영상을 볼 수 있는데.. 이런 것은 CG가 아닌 이상, 당연한 말이지만.. 비행기를 촬영하는 또 다른 특수 비행기를 띄워서 거기서 촬영한 것이다. 흠좀무..;; 두 비행기끼리는 최소 수 km는 떨어져 있고 고도의 기술로 zoom 해서 그런 걸 촬영한 거라고 보면 된다. 하긴 요즘은 전투기 공중 급유까지 하는 세상인데 뭘 못 하겠는가.
다만 비행기는 뒤쪽으로 엄청난 후폭풍을 남기면서 움직인다는 특성상, 뒷모습을 가까이에서 찍는 것은 여러 모로 위험하고 무리라고 한다.

Posted by 사무엘

2010/07/21 09:08 2010/07/21 09:08
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/326

납량특집 -- 버스 괴담

※ 버스에서 안 내려서 살아난 경우

-- 여고생 봉고차 납치 괴담 (출처: 한국어 위키백과)

어느 여고생이 버스에 타고 있었다. 도중에 탄 어떤 할머니가 그 여고생이 앉은 자리 앞에 와서 서 있었다. 친절한 여고생이 할머니 앉으시라고 자리를 양보하려 하자, 할머니는 몇 번이나 괜찮다면서 사양한다. 거듭된 권유에도 괜찮다는 반응에 여고생은 머쓱해 하다가 자리에 그냥 앉아 있었다.

몇 정거장이 지나고 한참 있다가 갑자기 그 할머니가 여고생에게 노인이 바로 앞에 있는데, 머리에 피도 안 마른 것이 앉아 있다는 둥, 버르장머리 없는 년이라는 둥, 돌연 막말을 퍼부어 대며, 여고생을 비난하기 시작했다. 주위 승객들이 모두 쳐다보기 시작하고 여고생이 어찌할바를 모르다가, "할머니 제가 아까 앉으시라고 말씀드렸잖아요"라고 해도 막무가내로 욕을 한다. 그 할머니가 버스에서 내리면서 "너 따라와 이년아" 라고 말하면서 여고생에게 버스에서 내릴 것을 종용했다. 억울함을 느낀 여고생이 시비를 가리려 버스에서 내리려고 하자, 잠자코 있던 버스 기사가 조용히 뒷문을 닫으면서 "학생, 가지 말고 그냥 있어"라고 말한다.

버스 기사의 백밀러에는 아까부터 따라오던 봉고차가 대기하고 있고, 그 할머니는 버스에서 내려서 그 봉고차 안으로 들어갔다는 것이다. ㅎㄷㄷㄷㄷ;;

※ 버스에서 내려서 살아난 경우

-- 본인의 기억을 바탕으로 재구성. 설정이 앞의 괴담보다는 좀 현실성이 떨어진다. 치안이 불안정하고 사람들도 이기적-_-인 중국 대륙 같은 곳에서 일어날 법한 이야기이다.

첩첩산중 오지를 운행하는 시골 버스를 한 젊은 여성 기사가 운전하고 있었다(위험하게도). 시간도 밤이었던 듯? 그런데 치한들이 탑승하여 운전사를 희롱하기 시작했다. 다른 승객도 적은 편은 아니었으나, 못 본 척 아무도 운전사 아가씨를 도와주지 않았다. 이 광경을 보다못한 어느 중년 신사가 혼자 나서서 치한들을 저지하려 나섰지만 주변에 거드는 사람이 없었고, 그는 한주먹에 나가떨어졌다.
그러니 승객들은 더욱 겁을 먹었으며, 치한들은 더욱 대담해져서 아예 차를 세우고 운전사를 끌고 나가 밖에서 그녀를 욕보이고 말았다. 흠좀무..;; 도대체 그 동안 다른 승객들은 뭘 하고 있었던 거야?

잠시 후 치한과 운전사는 다시 차에 올라탔는데.. 운전사는 갑자기 다른 승객도 아니고 아까 그 중년 신사를 가리키며 차에서 내리라고 말했다. 당신 같은 무능한 남자는 버스에 탈 자격이 없다고 모욕까지 주면서 말이다. 영문을 모르는 중년 신사는 억울함을 호소했으나, 주변 승객들은 그저 ㅋㄷㅋㄷ거릴 뿐이었고, 아예 신사의 짐까지 창밖으로 던지면서 그를 차에서 강제로 쫓아내 버렸다. 버스는 다시 출발.

그 뒤의 스토리는 뻔하다.
그 여성 운전사는 자기를 구해 주려 한 중년 신사를 내려 보낸 후, 이를 악물고 악셀을 밟아서 가드레일을 들이받고 버스채로 절벽으로 추락해 버렸다. 나쁜 치한과 더 나쁜 승객들을 포함한 전원 사망.
중년 신사는 이 사고 소식을 며칠 후 신문으로 접하고는 슬피 울었다고 한다.

Posted by 사무엘

2010/07/20 08:50 2010/07/20 08:50
,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/325

그동안 폐쇄적인 파일 포맷 정책 때문에 욕 많이 얻어먹고 있던 한컴에서 최근에, 한 지난달 말부터 꽤 놀라운 결정을 내렸다. 아래아한글의 파일 포맷(.hwp)을 드디어 정식 공개한 것이다. (뭐, 그렇다고 해서 한컴도 먹고 살아야지, 그런 회사에게서 MS나 구글 정도의 대인배 기질을 바라는 것도 세상 물정 모르는 개념 없는 소리이긴 하다.)
워디안 시절부터 지금까지 쭉 사용되어 오고 있는 소위 5.0 포맷과, 지금은 이미 완전 역사 속의 유물이 되어 버린 과거의 97 방식(3.0 포맷) 이렇게 둘을 공개했다.

본인이 아래아한글에 대해서 무척 대단하게 생각하고 있는 면모는, 지금의 파일 포맷이 미래 확장성을 대비해서 정말 대인배스럽게 잘 설계돼 있다는 점이다. 아래아한글 2010 정도면  MS 따라 hwpx-_- 같은 새로운 파일 포맷을 도입해도 이상할 게 없을 거라고 생각했는데 여전히 10년 전 포맷 그대로이다. 이 정도면 과거 MS 워드가 97부터 2003버전까지 사용한 구식 doc/xls/ppt 포맷의 짬밥을 훨씬 능가한다.

그 10년 동안 아래아한글엔 세로쓰기를 비롯해 문서의 기본 골격을 완전히 바꾸는 새로운 기능들이 상당수 추가되고, 무엇보다도 문자 인코딩이 마구 바뀌어 왔다. 유니코드 surrogate가 지원되기 시작한 게 2004부터이고, 아랍/히브리 complex script가 지원되기 시작한 게 2005부터이다. surrogate 지원 전에는 Yi 문자 같은 영역에다가 아래아한글 특수문자를 제멋대로 집어넣기도 했다.

특히 문제는 한자. 아래아한글이 과거의 한컴 2바이트 코드에서 자체 제공하던 제 2수준 한자 중에는 유니코드 BMP 영역의 한중일 통합 한자에 존재하지 않는 녀석이 극소수 있었다. 그건 처음엔 사용자 정의 영역으로 가 있었는데 일부는 나중에 surrogate에 있는 유니코드 “한중일 통합 한자 확장 B/C”에서 정식 추가되기도 했다. 흠좀무..;; 끝으로, 2010 버전부터는 옛한글도 과거 10년간 이용해 비표준 한양 PUA를 버리고 드디어 유니코드 5.2 표준으로 돌아갔다!

이 정도면 문자 인코딩도 버전 관리를 해야 할 지경이지 않은지? 또한 이제 워디안 시절의 10년 전 파일 포맷은 효율이 상당히 떨어졌으며, 굳이 하위 호환성을 지키려 애쓰는 것도 무의미해지지 않았나 하는 생각이 든다.
뭐, 비록 워디안은 너무 불안정해서 사용자들로부터 완전히 발렸지만, 2002는 아직도 관공서 같은 곳에서 쓰는 사람이 있지 싶다-_-. 특히 2002 SE는 윈도우 운영체제로 치면 마치 98 SE 같은 안정화 버전이었기 때문이다.

그나저나, 아래아한글은 같은 문서를 저장해도 파일 크기가 은근히 굉장히 커져 왔다. 가령, 과거 아래아한글 2002에서 작성한 hwp 파일을 2007에서 열어서 아무 수정 없이 그냥 다시 저장만 해도, 파일 크기가 꽤 커진다. 특히 더 옛날의 97 방식 hwp와 비교해 보면, 지금 hwp 파일은 진짜 비교도 안 될 정도로 크기가 더 커졌으며, MS 워드의 doc나 docx와 비교해도 마찬가지이다.
아무 서식이나 고급 기능을 안 쓰고 글만 빽빽한 문서를 작성했는데도 파일 크기가 너무 커졌다는 느낌을 지울 수 없다. 압축을 물론 했는데도 그 정도.

사실 이건 MS 오피스 제품도 마찬가지여서 똑같은 doc/xls/ppt도 2003에서 작업한 파일을 2007에서 불러와서(물론 호환성 모드) 다시 저장하면 크기가 꽤 커진다. 2003에서는 인식되거나 사용되지 않는 여러 메타 정보가 추가되어서 그런 것 같다.
그나저나 참고로, 2007 방식이라고 해도 암호가 걸린 문서 파일은 xml+zip 압축 포맷이 아니며, 과거 2003 같은 복합 바이너리 포맷으로 저장된다.

본인은 아래아한글을 버릴 수 없는 처지에 있는 사람이다. 도저히 적응이 안 되는 MS 워드의 기괴한 동작 방식, 그리고 손에 너무 익어 버린 단축키, 그리고 과거의 수많은 hwp 문서와 절대로 버릴 수 없는 hft 글꼴들 때문에 아래아한글은 탄탄한 기득권을 갖추고 있다. 또한 한컴도 이윤을 창출해야 하는 기업이라는 것 역시 모르는 바 아니다. 앞으로도 너무 심한 병크만 터뜨리지 말고 아래아한글을 잘 유지 보수해 줬으면 좋겠다.

Posted by 사무엘

2010/07/19 09:03 2010/07/19 09:03
,
Response
No Trackback , 16 Comments
RSS :
http://moogi.new21.org/tc/rss/response/324

지구를 두르고 있는 띠 문제

아는 분들은 이미 다 알 만도 한 문제이지만...;;

우리가 사는 지구가 편의상 반지름이 대략 6400km 정도 되는 완전한 구라고 가정하자. 그리고, 이 지구의 적도 부분을 띠로 둘러서 꽉 조인 매듭을 만들었다고 치자. 그러면 이 띠의 길이는 원의 둘레에 해당하므로, 반지름에다 2π를 곱한 약 4만 km 정도의 길이가 될 것이다.

그런데 원둘레에 딱 맞던 이 띠의 길이를, 사람 키보다 약간 큰 정도인 2m만치 더 늘렸다. 다시 말하자면 4만 km에 달하는 띠의 길이를 겨우 2m 더 늘린 것이다. 띠는 이제 원둘레보다 눈꼽만치 더 길어졌고 헐렁해졌다. 그래서 띠를 지표면으로부터 모든 구간을 균일하게 띄워서 다시 빳빳하게 만들었다. 그렇다면 이 띠는 지표면으로부터 얼마나 떠 있을까? 띠가 더 길어진 게 티가 나긴 할까?

이 문제의 답을 감으로 당장 떠올린 것과,
연필을 들고 수학 공식을 세워서 푼 것과는 어떤 차이가 있는지 생각해 보자.

.
.
.

잘 알다시피, 띠를 겨우 2m 확장했을 뿐이지만 그 넓은 지구의 지표면으로부터 띠는 무려(?) 30cm가량은 지표면으로부터 균일하게 떠 있게 된다.
그리고 이 30cm라는 수치는 행성의 반지름과는 전혀 관계없다. 지구가 아니라 목성의 적도를 두르고 있는 띠라 하더라도, 띠를 2m 확장했다면 띠의 반지름은 지표면으로부터 무조건 30cm씩 더 올라가게 된다. 그러므로 지구의 반지름이 6400km이고 띠의 길이가 4만 km라는 사실에 주의를 환기시킨 것은 훼이크요 낚시 교란 작전일 뿐이었다.

지표면에서 30cm 뜬 것 자체도 반지름이 이미 수천 km에 달하는 지구의 관점에서 보면 새 발의 피, 손톱의 때도 안 되는 보잘것없는 변화량이다. 그러나 우주의 관점에서 본 변화와 지표면에서 본 상대적인 변화의 폭은 서로 다르게 느껴질 수밖에 없으며, 인간의 직관은 그런 것을 혼동하기 쉽다. 이 문제는, 마치 인간의 눈이 착시 현상을 일으키는 것만큼이나 인간의 생각 역시 편견과 실수에 빠지기 쉬움을 보이는 좋은 예라는 생각이 든다. 그런 인간 두뇌의 한계를 보완하고자 수학이라는 사고 체계가 발달한 것이다.

Posted by 사무엘

2010/07/17 17:13 2010/07/17 17:13
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/323

여러 잡설

1. 오늘날 철도가 도로 교통에 비해 본질적으로 우월한 점은 무엇이라 할 수 있을까? 만약 버스도 철도처럼 자신만의 전용 도로를 확보하고 완벽한 정시성을 갖춘다면 철도가 도로 교통에 비해 경쟁력이 있다고 볼 수 있게 될까?
이런 질문에 대한 해답을 찾다 보면, 결국 21세기에 장거리 간선 교통수단으로서 철도가 차별화를 이루고 살 길이란 오로지 고속철(동력원은 전기)밖에 없다는 결론을 얻을 수 있다. 버스가 전용 도로 등 다른 건 다 따라하더라도, 육안과 핸들로 조향하는 육상 교통수단이 시속 300으로 달릴 수는 없는 노릇이기 때문이다.

2. 가만히 생각해 보니까, 스마트폰(과 그와 같은 부류의 초소형 컴퓨터 기기)은 걸어 다니면서 문자 입력이 가능하다는 게 큰 장점이겠다는 생각이 든다. 뭔가 그리고 긋는 것처럼 지속적으로 정확한 행동이 필요한 게 아니라, 특정 버튼 지점을 꾹 누르는 ‘순간’에 입력이 성립한다. 그렇기 때문에 배나 자동차 내부처럼 주변이 막 흔들리는 곳에서도 글자 입력을 정확하게 할 수 있으며, 이런 엄청난 장점은 심지어 기계식 타자기도 갖고 있다.
그러나 노트북과 타자기는 길거리에서 걸어 다니면서 쓸 수 있을 정도로 작지는 않으므로 앞의 문맥에서는 스마트폰만이 조건을 만족하는 셈. 비록 컴퓨터 키보드보다는 버튼 수가 적고 입력 속도가 훨씬 더 느리지만, 나름 요긴한 점이 있다.

3. 앞바퀴와 뒷바퀴의 크기가 완전히 같아지는 트럭은 2.5톤 규모부터인가? 평소에 눈썰미 있게 보지는 않았는데 갑자기 궁금하다. 소형인 1톤 트럭은 당연히 앞바퀴가 뒷바퀴보다 훨씬 더 크다. 언제부터 크기가 같아지는지... 아시는 분은 답변 부탁.
우리나라는 그러고 보니 엔진룸이 운전석 앞에 있는 트럭이 없다. 미국에서는 아주 쉽게 볼 수 있는데 말이다.
그리고 승용차급 크기인 400~700kg급 픽업도 옛날에는 포니 개조 차량이 있었던 것 같은데 지금은 수요가 없어서 그런지 사라진 지 오래. 피아노 한 대 정도 싣는 용도로는 딱이었던 걸로 기억한다.

4. 살인· 강간처럼 사람을 물리적으로 해치는 흉악 범죄도 아니고, 그렇다고 국가 이념과 직접적으로 관련된 이적· 반역 행위도 아닌데 굉장히 무겁게 처벌하는 범죄가 있다. 바로 위조지폐이다. 위조지폐는 특정 범죄 가중 처벌법이 적용되어 사형, 무기 혹은 5년 이상의 징역에 처해질 수 있으며, 이는 살인과 동일한 형량이다! 장난 전화만큼이나 장난으로라도 절대로 해서는 안 되는 짓이다.
그도 그럴 것이 위조지폐는 한 나라의 경제 질서를 근본적으로 어지럽히는 매우 중대한 범죄이다. 그리고 이거 잡아내는 기술도 굉장히 발달해 있기 때문에, 어지간해서 바로 잡힌다.
한국에서는 서 태석 씨가 세계적으로도 알아주는 위폐 감별사로 유명하다. 마치 과거 철도청 시절 열차 시각표 작성의 달인 김 영근 씨처럼, 학벌 없이 장인 정신과 근성만으로 자기 분야의 프로가 된 존경스러운 분이다.

5. 우리나라에서 쓰이는 민간인용 지도에 표기가 일부러 금지되어 있는 아이템은 청와대, 발전소, 군부대, 교도소 말고 더 있나? 청와대야 뭐 전국에서 유일한 장소이고 워낙 유명하다 보니 위치를 모르는 사람이야 없지만, 가끔은 이런 비밀스러운 조직은 어떻게 운영되고 있고 거기서 근무하는 사람들의 업무 분위기는 어떨까 궁금해진다. 나라에서 보유하고 있는 금, 외화, 석유 같은 것도 관리하는 비밀 장소가 따로 있을 것이다.
수능 출제가 이뤄지는 장소, 대학에서 학생들의 학적 정보가 저장된 서버가 있는 위치, 지금도 있는지 모르겠는데 특실 두 칸은 국가 귀빈용으로 따로 떼어 놓았다는 KTX 모 편성, 그리고 국가 정보원 직원(자기네들끼리 자기 소속을 회사라고 은어로 일컬음)의 생활 같은 것 말이다. ^^

6. 우리 교회에는 생선을 정말 충격과 공포스럽게 드시는 분이 계신다. 생선을 한번 들면, 머리부터 시작해서 꼬리지느러미까지 순서대로 입안으로 들어가는데, 머리와 내장, 등뼈까지 다 먹어 치워서 폐기물이 “하나도 안 남는다고 한다.” 세상에!
하긴, 인간의 위는 생선뼈 정도는 다 소화해 낼 정도로 굉장히 튼튼하다고 한다. 오히려 너무 맵고 짠 음식에 약하다고 들었다. 하지만 아무리 그래도 그렇지 그 딱딱하고 날카롭고 목에 걸리기 쉬운 뼈를 어떻게 다 먹는지 그저 신기할 따름이다.

Posted by 사무엘

2010/07/16 09:05 2010/07/16 09:05
Response
No Trackback , 8 Comments
RSS :
http://moogi.new21.org/tc/rss/response/322

« Previous : 1 : ... 183 : 184 : 185 : 186 : 187 : 188 : 189 : 190 : 191 : ... 215 : 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:
2679923
Today:
2007
Yesterday:
2484