« Previous : 1 : ... 210 : 211 : 212 : 213 : 214 : 215 : Next »

큰 게 좋아

한강: 사람이 만든 시설은 아니지만, 폭이 800미터가 넘는 큰 강..! 세계 대도시 중에서는 서울이 유일하죠. 정말 복받은 겁니다.

문제는 강뿐만 아니라 뭐든지 큰 걸 좋아한다는 것.

  도로: 서울 강남이나 도심에 있는 육중한 8차선, 10차선 간선도로는 세계 다른 대도시에서 유례를 찾기 힘들 정도로 우악스러운 대로입니다. (자동차 전용 고속도로가 아니라 시가지에 있는 도로)
차선 수만 많다고 해서 그에 비례해서 교통 소통량이 늘어나는 것도 아니고, 지나치게 넓은 도로는 지역을 양분시키고 보행자 횡단을 힘들게 만들기 때문에 도시/교통공학상으로 좋지 않습니다. 차라리 차선 수는 적어도 지금처럼 너무 대기시간이 긴 4현시 교차로 신호 대신, 비보호 좌회전, 로터리 등으로 교차로 신호 체계를 개선하는 게 더 효율적입니다.

  시험지: 기본이 B4이고 수능 시험지 같은 건 아예 신문지 수준의 A3 용지여서 책상에 다 펼치기도 못하죠. 미국 SAT나 토익, 토플 시험지하고는 차원이 다릅니다.

  지폐: 신권은 그나마 좀 개선이 됐지만, 옛날에 쓰던 지폐는 더 말이 필요없었지요. 지갑 수입업자들이 사이즈 제일 큰 것만 골라서 수입해야 했습니다.

  전동차: 지금까지 우리나라 대중교통에는 경전철이란 개념이 없었습니다. 전철 하면 언제나 표준궤에, 육중한 대형 전동차를 10량씩이나(서울 1~4호선) 끌고 다니는 중전철만 생각했습니다. 그러니 지방 광역시 지하철만 타도 전동차가 비정상적으로 너무 작고 불편하다고 여기죠. 반대로 서울 지하철이 엄청 크다고는 거의 생각 안 합니다. ^^;;
그 반면, 일본만 해도 신칸센 같은 장거리 고속 노선을 제외하면 아예 협궤도 만만찮게 볼 수 있습니다. 물론 여기에는 한국에 철도가 처음 부설되던 당시의 일제 군부의 무서운 선견지명도 작용했습니다. 당장 건설비 좀 더 들더라도, 한반도에다가는 중국, 러시아 대륙 침략을 위한 철도 직결운행을 염두에 두고 애초부터 표준궤를 썼던 것입니다. 예상은 적중.

  자동차: 우리나라처럼 땅 좁고 기름 한 방울 안 나는 나라에서 철도가 이토록 홀대받고, 자동차 중에서도 경차가 이토록 홀대받는 경우도 없을 겁니다. 그나마 요즘은 기름값이 워낙 너무 비싸져서 다시 경차 찾는 분위기가 살고 있는 거 같습니다.

  책: 전세계적으로 같은 책이 출판, 번역되어도 한글판이 종이 크기가 제일 크고, 재질도 고급이고 값도 제일 비쌉니다. 언제부턴가 우리나라 서점에서는 주머니에 넣고 다닐 만한 책이 거의 전멸했습니다.

Posted by 사무엘

2010/01/10 22:33 2010/01/10 22:33
Response
No Trackback , a comment
RSS :
http://moogi.new21.org/tc/rss/response/14

괴상한 중의성

1. (지정석 체계가 아닌 버스나 열차 안에서) "여기 자리 있습니까?"

--> 이 자리에 임자가 있습니까?
--> 내가 앉을 수 있는 빈 자리가 있습니까?

2. 너 보는 날도 얼마 안 남았다

--> 지금은 볼 수 없지만 얼마 후엔 너를 볼 수 있게 된다.
--> 지금은 너를 볼 수 있지만 얼마 후엔 볼 수 없게 된다.

2와 비슷한 예로, 누굴 오랜만에 만났을 때

--> 너 본지 꽤 오래 됐다
--> 너 안 본지 꽤 오래 됐다 (????)

일단 언어란 게 그 문자나 소리 자체보다도 분위기, 눈치, 문맥이 먼저 차지해서 의미 판단의 편견으로 작용하는 게 엄청 많습니다. '가가 가가가?'처럼.
말은 그런 게 있는데 글은 그런 게 없기 때문에 맞춤법이 필요하고 말소리보다 표기가 훨씬 더 엄밀해야 사람이 수월하게 알아들을 수 있습니다.

어쨌거나 저 표현.. 둘 다 맞을 수는 없거든요.
용법을 통일해야 할 것입니다.
우리 말글을 갈고 닦고 논리성을 높인다다는 게 이런 작은 것에서부터 시작해야 하지 않겠습니까.

Posted by 사무엘

2010/01/10 22:32 2010/01/10 22:32
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/13

철도에서 1시간 50분의 가치

서울에서 약 1시간 50분 동안 열차로 갈 수 있는 거리는?

경부선 KTX로는 무려 대구까지 갈 수 있습니다. (293.1km)
호남선 KTX로는 딱 익산까지 갈 수 있습니다. (244.5km)
새마을호로는 (서)대전까지 갈 수 있습니다. (약 165km)

그 반면,
중앙선 열차로는 원주까지만 갈 수 있습니다. (108.2km)
아니면 춘천까지가 딱 그 정도 시간이 걸립니다. (92.8km)

중앙선은 경부선에 비하면 완전 시간이 정지해 버린 노선이란 게 틀린 말이 아니죠.
경부선으로는 급행도 아니고 모든 전철역에 정차하는 1호선 완행 전동차를 타도 그 시간 동안 얼추 천안까지는 갈 수 있습니다. (약 94km)


Posted by 사무엘

2010/01/10 22:28 2010/01/10 22:28
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/11

※ once -- 컴파일러의 동작 방식을 바꿈

비주얼 C++ 거의 6.0 시절부터 지원되었던 것 같습니다.
헤더 파일의 첫 줄에다 삽입하여 이 헤더가 중복 인클루드되지 않도록 합니다.

