1. 레거시 부동소수점 MBF

컴퓨터에서 쓰이는 2진법 기반의 부동소수점이라는 개념이야 컴공· 전산에서 기본 중의 기본에 속하는 내용이며 본인 역시 이에 대해서 거의 7년 전에 글을 한번 쓴 적이 있다.
본인은 GWBASIC으로 프로그래밍에 처음 발을 내디딘 세대이다. 그런데 베이직이 PC와는 따로 노는 고유한 부동소수점 체계를 갖춘 언어였다는 사실을 30대 나이가 될 때까지 전혀 모르고 있었다.

쉽게 말해 같은 컴퓨터에서 실행한 다음 프로그램의 실행 결과가 GWBASIC과 QuickBasic이 서로 동일하지 않다는 것이다. 참고로 MKS$, MKI$는 해당 숫자들의 binary representation을 문자열 형태로 되돌리는 저수준 함수이다. C++라면 reinterpret_cast<char *>(&num) 한 방이면 끝났을 일이다.

10 INPUT A!
20 IF ABS(A!)<.01 THEN END
30 C$ = MKS$(A!)
40 FOR I = 1 TO 4: PRINT ASC(MID$(C$, I, 1)): NEXT
50 GOTO 10

사용자 삽입 이미지

하긴, 옛날에 베이직은 DEFINT A-Z 같은 걸 하지 않으면 변수의 기본 자료형이 정수가 아니라 실수였다. 언어를 설계할 때 성능보다 인간적인 면모를 더 추구해서 그렇다. (5/3을 구하면 매정하게 1이 아니라 알아서 1.6666..이 나오게..) 그러니 구조적으로 실수를 지원하는 건 필수였다.

때는 무려 1975년, 빌 게이츠가 폴 앨런과 함께 알테어 베이직을 개발하던 시절에 동료들과 함께 뚝딱 해서 2진법 기반의 부동소수점 표기 방식을 만든 게 Microsoft Binary Format, 일명 MBF라는 스펙이 됐다. 32비트와 64비트 두 형태로 말이다.
이 부동소수점은 알테어뿐만 아니라 BASICA, GWBASIC 등 온갖 플랫폼에서 돌아가는 베이직 인터프리터에 두루 쓰이기 시작했다. 지금도 인터넷에 굴러다니는 GWBASIC은 IEEE754가 아닌 MBF 고유 방식으로 부동소수점을 처리한다.

그랬는데 훗날 1984년경에 IEEE754라고 공신력이 더 높은 표준이 등장하면서 판도가 급격히 그쪽으로 기울었다. 게다가 PC에서는 인텔 80x87이라고 오늘날로 치면 하드웨어 가속에 해당하는 수치 연산 보조 프로세서(코프로세서)도 응당 IEEE754를 기반으로 만들어졌다.

마소는 일찍부터 자체적인 부동소수점 포맷을 먼저 제정해서 이를 퍼뜨려 왔지만 이런 시국에서는 자기도 대세를 거스를 수 없게 되었다. GWBASIC의 후신인 QuickBasic도 80년대 중반에 나왔던 1, 2까지는 MBF를 사용했지만 3.0부터는 IEEE 방식으로 갈아탔다. 그 대신 기존 MBF 방식은 별도의 옵션을 줬을 때에만 지원하게 동작이 바뀌었다. (/MBF) MBF 형태로 저장된 부동소수점을 읽어들이는 레거시 프로그램들과의 호환성도 중요하니까 말이다.

그럼 IEEE와 MBF는 어떤 차이가 있었는가? 몇 가지가 있다.
똑같은 32비트 또는 64비트 공간에다 지수와 유효숫자와 부호 비트를 어느 순서대로 어떻게 분배할지 문제는 한 마디로 그냥 정하기 나름이고 대동소이하다. 마치 철도 궤간을 정하는 문제와 비슷하다.

수 전체의 부호 1비트는 IEEE나 MBF든 공통일 수밖에 없고, 32비트의 경우는 지수 8비트, 유효숫자(mantissa) 23비트라는 비율 역시 동일했다. 다만,

(1) IEEE는 2의 보수 기반인 정수의 관행을 존중해서 부호 비트가 수 전체의 최상위 비트에 있는 반면, MBF는 지수와 유효숫자 사이에 존재했다. 다시 말해 mantissa의 최상위 비트에 있는 셈이다. 이렇게 배치를 함으로써 MBF는 IEEE와는 달리 지수와 유효숫자가 딱 8비트와 24비트로 byte padding이 맞춰지게 했다.

(2) 64비트 실수의 경우 이 비율도 달라진다. IEEE는 지수의 공간도 딱 3비트 더 늘어서 11비트이지만, MBF는 여전히 8비트이다. 그래서 32비트 single 실수를 쓰다가 64비트 double 실수를 쓰면 정밀도는 왕창 심지어 IEEE보다도 더 올라가지만 수의 표현 가능 자리수가 늘어나지는 않는다. 그 대신 바이트 경계는 여전히 1:7 비율로 지켜진다.

(3) 다음으로, MBF는 IEEE처럼 denormal number나 NaN, 무한대/무한소 같은 개념도 없다. denormal이야 숫자 표현과 관련된 내부 디테일이니 그렇다 치더라도 베이직 언어로 수학 함수를 사용하면서 NaN이나 무한대/무한소 같은 걸 접한 경험은 없다. 그런 숫자가 생성될 상황이라면 그냥 "Illegal function call" 에러가 나고 말지.
어쩐지 이런 것들은 본인이 훗날 C/C++로 갈아타면서 처음으로 접했다. 이게 엄밀히 말하면 언어 차이가 아니라 이런 부동소수점 표현 방식 때문에 생긴 차이점이다.

세계적으로 문자들은 언어와 문화권마다 제각각이지만 아라비아 숫자만은 세계 공통이다. 컴퓨터 세계도 사정이 얼추 비슷했는데 그나마 유니코드라는 규격 덕분에 동일한 문자는 세계 어디서나 동일한 방식으로 통용 가능해졌다. 그에 반해 숫자가 부동소수점 한정으로 표현 방식이 파편화돼 있었다는 건 개인적으로 무척 흥미롭게 와 닿는다.

C, 파스칼 같은 언어 이름은 함수 호출 규약 명칭에 등장하는데 베이직은 MBF라는 레거시를 보유하고 있구나. IEEE754의 등장 이전에는 MBF 말고 다른 부동소수점 표현 방식은 존재하지 않았나 하는 의문이 남으며, 파스칼에만 있던 6바이트 실수가 규격이 어떠했는지도 다시 보게 된다. 스펙을 검색해 보니 파스칼도 지수부는 8비트이고 나머지가 부호부(1비트)와 가수부(39비트)이다.

2. MOTOR의 정체는?

이 블로그에서 GWBASIC에 대한 추억들 중에서 지금까지 이걸 거론한 적은 없었던 것 같다.
GWBASIC의 대화식 환경에는 코딩 중에 자주 사용하는 키워드들을 곧바로 입력하는 일종의 키매크로가 있었다. F1부터 F10까지 기능키에 배당된 매크로는 LIST, RUN, LOAD...의 순으로 화면 밑줄에 표시되었으며 KEY라는 키워드(?)를 이용해 사용자가 재정의도 할 수 있었다. 후대의 QuickBasic 계열에서는 없어지기도 할 법도 한 키워드인데 KEY에 그 기능만 있는 건 아니기 때문에 없어지지 않고 남아 있긴 하다.

그리고 매크로가 거기에만 있는 게 아니라 Alt+알파벳에도 있었다. A부터 Z 중 J, Q, Y, Z를 제외한 나머지 22개 알파벳에는 AUTO, BSAVE, COLOR ... WIDTH, XOR까지.. 키워드가 즉시 입력되었다. 이 키워드들은 딱히 재정의 가능하지 않았다. RUN과 SCREEN은 Alt에도 있고 F 기능키에도 있었다. (후자는 엔터까지 자동으로 입력된다는 차이가 있음)

그런데 본인이 주목한 것은 M 자리에 배당되어 있던 MOTOR라는 단어였다. 이거 도대체 뭘까? 경험상 숫자 인자를 하나 받는 것 같던데 도대체 하는 일이 뭘까? 두툼한 GWBASIC 매뉴얼/키워드 레퍼런스를 뒤져봐도 의외로 딱히 제대로 설명돼 있지 않았다. 그러니 궁금증은 더욱 커질 수밖에 없었다.

이 역시 전세계에 존재하거나 존재했던 모든 것들에 대한 정보가 손끝 하나로 검색되는 세상이 온 뒤에야 그게 그런 용도였다는 것을 뒤늦게 알 수 있었다.
MOTOR는 카세트 테이프 장치의 헤더를 올리거나 내리는 명령문이었다. 0부터 255 사이의 숫자를 인자로 받긴 하는데 실질적인 의미는 그냥 zero냐 non-zero냐, 쉽게 말해 그냥 bool이었다. 카세트 테이프가 퇴출된 16비트 이상의 IBM-PC급용 베이직에서는 이 명령은 구현되지 않고 아무 동작도 안 하는 레거시 잉여가 되었다.

옛날에 카세트 테이프에다 소스 코드 저장을 SAVE"FILE" 한 뒤 '녹음' 버튼을 눌러서 쭈루룩 하고, 불러오려면 저장되었던 위치로 정확하게 되감기를 하고 LOAD"FILE"한 뒤, '재생' 버튼을 눌러서 했다던데.. MOTOR는 그런 호랑이 담배 피우던 시절에나 유의미한 기능을 했다는 뜻 되겠다.

그런데 왜 이런 잉여가 한때에는 그 시절에는 자주 쓰이기라도 했는지 Alt+M 매크로에 떡 등재돼 있었다. 현실에서는 모터 따위보다는 MOD 연산자 또는 부분문자열을 구하는 MID$ 함수가 훨씬 더 자주 쓰일 텐데 말이다. 그러고 보니 실제로 Alt+M에 MOTOR 대신 쿨하게 MID$가 배당돼 있던 GWBASIC 구현체가 있기도 했던 것 같다. 베이직은 바리에이션 구현체가 워낙 많으니.. 아니면 그건 그냥 내 기억력의 한계로 인한 착각이었는지는 모르겠다.

※ 기타

(1)
이 외에도 GWBASIC은 그러고 보니 소스 코드의 저장도 고유 방식으로 했고 심지어 후대의 QuickBasic에도 비슷한 관행이 있었다(디폴트 옵션). 베이직 언어들은 그 옛날에도 일종의 가상 기계나 독자적인 개발 환경까지 다 짬뽕으로 추구했던 것 같다.
비주얼 베이직의 중후반대(4정도?) 넘어가서 COM 기반의 BSTR 방식으로 갈아타기 전에는 베이직은 문자열도 자기만의 독자적인 이중 포인터 참조 방식으로 구현돼 있었다. 일단 null-terminate 방식이 아니기 때문에 C와는 다름. 이것도 아마 MBF만큼이나 역사가 왕창 오래 된 독자적인 관행이 아닐까 싶다. (문자열에 대해서도 옛날에 한번 글을 쓴 적이 있다.)

(2)
난 C/C++ 파스칼 같은 타 언어로는 도스에서 텍스트 모드에서 색깔을 바꾸고 표준 VGA 그래픽, 특히 mode 13h를 바꾸는 코드를 작성해 본 적이 없다. 베이직에서는 COLOR 내지 SCREEN으로 곧장 됐을 일이 타 언어에서는 표준 라이브러리에서 지원해 주지 않았기 때문이다.
GWBASIC에서 Q(uick)Basic 계열로 바뀌면서 정말 좋은 것 중 하나가 본격적인 VGA 그래픽이 지원된다는 것이었는데, 16진수를 10진수로 바꿔 버릴 생각을 어째 했나 모르겠다. 실제로는 0x13인데 그걸 그냥 13만 써도 되게..;; 그것까지 초보자를 배려한 것이었나 궁금해진다. 그 초보자가 숙련자로 등급이 바뀌는 순간부터 문화 충격을 경험할지도 모르는데..

(3)
베이직이라는 언어 자체는 다트머스 대학의 컴공 교수가 고안한 것이지만, 저런 구현체는 빌 게이츠 같은 괴짜가 아니면 생각해 낼 사람이 별로 없을 물건이다.마소에서는 처음에는 다양한 8/16비트 컴퓨터를 대상으로 베이직 인터프리터를 개발했지만, 사실 IBM PC용으로는 베이직 컴파일러도 DOS 1980년대부터 만들어 오고 있었다.
그래서 Quick이라는 브랜드를 붙여서 QuickBasic 1.0을 1985년에 내놓았다. 이때 퀵베이직은 지원하는 문법은 GWBASIC과 별 차이가 없지만 대화식 환경이 아닌 명령줄에서 컴파일 + EXE 생성만 가능한 베이직일 뿐이었다.

그러다가 1년 주기로 버전 2와 3을 내놓으면서 기존의 구닥다리 행번호 위주가 아닌 구조화 문법이 차근차근 도입되었다. 베이직이라는 언어가 이때(1980년대 중반) 1차로 마개조된 셈이다. 그리고 4.0에 와서야 비로소 함수의 재귀호출이 가능해지고, 즉석 문법 체크와 실행이 지원되는 IDE가 추가되었다. 사실, IDE 자체는 2에서부터 도입됐고 그때 이미 퀵라이브러리도 도입됐다고 하지만, 그때는 지금과 같은 IDE가 아니었다.

그 뒤 1988년 가을에 출시된 QB 4.5가 장수만세 안정판이 되었다. 퀵베이직은 1990년에 어쩐 일인지 버전 5와 6을 건너뛰고 QuickBasic Extended 내지 MS Basic PDS (전문 개발 시스템)이라는 이름으로 7과 7.1 버전까지 개발된 뒤, Visual이라는 브랜드로 바뀌었으며 이때부터 플랫폼도 Window로 바뀌었다. 5, 6을 건너뛴 이유는 퀵베보다 먼저 개발되어 온 그 전신 컴파일러의 버전 번호를 맞췄기 때문이다. (참고로 Visual C++도 IDE의 버전보다 컴파일러의 버전이 더 높음. 전신인 MS C 의 버전을 계승하기 때문이다.)

이 와중에 1991년에 출시된 MS-DOS 5.0에서는 QuickBasic에서 컴파일 기능을 떼어낸 QBasic이라는 물건을 만들고, 이 엔진으로 MS-DOS 4.0까지 내장하고 있던 GWBASIC과, EDLIN 텍스트 에디터를 동시에 대체했다. 무척 흥미로운 점이다. MS-DOS가 전체 화면 형태로 제공하던 유틸리티는 4.0에서 도입됐던 DOS Shell 이후로 이게 둘째가 아닌가 싶다.

Posted by 사무엘

2017/04/28 08:38 2017/04/28 08:38
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1354

1. 석유

휘발유(가솔린)와 디젤은 내연기관 기반 자동차의 양대 동력원이다. 양 엔진의 차이점이야 자동차에 대해 조금만 관심이 있다면 모르는 사람이 없을 기초 상식 축에 든다. 하지만 기계공학적으로 고찰했을 때 같은 2또는 4행정 엔진이면서 두 엔진이 본질적으로 왜 그런 차이가 발생하는지, 왜 양 엔진이 요구하는 연료에 차이가 있는지 같은 것까지 제대로 아는 사람은 해당 분야 전공자 공돌이가 아니면 흔치 않다. 물론 본인도 그만치 잘 안다는 뜻은 아니다.

휘발유, 등유, 경유 같은 연료는 석유를 분별 증류 기법으로 추출하어 얻어진다. 소를 한 마리 잡고 나면 앞다리 뒷다리 등심 안심 같은 다양한 부위별로 고기가 나오고 내장과 뼈도 나오듯, 석유도 그 자체는 다양한 탄화수소 화합물의 복잡한 혼합물이다. 그래서 끓는점이 겨우 몇십 도에서 대략 300도에 이르기까지 다양한 물질이 섞여있다. 밀도는 기름답게 물보다 약간(수~10% 남짓) 가벼운 정도.

원유는 보통 시커먼 색깔인 반면, 정제된 차량용 연료는 시커멓지 않고 오히려 투명에 가깝다는 게 인상적이다. 갓 캐낸 원유에서 자동차에 엔진에다 주입해도 탈이 안 날 정도의 깨끗한 연료를 추출하는 것은 바닷물· 강물로부터 식수를 얻는 것 이상의 첨단 기술이다. 그래서 산유국이라 해도 정제 기술이 마땅찮으면 외국에서 석유를 역수입해야 하며, 반대로 땅에서 석유가 안 나는 우리나라 같은 나라도 역설적으로 석유를 수출하기도 한다.

휘발유 엔진은 말 그대로 석유에서 가볍고 휘발성이 매우 높은 물질을 연료로 사용하며, 디젤 엔진은 휘발유보다는 밀도가 더 높고 불이 덜 잘 붙으며 끓는점도 더 높은 경유· 중유를 사용한다. 순수하게 제조 원가만 따진다면 둘은 가격 차이가 거의 없거나 굳이 따지자면 오히려 휘발유가 더 저렴해야 할 것이다. 그러나 세금 보정으로 인해, 주유소에서는 승용차 연료로만 쓰이는 휘발유가 범용성이 더 뛰어난 경유보다 더 비싸다.

