고학력 실업자

- 이 사람들은 나이가 많고 가방끈도 너무 길다 보니 일단, 일반 직장의 고용주의 입장에서는 싸게 이것저것 시키고 갈구면서 굴릴 수가 없으며, 그들 역시 그런 일은 못 한다. 박사까지 마치느라 투자한 돈과 시간이 얼만데..;;
- 그런데 그런 까다로운 사람들을 필요로 하는 전문직은 얼마 많지 않고 수요도 아주 한정돼 있다. 대학 같은 경우, 기득권을 차지하고 있는 기존 정교수한테 주는 어마어마한 보수를 빼고 나면 남는 건... ㅎㄷㄷ

결국 도출되는 결론은 무엇인가?
월 100도 못 버는 시간 강사 신세가 되는 것이다. 흠좀무.
외국에서 박사 학위 받은 뒤 한국에서 도저히 취업을 못 하고, 이거 뭐 수 년 뒤에도 도무지 미래가 안 보이니 자살을 선택하는 사람까지 생긴다.

노는 물만 다를 뿐 88 세대와 본질적인 차이가 없다.
진짜 말 그대로 잉여 인간으로 전락.
특히 인문학 같은 쪽은 정말 답이 안 보이는 모양이다.
(하다못해 아무리 IT계가 야근과 박봉에 시달린다고 해도, 어지간한 스킬과 경력만 있으면 월 100도 못 버는 직종은 절대 아니다. 몸 쓰는 힘든 노동에 비하면 정말 편한 환경에서 일하는 좋은 직종이다.)

물론, 극소수 잘 배운 부유층 지식인들만 경쟁 없이 쉽게 교수가 되어 평생 떵떵거리던 옛날에 비해서 지금과 같은 형태가 다 나쁘기만 하다고는 할 수 없지만, 이것도 문제라면 문제이다.
이런 부조리가 해결되려면 교수 내부의 시스템도 바뀌어야겠지만 근본적으로는 학력 인플레가 좀 진정되어야 할 것이다.

대학 수부터 구조조정 되어야 하고 입학이 아니라 졸업이 어렵게 바뀌어야 할 것이며,
대학 이상은 경제력을 떠나서 정말로 공부에 뜻이 있는 친구들만 가고, 고졸만으로도 충분히 할 수 있는 직업에는 고졸이(또는 '만') 종사하는 세상이 와야 할 것이다.
하지만 우리나라가 이제 와서 그렇게 바뀔 수 있을지는... 글쎄다.

지난 2009년에는 연간 배출된 '국내 대학 출신 박사 학위 소지자'가 1만 명을 돌파했다고 한다.
이런 사람들은 이제 토익 몇 점, 학부 간판과 평점, 어학 연수 같은 단순 스펙 나부랭이에 연연하는 레벨이 아니다. 자기 논문과 연구 실적으로 승부해야 한다.

워낙 박사가 많아지면, 앞으로는 박사도 그냥 박사가 아니라 그 안에서도 계급이 나뉠 것이다.
박사 세계에서도 요즘 학부가 그렇듯이 학교 간판을 따지게 될 것이고,
또 그냥 교수가 정해 준 주제로 수동적으로 떠먹여 주는 연구만 하다가 박사가 된 사람인지, 아니면 진짜로 창의적이고 실용적이고 수많은 사람들에게 유익을 끼칠 수 있는 연구를 자기 노력으로 이뤄낸 박사인지 따지게 될 것이다.
마치 IT업계에서 단순 글자판때기 스크립트 코더냐, 아니면 진짜배기 전산학 고수이냐가 갈리듯이.

앞으로는 의사와 변호사 세계도 경쟁이 치열해지고 자본 논리와 시장 경제가 통용될 것이다. 옛날처럼 철밥통이 보장되는 시절은 없을 것이다.
일단 이 좁은 땅덩어리에 수요에 비해 공급이 지나치게 많아지고 있는 게 뻔히 보이기 때문이다.
앞으로는 전문직도 임금의 많고 적음을 떠나서 계약직, 비정규직, 프리랜서 형태가 늘어나고 고용과 해고가 무척 유동적으로 바뀌게 될 것이다.

그러니 결국은 어느 분야를 종사하든 자기가 좋아하고 즐기고 자기 실력이 뛰어나야 성공하는 시대가 될 것이다. 요즘 무슨 분야가 뜨든지, 남들이 지금 몰리는 곳에 줏대 없이 따라가지 말고 이 세상에서 나와 내 적성의 객관적인 좌표를 직시하여 내가 일류가 됨으로써 사회에 뭔가 공헌을 할 수 있는 분야에 올인을 하며 살아야 할 것이다. 부와 명예라든가 학위는 그 자체가 목표가 아니라, 내가 그런 활동을 하면서 덤으로 따르는 부산물 정도로 봐야 하지 않을까?

Posted by 사무엘

2010/05/15 15:47 2010/05/15 15:47
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/269

스타크래프트 잡설

스타에서 프로토스 하이템플러는 바이오닉 유닛들을 번갯불(사이오닉 스톰)로 지지는 무서운 공격 유닛으로 보통 쓰이나, 잘 알다시피 할루시네이션이라는 마법도 있다.

내 유닛의 가짜 분신을 만들어서 적에게 나의 병력이 실제보다 훨씬 더 많은 것처럼 보이게 훼이크를 구사할 수 있으며, 위험한 곳에 공격이나 드랍을 시도할 때 가짜 분신들을 총알받이 역할로 삼을 수도 있어 매우 유용하다.

분신은 자리를 차지하고 있는 것(=경로를 막는 것)과 이동과 기본 공격만 가능하다. 그 외에 일꾼이나 마법 유닛, 수송선 등이 하는 동작은 그런 유닛을 복제했다고 하더라도 못 한다.
공격 역시 폼일 뿐 실제로 적에게 데미지를 주지는 않는다. 상대방에게 under attack이라고 빨간 경보음까지 주는데도 말이다. 그리고 부르들링처럼 지정 시간이 지나면 저절로 펑 사라진다. 이렇듯 분신은 실체가 없는 만큼, 상대방을 실제로 해치지는 못하는 일종의 read only 유닛인 셈이다.

이런 점에서는 할루시네이션 분신은 마치 페르시아 왕자 2에서 영혼과 비슷한 면모가 있는 것 같다.
게임을 해 본 분이라면 알겠지만, level 10 이상부터 시작되는 빨간 궁전 안에서는 왕자를 좌우 화살표 키를 번갈아 누르면서 고개를 앞뒤로 뱅글뱅글 돌리기를 반복하면, 자기 분신 내지 영혼을 꺼낼 수 있다. 왕자의 분신은 새까만 그림자 형태이며, 분신이 튀어나오면 왕자의 몸은 죽어서 쓰러진다.

이 분신은 닫힌 문도 통과하고 발판을 부러뜨리지 않으면서 자유롭게 이동 가능하고 심지어 자기를 알아보지 못하는 악당을 공격할 수도 있다. 그러나 악당에게 실제로 데미지를 주지는 않는다. 이런 특성이 스타의 할루시네이션과 살짝 비슷하다는 것이다.
그런데 분신이 나오는 과정에서 왕자는 체력을 무려 8칸이나 영구적으로 잃으니 안습. 분신은 나중에 마지막 레벨에서 Jafar와 싸우기 직전에만 꺼내야 한다.

페르시아 왕자의 분신은 처음에는 시꺼멓기만 하지만, 나중에 Jafar와 싸울 수 있는 능력의 화염을 먹은 뒤에는 시퍼런 불꽃이 이글거리는 색으로 변한다. 그런데 이 파란색도 웬지 하이템플러가 만들어 낸 파란 분신과 좀 비슷한 느낌을 주는 것 같다. 아래의 그림을 참고할 것.

사용자 삽입 이미지

페르시아 왕자 얘기는 여기까지 하고 다시 본론으로 돌아오겠다.
하이템플러 분신은 외부로부터 공격을 받으면 실제 유닛보다 데미지를 두 배로 받으며, 각종 나쁜 마법을 맞으면 곧바로 정체를 드러내고 펑 사라진다. 분신이 사라지는 건 아쉽지만, 적군의 마법 유닛을 낚시질하여 MP를 허비시키면서 사라지는 것이기 때문에 괜찮다.

