« Previous : 1 : ... 75 : 76 : 77 : 78 : 79 : 80 : 81 : 82 : 83 : ... 221 : Next »

1. 장수

작년에는 백 선엽 예비역 대장이 무려 99세 생일을 맞이했다. (☞ 관련 기사)
1920년생이라니, 20세기 우리나라 근현대사를 모조리 겪은 거장이요, 국내 톱급의 장수 고령자이지 않을까.. 특히 시골 깡촌 장수촌에서 평생 농사만 지은 노인 할머니 말고, 적극적으로 사회 활동을 한 남성 유명인사 중에서는 말이다.

사용자 삽입 이미지

나이가 60세가 아니요, 결혼한 지 60주년도 아니고, 대장 달고 예편한(1960) 지가 60년이 돼 가는.. 거의 미친 연배와 경력의 소유자이다. 게다가 부인도 아직 살아 있는 모양이다~!
참고로 송 해 씨가 1927년생, 엘리자베스 2세 여왕이 1926년생이다.

그럼에도 불구하고 군 출신이어서 몸 관리 잘해서 그런지 늙어서까지 쌩쌩 팔팔하고 건강한 걸 보면 굉장히 부럽다.
전사자를 끝까지 찾아내고 노병을 깍듯이 예우하는 미군도 부럽고.
사실, 저 사람은 한국보다도 미국에서 훨씬 더 알아주고 존경하는 것으로도 유명하다. 역대 주한미군 사령관이 한국에 취임하면 백 장군을 찾아 깍듯하게 ‘전입신고’를 하는 게 관례일 정도이니..

2. 다산

이 끔찍한 "먹고 살기 힘들다" 저출산 고령화 추세 속에서 우리나라에 현재 자녀를 제일 많이 낳은 집안은.. 구미에 살면서 무려 13명의 자녀를 둔 김 석태· 엄 계숙 부부이다. 이미 여러 번 매스컴 탔다. 이분에 대해서 내가 지금까지 이 블로그에서 한 번도 언급한 적이 없었구나..!

사용자 삽입 이미지

2012년 근황
2016년 근황

목사 집안인 것, 그리고 자녀들 이름을 모두 순우리말로 지은 것으로도 잘 알려져 있다. 그래서 셋째인 '김 다드림' 군은 지난 2010년에 순우리말 운동 단체로부터 표창을 받기도 했다.

사용자 삽입 이미지

여러 모로 정말 어마어마하게 애국을 몸으로 실천하고 있는 셈인데.. 2016년 근황에 따르면 장녀는 이미 대기업에 취업했고 서열 끄트머리뻘인 애들은 이제 고등학생이라고 한다.
모든 아이들이 대학에 가지는 못할 것이다. 일부는 곧장 취업하거나 방통대 독학사나 사관학교 같은 저렴한 방법으로 대졸 학력을 따야 할 것이다.

예외가 전혀 없다고는 말할 수 없겠지만, 집안이 경제적으로 넉넉하지 않은 사람들이 아이를 많이 낳는 경향이 있다. 가령, 안 철수 집안은 그야말로 부부가 다함께 돈을 빗자루로 긁어모은 수준의 억만장자이지만, 서로 자기 전문직 종사하느라 바빠서 자녀는 그냥 외동딸 하나가 전부이지 않던가..;;

자녀 계획이야 그건 하나님도 존중해 줄 정도로 전적으로 각 부부들의 재량 영역이다. 그런데 서로 중요하게 생각하는 가치관이 이 정도로 극과 극으로 차이가 나니 자녀 계획도 이렇게까지 달라질 수 있음이 느껴진다.
성경적인 관점에서 보자면.. 차와 돈과 집은 죽은 뒤에 절대로 못 들고 올라가지만, 자녀만은 그 뒤에도 영원히 같이 보며 지낼 수 있다. 물론 제대로 잘 키워서 구원받았거나, 아니면 차라리 아주 어렸을 때 병이나 사고로 잃은 자녀에 한해서 말이다.

3. 만학

지역 언론에는 잊을 법하면 한 번씩 시골 만학도 노인 얘기가 매스컴을 타는 것 같다.
그냥 4, 50대 나이에 방통대나 대학원에 다시 들어오는 정도로는 희소성(?)이 부족하다. 대학 교수나 의사· 변호사가 본업 은퇴 후에 또 다른 분야를 공부하고 싶어서 늘그막에 방통대 같은 다른 학교에 입학하는 경우도 있는데.. 그건 그래도 고등교육 등급의 만학이고 성격이 다르다.

아예 초등 교육 수준에서.. 한글도 제대로 못 깨우친 채 시골에서 평생을 보냈다가 이제야 초등학교나 중학교에 새로 또는 다시 특별전형으로 입학하는 할머니들 소식이 종종 보도되곤 한다.

2007년 1월자, 전북 김제
2018년 11월자, 강원 평창

세계 톱클래스의 교육열을 자랑하고 무려 중학교까지 의무 교육이 된 지가 10년이 넘은 이 대한민국의 한구석에, 아직도 이런 분들이 있다는 것이 실감이 잘 안 간다. 세월이 흐르고 일제 시대나 6· 25 전쟁을 직접 겪은 사람들이 죽고 세대가 바뀌고 나면, 이 정도로 극단적인 만학도는 아마 찾을 수 없어지지 않을까 싶다.

하긴, 일제 시대에만 해도 의무 교육이란 게 없었다. 초등학교(그 시절 용어로는 소학교)도 시험 치고 돈 내고 들어가고, 심하게 사고 치면 얼마든지 짤릴 수 있었다. 특히 1940년대에 창씨개명 같은 거 거부하면 당연히 짤렸다. 그러니 북괴 김 일성의 최종 학력인 중졸도 그때는 아무나 보유 가능한 학력이 아니었다.

대한민국이 건국되자마자 그 가난한 여건에서 국가 단위로 교과서를 대량으로 찍어내고 초등학교 의무 교육을 시행하려 한 건 굉장한 재력이 필요한 과업이었으며, 보통일이 아니었다. 문맹이란 게 얼마나 서러운 건지는.. 당사자가 되어 겪어 보지 않고서는 아마 실감하기 어려울 것이다.

이걸 시행했던 남쪽의 수장 할배는 뭐.. 차원이 다르다. 프린스턴 박사는 지금의 잣대로도 어마어마한 학벌 학력인데, 그걸 100년도 더 전에 배 타고 미국 가서 영어로 논문 쓰고 취득했으니 가히 넘사벽이라고 봐야 할 것이다. 할배나, 할배의 박사 지도교수(우드로 윌슨)나 모두 자기 나라의 대통령을 역임했으며, 자기 나라의 역대 대통령들 중 명예박사가 아닌 진짜 박사 학위를 소지한 유일한 인물이라는 공통점이 있다!

Posted by 사무엘

2019/01/07 08:35 2019/01/07 08:35
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1573

새해 해맞이

2019년이 시작됐다. 나도 나이가 30대 중반을 넘어 벌써 후반으로 들어섰다니 섬뜩하다.;;
부모님 세대는 이미 지하철의 무료 탑승이 가능한 지경이 됐으며, 삼촌뻘 연배도 이미 환갑에 근접하거나 진입했다. 언제까지나 청춘일 것 같던 교회의 귀여운 꼬꼬마들마저 20대 중후반이요, 일부는 한국 나이 기준 30대로 진입했다.
이런 식으로 세대가 슬슬 바뀌어 가는가 보다.

이 와중에 본인의 근황을 좀 얘기하자면..
가장 먼저 날개셋 한글 입력기는 지난달의 9.61 이후로 더 고친 것이 없고 단기간에 뭘 만들 게 떠오르지는 않은 상태이다. 한글 입력 핵심 기능이 9.5에서 끝났고 추가적인 UI 개발도 9.61에서 진짜로 완료된 듯하다. 아아..

18년 동안 만들어 온 프로그램을 이렇게 마무리 짓고 고정시킨다니 기분이 묘하다. 할 게 없어도 습관적으로 Visual Studio를 띄워서 날개셋 소스 코드를 이것저것 들여다보게 되는데.. 내가 이 짬으로 언제까지나 이것만 붙들고 있을 수는 없다는 게 고민거리이다.

졸업을 위해서 학술지 논문을 오랫동안 질질 끌다가 드디어 하나 더 투고했다(심사 통과와 게재까지는 또..). 그리고 최종 테크인 학위논문을 쓰기 위해서는 또 비밀 실험을 진행해야 하는데 올해는 제발 다 잘 마무리 됐으면 좋겠다. 심사 통과까지는 가능하지도 않고, 최소한 심사 받을 수 있는 완성도의 논문이라도 나왔으면 좋겠다. ㅠㅠ

학기 중에는 토요일에 교회 신학원 강의를 들어 왔는데, 지금은 방학 기간이니 신학원 수업이 없다. 그래서 토요일 낮에는 서울 역이나 시청 근처로 가서 태극기 집회도 종종 구경하곤 했다. 어르신들처럼 하루 종일 자리를 지키고 앉아 있지는 못하지만 말이다.

뭐 그건 그렇고, 본인은 2019년의 첫 날은 아차산 중턱과 정상에서 맞이했다. 새벽 산행을 할 바에야 전날 밤에 미리 산을 올랐다. 내가 요즘 안 그래도 등산과 야영에 재미를 붙였으니까.
고구려 정자와 해맞이 광장을 지나, 하늘과 한강이 보이는 어느 능선에서 텐트 치고 잤다. 사실, 산을 오르는 동안 나처럼 산에서 밤을 보낸 다른 등산객의 텐트도 두세 개 정도 봤다.

산을 오르는 동안은 더워서 땀이 날 정도였지만, 텐트 안에서 몇 시간 누워 보니 금세 추위가 느껴졌다. 날씨가 예전보다 덜 추운 듯하고 등산을 감안하여 짐 무게도 줄여야 하니, 사실 이번엔 두꺼운 침낭을 안 들고 갔다. 이 때문에 밤을 좀 춥게 보내게 됐다.

제일 큰 애로사항은 발이었다. 이러다가 발가락이 동상 걸려서 짤라내는 불상사라도 생길 것 같았다.
새벽에 깬 뒤에는 부득이하게 텐트를 걷고 산속으로 더 들어가서 결국 정상까지 갔다. 이렇게 움직이니까 몸이 따뜻해지고 발가락도 거짓말처럼 괜찮아졌다. 하지만 정상에서 1시간이 넘게 가만히 서 있자, 발은 다시 시리기 시작했다.;; 자는 동안 체온이 내려가는 것은 주지의 사실이지만, 이때는 자지 않고 깨 있는 것만으로도 열 공급이 충분치 못했는가 보다.

새벽 5시 반쯤부터 사람들이 위치 좋은 곳에 옹기종기 모이기 시작했으며, 7시가 넘어가자 인파는 수십에서 백수십, 수백 수준으로 급격히 불어났다. 중· 장년 아재뿐만 아니라 앳된 고등학생, 대학생, 젊은 커플들도 적지 않게 보였다.
그리고 하늘도 조금씩 밝아졌다. 7시 10분쯤부터는 폰 카메라가 풍경 사진을 '자동' 모드로 찍을 때 긴 노출과 플래시를 동원하지 않고 직통으로 찍기 시작했다.

그 뒤에도 거의 2, 30분 동안, 하늘은 갈수록 희어지고 밝아졌으며 달도 어느 샌가 쏙 사라졌다. 하지만 수평선에는 붉은 노을만 보이지 별다른 변화가 없었다.

사용자 삽입 이미지