헤더 파일 전체를 #ifdef, #endif로 싸는 것보다 간편해서 좋습니다.
물론, 이걸 쓰면 특정 헤더 파일이 인클루드됐는지의 "여부"는 알 수 없지만, 그런 거 상관없이 중복 인클루드만을 방지하려는 용도로 아주 적합하지요.

※ comment -- 오브젝트 파일에 뭔가 정보를 기록함

- lib: 프로젝트 전체의 링커 옵션을 일일이 바꾸지 않고도 이 오브젝트 파일을 링크할 때는 이 라이브러리를 추가로 찾아 보도록 지정합니다. 매우 유용합니다.
- linker: 이 소스 코드에만 적용할 링커 옵션을 아예 소스 코드에다 바로 써 넣을 수 있습니다.
비주얼 C++ 2005는 예전까지 번거롭게 리소스로 처리하던 side-by-side 메니페스트 작성을, 링커 옵션으로 지정하여 전용 도구로 손쉽게 할 수 있게 되었습니다. 내 exe가 윈도우 XP 비주얼 스타일을 지원하고 싶으면 그냥 /manifestdependency를 지정하는 링커 옵션 pragma를 한 줄 써 주면 끝이라는 것입니다.

※ pack -- 컴파일러의 코드 생성 방식을 바꿈

위의 pragma 지시들이 그냥 다른 기능이나 옵션 설정만으로도 실현할 수 있는 기능에 대한 '편의'만을 제공하는 거라면, 이건 뭔가 고유한 의미를 갖는 기능입니다. 대체할 수 있는 다른 기능이 없습니다. 바로 구조체 패킹 관련 설정을 제어하는 것이기 때문입니다.

이건 근래에는 32비트 코드를 64비트 코드로 포팅할 때 특히 신경써야 합니다. 평소에는 기계가 처리하기 적당하게 32비트 내지 64비트 크기로 패킹을 하지만, 파일을 한 구조체로 바로 읽어들이거나 네트워크 패킷처럼 크기에 아주 민감하게 구조체를 짜려면 반드시 8 또는 16비트 크기의 정밀한 패킹이 필요합니다.

구조체 패킹 크기 옵션은 컴파일러가 스택 구조로 처리하기 때문에, 나의 새로운 설정을 집어넣었다가(push) 다시 예전 설정으로 돌아가는(pop) 식의 세팅이 가능합니다.

Posted by 사무엘

2010/01/10 22:25 2010/01/10 22:25
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/10

구간별 전철 배차간격 등급

평일 N/H 기준 배차간격.

A급 약 4분: 서울 지하철 1호선
B급 약 5~6분: 대부분의 서울 지하철 시내 간선 구간 (2~5, 7호선)
C급 약 6~8분: 서울 지하철 6· 8호선, 경인선-의정부 완행
D급 약 8~10분: 분당선, 일산선 대화 행

이제 여기부터는 슬슬 시각표를 확인하고 타야 정신건강에 좋겠죠.

E급 약 10~12분: 경부선 병점 완행, 5호선 상일동· 마천 지선, 과천· 안산선 안산 행, 7호선 장암 행, 2호선 성수· 신정 지선, 경인선 급행
F급 약 15분: 분당선 보정 행, 용산-덕소선
G급 약 20분: 경부선 천안 완행, 오이도 행
H급 약 30~40분: 소요산 행, KTX광명 셔틀
I급 약 1시간: 천안 급행

개인적으로 역마다 이런 정보가 표시되어 있는 노선도를 제각기 만들고 싶습니다.

- 깊이: 5호선이라면 마포, 영등포시장 같은 역은 색깔이 무지 진하고, 발산 같은 역은 옅음
- 승강장 구조: 섬식, 상대식, 2폼 3선식 등
- 구간별 평균 배차간격: 위의 두 요소가 그래프 상에서 vertex에 대한 속성이라면, 이건 edge에 대한 속성이겠죠. A, B급 구간은 아주 진하고 I로 갈수록 옅어집니다.

Posted by 사무엘

2010/01/10 22:21 2010/01/10 22:21
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/9

날개셋 타자 게임의 역사

<날개셋> 타자연습에 게임이란 게 생긴 건 무려 01년 가을에 나온 1.0부터입니다. 베네치아 류의 전형적인 ‘혼자하기’ 게임입니다. 열두 단계 레벨, 각 레벨별 배경 디자인, 그리고 세벌식 지옥 훈련 같은 컨셉은 이 첫 버전부터 존재해 왔습니다. 세벌식 4단 자리와 윗글쇠 받침을 집중적으로 공략하는 9~11탄은 매우 어렵습니다.

각 레벨별로 떨어지는 글자의 수, 속도와 간격 등은 나름대로 식을 세워서 계산까지 하면서 정했습니다. 엔딩까지 쉬지 않고 게임을 진행하면 소요 시간은 약 20분 가량 됩니다. 1탄을 깬 직후에는 200점 남짓밖에 되지 않지만, 끝탄까지 다 깨고 나면 16000점이 넘어갑니다.

게임을 처음 만들었을 때의 레벨은 지금보다 더 어려웠습니다. 개발자인 제가 10탄 정도까지밖에 못 가게 설정되어 있었습니다. 그러다가 지금의 난이도는 03년 무렵에 완전히 정착되었고, 저는 끝탄을 깹니다. 레벨뿐만 아니라 무중력, 숨바꼭질 바이러스 같은 것도 한메 타자 교사의 베네치아 게임에서 아이디어를 따 와서 그때 이미 정착되었습니다.

처음엔 단일 주인공이었다가 02년 초에 나온 1.2에서 한별, 아름, 미르라는 세 주인공과 각각의 컨셉이 추가되었습니다. 특히 방어력이 약한 대신, 좀 오타가 있어도 단어를 맞힌 것으로 인식해 주는 미르가 무척 특이한 캐릭터였지요. 한별은 그와는 정반대로 단어를 틀리게 치면 벌칙으로 잠시 키 입력이 안 되게 됩니다.

