« Previous : 1 : ... 189 : 190 : 191 : 192 : 193 : 194 : 195 : 196 : 197 : ... 221 : Next »

날개셋 타자연습의 청사진

요즘 게임의 대세는 온라인이다. 네트웍 기능은 필수이다.
그에 따라 <날개셋> 타자연습도 아래 세 가지 모드가 모두 가능해야 한다.

1. 지금처럼 컴퓨터하고만 타자를 측정하고 실력을 겨루는 기존 싱글 모드. 계정 정보는 당연히 내 로컬 컴퓨터에..
2. 계정 정보는 여전히 내 로컬에 있고, 그냥 단거리 네트웍으로 상대방과 겨루기. 스타로 치면 UDP Multiplayer
3. 스타로 치면 배틀넷 급의 중앙 서버에 로그인하는 완전 온라인 방식

게임의 경우, 싱글플레이는 정교한 게임 스토리와 주인공 대화까지 나오는 캠페인이 제공되며 타자 왕초보를 위한 올바른 타자 습관 및 세벌식 홍보 튜토리얼도 있다.
그리고 멀티플레이는 스타 캠페인 에디터처럼 정교한 게임 customization이 가능하다.
두 명이서 협력해서 컴퓨터가 만들어 내는 바이러스들에 대항한다거나, 아니면 서로 따로 게임을 하면서 타자가 빠른 사람이 상대방을 방해도 할 수 있는 전투 테트리스 같은 구도로 게임을 할 수도 있고.. 뭐 가능성은 무한하다.
물론 단순히 2를 넘어 3까지 구현하려면 서버를 구비해야 하고 서버 프로그램까지 별도 개발이 필요하다. 본인의 능력을 벗어나는 범위가 된다.

또한 게임은 3차원은 필수! 그래픽이 윈도우 비스타가 기본 제공하는 게임이나 화면 보호기 수준은 돼야 한다. 떨어지는 글자들은 3차원 메쉬이며 금속 재질이다. 터질 때의 각종 파티클 이펙트도 화려하고 각종 특수효과 바이러스가 작동할 때도 이펙트가 나와야 한다. 날쌘/진격 바이러스일 때는 카메라 노출 시간이 길어진 듯한 이펙트.. 숨바꼭질 바이러스는 클록킹 유닛처럼 진짜 쏙 숨어서 배경을 입체적으로 왜곡하는 이펙트. 이런 식으로 말이다.

전통적인 타자방의 경우, 단문 문장이 하나 주어지면 사람들이 다들 재빨리 타이핑을 해서 순위를 내는 구조이다. 하지만 단순히 대화방 내부에서 봇 형태로 동작하는 타자방이 아니라 전문적인 타자 연습 프로그램이라면, 장문 검정도 온라인으로 얼마든지 실시할 수 있다.
지금 n타의 속도를 기계적으로 흉내 내기만 하는 '경쟁 모드'를 진짜 사람인 상대방의 타자 상황으로 나타내어 주고, 게이지가 단순히 늘기만 하는 게 아니라 줄어들기도 한다면(오타를 지울 때) 얼마나 흥미진진하겠는가!

진짜 사람과 겨루는 '경쟁 모드'는 꼭 구현해 보고 싶은 것이었다. 3차원 그래픽이 필요한 것도 아니고 어려운 것도 아니고...

타자 연습 프로그램이 인터넷과 연결되면 연습글이 그야말로 무궁무진해진다.
내가 좋아하는 분야의 최신 연습글을 서버로부터 실시간으로 다운로드할 수 있고, 연습글에 발견된 오타에 대한 패치도 실시간으로 진행 가능해진다. 뭐 귀여니처럼 온라인으로 문학 활동을 하는 작가라면 연습글 다운로드 서비스로 뭔가 수익 모델도 만들 수 있지 않을까?
개인 계정 정보에는 내가 과거에 다운로드하고 실제로 타자 연습을 해 본 연습글들 기록이 남는다.

본인의 지인 중에도 자기가 직접 프로그래밍 공부까지 하면서 타자 게임 사이트를 꼭 만들고 싶어하는 친구가 있다. 하지만 본인은 이제 저런 걸 도저히 혼자 힘으로 다 공부해서 만들 수 없다.
본인보다 유행과 디자인 감각에 뛰어나고 게임 제작이나 기획에 소질이 있는 사람이 뭔가 좋은 작품을 만들어 줬으면 좋겠다. 한컴이나 NHN 같은 곳 지원이라도 받아서..;;