7시 47분도 지났는데? 혹시 해가 떴는데 구름에 완전히 가려져 버린 게 아닌가 생각이 들던 찰나..

사용자 삽입 이미지

7시 53분에 드디어 건너편 산 위로 맹렬한 빛을 뿜는 금색 점이 돌출돼 보이기 시작했다. 얼마 못 가 구름에 가려지긴 했지만 해가 뜨는 게 분명히 관측되었다. 단순 노을과는 확연히 달랐다. 내 뒤로 수백 명에 달하는 인파들도 일제히 환호성을 지르며 사진을 찍어댔다.

이렇게 지구의 자전을 간접적으로 체험하면서 개인적으로 떠오른 문구는..

  • "어둔 밤 지나서 동 튼다, 환한 빛 보아라 저 빛"
  • "해야 솟아라, 해야 솟아라, 말갛게 씻은 얼굴 고운 해야 솟아라. 산 너머 산 너머서 어둠을 살라 먹고, 이글이글 애띤 얼굴 고운 해야 솟아라."

정도였다. 작가부터가 자연 현상을 실제로 봤으니까 감격해서 저런 가사와 시조를 쓰지 않았겠는가?
물론 난 예수 믿는 사람으로서 겔 8:16 같은 짓은 하지 않았다.;;

집 뒷산 수준 말고 제법 규모를 갖춘 산중 야영은 2018년 가을의 남양주 갑산 이후로 이번이 두 번째였다.
텐트, 돗자리, 침구류 같은 짐이 많은데 또 주차 문제도 생각해야 하니.. 산에 갈 때는 그냥 택시를 탔다. 하산할 때야 사람들 뒤를 졸졸 따라가기만 해도 자동으로 광장동과 광나루 역 방면으로 가게 되니 아무 걱정할 것 없었다.

본인은 야영 중에 일체의 난방을 사용하지 않는다. 화재나 일산화탄소 중독 같은 안전 문제는 부가적인 이유이고, 근본적으로는 추위는 오로지 체온의 보온만으로 얼마든지 극복 가능하다는 것이 본인의 지론이기 때문이다. 본인은 한겨울에 밖에서 침낭과 이불만으로 수십 번을 외박을 했지만 입 돌아가지도(..;;) 않고, 감기 같은 것도 전혀 안 걸리고 지금까지 잘 지내 왔다.

일부러 밖에 나가기까지 했는데 별도의 연료를 때는 것은.. 산을 그냥 헬리콥터로 오르는 것과 같으며 손발 무술 대신 그냥 총을 쓰는 것과 같고, 그림을 그리기 귀찮아서 그냥 사진을 찍는 것과 같다. 아무 의미가 없다.

아무튼, 이 블로그를 구독해 주시는 분들께 감사드리며, 2019년 새해 복 많이 받으시기 바란다.
올해는 우리나라의 역사를 왜곡하고 체제를 위협하고, 번영과 풍요를 갉아먹고 적에게 퍼주는 악의 무리들이 자기 꾀에 걸려 넘어지고 망하고 나라가 조금이라도 성장과 발전과 성숙을 향해 나아갔으면 좋겠다.

Posted by 사무엘

2019/01/04 08:35 2019/01/04 08:35
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1572

1. 트럭의 축/캡 사양

트럭 중에서 작은 축에 드는 포터/봉고 급의 1톤 트럭에는 나름 바리에이션이 있다.

  • 초장축: 엔진의 성능과 적재중량 한계는 동일하게 유지하면서 짐받이의 길이를 약간 더 길게 한다. 고급 승용차에 단순 세단 말고 리무진이 있듯이 말이다. 초장축은 짐받이에 화물 고정용 끈을 묶는 갈고리가 하나 더 달려 있다. (더 길기 때문)
  • 슈퍼캡: 운전석이 있는 좌석 뒤에 2~30cm남짓한 여유 공간을 추가한다. 그래서 좌석을 뒤로 젖히거나 좌석 뒤로 사람 한 명 정도 누울 수 있게 한다. 슈퍼캡 사양을 선택하면 이 공간만치 짐받이의 길이가 약간 짧아진다. 초장축+슈퍼캡과 장축+일반캡의 짐받이 길이가 서로 비슷할 정도이다.

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

그러니 장축/초장축, 그리고 일반캡/슈퍼캡/더블캡(아예 뒷좌석까지 있는) 이렇게 2*3 = 6가지 조합이 가능하다. 좌석 뒤에 있는 보조 공간이 선택사양 옵션이라는 것을 처음 알게 됐다.

트럭은 좌석의 바로 아래에 엔진이 있는 것, 운전석과 조수석의 사이 중앙에도 좌석이 있는 것이 신기하다. 안 그래도 생계형 소형 트럭인데 운전석 뒤에 그 정도 보조 공간도 없으면 너무 비좁고 불편할 것 같다. 거기에다 짐 실을 공간이 조금이라도 더 필요하기 때문에 현실에서는 슈퍼캡+초장축 옵션이 모두 선호도가 높다고 한다.
경차인 라보에는 슈퍼캡이나 초장축 같은 사양은 물론 존재하지 않는다.

2. 엔진 오일

엔진 오일은 자동차에다 주입하거나 장착하는 여러 물건· 물질 중에.. 연료처럼 직접 소모되어 줄어들고 없어지지는 않음에도 불구하고, 가장 자주 교환해 줘야 하는 소모품이다.
튀김용 기름을 생각하면 된다. 닭을 수십 번 튀겨도 기름이 양 자체가 눈에 띄게 줄어들지는 않는다. 단지 시꺼멓게 탁해지고 변질될 뿐이지.

엔진 오일이라는 게 왜 필요한지를 이해하려면 자동차가 앞으로 나아가는 원리가 무엇인지, 엔진 실린더 내부에서 무슨 일이 벌어지는지를 생각해 볼 필요가 있다.
거기는 1초에도 수십 번씩 뜨거운 폭발과 피스톤 왕복 운동이 일어난다. 힘이 새어 나가지 않으려면 피스톤과 실린더 벽 사이가 밀폐가 잘 돼 있으면서도, 한편으로 마찰 없이 매끄럽게 운동이 돼야 한다.

이런 곳에서 엔진 오일은 단순히 자전거 체인에다 치는 구리스와는 차원이 다른 더 중요하고 결정적인 역할을 한다. 엔진 오일이 없으면 엔진은 얼마 못 가 탈 나고 망가진다. 변질된 오일은 오일이 아예 없는 것보다는 낫겠지만 윤활, 밀폐, 정화 같은 자기 역할을 제대로 못 하고 엔진의 출력과 연비를 깎아 먹는다.

모든 내연 기관 왕복 엔진에는 엔진 오일이 필요하다. 적절한 교환 주기에 대해서는 자동차 제조사나 정비사, 실제 운전자들 간에 논란의 여지가 있지만.. 그래도 주행 조건이 어떤지에 따라 5000~15000km, 또는 1년을 전후한 주기로는 교환하는 게 좋을 듯하다. 오랜만에 교환하고 나면 엔진의 상태가 달라진 게 곧장 티가 날 정도이다.
전기차에는 엔진 오일 같은 건 없어도 된다.

3. 변속기 오일

엔진 오일에 비해 변속기 오일은 사람들에게 존재감이 훨씬 덜하다. 그리고 잘 알다시피 수동과 자동은 변속기 오일의 용도가 서로 매우 다르다.
내 차만 해도 취급설명서를 보면, 변속기 오일은 그냥 씨크하게 무점검 무교환이라고 쓰여 있다. 하지만 현업 정비사들의 얘기는 다른 듯하다. 출발 직후의 가속 중에 변속 충격이 예전에 비해 커진 게 느껴지는데, 변속기 오일을 교체하면 변속 충격이 완화되려나 궁금하다.

사용자 삽입 이미지

변속기 오일은 다른 부류의 오일과 외관상으로 구분되라고 제조사에서 빨간 염료를 섞는 편이라고 한다.

사용자 삽입 이미지

지난 2015년 여름에 현대차에서는 내수용과 수출용의 품질 차이 논란을 불식시켜 주겠다며 민간의 자동차 전문가가 임의로 고른 자기네 내수차와 수출차를 대상으로 시속 56km 정면 충돌 테스트를 공개적으로 해 보였다. (☞ 관련 링크) 차종은 LF쏘나타이고.. 양 차가 제각각 56km/h로 달렸기 때문에 실제 충돌 속도는 그 두 배인 112km/h나 마찬가지였다.

사용자 삽입 이미지

그때 충돌 잔해에서는 시뻘건 액체가 줄줄 새어 나와서 무슨 핏자국처럼 보였는데..
그게 바로 변속기 오일이다. 바닥 주변이 다 붉게 물들 정도이니 주입량도 결코 적지 않다는 걸 알 수 있다.

그런데 차가 저것 이상으로 박살 난 다른 교통사고 현장 모습들을 인터넷에서 검색해 보면, 내부의 액체가 유출되었다고 해서 저렇게 시뻘건 액체가 줄줄 흘러나온 것은 보기가 쉽지 않다. 그 이유는 다른 것도 있겠지만, 그 붉은 염료가 변속기 오일의 품질 자체와는 별개로 오래 지속되지 않고 변색되기 때문으로 보인다. 저 자동차 설명서에서도 언급되어 있듯이 말이다.

현대차의 충돌 테스트의 경우, 공장에서 갓 생산된 따끈한 새 차를 동원했기 때문에 붉은색을 선명하게 확인할 수 있다. 그렇게 생각하면 논리가 아귀가 맞는다.

4. 타이어 펑크

자전거만 해도 타이어가 터지면 타이어가 완전히 다른 물질로 바뀌기라도 한 듯이 질질 끌리며, 페달을 밟아도 도무지 나아가질 않는다. 자동차는 주행 성능을 넘어 핸들이 한쪽으로 쏠리는 등 조향· 제동과 관련된 더 위험한 문제가 이어진다. 그러니 타이어가 터진 상태로는 제대로 주행할 수 없다. 타이어 펑크는 배터리 방전, 문 잠김과 더불어 긴급출동 최다 호출 사유에 들지 싶다.

그런데 요즘 운전자들 중에 짹 같은 전통적인 공구를 꺼내서 차를 들어올리고 휠 너트를 풀고 조여서 타이어를 직접 교환할 줄 아는 사람이 얼마나 될까? 정비소에서 타이어를 교환하고도 정비 불량 때문에 주행 중에 타이어가 빠지는 사고가 나는 판에 말이다. 다들 그냥 긴급출동을 부르고 만다. 핸드폰이 없던 시절에 자동차 운전을 참 어떻게 했을까 싶다.

20세기 초중반의 엄청 옛날 자동차들은 옆면이나 뒷면에 스페어 타이어를 노출하고 다니는 게 유행이었던 것 같으나 요즘 차들은 그렇지 않다. 승용차들은 트렁크에, 버스나 트럭은 하부에 스페어 타이어를 장착하는 게 일반적이다.

사용자 삽입 이미지

다만, 요즘은 원가 절감과 경량화를 이유로 승용차에는 스페어 타이어가 달리지 않는 게 추세이다. 어차피 다 긴급출동을 부르니까.. 그리고 타이어를 통째로 교환하기보다는 어지간해서는 그냥 지렁이 땜빵만 하고 말기 때문이다.

땅과 접촉하는 정면 부위에 압정이나 못이 좁게 박힌 것 정도는 땜빵으로 대처가 가능하지만, 누가 악질적으로 타이어 측면을 칼로 확 긋고 찢는 테러라도 벌인 것은 그런 식으로 대처할 수 없다. 이건 차 표면을 동전으로 긁어서 흠집을 내는 것만큼이나 적은 노력으로 차를 굉장히 크게 망가뜨리는 짓이다.