그런데 이런 할루시네이션 분신은, 스타 개발자의 입장에서 생각해 봐도 구현 로직이 굉장히 복잡하고 버그가 틈탈 여지가 많았던 모양이다.
분신은 분명 훼이크만 구사하는 read-only 유닛이어야 함에도 불구하고, 상대방에게 마치 진짜 유닛처럼 영향을 끼치는 경우가 극소수 존재한 것이다.

가령, 브루드워가 처음으로 출시되었던 1.04에서는 할루시네이션 디바우러가 적 유닛을 공격하면 데미지는 안 주지만, side effect인 acid spore를 마치 진짜 디바우러처럼 남기는 버그가 있었다. 디바우러는 브루드워에서 새로 추가되었으며 유일하게 그런 특이한 방식으로 공격하는 유닛이다 보니, 이는 충분히 수긍이 가는 버그이다. 1.05 패치에서 곧바로 수정되었다.

그리고, 무려 1.16까지 나온 오늘날까지도..
할루시네이션 가짜 퀸은 다른 건 못 해도 테란의 커맨드센터를 감염시킬 수 있다! 이건 가짜 디바우러가 acid spore를 남기는 것보다 더 큰 side effect이지 않은지?
가짜 퀸은 클릭해 봤자 어차피 Move, Patrol 이런 명령밖에 안 뜨는데도 불구하고, HP를 절반 이상 잃은 적군의 커맨드센터를 목적지로 우클릭해 주면 거기 가서 알아서 감염시킨다.

사실 ‘감염’이라는 동작은 딱히 이동도 아니고 kill 수가 느는 공격도 아니고 무슨 마나를 사용하는 마법도 아니고... 참 퀸에게만 존재하는 이상한 개념이긴 하다.
이것도 원칙대로라면 분명 교묘한 버그일 텐데 워낙 인페스티드 커맨드센터 자체가 캐관광 용도가 아니면 볼 일이 없고, 아군이 하이템플러와 퀸을 동시에 보유하는 건 무한 맵 치트가 아니면 거의 있을 수 없는 상황이니 블리자드도 그냥 묵인하는 게 아닌가 하는 생각이 든다. 게다가 리플레이 기능이 추가된 이후부터는 게임의 동작 알고리즘을 이랬다 저랬다 고치기도 예전보다 훨씬 더 힘들어져 있을 것이다.

이외에도,
프로브는 다른 일꾼들보다 시야가 1 더 넓다는 것,
질럿은 야마토 포를 한 대 맞아도 안 죽는다는 것,
사이언스 베슬은 보통 때는 Detector라는 단어 때문에 다른 테란 유닛들과는 달리 군 계급을 볼 수 없지만, 락다운을 당해서 디텍터 역할을 못 하고 있을 때는 Major(소령)이라는 계급이 뜬다는 것.

등 스타는 나온 지 무려 10년도 더 된 게임임에도 불구하고 그 깊이와 완성도는 정말 불멸의 명작이라 불리기에 손색이 없다.
윈도우 95급 컴의 256색 환경에서 쌩쌩 돌아가고 더구나 그 열악한 환경에서 클록킹 같은 이펙트까지 구현했다는 게 신기할 따름이다. 팔레트 사용을 기가 막힌 방법으로 튜닝했다는 뜻이다.

스타는 최초에는 비주얼 C++ 5.0으로 개발하다가 요즘 최신 패치는 7.1 (2003)로 개발되어 오고 있다. 캠페인 에디터는 MDI 프로그램이긴 한데, 그렇다고 해서 여러 맵을 동시에 열 수 있는 건 아니다. 문서는 여전히 한 번에 하나밖에 못 열고, 단지 한 맵의 서로 다른 제각기 표시하는 창들을 여러 개 만들 수 있다. 좀 특이한 형태의 MDI이다.

Posted by 사무엘

2010/05/14 08:01 2010/05/14 08:01
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/268

파일 대화상자

1. 파일 대화상자라는 개념

윈도우 운영체제.. 사실 이뿐만이 아니라 플랫폼을 불문하고 현대적인 GUI 프레임워크들은
불러오기/저장하기(파일 선택) 기능을 공통 기능으로 제공한다.

어떤 형태로든 사용자가 작업하는 문서(데이터)를 파일로 읽고 쓰는 소프트웨어치고 이 기능을 안 쓰는 녀석은 없으므로, 이건 가히 필수 공통 기능이라 하기에 손색이 없다. 도스 시절에는 불러오기/저장하기 UI도 프로그래머가 제각각으로 직접 구현해야 했으니 얼마나 번거로웠는지 모른다. 이거 하나만 운영체제가 고수준 API를 제공해 줌으로써 응용 프로그램이 직접 FindFirstFile, FindNextFile 같은 파일 탐색 함수를 호출해야 할 일은 상당수 없어졌다.

물론 이것 말고도 색깔을 찍는 대화상자, 인쇄 대화상자 같은 것도 공통 대화상자에 속하며 운영체제가 제공해 주는 게 있다. 그리고 필요한 경우, 대화상자의 일부 요소나 동작 방식을 프로그래머가 자기 입맛에 맞게 customize하는 테크닉도 응당 제공된다.

2. 윈도우 운영체제의 파일 대화상자의 역사

윈도우 3.x의 파일 대화상자는 파일 목록과 디렉터리 목록이 리스트 박스의 형태로 좌우로 나란히 나오고, 그 아래에는 저장하거나 열려는 파일의 format 그리고 드라이브 목록이 콤보 박스의 형태로 나란히 나와 있었다. 드라이브-디렉터리-파일이라는 클래식한 형태에 충실한 디자인이라 하겠다. 가정에서는 네트웍이 아직 많이 생소하던 시절이었기 때문에, 네트웍 드라이브에 접근하기 위해서는 별도의 버튼을 눌러야 했다.

사용자 삽입 이미지

그러던 것이 윈도우 95/NT4에 와서는 크게 바뀌었다. 사실 윈도우 95부터는 쉘의 디자인의 근간이 싹 바뀌어 오늘날까지 이어져 오고 있다. 드라이브를 제공하는 장치간의 구분이 완화되었고, 가장 최상위 계층인 바탕 화면 아래로 내 컴퓨터, 휴지통 등등이 따르는 컨셉이 이때 도입된 것이다. 파일 리스트는 구닥다리 리스트 박스 대신, 소위 공용 컨트롤이라고 불리는 리스트뷰 컨트롤 기반으로 바뀌고 디렉터리와 드라이브는 폴더라는 개념으로 바뀌었다. 그리고 탐색기가 제공하는 쉘 기능(파일 복사, 붙여넣기, 삭제, 개명, 각종 우클릭 메뉴)은 파일 대화상자 내부에서도 그대로 쓸 수 있게 된 것 역시 큰 변화이다.

사용자 삽입 이미지

윈도우 98부터는 파일 대화상자의 크기 조절이 가능해졌다. 상당히 바람직한 변화이다.

윈도우 2000/ME부터는 파일 리스트 왼쪽에 바탕 화면, 내 문서 등 주요 폴더로 곧바로 이동하는 아이콘이 추가되었다(일명 favorite bar). 그리고 아마 이 무렵부터, 파일이나 디렉터리 이름의 처음 몇 자를 입력하면 자동 완성 후보가 뜨는 아주 편리한 기능이 생겼다.

이 구조가 윈도우 XP까지 이어지다가 비스타/7부터는 또 파일 대화상자가 싹 바뀌었다. 변화의 양상에 대해 한 마디로 요약하자면, 탐색기와의 경계가 더욱 모호해지고 좀더 "웹처럼"(webby) 바뀌었다. 웹 페이지 탐색하는 기분으로 내 컴퓨터의 폴더를 탐색하게 되었는데, 이는 IE4부터 MS에서 부르짖은 캐치프레이즈이기도 하다. 물론 탐색기와 IE의 완전 통합은 보안상의 이유로 인해 IE7부터는 좀 지양되었지만 말이다.