주인공 별 밸런스도 초창기에는 자주 바뀌었지만 이 역시 레벨 난이도 정착과 비슷한 시기에 정착되어 그 이후로 바뀌지 않고 있습니다. 정석적이고 맷집이 가장 좋지만 오타에 매우 약한 한별, 체력 회복 능력이 뛰어나서 초보자에게 좋은 아름, 날타에 최강이지만 방어력이 매우 약한 미르 이런 구도이고요.

그 후 02년 초에 나온 1.25에서 게임이 DirectX 기반의 640x480 전체 화면으로 바뀌고 프레임 수가 늘어 화면이 부드러워졌습니다. DirectX라고 해 봐야 3D도 없고, 완전 DirectDraw 초창기 시절 API로 원초적인 2D 서피스 블릿밖에 쓰지 않습니다. 그리고 화면을 그리는 대부분의 과정은 지금까지도 여전히 윈도우 DC를 통해서 이뤄지고 있습니다.

1.5에서는 지금과 같은 여섯 곡의 배경 음악이 추가되었습니다. 각 레벨의 특성에 맞게 몇 주간에 걸쳐 고민하면서 선곡했습니다. 1~3단계의 <마법의 성>에서 시작해서 맨 끝 레벨의 <이젠 안녕>으로 끝납니다. 게임을 쉬지 않고 정상적인 속도로 진행하면, 얼추 음악이 한 번 완전히 끝나고 다시 반복될 무렵에 레벨이 바뀌고 다음 음악이 나오게 됩니다. 이것도 절묘한 일치입니다.

03년 5월에 나온 1.72에서는 음악에 이어 다양한 게임들에서 따 온 효과음이 추가되었습니다. 이것 역시 제가 매우 심사숙고하면서 선택한 것입니다. 단어를 맞혔을 때 나오는 효과음이 세 주인공마다 다르지요.
이때 도움말에 허접한 ‘게임 줄거리’가 추가되고 전체 화면뿐만 아니라 ‘창 모드’ 실행도 가능해졌습니다.

그 후 한동안 게임 쪽은 변화가 없다가 올해 초에 나온 2.4에서는 시스템적으로 존재하던 여러 버그들을 잡았으며, 특히 게임 중에도 음악/효과음을 켜거나 끌 수 있고, 창/전체 모드를 바꿀 수 있게 했습니다.

저는 게임 개발에 그렇게 머리가 잘 돌아가는 타입이 아니지만 <날개셋> 타자 게임만은 긴 시간 동안 나름대로 상당히 창의적으로 기획과 개발을 동시에 해서 최소한의 노력으로 게임성도 갖추고 무엇보다도 세벌식 자판 연습에 특화된 의미 있는 컨텐츠를 잘 창조했다고 생각합니다.

글쇠 연습이나 문장 연습 같은 UI는 그 흔한 비트맵 텍스쳐 하나 없이 일반 대화상자 그대로이지만 게임만은 현란하지는 못해도 일단 부드럽고 형형색색이죠. ㅎ <날개셋> 타자연습의 가장 큰 매력이 아닐까 합니다. 토박이말 사전 어휘를 대폭 끌어다 쓴 것도 독창적인 면모입니다.

현재 바라는 건...
떨어지는 글자의 뒤로 어두운 그림자가 같이 깔리고, 숨바꼭질 바이러스는 스타의 클록킹 유닛처럼 그 글자 모양대로 공간 왜곡 효과나 좀 냈으면 좋겠습니다. 그리고 세 주인공별로 맞힌 글자가 터지는 시각 효과도 다르게 했으면 좋겠는데 그걸 기술적으로 구현 못 해서 아쉬울 뿐입니다.
3D화, 네트워크 연동 등, 응용할 수 있는 다른 분야도 많죠.

Posted by 사무엘

2010/01/10 22:20 2010/01/10 22:20
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/8

side by side assembly는 윈도우 운영체제의 구조적인 문제 중 하나였던 DLL hell 문제를 해결하기 위해 윈도우 XP에서부터 처음으로 도입한 기술입니다. (그 후 2003, 비스타 등등..)

전통적으로 Win32 EXE가 symbol import table을 통해 읽어들이도록 지정되어 로드 타임 때(런타임이 아닌) 실제로 읽어들이는 외부 dll은
해당 EXE/모듈이 있는 디렉토리, 커런트 디렉토리, 윈도우 및 윈도우 시스템 디렉토리, path 환경변수가 걸린 디렉토리 등등의 순서대로 탐색합니다. 물론 kernel32, gdi32, user32 같은 시스템 dll도 다 여기에 속하고요.

런타임이 아니라 로드(load) 타임이기 때문에
이런 dll 파일이 존재하지 않거나 한 심볼이라도 읽어들이지 못했다면
그 프로그램은 그냥 속수무책으로 전혀 실행되지 못합니다.
그런 상황에서의 처리를 프로그래머가 능동적으로 전혀 할 수 없다는 게 큰 약점입니다.

* * * * * * *

자, 이런 전통적인 로딩 방식은 잠재적인 문제를 품고 있습니다.
먼저, 한 회사에서 만들어서 여러 디렉토리에 상주하는 다수의 프로그램들이 자기네끼리 한데 공유하는 dll의 경로를 지정할 수가 없습니다. 기껏 잘 해 봐야 path 환경변수 지정이 고작인데, 이는 정량적인 방법은 아닙니다. 그 경로 지정 자체가 이미 '런타임'에만 가능한데, dll 로딩 경로는 '로드 타임'에 결정되어야만 하기 때문입니다.

이런 딜레마로 인해 조금이라도 한데 공유하는 dll은 반드시 탐색한다는 게 보장되는 윈도우 시스템 디렉토리에다 집어넣는 게 무조건 장땡이었고, 이 때문에 거기는 운영체제가 기본 제공하는 dll과, 응용 프로그램들이 집어넣은 dll로 인해 몇천 개의 수백 MB에 달하는 dll들로 난장판이 되어 버렸습니다.

둘째, dll을 식별하는 수단이 이름이 유일한지라, 이름이 같지만 다른 위치에 있거나 버전이 다른 엉뚱한 dll이 로딩되었을 때 대처할 방법이 전혀 없습니다. 이는 보안상으로도 매우 위험합니다. 이게 바로 말 그대로 DLL hell의 근본 원인입니다.