그런 걸 만드는 데 도움이 된다면 <날개셋> 타자연습 소스 정도는 인계할 의사가 있다. 비록 입력기 소스는 공개 안 하지만 말이다.

Posted by 사무엘

2010/08/03 08:49 2010/08/03 08:49
, ,
Response
No Trackback , 11 Comments
RSS :
http://moogi.new21.org/tc/rss/response/337

오랜만에 비디오 테입 얘기.
옛날에 VHS 방식 VTR은 어린 본인이 보기에 정말 신기한 물건이었다.
비디오를 보기 위해서는 우선 TV 채널을 꼭 4번으로 바꿔야 한다. VTR은 또 자신만의 채널 선택 기능이 있으며, TV 채널이 4번인 상태에서 VTR 전원을 켜면 VTR이 설정해 놓은 채널의 TV 방송이 채널 4번으로 포워딩되어 흘러나왔다. 이것이 VTR이 인식하여 녹화 가능한 TV 채널이다. (그렇다면 VTR은 자체적으로 TV 신호 수신 기능이 있다는 얘기인지?)

좀 고급 VTR은 심지어 예약 녹화 기능까지 있어서, 사람이 대기하고 있다가 녹화 버튼을 안 누르더라도 지정된 시각에 특정 프로가 시작될 때 자동으로 녹화가 되게 할 수 있었다. 카메라에 간단한 예약 타이머 기능이 있듯이 말이다. 그래서 그런 VTR은 시계 기능도 필수였다.

오늘날의 관점에서 보자면 VTR은 아날로그 방식이다 보니 화질은 그리 좋지 못하다. 수평 해상도가 240이면 도스 시절 게임 화면인 320*200보다 약~간 나은 수준밖에 안 된다는 소리이니까 말이다. 하지만 TV 신호이든 비디오 카메라 영상이든 녹화가 간편하게 잘 되는 게 좋아서 꽤 오랫동안 시대를 풍미했다.
그랬는데, 비디오와 카세트 테입이 역사 속으로 사라지면서 방송에 대한 녹음· 녹화 풍토도 확 바뀐 것 같다.

지나간 방송 정도야 인터넷으로 얼마든지 다시 볼 수 있고, 드라마 같은 건 고화질 동영상 파일을 유료나 무료로 얼마든지 구할 수 있다. 실시간 방송은 전문적인 비디오 스트림 캡처 내지 인코딩 프로그램으로 저장하면 된다. 어쨌든 영상 처리를 별도의 가전 기기가 아니라 컴퓨터로 하게 됐다.
방송이 아닌 일반적인 동영상 녹화는 이제 어지간한 디카나 캠코더로 곧바로 가능해졌으니 더 논의할 필요도 없음.

다음은 VHS 비디오 테입 내지 오디오 카세트 테입 관련 추가 잡설들이다.

1. 이 분야로 관심이 있는 분이라면 VHS가 한때 소니 사의 베타맥스 규격과 표준안 채택을 두고 티격태격 싸웠다는 사실을 알 것이다. 기술적으로는 베타맥스가 더 우수했으나 결국 VHS가 살아남았다.

2. 비디오든 오디오든 카세트 테입 재생기에는 위치 탐색용으로 간단한 카운터가 있었다. 오디오 테입은 보통 세 자리(0~999), 그보다 러닝타임이 긴 비디오는 네 자리까지 있었다. 자동차로 치면 구간 거리계 정도 된다.
카운터에는 reset 버튼이 있고, 카운터를 activate시키는 버튼이 있었는데, activate되어 있는 경우, 테입을 재생하거나 감던 중에 카운터가 0에 도달하면 테입의 주행이 자동으로 멈추었다.

오디오 CD는 모든 트랙이 분초 단위로 정확하게 카운트다운이 되다 보니 저런 아날로그 식 카운터는 존재하지 않는다. 또한 테입과는 달리 현 재생 위치가 매체의 외관상으로 전혀 드러나지도 않는다. ^^;;
그래서 되감거나 앞으로 빨리 감는 중에는, 감고 있는 해당 위치의 음향을 작게 잠깐잠깐 들려주는 방식으로 동작하곤 했다.