얼마나 바뀌었냐 하면, 파일 대화상자에도 웹브라우저처럼 "뒤로, 앞으로" 버튼이 생겼고, 검색란이 생겼다. 자주 쓰는 폴더 목록은 마치 인터넷 즐겨찾기처럼 뜨기 시작한 것이다. 그런 디자인이야 디자이너의 취향 나름이라 하지만, 기본 크기가 좀더 큼직해지고 마우스로 두세 단계의 폴더를 바로 건너뛰어 상위 단계로 갈 수 있어서 디렉터리 변경이 좀더 편해진 게 매우 좋다.

3. 과거 호환성

이렇게 운영체제가 버전업되면서 파일 대화상자의 디자인은 몇 차례 변화를 겪었다.
응용 프로그램이 아무 조작을 안 가하고 기계적으로 MSDN에 명시된 input과 output만 FM대로 잘 활용한다면, 파일 대화상자의 디테일은 응용 프로그램의 본질적인 동작에 전혀 영향을 끼치지 않는다. (당연한 말이지만)

그렇기 때문에 윈도우 비스타 이전에 개발된 프로그램이라 할지라도, 파일 대화상자 API만 곱게 쓴다면 비스타에서 실행했을 때 최신 디자인의 파일 대화상자가 뜬다. 이게 무슨 공용 컨트롤 매니페스트도 아니고, 최신 대화상자를 쓰기 위해서 응용 프로그램이 뭔가 조치를 취해야 할 필요는 없다.

그럼에도 불구하고 운영체제들은 옛날 버전 파일 대화상자들의 디자인도 갖고는 있다.
응용 프로그램이 파일 대화상자에다가 자신만의 컨트롤을 추가하고, 동작 방식을 제어하고 특정 컨트롤을 서브클래싱까지 하는 경우, 그 파일 대화상자의 디자인이 최신 운영체제에서 바뀌어 버린다면 동작 방식에 심각한 문제가 생길 수 있기 때문이다.

이미지 프로그램의 경우 열기 대화상자에다가는 그림 preview를 추가하기도 하고, 저장 대화상자에다가는 JPG로 저장할 경우 화질을 지정하는 추가 옵션을 대화상자에다 덧붙이곤 했다.
압축 유틸리티나 파일 변환 프로그램은 아예 파일 열기 대화상자에다가 자기네 동작 옵션을 한 보따리 가득 집어넣어 그걸로 프로그램 메인 화면을 만들기도 했다는 걸 알 필요가 있다.

최신 디자인을 적용할 수 없는 경우, 운영체제는 여전히 윈도우 2000이나 심지어 98(favorite bar까지 없어진) 스타일로 파일 대화상자를 출력해 준다.
특히 MFC를 써서 프로그램을 개발하는 경우 이 점을 매우 신경써야 한다. MFC는 프로그래머가 원하는 타이밍에 손쉽게 이벤트를 날려 주기 위해서.. 쉽게 말해 개발자의 편의를 위해서 윈도우에다가 온갖 보이지 않는 훅킹과 서브클래싱을 남발하는데, 이런 이유로 인해서 구형 버전의 비주얼 C++로 CFileDialog 클래스를 쓰면, 아무리 내가 customize를 하는 게 없어도 최신 운영체제에서 파일 대화상자가 최신 디자인으로 나오지 않는다!

까놓고 말해 본인이 개발한 <날개셋> 편집기의 열기 대화상자와, <날개셋> 타자연습의 연습글 추가 대화상자를 윈도우 비스타/7에서 살펴보기 바란다. 차이가 느껴질 것이다.
이런 이유로 인해, 최신 운영체제의 GUI 혜택을 입으려면 새로운 기능을 쓰는 게 없어도 개발툴도 최신으로 써야 하는 경우가 있다. 싫으면 MFC 클래스 쓰지 말고, 불편하더라도 GetOpenFileName처럼 윈도우 API를 직접 호출하든가 말이다. ^^

4. 파일 대화상자의 중복 개발

그런데 MS 오피스 제품들은 전통적으로 운영체제의 표준 API를 쓰지 않고, 무려 자기네가 따로 자체 개발한 파일 대화상자를 사용해 왔다. 가령, 운영체제의 표준 파일 대화상자는 윈도우 2000/ME대에 가서야 favorite bar가 추가된 반면, MS 오피스의 대화상자는 꽤 일찍부터.. 최소한 오피스 97 시절부터 그런 걸 갖추고 있었다.

이런 식으로 MS 내부에서 운영체제 GUI가 오피스 GUI를 뒤쫓아가는 양상은 일상적인 모습 같다. 하다못해 윈도우 3.1 시절에도 오피스가 자체 구현했던 도구모음줄(toolbar), 상황선(status bar), 은빛 3D 효과 대화상자, 프로퍼티 시트와 위저드 같은 게 95로 넘어가면서 운영체제 표준 GUI로 나중에야 편입되었다. 그러던 관행이 세월이 흘러 윈도우 7에서는 리본 인터페이스가 워드패드와 그림판에까지 적용되어 있다.

오피스 제품 중에서도 무려 1980년대부터 개발되어 온 워드와 엑셀은, 겉모습은 별 차이 안 나지만 사실 일반 대화상자들마저도 윈도우 운영체제의 표준 대화상자가 아니며 마치 아래아한글처럼 자체 구현 대화상자이다! 걔네들이 처음부터 아주 크로스 플랫폼으로 개발되어서 그런 건 아니고, 애초에 개발 컨셉이, 빈약한 운영체제의 기본 컴포넌트에 의존하지 않고 자기네 컴포넌트로 UI를 자체 구상하겠다는 방향이었던 것 같다. 그 부자 기업이 하고 싶은 걸 뭘 못 하겠는가?

90년대 이후부터 개발된 파워포인트나 액세스는 그런 수준까지는 아니지만 열기/저장 대화상자라든가 About 대화상자만은 여전히 MS 오피스 공용 라이브러리의 것을 사용해 왔다.
개발툴인 비주얼 스튜디오도 닷넷급부터는 MS 오피스의 GUI 엔진을 이어받고 있는 중이다. 순수 MFC만으로 MS 오피스 짝퉁 GUI을 구현했던 비주얼 C++ 5와 6의 계보는 흑역사가 된 지 오래.

그런데, 그러던 정책이 이제는 바뀌었다.
윈도우 비스타와 동일한 timeline에 개발된 제품인 비주얼 스튜디오 2008과 MS 오피스 2007부터는
놀랍게도 운영체제의 표준 파일 대화상자를 사용하며, 앞으로도 계속 그런 구도가 유지될 것이다!
비주얼 스튜디오 2005와 MS 오피스 2003은 그렇지 않다는 소리.

다만, 이건 비스타 이상에서 실행됐을 때에 한해서이다. 윈도우 XP에서 돌아가는 비주얼 스튜디오 2008이나 MS 오피스 2007은 여전히 자체 대화상자를 사용한다. -_-;; 이것도 무지 신기한 점임.

비스타부터는 이제 운영체제의 파일 대화상자도 기능이 매우 향상되었고 customize하는 수단도 충분히 깔끔해졌기 때문에 굳이 운영체제 따로, 오피스 따로 노선을 갈 필요를 느끼지 않게 되어 그렇게 바뀐 것 같다.
비스타에서는 비주얼 스튜디오 2005의 옛날식 파일 대화상자가 오히려 더 촌스럽게 느껴진다. ^^;;

Posted by 사무엘

2010/05/13 07:34 2010/05/13 07:34
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/267

언젠가는 이 주제에 대해서 글을 좀 쓸까 벼르고 있었는데, 얼마 전에 이것 때문에 제대로 빡치는 일이 발생하여 드디어 글로 옮기게 되었다.

우리나라의 육상 교통수단 중에 승차권 발권의 정보화/전산화가 압도적으로 가장 잘 되어 있는 곳은 단연 철도이다.
그 다음은 고속버스이다.
그리고 가장 열악한 곳은 시외버스이다.