5. 속도계

타코미터가 엔진 회전수를 측정한다면 속도계는 바퀴 구동축의 회전수를 토대로 자동차의 주행 속도의 근사값을 표시해 준다. 정확한 값이 아니라 근사값인 이유는, 구동축이 동일한 속도로 회전했다 하더라도 차가 실제로 굴러간 거리는 타이어의 지름(= 공기압 상태)이 얼마냐에 따라 미세하게 달라질 수 있기 때문이다.

그러니 지금 자동차가 지구상에서 어느 위치에 있는지를 절대적으로 따지는 GPS 내비 정도는 돼야 정확한 속도를 구할 수 있다. 하지만 속도계 바늘보다는 반응이 더딘 게 흠이다.
사실은 GPS까지 갈 것도 없이 스피드건이 어떤 원리로 동작하며, 속도를 어떻게 생각보다 정확하게 측정할 수 있는지도 개인적으로 무척 신기하다. 길거리에서 "지금 당신의 주행 속도는 xx km/h입니다" 이런 거 표시해 주는 전광판을 본 적도 있을 것이다.

속도계는 안전을 위해 최대한 보수적으로.. 오차가 난다면 차의 실제 속도보다 약간 더 높은 값이 나오도록 만드는 게 관행이다. 이 속도계만 믿고 주행했다가 낚여서 과속 딱지라도 먹는다면 일이 꽤 골치 아파질 테니 말이다.
또한, 차에 따라서는 30km 지점에 빨간 눈금이 그어져 있는 속도계도 있는데, 그 이유와 의미는 이미 아는 분들은 다 아실 것이다.

6. 액티브 에코 기능

요즘 자동차에는 '에코 드라이브'라고 지금 운전 스타일이 경제 운전 친환경 운전 스타일인지, 아니면 차에 무리를 주고 돈을 길바닥에 흘리는 힘든 상태인지 표시해 주는 기능이 있다.

  • 백색: (1) 시동을 갓 켜서 냉각수나 엔진 오일이 제대로 초기화되지 않은 상태일 때(그러니 아직 너무 무리하지 마셈..), (2) 변속기 상태가 D가 아니거나 극도의 저속 주행 중일 때 (3) 급가속(킥다운, 높은 토크) 내지 고속 주행을 위해 좀 세게, 깊게 밟고 있을 때
  • 녹색: 백색에 해당되지 않는 나머지 대부분의 상황. 슬금슬금 적절히 밟고 있거나 타력 주행 중일 때
  • 적색: 백색보다도 더 과격한 기동 중일 때

내 차의 경우, 시속 110~120km쯤 이상부터는 가속을 하려니 녹색을 보기가 힘들어지는 것 같았다. 그 이상 속도는 불가능하지는 않지만 지금 엔진의 출력으로는 좀 무리라는 뜻이다. 더 큰 배기량의 엔진에 비해 연비가 더 크게 떨어지고 힘이 안 나고..
그리고 에코 드라이브 표시등이 백색을 넘어 아예 적색으로 바뀌는 것은 작년 여름에 딱 한 번 겪었다. 에어컨+오르막 상태로 옆 차 추월하려고 세게 밟았더니.. 저게 녹색과 백색 말고 적색이 될 때도 있다는 것을 처음 봤다.

에코 드라이브에 이어서 '액티브 에코' 기능까지 탑재된 차도 있는데, 이건 엔진 성능을 일부 너프시키고 속도 리미트까지 걸어 가면서 더 적극적으로 '녹색' 상황으로만 동작하게 하는 옵션이다. 사용자가 켜거나 끌 수 있다. 본인 차에는 이런 옵션까지는 없더라.

먼 옛날 카뷰레터 시절, 퓨얼 컷 기능도 없고 공기 공급조차 엔진이 자동으로 조절을 못 해서 초크 밸브 당기고 시동 직후 몇 분간 예열을 해야 하던 때에 비해... 요즘 자동차들은 전자 제어 방식이 도입된 이후 정말 많이 똑똑해졌다. 최적의 동력비(자동 변속기)뿐만 아니라 최적의 연비까지 저렇게 계산해서 운전자에게 안내해 주니 말이다.
그러니 강제 공회전 예열은 마치 옛날에 니켈-카드뮴 배터리의 메모리 효과를 예방하기 위해서 무조건 완충-완방을 해야 하던 시절 같은 흘러간 얘기가 됐다.

7. 선루프

선루프는 자동차의 엔진이나 주행과는 직접적인 관계가 없는 그냥 액세서리이다. 선루프가 달린 스포츠카는 간지 하나는 정말 제대로 나는 게 사실이다.
하지만 길거리의 승용차들을 보면 선루프가 있는 차보다 없는 차가 훨씬 더 많으며, 선루프를 장착한 것을 후회하는 운전자도 많다. 선루프는 흔히 '빛 좋은 개살구, 계륵, 가성비 최악의 액세서리'에 비유되곤 한다. 왜 그럴까..?

단순히 간지에 비해 치르는 대가와 단점도 만만찮은 물건이기 때문에 그렇다.
우선, 평범한 일반인이 선루프가 제대로 성능을 발휘하는 맑은 대낮에 운전을 할 일은.. 의외로 몹시 드물다! 더구나 맑은 대낮이라 해도 한겨울에 선루프를 개방할 일이 얼마나 있겠는가?
그에 반해 선루프는 차값을 더 올리며, 수리비, 보험료 같은 유지비 제반도 덩달아 끌어올린다.
안전성 면에서도.. 전복처럼 지붕이 대미지를 입는 교통사고에 더 취약해지는 것 정도는 누구나 예상 가능할 것이다.

또한, 선루프를 단다는 것은 결국 차의 지붕에 어떤 형태로든 무겁고 복잡한 설비가 추가됨을 의미한다.
지붕이 재질은 약해지는 주제에 10~30kg에 달하는 중량이 차에 상시 추가된다. 연비에 마이너스.. 그것도 하부가 아닌 상부가 더 무거워지니, 차량의 주행 안정성에 악재면 악재이지 호재는 절대 아니다.
차의 외관에 영향을 주지 않으면서 선루프 부품이 위에 들어가려면.. 객실 내부의 천장이 수 cm 남짓 더 낮아지는 것을 피할 수 없다.

이런 구조적인 핸디캡은 차량의 기술과 성능 발달만으로 극복 가능한 게 아니다.
더구나 운전 편의(자동 변속기)나 탑승자의 안전(ABS, 에어백)에 직접적이고 결정적인 영향을 주는 물건도 아니니..
선루프는 고급 차량이라고 해서 반드시 같이 달려 나오지 않는다. 오늘날까지도 고객이 별도로 주문했을 때에만 달아 주는 option 선택사양으로만 머무르고 있다.

Posted by 사무엘

2019/01/01 08:35 2019/01/01 08:35
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1571

올해의 마지막 블로그 글은 몇 년 동안 새 글이 없이 먼지만 쌓여 가던 '철도-관련 미디어' 카테고리 소속이 되겠다. 만세~!

내가 맨날 Looking for you 타령만 죽어라고 늘어놓고 있어서 존재감이 많이 묻히긴 했지만.. 옛날(200x년대) 새마을호 열차에서는 Looking for you 음악만 흘러나온 건 아니었다.
열차가 시발역에서 운행을 시작했을 때, 그리고 종착역 도착을 앞두고는 황홀하고 모던하고 미래지향적이고 하이테크스러운 분위기의 다른 BGM이 흘러나왔다. 그러면서 "손님 여러분 안녕하십니까? / 즐거운 여행 되셨습니까?" 요런 안내방송이 나왔다. (☞ 동영상 링크) 본인은 이 BGM을 일명 로고송이라고 불러 왔다. 보통명사 또는 고유명사로 말이다.

초창기에는 출발 때에 한해서 새마을호의 로고송 자체가 Looking for you이던 적도 있었다고 한다. 즉, Looking for you를 배경으로 하고 "손님 여러분 안녕하십니까?" 이랬다는 거다. 이건 각 역별 도착 시각을 일일이 그것도 4개 국어로 다 안내해 주던 시절의 추억인데, 본인은 직접 들어 보지는 못했다. 지금은 KTX에서도 그러지는 않는걸..

그러던 것이 Looking for you 이후에 별도 로고송+안내방송으로 바뀌었다. 종착 Looking for you는 그래도 06년 말 정도까지 유지됐지만 출발 Looking for you는 KTX의 개통 이후에 얼마 못 가 스티브 바라캇 Dreamers로 바뀌었기 때문에 2002년 이래로 길게 잡아도 2년 남짓밖에 유지되지 못했다.

그건 그런데.. 문제는 곡명이 다 알려져서 철덕들의 찬송가로 등극한 Looking for you 말고, 그 고유 로고송의 정체가 무엇이냐는 것이었다.
그 시절에 무궁화호에서 연주되었던 로고송은 CAGNET의 What will I do(원곡은 아닌 듯하고 C장조로 조가 올라간 리메이크)라고 출처가 곧 알려졌다. 얘도 나쁘지 않은 곡이지만 새마을호 로고송 같은 황홀하고 고급스러운 느낌은 없는 게 사실이다.

그리고 새마을호 로고송의 정체는 여전히 오리무중이었다. D장조와 D단조를 오르내리는 그 황홀한 멜로디는 출처가 무엇인지 도무지 알 길이 없었다. 그렇게 철덕들의 의문은 풀리지 않은 채, 로고송은 2008년 무렵부터 다른 곡으로 대체되었다.

본인은 지난 2009년 1월 6일 아침, 서울 교통방송 라디오에서 정확히 같은 음색은 아니지만 로고송의 멜로디가 흘러나오는 것을 우연히 목격..은 아니고 청격했었다. (☞ 옛날 글 링크) 그걸 블로그에 공개했으며 다른 철도 동호인께서 호응하는 댓글까지 올려 주셨다. 하지만 일은 그걸로 끝나고 여전히 정확한 출처를 알아내지 못했다.

오죽했으면 이 사실이 나무위키에도 등재돼 있을 정도였다. (코모넷 항목.. 코모넷은 그 당시 새마을호에 방송 서비스를 제공하던 협력업체. 현재는 폐업함)

사용자 삽입 이미지

그랬는데 그로부터 거의 10년 가까이 세월이 흐른 2018년 12월 17일,
디씨 철갤에서 어느 갤러에 의해.. 이 음악의 출처를 근성으로 "단서를 쫓아 여러 음반 뒤져가며 듣고 또 듣고 생노가다 해가며" 찾아냈다는 소식이 타전되었다!

출처는 바로 Headline News라고, 방송국 BGM용 컴필레이션 음반.. 그것도 엄청 옛날인 1992년 5월에 발매된 음반의 6번 트랙인 Outlook이었다. 이건 우리나라 철덕 역사에 길이 남을 발견이 아닐 수 없다.

사용자 삽입 이미지

라디오나 TV 방송에서 광고나 섹션 전환, 아니면 심지어 방송사고 등 여러가지 상황에서 들려줄 만한 짤막한 BGM들 모음집이다. 이 분야의 음악만 전문적으로 작곡하는 사람도 있는 모양이다.
심각하게 마이너한 분야의 음악인 관계로 전곡이 유튜브 같은 데에 공개돼 있지는 않으며, 인터넷 상으로는 맛보기로 중간 30초 분량밖에 못 듣는다. 하지만 곡 자체도 1분 30초 남짓으로 짧은 편이다.

