« Previous : 1 : ... 196 : 197 : 198 : 199 : 200 : 201 : 202 : 203 : 204 : ... 214 : Next »

내 프로그램의 중복 실행 여부를 판단하려면? (물론 윈도우 프로그래밍 기준)

실행 직후에 자신만 식별할 수 있는 이름으로 커널 오브젝트를 만들어서, 이놈의 생성 여부로 판단하는 게 제일 무난하고 안전하다. 커널 오브젝트라 함은 메모리 맵드 파일, 뮤텍스, 이벤트 등 이름의 scope가 전역적인 어느 것이라도 될 수 있겠다.

다른 방법으로 중복 실행을 판단하는 방법은 크게 윈도우 아니면 파일로 식별하는 것으로 나뉘는데, 커널 오브젝트만치 완전하지는 못하다. 그 이유를 지금부터 설명하겠다.

※ 응용 프로그램이 생성한 윈도우로 판단하는 법

FindWindow 함수로 나만이 지정하는 윈도우 클래스 이름이나 윈도우 캡션 이름을 검색하여 그게 존재하면 그 윈도우로 포커스를 옮겨 버리고 나는 실행을 종료한다. 대개, 이미 존재하는 인스턴스로 포커스를 옮겨 주는 작업이 필요할 것이므로 윈도우로 검색하는 방법은 어지간해서는 상당히 간편하고 직관적이고 좋은 방법이긴 하다. 다만,

만약 MFC 같은 프레임워크로 프로그램을 개발하고 있었다면, 메인 윈도우의 클래스 이름을 나만의 명칭으로 변경하기 위해 PreCreateWindow 같은 함수를 번거롭게 오버라이드해야 한다.

또한 클래스 이름이 아니라 캡션 이름으로 검색하는 것은 어지간해서는 피해야 한다. 캡션 이름 검색은 모든 top-level 윈도우들에 WM_GETTEXT 메시지를 보내는 방법으로 행해지기 때문에 오버헤드가 클 뿐만 아니라, 이미 실행된 내 프로그램 윈도우가 작업 중이어서 응답을 안 하고 있다면 프로그램 실행이 의도대로 되지 않을 우려가 크다.

윈도우로 검색하는 방법은 근본적으로 큰 약점이 있다. 일반적으로 프로그램이 실행된 직후 로딩, 각종 초기화를 끝내어 메인 윈도우를 생성하기까지는 적지 않은 시간이 소요된다는 것이다. 커널 오브젝트를 생성하는 것처럼 즉시 생성되는 게 아니다. 그렇기 때문에 첫 인스턴스가 아직 메인 윈도우를 만들기 전에 사용자가 실수나 고의로 또 엔터를 눌러서 둘째 인스턴스까지 실행한 경우 여전히 프로그램이 두 개가 실행되어 버릴 수가 있다. 프로그램이 어떤 경우에도 절대로 두 인스턴스 이상이 실행돼서는 안 되는 중요한 프로그램인 경우 윈도우 검색의 결과에만 의존해서는 안 된다.

※ 파일 차원에서 판단하는 법

윈도우 3.1 시절에는 WinMain 함수의 둘째 인자인 hPrevInstance를 살펴보는 것만으로도 내 프로그램의 중복 인스턴스를 판단할 수 있었다.
32비트 이후의 운영체제에서는 인스턴스 핸들의 의미가 한 주소공간 안의 포인터로 완전히 바뀌어 버렸기 때문에, 주소공간 자체가 독립적인 프로세스를 식별할 수는 없게 되었다. 오로지 그 주소공간 안에 로드되어 있는 여러 DLL 같은 모듈들만 식별할 수 있다.

그 반면, 지금도 EXE 내지 DLL 내부에 공유 가능한 섹션을 따로 생성하여 여기에 중복 인스턴스와 관련된 정보를 간단하게 집어넣을 수도 있다. 즉,
#pragma data_seg()
#pragma comment(linker, "/Section:SHARED,RWS")
이런 지시문 안에다가 전역변수를 선언하면 그 변수는 운영체제의 가상 메모리 상으로 나의 모든 인스턴스들이 공유하게 된다는 뜻이다. 자세한 것은 MSDN 참고. 번거롭게 메모리 맵드 파일 API를 호출할 필요 없이 간단한 데이터 공유에는 이 방법이 굉장히 편리하다.

이렇게 파일 차원에서 식별하는 방법은 윈도우 차원에서 식별하는 방법이 잠재적으로 갖고 있는 부작용들이 전혀 없어서 좋으나, 말 그대로 파일에 전적으로 종속적이라는 큰 한계가 있다.
같은 EXE를 이름만 바꿔 복사해서 실행한 것은 중복 인스턴스로 전혀 판단하지 못한다는 것이다. 이 점이 매우 중요하며, 이는 대부분의 경우 원치 않는 결과일 것이다. 결국 실행 파일 그 자체가 아니라 그 실행 파일이 만들어 놓은 결과를 추적해서 중복 실행을 판단하는 접근 방식이 필요하게 된다.

Posted by 사무엘

2010/02/08 22:38 2010/02/08 22:38
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/176

충전기