요즘은 경유 가격이 휘발유 가격의 85% 정도로 책정돼 있다. 그러나 몇십 년 전에는 더 저렴해서 거의 6, 70%에 불과하기도 했다. 디젤도 승용차 연료로 많이 보급되었고, 또 환경 문제도 있고 해서 그나마 옛날에 비해 더 비싸진 것일 뿐이다. 그나저나 디젤 엔진이 왜 범용성이 더 뛰어난지에 대해서는 나중에 또 얘기하도록 하겠다.

2. 휘발유 엔진과 디젤 엔진의 차이

휘발유와 디젤(앞으로 '엔진'이라는 단어의 표기를 종종 생략할 것임)은 서로 다른 연료를 사용하며 연료를 연소하는 방식이 다르다. 전자는 점화 플러그를 사용하지만 후자는 압축 착화 방식을 사용한다. 휘발유 엔진은 시동을 최초로 걸 때뿐만 아니라 시동을 유지하는 데에도 전기 에너지의 도움을 소량이나마 지속적으로 받는 셈이다.

이런 이유로 인해 휘발유 차량은 점화 플러그도 차량의 성능에 큰 영향을 주는 부품이다. 얘는 폐차할 때까지 반영구적으로 사용 가능한 부품이 아니며 성능이 조금씩 열화되는 소모품이다. 그렇기 때문에 비록 엔진오일보다는 긴 주기이지만 그럭저럭 교체해 줘야 한다. 허나 이건 차덕 급이 아니면 인지하기 쉽지 않은 사실이다.

뭐, 디젤도 전기 '불꽃'을 사용하지 않는다는 뜻일 뿐, 시동 걸 때 전기로 스타터 모터를 돌리지 않는다는 얘기는 물론 아니다. 얘는 오히려 스파크보다도 더 힘든 메커니즘을 사용한다. 요즘 차량들은 기술의 발달로 인해 많이 나아졌다지만, 디젤은 저런 특성상 휘발유 차량보다는 시동이 잘 안 걸릴 확률이 더 높다. 특히 날씨가 추울 때 말이다. 어렸을 때 차에 시동이 잘 안 걸려서 운전자와 탑승자가 고생하던 모습은 아무래도 승용차보다는 트럭에서 훨씬 더 많이 구경했던 것 같다.

휘발유와 디젤 엔진이 성능이 서로 큰 차이가 난다는 건 주지의 사실이다.
같은 배기량일 때 디젤 엔진의 토크가 훨씬 더 강하며(1.x~2배 가까이) 더 저회전 상태에서도 그 최대 토크가 금세 발휘된다.
디젤은 안 그래도 더 에너지 밀도가 높은 연료를 사용하는 데다 열효율이 더 좋은 관계로, 힘만 좋은 게 아니라 연비도 더 좋다. 그런데 연료의 단가마저도 비록 정치적인 이유가 더 크긴 하지만 디젤이 더 싸다. 그러니 이런 경제성만 생각하면 세상의 모든 자동차가 디젤 엔진으로만 만들어져야만 할 것 같다.

하지만 디젤 역시 장점만 있는 건 아니다. 비록 공밀레 기술 개발로 인해 정말 많이 극복되었다고는 하지만, 휘발유에 비해 고질적인 단점으로는 소음과 진동, 그리고 공해(오염) 문제가 있다.
디젤 엔진은 동급 배기량의 휘발유 엔진보다 더 강한 힘을 내부적으로 견뎌야 한다는 특성상, 더 비싼 부품을 써서 더 크고 무겁고 튼튼하게 만들어야 하며, 엔진오일도 더 비싼 디젤용을 써야 한다. 초기의 차값부터 시작해 기름값 외의 유지비까지 전반적으로 좀 더 깨진다는 점을 감수해야 한다.

또한 성능면에서도, 디젤이 저속 토크가 강하다는 점은 명백한 사실이나 속도까지 곱해진 전반적인 출력은 정작 동 배기량의 휘발유 엔진보다 오랫동안 뒤쳐져 있었다. 회전수를 휘발유 엔진만치 높게 올리는 게 어려웠기 때문이다. 이런 한계는 터보차저(공기 과급기) 같은 다른 메커니즘의 도움을 받아서 극복되고 있으며 요즘은 디젤도 실린더의 스트로크를 낮춰서 과거의 디젤답지 않은 고rpm을 추구하는 게 추세이긴 하다.

디젤의 성능을 평가절하하는 또 다른 요인은 반응성이다. 디젤 엔진은 토크가 좋음에도 불구하고 그 성능과 별개로 반응성이 떨어지고 '둔하다'. 단순히 엔진이 좀 무거워서 둔한 차원이 아니다. 그래서 정작 제로백이 휘발유 차량보다 불리하다. 경주용 자동차나 스포츠카가 디젤로 만들어지지 않는 이유가 이 때문이다.

이것도 기술의 발달로 인해 예전에 비해서는 많이 극복되었겠지만, 디젤 엔진의 좋은 힘은 근본적으로 간지나는 스포츠카의 급발진보다는 트럭에다 짐 잔뜩 싣고 오르막 오르는 용도에 더 유리한 게 사실이다.
반응성 말고도 엔진 브레이크 효과 역시 토크가 상대적으로 약하고 상시 rpm이 높은 휘발유 엔진이 더 강하며, 하이브리드와의 접목도 덩치가 더 작고 연비도 더 낮은 휘발유가 더 유리하다. 겨울에 히터를 켰을 때 더 빨리 더운 바람이 나오는 쪽도 휘발유 엔진이다.

단, 터보차저와의 접목은 디젤이 약간 더 유리하다. 휘발유 승용차에서 터보는 아직까지 액세서리 고급 옵션에 가까운 반면, 요즘 디젤 차에서 터보는 성능 보완을 위한 사실상 필수품 취급을 받고 있다.

3. 환경 문제

오늘날 디젤 엔진이 극복해야 할 가장 큰 태클은 환경 문제라 해도 과언이 아닐 것이다. 디젤은 근본적으로 휘발유보다 더 '더티'한 연료를 사용하며 매연을 내뿜는다. 정지 상태에서 가속할 때, 다시 말해 저회전 상태에서 엔진이 부하가 많이 걸릴 때 뿌뿌뿡~ 매연이 특별히 더 심하다.
지금처럼 천연가스 버스가 도입되기 전, 옛날에 길거리의 시내버스들의 뒤쪽 엔진 부분을 보면 온통 시커맸다. 이게 평범한 흙먼지가 아니라 다 불완전 연소의 산물인 탄소 알갱이였다. -_-;; 트럭의 경우도 과적은 도로 파손이나 차량 안전뿐만 아니라 매연 발생의 관점에서도 매우 좋지 않다.

그에 반해, 휘발유는 저런 매연이 없으며 촉매 변환만 잘 돌려 주면 배기가스 문제는 거의 없다.
휘발유는 잘 알다시피 노킹 방지 첨가제에 들어간 납 성분이 문제 되었지만 이것도 무연 휘발유로 극복되었다. 그런데 경유는 어째 납 대신 유황 성분이 문제를 일으켰다. 황의 연소로 인해 이산화황(아황산가스)이라는 해로운 공해 물질을 배출되었기 때문이다. 화석 연료가 연소해서 사람 몸에 좋은 게 나오는 일은 없는 법이다.

그러니 오늘날까지도 디젤 차량은 세계 각국에서 굉장히 강한 환경 규제가 걸려 있으며 이는 선진국으로 갈수록 더욱 엄격하다. 선진국은 시민들이 눈이 높고 환경 생각할 만치 돈과 기술도 있으며, 수십 년 전에 이미 대규모 스모그나 공해병 같은 병크와 시행착오도 먼저 경험했으니 환경에 대한 경각심이 있다.

국내의 경우 디젤 차는 구입할 때부터 차값에 환경 개선 부담금이 포함되며, 정기적으로 무슨 검사를 받고 매연 저감 장치를 장착하고 어쩌구 절차를 거쳐야 한다. 디젤 엔진 자체를 매연이 안 나오게 만들 수는 없는지, 그 대신 후처리 보정 장치가 추가되어야 하고 이것은 엔진의 덩치와 차량의 단가를 올리는 요인이 되고 있다. 엔진룸의 부피가 승용차 급으로 비슷하다면 디젤 엔진은 공간 부족으로 인해 동급 덩치의 휘발유 엔진만치 큰 배기량이 들어가지는 못한다.

또한 시민의 안전을 위해 지하철역에 몽땅 스크린도어를 설치한 것처럼 디젤 기반인 수많은 시내버스들을 죄다 천연가스 기반으로 개조· 교체하는 게 세계적인 추세이다. 실제로 이것만으로도 공기 질을 이 정도나마 개선하는 데 매우 큰 도움이 되었다.
그와 반대로 선진국에서 다 쓰고 퇴역시킨 차량을 저가에 수입해서 굴리는 개발도상국의 도시들이 공기 사정이 열악하다. 당장 떠오르는 게, 시커먼 구닥다리 경유 버스와 2행정 오토바이들로 가득하던 베트남이구나.

4. 실린더 크기의 한계

오늘날 휘발유 엔진은 그냥 소형 발전기· 예초기· 동력톱이나 오토바이· 승용차 엔진으로 머무르고 있다. 그 반면, 디젤 엔진은 버스· 트럭, 철도 기관차· 선박 등 본격적으로 거대한 기계들을 돌리는 만능 엔진으로 등극해 있다.
왜 이런 특성과 차이가 존재하는 걸까? (한편으로 천연가스는 구조적으로 디젤보다는 휘발유 엔진과 더 비슷하지만 택시와 버스에 모두 쓰인다)

가장 근본적인 이유로는 휘발유 엔진이 대형화가 어렵기 때문이다. 한 실린더가 가질 수 있는 부피는 거의 500~600cc가 실용적인 가성비가 유지되는 한계라고 한다.
그러나 디젤 엔진은 그런 제약이 없어서 무슨 선박 엔진 같은 집채만 한 초거대 단일 실린더도 만들 수 있다. 단순히 연비나 토크가 좋아서가 아니라 이것 때문에 디젤 엔진이 선택의 여지 없이 쓰인다.

정말 그런가 확인해 보자. 대형 버스에 준하거나 그 이상의 고배기량인 엔진을 휘발유 기반으로 얹은 슈퍼카들을 보면..
6700cc 12기통 (롤스로이스 팬텀..;; )
8000cc 16기통 (부가티 베이론)
배기량을 기통수로 나누면 진짜로 500~600cc대를 벗어나지 않는다. 실린더 수가 무지막지하다.
그러나 디젤로 가면 현대 자동차 F 엔진은 3900cc 배기량이 4기통이요,
버스 엔진을 보면 6000cc부터 심지어 11리터급이 그냥 6기통만으로 커버된다. 이런 게 휘발유 엔진으로는 가능하지 않다는 뜻이다.

물론 내연기관은 흡입, 압축, 폭발, 배기 각 행정별로 발생하는 힘이 일정하지 않다. 그렇기 때문에 상태가 서로 제각기 다른 실린더들이 어느 정도는 여럿 있어야 엔진의 진동이 줄어들고 승차감이 좋아진다. '툭툭툭툭'거리는 엔진음이 '두두두두/들들들들'로 바뀐다.
하지만 무려 12기통, 16기통 이건.. 어쩔 수 없어서 저렇게 만든 것이지, 만들고 싶어서 저렇게 만든 건 아니리라 여겨진다. 승차감이 문제라면 휘발유보다 진동이 더 심한 디젤이 겨우 6기통인 건 어떻게 설명할 건가?

기통수가 너무 많아지면 휘발유 엔진도 어차피 디젤처럼 복잡하고 무거워지며, 제어하기 힘들어진다. 하지만 휘발유 엔진의 정숙성과 신속한 반응성을 살리기 위해 무리해서 트럭· 버스였으면 디젤을 쓸 것을 휘발유 엔진을 고집한 것이지 싶다. 물론 디젤에 비해 연비는 길바닥에다 그냥 동전을 뿌리는 수준으로 감수하고 말이다.

뭐, 오토바이 중에 배기량이 거의 1700~2000cc에 달하는 대형 모델 중에는 겨우 2기통 엔진인 것도 있다. 그건 자동차에는 적용하기 곤란한 방식으로 보어· 스트로크 비율을 보정해서 실린더당 800cc가 넘는 체적을 구현한 것이 아닌가 싶다. 최초의 내연기관 자동차로 손꼽히는 Benz Patent-Motorwagen 삼륜차도 원시적인 950cc짜리 휘발유 단기통이었으니 말이다. (물론, 성능은 1마력이 채 될까말까인 비효율의 극치 수준임. 자동차계의 에니악;;)
그리고 에쿠스/EQ900의 기함급인 VL500도 8기통이니 실린더가 휘발유 엔진치고는 약간 크다고 볼 수 있다.

이런 점을 감안하면, 비록 디젤이 소음· 진동과 공해 문제가 있고 더 무겁고 복잡하지만 그래도 엔진으로서의 기술 수준은 단순 휘발유 엔진보다 더 높으며 범용성도 더 뛰어나는 것을 알 수 있다. 그리고 이런 범용성 때문에 경유가 더 저렴하기까지 한 것이다.
휘발유 엔진은 딱히 고안자의 이름을 따서 '오토 엔진'이라고 불리지는 않는 편인데, 디젤만 고안자의 이름이 매번 언급되는 건 이 때문인지도 모르겠다. 심지어 경유· 중유까지 diesel fuel이라고 불리지 않는가.

사실 휘발유에다가도 압축 착화로 점화해서 디젤 엔진의 장점을 적용해서 연구가 있긴 하다. 일명 HCCI 또는 GDCI 엔진. 그러면 휘발유로도 디젤 엔진 같은 고연비의 달성이 가능해지며, 결정적으로 단일 엔진에서 휘발유와 경유를 모두 사용할 수 있게 된다고 한다. 하지만 점화 플러그 없는 휘발유 엔진은 아직까지는 어댑터 없는 노트북, 탄피 없는 총알, 혹은 돼지고기 육회만큼이나 쉽지 않은 영역인 것 같다.

지금 내가 모는 차뿐만 아니라 디젤 차, 후륜구동, 하이브리드, 전기차 등 다양한 차들을 몰면서 차이를 분석해 보고 싶다. 특히 전륜과 후륜의 차이라는 언더스티어/오버스티어의 차이가 무엇인지 궁금하다.
사실, 자동차 학원에서 운전 연습을 할 때 1종 보통의 특성상 디젤+후륜에다 수동 변속기이기까지 하여 승용차하고는 성격이 완전히 다른 1톤 트럭을 실컷 몰아 본 적이 있음에도 불구하고 그때의 경험은 기억에 거의 남아 있지 않다.
그리고 연료 분사와 흡기 메커니즘에 대해서 개인적으로 차근차근 더 공부해 보고 싶다. 아직은 공개적인 글을 쓸 수 있을 정도로 이론을 숙지하지 못한 상태이다.

글을 맺으면서 드는 생각인데, 자동차가 내연기관이 주류가 된 것처럼 총기도 일단은 탄피가 빠지는 화약 격발 방식이 주류가 돼 있다. 공기총은 자동차에다 비유하면 전기 자동차 정도 되는 것 같다.

Posted by 사무엘

2017/04/25 08:36 2017/04/25 08:36
, , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1353

강화도 여행

지난 설날 때 본인은 가족과 함께 당일치기로 강화도로 여행을 다녀왔다.
강화도는 민족 영산(?)이라는 마니산이 있고, 고려 시대에 나라가 몽골의 침략을 받았을 때 임시 수도였으며 1876년 강화도 조약의 장소이기도 해서 고대부터 근현대에 이르기까지 역사적인 의미가 크다.

그러고 보니 팔만대장경도 지금이야 경남 합천군의 해인사에 있지만, 만들어진 곳은 강화도이다. 고려는 그야말로 "불심으로 대동단결"을 실천한 국가였음을 알 수 있다. 방대한 무게와 부피를 자랑하는 수많은 경전들을 그 시절의 교통 인프라 여건에서 섬-내륙으로 바다까지 건너면서 수송하는 것조차도 굉장히 큰일이었을 텐데 말이다.
과거에 신라에 유일하게 여왕이 있었고 여러 가문이 차례로 번갈아가며 왕위를 잇는 관행이 있었다면, 고려에는 저런 종교 배경의 특성상 말기에 신 돈 같은 비선실세(?) 승려도 존재할 수 있었다.