msvcrt.dll, mfc42.dll, comctl32.dll 이런 것들은 윈도우 98 이래로 이름은 같지만 그동안 버전별로 프로토콜, 인터페이스가 내부적으로 상당히 바뀐 게 많습니다. 내부적으로 문서화되지 않은 동작 방식이야 두말할 것도 없겠죠. 그런데 본이 아니게 그런 문서화되지 않은 동작 방식에 의존하던 프로그램이 다른 버전의 dll을 읽어들이면 그때부터 프로그램의 안정성은 뻑이 나기 시작한다는 것입니다.

* * * * * * *

side by side assembly 기술은 위의 두 문제를 모두 원천적으로 해결하는 과정에서 나온 해결책입니다.

첫째, 이제 MS에서는 지금까지 내놓았던 시스템 dll 이후로 제 3자 응용 프로그램의 고유 dll이 윈도우 시스템 디렉토리에다 들어가는 것을 비추(discourage) 행위로 규정했습니다.
호환성 때문에 저걸 완전 금지할 수는 없구요. <날개셋>의 경우 윈도우 IME가 반드시 시스템 디렉토리에만 있어야 하기 때문에 시스템 디렉토리를 건드립니다.

그런 특수한 경우가 아니면, 응용 프로그램이 사용하는 모든 dll은 가능하면 응용 프로그램 디렉토리에다가만 두어라! 시스템 디렉토리는 이제 운영체제만 자체적으로 쓰겠다. 이곳의 포화는 이제 그만!
메모리가 부족한 상황에서 자원을 하나라도 더 공유하려고 시스템 디렉토리를 두었지만 이제 그런 정책까지 과감히 포기한 것입니다.

이게 파격이 큰 이유는, 심지어 준시스템 dll이나 다름없는 개발툴의 런타임 dll들까지 이제 시스템 디렉토리에다 넣지 않기로 했기 때문입니다. 비주얼 C++ 기준으로 6.0이 끝입니다. 6.0으로 만든 EXE만이 mfc42.dll이나 msvcrt.dll 정도는 윈도우 98 이래로 어디에나 편재해(ubiquotous) 있다고 간주할 수 있습니다. 즉 'known dll'인 것입니다.

그 이후로, 닷넷으로 만든 EXE는 자신이 사용하는 msvcr71, msvcr80, mfc71 등등을 배포 패키지에다 자체 내장해야 합니다. 윈도우 XP, 비스타의 시스템 디렉토리에 기본으로 들어있지 않습니다. 응용 프로그램이 자기가 쓰는 런타임 dll은 무조건 복사본을 자기 디렉토리에다 심어야 합니다.

둘째. 첫째가 상당히 자비심 없는 정책이 되었는데 그럼 대책이 뭐냐 하면,
내가 정확하게 읽어들이고자 하는 DLL의 고유 식별자, CPU 아키텍쳐, 언어, 정확한 버전 번호를 exe 내부에다 리소스의 형태로 xml 문서로 명시해 놓는 것입니다. 한 컴퓨터의 디렉토리 구조와는 완전히 무관하게 말입니다. 메니페스트 xml이라고들 하죠.

그 메니페스트용으로 등록된 핵심 dll들은 윈도우 시스템 디렉토리에 있는 게 아니라 WinSxS 밑에 각 버전과 아키텍쳐별로 별개의 디렉토리에 저장됩니다.
윈도우 XP라면 gdiplus, comctl32 이런 dll이 존재할 텐데요. 이름이 같은데 윈도우 XP 원본이 갖고 있던 comctl32, SP2가 갖고 있던 comctl32 이런 버전별 '스냅샷'들이 전부 따로 저장되어 있는 걸 알 수 있습니다. 비스타에는 이보다 훨씬 더 많이 있습니다. 내가 만들어서 공유하기를 원하는 핵심 dll도 이런 식으로 등록, 배포할 수 있습니다.

* * * * * * *

윈도우 XP에서 이런 새로운 방식으로 곧바로 사용되기 시작한 대표적인 운영체제 컴포넌트가 바로 comctl32.dll 입니다. advapi, shell32 같은 거 말고 comctl32만 이런 형태가 됐습니다.
얘는 윈도우 9x 시절부터도 인터넷 익스플로러와 함께 곧잘 업데이트되었던 파일이고 특히 윈도우 9x의 안정성을 떨어뜨리는 주범이기도 했습니다.

이 파일이 특히 윈도우 XP에서는 비주얼 스타일 테마의 등장으로 인해 구조가 완전히 뒤바뀌었는데, 정작 새로운 파일은 WinSxS에 있고, system 디렉토리에 있는 파일은 버전이 여전히 5.82이고 옛날 IE 5.x 시절과 별 차이 없습니다. 한 마디로, system 디렉토리에 있는 파일은 옛날 프로그램과의 호환성을 위해 시간이 그 상태 그대로 정지해 버린 것입니다.

그 반면, 메니페스트에다가 새로운 comctl32를 사용하도록 지정을 해 놓은 exe만이 대화상자에서 윈도우 XP 이후의 비주얼 스타일 적용을 받을 수 있는 구조가 됐습니다. comctl32를 이 방법을 통해 최신 버전으로 지정하지 않으면, 옛날 프로그램에서는 알록달록한 테마만 나오지 않는 게 아니라 하이퍼링크 컨트롤 같은 XP에서 새로 추가된 컨트롤을 쓸 수도 없고, 비스타에서 그 유명한 TaskDialog 함수조차도 쓸 수 없습니다.

* * * * * * *

유행 따라서 윈도우 XP 비주얼 스타일을 쓰려고 으레 '리소스' 형태로 따로 작성해 온 메니페스트가 비주얼 스튜디오 2005에서는 개발툴 차원에서 통합적으로 지원되는 요소가 되었습니다. 2005는 이제 배포 대상 플랫폼으로서 윈도우 9x의 지원을 완전히 제껴 버리고 CRT와 MFC DLL 역시 side by side assembly 형식으로"만" 로딩하게끔 정책이 바뀌었습니다.