안내방송 멘트에 가려져서 제대로 듣기 어렵던 구간을 이렇게 음악만 들으니 감회가 새롭다.
게다가 본인이 라디오에서 들었던 곡은 저 앨범의 4번 트랙(Young Blood 젊은 피??)이라는 것도 덤으로 알 수 있었다! 같은 작곡자가 같은 멜로디를 다른 악기와 다른 분위기로 리메이크 해서 연주했던 듯하다.

이 곡의 작곡자(Nicolo Bardoni & Stephen Warr)에 대해서는 새마을호 Looking for you의 작곡자인 MALTA보다도 안 알려져 있고, 하물며 음반은 Obsession보다도 더 구하기 힘들 것 같다.
그래도 출처를 알게 된 것만 해도 어디냐.. 이런 듣보잡 마이너 음반까지 뒤져서 로고송의 출처를 알아낸 그 철갤러 분께 진심으로 경의와 존경을 표하는 바이다. 철덕의 오랜 의문이 이렇게 풀리니 기분 좋게 올해를 마무리할 수 있겠다.

※ 그리고 이미 국내의 어느 용자께서 이 곡의 음원을 구해서 유튜브에 이미 올리셨다.

Posted by 사무엘

2018/12/29 19:33 2018/12/29 19:33
, ,
Response
No Trackback , 11 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1570

1. 송파대로 일대의 시설

송파대로의 잠실 이남 구간이 한때 얼마나 황량했는지는 이 부근에 무엇이 있거나 있었는지를 생각하면 짐작 가능하다.
1980년대에는 논밭과 비닐하우스 부지를 인수하여 가락시장이 들어섰다. 이 부근에는 나름 보안 시설인 전파 관리소도 자리잡고 있었다.
그리고 문정· 장지 일대는 지금 강서구의 마곡 지구와 더불어 서울 최후의 미개발 농경지로 여겨지고 있었다. 198, 90년대까지는 거기에 자동차 학원도 있었다고 한다.

그랬는데 전파 관리소 부지는 지하철역 출구에서 엎어지면 코 닿는 금싸라기 땅이 되어 버렸고 2010년대부터는 그 역이 아예 환승역까지 됐다. (가락시장) 극소수의 전문 인력만이 근무하는 보안 시설답지 않게 시가지와 너무 가까워지고 접근성도 너무 좋아져 버린 것이다. 전파 관리소는 넓은 역세권 부지를 다 활용하지 못하고 상당수를 잔디밭과 테니스장으로 놀려 두고 있다.

철도 쪽을 살펴보면 서울 지하철 4호선의 북쪽 연장과 함께 창동 차량 기지가 이전할 예정이고, 구로 차량 기지도 어디 멀리 못 옮겨서 안달이다. 과거에 용산 역의 넓은 면적을 차지하고 있던 철도 공작창 부지는 앞으로 어떻게 개발되려나 모르겠다.
또한 군부대도 정보사, 특전사 등 서울에 있던 많은 부대들이 이전했으며 이제는 용산 미군 기지조차도 평택으로 이전이 임박해 있다.
이런 시설들의 이전 시기와 맞물려서 전파 관리소도 어디 성남의 산기슭이나 멀리 지방으로 이전하게 될 것 같다.

한편, 가락시장과 그리 멀지 않은 오금 역 인근에 있던 성동 구치소는 문정 법조 단지가 조성된 뒤엔 서울 동부 지방 법원 옆의 동부 구치소로 확장 이전했다. 요즘은 구치소나 교도소를 주변 건물들과도 전혀 이질감이 느껴지지 않게 여느 고층 아파트나 상업 건물과 다를 바 없는 스타일로 만드는 게 유행인 듯하다.

2. 자동차 전용 도로의 고저 위상

서울에 있는 대부분의 한강 공원들은 접근하기가 왠지 어렵고 부담스럽다는 생각이 든다. 굴다리를 통과해야 하고 뭔가 기존 도로들과 입체 교차를 해야 한다.
하지만 여의도 한강 공원만은 자그마한 도로의 옆으로 쏙 내려가기만 하면 부담 없이 갈 수 있다. 심리적인 진입 장벽이 아주 낮게 느껴진다. 왜 그럴까?

다른 한강 공원들은 강변북로나 올림픽대로 같은 거대한 시내 고속화도로의 바로 옆에 있기 때문이다. 그 도로를 횡단해야만 공원으로 갈 수 있다.
그 반면, 여의도는 사정이 다르다. 공원은 여의도에서 한강과 맞닿은 북쪽에 있지만, 올림픽대로는 여의도의 남쪽으로 지난다. 곁에 자동차 전용 도로가 아닌 평범한 시내 도로만 있으니 여의도 한강 공원은 자전거 라이더나 보행자가 접근하기가 상대적으로 더 가깝고 편하게 느껴진다.

그리고 자동차 전용 도로들 중에서 내부순환로는 그 구조상 거의 다 고가이다. 그렇기 때문에 진입 램프는 위로 올라가는 형태로 만들어져 있다.
그에 반해 동부 간선 도로는 중랑천의 둔치에 만들어져 있으니, 장마철 때 종종 침수까지 될 정도로 고도가 낮다. 진입 램프는 당연히 아래로 내려가는 형태이며, 빠져나갈 때는 위로 올라가게 된다.

강변북로는 한강 공원보다는 전반적으로 고도가 훨씬 더 높지만 그래도 한강의 다리들과 교차할 때는 대체로 아래로 지난다. 다만, 잠실대교에서는 동쪽 구리 방면 도로가 다리의 위쪽을 지나기 때문에 예외적으로 더 높다. 무슨 사정이 있어서 다리 아래로 공간을 내지 못했던 모양이다.

그리고 강변북로의 전신은 그냥 본토의 평지이기 때문에, 본토와 접해 있는 서쪽 일산 방면은 의외로 진입 램프 없이 평면으로 곧장 진입하는 곳도 많다. 이것이 동부 간선이나 내부순환로와의 차이이다. 물론 한강과 더 가까운 동쪽 방면으로 진입하려면 아래로 굴다리를 지난 뒤, 한강 공원 쪽의 도로를 거쳐서 진입하는 수고를 감수해야 한다.

3. 주류 기술과 대체 기술

우리나라 고속도로에는 그 이름도 유명한 하이패스라는 무정차 자동 요금 정산 시스템이 있다.
그런데 가끔은 하이패스가 안 달린 차가 실수로 하이패스 출입구로 들어가 버릴 때가 있고, 하이패스 장착 차량이라도 인식이 제대로 안 될 수가 있다.

본인도 자세한 내막은 잘 모르지만, 이럴 때를 대비해서 무인 톨게이트에서는 하이패스 이외의 다른 방법으로 통과 차량의 번호판을 판독하기도 하는 것 같다. 그런 상황에 대한 대비가 돼 있으니까 도로 공사에서는 미납 통행료 청구서를 추후에 차주에게 보낼 수 있는 것이다. 그리고 하이패스가 인식되지 않았더라도 세상이 끝장난 게 아니니 당황하지 말고 제발 급제동 급조향 하지 말고, 안전을 위해 일단은 지나가라고 운전자를 안심시킬 수도 있다.

사실, 하이패스 없이 차량을 무인으로 자동 인식하는 기술 자체야 전국의 수많은 번호판 인식 주차장들과 과속· 신호 단속 무인 카메라를 생각해 보면 아무런 문제가 없다. 고속도로 시설에서 그런 인프라를 갖추면 될 일이지, 운전자들에게 비싼 돈 들여 하이패스 단말기를 번거롭게 장착하라고 홍보할 필요가 없다.

하지만 그것만으로는 미덥지가 못한지, 아니면 이미 계약을 맺은 단말기 제조사들과 담합을 한 게 있기라도 한지, 우리나라 고속도로는 여전히 하이패스가 주류이고 그런 간편한 대체 수단은 전체 트래픽의 1% 이내의 보조 비상용으로만 활용하는 듯하다.

한편으로, 대통령 선거에서도 저렇게 비슷하게 '주류 기술'과 '대체 기술'의 관계에 있는 시스템이 보인다.
옛날에는 대선 당일에 자기 주민등록지에서 투표를 할 수 없는 사람들을 위해서 부재자 투표라는 게 따로 있었다. 이건 미리 부재자 등록을 해야 했다.

그런데 요즘은 기술이 좋아졌는지.. '사전 투표'라고 해서 당일 투표를 할 수 없으면 사전 등록 없이 아무나, 그것도 전국 아무 투표장에나 가서 미리 투표를 해도 된다.
이게 가능해졌을 정도면 아예 선거 당일과 사전 투표일의 구분을 없애도 될 것 같은데.. 그렇지는 않을 것이다.

전국민이 사전 투표일에 아무 데서나 투표를 해 버리면, 투표 용지도 on-demand로 뽑아야 하고 행정적으로 발생하는 무질서도를 감당하기가 아마 어려울 것이다. 모든 차량들이 하이패스 단말기 없이 하이패스 톨게이트를 통과해 버릴 때처럼 말이다.

우리나라도 궁극적으로는 전국의 고속도로들에 톨게이트가 없어지고 하이패스 단말기도 없어지고, 고속도로 통행료는 월말에 고지서 형태로, 아니면 차주의 카드 요금이 매월 결제될 때 일괄 청구되는 게 순리에 맞지 싶다. 일일이 하이패스 카드에 충전을 하거나 아니면 선수금을 쳐묵쳐묵 하는 자동 충전 카드는.. 많이 삽질스럽다.
그리고 전자 투표인지 뭔지가 도입될지 모르겠지만, 투표도 시간· 공간 제약이 갈수록 더 없어지는 쪽으로 가기는 할 것이다.

4. 아직도 4차로인 경부 고속도로 구간

난 경부 고속도로에 2010년대까지 남아 있던 최후의 오리지널 4차로 구간은 울산-경주-영천뿐인 줄로 알았다. 거기도 수 년 전부터 6차로 확장 공사가 시작되었기 때문에 그게 끝나면 경부 고속도로는 전구간이 최하 6차로 이상으로 탈바꿈하는 셈이다.

하지만 사실은 그렇지 않더라. 아직도 4차로이고 심지어 확장 공사조차 시작하지 않은 구간은 영동-옥천 사이에 더 있다. 거기가 경부 고속도로 최후의 4차로 구간이다. 마치 철도에서 경부고속선 때문에 경부선 기존선의 전구간 전철화가 오히려 늦어졌듯, 경부 말고도 다른 대체 고속도로들이 많이 생겼기 때문에 경부 자체의 전구간 확장이 작업의 우선순위가 낮아진 것이다.

사용자 삽입 이미지

다만, 영동-옥천 일대는 2000년대 초에 대대적으로 선형 개량을 한 적이 있으며, 이때 커브를 워낙 많이 편 덕분에 무슨 지방도도 아닌 고속도로가 길이가 약간 짧아지기도 했을 정도였다. 그리고 이 새 길은 비록 지금은 4차로를 유지하지만 미래의 확장 공사를 염두에 두고 노반도 미리 확보해 놓은 상태라고 한다.

그러니 저기는 1970년 개통 당시의 오리지널 선형이 "아닌" 4차로이다.
그에 반해, 영천-경주-울산은 확장 공사가 시작되기 전에는 진짜로 1970년 개통 당시의 선형을 그대로 간직한.. 정말 시간이 정지한 4차로였다.