그에 반해 고려의 뒤를 이은 조선의 이념은 '숭유억불'이었다. 조선의 개국공신들이 보기엔 고려가 망한 것에는 타락하고 막장으로 치달은 정교일치 불교계의 책임이 커 보였던 것 같다.
뭐, 지금에 와서는 조선도 이미지가 바닥을 기며, 유교 역시 진작부터 꼰대(질)의 상징에  '유교탈레반', '공자가 죽어야 나라가 산다' 같은 말이 나돌 정도로 평가가 최악이다. 뭐든지 고인 물은 썩게 마련이고 역사는 되풀이된다는 걸 느낀다.

아무튼, 이런 점을 염두에 두고 차를 몰고 서쪽으로 향했다.
서울 근교에서 자연을 벗하며 놀 만한 곳으로는 동쪽으로 남한강이 있는 양평, 혹은 북한강이 있는 가평· 춘천 방면도 생각할 수 있을 텐데 거기보다 더 색다른 곳을 찾다 보니 강화도로 의견이 쉽게 한데 모였다.

강화도는 면적이 300㎢가 넘고 생각보다 크더라. 시내와 대부분의 볼거리는 북부에 있는 반면, 마니산만 혼자 최남단에 있는 듯했다. 북부에는 강화대교, 남부에는 초지대교가 있어서 육지와 통한다. 서울에서 강화도 남부를 가는 건 인천 공항 가는 것과 비슷한 거리이고, 북부는 그것보다 거리가 살짝 더 길어지는 듯하다.
강화도로 가는 길은 올림픽대로 + 국도 48호선(북부) 또는 지방도 356호선(남부) 끝이다. 아주 직관적이다.

사용자 삽입 이미지사용자 삽입 이미지

강화산성. 강화도에 들어서자마자 가장 먼저 부담없이 볼 수 있는 유적이지 싶다. 안내문 표지판 말고 다른 시설은 없이 그냥 도심 속의 공원처럼 꾸며져 있었다. 주차 걱정 없는 시골이니 그냥 골목길 담벼락 아무데나 차 세우고 내려서 구경했다.
그러고 보니 고려 행궁도 지도상으로 근처에 있는데 거기에는 못 가 봤다.

사용자 삽입 이미지

제주도에 돌하르방이 있다면 강화도에는 고인돌이 있다. 그나마 돌하르방은 훗날 유명세를 타서 레플리카가 만들어진 게 훨씬 더 많은 반면, 여기에 있는 고인돌은 옛날에 만들어진 레알이다.
접근하기도 편하게 딱 국도변에 넓은 들판과 함께 강화도 전체에서 가장 고퀄이라 여겨지는 고인돌이 놓여 있었다. 영국의 스톤헨지 생각이 문득 들었다. 고인돌들은 딱히 식별 수단이 없으니 그냥 발견 순서대로 번호를 붙여서 부르는가 보다.

여기 주변에는 마침 강화 역사 박물관과 강화 자연사 박물관이라는 두 박물관도 있었다. 하지만 설 당일이 휴관이어서 들어가 보지는 못했다.
그나저나 '고인돌'은 안 그래도 영어로도 dolmen이라고 하는데 故人인지 '고이다+전성어미ㄴ'인지 어원이 무엇인지 알 길이 없다.

사용자 삽입 이미지

부근리에 있는 고인돌을 하나 더 답사했다. 처음에 봤던 것보다는 크기가 약간 더 작다.

사용자 삽입 이미지

강화도의 풍경은 사방이 온통 논밭 벌판이고, 그러면서 높이가 300m쯤 돼 보이는 낮은 산들이 종종 둘러져 있는.. 그런 형태였다. 산들은 정상에도 뭔가 정자나 군사 시설 같은 게 빠짐없이 세워져 있는 편이었고, 그게 지상에서도 보였다.

사용자 삽입 이미지

그 뒤 우리는 강화도의 최북단에 있는 평화 전망대로 갔다. 여기는 민통선 안이기 때문에 중간에 검문을 받고 출입증을 받아야 했다. 그래도 연고지나 지인 초청이 없어도 되며, 사전 방문 신청 같은 것도 필요하지 않다. 모든 차량 동승자가 아니라 그냥 대표자 한 명의 이름과 연락처, 차 번호만 적으면 됐다. 내 경험상 국내 민통선 안의 출입 정책은 각 지역과 관할 부대마다 케바케였다.

우리나라 군사분계선은 대부분 높은 산지이며, 선 주변에는 DMZ라고 불리는 완충 지대가 있다. 그러나 군사분계선의 서쪽 끝은 그 특성이 내륙· 동부와는 극과 극 수준으로 다르다. 여기는 육지가 아니라 물이 그대로 군사분계선이고 양측 강변이 남방과 북방한계선 역할을 하기 때문이다.

그러니 여기는 DMZ 같은 건 따로 존재하지 않으며, 그 대신 동부와는 달리 강안경계라는 게 있다. 한강이 서울 시내 구간만 해도 강폭이 1km 남짓한 지하철 한 정거장 거리에 육박하고 강북과 강남을 가르는데.. 강화도가 있는 한강 최하류로 가면 강폭은 2km에 달하며, 강남과 강북이 무려 남조선과 북조선을 가른다..! 군사분계선이 육지에서 강으로 바뀌는 경계를 보고 싶으면 강화도에 도달하기 전에 파주의 오두산 전망대에 가 보면 된다.

6· 25 때 우리나라가 지형상의 불리함으로 인해 서부는 오히려 있던 땅도 빼앗겨서 38선 이남, 한강 이남으로 후퇴하게 됐다. 이 때문에 서울이 북한과 더욱 가까워졌으며, 군사분계선이 저런 식으로 한강을 따라 형성되었다. 다대포 해수욕장까지 있는 낙동강 하구와는 달리, 한강 하구는 민간인이 접근 불가능한 영역으로 봉인되어 버렸다. 여기를 뱃길로 활용할 수 없기 때문에 우리나라에서는 아라뱃길이라는 경인 운하를 나중에 또 만들어야 하게 됐다.

황해에는 강과 바다에 형성된 군사분계선 근처에 섬이 여럿 있다. 게다가 연평도나 백령도 같은 섬은 위도가 상당히 높고 북한의 본토와 더 가까움에도 불구하고 남한 땅이다. 이건 북괴가 전쟁 당시에는 섬들을 점령할 해군력이 없었기 때문에 종전 후에도 남한 땅이 될 수 있었다. 휴전 직전엔 오히려 국군과 UN군이 북한 지역 위도의 다른 섬들까지도 몽땅 점령해 있었지만 휴전과 함께 철수했다.

이런 여러 이유로 인해 강화도를 포함한 그 일대의 섬들은 비록 다리가 놓였다 하더라도, 일반적인 육군 전방 부대가 아니라 상륙 작전을 염두에 둔 해병대가 주둔한다. 민통선 검문도 응당 얘네들 몫이다. 그리고 군용차도 일반적인 전차(탱크)보다는 수륙 양용 장갑차 같은 게 더 친숙하다.
아니, 우리나라 해병대 전체가 그냥 서부 전선의 전방 도서 지역을 지키라고 존재한다고 말해도 과언이 아니다. 해병대는 훈련소와 자대, 본부도 후방인 포항이 아니면 전방인 황해 이렇게 딱 두 지역에만 있다.

옛날에 태평양 전쟁 시절처럼 섬을 땅따먹기 하면서 물과 육지에서 모두 작전을 수행하는 게 쉬울 리 없으니 해병대는 일반 육군 보병보다 전투력이 더 뛰어난 정예 병력으로 간주된다. 100% 지원자만 그것도 경쟁을 뚫고 들어갈 정도이며, 훈련 때 목봉 체조 같은 것도 육군이나 해군이 아닌 해병대만 한다. 다만, 그게 전투력과는 별 관계 없는 지나친 이빨과 마초이즘 기수놀이, 똥군기로 변질된 건 문제이긴 하다.

해병대 아니랄까봐 "빨간 배경에 노란 글씨"로 민통선 내 행동 주의 사항이 적힌 안내판이 인상적이었다. 하지만 전망대 내부의 통제는 해병대의 이미지와는 달리 그리 빡세지 않았다.

사용자 삽입 이미지사용자 삽입 이미지

이것이 바로 강 건너 펼쳐져 있는 북한 땅이다. 황해도 개풍군. 내륙처럼 남북의 DMZ 산림 없이 강 너머로 곧장 북한의 마을과 논밭, 건물, 심지어 사람까지 곧장 보이기 때문에 전국의 어느 전망대보다도 어떤 의미에서 북한을 가까이서 볼 수 있다. 그것도 위도상 최남단의 북한 땅을 말이다. 이게 강화도에 소재한 전망대에서 얻을 수 있는 소득이었다. 그런데 저기는 북한의 입장에서 민통선 내부이지 않을까?

철원의 평화 전망대나 고성의 통일 전망대는 사람이라고는 하나도 안 보였고, 파주의 도라 전망대에서도 기껏해야 군인 극소수만을 봤던 걸로 기억한다. 그러나 여기서는 당장 빨간 점퍼를 입은 사람, 자전거 타는 사람, 주택 담벼락을 서성거리는 두세 명의 사람 등 역대 전망대들 중 북한 민간인(군인이 아닌)을 제일 다양하게 볼 수 있었다. 그럼에도 불구하고 칼같이 "북한 방면 사진 촬영 금지" 이런 통제도 없었다.

아, 물론 사람까지 보는 건 육안으로는 불가능하고 유료 망원경을 동원해서 봐야 한다. 이런 곳에서는 500원 투자할 가치가 있다.
저 멀리 세로로 선전 구호가 쓰인 걸로 추정되는 기둥도 있었는데 글자가 무엇인지는 아쉽지만 망원경으로도 제대로 식별할 수 없었다.

사용자 삽입 이미지

이 봉우리의 이름이 제적봉이랜다. '적'의 한자가 enemy(敵)가 아니라 red(赤)이다. 즉, "공산당 빨갱이들을 제압하다"라는 뜻이다.
이름의 유래 설명에 따르면, '제적봉'이라는 이름은 박 정희 대통령의 개입으로 정해졌다고 한다. 예전에 이 승만 대통령은 호수의 이름을 반공 컨셉을 넣어서 '파로호'(오랑캐들을 격파하다)라고 지은 적이 있는데, 이것과 무척 비슷한 심상을 형성한다. 조선 시대 얘기지만 '척화비'도 동일한 맥락일 수 있겠다.

이렇게 평화 전망대를 구경한 후, 우리는 교동도를 찾아갔다. 민통선 검문소는 교동대교보다 한참 앞에 있었다. 전망대에 갈 때와 비슷하게 간단한 출입 신청서만 작성하면 출입 허가는 곧장 나오며, 한번 출입증을 받으면 내 기억으로 2~3일 정도 교동도에 자유롭게 출입이 가능하다. 여느 민통선 구역처럼 해가 떨어지기가 무섭게 통금이 걸리는 것도 아니고, 자정~새벽 4시 정도에만 출입을 자제하면 된다.

교동도는 2014년이 돼서야 다리가 놓였으며, 아무래도 주민 출입이 뜸하니 대교 주제에 도로폭은 겨우 2차선이었다(편도 1차선).
그리고 섬임에도 불구하고 그냥 농촌 마을일 뿐 어촌 분위기가 전혀 나지 않는 게 인상적이었다. 해수욕장? 횟집? 그런 거 없다. 그도 그럴 것이 보안 때문에 바다로 나갈 수가 없으니까. 괜히 민통선 마을이 아니다.

사용자 삽입 이미지

우리가 갔을 때는 교동도에 있는 커다란 '고구 저수지'가 온통 꽁꽁 얼어붙어 있었다. 하늘의 색과 바닥의 색이 거의 동일한 게 무슨 볼리비아의 우유니 사막을 보는 듯했다. 썰매를 타고 놀고 싶었다.

교동도를 한 바퀴 도니 날이 슬슬 어두워지고 있었다. 그래도 강화도까지 왔는데 해가 완전히 떨어지기 전에 마지막으로 마니산을 어귀는 보고 와야겠다는 생각에 남쪽으로 향했다.
정상의 참성단까지 가는 길은 서울 남산처럼 흙길 등산로와 계단 등산로가 모두 닦여 있는 듯했다. 등산은 차마 못 하고 돌아왔지만 여기도 마치 제주도 한라산이나 성산 일출봉을 보는 것 같았다.

사용자 삽입 이미지

"산악인은 무궁한 세계를 탐색한다. 산악인은 대자연에 동화되어야 한다. 자유· 평화· 사랑의 참 세계를 향한 행진이 있을 따름이다"
아이고 이거 무슨 예비 의료인이 히포크라테스 선서라도 하는 것 같다. 등산을 이렇게 거창하게 윤색해 놓은 시는 난생 처음 본다. =_=;;

나중에 강화도를 다시 찾아오는 건 결혼하고 애까지 동반한 뒤가 되지 않을까 싶다. 그래도 짧은 시간 동안 강화도에서 의미 있는 여행을 했고 즐거운 시간을 보냈다.

Posted by 사무엘

2017/04/22 08:33 2017/04/22 08:33
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1352

등산 답사기: 앵봉산· 봉산

서울 북서쪽의 은평구에는 동쪽으로는 북한산이 있고, 서쪽으로는 서울과 고양시의 경계 병풍 역할을 하는 길다란 언덕? 산?이 있다. 높이가 200여 m 남짓밖에 안 되니 등산이라고 하기는 좀 그렇고 그냥 공원· 산책로에 가깝다.
정상에 도달하는 게 아니라 그냥 대놓고 횡단· 종단에 의의를 둬야 한다. 또한 산기슭은 온통 건물들이 들어서 있으며 등산용품 매장이나 유원지 같은 걸 기대해서는 곤란하다.

저기는 전형적인 동네 뒷산일 뿐이지만 그래도 봉우리엔 북쪽에서부터 남쪽 순으로 앵봉산· 봉산· 수색산이라고 이름이 붙어 있다. 본인은 지난 한겨울에 저기를 다녀 왔다.
서울 시내 등산을 다니면서 본인은 한양도성, 북한산성 등 산과 관련된 여러 유물, 제도, 순환 관광 코스들에 대해 알게 됐다. 저기를 답사하면서 이번에는 '서울 둘레길'에 대해서 이제야 드디어 확실하게 감을 잡았다.

예전에 북한산이나 아차산을 오를 때도, 정상으로 오르는 등산로가 아니라 능선이나 중턱에 이상한 길이 나 있는 건 지도를 통해 알고 있었다. 그런데 이것들이 다 한데 이어져 있고 서울시에서 비교적 최근에 작정하고 일관된 시스템으로 '둘레길'이라는 걸 만들어서 운영하고 있다는 건 처음으로 알게 됐다. 공식 홈페이지도 있다.

사용자 삽입 이미지

이거 나름 지리 공부도 되고 나쁘지 않은 발상인 것 같다. 높은 산들은 그냥 중턱에만 길이 나 있고, 앵봉산· 봉산처럼 낮고 긴 산은 정상 능선이 경로이다.
서남부는 산이 없는 관계로 예외적으로 안양천을 따라 길이 나 있다. 그러니 옛날에는 산을 피하느라 경부선 철도도 영등포로 우회하는 형태로 놓인 것이지 싶다.

이런 의미를 두고 서울 지하철 3호선 구파발 역에서 내려서 먼저 앵봉산을 올랐다.

사용자 삽입 이미지사용자 삽입 이미지

산책로와 정자, 체력 단련 시설이 나오다가..

사용자 삽입 이미지사용자 삽입 이미지

갑자기 참호 같은 군사 시설도 등장했다.
안 그래도 답사 당시 날씨가 몹시 추웠는데 저 참호 안에 들어가서 한숨 자고 싶은 생각이 들었다. 저기 안은 왠지 따뜻할 것 같았다.
한겨울엔 땀이 안 나는 대신 콧물이 나더라.

사용자 삽입 이미지

갑자기 산의 건너편은 초록색 펜스로 가려졌다. 군사 시설 때문은 아니고, 건너편에 서오릉이 있어서 문화재 보호를 위해서이다. 이 점에서는 의릉 때문에 펜스가 쳐진 서울 천장산과 사정이 비슷하다.

사용자 삽입 이미지

그래도 딱 한 군데 전망대가 있기도 해서 풍경 사진을 남길 수도 있었다. 여기 말고 다른 곳은 온통 나무가 우거져서 산 아래의 모습을 제대로 볼 수 없었다.

사용자 삽입 이미지

산 정상에는 이렇게 텔레비전 송신탑도 있었다.

사용자 삽입 이미지

그 뒤로는 펜스의 색깔이 잠시 검정으로 바뀌기도 하다가 다시 초록으로 복귀하면서 내리막이 이어졌다.
나중엔 울타리와 산책로도 없어지고 흙길이 나오다가 서오릉로와 합류하는 걸로 앵봉산 구간이 끝났다. 여기까지 3km가 넘게 좀 걸은 것 같다.

사용자 삽입 이미지

차들이 다니는 서오릉로를 횡단하면 봉산 구간이 곧장 나온다.
이 공터가 굉장히 인상적이었다. 차를 세워 놓기에 안성맞춤인데 여기는 딱히 차 끌고 방문할 일이 별로 없다는 게 딜레마이다.
참고로, 답사 당시에 저기는 길이 온통 빙판으로 바뀌어 있었다.