이게 언뜻 보기에 골때리는 이유가 뭐냐 하면, 이제 2005로 만든 exe는 msvcr80.dll이 시스템 디렉토리나 심지어 그 exe 디렉토리에 같이 있다고 하더라도 winsxs 설정이 안 되어 있으면, '응용 프로그램 구성이 잘못됐다'며 실행 안 되기 때문입니다. (msvcr80이 자체적으로 퇴짜를 때리는 듯.)
그냥 msvcr80, mfc80 같이 슬쩍 복사해 놓는 방식으로는 실행 못합니다. 이들을 winsxs 정식 등록을 해 주든가, 아니면 앗싸리 MS에서 배포하는 VS 2005 redistributable 프로그램을 같이 배포해야 합니다.

그런데 도대체가 VS 2005 redist.도 따로 있고, VS 2005 sp1 resit.도 따로 있습니다.
윈도우 비스타에 기본 내장되어 있는 msvcr80의 버전이 다르고, 오피스 2007이 사용하는 msvcr80의 버전이 다릅니다. 세부 버전 숫자가 하나라도 다르면 로딩 안 되는 게 일단 보안과 안정성 면에서는 나아진 점입니다만, 도대체 같은 기능을 하는 CRT DLL을 왜 자꾸 이렇게 바꿔 대는지, 도대체 앞으로는 또 어느 장단에 맞춰 춤을 추라는 소리인지 헷갈립니다.

MFC도 아니고 CRT가 뭐가 그렇게 자주 바뀌어야 하는지.. 그냥 아무 걱정 없이 윈도우 시스템 디렉토리의 msvcrt만 쓰던 시절이 살짝 그립기도 합니다. strcpy, malloc 이런 고전적인 함수가 도대체 뭐 변할 일이 있나요? (물론 보안 쪽으로 계속 더욱 강력해져 오긴 했죠. strtok_s, strcpy_s 이런 것도 마음에 듦.)

비주얼 스튜디오 2005로 처음으로 만들어 본 <날개셋> 4.8 64비트 바이너리들은 이런 잡음을 원천 봉쇄하기 위해, 메모리 낭비를 감수하고 일단 모든 바이너리에 CRT 라이브러리를 static 링크를 해 버렸습니다. 64비트 에디션을 앞으로 계속 이렇게 만들지는 미지수입니다.

다만, 이도 저도 못한 신세가 되어 버린 게 비주얼 스튜디오 2002/2003의 CRT DLL인 msvcr71입니다. side by side assembly 형식으로 완전히 넘어간 것도 아니면서, 운영체제의 기본 지원도 못 받아서 이 파일의 배포와 로딩은 재래식으로 응응 프로그램이 그냥 알아서 해야 합니다. 이제 VS 2005 쓰라고 64비트 지원도 중단됐고 그냥 과도기 DLL로 역사 속으로 사라지게 되었습니다.
VS 2003도 서비스 팩 1이 나온지라 버전이 살짝 다른 msvcr71.dll 두 버전이 존재하게 되었지만 겉보기 상으로 차이는 없는 듯합니다.

Posted by 사무엘

2010/01/10 22:17 2010/01/10 22:17
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/7

경부선의 어제와 오늘

-- 철도 근성 수련을 원하는 후학들을 위해 알기 쉽게 정리한 한국 철도 역사. ㄳ!

경부선은 우리나라 최장거리 간선 철도망입니다. 고속도로와 철도 모두 경인 다음으로 경부가 건설되었습니다.

  서울-대전: 평지입니다. 열차가 가장 빠르게 달립니다. 지금의 KTX 경부 고속선, 경부 고속도로도 쫙 평행하게 달리기 때문에 서로 거의 만나지 않습니다.
  대전-대구: 소백산맥을 넘느라 경부선에서 가장 험준한 구간입니다. 고속도로 건설할 때도 이 구간에서 순직자가 가장 많이 났습니다. 길도 꼬불꼬불하고 고속선, 고속도로, 기존 철길이 막 제멋대로 교차합니다. 특히 김천이 이 세 길이 한데 만나는 곳입니다.
  대구-부산: 병풍처럼 둘러진 산에 낙동강 따라 천혜의 경치를 감상할 수 있는 구간입니다. 경부 고속도로는 아예 경주 쪽으로 가 버리니 볼 일이 없죠.

1905년 전구간 단선 개통.
일본은 한반도를 영원무궁토록 자기 식민지로 삼으면서 이곳을 대륙 침략의 허브로 삼으려고 했습니다. 그래서 본격적으로 조선 주권을 빼앗기 전에 철도부터 집요하게 건설했습니다.
서울과 부산을 잇는 노선이지만, 지름길인 상주, 용인 쪽은 지형이 너무 험해서 피했습니다. 그쪽과 얼추 비슷한 노선인 중부내륙 고속도로를 보십시오. 온통 고가, 터널인데다 전구간 개통도 무려 2004년입니니다. 그 당시로서는 기술로나 돈으로나 엄두를 낼 수 없었죠.

덕분에 김천, 대전, 수원을 경유하게 노선이 결정되었습니다. 특히 대전은 말 그대로 한밭이었다가 순전히 경부선 덕분에 엄청 대박을 보고 발전한 도시라 해도 과언이 아니죠.
그나저나 이 정도 규모의 철도를 놓기 위해 일본의 측량 기사들이 제멋대로 남의 나라 영토와 지형을 허락도 없이 얼마나 철저하고 교묘하게 측량해 갔겠습니까?
거기에다 노동력 착취는 둘째치고, 대대로 살아오던 집이나 밭을 하루아침에 거의 반강제로 헐값에 날린 주민들의 반발도 만만찮았습니다. 도시화, 산업화가 다 그렇듯이 경부선도 그 당시로서는 이런 흑역사를 남기고서 완공됐습니다.

경부선은 일제 강점기엔 경의선과 직결하여 북한은 물론, 중국까지도 가는 국제 철도의 역할까지 했습니다. 그렇게 교통량이 꾸준히 증가하자 1939년 전구간 복선 개통. 일본은 한창 전쟁에 미쳐 있던 차에 이미 또다른 간선인 중앙선을 건설하고 있었습니다. 물자가 부족한 전시인데다 중앙선은 애초부터 험준한 지형에 화물 수송용으로 계획되어서 경부선과는 비교할 수 없이 열악하고 굴곡이 심한 노선이 되었습니다. 조금만 언덕 나오면 빙빙 돌아 가고... 평균 운행 시속이 6, 70km밖에 안 됩니다.