경부 고속도로는 대구나 대전 같은 대도시 주변은 얄짤없이 8차로이고, 수도권에서는 아예 10차로에 육박하는 거대한 도로이다. 주변의 중부내륙이나 타 횡축 고속도로 같은 4차로 도로를 달리다가 경부로 진입하면 경부의 그 어마어마한 도로 폭에 압도당하게 된다.
그런데 그 경부조차도 6차로도 아닌 4차로 구간이 있다니, 거기는 경부 고속도로라는 게 실감이 안 날 것 같다.

사용자 삽입 이미지

Posted by 사무엘

2018/12/27 08:38 2018/12/27 08:38
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1569

찬송가 trivia

1. 21년 전, 기성 교회에서의 크리스마스 성극 추억

지금으로부터 21년 전인 1997년 말, 본인은 중학교에서의 마지막 겨울방학을 맞이하고 있었다.
그때 본인이 다니던 교회 중고등부에서는 지도교사 선생님의 주도로 크리스마스 이브 행사 때 무려.. 뮤지컬을 공연했다. 연극을 하다가 노래가 나올 때면 MR 틀어놓고 그에 맞춰 부르는 거다.

그 뮤지컬의 맨 처음 도입부에서 불렀던 노래가.. 기억에 남아 있는 가사를 검색해 보니 '마리아의 아기 예수'라는 곡이고 가사가 다음과 같다.
국내곡인 것 같지는 않은데.. 원곡의 제목과 가사는 무엇인지 정체를 알 길이 없다.

"오래 전 베들레헴에 성경 말씀 그대로
마리아의 아기 예수 오늘 탄생하셨네
천사 찬송하기를, '왕이 나셨다'
그를 믿는 모든 자는 영생을 얻으리.."


지금 내가 다니는 교회에서라면 이런 컨텐츠는 심의상 공연 불가일 것이다.
이 진영에서는 '아기 예수' 이런 말 별로 안 좋아한다. 산타 클로스, 크리스마스 트리, 12월 25일 예수 생일 이런 거 다 생깐다. 그런데 그걸로도 모자라서 '마리아의 아기 예수'라니! 이런 OO교스러운 심상이 담긴 용어는 절대 용납될 수 없다.

성도들 중에 심지어 "메리 크리스마스"라는 인사말조차 싫어하는 프로불편러도 있기 때문에, 저런 게 버젓이 공연되었다가는 곧장 클레임 들어온다.

뭐 난 그 정도까지는 아니다. 성탄절이 잘못된 거지, 예수 그리스도의 성육신 탄생 자체가 잘못된 교리는 아니지 않는가? 그리고 12월 25일이라도 쉬는 나라가 안 쉬는 나라보다는 나으며, "메리 크리스마스"가 "해피 할리데이" 이딴 말보다는 훨씬 낫다고 생각한다. 고로 본인은 트럼프 대통령의 노선을 지지한다.. =_=;;;

그 뮤지컬은.. "크리스마스 추억"이라는 주제로 그 안에서 또 세 갠가 네 개의 에피소드로 구성돼 있었다. 어떤 에피소드에서는 주인공이 평소에 짜장면을 미치도록 너무 좋아해서 크리스마스 성극을 공연하던 중에도 "손님, 짜장면은 뭘로 드시겠습니까?"라고 NG를 낸 이야기가 있었다.

성탄절의 유래고 뭐고 교리 지식 다 제끼고 동심, 감성, 추억만 생각하면 저런 게 참 훈훈한 기억이다. 그 뮤지컬 각본을 다시 볼 수 있다면 좋겠다. 허나, 그런 긍정적인 심상이 어째 이교도의 전통과 혼합되어 변질되었는지를 같이 생각하면 안타까운 노릇이 아닐 수 없다. 빨간 싼타 모자 쓰고 열심히 율동 가르치는 주일학교 교사들 동영상도 검색하면 많이 나오는데.. 착잡함과 안타까움이 교차한다. ㅠ.ㅠ

주일학교라는 게, 그 당시에는 꼬마들이 그냥 아무것도 모르고 선생님하고 같이 노래 부르고 떠들고 놀지만, 그게 커서까지 추억으로 각인되는 효과를 노린다. 그러니 유아 교육이 유치하고 시시하고 당장 지쩍으로 드러나는 효과가 없는 것 같아도 실제로는 중요한 역할을 하는 셈이다.

물론 나의 동심, 감성, 추억 분야의 결정판은.. 더 말하자면 입만 아프겠지만 2003~04년에 접한 새마을호 Looking for you이다. 요한계시록을 끝으로 신구약 성경이 완결되었듯이 Looking for you가 그냥 영원한 종지부를 찍었다.
국영 독점 교통수단에서 이런 음악이 흘러나왔다는 것은 충격 중의 충격으로 나를 철덕의 블랙홀로 빨아들이게 했다. 이걸 능가하는 충격은 내 인생에 다시는 등장하지 않을 것이다.

2. 나의 사랑하는 책 비록 해어졌으나

얘는 성경을 소재로 하는 얼마 안 되는 찬송가 중 하나이다.
완전 동요풍인 "신구약 성경책 (The B-I-B-L-E oh that's the book for me)" 다음으로 조금 나이가 들면 주일학교에서도 접하게 된다.

"나의 사랑하는 책"은 영어로 가사 첫 줄은 There's a dear and precious book..이고 원제는 My mother's bible이다.
"비록 해어졌으나"를 "비록 헤어졌으나"라고 ㅐ를 ㅔ로 잘못 기재한 책이나 사이트가 의외로 굉장히 많다. 구글 같은 검색엔진들에서 자동 완성이 '헤어졌으나'라고 제시될 정도다.
영어 가사가 Tho' it's WORN and faded now이니, 우리말로도 worn out을 뜻하는 '해지다'가 맞다. 어머님의 성경책이 다 낡은 채로 남아 있기라도 하냐, 아니면 영영 잃어버렸거나 심지어 빼앗겼냐의 차이이다. 후자라면 작사자는 젊었을 때 신앙을 잃었다가 탕자의 아들처럼 되돌아온 것일 수도 있게 된다..;;

한편, 이 찬양은 3절 가사가 "어머님이 읽으며 눈물 많이 흘린 것 지금까지 내가 기억합니다"
즉, 우리말로는 어머님이 우셨다고 번역되어 있다.
하지만 원래 가사는.. "Then she dried my flowing tear with her kisses as ..."
"내가 울었고" 어머니께서 내 눈물을 닦아 주셨다는 뜻이다..;;
물론 단위 음절당 들어갈 수 있는 정보량이 한국어와 영어가 서로 쨉이 안 되니, 이런 보정은 오역이나 변개는 아니다. 단지 다르다는 것이다.

2절 가사도.. 우리말은 다니엘, 다윗, 엘리야가 언급돼 있지만 원래 가사는 엘리야가 아니라.. '요셉'이 언급돼 있다. 뭐, 요셉보다는 엘리야가 더 포스가 있는 인물인 건 인정한다만..
엘리야가 "병거를 타고" 무슨 은하철도 999처럼 하늘에 올라갔다는 가사는 약간 고증 오류이다.

왕하 2:11을 보면, 불길에 활활 타는 모양의 병거가 나타났다고만 했지, 엘리야가 그 행렬에 직접 합류하거나 병거를 타고 승천했다는 말은 없다. 그냥 혼자 몸뚱이가 회오리바람에 휩쓸려 승천했다.
영어 가사는 애초에 엘리야를 언급하지 않으니 이런 오류도 존재하지 않는다.

3. 나는 인생의 산과 들 방황하며

위의 제목으로 오랫동안 방황하며 인생을 허비하다가 뒤늦게 예수 믿고 구원받게 된 기쁨을 노래한 찬송가가 있다.
얘는 작사· 작곡자가 따로 전해지는 외국곡인데, 원곡은 애초에 찬송가가 아니었다. 그냥 "그대를 향한 사랑 영원할 것이오"라는 내용의 일반 노래이다. 우리말 가사는 영어 가사와는 무관하며 완전히 새로운 창작이다.

그러니 이 곡은 찬송가로서는 Believe me if all those endearing young charms 같은 원제를 기재해 줄 필요가 없다.
"마귀들과 싸울지라 죄악 벗은 형제여" 곡에다가 "존 브라운의 시체" 영어 가사를 병기할 필요가 없듯이 말이다. 그건 그렇고..

"나는 인생의 산과 들 방황하며"의 마지막 2절 가사 끝부분은 "시냇물 흘러 바다에 돌아가듯 나는 주 안에 잠겨지네"이다.
이 찬송을 부르면서 본인은 늘 궁금했다. 가사를 쓴 사람이 졸업식 노래를 참고하기라도 했는지 말이다.

졸업식 노래의 3절 끝부분은 "냇물이 바다에서 서로 만나듯 우리들도 이 다음에 다시 만나세"인데..
찬송가 가사에 저런 냇물-바다 비유가 들어갈 일이 얼마나 될까..??
그리고 "주 안에 잠겨지네.."는 침례도 아니고 도대체 어떤 심상을 의도한 것일까? 누가 무슨 동기를 받아서 이런 가사를 썼는지가 무척 궁금해진다.

4. 지금까지 지내 온 것

"지금까지 지내 온 것 주의 크신 은혜라..."라는 찬송가가 있다. 가사의 특성상 간증 집회나 연말 송구영신 때, 혹은 교회 창립 기념 예배 때 두루 부르기 좋다. 극동 방송 발 카더라 통신에 따르면 한국의 크리스천들이 가장 좋아하는 찬송가 조사에서 당당히 2등을 차지했다고 한다.

얘는 "복의 근원 강림하사"와 동일한 외국곡 멜로디가 붙어 있는데, 그것 말고 박 재훈 작곡의 민요풍 멜로디 버전도 있다. 이 작곡자에 대해서는 "어서 돌아오오"의 작곡자라고 얘기해 주면 한국인이라면 다들 고개를 끄덕일 것이다.
둘 다 3박자 계열인 건 동일하며, 우리나라 찬송가에는 두 곡이 모두 실려 있다.
한국곡 멜로디는 "부름 받아 나선 이 몸"과 분위기가 꽤 비슷하게 느껴진다만.. 그래도 "부름 받아..."의 작곡자는 다른 인물이다.

"지금까지 지내 온 것"의 멜로디 말고 가사의 출처를 살펴보면 굉장히 흥미로운 점이 발견된다.
본인도 굉장히 최근에 알게 된 건데.. 얘는 한국인 작사는 당연히 아니고 그렇다고 찬송가들의 대부분을 차지하는 미국· 유럽 계열도 아니다.

이 곡의 작사자는 보통 T. Sasao라고 소개돼 있는 편인데, 일본인이다. '사사오 데쓰사부로'(笹尾鐵三郞 1868-1914)라고 메이지 시대를 주로 살았던 성결교 목사이다. 데쓰(tetsu)는 '철'의 일본어 음일 뿐이며 death하고는 당연히 무관하다.
영어 가사가 멀쩡히 기재돼 있어서 일본인 작사가 아닌 것 같지만 이것 역시 일본어로부터 나중에 번역된 것이다.

이 곡의 진짜 원어 가사는 이렇다. きょうまで守られ
일본어를 모르는 본인이 보기에도.. 1절 지금(今日)까지 지내 온 것, 2절 몸과 맘도 연약하나(か弱き者を), 3절 주님 다시 뵈올 날이(主の日) 등 우리말과 일본어가 앞부분이 얼추 일치하는 것 같다.