사용자 삽입 이미지사용자 삽입 이미지

봉산도 정상(?)이라고 불리는 곳에는 정말 금방 도달할 수 있다. 꽤 넓은 공터가 닦여 있으며, 전망대와 정자, 그리고 봉수대 모형이 있다.

사용자 삽입 이미지

서쪽 건너편에는 비슷한 높이의 언덕인 망월산이 있고, 망월산과 봉산 사이에 '고양 향동 공공주택 지구'라는 이름으로 한창 공사판이 벌어진 게 보였다. 몇 년 뒤면 저기도 온통 아파트들이 빽빽하게 들어서게 되겠다.

사용자 삽입 이미지

산의 높이가 대략 어떻고 산기슭이 어떤 분위기인지는 위의 사진 한 장으로 대략 설명이 되겠다.

사용자 삽입 이미지

정상을 지난 뒤에도 능선을 따라 남쪽으로 이런 식으로 길이 계속 이어졌다.
산이 자연스럽게 끝날 때까지 증산· 수색 방면으로 계속 가고 싶었지만, 시간과 보급의 한계로 인해 서울 시립 서북 병원쯤에서 하산을 결정했다. 내려가는 길이 온통 미끄러운 빙판이 돼 있어서 다니기가 몹시 힘들었다.

최종 하산 지점은 봉산을 정면으로 관통하여 서울과 고양시를 잇는 터널 근처였다. 이건 작년 여름 시점의 로드뷰를 봐도 아직 미개통 상태였을 정도로 정말 최근에 뚫린 터널인 것 같았다.
국도 1호선 증산로 방면으로 한참을 걸은 뒤, 최종적으로는 새절 역에서 지하철을 타고 귀가했다. 비록 산의 절대적인 높이는 낮은 편이지만 여느 산을 오를 때와 비슷한 시간 동안 총 7km가 넘게 걸은 것 같다.

산 너머로 그린벨트 마을 같은 게 있었으면 고양시 쪽으로 하산할 수도 있었을 텐데 저쪽은 공사판이고 볼 게 없어서 도로 서울 시내 방면으로 하산하게 됐다.
다음에 기회가 되면 본격적으로 '서울 둘레길'이라는 컨셉으로 북한산 쪽도 돌아다녀 보고 이곳의 완전 반대편인 동부의 일자산 쪽도 가고 싶다.

Posted by 사무엘

2017/04/19 08:34 2017/04/19 08:34
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1351

전기 이야기

나는 전기 에너지라는 게 실체가 무엇이고 본질적으로 어떻게 존재 가능하고 인간이 무슨 면모를 어떻게 측정하고 제어 가능한지 전혀 이해를 못 하고 있다.
더구나, 원자력· 방사능처럼 무슨 원자 단위 미시세계에서 발생하는 현상을 제외하면 일상생활에서 중력이 아닌 다른 모든 힘들은 근원이 따지고 보면 전자기력이라니 이것도 이 나이 되도록 그 의미가 실감이 안 간다. 인간의 근육은 말할 것도 없고 심지어 화약이나 내연기관처럼 열과 폭발에 의해 발생하는 힘도 근원이 이거라는 말이지 않은가? 인간이 그런 열기관으로 지구의 중력을 뚫고 달까지 갔다 왔는데, 그 힘의 근원이 중력일 리는 없을 것이다. 중력과는 별개이고 중력보다 훨씬 더 큰 힘의 원천이 반드시 있어야 한다.

그런데 이런 식으로 따지자면 난 질량이라는 것도 본질적으로 무엇인지 모르기는 마찬가지다. 그게 하필 무엇이기에 무슨 원동력이 있어서 그렇게 남을 끌어당기는 힘을 내는지 말이다.

(사실, 이 자연계에 존재하는 힘의 원천들 중 중력은 가장 약하고 작은 힘에 속한다. 그냥 작은 게 아니라 소숫점 개수가 확 달라질 정도로 매우 작다. 물리 시간에 배우는 만유인력 상수가 괜히 10의 마이너스 몇 승 규모인 게 아니다. 엄청 작기 때문에 반대급부로 얘는 주로 천체의 운동 같은 방대한 세계에서 주로 의미를 지닌다.)

전기에 대해서 아주 기본적인 개념에 속하는 전압과 전류 정도는 흔히 아래로 흐르는 물에다 비유해서 설명하곤 한다. 전압은 수압 또는 물이 처음에 떨어지는 높이에 해당하며, 전류는 물의 흐름 정도에 해당한다고.
허나, 눈에 보이지 않고 질량도 없고 광속으로 흘러 없어지는 그 기운(?)이 어떻게 물이라는 액체에다 비유가 가능한지 그 이유부터 모르겠으며, 그 전기라는 물 자체는 어디에서 나며 어떻게 수집 가능한지 모르겠다. 게다가 직류와 달리 교류는 그 전압이 파동처럼 시시각각 변하면서 심지어 마이너스까지 된다. 이런 건 물 비유로도 도저히 설명할 길이 없다.

아무튼 전기는 참 알 수 없는 존재이다. 건전지와는 달리 교류 전기 콘센트는 + - 구분이란 게 존재하지 않고 아무 쪽으로나 꽂아도 되는 게 어릴 때부터 좀 신기하긴 했다.
직류와 교류 전기는 민물고기· 바닷물고기 관계와 아주 비슷해 보인다. 둘 중에서는 면적이 더 넓고(장거리) 염분을 걸러내야 하는(변압) 바닷물이 아무래도 교류에 어울리는 것 같다. 연어는 직-교류 겸용 전동차이며, 차량 기지가 직류 서울 지하철 구간에 있는 서울 메트로 소속 1호선 전동차에 대응하는 셈이다.

뭐, 또 다른 비유를 동원하여 전기를 엔진이 내는 출력이라는 관점에서 본다면 전압은 토크이고 전류는 엔진 rpm 그 자체, 전력은 이들이 곱해져서 단위 시간 동안 산출하는 일률에 얼추 대응하는 게 맞다.
우리나라는 잘 알다시피 가정용으로 공급되는 전기가 먼 옛날엔 100V이다가 이제는 220V로 완전히 바뀌었으며, 이 과정에서 플러그의 모양도 바뀌었다. 고압으로 송전할수록 송전 손실이 줄어드는 건 사실이지만, 가정용 전기를 승압한 이유가 이 때문은 아니다. 장거리 송전 자체를 무슨 100이나 220V 단위로 하는 건 아니기 때문이다.

승압을 한 이유는 안전보다 효율을 약간 더 추구해서 전기 시설들의 전반적인 복잡도와 부하를 줄이기 위해서였다. 이게 주된 이유이고, 보조적인 이유는 외국에서 밀수입된 100V 기준의 외국 가전 제품들을 함부로 쓰지 못하게 해서 국산 전자기기 제조사들을 보호하기 위해서였다.

이게 아니었으면 승압 사업을 무려 1970년대에부터 작정하고 추진할 필요는 없었다. 흑백 TV도 마을에서 잘사는 집에나 한두 기 있었고 에어컨 같은 건 꿈도 못 꾸던 시절에 굳이 고전압 설비가 있을 필요는 없었다. 하지만 승압 자체는 미국이나 일본 같은 나라들도 안 하는 게 아니라 못 하는 대세가 됐으니 그 당시에 미래를 내다보고 잘 추진한 과업이었다.

이렇게 공급 전압을 올린 것은 자동차로 치면 엔진의 배기량을 올린 것, 컴퓨터 CPU와 소프트웨어로 치면 비트수를 올린 것과 비슷한 효과를 낸다. 같은 구조의 엔진이면 배기량에 얼추 비례해서 엔진의 토크+출력도 올라가니까.
승압을 하면 전력 소비가 많은 기기를 써도 이미 전압도 높기 때문에 큰 무리나 과열 없이 돌릴 수 있다. 경차로 에어컨 틀고 오르막을 고속으로 오르면 차가 굉장한 무리를 받고 경차의 장점인 연비조차도 다 물 건너가듯, 저전압으로 무리해서 높은 전력을 뽑아내는 건 대략 좋지 않다.

교류 220V이긴 한데 우리나라는 국제적으로는 흔치 않은 60hz 주파수를 택해서(세계적으로는 50hz가 대중적임) 같은 220V들끼리도 호환이 잘 안 되게 했다고 한다. 철도로 치면 이웃 나라와는 일부러 궤간을 다르게 하는 것과 같은데, 오늘날처럼 어지간한 전자 기기들이 내부적으로 변압을 다 하고 어느 정도 가변 전압에 대비돼 있는 여건에서는 별 의미가 없는 제약이 된 걸로 보인다.

흔히 혼동하기 쉬운 개념이 하나 있다. 전기료가 부과되는 단위는 전력이 아니라 그게 축적된 '전력량'이다. 그래서 단위 역시 킬로와트가 아니라 킬로와트"시"이다. '전력=마력=와트=일률' 이렇게 단위의 차원이 동일하고 그걸 시간에 대해 적분한 '와트시=일=주울'이 차원이 동일하다. 자동차의 연료 소비량이 단순히 엔진 배기량, rpm이나 주행 거리에 정비례만 하지는 않고 여러 변수가 있다는 것을 같이 생각하면 납득 가능하다.

그에 반해 스마트폰용 보조 배터리는 용량을 그냥 전류/전하량의 단위인 암페어로 나타낸다.
차량용 블랙박스가 자동차 배터리의 고갈을 감지하고 자동으로 꺼지도록 설정하는 기준은 전압이다.
내가 잘은 모르지만 자동차의 배터리는 스마트폰이나 노트북의 배터리보다 훨씬 더 무겁고(납이 들어있다! 위험한 황산 용액은 덤.) 용량도 큰 반면, 자기 충전 상태를 엄밀하게 나타내는 메커니즘이 없는 것 같다.

최첨단 전자 기기들로 무장한 오늘날 2010년대의 자동차들도 시동이 꺼진 동안에 스마트폰이나 노트북처럼 "지금 배터리가 몇 %가량 남았습니다. (방전 위험이 있으니 전기 장치들을 끄거나 시동을 걸어 주세요)" 계기판에 숫자로 표시해 주는 걸 내가 본 적이 없다. 연료 경고등처럼 이런 기본적인 기능이 없는 게 이상하지 않은가? 자동차 배터리의 방전은 스마트폰· 노트북의 배터리 방전보다 훨씬 더 심각한 상황인데도 말이다.
그러니 방전 징후를 감지하기 위해서는 전하량이 줄면서 전압도 같이 자연스럽게 떨어지는 화학 전지의 특성만이 사용되는 것 같다.

다만, 자동차 배터리는 그 한여름 땡볕에도, 혹은 심지어 교통사고가 나고 화재가 발생했을 때에도 스스로 발화하거나 터지지는 않는다는 것도 흥미로운 점이다. 배터리의 폭발 때문에 인공위성이 궤도가 바뀌고 고장 나고 우주 쓰레기가 증가하기까지 한다. 또한 흑역사로 전락한 삼성 갤럭시 노트 7의 경우를 생각해 봐도 이건 중요한 변수가 아닐 수 없다. 하긴, 배터리뿐만 아니라 냉장고 냉매도 어떤 경우에도 폭발하지 않는다는 게 대단한 장점이다. (프레온 가스 vs 암모니아. 후자를 사용하는 거대 냉동 창고에서는 지금도 가끔씩 폭발 및 질식 사고가 발생한다)

이렇듯, 자동차 배터리는 사람이 들고 다니는 전자 기기들의 배터리와는 특성이 여러 모로 다르긴 하다.
자동차 제조사(=대기업)에서 자차에 직접 장착한 순정 내비는 있다. 하지만 순정 블랙박스는 없다. 시동이 꺼진 자동차의 배터리를 지속적으로 소모하는 부품을 자동차 제조사에서 직접 넣는 것을 걔들이 책임소재 차원에서 기피하기 때문이다. 아울러, 블랙박스는 중소기업 보호 업종으로 지정돼 있다고도 어디서 들은 것 같다.

그럼 다시 전기 얘기로 돌아오면..
전압은 왕창 높지만 전류가 극단적으로 낮은 대표적인 전기는 정전기이다. 그렇기 때문에 사람을 잠깐 짜릿하게만 만들고 이내 없어져 버린다. 정전기는 적당한 습기를 만들어서 예방 가능하지만, 한편으로 물은 전기를 잘 흐르게 해서 감전의 위험을 높이기도 하니 이 역시 대단한 아이러니이다. 마치 촛불은 불어서 끄지만 큰 불은 후후 불면 오히려 잘 타는 것, 물건이 매달린 실을 살살 당겼을 때와 확 강하게 당겼을 때 실이나 물건이 떨어지는 결과가 달라지는 것과 비슷한 이치랄까?

우리가 평상시에는 아무렇지도 않게 콘센트에다 전자 기기를 꽂고, 전기로 달리는 열차를 잘 타고 다닌다. 허나, 어린아기가 콘센트 구멍에다가 쇠젓가락을 집어넣는다거나.. 성인도 전차선에 신체나 낚싯대 같은 게 닿아서 감전 당하는 사고가 아주 가끔은 발생한다. 우리가 일상생활에서 편리하게 사용하는 전기가 실은 얼마나 위력적이고 위험한지를 알 수 있다.

인체는 전기가 통하긴 하는데 곱게 흘려 보내 주는 게 아니라 내부에 저항도 제법 있는 구조이다. 그래서 일정 한도 이상의 고압 전기가 일정량 이상 쫘르륵 흐르면 일종의 전기 신호로 반응하던 모세혈관 신경 등이 다 터지고 망가지며, 저항으로 인한 열 때문에 내장이 중화상을 입으면서 꽤 처참하게 죽는다. 전기를 이용해서 고문 방법과 사형 방법이 모두 괜히 개발된 게 아니다.

전기 없는 인간 생활이라는 건 상상할 수 없다 보니 전기와 관련된 일자리도 마를 날이 없다.
비유를 들기 위해 컴퓨터 쪽을 보면.. 학원만 간단히 나와서는 SI 갑을 관계 계약을 한 뒤 완전 글자판떼기 노가다 코딩으로 연명하는 사람이 있는가 하면, 전세계 수백· 수천만 이상의 사람들이 매일 사용하는 소프트웨어를 유지보수하고 운영체제를 만들고 새로운 프로그래밍 언어를 만드는.. 가히 IT업계의 최전방에서 덕업일치까지 실현하며 사는 괴수도 있다.

그런 것처럼 전기 전자 쪽도 단순 시설 유지보수부터 시작해서 석박사급의 최첨단 회로 설계와 기술 개발까지 온갖 등급의 엔지니어들이 존재한다. 일례로, 서울 강남 구룡 역 근처의 수도 전기공고는 과거에는 졸업 후에 곧장 한전 취업이 보장돼 있어서 최강의 입결을 자랑하는 실업계 고등학교였다.
이런 전기 기술자 양성 시설 중에는 의외로 지도에 가려진 보안 시설도 있다. 철도 수색 역 바로 근처에는 숲으로 가려진 전력 기술 교육원이 있고, 한전 인재 개발원도 그냥 산 속에 가려져 있다. 요런 유사 시설이 안양 어딘가에도 있었던 걸로 기억한다.

개인적으로는 마치 열기관의 이론적인 열 효율을 계산하듯이 어떤 전기 에너지로 낼 수 있는 전동기의 이론적인 최대 출력, 전등의 최대 밝기, 충전과 발전의 차이와 물리적인 효율 한계, 물을 전기 분해하는 데 드는 에너지 이런 것들에 대한 감을 깨우치고 싶다. 그런 감이 있으면 자동차에서 전자 기기를 켜는 게 엔진에 얼마나 부하를 주고 연비에 어떤 영향을 끼치는지도 알 수 있을 텐데 말이다.
옛날에 자전거 바퀴에 연결되어서 헤드라이트를 켜던 발전기가 비슷한 역할을 수행하긴 했는데 지금은 그런 물건을 찾기가 쉽지 않다. 전자공학 괴수들은 그런 거 감을 다 정확하게 잡고 있으려나?

또한, 전에도 한번 언급한 적이 있지만 직류 장거리 송전과 변압은 무선 송전만큼이나, 핵 융합이나 수소 연료 전지만큼이나 여전히 떡밥인 것 같다.
보통 발전기를 generator라고 하는데, 특별히 도체를 자기장 안에서 운동시켜서 교류 전기를 만들어 내는 발전기를 alternator라고도 하는 모양이다. 거의 모든 발전기들이 다 이 원리로 전기를 만들어 내고 있으며, 태양과 무관한 에너지원을 사용하는 별종 원자력 발전소라 하더라도 핵 융합 발전이 아닌 한 결국은 증기 터빈 기반이다.