그 후 1974년, 서울-수원간 수도권 전철 개통. 그 덕분에, 과거에 증기 기관차가 역사 속으로 사라진 것처럼 수도권 통근용으로 그때까지 운행되던 디젤동차가 서서히 퇴출되었습니다. 동력원만 전기로 바뀐 게 아니라 이 전동차는 서울 지하철 1호선(서울역-청량리)과 그대로 직결 운행을 하여 본격적인 지하철 시대도 열었습니다.

  중요한 사실: 개통 당시에는 지금의 중앙선 전철처럼 복선 구간에다 일부 역에 대피선만 설치해서 일반열차와 전동차가 선로를 공유했다는 것. 이때는 역 수도 지금보다 훨씬 적었고 완급 운행이라는 개념 자체가 없었습니다.

옛날에 미국과 소련이 우주 개발 때문에 체제 경쟁을 했던 것처럼 서울 지하철도 북한과의 체제 경쟁의 산물이 아니냐는 말이 나왔었습니다. 그런 말이 나올 만도 한 게, 북한에서는 73년에 평양 지하철을 먼저 개통했기 때문입니다.
일본은 이미 1920년대에 도쿄 지하철을 개통했으니 우리나라는 고속철은 일본보다 40년, 지하철은 반세기 가까이나 늦은 셈입니다.

1981년 말, 늘어나는 열차 수요를 감당하기 위해 서울-수원 수도권 전철 구간이 드디어 2복선으로 확장되었습니다. 철도 박물관에 다시 가 본 덕분에 정확한 정보를 입수했습니다.

1983년, 새마을호의 서울-부산 운행 시간이 5시간대에서 4시간 40분으로 단축되었습니다. 이 시기에 경부선 어느 구간에 선형 개량을 한 덕분이었습니다. 제가 알기로는 천안-평택 쪽입니다. 현재 경부선, 아니 전국의 일반열차 노선을 통틀어 열차가 시속 140~150km대로 가장 빠르게 달리는 구간이죠. (더 자세한 정보 필요)

1987년, 한국 철도 차량 역사에 한 획을 그을 전후 동력형(PP) 새마을호 디젤 동차가 대우 중공업에서 첫 생산되어 경부선에 투입되었습니다. 스포츠카 같은 날렵한 외형에 디젤 기관차보다 조용하고 가볍고 가속력 좋고, 자체 발전 시설도 있고. 아직 우등 고속이 생기기도 전이었는데 세계 최고급의 호화 인테리어!

저번엔 노선이 개선되고 이번엔 차량이 개선됨으로써 서울-부산 운행 시간이 4시간 10분으로 단축되었습니다. (동대구· 대전만 정차) 비행기 다음으로 빠른 교통수단이 되었습니다. 그때의 새마을호는 지금의 KTX 이상의 초호화 귀족 열차였습니다. 기내지 레일로드도 88년에 창간했죠.

그 후, 1999~2002년 그 사이에.. 서울-구로 3복선 개통.  (더 자세한 정보 필요)
만성적인 수송력 부족을 호소하던 경인선이 차츰 2복선 으로 확장되고 급행 전동차가 운행되기 시작했습니다. 그와 맞물려 경부선과 경인선 전동차가 합류하는 서울 구간의 선로 확장도 필요해졌고, 그 때문에 이 구간은 전국에서 선로가 가장 많고 열차가 가장 자주 다니는 3복선이 되었습니다. 완행 전동차, 급행 전동차, 일반열차 이렇게 한 쌍식입니다.

서울 외곽과는 달리 빽빽한 서울 한복판에서 선로 확장이란 매우 어려운 일이었습니다. 이 때문에 서울 구간은 방향별 복복선 대신 비효율적인 선로별 복복선이 되었습니다. 상대식 승강장이 그대로 쌍섬식 승강장으로 확장되지 못하고, 비효율적인 쌍상대식 승강장이 됐습니다.
게다가 선로를 평행하게 쭉 확장을 못하고 대방-노량진 사이에서 일반열차 선로가 꽈배기굴로 전동차 선로 맞은편으로 옮겨 가는 구조가 되었습니다.

사실 경부선은 최소한 수원까지도 3복선이 되어야 할 정도로 용량이 한계에 달했습니다. KTX와 일반열차, 일반열차와 급행 전동차 사이의 만성적인 신호 대기와 지연을 해결할 길이 없습니다. 경인선은 전동차밖에 없는 2복선인데도 워낙 절대적인 수요가 너무 많아서 지옥철이고, 경부선은 수요는 경인선만하지 않지만 일반열차 때문에 전동차가 부족해서 지옥철입니다.

2003년 수원-병점 수도권 전철 개통. 경부선 전철의 남쪽 한계가 30년만에 더 아래로 바뀌었습니다. 사실 천안-수원간 복복선 및 수도권 전철 공사는 1996년부터 진행되어 왔는데, 가장 시급하던 병점까지 먼저 개통을 한 것입니다. 승객 수요보다도 시설 면에서 훨씬 더 시급했습니다. 수원 역은 지금까지 전동차의 종점임에도 불구하고 전동차 회차 시설이 열악했기 때문입니다.