3. 카세트 테입 플레이어는 버튼이 동작하는 방식이 기계식과 전자식 이렇게 크게 두 가지로 나뉜다.
이건 본인이 편의상 붙인 용어이다. 재생되는 동안 '재생' 버튼이 쑥 눌러져 들어가 있는 놈은 기계식이고, 그렇지 않은 건 전자식이다. 좀 덩치 있는 라디오는 기계식이지만 워크맨이나 카오디오는 다 전자식이었던 걸로 기억한다.

그런데 기계식은 재생 버튼을 누르자마자 한 치의 딜레이도 없이 곧바로 테입 주행과 재생이 시작된다. 재생 버튼을 누르는 과정에서 물리적으로 테입과 재생 헤드가 고정되며, 버튼이 완전히 눌러져서 고정이 끝나자마자 모터가 돌아가서 테입 주행이 시작되기 때문이다. 반면, 전자식은 그렇지 않고 딜레이가 존재하여 불편하다.
비디오 테입은 전자식 카세트 테입보다도 딜레이가 훨씬 더 길며, 재생을 누르고 나서 거의 3초 가까이 뒤에야 재생이 시작됐다. 뭔가 초기화 작업이 많은 듯. 그 딜레이가 개선된 VTR이 있다는 얘기는 못 들었다.

4. 플로피 디스크, 카세트 테입, 비디오 테입 등은 모두 쓰기 방지 딱지를 물리적인 형태로 내장하고 있다. 추억의 딱지이다. 다만, 3.5인치 디스켓은 별도의 딱지를 붙이는 게 아니라 스위치 비슷한 조작으로 쓰기 방지 설정을 바꿀 수 있었다.
USB 메모리에도 쓰기 방지 딱지 같은 게 있으면 어떨까? (뭐, USB에다 꽂는다는 특성상, 물리적인 형태로 구현 가능할 것 같지는 않지만) 최소한 꽂는 것만으로도 루트 디렉터리에 악성 코드가 주입되는 것 정도는 예방할 수 있지 않을까? ㅠ.ㅠ 애초에 저런 일 자체가 어떻게 사용자의 동의 없이 일어날 수 있는지부터가 본인은 이해가 안 되지만 말이다.

Posted by 사무엘

2010/08/02 09:04 2010/08/02 09:04
, , ,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/336

인터넷 격세지감

1.
1996년이던 걸로 기억한다. 본인이 중학생이던 시절, 경기 과학 고등학교가 TV 방송으로 소개되는 걸 봤다.
'경곽'이라는 애칭으로 불리는 이 학교는 우리나라에서 최초로 개교한 과학고이기도 하다. (서울 과학고가 최초가 아니다)
그런데 그 당시 학교의 자랑이랍시고 흘러나온 멘트 중 하나가 무엇이냐 하면, "우리 학교는 인터넷 전용 회선이 갖춰져 있고 전교생이 인터넷 다룰 줄 안다" 였다. ㅜ.ㅜ "전교생이 이메일 계정 갖고 있다"란 말도 했던가?

1993-4년이 CD롬, 사운드 카드를 위시한 멀티미디어 시대였다면, 1996-7년이 이제 막 윈도우 95가 보급되면서 인터넷, 멀티넷 이러면서 제대로 떠들던 시절이었다. ^^;;
요즘은 "전교생에게 노트북 지급하고, 학교 전구역에서 무선 인터넷 된다" 정도는 돼야 자랑거리가 될 것이고, 그게 그렇게 큰 자랑거리도 못 될 것이다.

하긴, 본인도 전화(모뎀)가 아닌 전용선 인터넷 자체를 고등학교에서 처음으로 접했으며 이메일 계정이란 걸 처음 만든 것도 고등학교에 들어가서였다. 중학교 때 PC 통신, 고등학교 때 인터넷, 대학교 때 휴대전화 순으로 문명의 이기를 접해 왔다. 정보 사냥(검색) 대회라는 게 사라진 게 언제쯤이더라? ^^

2.
2002-3년 사이인 걸로 기억한다. 그 무렵에 TV 도전 골든벨 프로를 봤는데, 맨 마지막 50번 문제가 무슨 IT 용어를 묻는 것이었다. 마지막까지 남았던 여학생은 그 문제를 못 맞혔다.
그런데 그 문제의 답은 바로...