교류 발전기가 전자석과 대응한다면 화학 전지는 영구 자석과 비슷한 개념에 대응하는 것처럼 보인다. 아무 에너지 공급 없이 어째서 자체적으로 쇠만 끌어당기는 영구 자석이 존재 가능한지를 깊게 설명하려면 양자역학 수준의 이론이 필요하다.
또한 전자기 유도 방식이 아니라 빛으로 전기를 만들어 내는 광전지는 원리는 모르겠지만 직류 전기를 생성한다고 한다. 정렬 알고리즘 중에 비교 연산으로 정렬을 하지 않는 변칙적인 알고리즘을 보는 것 같다.

전(자)기 쪽은 너무 심오해서 썰을 풀 거, 공부해야 할 걸 찾자면 한도 끝도 없다.
맨 처음에 전자기학의 근간은 물리학이 닦았겠지만 그 뒤로 물리학은 양자역학 등 너무 미시적이고 초월적인 세계로 트렌드가 이동하고, 전자기학으로부터 실생활에 유용한 기술을 개발하는 학문 영역은 전기· 전자공학으로 넘어갔다. 화학· 생물학으로부터 화학공학과 생명공학이 파생되어서 별개의 과가 되었지만 물리학으로부터는 물리공학이 아니라 기계· 전자공학이라고 최소한 두 과가 나왔다고 볼 수 있다. 그리고 물리학에서 파생된 공학들이 이공계에서 취업이 제일 잘 되는 과이다.. ^^;;

Posted by 사무엘

2017/04/16 08:32 2017/04/16 08:32
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1350

날개셋 한글 입력기 8.9 -- 下

<날개셋> 한글 입력기 8.9는 지난 8.8 버전에서 첫 도입되었던 "복합 낱자 입력 로직 생성기"에 '허용 한글 범위 제약'을 연동하는 기능이 추가되었으며, 이 기능의 구현을 위해서 기존 '허용 한글 범위 제약' 기능의 제공 형태도 약간 변경되었다.

이전 버전에서 복합 낱자 입력 로직 생성기 대화상자의 2단계 페이지는 그렇잖아도 뭔가 2% 부족하고 텅 비고 허전해 보였다. 그러던 것이 이제는 UI가 더 추가되면서 아래와 같이 더 빵빵하게 바뀌었다.

사용자 삽입 이미지

그럼, 이미 있던 기능에 대해서 복습부터 해 보자.
'허용 한글 범위 제약'이란 말 그대로 특정 문자 집합에 속하는 한글만 조합을 허용하고, 이 조건을 만족시키지 않는 낱자는 다음 글자로 보내거나 무시하는 등의 처리를 하는 기능이다. 가령, KS X 1001에 정의된 한글 2350자만 조합을 허용하고 '똠, 아햏햏' 같은 글자는 조합되지 않게 할 수 있다. '또ㅁ, 해ㅎ'으로 끊어진다.

이런 기능 자체는 <날개셋> 한글 입력기가 먼 옛날, 거의 2.x 시절부터 갖추고 있었다. 2.x는 한컴 2바이트 코드 기반이었는데, 얘는 일부 옛한글을 완성형으로 표현했다. 그러니 테이블에 등록되어 있지 않은 옛한글은 애초에 조합을 거부하고 입력되지 않게 하는 기능이 반드시 들어있어야 했다.

오늘날이야 유니코드에다 문자열 + 글꼴 처리 기술의 발전 덕분에 저런 한계가 진작부터 없어졌다. 인코딩 차원에서의 한글 표현 한계로 인해서 '허용 한글 범위 제약' 같은 기능이 동원되어야 할 필요는 없다. 그러나 이런 기능은 필요에 따라서는 지금도 여전히 유용하게 쓰일 수 있다.

가령, 일본어나 중국어 같은 외국어를 한글로 입력한다고 치자. 이들 언어는 종성이 매우 적으며, 소리를 표기하는 데는 한글 음절이 수십~수백 종류면 충분하다. 그러니 두벌식으로 종성 문맥에서 ㄹ을 입력하는데, '어+ㄹ' 같은 실제로 쓰이는 글자에 대해서만 '얼'이 입력되고 나머지 상황에서는 그냥 초성 ㄹ로 빠진다면 불필요한 도깨비불 현상이 발생하지 않으니 좋을 것이다. 두벌식으로도 반쯤 세벌식 같은 효과를 낼 수 있으며 초성 검색 자동 완성을 구현할 때도 더 편하다.

이런 건 아주 간단한 예에 불과하다. KS X 1001 완성형 2350자는 워낙 역사적인 상징성이 큰 문자 집합이니 진작부터 존재해 왔거니와, 저런 식의 활용을 염두에 두고 사용자가 작성한 임의의 텍스트 파일에 있는 한글들의 입력만 허용하는 '허용 한글 범위 지정 기능'도 지난 7.9 버전에서부터 추가된 바 있다.

그런데 문제는...
이렇게 닥치고 금지하고 조합을 끊기만 하는 기능은 완성도와 유용성이 100점 만점에 70점밖에 안 된다는 것이다. 그리고 그나마 PC니까 괜찮지 모바일로 가면 70점은 택도 없고 영 못 쓸 수준이 돼 버린다. 허용되는 글자를 입력하는 도중에 금지 글자를 예외적으로 거쳐 가는 것에 대한 대비가 없기 때문이다.

대표적인 예는 KS X 1001에서 '쓩'이다. 이 글자는 허용이지만 그 중간 과정의 '쓔'는 금지인 것으로 잘 알려져 있다. 그러니 무턱대고 '쓔'를 금지했다가는 허용 글자인 '쓩'도 입력할 수 없게 된다.
PC용 두벌식 + KS X 1001 기준으로는 이런 고아 글자가 5자 정도 알려져 있는데, 모바일로 가면 이런 예가 더욱 많아진다. 프로그램을 짜서 조사해 보면 수백 개에 달한다. 가령, 천지인에서는 ㅇ을 거쳐서 ㅁ을 입력한다는 특성상 '틈'을 입력하기 전에 금지 글자인 '틍'을 거친다. '폈'을 입력하기 위해서는 금지 글자인 '폇'을 거쳐야 한다.

그러니 범용적인 '허용 한글 범위 제약' 기능을 매끄럽게 구현하려면 허용-금지 문자 집합뿐만 아니라 지금 입력 방식을 총체적으로 분석해서 pre-compute된 메타정보를 갖고 있어야 한다. 부득이하게 입력을 허용해야 하는 중간 단계 글자가 무엇인지가 그 입력 방식의 구조에 따라 달라지기 때문이다.

이번 8.9의 로직 생성기는 '지정된 파일에 들어있는 한글' 범위(입력 일반 탭)가 읽어들이는 것과 동일한 형태의 텍스트 파일을 줘서 허용 한글 범위를 지정할 수 있다. 단, KS X 1001은 워낙 유명하고 프로그램 내부에 테이블이 들어있기도 하기 때문에 별도의 파일 지정이 필요 없다.

그 뒤 중간 과정 글자의 표현 방식을 지정할 수 있다. '쌰' 같은 중간 글자를 (1) '샤'나 '썅'과 다를 바 없는 온전한 형태로 그대로 표시할지, (2) 아니면 끊어진 것처럼 풀어서 표시하되 조합은 다 유지하고 있게 할지, 혹은 (3) 나랏글에서 대결합 ㅜ+ㅏ를 ㅝ로 바로 자동 완성해서 표시하는 것처럼 '쌰'만으로 목적지인 '썅'을 자동 완성할지를 고르면 된다.

그러면 이 프로그램은 기본으로 규정된 한글 문자 집합 데이터에다가 추가로 허용돼야 하는 중간 글자들을 덧붙인 문자 집합 데이터 파일을 추가로 생성하고, 이 데이터를 '허용 한글 범위'로 사용하는 입력 설정을 생성해 준다. 그리고 중간 글자를 표현하는 방식 중에서 (2)와 (3)은 <날개셋> 한글 입력기의 '고급 입력기'가 제공하는 글자 단위 출력 치환을 이용해서 구현한다.

(3)의 경우 목적지가 둘 이상 존재 가능하여 하나로 딱 떨어지지 않으면 (1) 타수가 더 짧은 놈, (2) 목적지가 사전 오름차순 정렬에서 먼저 등장하는 놈의 순으로 선택된다. 가령, 천지인의 경우 '쌋'이라는 중간 문자는 추가 입력을 통해 '쌌'이 될 수 있고 '쌓'도 될 수 있다. 이 경우 타수가 더 짧은 '쌓'이 먼저 제안되며, ㅅ을 끝까지 계속 눌러서 실제로 '쌌'을 입력해야 글자가 바뀐다.

사실 두벌식은 종성과 초성 사이의 연속 입력 문제--종성의 마지막 소결합이 다음 글자의 초성으로 고스란히 넘어갈 수 있음-- 때문에 허용 한글 범위 제약 기능을 구현하기가 더욱 어렵다.
어떤 초성+중성 다음에 받침 ㄱ이 허용된다면 ㄱ으로부터 해당 입력 방식에서 소결합 차원에서 파생 가능한 ㅋ, ㄲ 같은 것도 원칙대로라면 몽땅 다 허용해 줘야 한다. 그래야 해당 자음을 다음 글자에서 연속 입력할 수 있기 때문이다.

그런데 그렇게 해 버리면 모바일 입력 방식의 경우 추가적으로 허용되는 글자가 너무 많아진다. '액'이 된다는 이유만으로 '앸', '앢'도 다 허용해야 하고 '밟' 이후로 '밢' 같은 것도 허용해야 각각 'ㅋ, ㄲ, 발ㅍ' 같은 연속 입력을 할 수 있게 된다.

그렇기 때문에 두벌식의 자음 연속 입력을 위한 미래형 도깨비불은 기본적으로 '초성 분리' 형태로 행해지게 했다. '액'에서 ㅋ, '밟'에서 ㄿ로 넘어가는 순간에 ㅋ과 ㅍ은 다음 글자로 넘어가 버리고 그 자음이 ㄱ이나 ㅂ을 순환하게 된다. 그래서 연속 입력을 가능하게 하는 동시에 앞 글자에서 중간 단계의 종성을 붙들고 있어야 하는 가짓수를 줄였다.

물론 그런 파생되는 글자 중에 붙잡고 있어야 하는 글자가 존재한다면 분리시키지 않고 붙잡고 있는다. 예를 들어 '각' 다음에 '갘, 갂'은 건질 만한 게 없으니 분리되지만 '박' 다음에 '밬'은 분리되지 않고 전체 조합이 유지된다. 나중에 '밖'이라는 허용 글자가 만들어질 수 있기 때문이다. 이거 제어하는 기능이 얼마나 까다로운지 알 수 있다.

'허용 한글 범위 제약'이 제대로 돌아가려면 이 정도로 복잡하고 정교한 세부 기능이 필요하다는 것을 10여 년 전에도 본인이 모르지는 않았다. 그래서 2003~04년, <날개셋> 한글 입력기가 무려 3.0이 개발되던 시절에는 구체적으로 어떻게 구현할지는 아직 모르겠지만, 어쨌든 문자 집합을 고른 뒤에는 이와 관련된 '세부 동작'을 어떻게 할지도 지정하는 UI가 제공되었다.

사용자 삽입 이미지

'가까운 글자로 근사'가 앞서 소개한 자동 완성과 같은 개념이며, '풀어 쓴 상태로 조합'도 이해하기 어렵지 않을 것이다. 이런 개념들을 다~ 먼 옛날부터 생각은 하고 있었다. 단, '롤백'은 무슨 '빠꾸' 기능 같은데 무엇을 의도하고 집어넣었던 것인지 잘 모르겠다만..
저건 아직 지원되지 않는 기능이라고 (x)가 쳐진 채 오랫동안 잉여 UI로 전락해 있었다. 그러다가 이건 가까운 시일 내에 구현이 영 무리이겠다는 판단 하에 UI가 언제부턴가 완전히 삭제되고 오늘날에 이르렀다.

이 오랜 숙제가 8.9 버전에서 해결되었다. '쌰'만 입력했는데 '썅'이 자동으로 완성되게 하는 이론적인 근거를 마련하는 건 결코 쉬운 일이 아니었다. 지금 있는 입력 설정을 사전에 총체적으로 분석해서 pre-computed된 메타정보를 넣어 준 뒤에야 간신히 구현되었다.
자체 에디트 컨트롤의 스크롤 막대에 치명적인 문제가 있던 것도 무려 15년 묵은 버그였고 오랜 숙제들이 여럿 해결되었으니 뜻깊은 일이 아닐 수 없다. 그래서 번호도 상징성이 큰 9.0으로 정하고 싶었으나.. 뭐 8.9에서 미리 선보이게 됐다.

이런 기능들을 구현하기 위해 '허용 한글 범위 제약' 기능은 단순히 한글의 허용 여부를 예/아니요로만 지정하는 게 아니라 허용하더라도 등급을 줘서 허용할 수 있게 구조를 확장했다. 그리고 '다단계 낱자 분리'를 오토마타 차원에서 지정 가능하게 했다.

자, 지금까지 늘어놓은 개념들을 요약하면, 단순히 허용/불허 글자 지정 기능을 넘어서 (1) 중간 과정 글자 챙기기, (2) 두벌식 연속입력 가능성 챙기기 기능이 빠른설정에 도입됐다. 그리고 이를 뒷받침하기 위해 (3) 한글 범위 제약 + 다단계 낱자 분리 기능 + 오토마타 사이의 연계 강화까지 유기적인 작업이 이뤄졌다. 먼저 소개했던 버그 수정 + 사소한 기능들과는 완전한 딴판인 분야 얘기이다.

거기에 덧붙여서 본 빠른설정에는 (4) 낱자 최적화 기능도 추가되었다. 옛한글을 사용하긴 하는데 사용하는 낱자나 글자 수는 일부에 불과한 경우, 대결합을 옛한글 전체로 주더라도 한글 데이터를 쭉 분석해 본 뒤, 실제로 쓰이는 한글의 것만 결합 규칙에다 집어넣어 주는 기능이다. 이것도 시작과 끝부분에서만 안 쓰이는 것을 커트해 주는 것과, 기존 낱자들의 입력 방식이 바뀌더라도(더 짧아짐) 안 쓰이는 낱자를 중의성이 발생하지 않는 한도 내에서 짤라 버리는 더 적극적인 최적화로 옵션 지정이 가능하다.

썰 0. 작곡과 편곡의 관계

우리가 폰이나 컴퓨터에서 매일 듣는 노래 내지 음악 음원이 만들어지기 위해서는 작사, 작곡, 편곡이라는 세 가지 작업이 필요하다.
가사를 쓰는 건 일단은 음악이 아닌 문학 소양으로 가능한 일이다.
작곡은.. 아무나 할 수 있지는 않겠지만 그래도 음악 이론 안 배워도 창의력 똘끼 충만한 사람이면 절대로 못 할 일은 아니다.

나라도 5분만 해골 굴리면 지금 내 감정을 담은 짤막한 멜로디 자체는 만들어 낼 수 있다. 단지 Looking for you 같은 급의 선율을 만들 수 없을 뿐이지.
그런데 작사· 작곡 그 자체만으로 만들 수 있는 음원은 혼자 무반주로 흥얼거리는 쌩목소리 노래 녹음뿐이다.
그 선율에다가 온갖 다채로운 화음과 반주, 비트를 만들어 넣어야 한다. 그걸 넣는 작업이 바로 편곡이다.

편곡이라 했을 때 흔히 떠올리는 연주 형태 변경은 재편곡에 가까우며, <엘리제를 위하여>를 3/8박자 못갖춘마디에서 4/4박자 갖춘마디로 주선율 자체를 바꾼다거나 하는 건 개념상 아예 리메이크에 더 가깝다. 편곡의 가장 좁은 의미는 주선율이라는 뼈대에다 반주라는 살을 붙이는 작업을 말한다.
편곡은 작곡과 같은 급의 창작은 아니지만 그래도 주선율에 대한 편곡자의 해석과 창작이 들어갈 수 있으며, 매우 다양한 편곡이 나오는 게 가능하다. 또한 편곡이야말로 본격적으로 음악· 화성 이론과 각종 악기 구성에 대한 지식을 갖춰야만 할 수 있는 일이다.

그리고 따지고 보면 한글 입력 방식을 설계 구현하는 것도 이렇게 작곡에 속하는 영역과 편곡에 속하는 영역이 서로 구분되어 있다.
천지인 가획 원리로 모음을 입력한다든가, 요런 순서대로 ㄱ~ㅎ을 배당하는 것은 작곡이다.
그러나 그렇게 기본 자모의 입력법이 정립된 뒤에 이를 토대로 복합 낱자들을 입력하는 규칙을 생성하고, 그 과정에서 발생할 수 있는 내부/음절 경계의 모호성을 해소하고, 오토마타라든가 backspace 동작 등을 세밀히 customize하는 것은 편곡의 영역에 속한다.