사사오 데쓰사부로가 작사한 다른 대표적인 찬송가로는 "우리들의 싸울 것은 혈기 아니요"가 전해진다. March we onward 이렇게 시작하는 영어 가사가 있지만, 외국 사이트에서 검색이 잘 되지 않을 것이다. 어쩐지 옛날 가사는 '일심'도 그렇고 약간 일본어스러운 표현이 있더라. 그래도 저 사람은 "지금까지 지내 온 것"의 작사자로 훨씬 더 많이 알려져 있는 듯하다.

다만, 이해가 되지 않는 것은 "나 위하여 십자가에 중한 고통 받으사.."이다.
"My life flows on in endless song; (...) How can I keep from singing?"이라고 Robert Lowry 작사의 가사가 분명히 전해지는데..
우리나라 찬송가에는 동일 멜로디에 "My life flows rich in love and grace (...) How can I keep from singing?"이라는 비슷하지만 약간 다른 가사와 함께 T. Sasao가 기재돼 있다. 작사자가 잘못 기재된 것 같은데 제2의 영어 가사는 정체가 뭔지 궁금해진다.

이런 식으로 오늘날 교회에서 불리는 찬송가들의 출처와 계보, 탄생 배경들을 연구해 보는 것도 무척 재미있다. 성경으로 치면 주석을 같이 보는 것과 같다. 계보가 의외로 복잡하고 배배 꼬인 것, 전혀 찬송가가 아닌 멜로디에다가 번역이 아닌 창작 수준의 가사가 붙은 게 많다. 옛날에는 지금처럼 곡들의 출처를 구글 검색 한 번으로 바로 알 수 있지 않고, 또 저작권에 대한 개념도 정립되지 않았으니 말이다.

Posted by 사무엘

2018/12/24 08:35 2018/12/24 08:35
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1568

Windows API에서 LoadCursor는 EXE/DLL 실행 파일의 리소스로부터 마우스 포인터를 얻어 오는 함수이다. 아니면 모듈 핸들 값을 NULL로 생략하면, 시스템이 제공하는 다양한 공용 포인터를 얻을 수도 있다. 일반적인 화살표 아니면 모래시계, 텍스트 입력란용 I-beam 등등 말이다.

그런 known 포인터의 명칭은 IDC_ARROW, IDC_IBEAM, IDC_WAIT ... 등으로 10여 종이 WinUser.h에 정의돼 있다. 실제값은 그냥 32xxx대의 리소스 ID 정수이다.

그런데, 제어판의 마우스 포인터 설정에 나열되어 있는 공통 포인터 중, 유일하게 IDC_* 명칭이 전혀 부여되지 않은 포인터가 하나 있다. 바로 펜 모양의 필기 포인터이다.
MSDN 문서와 WinUser.h를 눈을 씻고 찾아 보시라. 무려 Windows 95 이래로 제어판에 버젓이 등재되어 온 표준 공통 포인터임에도 불구하고 이름이 없다. 신기하지 않은가?

사용자 삽입 이미지

사실, 이 펜이랑 xor 반전 십자가인 IDC_CROSS(정밀도 선택), 그리고 IDC_UPARROW(대체 선택)는 응용 프로그램에서 거의 볼 일이 없긴 했다. =_=;;

그래서 본인은 장난기가 발동했다.
1부터 65535까지 brute-force로 LoadCursor 요청을 해서 문서화되지 않은 마우스 포인터가 돌아오는 게 있는지 역대 Windows 운영체제별로 확인을 해 봤다.

사용자 삽입 이미지

결과는 꽤 흥미로웠다.
답부터 말하자면 펜 모양은 32631이라는 ID가 홀로 부여되어 있었다. Windows 95부터 10까지 동일하게 사용 가능하다.
'홀로'라는 말은 인접한 32630이나 32632 같은 숫자에는 포인터가 배당된 게 없다는 뜻이다.

모든 Winows에는 100부터 11x번에 완전 기본 마우스 포인터가 할당되어 있었다. 즉, Aero 포인터를 쓰고 있더라도 여기에는 완전 운영체제 기본 흑백 화살표 포인터들이 있으며, 얘들은 포인터 뒤에 입체감을 주는 그림자도 표시되지 않았다. 이건 무슨 다른 특수한 용도로 쓰이는가 보다.

그리고 IDC_HELP 다음으로 32652부터 32662 사이에 있는 11개의 포인터는.. 놀랍게도 마우스 휠을 눌러서 자동 스크롤 모드가 됐을 때 나타나는 '작은 원 + 검은 삼각형'들이었다(각 방향별로). 그것도 휠이 운영체제 차원에서 정식 지원되기 시작한 Windows 98부터 20년째 동일한 형태로 존재하고 있었다. 이건 기술적으로는 user32.dll에 존재하는 리소스이다.

그런데 이런 걸 도대체 왜 문서화하지 않았을까? Windows 98부터는 하이퍼링크용 IDC_HAND만 추가됐다고 달랑 써 놓고 입 싹 씻은 걸까..? 뭔가 단단히 속은 느낌이었다.

본인은 당장 날개셋 한글 입력기에다가 조치를 취했다.
날개셋 한글 입력기는 16년 전(2002...)에 나온 2.0 이래로 지금까지 자동 스크롤 모드용 마우스 포인터들을 내장하고 있었다. 그걸 모두 제거하고, (1) 운영체제가 비공식적으로 제공하는 이 포인터를 사용하게 했다. 그래서 파일 크기가 4~5KB 남짓 감소하는 효과를 얻었다.

(2) 그리고 최근에 추가된 필기 인식 입력 도구에서 마우스를 그리기 입력란 내부로 가져가면 포인터가 펜 모양으로 바뀌게 했다. 뭔가를 그리면 된다는 것을 강조하기 위해서이다.
결과물을 보니 만족스럽다. 이 달 초에 나온 9.61 버전에 바로 요 사항들이 반영되었다.

사용자 삽입 이미지

이것 말고 문서화되지 않은 포인터로는 32663이 있는데, 일반 화살표 포인터 옆에 모래시계 대신 의외로 CD 아이콘이 자그맣게 붙어 있다.
광학 드라이브가 백그라운드에서 뭔가 돌아가고 있을 때 표시되는 듯하며 본인도 이걸 본 기억은 있다. 하지만 정확한 표시 조건은 잘 모르겠다.

차라리 화살표 옆에 점선 사각형 내지 [+]가 붙어서 drag & drop을 나타내는 포인터가 더 자주 쓰이며, 공통 포인터로 등재됐으면 좋겠는데 얘들은 그렇지 못하다. 그냥 ole32.dll에 하드코딩된 리소스가 쓰인다. 그리고 창 전체의 크기 말고 창 내부의 splitter 구획의 폭을 조절할 때 바뀌는 포인터도 창 크기 조절용과는 다른 걸 쓰는 게 UI 디자인상으로 맞는데 그것들 역시 공통 포인터에는 없다. 그렇기 때문에 여전히 싸제 자체 내장에 의존하거나, 아니면 comctl32.dll에 하드코딩된 리소스를 슬쩍 가져오는 게 통용된다.

아무튼, 오늘은 마우스 포인터와 관련하여 새로운 사실을 알게 됐다.
그러고 보니 옛날에 16비트 시절에는 메모리 공간이 엄청나게 부족하기도 하고, GDI 핸들의 번호 영역 자체가 몇 만 남짓밖에 안 되었다. 그러니 Windows 3.1뿐만 아니라 9x에서도.. 아까 본인이 했던 것처럼 1부터 65535까지 brute-force 식으로 대입해서 시스템에 현재 존재하는 비트맵· 아이콘 따위를 몽땅 나열하고 조회하는 툴을 만드는 것도 가능했다.

오늘날 32/64비트 시대에도 DLL의 심벌 ordinal 번호와 리소스 ID 번호는 16비트 영역으로 한정돼 있다. 이 둘에서는 숫자와 문자열이 식별 용도로 모두 쓰이며, 16비트를 초과하는 큰 숫자는 문자열 포인터인 것으로 간주되게 의미가 예약돼 있기 때문이다.

Posted by 사무엘

2018/12/21 08:33 2018/12/21 08:33
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1567

지난 11월 초엔 하늘은 맑고 푸르고 산과 들은 단풍으로 물들어 가는 게.. 혼자 집에 틀어박혀 있기에는 너무 아까운 날씨였다.
그래서 9월에 중순에 갔던 남양주를 다시 찾아갔다. 먼저, 와부읍 월문리에 소재한 먹치고개 쪽을 돌아다녀 봤다.

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

단풍이 드니 경치가 몹시 아름다웠다. 딱 1년 남짓 전에 남한산을 갔을 때도 풍경이 이랬었다.
"나뭇잎도 다들 적화... 어?? 아, 내가 종북좌빨들 때문에 망해 가는 나라를 보며 심성이 어지간히도 피폐해졌구나" 하는 생각이 들었다.

여기 일대는 한적한 시골답게 주차 걱정 없이 갑산을 오르는 등산로가 있었다. 그런데 웬일인지 울타리가 쳐지고 막혀 있었으며, 길이 아닌 곳엔 아예 전기 울타리가 둘러져 있기도 했다. 흐음..;;
그래서 그냥 경치 구경만 하다가 재작년에 올랐던 예봉산을 다시 올라 보기로 결심했다. 여기도 등산로 바로 코앞에다 차를 세워 놓을 수 있어서 차량 접근성이 좋았다.

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

정상까지 가는 길에 이 정도로 하늘이 뚫린 공터가 나온 건 여기가 거의 유일한 듯했다.
그것 말고는 예봉산은 2년 전이나 지금이나 별로 볼 것 없었다.

사용자 삽입 이미지

드디어 정상에 도착했다. 2년 전과 동일한 경로로 1시간 반쯤 걸렸는데.. 그 동안 운동을 게을리 해서 그런지 2년 전보다 더 힘들다는 느낌이 들었다. 아, 공사 때문에 일부 등산로가 우회 경로로 바뀌기도 했다.

주변은 그때나 지금이나 계속해서 뭔가 공사가 계속되고 있었는데, 등산로를 새로 내거나 목재 데크라도 설치하는 게 아니었다.
여기 정상에도 마치 관악산 정상 근처처럼 동그란 관측 레이더가 설치될 거라고 한다..! 그때 만들던 길은 사람이 지나가는 길이 아니라 공사 자재를 실어나르기 위한 모노레일이었다.

하긴, 여기도 관악산과 비슷한 해발 650m대이고 얘가 관악산보다 더 높기까지 하다. 하지만 얘는 바위가 전혀 없는 흙산인 덕분에 등정 난이도는 관악산보다 훨씬 낮았다.

시간대가 시간대여서 그런지, 저 사진을 찍던 당시에 산 정상에는 본인 포함 총 여섯 명이나 있었다.
산에서 마주친 등산객 어르신들은 저 구조물 때문에 정상 경치가 많이 가려졌다며 아쉬워하셨다. 일행 중에는 아침 일찍 운길산부터 시작해서 하루 종일 산행을 진행하신 분도 있었다.

사용자 삽입 이미지

산 정상에서 아래를 내려다보니, 지상에서 올려다볼 때보다는 하늘이 마냥 맑지 않고 뿌연 게 보였다.

차가 있는 곳으로 되돌아가야 하니, 더 멀리 나가지 못하고 하산은 등산의 정확히 역순 경로로 했다. 앞으로 기회가 되면 예봉산 근처의 예빈산, 운길산, 갑산, 적갑산 일대도 가 보고 싶다.

사용자 삽입 이미지