물론 이는 어찌 보면 당연한 결과인지도 모른다. 전국의 모든 길을 정부 기관 내지 국가 공기업이 일률적으로 장악해 있는 철도하고, 일개 사기업들 나부랭이로 이루어진 버스 회사와는 인프라의 비교 자체가 공정하지 않을 것이기 때문이다.

철도는 일찌감치 승차권의 중앙 집권 전산 발매가 시작되었으며 회원 관리와 포인트 적립, 인터넷을 통한 예매, 홈티켓, SMS 티켓 등 별별 시스템이 다 있었다. 예매를 장려하기 위해 역마다 무인 승차권 발권기를 잔뜩 비치했으며, 사실은 심지어 일부 여행사를 통해 승차권 대리 발권조차도 되었다.

특히 철도청 시절의 바로타 사이트는 신용카드가 없는 학생도 얼마든지 계정을 만들어서 좌석을 찜한 후, 실제 발권과 결제는 무려 며칠 뒤에 역에 가서 현금으로 해도 되었다. 요즘처럼 예매하자마자 바로 결제해야 하는 구조가 아니라, 유예 기간도 굉장히 관대했던 것이다. (지금은 매점매석 같은 부작용 때문에 많이 엄격해졌지만)

요즘은 카드만 있으면 열차 탈 때 종이 승차권을 발권할 필요 자체가 없다. 한두 ActiveX 컨트롤만 설치한 뒤 카드 번호와 카드 비번, 주민 등록 번호 뒷자리를 입력하면 결제가 되며, SMS 티켓 발권만 하면 완전히 끝이다. 이보다 편할 수가 없으며 본인도 열차 탈 때 이 서비스를 적극 잘 활용하고 있다.

고속버스도 꽤 오래 전부터 신용카드를 이용한 예매 정도는 지원하기 시작했다. 비록 철도만치 대인배스러운 시스템은 아니지만, 최소한의 기능은 갖췄다.
ActiveX 몇 개 깔아 준 뒤 카드 번호와 유효 기간, 주민 등록 번호 같은 필수 정보를 입력하면 별 어려움 없이 예매가 가능하다. 특히 고속버스는 예매할 때 자리를 직접 고를 수 있다는 아주 큰 장점이 있다.

다만, 카드로 승차권을 샀더라도 실제 발권을 위해서는, 그 카드를 지참하여 터미널 창구로 가야 하는 불편이 여전히 있었다. 그래서 철도에서는 진작에 도입됐던 홈티켓 발권 시스템을 고속버스도 비교적 뒤늦게 도입한 모양이다. 그리고 강남 고속버스 터미널에 가 보면 제한적이지만 예매 승차권 무인 발권기도 있다.

하지만 시스템이 제일 안습인 건 시외버스.
불과 몇 년 전까지만 해도 카드 결제 자체가 안 됐다! 그것도 지방 영세 터미널도 아니고 엄연한 서울의 관문인 동서울 터미널에서도 말이다. 이런... -_-;;

상경했다가 고향으로 돌아가시는 부모님의 차표를 마련해 드려야 할 일이 있었다. 부모님은 강남 고속버스 터미널보다 동서울 터미널을 훨씬 더 선호하셨다. 미로 같이 너무 복잡한 전자보다--강남 고속 터미널의 지하 상가는 얼마나 복잡한가!-- 후자가 지하철 역에서 가기가 훨씬 더 편하고, 버스의 운임도 더 쌌기 때문이다.

본인은 지금까지 시외버스는 인터넷 예매라는 개념이 없는 걸로 알고 있었고, 시외버스를 나중에 타야 할 일이 있으면 터미널을 직접 방문하여 표를 사 오곤 했다. 21세기 IT 강국 대한민국 땅에서 아직도 그런 원시적인 만행이 저질러진 것이다.

그런데 동서울 터미널 사이트를 보니까 예매도 되는 것 같아서 예매를 시도했지만... 포기하고 말았다.
아무리 ActiveX를 깔아도 뒤로 넘어가질 않고, 맞는 카드 번호를 입력해도 다음 화면으로 넘어가질 않고... 아니, 카드 번호를 입력하기 전에 카드 종류를 고르라는 화면은 철도나 고속버스 예매 때는 전혀 접하지 못한 듣보잡 인터페이스였다. 휴대전화 인증에, 카드 뒷면에 있는 인증 숫자 3자리를 입력하라는 말도 완전 처음 봤다. 이뭐병...;;

결국 포기하고 고속버스를 시도했다. 고속버스는 승차권 결제는 별다른 문제 없이 바로 OK. 그런데 기왕이면 그렇잖아도 복잡한 고속버스 터미널에 갔는데, 차만 바로 타면 되게 집 프린터로 홈티켓을 발권하고 싶었는데... 여기서 막혔다.

홈티켓을 출력하는 ActiveX 클라이언트는 무슨 이유인지 64비트 OS를 지원하지 않는다며 동작을 배째라 거부했다. 32비트 OS인 노트북에서 PDF 출력을 시도하니 가상 프린터 드라이버라고 또 거부.. ㅆㅂㄹㅁ;;
아놔 도대체 32비트랑 64비트의 차이가 뭡니까.. -_-;;

하긴, ActiveX만 잔뜩 깔아 놓으려고 윈도우 XP를 가상 머신으로 돌려 놓아도 각종 보안 솔루션들이 아예 가상 머신을 감지하고 거기서는 안 돌아간다고 하니 그것도 낭패이다.

철도처럼 버스도 간단하게 결제 후 SMS 티켓으로 끝이라면 얼마나 좋을까?
그러면 버스 출발 직전에 검표하는 아저씨는 승차권 반쪽을 쭉 뜯어서 회수하는 게 아니라, 승객들의 휴대전화 화면을 검사하기만 하면 될 것이다.

어휴, 그래도 시외버스는 시스템이 열악한 대신, 운임이 말도 안 되게 싸니까 용서된다.
경주-서울을 아직까지 2만원이 채 안 되는 저렴한 운임으로 4시간대에 그것도 우등 좌석으로 주파 가능한 실속 있는 교통수단은 시외버스가 유일하니 말이다.

사실, 시외버스와 우등 고속버스와 새마을호 열차의 운임은 거의 등차수열 관계이다. 편리한 시스템이 갖춰진 대신 운임도 정말 차이가 난다는 사실을 알 필요가 있다.

덧.
1. 요즘은 전국 방방곡곡에 고속도로가 워낙 거미줄처럼 많이 깔려서 시외버스와 고속버스의 구분 자체가 많이 무의미해져 있긴 하다. 요즘은 터미널도 두 버스 시스템을 모두 취급하는 통합 터미널로 건설하는 게 유행이다.

2. 비행기는 일단 탑승객의 신원을 신분증으로 무조건 파악하면서 다니는 교통수단이다 보니, 철도처럼 별도의 회원 가입 시스템을 안 만들어도 주민 등록 번호 자체가 회원 ID 같은 역할을 한다.
그래서 명목상으로는 홈티켓 같은 게 있지만, 탑승권을 구입한 후 국내선의 경우 신분증, 그리고 국제선의 경우 여권 하나만 달랑 들고 가도 공항에 가면 조회가 다 된다. 다만, 마일리지 적립 같은 개념이 아주 철저하게 존재하기 때문에 회원 제도가 불필요한 건 아님. 비행기는 갈 때는 이 항공사, 올 때는 저 항공사로 이용하기가 꽤 곤란한 교통수단이다. 철도의 각종 복잡한 회원 제도 자체가 사실은 상당수가 항공에서 모티브를 딴 것이다.

Posted by 사무엘

2010/05/12 09:03 2010/05/12 09:03
, , ,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/266

인스톨쉴드 싫어

오늘은 설치 프로그램이라는 주제로 이야기 보따리를 풀어 보겠다.

과거 도스+윈도우 3.1 공존 시절에는
도스용 프로그램들은 어떤 소프트웨어의 설치 프로그램의 이름은 대개 install이었던 반면,
윈도우용 프로그램들은 어찌 된 영문인지 다들 setup이었다.
그리고 그 시절에 윈도우용 설치 프로그램들은 전체 화면으로 파랑-검정 그러데이션이 배경으로 쫙 깔리는 게 유행이었다. 그러면서 화면 좌측 상단엔 큼직한 흰색 글씨로 "무슨무슨 프로그램 설치/Setup"이 떴지. (짤방은 귀찮아서 생략-_-)
이걸 기억한다면 당신은 진정한 old timer.