한글 입력은 알파벳처럼 key 글자들을 주루룩 늘어놓기만 한다고 끝이 아니기 때문이다. 아시다시피 종성 ㄱ과 초성 ㄱ은 다르고 심지어 ㄱㄱ도 ㄲ과 같지 않다. 한글 입력 오토마타가 뭔가 해석을 할 여지가 남아 있다.
음악에 대해서 주선율만 만들면 나머지 반주는 별 존재감 없이 자동으로 따라온다고 생각하기 쉬운 것처럼, 한글 입력 방식도 주선율에 해당하는 부분만 만들면 나머지 mechanical한 요소는 자동으로 따라온다고 생각하기 쉽다. 하지만 실상은 그렇지 않고 훨씬 더 복잡하다.

날개셋 한글 입력기 8.8은 "복합 낱자 입력 로직 생성기"라는 빠른설정이 도입됨으로써 단순히 한글 입력 방식이라는 음악을 작곡만 가능한 게 아니라 편곡까지 자동화해 주는 도구로 수준이 올라갔다. 그리고 8.9에서는 '한글 조합 범위 제약'과 연계된 기능이 더 추가되어 완전체에 도달한 것이다.

썰1. 두벌식 옛한글 글자판의 원조는?

PC에서 옛한글 글자판이라 함은 현대 한글에 맞춰진 기존 글쇠배열을 약간 변형해서 아래아, 여린이응 등을 집어넣은 글쇠배열을 말한다. 이것도 두벌식과 세벌식이 모두 존재한다.

두벌식은 세벌식보다 글쇠 수가 적어도 되지만 낱자와 음절의 경계 구분이 잘 안 되는 관계로 모음 filler와 조합 종료라는 비문자 특수 글쇠가 두 종류 필요하다. 전자는 종성 단독 같은 미완성 한글의 입력을 위해, 그리고 후자는 모호성 해소를 위해서이다. 이게 있어야 세벌식과 동등한 표현력을 발휘할 수 있다.
세벌식은 현대 한글과 별 차이 없는 직관적인 입력이 가능하지만, 글쇠가 워낙 많이 필요하다 보니 숫자 글쇠 위치를 차지하는 것도 모자라서 이제 숫자 자체를 포기해야 한다는 단점이 있다.

다음으로 낱자 결합 규칙의 관점에서 살펴보자면.. 현대 한글에서는 ㅃㄸㅉ이 종성에 등장하지 않는 초성 전용이었다.
옛한글은 표현 범위가 더 넓어져서 저것들도 받침으로 올 수 있는 반면, 잘 알다시피 정치음과 치두음이라는 새로운 초성 전용 낱자가 등장한다.

세벌식 옛한글은 부산 대학교 김 경석 교수가 390 글쇠배열을 변형하여 고안한 글쇠배열이 저서 <컴퓨터 속의 한글 이야기>(1993)에 소개된 게 있다. 아래아한글과 내 프로그램에서 이걸 오늘날까지 그대로 지원한다. 그 뒤로 이 분야의 후속 연구는 없다시피하니 말이다. (세벌식만으로도 얼마나 마이너한데 옛한글까지?)

그러나 두벌식 옛한글 배열은 누가 공식적으로 연구해서 논문을 발표하기라도 한 게 있는지 궁금하다. 표준 두벌식은 윗글쇠에 빈 자리가 워낙 많기도 하니 그냥 비전문가 개발자가 적당히 옛한글 자모를 야메로 집어넣기라도 했는지?

오늘날 두벌식 옛한글 글쇠배열을 구경할 수 있는 프로그램은 역시나 날개셋과 아래아한글에다가 MS 옛한글 입력기(Windows 8부터, TSF A급 전용)이다.
현재 내 프로그램은 전통적으로 Shift+ㄴ에 쌍니은, Shift+ㄹ에 쌍리을, 그리고 Shift+ㅣ에 쌍ㅣ(??)이 배당돼 있다. Shift에 더블(!) 버전이 들어있는 ㅂㅈㄷㄱㅅ 자리의 관행을 따른 것이다.

하지만 아래아한글은 그 자리에 각각, ㄶ, ㅀ, ㆌ가 들어있으며 내 프로그램도 옛한글이 처음으로 지원된 2~3.x 초창기 버전은 아래아한글과 동일했다. 사실, 쌍ㅣ는 유니코드 1.1 내지 날개셋 3~4 시절에는 있지도 않던 자모였다.
내가 언제 무슨 생각으로 배열을 왜 변경했는지는 잘 모르겠다. 세벌식도 아닌데 ㄶ, ㅀ 같은 걸 한데 배당할 필요가 있는지, 저게 초성 단독으로 중세 국어 문헌에서 많이 쓰였는지도 잘 모르겠다. 중세 국어 말뭉치를 살펴보면 옛한글의 자모 사용 빈도 통계도 뽑을 수 있을 텐데.

어쨌든 내 프로그램과 아래아한글이 두벌식 옛한글 배열이 Shift 쪽에 차이가 있다는 걸 알게 됐다. 참고로 MS 입력기는 Shift+저 자리에 딱히 다른 낱자가 배당돼 있지 않은 것 같다.

끝으로, 그러고 보니 현재 두벌식 옛한글과 세벌식 옛한글은 방점의 위치가 Shift+Y/U로 서로 동일하다는 것도 처음 알았다. 지금까지 한 번도 진지하게 생각해 본 적이 없었는데 흥미로운 사실이다.

썰2. 수록할 세벌식 글쇠배열/입력 설정 파일 모집

<날개셋> 한글 입력기는 실용성, 역사성, 구현 원리의 독창성 등의 의미를 갖는 수십여 종의 입력 방식들을 예제 차원에서 내장하고 있다. 예전에도 이에 대해 언급한 바 있다.
한글의 경우 지금까지 두벌식과 세벌식을 기발한 방법으로 절충한 입력 방식, 혹은 두벌식에서 음절 경계 구분 문제를 독창적인 방법으로 해결한 입력 방식 같은 걸 주로 수록해 왔다.

하지만 그런 것에만 신경 쓰다 보니 정작 순수 세벌식 분야의 예제의 수록에는 다소 소홀한 감이 있었다. 왼손/오른손 세벌식, 맥OS/아래아한글 97 세벌식 같은 역사적 자료 말고 뭔가 본격적으로 실용적인 성능을 염두에 둔 최근 자료는 내 기억이 맞다면 팥알 님이 먼 옛날에 제작하신 '세벌식 3-3012'이 전부이다. 그 뒤로 딱히 업데이트를 한 것도 없다.

2010년대부터 소위 세벌식 진영 내부의 파편화가 두드러지게 진행되어 온 듯하다. 글쇠배열에 관심 좀 있는 분들이 다들 자기만의 글쇠배열을 만들어서 세벌식 사용자 커뮤니티 내지 자기 홈페이지에다 홍보를 하고 있다. 특히 신세벌식 패러다임은 일부 희소 낱자에만 한정해서 적용한다 하더라도 확실히 피할 수 없는 요즘 대세인 듯하다. 모든 작품들을 예제로 넣을 수는 없겠지만 그래도 제작자들에게서 제작 의도를 들어 보고, 현행 세벌식 390을 대체할 만한 가치가 있는 것을 한두 개 정도 더 수록했으면 좋겠다.

뭐, 세벌식 입문자에게는 날개셋이고 한글 기계화고 뭐고 골치아픈 건 싹 다 무시하고 당장 어디서나 설정만 바꿔서 사용 가능한 세벌식 390이나 최종부터 현실적으로 권해야 하는 건 변함없다. 그러나 좀 더 편리한 글쇠배열을 연구하는 시도 자체를 혼란을 야기한다는 이유로 백안시해서는 안 될 것이다.

Posted by 사무엘

2017/04/11 08:37 2017/04/11 08:37
Response
No Trackback , 12 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1348

날개셋 한글 입력기 8.8이 나온 지도 두 달 남짓한 시간 만에.. 새 버전을 공개하게 되었다.
원래 내 계획은 새 기능 추가에만 계속 전념하다가 올해 6월 말쯤에 깔끔하게 9.0을 공개하는 것이었다. 그러나 지금까지 발견되고 수정된 버그들만 해도 꽤 중요하고 만만찮은 것들이 잔뜩 쌓이면서.. 결국 원래 구현하려던 주요 기능 하나만 작업을 마친 뒤에 8.9를 한번 더 거쳐 가기로 결정을 내렸다. 그 긴 시간 동안 심혈을 기울여 완성했던 8.8마저도 완벽한 물건이 아니었다.

원래 이 글도 새 버전 소개가 아니라 그냥 다음 버전 개발 근황 정도를 소개하는 글이 됐을 예정었으나, 글의 성격이 바뀌었다. 분량이 매우 긴 관계로, 이번 상편에서는 버그 수정과 작은 기능 얘기부터 먼저 하고, 중요한 기능 추가분은 다음 시간에 소개하겠다.

1. 오랜 버그: 스크롤 막대 딜레마 문제

이번 새 버전에서는 <날개셋> 한글 입력기의 전용 에디트 컨트롤에 존재하던 "아주 오랜 지병"이 하나 극적으로 치료되었다. 그 지병은 바로 스크롤 막대와 관계가 있다.
이건 편집기에 '자동 줄바꿈'이라는 기본 옵션이 제공된 이래로.. 3도 아닌 자그마치 2.x 시절부터 지금까지 근 15년 가까이 전혀 고쳐지지 않고 고스란히 남아 있던 문제였다. 가끔 이런 문제가 발생한다는 것이 경험적으로 알려져 있긴 했지만 그 빈도가 매우 낮으며 정확한 재연 조건을 알 수 없었다.

가끔 재연되는 케이스를 발견했을 때에도 스크롤 막대 관련 코드를 대충 건드려 보는 것만으로는 원인과 해결책을 알 수 없었다. 그래서 더 추가적인 작업 없이 프로그램은 이런 버그가 잔류한 채로 2.x에서 무려 9 직전까지 버전이 올랐다.

문제가 뭐냐 하면, "자동 줄바꿈 + 스크롤 막대"를 켜 놓고 새 문서를 텅 빈 상태에서 차근차근 작성해 보면 된다. 문서가 차지하는 영역이 가로와 세로로 적당히 한 화면의 크기를 초과할 즈음이 되면 스크롤 막대가 생긴다.

사용자 삽입 이미지

위의 그림처럼 '가나 다라'를 중간의 공백이 줄 사이에 걸치게 입력한다. 그러면 공백 때문에 가로 스크롤 막대가 생기는데, 그 상태에서 엔터를 계속 눌러서 줄 수가 늘어나서 세로 스크롤 막대가 생기게 해 볼 것. 그러면 뜻밖에도 편집창 화면의 테두리가 갑자기 저렇게 깨진다. 기술 용어를 동원하자면, non-client 영역의 표시가 맛이 간다.

사용자 삽입 이미지

이 현상은 계속 엔터를 눌러서 줄수가 늘어나면 없어지긴 한다. 하지만 도대체 저 현상이 왜 발생하는지 근본적인 원인을 알 길이 없었다. 한때는 참 당돌하게도 이건 가로· 세로 스크롤 막대 설정이 미묘하게 꼬였을 때 발생하는 운영체제의 버그이려니 하고 안일하게 생각하고 넘기기도 했다. NT 계열이 아닌 Windows 9x에서는 이때 프로그램이 아예 통째로 뻗기까지 했는데도 말이다.

이 문제의 원인은 내가 '스크롤 막대 딜레마'라고 이름을 붙인 아주 기묘한 현상 때문이었다.
처음에는 가로 스크롤 막대만 있는데, 줄 수도 늘어서 세로 스크롤 막대가 추가되었다. 그러면 세로 스크롤 막대가 차지하는 공간 때문에 편집창도 폭이(클라이언트 영역의 가로 크기) 감소한다. 자동 줄바꿈 옵션이 켜져 있다면 새로운 폭을 기준으로 텍스트의 문단 정렬이 다시 행해진다.

이제 스크롤 막대가 가로와 세로에 모두 생겼다. 그런데 편집창의 폭이 감소하면서 지금까지 가로로 한 칸 툭 튀어나오던 공백이 다음 줄로 완전히 이동했다. 가로 스크롤 막대가 필요 없어진 것이다. 그래서 최종적으로는 세로 막대만 남는 것 같은데...

이것도 끝이 아니다. 가로 스크롤 막대가 없어지니까 편집창의 높이가 증가했다. 그 결과 텍스트의 모든 줄이 한 화면에 표시가 가능해지고 세로 스크롤 막대조차 필요 없어진다. 그러니 모든 상황은 스크롤 막대가 전혀 없던 원점으로 돌아오는데...

세로 스크롤 막대가 없어지고 편집창의 폭이 원래대로 돌아오자 아까처럼 공백이 다시 줄 경계에 걸려서 가로 스크롤 막대가 필요해지는 상황으로 되돌아온다.
이솝 우화로 치면 당나귀에다 아들(가로 스크롤)만 태워도, 아버지(세로 스크롤)만 태워도, 둘 다 태워도, 둘 다 걷게 해도 어떻게 해도 사람들이 욕을 하는 것과 같은 상황이 되는 것이다.

WM_SIZE 메시지를 처리하는 과정에서 스크롤 막대의 상태가 바뀌고, 그게 또 WM_SIZE를 중첩 생성한다. 이건 이론적으로는 무한 루프에 빠지지만 실제로는 함수의 호출 깊이가 한없이 증가하기 때문에 스택 overflow로 이어진다. 다만, 대놓고 내가 짠 함수로만 스택이 깊어지는 게 아니라 message loop이 중첩해서 쌓이기 때문에 상황을 곧장 파악하지 못했을 뿐이었다.

이 문제를 해소하기 위해 WM_SIZE 메시지와 스크롤 막대 처리 함수가 일정 깊이 이상으로 종료 없이 중첩 호출되는 것을 감지하는 코드를 추가했다. 이런 꼬인 상황에서는 양방향 스크롤 막대를 깔끔하게 모두 제거시켰다. 이로써 문제를 해결했다.

사용자 삽입 이미지

2.x 때부터 있었던 지병이 9.0을 바라보는 타이밍에서야 고쳐졌다는 게 참 감개무량하다. 이건 버그가 아니라 지병에다 비유하고 싶었다. 또는 몇십 년 전에 전사한 무명용사의 유해를 이제야 DNA 감식을 통해 다시 찾아내고 신원까지 파악한 듯한 느낌에다가도 비유할 수 있겠다.

15년 전부터 존재하던 버그가 뒤늦게 고쳐지기도 하니 이 쾌감에 내가 코딩 중독에서 빠져나올 수가 없는 거다. 이걸 고칠 생각을 하게 된 건 우연한 계기 때문이었다. 지난 8.8에서 해치운 작업들을 다 삭제하고 to do list를 정리하고 있었는데, 하필 이 문서가 스크롤 막대 딜레마 오류를 일으키고 있었기 때문이다.

세월이 흐르면서 본인의 절대적인 프로그래밍 실력...이라기보다는 일단 품질을 보는 눈이 예전보다 높아졌다. 예전에는 대충 적당히 만들었던 것을 지금 꼼꼼하게 다시 개량하는 게 개발 트렌드가 됐다. 과거의 철도가 자갈 노반 나무 침목 단선 비전철이라면 지금은 콘크리트 노반과 침목에 복선 전철이 기본인 것처럼 말이다.

2. 조금 거시기한 버그: 타자연습에서 또 외부 모듈을 사용할 때의 충돌

이건 입력기 엔진의 직접적인 문제는 아닌데..
<날개셋> 타자연습에서 외부 모듈(IME)를 또 구동할 때 외부 모듈에서 플러그 인의 기능들을 사용하지 못하는 충돌 문제가 꽤 오래 전부터 있었다. 그걸 사용자의 버그 신고 덕분에야 인지하여 문제를 해결했다.

사실, 외부 모듈이 이미 <날개셋> 한글 입력기를 사용하고 있는 편집기나 타자연습 같은 프로그램(호스트)의 밑에서 돌아가는 상황에 대한 대비 자체는 오래 전부터 돼 있었다. 호스트가 자신과 바이너리 호환이 되지 않는 날개셋 엔진을 사용할 경우, 외부 모듈은 자기에게 맞는 엔진을 따로 로딩하게 했으며, 한 프로세스에 디렉터리 위치만 다른 ngs3.dll이 동작하더라도 문제가 없게 조치를 취했다.

저것 자체는 늦어도 지난 2010년대 초에 이미 다 이뤄진 일이다. 하지만 이번 문제는 그것과는 별개인 또 다른 문제였다. 동일한 ngs3.dll이 두 번 로딩되었는데 플러그 인은 한 군데밖에 없다 보니 한 프로그램에서는 내부 구조의 문제로 인해 플러그 인을 사용할 수 없었다.
이런 문제가 존재할 거라고 전혀 생각을 못 하고 있었는데 결국은 ngs3.dll을 불러들이는 방식을 변경해서 불가피한 경우가 아니면 중복 로딩이 되지 않게 했다.

3. 그럭저럭 내력이 있는 버그: 부팅 전후 외부 모듈의 crash 문제