그로부터 1주일 남짓 뒤, 나라 전체가 웬 미세먼지 테러를 당했다가 하루 종일 여름 장마 같은 비가 내리면서 공기가 맑아졌다. 본인은 이때를 놓치지 않고 야영을 했다. 다만, 멀리 나가지는 못하고 그냥 동네 뒷산의 정자에다가 텐트를 쳤다. 비 소리 듣고 풀 냄새 맡으면서 나만의 공간에서 밤을 보내다니, 정말 꿀잼이었다.

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

야영을 마친 뒤엔 오랜만에 성남으로 가서 예전에 올랐던 망덕산을 올라 봤다. 작년 봄이니 지금으로부터 1년 반쯤 전이다.
서울 303과 9403번 버스의 종점인 동성 교통 차고지에서부터 시작해서 이배재 고개를 버스 대신 도보로 올랐으며, 고개 정상에서부터 등산로에 진입했다. (이배재 고개를 내 자가용으로 통과한 적은 없음)

나무들은 다들 잎이 떨어져서 가지만 앙상했으며, 길바닥은 낙엽으로 뒤덮여 있었다. 온통 초록색이던 작년과는 분위기가 확 달랐다.

사용자 삽입 이미지

망덕산 정상 표지판을 다시 지나쳐 갔다. 예봉산 등 여느 산과는 달리, 정상만을 위한 공간이 따로 있는 게 아니라 그냥 등산로 길목에 정상 표지판이 있다.

본인은 예전에는 검단산과 망덕산을 쭉 일주했었다. 하지만 이번에는 그렇게 하지 않고 조금 더 가다가 사기막골 방면으로 하산했다.
여기는 다니는 사람이 별로 없어서 그런지 등산로도 좁고 험한 편이었다. 하지만 얼마 전에 비가 온 덕분인지 언제부턴가 골짜기에서 물이 졸졸 흐르는 소리가 들리기 시작했다. 오옷~!

사용자 삽입 이미지

성남과 광주 사이의 산에서 물 흐르는 걸 구경하는 건 처음이었다.
하산을 계속할수록 물줄기는 더 커졌다.

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

최종적으로는 대원사라는 절에 도착하는 걸로 산행이 끝났다.
사기막골은 성남시에서 손꼽히는 오지라고 한다. 하지만 그렇게 막 시골 같지는 않았으며, 주변의 집들은 단독주택보다는 빌라 위주였다.

사용자 삽입 이미지

대원사를 벗어나니 '사기막골 근린공원'이 나왔다. 여기는 난생 처음 가 봤다.
'사기막'에서 '사기'는 도자기 그릇을 뜻한다. 여기가 옛날에는 도자기 굽는 제조업으로 유명했던가 보다.
그래서 공원에는 민속촌처럼 한옥 마을이 꾸며져 있으며, 도자기 체험관도 있었다.

사용자 삽입 이미지

남양주에 이어 성남에서는 이런 걸 구경하면서 추억을 남겼다.
성남 구시가지 쪽은 정말 경사가 급한 동네라는 게 거듭 느껴졌다. 지금처럼 개발되기 전에는 이런 언덕도 다 들판과 숲이었지 싶다. 그나마 성남대로가 지나는 분당과 판교 쪽이 평지... 아, 그것도 아니고 가천대-태평 사이는 지상이 경사가 장난이 아니다.

그리고 남양주와 성남은 둘 다 면적이 넓고, 지형에 따라 생활권이 많이 찢어져 있긴 하다. 하나도 개발 안 된 산기슭 오지가 있는가 하면, 전철이 지나고 아파트와 고층 빌딩이 잔뜩 지어진 곳도 있다. 또한, 성남과 광주 사이의 산맥처럼 남양주 동쪽의 산맥도 탐험하기 좋겠다는 생각이 들었다.

Posted by 사무엘

2018/12/18 08:35 2018/12/18 08:35
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1566

C++에는 using이라고.. class, namespace, template, virtual, operator 이런 것보다는 좀 생소하고 덜 쓰이는 키워드가 있다.
일반적인 프로그래머라면 타이핑 수고를 덜기 위해서 using namespace std; 정도 선언할 때나 사용했던 게 전부일 것이다.

얘는 C의 키워드로 치면 그나마 typedef와 성격이 얼추 비슷해 보인다. typedef는 여러 토큰으로 구성된 복잡한 타입 명칭을 한 단어(식별자) 한 토큰으로 축약해 준다.
타입 명칭이란 건 unsigned long처럼 예약어만으로도 두 단어 이상으로 구성될 수 있으며, 포인터형 *이라든가 const/volatile modifier 등이 붙어서 더욱 복잡해질 수 있다.

그러니 이런 걸 축약하는 기능은 단순히 토큰을 기계적으로 치환하는 #define 전처리기 계층이 아니라 컴파일러 계층에서 반드시 필요하다. 가령, PSTR a, b를 char *a, *b로 자동으로 인식되게 바꾸는 것은 #define만으로는 문법적으로 불가능하기 때문이다. 더구나 함수의 포인터 타입은.. 가리키는 함수가 받아들이는 인자들의 개수와 타입을 일일이 그런 식으로 나열해야 한다~!

C에서는 구조체형 변수를 선언할 때 반드시 struct를 일일이 붙여서 struct ABC 이런 식으로 선언해야 했다. struct를 생략하고 바로 ABC 한 단어만으로 쓰려면 이것조차도 typedef를 해 줘야 됐다.
그러니 C에서는 구조체를 typedef struct _ABC { ... } ABC; 이렇게 두벌일을 하면서 선언하는 게 관행이었으나..

C++에서는 객체지향 이념이 강화되면서 번거롭게 typedef를 안 해도 struct/class를 생략하고 곧바로 그 타입을 쓸 수 있게 됐다. 사실 이게 당연하고 더 자연스러운 조치가 아닌가 생각한다.

뭐 아무튼 typedef는 그런 중요한 역할을 하는 물건이다.
typedef를 통해 새로 만들어진 명칭은 사람이 보기에만 서로 다를 뿐, 컴파일러의 입장에서는 서로 완전히 동치이다. 전문 용어로 표현하자면 syntactic sugar이다.

내부적으로 담고 있는 물건은 동일하지만(똑같은 정수??) 서로 다른 타입으로 취급되어서 명시적인 형변환 없이는 서로 덥석 대입되지 않는 파생 타입.. 이런 걸 생성할 수 있으면 좋을 텐데 C/C++에서는 그게 쉽지 않다.
그러니 unsigned short/int와는 미묘하게 다른 wchar_t 같은 타입은 컴파일러가 언어 차원에서 직통으로 지원해 주지 않으면 사용자가 만들어 내기 난감하다.

그리고 HWND, HMODULE처럼 서로 호환되지 않는 다양한 핸들 타입도 내부적으로는 dummy 구조체의 포인터형을 일일이 typedef하는 편법을 동원해야 선언할 수 있다.
마치 include guard 삽질을 대체하기 위해 #pragma once가 사실상의 표준 형태로 등극한 것처럼.. 저것도 앞으로는 C++ 언어 차원에서 개선되어야 할 점이 아닌가 한다. 정수형에 대해서는 부분적이나마 type safety를 강화하려고 정수와 무작정 호환되지 않는 enum class 같은 것도 2010년대 들어서 도입된 바 있다.

아무튼, typedef는 통상적인 사유로 인해 길어진 type 명칭을 한데 줄이며, 축약된 명칭을 현재의 scope에다 도입해 준다.
그런데 using도 긴 명칭을 줄여 준다는 점에서는 역할이 비슷하다. 단지 그 배경이 typedef와는 완전히 다를 뿐이다.
바로, 지금 문맥과는 다른 namespace에 속한 명칭을 일일이 namespace를 명시하지 않고도 곧장 참조 가능하게 해 준다. 뭐, 개념은 그러하지만 구체적인 세부 문법과 용례는 생각보다 복잡하며, 본인 역시 이를 다 정확하게 알지는 못한다.

using은 크게 선언(declaration)과 지시(directive)라는 두 형태로 나뉘어서 문법적으로 서로 다르게 취급된다. 전자는..

using std::vector;

이런 식으로 구체적인 명칭을 써 주는 형태이다. 위의 경우 이 scope에서는 이제 앞에 std::를 안 붙여도 vector 클래스를 쓸 수 있게 된다. 사용되는 곳이 클래스의 내부라면 굳이 namespace 말고 기반 클래스 같은 타 클래스의 이름이 들어와도 된다.

std::vector를 vector로 줄여 쓰는 것은 기존의 #define이나 typedef로 가능하지 않다. 특히 typedef의 경우,

typedef std::vector<int> vector; //????

템플릿 인자가 모두 주어져서 온전한 type으로 실현된 놈이라면 저렇게 단축 명칭을 부여할 수 있겠지만, 그렇지 않은 추상적인 명칭을 축약하지는 못하기 때문이다. C++의 상속과 연계를 위해 dynamic_cast가 도입된 것처럼, C++에서 도입된 다단계 scope과의 연계를 위해 예전에는 없던 완전히 새로운 명칭 축약 기능이 필요해진 셈이다.

그리고 후자인 using 지시는.. using namespace라는 두 단어로 시작하여 이 namespace에 속하는 모든 명칭들을 곧장 자동 개방해 버린다.
선언이건 지시건 하는 일은 별 차이가 없다. 이것도 그냥 와일드카드에 속하는 ... 이나 * 를 써서 using std::...; 같은 선언으로 통합해 버려도 될 것 같은데, 미관상 보기 안 좋아서 그렇게 안 했나 보다.

물론 일부러 구분해 놓은 걸 당장 쓰기 편하다는 이유로 몽땅 개방해서 내 명칭과 뒤섞어 버리는 건 전역 변수, friend, public의 남발만큼이나 경계해야 할 일이다. 하지만 적절하게 활용하는 건 auto를 쓰는 것만큼이나 코드를 짧고 간결하게 만드는 약이 될 수도 있다.

C++ 표준 라이브러리의 경우 namespace가 도입되기 전 코드와의 호환을 지키기 위해 <iostream.h>는 std로 감싸져 있지 않고, <iostream>은 감싸져 있는 것으로 잘 알려져 있다. 물론 .h 버전은 앞으로 사용을 권하지 않는 deprecated로 철저히 봉인됐고 말이다.

요 두 가지가 using의 전통적인 기능이었다.
그런데 C++11 이후에는 using이 typedef의 기존 기능까지 흡수하여 본격적인 타입 alias 전담 키워드로 등극하기 시작했다. 바로, 등호를 이용해서

using P_INT = int*;
using PF_INT = int (*)();

위와 같이 써 주면 아래의 typedef와 완전히 동치가 된다.

typedef int* P_INT;
typedef int (*P_INT)();

굉장히 참신하다. 새 명칭과 치환 대상 타입이 =를 경계로 딱 분리되어 있다 보니 재래식 typedef보다 깔끔하고 알아보기도 더 쉽다.
using이라는 단어는 파스칼의 use 키워드와 비슷한 느낌이며, using A=B는 파스칼의 type A=B와 뭔가 닮은 것 같다. 또한 이 문법은 namespace에 대한 alias를 만드는 namespace A = B::C 같은 문법과도 일관성이 있다.

Visual C++에서는 한 2013쯤부터 지원되기 시작했다. 2010은 지원 안 하고, 2012는 인텔리센스 컴파일러는 지원하지만 본 컴파일러는 지원하지 않더라.
이름 없는 namespace를 선언해서 C의 static 전역 변수/함수를 표현하듯이, C++의 키워드를 이용해서 기존 C의 기능을 대체하는 예가 하나 더 생겼다. 최신 컴파일러에서는 using을 볼 일이 더 많아지겠다.