경부선에서 일반열차는 2복선 선로의 내선에서 달리고, 전동차는 외선에서 달립니다. 수원 역에서 운행을 마친 전동차는 다시 서울로 돌아가기 위해 선로를 바꿔야 하는데, 한쪽 외선에서 맞은편 외선으로 가기 위해 일반열차의 내선 선로를 평면 교차하며 침범해야만 했습니다. 이는 매우 바람직하지 못한 구조로, 경부선 전동차의 잦은 지연과 신호 대기를 야기했으며 전동차 증차에도 큰 걸림돌이었습니다.
이 문제를 해결하기 위해 일반열차를 취급하지 않는 인근 지역에 전동차를 입체 교차로 회차할 수 있는 역을 만들고, 천안 개통에 대비한 추가 차량 기지까지 연결해 놓은 것입니다. 이것이 병점 연장 개통의 의미입니다.

  (사례 연구: 한때 청량리-회기 구간에 승객의 원성이 하늘을 찌를 정도로 악명 높았던 전동차 지연의 원인도 맞은편 용산-성북 경원선 전동차와의 평면교차 때문이었습니다. 지금은 그게 용산-덕소 노선이 되어서 교차가 해소됐죠. 그러면 회기에서 성북까지 가는 열차 수가 줄었다는 뜻인데, 그 대신 병점에서 출발한 경부선 전동차가 청량리를 넘어 성북까지 가 줍니다. 단, 천안 발 전동차는 여전히 청량리까지만 가죠.)

2004년, 고속철 개통. 전기로 달리는 KTX가 기존선을 임시로 사용하는 대구-부산 구간이 전철화가 끝났습니다. 고속철 개통은 분명 의미 있는 일이었지만 일반열차 감축과 정차역 증가, 그리고 새마을호의 급격한 몰락을 알리는 신호탄이기도 했습니다.

2005년, 9년간의 공사 끝에 병점-천안이 2복선 전철화함과 동시에 수도권 전철 구간이 되었습니다. 수도권 전철 운임으로 천안까지 가는 시대가 열린 것입니다. 새로 건설된 구간은 전동차 완급 혼합 운행을 위한 대피선도 마련되어 있어 수원 이북보다 수월하게 전동차가 달릴 수 있습니다.
아울러, 이때 천안-조치원 구간도 전철화가 완료되어 경부선, 충북선, 중앙선의 삼각 전철 노선망이 완성되었습니다.

끝으로 지난 2006년 말에 경부선 전구간이 전철화가 끝났습니다. 이것도 최소한 90년대 말부터 꽤 오래 끈 공사였는데 한국 철도의 오랜 숙원을 이뤘습니다. 지형이 험준한 추풍령 쪽의 선형 개량 공사도 같이 했습니다.
경부선 첫 개통 100년만의 일이고 우리나라 국력과 교통 수요를 감안할 때 너무 늦은 감이 있습니다. 사실 고속신선 건설보다도 기존선 전철화부터 먼저 해야 했습니다.

중앙, 영동, 태백선 쪽에서나 볼 수 있던 전기 기관차가 서울-부산간 노선에도 투입되어 쌩쌩 달리는 것을 보노라면 말할 수 없는 희열을 느낍니다. 가감속력 좋고(지연 만회에도 유리함) 수송원가가 훨씬 더 싸고, 조용하고 운전하기도 관리하기도 더 편해서 기관사들이 아주 좋아합니다. 일부 철도매니아들은 경부선 전철화가 고속철 개통보다 더 의미 있는 일이고 경사· 쾌거라고 말하기도 합니다.
 

Posted by 사무엘

2010/01/10 22:13 2010/01/10 22:13
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/6

지하철의 전기 시설

※ 전기 시설

교류 전기 원리의 발견은 오늘날과 같은 눈부신 전자기 문명을 만들어 낸 주역임이 틀림없습니다.
예전처럼 기껏해야 화학 전지로 몇 볼트짜리 저전압 전류나 일시적으로 장난감 수준으로 만들어 낸 게 아니라 운동 에너지로 마음껏 전류를 손쉽게 대량생산할 수 있고, 무엇보다도 변압을 손쉽게 할 수 있게 된 것입니다. 변압이 손쉽다는 말은 고압 송전이 가능하다는 말이고 그 말은 전력 손실을 최소화하면서 장거리 송전이 가능해진다는 것입니다.

전기 에너지는 말 그대로 번개 같은 속도로 끊임없이 흘러가 버리며, 화학적인 방법으로 석유만치 충분한 에너지를 단시간에 많이 축적해 놓기가 어렵다는 단점이 있습니다. 배터리 충전 시간은 주유 시간보다 훨씬 길며 축적량도 부족합니다. 전기 자동차가 실용화가 못 되고 있는 이유 중의 하나이기도 합니다.

하지만 전차선으로부터 실시간으로 계속 흐르고 있는 전기를 받아서 동력원으로 사용하는 것은 4대 교통수단(도로, 철도, 항공, 해운) 중 오로지 철도에만 충분히 승산이 있는 방식입니다. 또한 역으로 철도는 그야말로 전기 철도 기술이 개발됨으로써 제 물 만난 거라고 해도 과언이 아닙니다. 수송 원가 낮고, 내연 기관보다 동력비 조절이 쉽고, 소음· 진동 적고... 특히 환기 시설이 열악한 지하철에서는 배기가스가 없는 전기 에너지가 선택의 여지가 없는 유일한 동력원입니다. 물론 전철은 초기 시설 투자 비용이 매우 높다는 단점은 존재하지요.

장거리 송전에 대한 유리함 때문에 일반적으로 간선 전기 철도는 교류 전기를 사용합니다. 이 경우 동력차는 초고압으로 송전된 전기를 자기 용도로 전압을 낮추는 변압기를 자체적으로 갖춰야 합니다. 컴퓨터에서 파워 서플라이어 같은 부품이 되겠네요.

그 반면, 단거리에서 열차들을 매우 촘촘하게 운행하는 지하철은 송전 손실에 대한 부담이 상대적으로 적기 때문에 그냥 대형 변압기 하나가 만들어 낸 저전압 직류 전기를 바로 보냅니다. 이 경우 전동차들은 변압기를 제각기 갖출 필요가 없으니 경제적입니다.

그리고 또 하나...
고압의 교류 전기는 흐르면서 자기장, 전자기파 등의 side effect를 만듭니다. 고압선 아래에 있으면 뭐 머리가 아프고 TV 화면이 왜곡되고 백혈병에 걸리고.. 말이 많습니다. 지하철에 설치된 교류 고압선은 통신선 같은 다른 도시 지하 기간망에도 영향을 줄 수 있습니다. 여러 모로 직류보다 취급하기 까다로운 셈입니다. 하지만 이 정도는 기술적으로 극복이 가능합니다. 단지 사람이 문제될 뿐입니다.

※ 사례연구