1. 휴대전화 충전기: 충전 중엔 적색이다가 충전 완료 후엔 녹색.
2. 전동 면도기 충전기: 충전 중엔 녹색이다가 완료 후엔 녹색 깜빡임.. -_-
3. 디카 배터리 충전기: 충전 중엔 황색이다가 완료 후엔 불빛 꺼짐
4. 옛날 디카 배터리 충전기: 충전 중엔 황색 깜빡이다가 완료 후엔 황색

와.. 이거 굉장히 심하게 뒤죽박죽 제각각이다.
이런 의미도 좀 통일이 돼야 하지 않을까 싶다.
1번이 가장 무난한 디자인 패턴이지 않을까?

Posted by 사무엘

2010/02/08 09:31 2010/02/08 09:31
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/175

도요타 자동차의 대량 리콜 사태.

자동차 급발진 사고에 대해서 한두 번 들은 게 아닌지라,
지금까지 뉴스에서 그냥 흘려들으면서 별로 대수롭지 않게 넘기기만 해 왔는데
이번 사건은 내가 생각했던 것보다 훨씬 더 심각한 수준인 것 같다.

특히 회사는 줄곧 사용자 잘못이라고 일관하면서 차량 결함에 대해서는 쉬쉬했는데,
2009년 8월에 미국에서 차를 세우질 못해 얼굴이 새파랗게 질린 운전자가 911에 도움을 요청하는 육성 녹음 방송이 공개되면서 문제가 본격적으로 공론화되기 시작했다니!

(그 말만 남긴 후 쾅...
한번 밟은 액셀러레이터 페달이 떼어지질 않았다. 차는 시속 190에 가까운 속도로 돌진하다 다른 차량과 충돌한 후 전복, 화염에 휩싸였다. 일가족 4명 몰살.)

작년 5월의 한티 역 택시 역주행 사고를 떠올리게 하는 끔찍한 사고이다.
http://bbs3.agora.media.daum.net/gaia/do/story/read?articleId=44116&bbsId=S103
이것도 오르막을 시속 100~140으로 돌진하다가 차는 두 동강 나고, 운전자와 승객 2명이 모두 숨진 괴이한 사고이다. 택시 기사가 그 전의 접촉 사고 때문에 발을 액셀러레이터에다 얹은 채 의식을 잃기라도 했는지, 아니면 다른 기계 결함 때문인지...
의혹이 무진장 많이 나돌았으며 방송에서는 액셀과 브레이크를 둘 다 밟으면 차가 설 수 있는지 실험까지 하면서 연구를 많이 하긴 했다. 하지만 죽은 자는 말이 없으니 진실은 여전히 미스터리이다.

여튼...
알고 보니 미국에서 지금까지 급발진 사고가 제일 많이 보고된 차가 도요타 차였고, 지금까지 드러나지 않았던 문제가 속속 폭로되기 시작했다.
결정적으로, 결함의 정확한 원인이 아직도 딱 부러지게 파악이 못 된 상태라고 한다.

일본 굴지의 자동차 회사인 도요타의 위신이 무너진 것은 말할 것도 없고
유례를 찾을 수 없는 대규모 리콜에 동종 모델 차량 판매 금지.
덕분에 미국이나 한국의 자동차 경쟁사들은 반사 이익을 챙기는 중이다. "도요타 고객이 우리 회사 차로 이전할 경우 특별 할인" 같은 마케팅까지 구사하고 있으니 정말로 "난 라이벌은 일찌감치 밟아 주는 주의"(개그만화 4기 1화)임이 틀림없다.

일본 항공의 자존심이던 JAL도 저 지경 됐고, 그렇게도 품질 하나로 승부해 온 일본이 예전 같지 않은 모습을 보이는 게 뜻밖이다.

차가 사람 말을 안 듣고 급발진을 시작하면 어떻게 대처해야 좋을까?
정상적인 제동 방법만으로 차를 세울 수만 있다면 얼마나 좋겠냐만 그러지 못할 경우 시동을 끈다거나 P 위치, 주차 브레이크처럼 타이어나 자동차 부품을 손상시키면서라도 어떻게든 세워야 할 것이다. 자동차보다야 사람 목숨이 더 소중하니 말이다.

다만, 비정상적인 방법으로 차를 세울 경우.. 특히 시동을 끌 경우 차는 핸들도 잠기고 완전히 통제 불능 상태에 빠진다. 차가 감속하더라도 앞으로 가면서 서는 게 아니라 빙글빙글 돌고 심하면 전복할 수도 있음을 유의해야겠다.

Posted by 사무엘

2010/02/04 11:57 2010/02/04 11:57
,
Response
No Trackback , 4 Comments
RSS :
http://moogi.new21.org/tc/rss/response/171

서울 2기 지하철 이야기

1974년에 서울 지하철 1호선이 첫 개통한 이래로, 2~4호선도 서울 올림픽과 비슷한 타이밍인 1980년대 중반에 서울 시내 구간이 모두 개통함으로써 서울 1기 지하철 프로젝트가 끝났다.