그러다가 윈도우 95가 보편화하면서 전체 화면 배경은 그냥 옥색(cyan) solid로 바뀌었다.
MS 오피스 97과 아래아한글 97의 설치 프로그램이 그런 모양이었다.

그러나 그때와 지금의 근본적인 차이는.. 이제 설치 프로그램은 더는 전체 화면을 점유하는 형태로 실행되지 않는다는 것이다. 유행이 확 바뀌었다. 그냥 간단한 마법사 대화상자 하나만 달랑 뜨는 형태로 극도로 간소화됐다. 소프트웨어 설치가 무슨 게임 실행도 아니고... 그 정도로 유세 부릴 프로세스는 아니게 되었다는 의미.

MS 제품의 경우 Windows Installer 기술이 최초로 도입된 오피스 2000부터 설치 프로그램 UI가 싹 바뀌었으며, 아래아한글 역시 2002부터는 설치 프로그램이 마법사 대화상자 하나만 달랑 나올 뿐 전체 화면으로 뜨지 않는다.

사실 소프트웨어의 규모가 복잡해지고 한 제품도 온갖 버전 구분이 존재하게 되면서,
제대로 된 설치 프로그램을 만드는 것도 굉장히 골치 아프고 까다로운 일이 돼 있다.
단순히 파일을 복사했다가 지우는 것 이상이다. 예를 좀 들자면,

- 동일 제품의 여러 버전이 공존하고 이들이 다 한데 공유하는 파일이 있는데 이 파일은 언제 제거해야 하나? 그런 거 체크 리스트를 어떤 자료구조로 구축해야 하나?
- 그런 자료구조가 깨졌을 때 최대한 복구는 어떻게 하면 좋을까? 그리고 확장자 연결 복구는?
(사용자는 1.0과 2.0 중 어느 걸 먼저 설치할 수도 있고, 그 후 2.0과 1.0 중 어느 걸 먼저 제거할 수도 있다. 프로그램 설치/제거는 획일화된 스택이나 큐 구조가 아님. ㅋㅋ)
- 지금이 이전에 설치를 진행하다가 중단된 상태였는지 판단은?
- 지금 당장 건드릴 수 없는 파일을 건드려야 돼서 그걸 다음 재부팅 때 하도록 예약해 놓은 게 있나?

글 쓰면서 당장 떠오르는 복잡도만 생각해도 저 정도이다.
특히 재부팅 때 건드릴 파일을 예약하는 기법이나, 지금 실행돼 있는 프로그램 목록을 얻는 방법은.. 설치/제거 프로그램을 만들 때 반드시 필요한 동작임에도 불구하고 과거에 윈도우 9x과 NT 계열이 테크닉이 서로 완전히 달랐다. 유니코드 지원 여부 같은 차이도 존재하고.. 그러니 짜증 두 배.. -_-

예전에도 글을 쓴 적이 있지만, uninstall 프로그램을 만들 때 필요한 것이, 바로 자기 자신을 제거하는 기법이다. 윈도우 운영체제는 그 특성상 실행 중인 EXE/DLL은 운영체제가 memory-mapped file로 대응시켜 잡고 있기 때문에, 자신을 제거할 수 없다.
하지만 배치(일괄 처리 bat) 파일은 DEL 명령으로 자신을 제거할 수 있다. 그래서 EXE를 제거한 뒤 자기 자신을 제거하는 비밀 배치 파일을 만들어 실행하는 기법으로 자신을 제거하곤 한다. 리눅스나 맥은 사정이 어떤지 모르겠다.

이런 저런 사항도 있고, 아무튼 프로그램 설치/제거 및 버전 관리 기법은 어느 소프트웨어에서나 공통적으로 쓰이는 개념/테크닉만 뽑아내서 운영체제 차원에서 책임을 져 준다거나 어느 잘 만들어진 미들웨어를 쓰는 게 효율적이다.
그래서 진작부터 프로그램 설치/제거 솔루션이 나와 있었다. 가장 역사가 긴 녀석은 역시 InstallShield이다. 지금은 비록 위상이 옛날 만하지는 않고 Windows Installer의 단순 wrapper 수준처럼 된 것도 있지만.. 그래도 대형 상업용 소프트웨어에서 이게 여전히 쓰이고 있기도 하다.

InstallWise도 아마 윈도우 3.x 시절부터 건재했던 외산 솔루션이고, 국산 프로그램인 InstallFactory는 <날개셋> 한글 입력기의 2.0~2.4 시절에 잠시 도입된 적이 있다.
DeployMaster라는 제품도 있고, 아.. 그나저나 요즘 전세계적으로 가장 널리 쓰이는 솔루션은 역시 Nullsoft의 NSIS인 것 같다.
소프트웨어의 설치 프로세스라는 건 단순 파일/복사나 버전 체크 같은 아주 공통적이고 범용적인 동작도 있지만, 또 각 소프트웨어가 필요로 하는 customize 수준도 천차만별이라는 특성도 존재한다. 그러니 그런 것도 잘 살려 줘야 하면서도 최대한 배우기 쉽고 구조가 간단해야 한다.

<날개셋> 한글 입력기는 2.5 이후 버전부터 지금까지는 그냥 비주얼 스튜디오가 기본 제공하는 msi 생성 프로젝트를 이용하여 배포 패키지를 만들고 있다. AppLocale 버그(이건 뭐 MS가 만든 프로그램들끼리 충돌하는 문제-_-)도 있고, 다국어 UI도 지원 안 되는 등 좀 마음에 안 드는 면모가 없는 건 아니나, 일단 7년에 가까운 세월 동안 설치/제거 자체가 딱히 큰 트러블 없이 되는 게 검증이 되어 왔기 때문에 쓴다. 민감한 부위인 외부 모듈까지도 말이다.

또한 MSI 런타임 2.0은 윈도우 95/NT4에서도 무난하게 잘 동작한다는 점도 큰 이점이다.
사실 Application Data 같은 일부 known 디렉터리는 IE4 이전의 윈도우 95 초창기에는 없던 개념인데, MSI 런타임 2.0은 설치 과정에서 그런 디렉터리에 대한 정보도 레지스트리에다 넣어 준다. (<날개셋> 한글 입력기의 동작에 필요)

다만, 본인도 InstallShield와 Windows Installer에 대해서 그렇게 좋은 인상을 갖고 있지 않다는 점을 밝히며 글을 맺는다.
99%까지 게이지가 금세 꽉 찬 뒤, 그 뒤로 몇 분째 꼼짝도 안 하는 훼이크성 대화상자에 짜증 게이지가 확 치솟아서이다. ㅆㅂ.. 도대체 설치도 아니고 설치 준비 작업이 뭐 이렇게 오래 걸리나 모르겠다.

개발툴인 비주얼 스튜디오 2005도 2003보다 제품의 완성도는 올라갔다지만, 설치에 관한 한 정말 답이 안 나오는 제품이다.
서비스 팩 1 설치하는 시간이 2005 자체를 첫 설치하는 시간보다 더 길면 길지, 절대로 더 짧지 않다. 도대체 그 시간 동안 뭘 하는지 모르겠다.
거기에다가 윈도우 비스타 내지 7에서 쓰려면 SP1에다가 또 운영체제 패치도 설치해야 한다. 이거 뭐 해처리 → 레어 → 하이브로 올리는 정도의 시간이 걸린다.

비스타/7부터는 그냥 닥치고 2008 이상을 쓰라는 소리. 비주얼 스튜디오 2008이 나오자마자 바로 갈아탔다.
사용자에게 좋은 첫인상을 주는 설치 프로그램을 만드는 것도 중요하다.

Posted by 사무엘

2010/05/11 08:14 2010/05/11 08:14
,
Response
No Trackback , 8 Comments
RSS :
http://moogi.new21.org/tc/rss/response/265

북한 뉴스 앵커