'블로그' 였다. ㅜ.ㅜ
그때까지 블로그라는 단어는 본인조차 듣도 보도 못한 생소한 용어였다. 지금은 블로그도 모자라서 트위터 같은 마이크로블로그까지 등장해 있는데도 말이다. ^^
저 때는 근성 충만한 IT계 초 얼리 어답터, 파워 유저들이나 블로그를 했지, 나머지 대다수는 나모 웹에디터 HTML 글자판때기 코딩으로 홈페이지를 만들거나, 아니면 싸이 내지 아이러브스쿨, 다모임 같은 것밖에 안 하던 시절이었다. 아울러, 소리바다가 아직 있던 시절.

그러다가 그 비슷한 시기에 네이버에서 지식(인) 검색이라는 걸 만들어서 대박을 냈고, 한국의 인터넷 문화를 뒤집어엎었다. 엠파스에서 자연어 처리 / 질문 문장 검색 비슷한 서비스를 하긴 했는데 그걸 네이버가 더욱 발전시킨 걸로 알고 있다. 야후, 알타비스타, 심마니 같은 초창기 검색 엔진들을 다 골로 보냈다.
나중에는 카페, 블로그 서비스까지 만들면서 네이버는 다음 같은 종합 포탈 사이트로 거듭난다. 맞춤형 홈페이지(myhome) 서비스는 꽤 오래 전에 중단했다.

2002-3년이면 아직 구글도 국내에서 파워 유저가 아닌 계층에서는 완전 듣보잡이던 시절이었다. 외국 사이트는 잘 찾았지만, 내 이름을 한글로 쳐 보면, 온갖 인명들을 검색에 걸리라고 일부러 수집해 놓은 쓰레기 성인 사이트들만 잔뜩 뜨던 걸 아직도 기억하고 있다. ^^;;

Posted by 사무엘

2010/07/31 16:20 2010/07/31 16:20
,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/335

오늘날 쓰이고 있는 컴퓨터라는 기계의 이론적 근간을 마련한 사람으로는 앨런 튜링(영국)이라든가 폰 노이만(헝가리->미국) 같은 불세출의 천재 수학자가 있다. 그런데 영국에서는 튜링보다 먼저, 범용적인 계산 기계라는 개념을 떠올렸던 천재가 있었으니 바로 찰스 배비지(1792-1871)이다. 전산학도라면 배비지의 해석 기관에 대해 들어 보지 못한 사람이 없을 것이다.

그는 시대를 너무 앞서 간 괴짜 덕후였으며, 재정 부족과 당대의 기계 제작 기술의 부족 때문에 그의 꿈이 당장 완전히 실현되지는 못했었다.
참고로 창조 과학회에서는 배비지가 독실한 크리스천 과학자였다고 띄우고 있다. ㅋㅋ 링크를 소개한다. (그 반면 튜링은 동성애자인 데다 자살로 생을 마감했으니, 기독교 진영에서는 별로 좋아할 구석이 없겠다)
http://www.kacr.or.kr/library/itemview.asp?no=243

그런데, 이 시대에 영국에서는 배비지의 계보를 이을 천재 수학자가 또 태어났는데, 이번엔 여자였다. 그녀의 이름은 에이다(Ada Lovelace; 1815-1852). 인류 역사상 최초의 프로그래머라고 일컬어지는 먼치킨 엄친딸 공순이이다. 이 두 사람은 사진기가 발명되기 거의 직전의 시기를 살았던 사람인지라 사진은 전해지지 않으며, 초상화나 스케치로 그려진 모습만 전해 내려온다. 하지만 에이다는 상당한 미녀였다고 한다. Lovelace라는 성은 백작 작위를 얻은 남편의 성에서 딴 것.

에이다는 ‘자고 일어나 보니 유명해졌더라’ 같은 어록으로 유명한 시인 바이런의 외동딸이었다. 아버지가 희대의 바람둥이었다고 하는데 딸 역시 머리가 비범했고 나중에는 도박에 빠졌다고 하니 평범한 인생을 살지는 못했으며, 그러다 자궁암 때문에 30 중반의 나이로 요절하여 세상을 짧고 굵게 살다 갔다.

그녀는 남들이 도무지 이해를 못 하던 찰스 배비지의 해석 기관의 원리를 간파하고 그 기계의 무한한 가능성을 알아차린 당대의 극소수 덕후 중 하나였다. 오늘날 절차형 프로그래밍 언어의 기본 골격이라 할 수 있는 루프, 조건문, 서브루틴 같은 개념을 떠올렸다. 그것을 처리하는 기계를 만들고 그 틀을 바탕으로 프로그램을 짜서 돌리면, 기계로 음악도 작곡하고 그림도 그리게 할 수 있다고 상상했다. 무려 19세기에 말이다!