8.8을 공개한 뒤에 의외로 외부 모듈의 안정성과 관련된 결함이 몇 군데 발견되어 해결되었다. <날개셋> 한글 입력기를 운영체제의 기본 IME로 지정한 뒤 Windows 7 기준으로,
(1) 처음 부팅을 하면 explorer 프로세스에서 오류가 발생할 수 있다.
(2) 시스템을 로그아웃/종료할 때 taskhost 프로세스에서 오류가 남.

(1)의 경우 일반적인 상황에서는 발생하지 않고 날개셋 커널이 로딩되지 못해서 외부 모듈도 아무런 제공 기능 없이 시체 상태로 동작할 때에만 그런다. IME라는 게 live 업데이트가 쉽지 않은 프로그램이다 보니, 설치 후에 재부팅을 제대로 하지 않고 뭐가 꼬이면 커널과 외부 모듈의 버전이 서로 안 맞아서 아주 드물게 저런 상황이 발생할 수 있는 듯하다.
이유야 어쨌든 날개셋 외부 모듈은 시체 상태이더라도 최소한 프로그램을 뻗게 하지는 않아야 하므로, 이는 의도하지 않은 버그이긴 하다.

그리고 (2)는 지난 8.5 버전에서 각종 이벤트 통지 기능이 추가되면서(프로그램 활성화, 글자판 전환 등) 민감한 곳을 건드리다가 생긴 버그이다. 저렇게 짜도 다른 프로그램들은 아무 문제 없는데 유독 저 프로세스만 탈을 일으켰다.
지금까지 잘만 돌아가다가 왜 그 상황에서 있어야 할 오브젝트가 온데간데없이 사라졌고 NULL인지는 정말 '귀신이 곡할' 노릇이고 도무지 알 수 없다. 그냥 결과론적인 안전 점검 루틴을 추가하는 것밖에 대처 방법이 없었다.

게다가 평범하게 문제가 발생하는 게 아니라 로그아웃/시스템 종료를 하는 순간에만 잠깐 발생하고, 그때는 종료를 취소하고 디버거를 띄울 수도 없었기 때문에 더욱 난감했다. 그래도 다행히 그때 예외 처리기 분기와 덤프 파일 생성이 됐기 때문에 이 정보와 pdb 파일을 토대로 당시 스택 프레임을 재구성하고 문제 발생 지점을 찾아낼 수 있었다.

(1)과 (2) 모두 문제가 발생한 곳은 의외로 구닥다리 레거시 imm32 프로토콜 기반의 IME 계층 쪽이었다. TSF 쪽이 아님.

4. 직전 버그: 외부 모듈에서 초성 조합 중에 특수문자 변환이 되지 않는 문제

이번엔 고질병과는 반대로 직전의 8.8 버전에만 존재하는 버그 얘기이다.
개발 연혁이 15년이 훌쩍 넘어가는 프로그램에서 더는 이런 어처구니없는 실수가 없어야 정상이겠지만 안타깝게도 그런 예가 하나 발견되어 이 자리를 통해 알리도록 하겠다.
8.8 버전은 외부 모듈에서 ㄱ~ㅎ 같은 자음을 조합하고 있는 상태에서 후보 변환(한자 같은)을 눌러 특수문자를 입력하는 기능이 제대로 동작하지 않는다.

더 구체적인 문제 발생 조건은, 자음을 호환용 한글 낱자로 바꿨을 때(외부 모듈 환경 또는 최종 변환 규칙을 통해서)이다. 그렇기 때문에 편집기에서 최종 변환 규칙 없이 그냥 자음을 단독으로 입력하고 있을 때는 문제가 없다.

이것은 8.8에서 새로 추가된 '앞에서 뒤로 탐색하여 단어 단위 한자 변환' 기능으로 인해 발생한 부작용이다.
새 기능인 '앞에서 뒤로 탐색'(즉, '토선생'을 변환하면 '선생'이 아니라 '토선'이 먼저 제안되는 것)을 선택했을 때는 그런 부작용이 없고, 예전부터 지원되던 동작인 '뒤에서 앞으로 탐색' 또는 단어 단위 한자 변환을 사용하지 않으면 저렇게 초성+한자 특수문자가 동작하지 않게 된다.

메모장은 TSF 확장 옵션을 사용하지 않으면 어차피 단어 단위 한자 변환이 동작하지 않는 환경인데도 저런 옵션의 영향을 받는다.
사소한 버그이기 때문에 다음 버전에서는 문제가 곧장 고쳐졌다.

5. 기능 추가: 외부 모듈에 키보드 드라이버 배열 미리보기

외부 모듈의 '시스템 - 고급 시스템 옵션' 제어판 페이지에는 지난 8.6때부터 "한글 IME와 연결할 영문 키보드 드라이버" 지정 기능이 추가되었는데, 사용자가 선택한 키보드 드라이버의 글쇠배열을 간단하게 미리 들여다보는 기능이 추가되었다.
<날개셋> 한글 입력기에 키보드 드라이버를 바로 불러오는 기능은 무려 10년 전 4.4 버전부터 존재했다. 그러니 그 기능을 여기에다 연계하지 못할 이유가 없다.

사용자 삽입 이미지

'보기' 링크를 누르면 글쇠배열 그림이 별도의 modal 대화상자의 형태로 뜬다.
좀 더 욕심을 내자면, 옛날에 MS Excel에서 차트 미리보기 기능처럼 뭔가를 누르고 있는 동안만 preview가 뜨고, 버튼에서 손을 떼는 순간 그림이 사라지는 게 내 본래 의도이다.

하지만 그런 기능이 운영체제의 표준 GUI에는 존재하지 않고, 또 키보드 드라이버 변경 기능이 한글 입력과 직접적인 관계가 있으면서 많이 쓰이는 기능은 아니라고 생각되어 그냥 이 정도 기능만 넣는 것으로 그쳤다.

6. 그 밖에

(1) 외부 모듈과 변환기에는 유니코드 5.2 옛한글을 호환성 차원에서 1.1 과거 방식으로 풀어서 표시하는 옵션 내지 기능이 있는데.. 8.8 버전에서는 이 부분의 코드가 리팩터링 되던 과정에서 더 풀어서 표시해야 하는 낱자를 풀지 않고 잘못 표시하는 문제가 들어갔음을 뒤늦게 발견했다.
가령 ㅗㅒ는 ㅗㅑㅣ로 더 풀어야 하고 중성엔 ㅛㅐ, ㅠㅐ, ㅣㅖ, ㅡㅔ, ㅣㅒ, ㆍㅔ 같은 예가 더 있다.
오늘날이야 유니코드 1.1 옛한글은 한양 PUA보다도 인지도가 없고 거의 쓸 일 없으니 당장 대다수 사용자에게는 별 여파는 없는 문제이긴 한데, 이런 문제 자체가 있다는 건 밝힌다. 이번 새 버전에서 곧장 해결되었다.

(2) Metro 앱에서 시스템 계층의 키보드 드라이버 보정 기능이 동작하지 않던 것을 동작하게 했다. (연결되는 키보드 드라이버 자체를 변경하는 것은 여전히 지원 불가) 그리고 지금까지 Internet Explorer 11 내부의 텍스트 입력란(주소 입력란 말고)에서 외부 모듈의 글자판 동기화가 되지 않고 입력 패드도 동작하지 않던 문제를.. 우연한 계기로 드디어 해결했다.
IE는  IME 개발자의 입장에서 굉장한 요물이고 뭔가 자체적인 샌드박스 같은 환경을 갖춘 것 같았는데 메트로만치는 아니어도 어느 정도 샌드박스가 있긴 했다. 이런 부류의 문제들이 하나하나 해결돼 가는 걸 보는 건 내 인생의 낙이다.

(3) 오랫동안 '외장형 후보' 예제 데이터 파일로는 구결밖에 없었는데, 정 재민 님의 제안으로 대법원 제정 인명용 한자 목록 8000여 자를 추가했다. 제1후보를 대체하는 물건으로 활용 가능하다.
이게 의외로 종이 문서나 이미지로만 존재하거나, 글자별 조회만 가능하지 전체 목록을 뽑기가 쉽지 않았는데 일일이 목록을 만든 분이 국내도 아니고 일본에 있었다. (☞ 출처) 참고로 인명용 한자는 한번 정하고 끝이 아니라 계속 추가되는 편이다.

(4) 타자연습의 게임은.. 아예 운영체제의 표준 GUI만 사용하는 다른 연습 UI보다는 비주얼이 낫겠지만, 그래도 요즘 게임 트렌드에 비해서는 기술적으로 너무 뒤쳐진 구닥다리가 됐고 게임 시스템도 좀 바꿔야 할 때가 됐다.
하지만 전면개편을 하기에 앞서..;; 또 사소한 UI를 좀 고쳤는데,

게임 화면 하단은 시스템의 색상과(특히 고대비 검정 같은) 관계없이 언제나 흰 배경에 검은 글자로 찍히게 했다.
그리고 컴퓨터 속도가 2GHz를 넘어간다 싶으면 "256색 전체 화면" 옵션을 없애고 표시하지 않게 했다.
옛날에 Windows 2000/XP 초창기에는 256색 전체 화면이 트루컬러 전체 화면보다 속도가 더 빠르고 진행이 원활한 경우가 있어서 저 옵션을 넣은 것이었지만, 오늘날이야 당연히...;; 아무 차이가 없어졌기 때문이다.
게임도 창 모드로 실행될 때는 자기 별도의 창을 띄우는 게 아니라 프로그램 main 창 내부에서 돌아가게 하고 싶긴 하다.

추신: 외부 모듈이 IME 목록에 나타나지 않는 이유는?

<날개셋> 한글 입력기를 설치하고 나면 외부 모듈도 일부러 제외하지 않은 한 같이 설치되고 운영체제 IME로서 등록된다.
그런데 <날개셋> 한글 입력기가 한 번도 설치된 적이 없던 완전히 새 컴퓨터에다 프로그램을 처음 설치한 경우, IME 목록에 내 프로그램이 제대로 뜨고 있는지 궁금하다.

IME 목록에 곧장 나타나지 않는 경우도 종종 있어서 말이다. Windows 8/10에서 특히 그러하다. 이 경우, 입력 언어 제어판을 꺼내서 '한국어 - 추가'를 누르면 거기에 <날개셋> 한글 입력기가 숨어 있곤 한다. 이걸 수동으로 꺼내야 사용 가능하다.

이것은 기술적으로는 입력 언어의 enable/disable 상태 차이 때문에 그렇다. 그런데, 새로 등록된 내 IME를 enable시키려면 이러이러한 함수를 호출하면 된다고 MSDN에서 시키는 대로 다 했는데도 일부 컴퓨터에서는 설치 직후에 <날개셋> 한글 입력기가 곧장 나타나지 않는 듯하다.
현재로서는 이유를 알 길이 없다. 그럴 때는 딱히 해결책이 없으며, 사용자가 수동으로 내 입력기를 추가해 주면 된다고 도움말에다 써 놓기만 했을 뿐이다.

(下에서 계속됨)

Posted by 사무엘

2017/04/08 08:38 2017/04/08 08:38
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1347

1. 경비행기 조종

공군 관계자 인맥 덕분에 작년 여름에 한번 만져 봤던 경비행기 조종 시뮬레이터를 약 반 년 만에 또 조종할 기회가 있었다.
귀한 기회를 제공해 주신 분은 현역 시절에 KF-16 전투기의 베테랑 조종사였고 사업용 비행기 조종 면허까지 갖고 있는 그야말로 넘사벽급의 항공 전문가이다.

비행기 조종 면허는 자가용 < 사업용 < 운송용의 순으로 레벨이 올라간다. 상위로 갈수록 취득을 위해 적립해야 하는 단독 비행 시간 경력도 기하급수로 늘고(수십, 수백, 천수백 시간 순) 되기가 더 어려워진다. 자가용은 경비행기 정도 몰면서 자기 혼자 아니면 가족· 지인 몇 명을 무료로 동승시켜서 비행하는 것까지만 가능하다. 사업은 남 또는 남의 물건을 돈 받고 비행기로 운송하는 게 허용되는 최소한의 등급이다. 굳이 운송이 아니더라도 남에게서 돈 받고 자기 혼자 경비행기로 항공 촬영 같은 걸 해 주는 것도 사업의 영역에 속한다.

운송용 면허까지 따야 항공사에 취업을 할 수 있으며, 수십~수백 명의 승객을 태우고 2명이서 조종하는 거대한 여객기를 조종할 수 있다. 그리고 거기서 경력을 왕창 쌓아서 궁극적으로 여객기 기장이 될 수 있다. 이쪽 바닥의 진입장벽이라는 게 저렇다.

저 조종사 어르신의 경우 애초부터 민항사 진출에 별 관심이 없고 공중전 전투교리만 연구하는 뼛속까지 군대 체질이어서 사업용 수준인 거지, 단순 실력과 짬으로 치자면 마음만 먹으면 운송용 면허도 얼마든지 취득 가능한 상태이시리라 생각된다. 실제로 저분은 조종장교로 들어오는 공군 후배들이 다들 궁극적으로 안정적인 민항사만 생각하지 테스트 파일럿이나 항공 방산업체 등 더 다양한 길을 생각하지 않는 걸 아쉬워하셨다.

지난 여름에 첫 실습을 했을 때는 전혀 모르거나 눈치를 제대로 못 챘다가 이번에 처음으로 알게 된 사실은 다음과 같다. 짧은 시간이었지만 비행기는 단순히 뜨는 게 목적이 아니라 공중에서 자세 제어가 매우 중요하다는 걸 실감한다.

(1) 단발 프로펠러기는 조종간을 놓고 가만히 내버려두면 프로펠러가 돌아가는 방향의 반대 방향으로 기체가 서서히 쏠린다. rolling이니 자동차로 치면 전도· 전복에 해당한다. 자동차가 D 상태에서 가만히 내버려 두면 앞으로 슬금슬금 나아가는 것과 비슷한 현상인가 싶다.
헬리콥터는 기체가 로터의 회전 반대 방향으로 돌아가는 걸 상쇄하려고 아예 꼬리날개를 달아야 할 정도인데, 그런 특성이 고정익 프로펠러기에도 어느 정도 있구나. 쌍발 이상이어서 프로펠러가 좌우로 짝수 개 달린 비행기라면 각 프로펠러는 서로 반대 방향으로 돌게 돼 있지 싶다.

(2) 비행기 조종석엔 페달이 두 개 달렸는데, 자동차처럼 브레이크/액셀은 아니고..;; rudder이라고 불리는 왼쪽/오른쪽 브레이크 겸 방향타이다. 조종간으로만 방향 조절을 하는 게 아니다. 조종간은 좌우로 돌려서 roll(좌우로 갸우뚱)을, 앞뒤로 당기거나 밀어서 pitch(상하로 끄덕끄덕)를 바꾸는데, 방향타로는 본격적으로 yaw(좌우로 설레설레)가 가능하다.

그리고 자동차와는 달리 비행기의 페달은 상부와 하부의 부위 구분도 있다. 공중에서 비행 중일 때와 지상에서 활주 중일 때 방향을 바꾸는 방식이 다르기 때문이다.
비행기의 랜딩기어 바퀴 자체는 구동축도 없고 방향을 전환하는 조향 장치도 없다. 단지 양쪽 추력을 불균일하게 줘서 마치 탱크가 조향하는 것과 비슷한 원리로 조향한다. (무한궤도도 일부 바퀴만 돌리는 건 불가능하니까.)

이륜차는 앞/뒤 브레이크 손잡이가 따로 있는데 따로인데 비행기는 좌/우가 그런 식으로 달린 구조인가 하는 생각이 든다.
그리고 엔진 출력을 낮춰서 속도가 낮아지면 비행기가 확실히 더 조종이 잘 안 되고 내가 마음먹은 것만치 움직이지 않더라. 그런데 착륙을 하려면 그 속도를 낮춰야 한다..;; 그래서 더욱 어려운 절차가 된다.

  • 하강할 때 기수를 낮추는 것과 엔진 출력 줄이는 걸(조종간과 스로틀 레버) 어떻게 조화를 맞출지,
  • 선회를 할 때 조종간과 페달을 어떻게 조화를 맞출지,
  • 언제쯤부터 착륙 준비를 해서 속도와 고도를 조절하는 게 좋은지, 연착륙-경착륙-추락-_-의 경계는 무엇인지.

뭐 이런 것들이 아직 감이 제대로 잡혀 있지 않다.
그래도 자동차 운전 연습을 다시 하는 느낌이고.. 비행기 조종은 재미있었다~!.

2. 콩코드 생각

옛날에 전설의 초음속 여객기 콩코드는 잘 알다시피 매우 작았다. 좌석 배열은 그냥 고속버스와 동일한 줄당 2*2이었으며 한 대에 승객이 100여 명 남짓밖에 못 탔다. 그 뿐만 아니라 안전 문제로 인해 창문도 과장 보태면 그야말로 손바닥만 한 크기여서 밖을 보기가 어려웠다.