하지만 갈수록 늘어나는 교통 수요를 충당하기 위해 1990년대 초에 지하철 5~8호선의 추가 건설이 논의되었으니, 이른바 2기 지하철이다. 시기적으로는 인천 공항 내지 고속철 사업과 비슷하게 시작한 셈이다.
1기 지하철을 서울 메트로(구 서울 지하철 공사)가 관할한다면 2기 지하철은 서울 도시 철도 공사--SMRT가 관할하게 되었다.

2기 지하철에는 기존 1기 지하철의 연장 계획도 포함되어 있었다. 시작과 끝이 모두 국철 광역전철인 1호선이야 더 발전의 여지가 없고 2호선도 순환선이다 보니 지선 건설 외에는 더 생각할 게 없지만, 3호선은 남쪽으로 양재-수서 구간이 추가 건설되었으며 4호선 역시 북쪽으로 당고개 역이 이 때 신설되었다.

이때 건설된 2호선 신정 지선은 딱히 지하철 연장 건설은 아니지만 2호선용 차량 기지의 추가 건설과 5호선의 차량 반입 수단으로 큰 의미가 있었다.
다만, 과천선 내지 일산선도 비슷한 시기에 3, 4호선에 붙어서 개통은 하였으나, 이는 철도청 광역전철이기 때문에 2기 지하철의 일환으로 건설된 것은 아니었다.

2기 지하철은 1기 지하철의 건설 노하우를 바탕으로 건설 당시부터 설계라든가 기술 등 여러 면모가 향상되었다. 예를 들면 다음과 같다.

- 쵸퍼/저항보다 더 효율적인 VVVF 전동차가 처음으로 도입되었다.
- 롤지/플랩식 대신 LED 방식 전광판이 처음으로 등장했다.
- 자갈 대신 유지 보수가 용이한 콘크리트 노반이 본격적으로 등장했으며, 3· 4호선과 마찬가지로 ATS보다 더 발달한 ATC 신호가 쓰였다.
- 전동차는 1인 승무와 자동 운전이 가능하게 만들어졌다.

- 또한 1기 지하철과의 긴 환승을 교훈 삼아 역을 가능한 한 교차로에 건설하고, 앞으로 추가로 건설될 3기 지하철과의 환승도 건설 당시부터 염두에 뒀다. 그 덕을 제대로 본 환승역이 바로 여의도 역이다.
- 종착역에서 회차 용량을 늘려 주는 2폼 3섬식 승강장도 서울 2기 지하철에서 처음으로 등장한 것이다.

다만, 서울 2기 지하철은 비용 절약을 위해, 1기 지하철과는 달리 교직류 겸용 운행을 전혀 염두에 두지 않았다. 2기 지하철은 기존 철도가 거의 지나지 않는 곳을 위주로 건설되었기 때문에 차량 반입도 어려운 편이었다(특히 5, 8호선).

서울 2기 지하철과 비슷한 시기에 건설되어 비슷한 수준의 기술이 도입된 지방 지하철로는 인천 1호선, 대구 1호선, 부산 2호선 정도가 있다. 서울 1기 지하철과 시기가 비슷한 것은 부산 1호선이 유일하다.

서울 2기 지하철은 그 시기적인 특성상 차량 구동음이 가장 다채롭고 개성 넘친다. 또한 지금 7호선 부천 쪽 연장을 제외하면 딱히 노선 연장이라든가 차량 추가 도입 같은 큰 변화가 없을 것이다(그렇잖아도 개통한 지 15년 남짓밖에 안 됐는데 차량 내구연한도 25년에서 40년으로 연장).

그때에 비해 오늘날의 지하철이 바뀐 것은 2003년 대구 지하철 화재 참사를 기계로 좌석이 모두 불연재로 교체된 것, 초창기(1996년) 5, 7, 8호선 개통 구간에도 꼬마 열차 전광판이 설치된 것(2006년에), 그리고 모든 역에 스크린도어가 설치된 것(2008~09년)을 들 수 있다.

Posted by 사무엘

2010/02/03 20:33 2010/02/03 20:33
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/170

철도 차량의 수송 원가

http://blog.naver.com/mhangulo/20054140906
여기서 본인의 눈길을 끈 정보는
"서울-부산간 KTX 전기 요금은 100만원 남짓."
열차 주행뿐만 아니라 객실 내부의 전기 공급까지 다 포함한 비용이겠죠.

본인은 어디선가 다른 출처를 통해, 서울 지하철 5호선급의 노선에서 전동차 한 편성이 편도 운행하는 데 드는 전기 요금이 10몇 만원이라는 얘기를 들은 적이 있습니다.

서울-부산간 거리는 약 408km에 약 100만원. KTX는 18량에 최대 935명이 타고.
지하철 노선 길이는 약 40~50km에 약 10몇 만원. 전동차는 8~10량에 초만원일 때 1600~2000명까지 탈 수 있음.

※ 408km는 곧게 뻗은 고속신선으로 달려서 산출된 거리에요. 기존선으로 달리면 서울-부산은 440km가 좀 넘습니다.

요금과 거리의 비율이 얼추 맞죠.
KTX는 빠르게 운행하느라 힘들지만, 지하철 전동차는 고가감속으로 시도 때도 없이 가다 서다를 반복해야 하기 때문에, 역시 만만찮게 힘듭니다.