배비지 역시 에이다의 재능과 글빨에 큰 감명을 받았다고 한다. 그녀는 기계가 숫자를 처리하기 위해서는 10진법이 아닌 2진법이 유리하다는 발상을 했으며, 베르누이의 수를 구하는 ‘프로그램’을 해석 기계를 기반으로 실제로 작성하기도 했다. 그래서 최초의 프로그래머이다. ㅎㄷㄷ;;; (베르누이는 유체 역학에서 배우는 베르누이의 원리를 발견한 그 과학자 겸 수학자이다. H2O가 뭔지 정도야 '문과 출신'도 알겠지만, 베르누이의 수가 뭔지는 어지간한 이과 출신도 들어 보지 못했을 것이다.)
http://www.bernoulli.org/

그로부터 100년 남짓한 시간이 지나고 전자식 컴퓨터가 실제로 발명되었을 때, 한 절차형 프로그래밍 언어는 바로 이 여성 프로그래머를 기려, 그녀의 이름을 따서 Ada라고 명명되었다. 프로그래밍 언어의 이름에다가 전설적인 프로그래머의 이름을 붙였으니 매우 고무적인 현상이라 하지 않을 수 없다.

Ada 언어는 1983년에 첫 제정되었으며, 이는 시기적으로 C++의 탄생 시기와 일치한다. C++의 고안자가 스웨덴 사람인 반면, Ada의 초창기 핵심 고안자는 프랑스 사람이었다. Ada는 당시 난립하던 프로그래밍 언어들의 통합을 목적으로 미국 국방성으로부터 강력한 후원을 받으며 만들어졌다. 그래서 그쪽 바닥--무기를 가동하는 전산 시스템 같은--에서는 지금까지도 표준 언어로 쓰이고 있다고 한다.

본인은 에이다 언어에 대해서 잘은 모르지만, 이 언어의 문법은 일단 파스칼과 얼추 비슷하다. 암호스러운 기호들보다는, 타이핑을 더 하더라도 깔끔하게 영어 단어 표기를 선호한다. 패키지 단위로 빌드가 이루어지는 것도 C/C++보다는 파스칼 방식이다. (참고로 베이직 언어의 경우, MS의 퀵베이직은 include에 컴파일/링크까지 C언어의 빌드 모델을 그대로 이어받은 반면, 파워베이직은 파스칼과 비슷한 방식을 쓰고 있다는 것이 흥미로움.)

Ada에 대해서도 예제 코드를 보면 이해가 빠를 것이다. 미리 말하지만 C/C++의 사고방식보다는 파스칼의 관점에서 보면 굉장한 동질감을 느낄 수 있다. 심지어 대소문자 구분이 없는 언어라는 것까지도 똑같다. 비록 요즘 C++의 영향을 받은 자바나 C# 같은 언어들의 추세는 대소문자 구분이지만 말이다. 더 자세한 것은 http://www.adahome.com/ 참고.
아니, 그러고 보니 Ada는 수학자의 이름을 따서 지어진 것까지 파스칼과 일치하는구나.

Ada는 기존 언어들의 통합을 목적으로 만들어진 만큼, 이것저것 여러 언어 요소들을 집어넣느라 표현의 자유가 굉장히 넓으며, 제공되는 언어 요소가 많다.
무슨 말이냐 하면, 가령 다차원 배열(a[2,5])과 배열의 배열(a[2][5])을 구분하여 모두 표현할 수 있고,
단축연산이 지원되는 논리 연산자와(and also나 or else), 그렇지 않은 연산자(그냥 and나 or)가 모두 제공된다.

파스칼처럼 0..100 같은 식의 subrange도 당연히 지원되고, 똑같은 정수형이라도 int 같은 기본 자료형과 완전히 호환되는 단순 alias/typedef인지, 아니면 int와 호환되지 않는 별개의 타입인지도 지정 가능하다. 타입 하나는 C/C++과는 비교도 할 수 없이 정교하고 엄격하게 만들 수 있어서 좋다.
함수 안에다 함수도 당연히 만들 수 있고, while이나 for 같은 loop 자체에다가 label 이름을 붙여서 다중 loop을 goto문 없이 바로 탈출하는 것이 가능하다.