TV 뉴스나 <남북의 창>· <통일 전망대> 같은 프로를 통해, 북한 중앙 방송의 뉴스 앵커 멘트를 듣는 경우가 가끔 있다. 왜 있잖은가,
solid color에 가까운 무미건조한 스튜디오 배경으로, 뚱하게 생긴 중년의 앵커 아줌마가 곱게 한복을 차려입고 정말 강렬한 악센트가 가미된 웅변· 연설조로 뉴스를 읊조리는 것 말이다.
정말 옥구슬 꾀꼬리 목소리를 내는 성우 중에 무려 50대 중후반 여성도 많이 있다지만, 북한 앵커의 목소리에는 모에 할 구석은 전혀 없다.  ^^;;

사용자 삽입 이미지
비록 한복 차림은 아니지만 이 분위기를 묘사하는 가장 훌륭한 짤방임이 틀림없다. ㅋㅋ
저기 나온 천하의 개쌍놈이 누군지는 기억 안 나는 분을 위해 설명 드리자면, 한 5년쯤 전에 생방송 도중에 바지 내리고 성기 노출 병크를 터뜨린 모 밴드 멤버이다.

방송 샘플을 좀 채취해 왔으니 들어 보자. 탈북자나 여타 북한 사람들이 말하는 걸 들어 보면 그래도 평범한 한국어처럼 들리는데 유독 TV 방송에서는... 누가 저런 악센트와 화법을 최초로 만들어 냈을까? 한국어를 어떻게 저런 예술의 경지로 재창조했는지 경이로울 뿐이다. =_=;; 북한의 뉴스 앵커는 거의 연기자 수준이 아닌가 싶다.


(위에 media player 컴포넌트가 떠야 함.)

본인도 어디 가서 성대 모사 못 한다는 소리는 안 듣고 지낸다만, 문장 끝부분에서 "-하셨습니(네)다" 할 때의 그 얍삽하고 사악한 악센트는... 정말 따라하고 싶어도 못 하겠다. 중국이나 러시아어 억양일까? 아니면 평안도 쪽 사투리를 응용?? 북한 애들의 매스게임 카드 섹션도 대단하지만, 저것도 얼마나 직싸게 연습해서 나온 말투일까 하는 생각이 든다.

'김 정일'을 발음할 때면 가히 '킴 정일' 수준으로 말투가 거세어진다. 쟤네들은 한글 코드에 '김/일/성', '김/정/일' 여섯 글자가 별개의 영역으로 따로 등록돼 있고, 그걸 유니코드 표준안으로 제출까지 한 적도 있는 집단이다. -_-;;; (물론 그 제안은 외국의 학자들로부터 완전히 '이뭐병' 취급 받으면서 즉시 퇴짜 맞았지만.)

우리나라도 옛날에는 일명 땡전 뉴스--9시 땡~~ 전 두환 대통령은 오늘 어쩌구저쩌구-- 같은 불공정 보도 흑역사가 있었다지만, 최소한 말투는 정상(?)적인 말투였다.
정말 아무리 같은 뿌리에 같은 언어와 문자를 쓰는 동족이라 해도 어떤 이념을 따르냐에 따라서 문화는 저 정도까지 달라진다는 걸 다시 한 번 느낀다.

끝으로, 북한 하니까 또 중국이 생각나서 한 마디.
CCTV는 폐쇄 회로 텔레비전(=유선 텔레비전)의 약자이기도 하지만,
China Central Television, 즉 중국의 KBS뻘 되는 중국 국영 중앙 방송의 이니셜이기도 하다.
그런데 폐쇄 회로는 뭐가 폐쇄됐다는 말인지 잘 모르겠다. 반대말인 개방 회로는 있는지? -_-;;

Posted by 사무엘

2010/05/10 08:40 2010/05/10 08:40
Response
No Trackback , 10 Comments
RSS :
http://moogi.new21.org/tc/rss/response/264

‘-n거리’ 로 끝나는 지하철 역

광명사거리(7),
단대오거리(8),
미아삼거리(4),
신대방삼거리(7),
신정네거리(2)

2호선 지선의 ‘신정네거리’만이 숫자가 한자어가 아닌 순우리말이다.
은근히 헷갈린다. ^^

Posted by 사무엘

2010/05/08 18:28 2010/05/08 18:28
,
Response
No Trackback , a comment
RSS :
http://moogi.new21.org/tc/rss/response/263

여러 가지 잡설

1. 요즘은 회사나 학교도 아니고 내가 사는 집안의 무선 인터넷이, 10년 전 학교의 고정 IP 유선 인터넷보다 더 빠르다.
그때는 1초에 1MB가 넘는 속도로 파일이 네트워크로 전송되는 걸 보고 ‘세상에!’ 하면서 깜짝 놀랐었는데 이제는 무선 인터넷으로 FTP 파일 전송이 초당 3~5MB씩인 것도 본다. 유선은 당연히 10MB급 이상이 된 지 오래이고...;;;

대학교 때 처음으로 무선 인터넷이란 걸 봤다. 불안정하고 자주 끊어지고 전송 속도도 300~500KB대로 지금의 10분의 1 수준이었다. 그랬으나 지금 무선 인터넷 인프라의 수준은? ㄲㄲ 격세지감이다.
본인의 초대 노트북은 모뎀만 있지 랜 카드라는 게 전혀 없었고, 2기 노트북은 유선 랜만 있어서 무선 랜 카드는 따로 달아야 했다. 3기 노트북부터는 유선· 무선 랜을 모두 구비해 있고 무선 인터넷은 이제 노트북의 필수 요소가 돼 있다.

물론 유선도 개선이 이루어져, 2004년 7월 22일부터는 그 전까지 연구실만 100Mbps(바이트가 아니라 bit)이던 네트워크 속도가 드디어 기숙사 전체까지 10Mbps에서 100Mbps로 승격됐다. 정확한 날짜가 적혀 있는 일기 짱.
하긴, 내가 딱 졸업한 뒤부터 대전에 지하철도 생기고, 학교는 기숙사 방에 에어컨도 장착되고, 재수강비가 폭등하고.. 좋든 싫든 변화가 엄청 많이 생기긴 했다.

2. 파워포인트를 잘 다루는 사람의 슬라이드를 보면, 이미 있는 디자인 템플릿을 쓴 게 아니라 정말 참신한 디자인에다가 플래시를 방불케 하는 현란한 애니메이션까지 보는 사람을 정말 놀라게 만든다.
본인이야 MS 오피스 제품은 10년도 더 전부터, 거의 97 시절부터 써 왔으며, 사실 그런 제품을 다루는 스킬은 프로그래머나 전산학 전공자에게는 자기 소개서에 쓸 거리조차 못 되는 기본적인 스킬이다.

그런데 기본 스킬이라고 해서 만만하게만 봐서는 큰코다치겠다. 제아무리 2007 버전부터 각종 현란한 이펙트가 추가되었다 하더라도, 이미 다 만들어져 있는 디자인 템플릿과 진짜 프로가 만든 나만의 디자인은 차이가 나는 법. 주변에도 정말 멋진 문서, 멋진 프레젠테이션을 적지않게 봤다.
본인도 10년 전부터 이런 제품을 썼다고 하지만 10년 전이나 지금이나 해당 제품에 대한 활용도나 이해도는 별 차이가 없다. 워드/파워포인트 실무 책도 만만하게만 보지 말고 고급 기능을 위주로 공부할 필요도 좀 있지 않나 싶다. 또한 단순 디자인 테크닉뿐만 아니라 매크로 언어 같은 것도 말이다.

참고로 육군 훈련소에 있을 때 각종 시청각 CBT 교육 자료들은 파워포인트로 만들 법도 한데 그건 진짜로 플래시로 만들어져 있었다. 뭘 근거로 플래시라고 판단했는지는 지금 기억이 안 나지만, 어쨌든 플래시였다.

3. 배불뚝이 뽀글이 아저씨의 근황이 최근 심심찮게 매스컴을 탔다.
어디서 들었는지 출처는 지금 기억이 안 나지만, 저 사람은 테러를 두려워하는 것도 있어서 외국으로 나갈 때 비행기보다는 안전한 철도를 극단적으로 더 선호한다고 한다. 그래서 맨날 열차를 탄다.