정확한 비교가 되긴 어렵지만 그래도 얼추 짐작해 보면 굉장히 수긍이 가는 결과인 것 같습니다.
서울-부산 KTX 편도 운임이 거의 5만원에 육박하니 935명이 타는 열차에 겨우 20여 명, 객차 딱 한 량의 1/3밖에 안 되는 인원만 타도 "수송원가"는 건진다는 황당한 얘기가 나옵니다.

또한 상일동-방화 교통카드 운임이 요즘 1600원이니, 지하철 한 칸에 성인이 좌석 승객(40여 명)과 입석 승객이 비슷한 양만치만 타도 "수송원가" 건집니다.
우리나라에서 전기가 얼마나 저렴한 동력원인지를 알 수 있습니다. 원자력 발전 캡숑 짱 만쉐이입니다.

서울-부산을 기름으로 달린다면?
<과학 기술로 달리는 철도>란 책을 보면 우리나라 특대형 디젤 기관차는 1km 주행에 경유를 3.32리터 쓰는 기름 먹는 하마라고 합니다. 1리터로 3.32km가 절대 아님. 운행 조건이 전혀 명시되어 있지 않으니 무척 부정확한 통계가 될 수밖에 없긴 하지만.. 감만 잡도록 하죠.

여기에다 408이든 440이든 곱하면 소모되는 기름 양은 약 1460리터에 달합니다.
철도에 무슨 비닐하우스나 어선처럼 면세유 쓴다는 말은 못 들었으므로, 세금이 그대로 붙은 자동차 경유값 리터 당 1800을 곱하면... 네, 무려 이미 260만원이 넘습니다.

그 디젤 기관차 하나로는 객차도 최고 많아야 8~9개까지만 끌 수 있습니다. 그 반면 KTX는 한번에 18개에 달하는 객차를 끕니다.
수송량에서도 차이가 나는데, 디젤은 거기에다 발전차 가동에 드는 기름값도 추가해야겠죠? 발전차의 연료 및 유류비에 대해서는 전혀 아는 게 없으니 제끼더라도, 이런 것들을 감안하면 전기는 디젤보다 수송원가가 비교가 안 될만큼 무지막지 싸다는 것을 알 수 있습니다.

전철화가 되고 나서 철도 수송원가가 거의 1/3이나 그 이하 수준으로 떨어졌다는 말은 결코 과장이 아닌 것 같습니다. 특히나 우리나라처럼 기름값 비싼 나라에서는!

Posted by 사무엘

2010/02/03 17:33 2010/02/03 17:33
,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/169

전동차가 움직이는 과정

전동차는 내연 기관 대신 전동기(모터)로 달리다 보니, 자동차와는 달리 시동이라는 게 없고 자동차와 같은 식의 변속이라는 개념도 없다.
내연 기관은 달랑 기름만 있는 상태에서 스스로 작동을 할 수 없기 때문에 처음에 전기 불꽃으로 점화를 해 줘야 하고, 엔진에 갑자기 큰 부하가 걸리면 시동이 꺼져 버리기 때문에 동력비 조절을 외부에서 해 줘야 한다. 이런 과정이 전동차에는 필요 없다는 것이다.

이건 생각해 보면 무척 신기한 사실이다. 차 키를 꽂는 곳을 보면 ON까지만 있고 START가 없다는 뜻이다. 어차피 외부로부터 동력과 전력을 공급 받으니, 생각해 보면 카오디오나 동작하는 임시 ACC 모드도 필요하지 않다. 전원을 켜고 컴퓨터의 소프트웨어적인 부팅 초기화만 끝나면 곧장 달릴 준비가 끝나는 것이다.
 
지하철은 대부분의 경우, 냉방기나 송풍기를 가동하면서 달리기 때문에 그런 거 돌아가는 소음이 밖으로까지 들리는 경우가 흔하다. 하지만 그런 걸 전혀 가동하지 않는 아주 추운 날에 지하철을 타 보면, 열차가 역에 정차해 있을 때는 그 어떤 엔진나 기계의 소리도 들리지 않는다. 달리기 시작하면 그제서야 구동음이 들린다. 이래서 전기 차량은 디젤 차량과는 비교할 수 없이 조용하다.

전동기가 내연 기관보다 on/off가 얼마나 자유로운지는 절연 구간을 보면 확연히 알 수 있다. 남영-서울역 같은 구간은 자동차로 치면.. 잘 달리던 버스가 갑자기 시동을 끄고 관성으로 달리면서 휘발유 엔진을 경유 엔진으로 교체한 뒤, 다시 시동을 걸어 달리는 것이나 마찬가지인 구간이다. 그래도 전동차는 그냥 전원 공급을 끊었다가 다시 공급만 하면 기계에 별 무리가 없이 잘 달릴 수 있는 것이다.

관성으로 달리다가 강한 역풍이나 장애물 때문에 서 버리면... 그 전동차는 꼼짝없이 디젤 기관차로 끌려가는 "구원 운전"을 받아야 하겠지만, 그런 일은 전혀에 가깝게 발생하지 않는다. 걱정 안 해도 된다. 철도 차량이 얼마나 무겁던가. 운동 에너지도 이미 상상을 초월하게 갖고 있다. 어지간한 자동차하고 충돌해도 자동차만 박살 난다. 철도 차량 안에 안전 벨트가 괜히 없는 게 아니다.