이것 말고 콩코드가 오늘날의 양산형 아음속 여객기와 기술적으로 다른 점은 '델타익 + 터보 제트 엔진' 형태라는 것이다(아음속 여객기들은 후퇴익 + 터보 팬). 이것은 민항기보다는 전투기에 더 가까운 면모였다.
큼직한 델타익은 구조적으로 양력을 더 많이 발생시키고 실속의 위험이 적으며 연료를 실을 공간도 더 많이 확보해 준다. 그러나 이런 날개에는 플랩 같은 보조 양력/항력 발생 장치를 장착할 수 없어서 날개 자체의 받음각만으로 항공역학적인 조절을 해야 한다.

이 말인즉슨, 콩코드는 동체의 자세로 큰 받음각을 만들어야 하며, 여느 여객기들보다 더 가파른 각도로 뜨고 내려야 함을 의미한다. 콩코드가 이륙 때 앞의 부리/주둥이를(?) 아래로 숙이는 기능이 있다는 건 유명한 사실인데, 그 기능이 왜 필요한지는 본인도 지금까지 잘 모르고 있었다. 초음속 비행을 위해서 무슨 엔진의 물리적인 특성으로 인해 처음부터 고각으로 가파르게 이륙해야 하나 정도로만 막연히 생각했을 뿐이다.

사용자 삽입 이미지

콩코드는 뾰족한 부리를 보면 학처럼 생기긴 했는데, 동체와 랜딩기어 사이의 다리(?)도 굉장히 높고 길쭉해서 마치 학의 다리를 연상시킨다. 이 역시 이착륙 때 기수를 드는 각도가 높다는 점을 감안하여 그렇게 설계된 거지 싶다. 그렇게 동체를 높게 유지하지 않으면 기수가 앞부분부터 확 들릴 때 동체 뒷부분이 땅과 접촉하여 긁히는 테일 스트라이크 사고가 날 테니까 말이다.

그 반면, 비행기들 중에서도 군용 수송기는 콩코드와는 디자인 형태가 정반대이다. 랜딩기어 다리가 극단적으로 짧으며, 동체가 워낙 낮아서 날개가 동체의 제일 높은 부위에 달려 있을 정도이다(날개 밑에 달린 엔진이 바닥을 긁지 않게 하려고).
걔네들은 별도의 탑승교 없이 험지에서 화물 적재를 용이하게 하기 위해서 바닥을 의도적으로 낮게 만든 것이다. 버스로 치면 저상 버스인 셈이다.

비행기가 이륙할 때뿐만 아니라 착륙할 때도 뒷부분부터 앞부분의 순으로 땅에 닿는 이유를 그저 피상적으로가 아니라 정말 그럴 수밖에 없다는 수준으로 완전히 감을 자고 이해하고 있다면 항공역학에 대한 감이 상당히 잡혔다고 볼 수 있겠다. 난 솔직히 아직 좀 알쏭달쏭함..;  추락 사고가 날 때는 비행기가 앞부분부터 먼저 땅에 닿곤 한다.

그나저나, 과거에 미국 팬암 항공사에서 콩코드를 운용한 적이 있었나 하는 착각이 들려 한다. 걔네들이 왕년에 아무리 잘나갔어도 그 정도 돈지랄을 하지는 않았으며, 콩코드는 공동 개발사인 영국과 프랑스에서만 대서양 건너 미국을 왕래하는 항공편에서 운용했다. 태평양을 건너기에는 항속 거리가 부족했으며(안습 연비..), 미국 같은 대륙의 국내선으로 굴리기에는 내륙에서의 초음속 비행이 허용되지 않아서 여러 모로 무리였다(지상에까지 전해지는 소닉 붐 피해).

하긴 2001 스페이스 오디세이 영화에서는 팬암에서 우주왕복선까지 날리는 장면이 나오긴 한다만 그건 SF 작가의 상상에만 그치고 실현되지 못했다. 팬암은 망했고 우주왕복선도 다 퇴역했으니...
오리지널 팬암이 망한 것과 구소련이 망한 것, 그리고 우리나라가 UN에 정식 가입한 때는 모두 1991년으로 비슷한 시기이다.

3. 보잉 시리즈

기술이 발달하면서 비행기는 20세기 중반이 채 되기 전에 복엽기에서 단엽기로 바뀌었으며, 어지간한 대형 여객기라 해도 엔진이 4발기가 아닌 2발기가 대세가 됐다. 자동차로 치면 요즘 DOHC 4기통 2000cc급 차가 옛날의 SOHC 6기통 3000cc급 차량보다 더 뛰어난 출력을 내고 연비는 더 좋은 것과 비슷한 급의 발전이다.

보잉 707은 4발 터보 제트 여객기였다. 굉장한 옛날 비행기인 관계로, 엔진이 4개나 달렸지만 여전히 협동체였다. 단지 좌석 배열을 2*2에서 3*3으로 키운 것에 의미가 있다.
727은 보잉이 만들었던 최초이자 최후의 유일한 3발기이다. 하지만 가성비가 떨어지고 단점이 많다는 점으로 인해 단종됐다.
737은 오늘날까지 보잉이 생산하는 여객기 중 덩치가 가장 작은 놈이지만 가성비가 좋아서 전세계의 저가 항공사들로부터 매우 큰 사랑을 받고 있다. 엄청 많이 팔렸다.
747은 1970년대에 개발된 최초의 대형 광동체 여객기이며 707을 제외하면 7xx 시리즈들 중 유일한 4발기이다. 일명 '점보'라고도 불리며 보잉의 상징이라 해도 과언이 아니다. A380이 등장하기 전까지 세계에서 가장 큰 여객기였다. 2층에도 일부 객실이 있다(A380은 2층도 일부를 넘어 1층과 거의 대등한 규모의 객실 있음)

757은 보잉에서 개발한 협동체 여객기 중에서 가장 큰 놈이다.
767은 보잉에서 개발한 광동체 여객기 중에서 가장 작은 놈이다. 하지만 757과 767은 어중간한 포지션으로 인해 존재감이 상대적으로 덜하며 우리나라에서는 거의 볼 수 없다.
777이 그 뒤로 중대형 중장거리 여객기로서 초대박을 쳤다. 2발기이니 수송 능력이 747과 동급일 수는 없지만, 그래도 엄연한 광동체에다 최신 기술이 적용되어 2엔진만으로 4엔진에 준하는 성능과 항속거리를 달성했으며, 747보다 경제성이 훨씬 더 뛰어났기 때문이다.
787은 777과 비슷한 체급을 계승하는 후속 여객기로, 보잉에서 개발 중이라고 한다.

보잉 7xx의 역사가 컴퓨터로 치면 마치 80x86 이런 CPU의 역사를 보는 것 같다.
80186이 유독 위상이 특이하고 존재감이 없는 것처럼(애초에 PC용이 아니었음), 보잉 717도 위상이 특이하고 존재감이 없는 듣보잡이다. 717은 보잉이 예전에 인수한 맥도넬 더글러스 사에서 개발한 항공기를 그것도 1990년대 말에 잠깐 끄집어내서 생산하다가 말았던 소형 쌍발 여객기에 붙여진 모델명이다.

Posted by 사무엘

2017/04/05 08:36 2017/04/05 08:36
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1345

디젤 기관차 이야기

1. EMD

컴퓨터 CPU의 제조사로는 인텔과 AMD가 유명하고, 민항기의 제조사로는 보잉과 에어버스가 유명하다. 자동차야 미국, 일본, 독일 등 유구한 역사와 전통을 자랑하는 명가들이 즐비하다.
미국은 내수만으로 먹고 사는 데 지장 없고 땅과 도로도 넓은 풍족한 나라이다 보니, 만드는 자동차들의 스타일이 근본적으로 우리나라 사정과 잘 안 맞는 경향이 있다. 그에 반해 전범 국가인 독일과 일본이 보편적인 가성비가 뛰어난 자동차를 잘 만드는 편이다(서민들이 범접할 수 없는 슈퍼카 말고). 하긴, 국가 차원에서 그런 기술과 노하우가 있으니 옛날에 침략 전쟁도 벌이고 사고를 칠 수 있었을 것이다.

그럼 이쯤에서 의문이 든다. 배는 반쯤 건물을 짓는 것과 비슷하고 양산형 기성품이 존재하지 않으니 그렇다 치고, 자동차나 컴퓨터나 비행기는 제끼고 철도 차량 중에 명가가 없는지 말이다.
일단 우리나라에 굴러다니는 디젤 기관차들은 다들 미국의 EMD (Electro-Motive Diesel)라는 회사에서 개발한 기관차를 수입하거나 국내에서 면허 생산한 것들이다. 얘가 기관차계의 보잉 내지 인텔/AMD 같은 제조사인 셈이다.

우리나라는 6· 25 전쟁 중에 겨우 800마력짜리 기관차를 몇 대 원조받은 것으로 증기가 아닌 차세대 디젤 기관차 시대가 시작되었다(2000호대). 그러다가 지금은 모델명 GT26CW인 7100~7500대의 그 특대형 기관차가 기관차-객차형 열차의 얼굴마담이 됐다. 대형 점보 여객기의 상징이 보잉 747이듯이 말이다. 그나마 화물용으로 추가 도입된 7600호대 기관차는 GE(제너럴 일렉트릭) 사가 원조이다.
디젤 기관차인데 회사명에 E자가 들어있는 이유는 대형 고출력 기관차들은 엔진을 바퀴에다 직통으로 연결하는 형태가 아니기 때문이다. 엔진을 돌려서 전기를 생산한 뒤 전동기의 힘으로 달린다. 입환기 수준의 작은 기관차 또는 디젤 동차들이나 순수 디젤(+ 특히 기어 변속)이지 일정 규모 이상부터는 동력 전환은 전기 아니면 유압 변속기로 가야 한다.

이거 무슨 순수 디젤과 디젤-전기의 관계를 컴퓨터 프로그래밍에다 비유하면 C와 C++의 관계와도 비슷해 보인다. C만으로는 단순 알고리즘 절차의 코딩 이상으로 거대한 프로그램의 짜임새를 조직적으로 기술하는 데 한계가 있듯, 대형 기관차를 만들 때는 순수 디젤보다는 디젤-전기가 더 효율적이니 말이다.
요즘은 자그마한 오토바이도 다 4행정으로 가는 추세인데 디젤 기관차는 의외로 2행정 엔진을 쓴다고 한다. 다만, 휘발유 엔진의 2행정 에디션과 디젤 엔진의 2행정 에디션은 서로 같은 성격이 아니라고 어디선가 봤었다.

디젤 기관차를 제조하는 GE는 명백히 미국 기업이다. 일본은 적당히 긴 국토에 신칸센을 중심으로 고속 여객 전동차가 왕창 발달해 있지만 기존선은 협궤라는 고질적인 한계가 있어서 화물 운송은 안습한 지경이다.
미국은 반대로 엄청 큰 땅에 자동차와 비행기가 워낙 발달하다 보니 여객 철도는 망했지만, 화물이 그야말로 본좌 천국이다. 디젤 기관차를 중련 편성해서 수 km에 달하는 엄청난 길이의 화물 열차를 굴리는 기술과 노하우가 있으니 디젤 기관차로 먹고 사는 듯하다. 전기 기관차 쪽은 독일 지멘스가 본좌이다.

GE를 전동차 제조사인 GEC(특히 쵸퍼 제어 방식)와 혼동하지는 않기 바란다. GEC(제너럴 일렉트릭 컴퍼니)는 영국 소재의 회사이고 지금은 존재하지 않는다.
옛날에 현대 자동차에서 면허 생산했던 그라나다도 제조사가 '포드'인데, 미국 법인이 아니라 유럽 법인 것이라는 미묘한 차이가 있다.

2. 7000호대 봉고 기관차

국내에 도입된 EMD 기관차들은 덩치와 개발 시기는 다를지언정 모양이 다 그 나물에 그 밥이고 큰 차이가 안 나는 편인데.. 유독 튀는 모양의 기관차가 하나 존재한 적이 있었다.
바로 GT26CW의 7100~7500대의 바로 앞 번호인 7000호대 디젤 기관차이다. 제조사의 모델명은 FT36CW-2.
얘는 1986년, 아시안 게임과 올림픽을 앞두고 유선형 새마을호를 견인하기 위한 여객 전용 기관차로 도입되었다. 새마을호 유압식 전후동력형 디젤 동차, 일명 DHC보다 시기적으로 1년 이르다.

이 기관차는 앞부분이 봉고차처럼 생겼다고 해서 일명 봉고 기관차라고 불렸다. 신세대 차덕들은 봉고라고 하면 승합차보다 트럭이 더 먼저 떠오를 것 같긴 하다만.
단, 후방 시야가 전혀 확보되지 않아서 후진이 매우 난감하며 장폐단 운전을 할 수 없는 건 요즘 기관차의 디자인 추세와 맞지 않은 설계 미스로 보인다.

얘는 EMD로부터 엔진만 수입해서 나머지는 우리나라가 생산한 건지, 아니면 EMD에다 발주를 해서 역시 국내 면허 생산인 건지 관계가 어떻게 되나 잘 모르겠다. 그 당시 국내에서 이 기관차를 생산한 업체는 '현대 정공'(중공업)이었다.
1년 뒤에 등장한 새마을호 DHC 동차를 최초로 제조· 납품한 업체는 경쟁사인 대우 중공업이니 이 역시 아주 좋은 대조를 이룬다.

우등형 디젤 동차 DEC (1980)도 처음에는 새마을호로 시작했는데 그 뒤로 1986년에는 창문이 동그란 테두리로 바뀐 새마을호 객차와 더불어 7000호대 봉고 기관차가 도입되었고, 1987년에는 DHC도 도입되었다는 게 흥미롭다. 그렇게 새마을호라는 차급이 조금씩 완성되어 갔다.
이 기관차는 처음에는 고급 열차의 견인을 염두에 두고 처음엔 성능이 좋으면서도 상대적으로 조용하고 승차감이 좋다는 호평을 받았다. 여객용답게 시속 150km 고속 주행이 가능했고, 얼마 전 1985년 11월에 기존 타 기관차를 기준으로 개정된 새마을호의 서울-부산 4시간 10분 스케줄을 맞추는 데도 지장이 없었다. 심지어 봉고 기관차는 HEP(객차 전원 공급 장치)도 자체 내장하여 발전차를 따로 편성할 필요조차도 없게 하는 것이었다고 한다.

허나, 평범한 미국 원조 스타일이 아니라 우리식으로 로컬라이즈한 기관차여서 그런지, 얘는 시간이 흐를수록 기관사와 승무원을 골탕먹이는 하자· 문제를 굉장히 많이 일으켰다고 한다. HEP도 가성비가 안 맞아서 이내 사용하지 않게 됐다(전기 생산을 위해 정차 중에도 발생하는 엔진 소음이 너무 커서..). 거기에다 GT26CW 기관차와 DHC 동차가 계속 도입되면서 봉고 기관차만의 위상과 존재 가치와 의의도 갈수록 하락했다.

이런 이유로 인해 이 기관차는 새마을호보다 등급이 낮은 열차의 운행에도 투입되었고 내구연한 25년이 경과한 2011~2012년에 15량 전량이 칼같이 퇴역하여 이제 현업에서 볼 수 없어졌다.
철도사를 아는 사람이라면 봉고 기관차의 퇴역은, 곧이어 도입된 새마을호 DHC의 퇴역의 신호탄이기도 하다는 것을 금세 눈치 챌 것이다. DHC는 2013년 1월 초에 전량 현업에서 은퇴했다. 이로써 새마을호를 위해 도입되어서 한 시대를 풍미했던 기관차와 동차들이 모두 역사 속으로 사라졌다.

지금이야 기관차나 전동차나 다 무슨 네덜란드 국기처럼 위에서 아래로 빨강-하양-파랑 순의 자석 도색이지만 옛날에는 기관차가 파랑-하양 도색 내지 호랑이 도색도 하고 있었다.
봉고 기관차의 경우 처음 운행을 시작했을 때는 파랑 도색이었으며, 한때는 새마을호의 대표색이 blue이기까지 하던 시절이 있었다. DHC는 초기 도색에 빨강도 있었지만 저 기관차는 빨강이 전혀 없었다.

사용자 삽입 이미지

사용자 삽입 이미지사용자 삽입 이미지

한편, 호랑이 도색은 7x00은 아니고 5~6000호대 기관차에서 쓰였던 것 같다.
7000호대 기관차는 1986년에 첫 도입된 반면, 7100~7500호대 기관차는 그보다 훨씬 전 1975년부터 도입돼 왔다. 그런데 번호가 왜 지금 같은 순서로 부여되었는지는 개인적으로 잘 모르겠다.

사용자 삽입 이미지사용자 삽입 이미지
우리나라의 경우, 초창기의 2000호대부터 모든 디젤 기관차는 디젤-전기 방식이었다고 한다. 그리고 2017년 현재 현업에서 운용 중인 기관차는 7100~7500, 7600호대, 그리고 입환용 4400호대만이 남아 있다.

Posted by 사무엘

2017/04/02 08:32 2017/04/02 08:32
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1346


블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2017/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:
3935558
Today:
4149
Yesterday:
2482