북한의 수도인 평양에도 지하철이 있다. 그것도 서울 지하철보다 1년 남짓 더 일찍 개통했다. 부산 3호선 만덕 역보다도 훨씬 더 깊다.
외국인들 관광 용도로 역 내부는 아주 으리으리한 궁전처럼 꾸며져 있지만, 에너지가 부족해서 전동차라든가 에스컬레이터 가동을 잘 못 하고 있다.

지하철 건설 과정에서 두만강 밑으로 하저 터널을 지으려 한 적이 있었는데, 뜻밖에도 실패했고 사고로 여러 명이 죽거나 다쳤다고 한다. 땅굴 파는 데 이골이 나 있을 친구들일 텐데 뜻밖이다.

정말로 어떤 통치 이념으로 나라가 세워졌느냐에 따라 이 좁은 땅덩어리의 남북이 어떻게 극단적으로 달라졌는지를 실감할 필요가 있다. 남한은 일단 민주주의에 대통령제인 건 둘째치고라도 세계 각국과 정상적으로 교류를 한다. 국민이 외국 여행을 아무 거리낌 없이 가며, 대통령이 지금 무슨 스케줄을 수행 중인지, 나라가 올림픽· 월드컵도 개최하고 각종 통계나 사건도 외국에다 아무 통제 없이 알리고 지낸다.
그 반면 저쪽은? 한 나라 지도자의 행적도 오리무중이요, 무슨 미사일이나 발사체를 쏜 것도 외국이 다 추측을 해야 한다. 우리나라는 일기예보를 할 때 북한 쪽 자료는 일본으로부터 얻어 와서 활용한다.

말이 나왔으니 말인데, 천안함 격침이 북한 소행이라면 이건 정말... 보복 전쟁이라도 불사해야 하지 않나 싶다. 아무리 우리가 반쪽만으론 작고 살기 어려워도, 역대 독재자들이 아무리 안보를 빌미로 나쁜 짓 많이 했어도, 저런 막돼먹은 깡패 집단과는 통일 나부랭이 따위 해서는 절대 안 된다. 지금까지 오로지 ‘우리 민족끼리, 북한에다 오로지 사랑으로 퍼 주자’ 하면서 미국 욕만 하느라 정신없던 친구들은 요즘 정말 닥치고 버로우 타야 할 때가 아닌가 싶다. 미군 장갑차 압사 사건은 아직까지도 우려먹는 진영이 있는 반면, 제2 연평해전은 왜 이리도 쉽게 잊어버리는가?
(하지만 현시창. 내가 보기엔, 아마 어디 소행인지 못 밝혀내고 그냥 미제 사건으로 마무리될 것 같은 분위기이다. -_-)

4. 본인은 충분히 피곤하고 잠이 쏟아지는 상태라면 주변이 어지간히 시끄러워도 잠이 잘 드는 편이다. 키보드 소리, 컴퓨터 팬 소리, 자동차 엔진음 등. 사실 전동차 구동음이라든가 비행기 소리(이륙할 때만)를 이렇게 좋아하는 걸 보면 난 태생적으로 기계음과 친숙한 건지도 모르겠다.

그런데, 음악 소리나 내가 알아들을 수 있는 말소리는 조금만 들려도 거기에 신경이 확 쏠려 버려서 잠을 절대 못 잔다. 피곤해 죽겠는데 잠들질 못하면 그건 고문..;; 아무 의미가 없는 소음은 괜찮은데 저런 음향에는 민감하다는 뜻이다.
사실은, 주변이 너무 조용해도 딴생각이 자꾸 생겨나서 잠에 금방 못 드니, 숙면과 주변 소리와의 관계는 참 미묘한 것 같다.

아, 그러고 보니 코 고는 소리도 나를 잠 못 들게 만드는 소음 중 하나. 훈련소에 갔을 때 가장 유용했던 물건은 손목시계보다도 싸제 귀마개였다. 귀마개가 없었으면 내무실에서 밤에 잠드는 데 정말 애로사항이 꽃폈을 것이고, 잠을 충분히 제대로 못 자면 다음날의 훈련의 괴로움도 더욱 커졌을 것이다. 물론 귀마개는 사격 훈련 때도 요긴하게 썼지만 말이다.

울 아버지는 누워서 TV를 보다가 곧잘 주무시는 편이다. 사람 말소리와 음악으로 온통 가득한 게 TV인데, 나의 잠버릇대로라면 저건 정말 있을 수가 없는 행동 패턴이다.

음냐.. 네 개의 글감이 서로 완전히 다른 분야와 주제의 글이 돼 버렸는데..
귀찮아서 일단 잡담 카테고리에다 한데 올린다.
네 글 중 아무 분야에나 공감되는 주제가 있다면 댓글 얼마든지 환영.

Posted by 사무엘

2010/05/08 08:18 2010/05/08 08:18
Response
No Trackback , 7 Comments
RSS :
http://moogi.new21.org/tc/rss/response/262

사용자 삽입 이미지
위의 그림은 동일한 32비트 윈도우용 프로그램을 세 개 연달아 실행하여
1. 자신의 인스턴스 핸들
2. 어떤 지역 변수의 주소
3. 어떤 전역 변수의 주소
4. 그리고 동일한 공유 메모리(memory-mapped file)를 가리키는 주소
를 차례로 찍은 것이다.

그림을 보면 알겠지만 동일한 실험을
a. 윈도우 3.1+Win32s
b. 윈도우 9x
c. NT급 윈도우

에서 모두 해 봤다. (요즘 버전의 비주얼 C++로 그 구닥다리 Win32s에서도 동작하는 프로그램을 만들려면, 컴파일/링크 옵션을 상당히 특이하게 바꿔야 한다. ㄲㄲ)

Win32s의 한계를 절실히 느낄 수 있을 것이다.
CPU의 가상 메모리 기능을 적극 활용하여 각 프로세스마다 자신만의 주소 공간이 절대 보장되는 윈도우 NT에서는,
같은 프로그램은 아무리 동시에 여럿 실행하더라도 자기 주소가 0x400000으로 고정 불변임을 알 수 있다. 심지어 윈도우 9x조차도 그건 보장된다.

그러나 Win32s는 프로그램을 실행할 때마다 프로그램의 인스턴스 핸들이 제각각이며, 지역 변수와 전역 변수의 주소조차도 완전히 달라진다. 시스템의 모든 프로그램들이 단일 주소 공간을 공유한다는 게 바로 저런 의미인 것이다.

Win32s는 모든 메모리 주소가 0x80000000 위의 상위로 잡혀 있는 것도 매우 신기하다.
9x나 NT급 윈도우에서는 그런 주소는 사실상 커널에서나 볼 수 있기 때문이다.
16비트 운영체제에다 아주 특수한 임시방편으로 32비트를 구현한 Win32s의 동작 방식을 짐작케 한다.

또 하나 재미있는 차이를 발견할 수 있는 것은 인스턴스 핸들과 포인터와의 관계이다.
9x/NT에서는 인스턴스 내지 모듈 핸들이 곧 포인터이기 때문에, 0x400000 같은 값에 해당하는 메모리 주소를 들여다보면 EXE 파일이 통째로 로드된 흔적을 고스란히 찾을 수 있다. 즉 MZ 같은 EXE 헤더가 바로 나타난다는 뜻이다. 그리고 전역 변수의 주소는 역시 근처의 0x40????대로 잡힌 것을 볼 수 있다.

그러나 Win32s의 인스턴스 핸들은 포인터와 아무 관계가 없는 임의의 16비트 정수일 뿐이다. 이는 원래부터 포인터가 서로 아무 관계가 없던 16비트 윈도우의 인스턴스 핸들과 개념을 일치시키기 위한 조치로 보인다. 제아무리 32비트 프로그램이라 하더라도 16비트 운영체제 내부에서는 16비트 규모로 식별이 가능해야 하기 때문이다.