Posted by 사무엘

2018/12/15 08:32 2018/12/15 08:32
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1565

1. WM_CREATE의 리턴값/타입에 의문

Windows에서 C/C++로 GUI 프로그래밍을 할 때 WM_CREATE 메시지는 기본 필수 0순위로 접하게 되는 물건이다. 메시지 번호부터가 WM_NULL 다음으로 당당하게 1번이다.
얘가 오면 윈도우 프로시저는 lParam의 값으로 날아온 CREATESTRUCT 구조체 내용을 참조하면서 자신에 대해 초기화를 하고, 필요하다면 자기의 위치와 크기도 변경하고, 내 밑의 차일드 컨트롤들도 적절히 생성하면 된다.

그런데 이 메시지를 처리하고 나서 되돌리는 리턴값은 약간 이상한 형태이다. 성공하면 0, 실패하면 -1을 되돌리라고 명시되어 있다. 윈도우 프로시저가 실패값을 되돌리면 CreateWindow(Ex) 함수의 동작도 실패하여 창이 생성되지 않으며, NULL이 돌아온다.

즉, WM_CREATE의 리턴 형태는 BOOL이나 마찬가지이다. 그런데 왜, 어째서 직관적인 TRUE (1) / FALSE (0)가 아니라 이것보다 1 작은 값 형태로 정해진 걸까? (0 / -1)
이 때문에 MFC에서도 CWnd::OnCreate는 리턴 타입이 int로 설정되었다. 하지만 얘는 성공/실패만 따지기 때문에 원래는 int가 필요하지 않다. 내가 실험해 보니 굳이 0이 아니어도 -1을 제외한 다른 모든 값들은 성공이라고 간주되기는 하더라.

WM_CREATE는 대화상자 프로시저(DialogProc)처럼 평소에는 BOOL을 되돌리지만 몇몇 소수의 메시지에 대해서는 예외적으로 정보량이 더 많은 리턴값을 직접 되돌려야 하기 때문에 불가피하게 INT_PTR 형태로 설계된 것도 아니다. 더구나 WM_CREATE의 전신격인 WM_NCCREATE는 평범한 BOOL TRUE/FALSE 형태인 것도 의문을 더욱 증폭시킨다.

이와 관련해 혹시 숨겨진 사연이 있는지 레이먼드 챈 아저씨가 블로그에서 한 번쯤 다뤘을 법도 해 보이는데 내가 검색한 바로는 의외로 없다.
"CreateFileMapping은 실패값이 NULL인데 CreateFile은 실패값이 왜 혼자 INVALID_HANDLE_VALUE (-1)인가요?"와 거의 같은 맥락의 내력 의문점인데도 말이다.

파일 API의 경우, 먼 옛날에는(16비트 시절?) CreateFile이 지금 같은 형태의 핸들값이 아니라 파일 식별자 번호를 되돌렸으며, 0도 특수한 용도이지만 올바른 파일 식별자 값으로 예약돼 있었기 때문에 실패값을 -1로 따로 정한 거라고 설명이 돼 있다.

그렇다면 WM_CREATE도 처음에 설계하던 당시에는 굳이 BOOL로 국한되지 않고 0을 포함한 다양한 범위의 성공 리턴값을 되돌릴 수 있게 만들었는데.. 그럴 필요가 없어지면서 결국 지금 같은 형태로 굳어진 게 아닌가 싶다.

2. NC 버전과의 관계, 창의 소멸

Windows의 메시지 중에는 클라이언트 영역의 바깥 테두리를 그리거나(PAINT, ACTIVATE) 거기 크기를 정하거나(CALCSIZE) 그 영역의 마우스 동작을 감지하는(MOUSE*, ?BUTTON*) 용도로 WM_NC*로 시작하는 것들이 있다. 여기서 NC는 non-client를 의미한다.

그런데 WM_CREATE와 WM_DESTROY에도 WM_NC버전이 있다. 이때 NC는 딱히 외관상으로 클라이언트 바깥의 테두리나 제목 표시줄 같은 걸 가리키지는 않으며, 다른 방향으로 의미를 갖는다.
소멸 버전의 경우, WM_DESTROY는 아직 자기 밑에 자식 윈도우들이 멀쩡히 남아 있을 때 호출된다. 즉, 호출되는 순서가 top-to-bottom이다. 그러나 WM_NCDESTROY는 WM_DESTROY가 전달되었고 자식 윈도우들이 모두 소멸된 뒤에 자식에서 부모 순으로 bottom-to-top으로 호출된다.

즉, 어떤 윈도우가 윈도우 프로시저를 통해 가장 마지막으로 받는 메시지는 WM_DESTROY가 아니라 WM_NCDESTROY이다. WM_QUIT은 아예 스레드의 메시지 큐 차원에서 Get/PeekMessage를 통해 전달받을 뿐, 특정 윈도우의 프로시저로 오지는 않으니까...

어떤 윈도우 핸들과 C++ 객체가 연결되어 있는 경우, WM_NCDESTROY에서 그 객체를 delete 해 주면 된다. 그 전 단계인 WM_DESTROY에서 delete를 해 버리면 아직 소멸되지 않은 자기 자식 윈도우가 부모 윈도우의 C++ 객체 같은 걸 여전히 참조할 때 문제가 발생할 수 있다.

사용자가 Alt+F4를 누르거나 창의 [X] 버튼을 누르면 그 윈도우로 WM_CLOSE 메시지가 전달된다. 시스템 메뉴에서 닫기를 누른 것도(WM_SYSCOMMAND + SC_CLOSE)도 디폴트 처리는 WM_CLOSE 생성이다.
그리고 이 메시지에 대해 윈도우 프로시저가 다른 처리를 하지 않고 DefWindowProc으로 넘기면 그때서야 이 윈도우에 대해 DestroyWindow 함수가 호출되고 WM_DESTROY와 WM_NCDESTROY가 차례로 날아온다.

DestroyWindow는 호출하는 주체와 동일한 스레드가 생성한 윈도우들만 없앨 수 있다. 프로세스/스레드 소속이 다른 윈도우는 없앨 수 없으며, 그런 윈도우를 상대로는 WM_CLOSE를 보내서 창을 없애 달라는 간접적인 요청만 할 수 있다.

악성 코드 급의 프로그램이 아니라면 이 요청을 무작정 거부하는 끈질긴 윈도우는 없을 것이다. 하지만 일반적인 프로그램의 경우, "이름없음 문서를 저장하시겠습니까?"라고 질문을 해서 사용자가 취소를 누르면 자기가 종료되지 않게 하는 처리 정도는 한다. 작업 관리자의 '프로세스 종료' 기능은 응용 프로그램 창에다가 WM_CLOSE부터 먼저 보내 보고, 그래도 말을 안 들으면 TerminateProcess라는 극약 처방을 하는 식으로 동작한다.

그런데 WM_DESTROY 메시지를 받았는데 자기 자신에 대해서 DestroyWindow를 또 호출하는 이상한 프로그램도 있는가 보다. 창을 없애라는 요청은 WM_CLOSE이고, 이때는 그냥 DefWindowProc만 호출해도 알아서 소멸이 된다. WM_DESTROY는 요청이 아니라 이 창이 없어지는 건 이미 정해졌고 피할 수 없는 운명이라는 통지일 뿐인데.. 이때 DestroyWindow를 호출하면 같은 창에 대해서 WM_DESTROY가 이중으로, 재귀적으로 전달되는가 보더라.

소멸 중인 윈도우에 대해서 DestroyWindow 요청은 가볍게 무시만 해도 될 듯하지만 이미 이런 식으로 정해지고 정착해 버린 동작은 호환성 차원에서 함부로 고치지는 못한다고 한다.

3. 창의 생성

소멸 얘기가 좀 길어졌는데...
생성 버전에 속하는 WM_CREATE와 WM_NCCREATE 짝은 소멸 관련 메시지와 같은 유의미한 차이가 없긴 하다.
자식 컨트롤들을 생성하는 건 그냥 WM_CREATE 때 하면 되지, NCCREATE 때 딱히 해야 할 일은 없다. 쟤는 그냥 NCDESTROY와 짝을 맞추기 위해 도입된 것에 가깝다.

어떤 창이 생성되면, CreateWindow(Ex) 함수가 실행되어 있는 동안 WM_CREATE만 오는 게 아니라 WM_GETMINMAXINFO, WM_NCCREATE, WM_NCCALCSIZE가 먼저 전달된다. CREATE말고 나머지 메시지들은 창 내부의 공간 배분과 관계 있는 것인데, 아주 특수한 형태로 동작하는 유별난 윈도우가 아니라면 그냥 다 디폴트로 넘겨도 무방한 것들이다.

그리고 앞서 살펴본 바와 같이, CREATE 계열 메시지들은 실패값을 리턴함으로써 이 창의 생성을 저지할 수 있다.
WM_NCCREATE의 실행이 실패한다면(FALSE) 이 창은 그 뒤로 곧장 WM_NCDESTROY만 날아온 뒤 소멸되어 버린다. 그러나 WM_CREATE에서 실패하면(-1) WM_DESTROY와 WM_NCDESTROY가 차례로 날아오면서 소멸된다.

그런데 여기서 유의할 것이 있다.
프로그램의 main 윈도우의 경우, WM_DESTROY를 받았을 때 대체로 main message loop을 벗어나고 프로그램 전체를 종료하기 위해서 PostQuitMessage를 호출한다.
이게 일단 호출된 뒤부터는 이 스레드에서는 다른 GUI 윈도우를 생성한다거나 message loop을 돌아서는 안 된다. 여기에는 에러 메시지를 출력하기 위한 간단한 MessageBox 호출도 포함된다.

main 윈도우의 생성이 WM_CREATE 단계에서 실패했다면(WM_NCCREATE은 무관) WM_DESTROY를 거치게 되며, 특별한 조치가 없는 이상 그 메시지의 handler에 있는 PostQuitMessage도 처리되었을 것이다. 이 상태에서

if(::CreateWindowEx( .... )==NULL) {
    ::MessageBox(L"프로그램 실행 실패");
    return 1;
}

이런 식으로 코드를 쓰면 MessageBox 내부의 메시지 loop은 메시지 큐에서 WM_QUIT이 튀어나오기 때문에 곧바로 끝난다. 즉, 메시지 박스가 화면에 표시되지 않는다는 것이다.
그러니 에러 메시지를 찍을 거면 차라리 WM_CREATE 내부에서 -1를 리턴하기 전에 하는 게 낫다.

심지어 main 윈도우의 WM_NCDESTROY에서 MessageBox를 호출하려 시도하는 경우도 있다고 한다. 프로그램 실행이 다 끝난 마당에 무엇을 찍을 일이 있는지는 모르겠지만 이 역시 위와 동일한 이유로 인해 메시지 박스가 화면에 나타나지 않는다.
뭐, WM_DESTROY 대신 WM_NCDESTROY에서 PostQuitMessage를 요청할 수도 있겠지만 int main(int argc, char *argv[]) 대신에 char **argv만큼이나.. 익숙한 관행은 아니어 보인다.

이상. 이렇게 간단하고 익숙한 주제를 갖고도 지금까지 진지하게 생각하지 못한 것에 대해 할 말이 많을 때가 흥미롭다.

Posted by 사무엘

2018/12/12 08:31 2018/12/12 08:31
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1564

« Previous : 1 : ... 75 : 76 : 77 : 78 : 79 : 80 : 81 : 82 : 83 : ... 221 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

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

Site Stats

Total hits:
3079778
Today:
1360
Yesterday:
1636