노선이 주로 달리는 곳(지상/지하), 전동차의 전기 종류(교류/직류), 그리고 통행 방향(좌측/우측).

1. 지상,교류,좌측: 경인선, 경부선, 안산선, 경원선, 중앙선 (거의 모든 국철 수도권 광역전철)
2. 지하,교류,좌측: 분당선, 과천선
3. 지하,직류,좌측: 서울 지하철 1호선(서울역-청량리)
4. 지하,직류,우측: 서울 지하철 2-8호선 (거의 모든 서울 지하철), 일산선

제일 국철-_-스러운 성향이 1이고, 제일 지하철스러운 성향이 4입니다.
그리고 그 과도기에 있는 예외적인 경우가 2와 3, 그리고 국철임에도 시설이 완전히 지하철에 동화된 일산선입니다.

서울 지하철 1호선은 1과 3이 직결 운행하고, 4호선은 2와 4가 직결 운행한다고 볼 수 있습니다.

한 마디로,
000
100
110
111
의 패턴이 발견되는 셈입니다.

우리나라의 전동차에도 이에 맞춰 교류 전용인 철도공사 전동차, 직류 전용인 지하철 전동차가 있고 교· 직류 겸용 전동차도 있습니다.
겸용 전동차가 단가가 더욱 비쌉니다.

* * * * * * * *

지하철은 하나하나 다 따지고 분석하고 뭔가 재미와 의미를 발견할 만한 "스펙"이 많아요.
승강장, 토목, 전동차, 모터, 전기, 배선 등등등등 ㄳ

Posted by 사무엘

2010/01/10 22:09 2010/01/10 22:09
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/5

지하철이 건설되는 방식

※ 터널 건설

1. 개착식

보통 한 도시의 지하철의 첫 노선은 교통 수요가 많은 도심의 큰 도로를 따라 건설되는 게 정석입니다. 그래서 그 도로의 일부를 틀어막고 파내서 그 아래에다 콘크리트 상자를 넣어 길을 튼 뒤, 다시 도로를 복구합니다.

지하철을 처음 건설할 때는 이런 개착식이 여러 모로 쉽고 유리합니다. 건설 우선순위가 높은 노선인데다, 도로를 따라 만드니 건물에 영향 줄 일도 없습니다.
처음 만드는 노선이니까 이 방식으로 지상으로부터 좀 얕게 파도 되고, 건설 비용도 뒤의 터널식보다는 적게 듭니다. 물론 건설 기간 동안 지상 도로가 혼잡해지고 공사장의 소음 진동 때문에 분위기가 험악해지는 문제가 있습니다.
이 방식으로 건설된 터널은 단면을 보면 사각형 모양이 됩니다.

2. 터널식

지상으로부터 개착식으로 top-down approach가 불가능한 모든 구간은 선택의 여지 없이 터널식으로 건설됩니다.

- 지상 도로가 너무 좁아, 길 틀어막고 땅 파헤치기 곤란할 때
- 이미 완공된 기존 지하철 노선보다 아래로 새로이 길을 내야 할 때 (두 노선을 개착식으로 동시에 건설하는 게 아니라)
- 기존 건물 아래로 지나야 할 때 (7호선 남성-숭실대입구, 고속터미널-내방)
- 언덕처럼 고도가 높은 지표면으로부터 엄청 깊이 건설해야 할 때 (8호선 산성)
- 하저터널은 당근! (5호선 마포-여의나루)
그러니 1기 지하철보다 깊고, 더 열악한 곳도 지나고, 더 구불구불하고 지상에 길이 없는 곳도 새로이 길을 내야 한 2기 지하철은 터널식으로 건설한 구간이 1기 지하철보다 훨씬 더 많습니다.

터널식은 말 그대로 북한군 땅굴 파듯이 지하에서 드릴로 암반을 뚫으면서 전진하는 방식입니다. 건설 기간 동안 지상에 영향을 주지 않는다는 장점이 있지만 공사가 더욱 까다롭고 비용이 많이 듭니다. 작업 환경도 더 열악하죠.

이렇게 만들어진 터널은 드릴 모양대로 둥글게 됩니다. 커다란 타원 터널에 양 선로가 들어가는 경우도 있고, 아니면 좀더 건설 비용을 아끼기 위해 콧구멍 같은 단선 쌍굴이 되기도 합니다. 따라서 터널식으로 건설된 구간에는 섬식 승강장이 등장할 확률이 더 높습니다. 단선 쌍굴 모양 때문에 섬식이 되기도 하고, 애당초 개착식을 적용하지 못했을 정도로 지상 도로 폭이 좁아서 승강장 공간을 아끼기 위해 섬식을 선택한 경우가 모두 가능하기 때문입니다.

※ 사례연구

개착식으로 도로를 파헤치며 건설된 서울 지하철 1호선은 동아일보 본사와 같은 주요 건물의 아래를 피해 가느라 종각-시청 구간에 극심한 커브가 생겨, 열차 운행을 어렵게 하고 있습니다. 터널이 얕아서 주변 건물에 줄 수 있는 영향도 컸겠죠.

그러나 5호선은 2호선과 겹치는 강북 도심 구간에서 위아래로 지상의 길이 없는 곳도 꼬불꼬불 비집고 다닙니다. 덕분에 굴곡이 심하지만, 한편으로 깊고 터널식으로 건설됐기 때문에 건물 밑을 막 드나들 수 있습니다.

7호선 강남 구간은 고속터미널-내방, 남성-숭실대입구 구간이 길따라가 아니라 건물, 공원 밑을 관통합니다. 특히 자기 집 밑으로 지하철 공사가 진행된다고 하니까 관악 현대아파트 주민들의 극심한 반대로 인해, 7호선 강남 구간 개통이 매우 지연되게 됐습니다. 서울 시내에서 역간거리가 2km를 넘는 상당한 거리인데, 중간에는 1호선 동묘앞처럼 지상에 역을 만들고 싶어도 못 만듭니다.

Posted by 사무엘

2010/01/10 22:08 2010/01/10 22:08
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/4

« Previous : 1 : ... 210 : 211 : 212 : 213 : 214 : 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:
2680115
Today:
76
Yesterday:
2123