끝으로, 공유 메모리의 주소도 흥미로운 결과가 나와 있다. 오로지 윈도우 9x만이 세 프로그램이 가리키는 주소가 모두 일치해 있다.
이는 윈도우 9x만의 메모리 사용 방식 때문이다. 0x80000000~0xC0...에 해당하는 영역에다 모든 프로그램들이 공유하는 운영체제 시스템 DLL과 공유 메모리를 올려 놓는다. 즉, 이 영역은 윈도우 9x에서는 아무 프로그램이나 바로 접근할 수 있는 단일 주소 공간이나 마찬가지이기 때문에 어느 프로그램에서나 의미가 동일한 셈이다.

NT는 그렇지 않다. 비록 실질적으로 가리키는 물리 메모리는 동일한 위치인지 모르나 이를 가리키는 응용 프로그램의 주소는 완전히 제각각이다. 이렇게 하는 게 훨씬 더 안전하고 보안 관점에서도 유리하기 때문이다.

Win32s는 공유건 응용 프로그램의 코드건 데이터건 가리지 않고 무조건 0x80... 상위 메모리 주소가 뒤죽박죽으로 쓰이는데, 공유 메모리마저 9x와는 달리 제각각인 주소가 배당되는 건 좀 의외이다. 9x는 공유 메모리만 상위 메모리 주소가 쓰였고 NT는 보다시피 상위 메모리 주소가 전혀 등장하지 않는다. 사용자 계층과 커널 계층이 엄격하게 잘 분리되어 있음을 뜻한다.

※ 덧붙이는 말

1. 유니코드

일단 Win32s와 9x는 운영체제의 내부적으로는 유니코드 기반이 전혀 아니다. 그래도 9x는 GDI 계층 차원에서 유니코드 문자를 폰트로부터 인식하고 찍는 건 지원하며 98부터는 유니코드 IME 프로토콜까지도 지원한다. 그 반면 Win32s는 운영체제의 한계 때문에 그런 게 전혀 없다. 운영체제 차원에서 임의의 유니코드 문자를 출력할 방법이 없다는 뜻이다.
오늘날까지 살아남은 NT는 무려 1993년에 나온 3.1 버전부터 애초에 100% 유니코드 지원을 염두에 두고 16비트 wide string을 기본으로 설계했으니 과연 대인배. 물론 이렇게 하려면 메모리가 더 많이 필요하다.

9x는 TextOutW, ExtTextOutW, GetTextExtentPoint32W 같은 GDI 함수는 NT와 기능이 동일하다(비록 surrogate는 지원 안 하지만). 그리고 MessageBoxW도 지원한다. 에러 메시지 뱉고 죽는 최소한의 동작만은 유니코드 함수로도 가능하게 배려했다는 뜻이다.
이외에 리소스를 찾는 FindResourceExW, 명령 인자 옵션을 얻어오는 GetCommandLineW 같은 함수가 유니코드 버전도 간단히 구현돼 있다. 비록 문자열을 ansi 문자열로 변환해서 A 함수를 그냥 호출해 주는 수준이지만.

Win32s는 그런 거 없다. MessageBoxW도 지원하지 않으며, 오로지 WideCharToMultiByte(와 그 역함수) 처럼 문자열 변환 함수만 지원되고 나머지 W 함수는 전혀 지원되지 않는다.

2. GDI/User 계층의 32비트

NT는 순수한 32비트 운영체제인 반면 9x 계열은 아직 상당수의 코드가 16비트로 존재했다. 이런 이유로 인해 9x는 대표적으로 GDI의 좌표계가 16비트 크기로 제한되어 있었으며, NT는 GDI 함수의 실행이 실패했을 때 GetLastError() 에러값이 온 반면, 9x 계열은 그렇지 않은 경우가 많았다. 그 에러값은 32비트 코드 계층에서 설정되는 값이기 때문이다.

과거 16비트 윈도우(Win32s도 당연히 포함)에서는 어떤 GDI 오브젝트 자체와 그 오브젝트가 따로 동적으로 할당하는 메모리의 양이 모두 GDI 힙 64KB 내부에 매여 있었다면,
9x는 일단 할당 가능한 오브젝트의 개수는 64KB의 제약을 받으나 각 오브젝트가 추가로 할당하는 메모리는 ‘별도의 제약이 없는 32비트 범위’인 식으로 제한 조건이 완화된 경우가 많았다. 가령, 복잡한 path나 region 같은 경우 추가 메모리 사용량이 만만찮으리라 예상 가능하다.

제약이 완화되기는 했으나 그래도 9x는 공포의 ‘리소스 제한’이 여전했던 것이다. 리소스 퍼센티지를 아직 기억하시는 분 계시려나?
NT는 역시 애초부터 그런 개념이 없었다. 모든 게 자유로운 32비트 공간이고 지금은 64비트로 자연스럽게 확장되어 있기까지 하다. ^^;;

Posted by 사무엘

2010/05/07 07:45 2010/05/07 07:45
,
Response
No Trackback , 6 Comments
RSS :
http://moogi.new21.org/tc/rss/response/261

동부 간선 도로

동부 간선 도로는 서울 지하철 7호선의 강북 구간과 비슷한 노선으로 서울 동부를 관통하는 자동차 전용 도로이다. 중랑천을 나란히 끼고 달리며, 노원구, 중랑구, 광진구 등을 경유한다.

한강을 끼고 달리는 올림픽대로와 강변북로는 주행해 봤지만, 저쪽으로는 지금까지 갈 일이 도통 없었다. 그러다 요 며칠 전에 노원구 일대까지 드라이브를 했는데, 역시 자동차가 막히지만 않으면 지하철보다 확실히 빠르다는 걸 알 수 있었다. 서울 북부도 지금까지 생각했던 것보다 은근히 더 빨리 갈 수 있었다.

이 도로는 상행과 하행이 하천의 이쪽과 저쪽으로 완전히 분리되어 있다는 점이 매우 특이하다. 다른 도로에서는 한쪽은 평지이고 다른 쪽은 그 옆에 강 위의 고가와 같은 식으로 건설된 경우는 있다. 그런데 그것도 아니고... 한강으로 치면 올림픽대로는 동쪽으로만 가고, 강변북로는 서쪽으로만 가는 것이나 마찬가지이다. 그래서 도로에 진입한 후, 하천 건너편에 있는 방면으로 들어가려면 긴 다리를 빙 돌아서 건너야 한다.

달리다 보면 차창 밖으로 코레일 동부 전동차 사무소를 볼 수도 있다. 그리고 수백 m 간격으로 철길 두 개가 위로 교차하는 것도 볼 수 있는데, 본인은 처음엔 ‘중앙선이 상행과 하행이 이렇게 긴 간격으로 분리되어 있지는 않을 텐데 뭐지?’ 하고 처음엔 궁금했다.
하지만 답은 간단하다. 교각이 분홍색으로 칠해져 있는 하나는 중앙선이고, 다른 하나(빨간색)는 경춘선이다. 앞으로 경춘선은 망우 역에서 분기하게 되므로 옛 선로 교각은 없어질 것이다. 이는 앞으로 성북 역은 경춘선 열차 취급 기능을 상실할 것임을 의미하기도 한다.

내 기억이 맞다면 동부 간선 도로는 편도 3차선인 총 6차선 도로이다. 진출입로가 입체 교차로로 정말 거미줄처럼 복잡하게 만들어져 있어서 초행자는 내비 없이는 찾아가기 정말 힘들겠다는 생각이 들었다.

여기뿐만 아니라 워커힐, 구리, 남양주, 양평 등도 언젠가 국도를 타고 철도 중앙선 노선을 따라 드라이브를 하고 싶다. 이쪽은 이렇다 할 고속도로도 없고 관광용으로 정말 좋은 코스인지라 주말마다 차들로 극심한 정체라고는 들었다. 하긴, 주말에 서울 근교에 안 막히는 도로가 어디 있겠는가? 경부 고속도로도 토요일 오전에 승용차로 하행을 타 봤다가 피 본 기억도 생생하다.

Posted by 사무엘

2010/05/06 08:38 2010/05/06 08:38
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/260

« Previous : 1 : ... 189 : 190 : 191 : 192 : 193 : 194 : 195 : 196 : 197 : ... 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:
2679687
Today:
1771
Yesterday:
2484