그 무거운 철도 차량을 서 있는 상태에서 그 정도 가속도로 움직이는 힘 역시 상상을 초월하는 수준이다. 자동차 1단 기어 정도의 기어비로는 어림도 없다. 전기가 아니면 그런 가속력을 얻기 어렵다. 단순히 매연이 발생하지 않는다는 점을 차치하고라도 전기는 지하철(철도)과 이 정도로 궁합이 잘 맞는 에너지인 것이다. 물론 비행기는 기름을 이용해서 일반 4행정 내연 기관이 아닌 제트 엔진 같은 다른 방법으로 매우 큰 힘을 얻지만, 연료 소모가 심하다.

어디서 본 통계인지는 기억이 안 나지만, 서울에서 다니는 대형 중전철의 경우, 한 칸당 최대 적재 하중을 20톤으로 잡고 설계된다고 한다. 즉, 이를 초과할 정도로 너무 차가 무거워지면 힘이 겨워서 버벅대고 가속이 떨어지겠지만, 그 이하에서는 차는 완전히 동일한 가속력으로 출발 가능하다는 것. 아침 시간 초만원일 때 지하철 한 칸에 거의 200~220명의 인원이 탄다는 것을 감안하여 충분하게 잡은 수치임이 틀림없다.

덧,

1. 이걸 생각하면 자살-_-을 해도 지하철 투신 같은 처참한 같은 방법은 생각하지 않게 될 것이다. 뭐, 이제는 코레일 구간 빼고 서울 지하철은 사실상 전부 스크린도어가 완비됐지만 말이다.

2. 열기관은 그 태생상 일단 구조적으로 효율이 매우 낮은 기계이다(내연 기관은 열기관의 일종). 뭐, 화력 발전소와 심지어 원자력 발전소 역시 전기를 그런 비효율적인 방식으로 생산하긴 하지만, 다른 열기관들에 비해서는 효율이 높은 편일 것이다.

3. 우리나라 전철이 교류 전기의 표준으로 채택하고 있는 25000V짜리 전압은.. 정말 말 그대로 초고압이다. 신체가 선에 완전히 접촉하기도 전에 불과 몇 cm 앞으로만 접근해도 펑! 연기와 함께 불이 붙는다. 당연히 전신에 화상을 입고 감전사한다. (물론 사람을 죽게 만드는 요인은 사실 전압이 아니라 전류이지만)
정말 조심해야 한다. 2006년 동대구 역 어린이 감전사를 비롯해 최근까지도 사고가 몇 건 난 적이 있다. 일반열차가 아닌 전철도 교류 전기를 쓰는 구간은 그 전기가 흐른다.

Posted by 사무엘

2010/02/03 07:32 2010/02/03 07:32
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/168

언어 잡설

1. 다른 언어는 어떤지 모르겠지만, 최소한 영어와 일본어는 임의의 인명을 소리만 듣고 받아적기는 거의 불가능에 가깝다.
영어는 언문 일치가 개떡이기 때문이요, 일본어는 한자 때문이다. 특히 한자 문화권에서는 내 자식은 특별하게 키우려고 일부러 잘 안 쓰이는 어려운 한자만 골라서 집어넣는 경우도 흔하다. 그래서 그런 문화권은 일상 생활에서는 잘 알려진 쉬운 이름만 사용하는 애칭이 발달해 있는 것이다. 영어 알파벳은 단어 단위로 한자 같은 뜻글자를 이루고 있는 것에 가깝다. ^^

한국어가 영어보다 문법이 복잡하고 어렵고, 띄어쓰기 같은 맞춤법도 엄밀하게 정착해 있지 못한 면모가 있는 것은 사실이지만 그렇다고 해서 사정이 꼭 절망적이기만 한 것은 아니다. 한글은 그런 게 필수불가결한 변별 요소가 아니기 때문에, 그런 걸 꼭 안 지켜도 어지간하면 뜻이 잘 통하기 때문이다. 사실 영어에서 단어 철자나 띄어쓰기가 틀리는 것은 한글 자모를 잘못 적는 것이나 마찬가지이다. ㅈ을 ㅊ으로 잘못 적는 게 아니라 아예 ∨ 같은 엉뚱한 글자로 적는 것과 비슷한 맥락인 것이다.

2. better than nothing은 이게 다른 것보다 나은 게 하나도 없다는 '꼴찌, 무익'이라는 뜻일까,
아니면 그래도 '아예 없는 것보다는 낫다'는 '위안' 뉘앙스일까? 영어로 이 둘은 어떻게 구분하면 좋을까?
'아닌' 것과 '없는' 것은 의미가 비슷하지만 다를 때도 있다. 이런 게 헷갈릴 때가 있다.