이런 것들만 있는 것도 아니고, 어쨌든 Ada는 처음 발표되었을 때는 문법이 필요 이상으로 너무 복잡하고 컴파일러로 다 구현하는 데 난감하다는 불만도 있었다고 한다. Quicksort의 고안자께서도 그렇게 불만을 제기한 사람 중 하나였다고 함. 하지만 오늘날은 C++도 가히 복잡성 면에서는 타의 추종을 불허하는 경지에 도달한 것 역시 사실이다.

그다지 여성향을 느낄 수 없는 것 같은 전산학 분야에도 이런 사연이 있는 여성의 이름을 딴 프로그래밍 언어가 존재한다는 것이 흥미롭다. 여성 프로그래머 모에~ 이다. 하하. =_=;;
참고로 성경에는 Ada와 가장 비슷한 이름으로 유대 왕국의 왕 Asa가 있으나, 물론 성별부터가 다르다.

에이다가 살아 있던 19세기에 우리나라는 뭘 하고 있었는가? 딱 흥선대원군 시절이다. 그런데 본인은 그 시절 조선의 역사에 대해서 좋은 기억이 도무지 없다. 19세기 하면 홍 경래의 난, 전 봉준 동학 운동, 게다가 명성황후 시해 등... 나라는 점점 탐관오리 부정부패와 외세의 침략에 휘말려 막장으로 치닫다가 이내 일제에게 주권을 빼앗기고 만다. 그런데 그 시절에 영국은 저런 상상을 초월하는 학문적 성과가 속속들이 발표되고 있었으니... 오옷 역시 킹 제임스 성경과 철도를 만들어 낸 나라! 괜히 전세계를 호령한 선진국이 아니다.

게다가 전자기학의 대부인 마이클 패러데이(1791-1867), 제임스 맥스웰(1831-1879), 그리고 나중엔 찰스 다윈(1809-1882)이 전부 동시대를 살았던 영국의 과학자들이다! 이 정도면 충격과 공포가 아닐까? 맥스웰도 마찬가지이지만 패러데이는 다윈의 진화론을 단호하게 반박하고 부정한 것으로 유명한 사람인데( http://www.kacr.or.kr/library/itemview.asp?no=644&orderby_1=subject 참고), 에이다로부터 연애편지를 받고서 사랑의 힘으로 더욱 분발(?)하여 전자기력  관련 실험을 성공적으로 마칠 수 있었다 ‘카더라’. 그러고 보니 패러데이는 찰스 배비지와 거의 동갑이니 흠좀무.

끝으로, 잘 알려지지 않은 사실인데, 에이다 부인은 암 치료 과정에서, 당시 통용되던 bleeding (또는 bloodletting) 시술 중에 사망했다. 쉽게 말해 피를 빼내는 작업이다. 옛날 사람들은 병에 걸리면 환자의 혈액에 독소가 차기 때문에 그걸 제거하면 병이 나으리라고 믿었던 모양이다. 마치 체했을 때 손가락 끝을 따는 것처럼? 그런데 그렇게 바늘로 찔러서 몇 방울 따는 것과는 비교도 못 할 정도로 피를 많이 퍼내다가 오히려 환자를 탈수와 쇼크로 인해 죽게 한 경우도 많았다고.

미국의 초대 대통령이며 세계 최초로 자기 임기만 마치고 권좌에서 물러난 지도자인 조지 워싱턴도 bleeding 중에 죽었다. 문헌을 찾아보니 그는 은퇴 후 노후로 인한 폐렴· 천식· 독감 합병증에 걸렸는데, 의사가 치료랍시고 허약한 노인의 피를 5 pint... 거의 2리터가 넘게 빼냈던 것이다. 성인 인체의 전체 혈액이 5리터 남짓이라 하며 헌혈만 해도 아주 건장한 성인 남자를 대상으로 많이 채혈할 때가 3~400ml 정도 하는데, 그의 5배가 넘는 양을 뽑아냈으니 환자의 명을 재촉하는 행위밖에 더 되었겠는가? 그 당시는 혈액에 면역 시스템이 있다는 걸 모르던 시절이었고, 육체의 생명이 피에 있다는 걸(레 17:11) 실감을 못 했었다.

http://gwpapers.virginia.edu/articles/wallenborn.html
http://www.av1611.org/amazing.html

Posted by 사무엘

2010/07/29 08:36 2010/07/29 08:36
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/333

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

« Previous : 1 : ... 189 : 190 : 191 : 192 : 193 : 194 : 195 : 196 : 197 : ... 221 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

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

Site Stats

Total hits:
3044740
Today:
1932
Yesterday:
2435