3. 영어에서 비교급을 쓸 때 간단한 형용사에 대해서는 잘 알다시피 -er, -est 어미가 붙지만,
3음절 이상의 긴 단어이거나 형용사 자체가 -ous, -ful 같은 접미사가 붙은 단어라면 그런 어미가 또 붙지는 않고, more, most 같은 부사가 비교급을 만들어 준다.
그런데 문제는 more, most 자체도 many의 비교급으로서 형용사의 의미가 있다는 것.
나의 영문법 지식에 따르면, "더 유명한 사람들이 오고 있다"와 "유명한 사람들이 더 오고 있다"가 영작을 할 때 구분이 안 되는 상황이 벌어질 수 있다는 뜻이다.
마치 한국어에서 조사 '과(와)', '랑'이 and라는 의미도 있고 with라는 의미도 어느 정도 동시에 갖고 있어서 발생하는 모호성/중의성 정도와 비슷한 차원인 것 같다.

4. '한번'은 붙일까 띄울까?
인간의 언어에서 1이라는 숫자는 두 가지 방면에서 매우 중요한 의미가 있다.
첫째는 0이 아니라 1이라는 의미일 때(부재가 아니라 실존)이다. 이때는 영어에서도 a, the 같은 관사가 붙는다.
둘째는 복수가 아니라 1이라는 의미이다. 이때는 영어로 정확하게 one이라는 숫자가 쓰인다.

그래서 0이 아니라는 부정관사에 가까운 의미로 쓰는 '한번'은 붙여 쓰고, 진짜 정확하게 one time이 되어야 할 때는 '한 번'이라고 띄어 쓴다고 생각하면 대체로 맞다.

"언제 한번 놀러 오시죠." / "우리 한번 맞장 떠 볼까?" / "그런 방법도 한번 써 봤지만, 잘 먹히지 않았다." (놀러 오는 것, 맞장 뜨는 것처럼 안 하던 행위를 해 본다는 게 중요함)
"이미 접수가 되어 있으니 글쓰기 버튼은 한 번만 눌러야 합니다." / "한 번만 더 틀렸다간 진짜 죽는다" (왜 띄었는지 명확하다)

Posted by 사무엘

2010/02/01 17:49 2010/02/01 17:49
, ,
Response
No Trackback , 5 Comments
RSS :
http://moogi.new21.org/tc/rss/response/165

<너는 참 열심히 살았다>라는 공 병우 박사의 글은 본인이 10년도 더 전에 고등학교 시절에 접했고 내 홈페이지의 자료실에도 있을 뿐만 아니라 본인이 개발한 타자연습 프로그램의 연습글에도 등재되어 있다. 이 글을 요 며칠 전 다시 읽어 봤다.
http://moogi.new21.org/book1.htm

내가 어렸을 때는 그저 감성적으로 세벌식을 지지한 것도 없지 않았지만, 좀더 성숙하고 나이가 들면서 생각해 보니 공 박사는 예전에 생각했던 것보다 더욱, 정말 무서울 정도로 천재이고 선각자였다는 생각이 들며 전율을 느낀다. 그 시절에 벌써 저런 걸 생각해 냈다니! ㅎㄷㄷ 하는 그런 느낌 말이다.
(글을 보면 알겠지만, 심지어 이메일조차도 없고 ‘팩시밀리는 놔두고 얻다가 쓰나?’ 그러던 옛날이다.)

90년대 초반에 이미 80대의 나이로 매킨토시를 애마로 사용하면서 글을 쓰신 고인이 지금도 살아 계셔서 인터넷, 채팅, 댓글 문화, 휴대전화 문자, 블로그, 심지어 스마트폰이라는 걸 접했다면, 어떻게 대응하고 한글 세벌식을 응용해서 어떤 발명을 해냈을까? 아마 그런 것도 시간을 아껴 주는 기계라고 아주 좋아하셨을 것 같다. ^^;;
그런데 나는 노트북에 너무 익숙해진 나머지 노트북보다 작은 기계에는 관심이 없어진 것도 있다. 10년 전엔 내가 시대를 앞서 갔지만, 지금은 오히려 뒤쳐지고 있는 느낌이다. -_-

어쨌든, 이렇게 기계가 작아지면서 한글 기계화 역사에서도 뭔가 중요한 변화가 생겼다. ‘기계간의 글자판 통일’이라는 관점에서 두벌식, 세벌식이라는 논쟁은 그리 의미가 없어졌다는 것이다. 마치 유니코드 앞에서 조합형 완성형 논쟁이 의미가 없어진 것과 비슷한 맥락이라 할 수 있겠다.
그렇다면 앞으로 타자기와 호환되는 기계화 방식은 정말로 의미가 없어진 것일까? 작은 화면에 버튼 수도 더 줄일 수 있는 두벌식이 세벌식에 비해 우위를 차지하게 되는 걸까?

본인은 그렇지는 않다고 생각한다. 컴퓨터가 더 작아질 수가 없는 주된 이유 중 하나는 입력 속도 때문이다. 두 손으로 누르는 범용적인(=속기가 아닌) 입력 방식 중에 오늘날의 타자기/일반 키보드보다 더 빠른 입력 방식은 내가 알기로는 없다. 또한 12키나 아이폰 20키 같은 제한된 입력 환경에서도 음절 모호성이나 도깨비불 현상이 존재하지 않는 세벌식 입력 방식을 구현하려는 연구는 여전히 진행 중이다.
세벌식은 모바일에서도 죽지 않았다. 그 몇 가지 결과물을 소개한다.
http://moonhwawon.ye.ro/zboard/zboard.php?id=00_notice&no=64 (휴대전화 12키)
http://www.hopark.info/?p=1315 (아이폰 15키)

Posted by 사무엘

2010/02/01 10:25 2010/02/01 10:25
,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/164

윈도우 3.x 시절에 MS에 한글 글꼴을 공급한 업체는 왕년의 유명한 국내 벤처 기업이던 큐닉스 컴퓨터였습니다. 한때 프린터까지 만들던 곳인데, 지금은 망하고 글꼴 개발 부분만 모리스 디자인으로 상호를 바꿔 명맥을 유지 중인 걸로 알고 있습니다. 개성체를 비롯해 동글동글한 이솝체를 만든 곳이죠.

이 글꼴들은 같은 명조, 고딕, 궁서라 할지라도 당시 아래아한글 2.x 전문용이 번들로 제공하던 한양 글꼴 equivalent에 비해 미려함이 덜하고 단조로워 보였습니다. 하지만 외국산의 품질 좋은 래스터라이저와 힌팅 정보에 힘입어, 작은 크기에서의 품질 하나는 아래아한글이 적수가 될 수 없을 만큼 정말 좋았지요.
그때는 유니코드라는 개념 자체가 없었고 한글 글꼴은 2350자를 일일이 다 그려 넣는 것밖에 선택의 여지가 없었습니다.

그러던 것이 윈도우 95에 와서는 한글 글꼴 체계가 크게 향상됩니다. 그리고 이때 첫 라이선스 한 한양 글꼴은 그 최신 기술이 모두 반영된 작품이었습니다. 어떤 게 있는지 예를 들면 이렇습니다.

첫째, TTC. 굴림과 돋움, 바탕과 궁서가 한 글꼴 컬렉션으로 병합됨으로써 둘이서 한 한자 글립을 공유할 수 있게 되었으며, 나머지는 다 같은데 영문만 불변폭 글꼴인 ‘-체’ 글꼴 변종도 기억 장소의 낭비 없이 손쉽게 구현할 수 있게 됐습니다. 이런 기술은 작은 고유 문자와 한자를 공용하는 일본에서도 더욱 필요했을 것입니다.
(하지만 이제 굴림과 궁서도 별도의 한자 글립이 있으면 더 좋을 것 같네요. 한국에서는 지금도 명조 고딕 외의 한자 글꼴은 가정용 PC에서 좀체 보기 힘듭니다.)

둘째, 비트맵 자형 내장. 알파벳 글꼴이야 아예 비트맵밖에 없는 FON 파일만 쓰든가, 아니면 트루타입은 정교한 수제 힌팅만으로 작은 크기에서도 아주 보기 좋은 자형을 만들어 냈지만 한글/한자 같은 문자는 아예 비트맵을 만들어 넣어 주는 게 당장 더 유리합니다. 윈도우 3.1 시절엔 이런 개념이 없었던 것 같습니다. 그 바탕체 12포인트는 BT16.TBM이라고 TTF와는 완전히 별개의 파일에 글립이 저장되어 있으며 운영체제가 임의로 불러들이고 출력해 주더군요. 12포인트 말고도 15포인트용 BT20.TBM 파일도 있습니다.
TTF가 자체적으로 다양한 크기의 비트맵을 내장하게 된 것이 윈도우 95부터입니다. 덕분에 굴림, 바탕, 돋움이 모두 자체적으로 비트맵을 갖게 되고 결과적으로 윈도우 3.1보다 글꼴의 품질은 크게 향상되었죠.

끝으로 유니코드 지원입니다. 확장완성형 때문에 큰 물의를 빚긴 했으나 어쨌든 모로 가도 서울만 가면 된다고, 윈도우에서 운영체제 차원에서 11172자 한글 표현이 가능해지고 한글을 조합 글립으로 표현할 수도 있게 된 것이 95에 와서부터입니다.

윈도우 9x를 직접 설치해 본 분들은 아시겠지만 얘네 계열들은 설치 GUI가 정확하게 윈도우 3.1 커널 기반입니다. 16비트 코드와 32비트 코드가 짬뽕이어서 그런지 한글 글꼴도 두 체계가 완전히 짬뽕인 것을 볼 수 있죠. 첨부하는 그림을 보시면 설치 마법사 대화상자 안의 모든 글꼴들은 9x에서 볼 수 있는 ‘한양 시스템’ 굴림이지만, 그 바깥에 있는 약간 조악한 느낌이 드는 글씨들은 전부 윈도우 3.1 ‘큐닉스 굴림’ 10포인트입니다. 둘의 품질의 차이가 한눈에 보이시죠?

컴퓨터의 성능이 향상되고 운영체제가 발달하면서 문자 입출력 기술도 알게 모르게 더욱 정교해지고 범용성이 향상되고 있습니다. 언뜻 보기에 똑같은 기능을 하면서 덩치만 아무 이유 없이 커지는 건 아니거든요.
예전에는 동아시아 버전 아랍권 버전 이렇게 따로 적용되던 기술이 이제는 전세계 어느 기계 내지 소프트웨어에나 동일하게 들어가고 있다는 뜻입니다.

Posted by 사무엘

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

BannerMania라고 무려 1989~90년대에 나온 도스용 프로그램이 있다. 나름대로 다양한 윤곽선 폰트를 사용하여 당대로서는 환상적이기 그지없는 글자 비틀기와 특수효과를 모니터와 프린터에 동시 구현하였다. 본인도 무려 286 AT 쓰던 시절에 이 프로그램을 돌려 봤다.

지금 생각해도 정말 잘 만든 프로그램이다. 굉장히 복잡 정교한 다각형 합성/채우기 계산 알고리즘이 쓰인 것은 두말할 나위도 없거니와 다양한 그래픽 카드와 프린터 지원, 프로페셔널한 디자인 세트 등은 각 분야 최고의 전문가들의 두뇌가 결집하여 만들어진 작품임을 인정하지 않을 수 없게 만든다.

이 프로그램이 사용하는 윤곽선 글꼴 파일을 읽어서 글자를 찍어 주는 프로그램을 나는 무려 2001년에 내 홈페이지 개설과 거의 동시에 만들어 올렸었다. 물론 내가 포맷을 분석한 건 아니고, 타인이 짠 코드를 포팅한 것이었다.
http://moogi.new21.org/src11.htm

이제 그로부터 7년 반 후,
본인은 그 글꼴 파일 자체를 아예 OTF로 변환하는 데 일단 성공했다. 짠~

사용자 삽입 이미지
본디 글꼴에는 진짜 최소한의 윤곽선 데이터만 들어있지 요즘의 범용적인 TTF/OTF처럼 코드 페이지 정보라든가 힌팅, 커닝 같은 개념은 있지도 않다. 그런데 BannerMania는 다각형 경계 계산을 일일이 수동으로 함으로써 커닝을 구현하는 듯하다.

WAVE 같은 단어도 보기 좋은 간격으로 찍히고, 글자의 ascent, descent 경계 구분도 자동으로 한다. 즉, 똑같은 줄이라면 AG의 A는 Ag의 A보다 더 크게 찍힌다는 것이다. 소문자 g가 차지하는 아랫부분 공간을 계산할 필요가 없기 때문이다. 정말 꼼꼼하게 잘 만든 프로그램이다.

글꼴 파일의 관행이 다 그렇기라도 한지는 모르겠는데, BannerMania 글꼴도 빅 엔디언을 쓴다. 이는 TTF, OTF 다 마찬가지이다. 단, 글꼴이 디자인된 공간의 크기를 나타내는 EM size는 220 남짓밖에 안 된다. (요즘은 1000~2000대가 대세)

윈도우 운영체제는 3.1 시절부터 TTF를 지원하다가 2000에 와서야 OTF도 지원하게 되었다. 글꼴 관리자를 꺼내 보면 전통적인 T자 아이콘 말고 O자 아이콘이 찍힌 글꼴을 심심찮게 볼 수 있을 것이다. 이것들이 OTF이다. 단, OTF 자체는 TTF 글꼴에다가 TTF의 고유 2차 스플라인뿐만 아니라 포스트스크립트 Type 2방식의 3차 스플라인도 포함할 수 있게 규격을 확장하고 몇몇 기능을 더 추가한, TTF superset에 가까운 개념이다.

윈도우 2000에서부터 Verdana, Times 같은 주요 영문 글꼴들이 OpenType으로 표시는 되나, 이들은 내부적인 윤곽선 표현 방식은 여전히 TTF 방식인 ‘껍데기만 OTF’들이다. 그것 말고 Type 2 방식의 진짜배기 OTF 글꼴도 윈도우 2000부터 지원은 하기 시작했으나, 그 지원 수준은 윈도우 비스타에 이르기까지 여전히 미비하다(7은 잘 모르겠음). OTF는 ClearType 안티 앨리어싱이 아직 지원되지 않으며, MS 오피스의 WordArt를 만들거나 오피스 2007이 제공하는 PDF 저장 기능으로 저장을 해 보면, 서체가 윤곽선 글립이 아닌 비트맵 이미지로 저장된다! 마치 아래아한글에서 hft 고유 글꼴을 처리하듯이 말이다. 이걸 보고 적지 않게 실망했다.

90년대에 아래아한글(휴먼 컴퓨터 포함)이 통합 글꼴을 별도로 만들지 않고 TTF를 썼다면 역사가 또 많이 바뀌지 않았을까 싶다. 물론 그렇게 하더라도 코드 페이지는 독자적으로 정해서 쓰고 있었으니 아래아한글용 TTF와 윈도우용 TTF가 서로 호환될 수는 없었을 것이다.

아마 독자적인 한글 표현 방식이라든가, 글꼴 압축/암호화의 용이성, 글꼴 드라이버 계층의 독립 가능성 등으로 인해 통합 글꼴이 채택된 게 아닌가 싶지만, 결국 현재 통합 글꼴을 사용하는 제품은 지구상에서 아래아한글밖에 남아 있지 않고, 그나마도 어쩔 수 없이 legacy 차원에서 지원하고 있는 실정이다.

Posted by 사무엘

2010/01/30 09:52 2010/01/30 09:52
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/162

« Previous : 1 : ... 196 : 197 : 198 : 199 : 200 : 201 : 202 : 203 : 204 : ... 214 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

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

Site Stats

Total hits:
2664969
Today:
207
Yesterday:
1937