« Previous : 1 : ... 62 : 63 : 64 : 65 : 66 : 67 : 68 : 69 : 70 : ... 221 : Next »

1. 철도 복습

인류가 개발한 교통수단들 중에 외형상 가장 철저하게 시스템에 의한 통제를 받으며 돌아가는 교통수단은 철도이다.
철도는 비행기 같은 3차원이 아니고, 선박이나 자동차 같은 2차원도 아니라 오로지 앞 아니면 뒤밖에 진행하지 못하는 1차원 교통수단이기 때문에 그렇다. 스스로 방향 전환조차 할 수 없고 외부에서 선로를 전환해 줘야 한다.

(덧: 잠수함도 잠항과 부상이 있으니 넓은 의미에서는 3차원이라고 볼 수 있지만.. 공중이 아닌 물 속의 3차원일 뿐인 데다 사실상 군 전용이고, 대중교통의 형태로 운용되는 것은 전무하므로 논외로 하자. 물 속에서는 공기가 없어서 내연기관을 가동할 수 없다!)

철도 차량은 그야말로 모든 것이 파악되고 통제 가능한 '독 안에 든 쥐' 상태로 움직인다. 그리고 조향이라는 차원 하나를 희생한 대신, 일반 자동차를 훨씬 능가하는 수송 능력과 효율, 속도와 승차감과 안전을 얻었다.
"아스팔트 길에서 고무 바퀴 vs 철길에서 철 바퀴"는 동력 효율이 얼마나 차이가 날까? 그리고 도로와 철도에서 무인 자율 주행을 구현하는 기술적 난이도가 서로 얼마나 차이가 날지도 한번 생각해 보자.;;

철도에서는 앞 차와 거리가 너무 가까워지거나 일정 속도를 벗어나거나, 기관사가 생존을 인증하는 신호에 응답하지 않는 등... 별별 이상 징후가 감지되면 열차는 즉시 제동이 걸리고 멈춰서게 된다.
비행기는 테러리스트에 의해 장악되어 폭주하기 시작하면 전투기가 출격해서 격추시키는 것밖에 달리 통제할 방법이 없는 반면, 철도는 비행기는 물론이고 자동차와도 차원이 다른 안전 시스템을 갖춘 셈이다.

출퇴근 시간에 지하철을 타 보면 열차가 걸핏하면 "앞 차와의 거리 유지" 명목으로 답답할 정도로 서행하거나 심지어 급제동이 걸리는 걸 경험할 수 있는데..
이건 기관사가 자동차 몰듯이 자의로 브레이크를 밟아서 그렇게 된 게 아니다. 차량이 자기가 달리는 선로의 신호 상태를 감지해서 알아서 그렇게 동작한 것이다. 철도는 육안으로 앞 차를 발견한 뒤에야 제동을 걸었다가는 십중팔구 충돌 사고가 나며, 그런 무식하고 원시적인 방식은 현업에서 애초에 쓰이지도 않는다.

철도 차량을 그나마 자동차 운전과 비슷하게 기관사의 자의만으로 조종 가능한 곳은 자동차의 주차장뻘 되는 차량 기지 내부 정도밖에 없을 것이다. 거기는 일반인이 절대 출입 금지일 뿐만 아니라, 거기서는 어차피 사람 걷는 속도로밖에 못 밟는다.

이건 증기 기관차가 단선 선로에서 달리던 시절 이래로 열차의 안전이 인간의 오감과 판단력이 아닌 시스템 차원에서 자동으로 보장되는 방법을 연구해 온 엔지니어들의 노력의 산물이다. 어떤 경우에도 한 폐색 구간에 두 열차가 동시에 진입하지 않고, 열차끼리 정면 충돌이나 후미 추돌 사고가 나지 않게 말이다.

이런 이유로 인해.. 고속철의 경우, 지금의 시속 300에서 400~500으로 증속을 하는 것은 차량만 최신 고성능으로 새로 뽑아서 죽어라고 밟는다고 해서 실현 가능하지 않다. 신호· 관제 시스템이라는 소프트웨어 요소까지 싹 다 업데이트를 해야 하는데, 이것이 내가 알기로는 국내 기술만으로 그냥 가능하지 않다. 과거에 재래선에서 열차의 주행 속도를 100에서 150으로 야금야금 올리던 시절과는 상황이 다르다. 철도라는 게 그만치 상상을 초월하게 정교한 시스템인 것이다.

2. 여객기의 항로

육지에 도로와 철도, 바다에 선박의 항로만 있는 게 아니라 하늘에도 지정된 항로라는 게 있다. 이에 대해서는 본인이 3년쯤 전에도 글을 쓴 적이 있다.
여객기들은 목적지 공항을 향해서 무작정 구면기하학에 근거한 직선 지름길 경로로만 가는 게 아니다. 비록 육상 교통수단처럼 산과 강이라는 지형의 영향을 받지는 않겠지만, 다음과 같은 변수들의 영향을 받는다.

  • 제트 기류: 한국과 미국을 오가는 여객기가 갈 때와 올 때 항로가 서로 다른 이유는 이 때문이다.
  • 언제든지 비상 착륙이 가능한 공항까지 일정 거리 이내 유지: 그러니 아무리 지름길 최단거리여도 태평양 정중앙으로 날아가는 여객기는 없다.
  • 비행 금지 구역 회피: 우리나라의 경우 청와대, 원자력 발전소와 원자력 연구원, 군사분계선 부근이다.

지금이 무슨 린드버그가 살던 때처럼 누가 비행기를 인류 최초로 발명해서 아무런 통제도 없는 하늘을 마음대로 누비고 대서양을 횡단하던 시기가 아니기 때문이다.
너 말고도 하늘을 날 수 있는 기계류는 너무 많다. 그렇기 때문에 안전을 위해서라도 비행 신고를 하고 허가를 받고, 남의 나라라면 영공 통과료 내고 관제를 받아야 한다. 그리고 정해진 길로만 가야 하며, 비행 금지 구역 같은 곳에 가서는 안 된다.

사용자 삽입 이미지

여객선의 항로는 다음과 네이버의 민간 인터넷 지도에도 표시되어 있기 때문에 상대적으로 친숙하지만 비행 항로 지도는 정말 해당 분야에 관심이 있거나 직업으로 종사하는 사람이 아니면 접할 일이 없을 것이다. 하지만 이런 항로들은 나름 알파벳과 숫자를 조합하여 국제적으로 통용되는 명칭까지 부여돼 있다. 마치 고속도로나 국도의 번호처럼 말이다.

예를 들어 서울-부산을 잇는 경부선뻘 되는 항로는 A582이다(중간에 대구 경유). 그리고 동해를 따라 국도 7호선과 비슷한 종축 항로는 V11이며, 미국으로 가기 위해 국토를 횡단하는 항로는 G597이다.

위의 항로를 보니 대도시 중에서 서울 강북, 그리고 대전은 공중에서 여객기를 볼 일이 전혀 없는 지역임을 알 수 있다.
그러나 구로-금천 일대는 경부선(+경인선) 때문에 열차가 많이 지나갈 뿐만 아니라 비행기도 굉장히 많이 지나가는 곳이다. 안양 부근에서 미국· 일본행과 국내선 여객기들이 분기한다.

3. 항로의 개선, 복선화

(1) 경상남도 끝자락에 있는 사천 공항의 경우, 서울 김포를 최단거리로 잇는 항로가 존재하지 않는다. 사실, 대구와 광주 사이, 경상도와 전라도의 경계 상공이 공군의 군사 훈련 구역으로 지정되어 있어서 민항기가 비행할 수 없었다.
이 때문에 김포에서 사천을 가려면 과거에는 아예 제주도로 갈 때처럼 광주를 먼저 찍고 나서 동쪽으로 우회해서 사천으로 가는 삽질을 해야 했다. 시간 낭비 돈 낭비는 당연지사였다. 자동차도 아니고 비행기가 이게 뭔 뻘짓인가..;;

이것 때문에 해당 지역에서 "현기증 난단 말이에요" 민원이 빗발쳤었다. 그러던 것이 2000년대 이후에는 규제가 완화되고 대구-사천 항로가 개통된 덕분에 광주가 아닌 대구를 경유하는 것으로 동선이 개선되었다.
경상도와 전라도 사이의 지상에서는 88 올림픽 고속도로가 오랫동안 악명을 떨치다가 결국은 전구간 4차로로 다시 만들어졌는데.. 하늘길에도 오랫동안 같지는 않지만 비슷한 우여곡절이 있었던 셈이다.

다만, 개선된 항로가 개통된 때는 이미 통영-대전 고속도로가 개통되어 항공 수요가 예전에 비해 많이 줄어든 뒤이니 시기가 다소 늦은 감이 있다.

(2) 지난 2012년에는 세계적으로도 손꼽힐 정도로 많은 트래픽을 자랑하던 서울-제주 항로가 무려 '복선화'했다. 철도에서 서울-부산이 1군이라면, 국내선 항공은 서울-제주가 1군인 셈이다. 그리고 저기가 국내 최초 유일의 복선 항로가 됐다.

물론 비행기들은 단일 항로에서도 고도 차이로 상행과 하행(그리고 국내선과 국제선도)을 구분하기 때문에 단선이 곧 철도의 단선 같은 열악한 환경을 의미하지는 않는다. 하지만 서울-제주는 그것만으로도 부족해서 비행기가 제때 이· 착륙을 못 하고 공항 주변을 돌거나(착륙 허가) 활주로에서 대기하며(이륙 허가) 시간을 왕창 날려야 했다.

결국 여기는 방향별로 항로가 분리됐다. 원래 서울-광주-제주 항로는 B576이었는데, 하행용으로 Y711, 상행용으로 Y722라는 항로가 새로 생겼다.
상선과 하선은 서로 무려 14km 정도 떨어져 있으며, 제주 방면이 서쪽이므로 개념적으로 우측통행이다.
기존 B576은 다른 용도로 여전히 쓰인다. 상행인 Y722가 B576에 더 가까이 있다.

항로의 복선화는 철도의 복선화처럼 거창한 시설 따위 만들 필요 없이 지도에서 선만 새로 그으면 되는 일임에도 불구하고.. 이거 하나 고치는 데도 관련 법을 고치고 관제 시스템을 업데이트 하고 중국 같은 이웃 나라들로부터 동의도 얻는 등 절차가 굉장히 복잡했다고 한다.

(3) 오늘날의 관점에서야 단선 철도는 느리고 불편하고, 자동차가 발달하지 못해서 어차피 철도밖에 선택의 여지가 없던 옛날에나 존재하던 유물처럼 느껴진다. 그러나 19세기에 영국에서 철도가 완전 처음으로 등장했던 극초창기에는 철도도 단선이 아닌 복선을 기본으로 깔고 달렸다.

왜냐하면 진짜 옛날에는 전신기라는 것도 없어서 역간의 통신조차 아직 가능하지 않았기 때문이다. 단선 교행을 구현하기 위한 최소한의 기술적 기반이 마련돼 있지 않으니 열차 운행은 최소한의 안전이 자명하게 보장되는 복선 위주로 할 수밖에 없었다. 그러다가 폐색 구간 같은 정교한 안전 시스템이 갖춰지면서 더 저렴한 단선이 가능해진 것이다.

이는 마치 자동차도 19세기 말~20세기 초 극초반에는 전기차가 잠시 활발하게 연구됐고 시속 100도 넘었지만.. 한순간에 도태되고 없어진 것과 비슷한 얘기처럼 들린다.

4. 나머지

(1) 비행기가 기수를 위로 향한 채 땅에 거의 근접해 있는 정지 사진 하나만 보고 이게 이륙 중인지 착륙 중인지 분간이 가능할까?
나 같으면 기체의 pitch 각도(일반적으로 이륙 중일 때가 더 가파름), 랜딩기어 주변의 연기(착륙할 때만 마찰열 때문에..), 주익에 펼쳐진 플랩(착지까지 한 뒤에) 같은 변별 요인이 있으면 가능하겠지만, 그런 차이가 없으면 알 수 없을 것 같다.

전후대칭형 열차의 정지 사진을 보고 진행 방향이 어딜지 판별하는 것은 백색 및 적색 램프가 켜진 방향, 그리고 전철의 경우 팬터그래프가 펼쳐진 쪽(뒤)을 토대로 가능하다. 이거 마치 노을 사진을 보고 아침인지 저녁인지 판별하는 것과도 비슷해 보인다. (그림자의 방향 말고 하늘 색깔만 보고 판별하는 것은 일반적으로 불가능)

(2) 끝으로, 제트 엔진이 달린 비행기는 자동차처럼 한 엔진이 몇 행정 몇 기통이라는 식의 구분은 전혀 존재하지 않으며, 그냥 엔진 자체가 2개냐 4개냐 같은 구분이 있을 뿐이다.
비행기가 순항 중일 때는 공기가 빨려 들어가고 뿜어져 나오는 소리까지 가미되어 육상 교통수단에 존재하지 않는 고유한 날카로운 소리가 난다. 하지만 비행기가 활주로에서 이제 막 가속과 이륙을 시도할 때는 '웨에엥~' 하면서.. 뭔가 전동차의 VVVF 구동음과 일말의 유사점이 있는 소리가 잠깐이나마 난다.

전동차와 비행기의 구동음이 서로 더 비슷해질 수는 없을까? 그러면 철덕과 항덕이 모두 좋아할 텐데 말이다.

Posted by 사무엘

2020/01/14 08:35 2020/01/14 08:35
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1705

GUI 표시 용도로 쓰이는 폰트

컴퓨터에서 폰트, 글꼴이라는 건 말 그대로 사람이 읽는 문자를 찍는 용도로 널리 쓰인다.
그런데 그것만이 전부가 아니다. 문자는 그 자체로 생각보다 굉장히 정교한 그래픽 데이터이며, 그걸 빠르게 보기 좋게 찍어 주는 소프트웨어는 매우 강력한 벡터 그래픽 엔진에 속한다. 이걸 다른 그래픽 요소를 출력하는 용도로 얼마든지 활용할 수 있다.

1. Marlett

단적인 예로 Windows의 경우.. 95부터 7까지 15년 가까이 존속했던 '고전 테마'의 GUI 요소들은 상당수가 글꼴 출력이었다.
체크 박스의 체크 표시, 라디오 버튼의 동그라미, 창의 최소화/최대화/닫기 버튼, 콤보 상자 오른쪽에 붙은 ▼ 모양 말이다.

이것들의 정체는 Marlett이라는 트루타입 글꼴에 들어있는 글립이다. 다음 그림은  이 글꼴에 들어있는 글립들을 표시한 것이다. 모양들이 다들 기억에 남아 있고 익숙할 것이다.
하드코딩된 비트맵이 아니라 이렇게 윤곽선 글꼴로 처리하면 다양한 크기에 대응 가능하다는 이점이 생긴다.

사용자 삽입 이미지

겨우 27,724바이트밖에 하지 않는 아담한 크기이며, 제공되는 글립은 저게 전부이다. Windows 95내지 NT4 이래로 내용이 한 번도 바뀐 적이 없는 듯하다.
라디오 버튼은 잘 알다시피 흑백 음영이 져 있는데, 왼쪽 절반은 흰색으로, 오른쪽 절반은 검정으로 그려서 구현했다는 것을 쉽게 유추할 수 있다. 더구나 응용 프로그램이 크기 조절이 가능한 상태라고 우측 하단에 표시되는 빗금무늬도 알고 보니 이 글꼴의 글자였다.

그런데 어지간한 프로그램의 글꼴 목록에서 Marlett이라는 이름의 글꼴을 본 적이 있는 분은 별로 없을 것이다. 얘는 일반적인 한글 내지 영문용 글꼴이 아니라 Wingding 같은 심벌 전용 특수 글꼴이기 때문에 그렇다.

지금이야 저런 dingbat 심벌들을 모두 독립된 코드값을 부여해서 새로운 문자로 만들어 주는 시대이지만, 옛날에는 유니코드는커녕 2바이트 문자 코드조차도 생소했다. 그러니 기성 문자 코드에 없는 custom 그림문자들은 아스키 코드 번호에다가 글꼴만 달리해서 찍는 게 불가피한 관행이었다. 또한, 그런 용도로 만들어진 심벌 전용 글꼴은 언어별로 필터링을 해서 글꼴 목록을 출력하는 프로그램에서는 이름이 조회되지 않았던 것이다.

Marlett은 MS Sans Serif, System (-_-;; ), Wingding처럼 16비트 Windows 시절부터 존재했던 글꼴도 아니니.. 이름이 더욱 생소할 수밖에 없다. 이 글꼴의 존재를 확인하려면 '문자표'처럼 진짜로 원초적인 글꼴들을 몽땅 나열해 주는 프로그램을 써야 한다.

아직도 잊혀지지 않는데.. 과거에 Windows 95는 알 수 없는 이유로 인해 주기적으로(몇 달 간격?) 글꼴 시스템이 맛이 가곤 했다. 그래서 창의 최소/최대화 버튼처럼 Marlett 글꼴을 써서 출력되던 GUI 요소들이 깨져서 Small Fonts 기준의 숫자나 알파벳으로 바뀌어 찍혔다. 원인은 잘 모르겠지만 운영체제를 강제로 '안전 모드'로 몇 번 재부팅을 해 주면 문제가 해결되었다.

그리고 요즘은 반대로.. 일반적인 숫자와 문자로 찍혀야 할 문자열들이 Marlett 기준으로 엉뚱하게 깨져서 찍히는 문제가 발생하기도 하는가 보다. 난 직접 본 적은 없다.

사용자 삽입 이미지

오늘날의 Windows에서는 고전 테마가 공식적으로는 사라졌지만, 고전 테마 형태의 GUI 요소를 그려 주는 DrawFrameControl 같은 함수는 여전히 존재한다. 그게 없어질 수는 없다. 그러니 Marlett 폰트도 legacy 명목으로 언제까지나 남아 있을 것으로 보인다.

2. 설치 프로그램/부팅 화면에서 쓰이는 폰트

운영체제는 GUI를 제공하는 셸이란 걸 갖추고 있는데, 사실은 그 전에 운영체제의 설치 프로그램도 동일한 셸을 기반으로 GUI를 제공해야 한다.
그렇기 때문에 Windows 원본 디스크의 내부를 뒤져 보면 *.ttf 파일이 존재하는 걸 볼 수 있다. Windows를 다 설치했을 때와 동일한 규모는 아니고, 그냥 설치 프로그램 GUI를 표시하는 데 필요한 정도만 존재한다.

Windows XP쯤부터는 쌩 텍스트 모드라는 게 없어졌다. 그래서 시꺼먼 배경의 명령 프롬프트 전체 화면에서도 한글이 언제나 16*16 비트맵 글꼴로 찍힌다.
그리고 Vista부터는 16*16 비트맵 글꼴이 찍히는 명령 프롬프트 전체 화면이라는 게 없어졌다. 그 대신, 부팅이나 설치 중간에 시꺼먼 배경의 전체 화면이 필요할 때 표시되는 글자들이 16픽셀이 아니라 24픽셀 이상으로 커졌다.

사용자 삽입 이미지

이것들은 다 kor_boot라는 트루타입 글꼴에 포함돼 있는 비트맵 글립이다. 다만, 영문은 설치 때는 똑같은 굴림 계열이고, 설치 후의 부팅 관리자에서는 Lucida Console로 차이가 나는 것 같다.
그리고 하나 더..
Windows 8부터는 운영체제의 부팅이나 설치/업데이트 작업이 진행 중일 때 동그라미 5개가 뱅글뱅글 돌아가는 애니메이션이 나오기 시작했다.

사용자 삽입 이미지

이 애니메이션의 기술 기반은 gif나 avi 따위가 아니라.. 역시 글꼴이다!
malgun_boot라는 글꼴 파일을 보면 U+E000대 사용자 정의 영역에 110프레임이 넣는 각 모양들이 일일이 그려져 있다. 이 글자들을 짧은 시간 동안 연달아 찍게 하면 동그라미 5개가 뱅글 돌면서 들어갔다가 나오는 애니메이션이 그려진다.

위의 움짤은 저 폰트의 글립을 연달아 찍고 화면을 캡처해서 저장하는 프로그램을 본인이 직접 작성하고 돌려서 20분 만에 만든 것이다.

사용자 삽입 이미지

이렇듯, 부팅 때 잠깐 쓰이는 (1) 한글 비트맵 글꼴과 (2) 동그라미 애니메이션용 글꼴이 거론되었는데.. 얘들은 설치 프로그램뿐만 아니라 설치가 완료된 Windows 자체도 사용하는 폰트이다. 하지만 Windows에서 _boot이라는 이름을 가진 폰트 파일이 딱히 조회되지는 않는다.

고전 테마 GUI 글꼴은 앞서 살펴본 바와 같이 Marlett이라고 알려져 있으며, FixedSys, System, MS Sans Serif 같은 옛날 티 팍팍 나는 초 구닥다리 글꼴들도 다 C:\Windows\Fonts에 *.fon이라는 파일 형태로 존재한다. 그럼 저것들은 어디에 콕 짱박혀 있는지, 실체가 어디에 존재하는지가 매우 궁금해진다.

사용자 삽입 이미지

Windows Vista/7부터 마소에서는 Segoe UI라는 이름의 폰트 시리즈를 밀기 시작했다.
처음에는 본편만 있다가 8부터는 Segoe UI Symbol이라는 게 추가됐으며, 얘의 PUA 영역에는 위에서 보다시피 체크박스, 컴퓨터 전원 버튼, 웹브라우저 뒤로-앞으로 버튼, 그리고 좌우상하 방향, 배터리 충전 상태 등...

어지간한 도구모음줄 버튼 아이콘까지 다 폰트 형태로 제공되기 시작했다.
단색으로 단순화됐으면서 크기 조절은 마음대로 되니까.. 폰트가 괜찮은 선택인 셈이다.
원래는 이모지까지 담고 있다가 이모지가 단독으로 워낙 방대해지니 이건 Segoe UI Emoji라는 전용 폰트로 분리되어 나갔다. 한 8.1이나 10쯤부터?

3. 나머지

운영체제뿐만 아니라 응용 프로그램도 자신만의 UI 요소를 간편하고 깔끔하게 출력하기 위해 폰트를 사용한다.
예를 들어 Visual Studio IDE의 경우, 각종 창들을 사용할 때만 툭 튀어나오게 하거나, 아니면 붙박이로 고정(pin)시킬 수 있는데, 그 상태를 나타내는 아이콘이 바로 자체 폰트이다.

초창기 버전인 Visual Studio .NET은 이를 위해 VisualUI라는 폰트를 임시 등록하곤 했다.
아래의 글립들을 보시라. 0x5부터 0x7의 자리에 있는 주사기 비스무리한 아이콘이 바로 저것이다.

사용자 삽입 이미지

.NET의 초기 버전은 자기가 실행돼 있는 동안 VisualUI 폰트가 시스템 전체에 등록되어서 이름을 조회할 수 있었다. 이는 불필요한 side effect이므로 후대 버전에서는 그렇게 되지 않게 바뀌었다.

또한 Outlook도 자체 UI를 표시하기 위한 폰트를 구비하고 있었다. MS Outlook이라는 폰트가 있는데, 아래와 같은 글립만 들어있는 작고 단촐한 폰트이다.

사용자 삽입 이미지

이것도 후대 버전에서부터는 티가 나지 않기 시작했다. 참고로 폰트를 시스템 전체가 아니라 자기 프로세스 내부에만, 더구나 디스크 상의 파일이 아니라 메모리 데이터만으로 간편하게 임시 등록하는 함수는 Windows 2000에서부터 처음으로 추가됐다(AddFontMemResourceEx). 자기들도 프로그램 만들 때 필요하니까 추가한 것이 분명해 보인다.

그럼, 개인적으로 하나 궁금한 것을 예를 들면서 글을 맺도록 하겠다.
저런 기하학적인 UI 이미지 중에는 뭔가 공간이 부족한 환경에서 "나머지도 마저/모두 표시"(Show all / More)라는 의미를 갖고 있는 이중 갈매기(angled bracket) 마크가 있다. >> 요거 말이다. 오른쪽을 가리키고 있는 게 제일 많으며 드물게 아래로 향할 때도 있다.
부등호와 비슷하게 생겼지만 명칭이 부등호는 절대 아니다. 이건 마이너스(빼기)와 dash/hyphen이 다른 것만큼이나 다르며, 번호 #과 조표 #이 다른 것만큼이나 다르다.

사용자 삽입 이미지

이렇듯, 요 마크는 사용자가 심심찮게 접한 적이 있을 것이다.
어째 공교롭게도 Windows XP 시절의 옛날 UI에서 더 눈에 많이 띄는 것 같다만.. 그래도 저 표시가 옛날 UI의 전유물인 것은 아니다.

더구나 Windows 9x 초창기부터 존재했던 물건도 아니다. 그렇기 때문에 의외로 Marlett 폰트에는 존재하지 않는다. 딱 거기 있을 법해 보이는데도 불구하고 말이다.
아래로 향하는 모양은 Windows 2000/ME 시절, 딱 저 personalized menu 때문에 즐겨 쓰였고, 오른쪽으로 향하는 모양도 저렇게 90년대 말이나 2000년대 초부터 등장한 것같다.

본인은 이것도 뭔가 모처의 폰트를 사용해서 출력하는 것이지, 비트맵은 아닐 거라고 생각한다. 하지만 정확한 출처를 발견하지 못했다. comctl32나 shell32 내부에 비트맵으로라도 존재하지 않을까 생각했지만 그런 건 없었다. 그 출처가 궁금하다. 빨리 감기/되감기 버튼처럼 채워진 삼각형이 두 개 붙은 모양은 각종 심벌 글꼴에 아주 흔하게 존재하는 반면에 저 모양은 유난히 눈에 띄지 않더라.

참고로 MFC에서는 하드코딩된 비트맵 형태인 게 맞다. MS Office의 외형을 흉내 내는 기능이 있으니 저런 마크를 출력하는 기능도 응당 있을 텐데.. 소스를 들여다보니 그냥 비트맵이었다. 약간 허무함이 느껴졌다. 명칭은 afxmenuimages.h에 선언돼 있는 IdArrowShowAll (아래), IdMoreButtons (오른쪽)이다.

사용자 삽입 이미지

Posted by 사무엘

2020/01/11 08:33 2020/01/11 08:33
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1704

옛날에는 멀쩡한 사람을 모함하고 누명 씌워서 제거하는 방법이 정치 분야의 역적, 아니면 종교 분야의 이단/이교도(특히 서양에서) 만들기 정도가 있었다.
오늘날은 그때보다 사회 구조가 복잡해졌다 보니, 사람을 유죄 추정의 원칙에 근거하여 매장하는 방법이 분야별로 더 다양해져 있다.
  • 이 반도 땅 한정으로 친일파 내지 빨갱이: 그런데 '진짜 빨갱이'는 멀쩡히 판치면서 돈과 권력을 쥐고 나라를 마음껏 말아먹고 허물어뜨리고 있는 반면, 당장 외환죄 급으로 나라 존립을 위협하는 친일파 따위는 실체가 전혀 존재하지 않는다.

  • 성추행범: 판단 잣대가 그야말로 옛날의 막걸리 반공법 뺨칠 정도로 엿장수 마음대로이다. 그 반면, 무고죄 저지른 허언증년에 대한 응징은 솜방망이급에 불과하다. 신분증 위조해서 술 산 애새끼는 아무 일 없는데 가게만 벌받는 것처럼 말이다.

  • 탈세범: 나랏님 마음에 안 드는 기업인 경제인을 조지는 특효약이다. 특히 영세 자영업자 내지 혼자 잘나가는 프리랜서가 제일 만만한 호구이다. 법의 허점을 완벽하게 피해 가는 게 사실상 불가능이기 때문이다.

위증 무고죄 허언증 거짓말이야말로 한번 입 잘못 놀렸다가는 저 정도로 매장되고 X되고 훅 간다는 사회 분위기가 형성돼야 할 텐데.. 천조국처럼 말이다.

하지만 남을 거짓말쟁이라고 누명 씌우고 매도한다거나, 반대로 그런 누명을 썼을 때 당사자가 빨갱이· 친일파 이상으로 엄청나게 화내고 기분 나빠하고 결투 신청이나 심지어 자결(?)로라도 명예를 회복하려는 관행은 이 나라에 존재하지 않는다. 이 나라는 어쩌다가 이렇게 됐는지는 모르겠지만 거짓말에 너무 관대한 것이 사회악 망국병 수준인 게 분명해 보인다.

그리고.. 억울하게 누명을 쓴 사람이 있는 것과는 별개로, 실제 성추행범과 탈세범, 종북 빨갱이는 지금도 당연히 존재하고 있다. 이들이 죄질이 결코 가볍지 않은 나쁜놈들인 건 변함없다. 소수의 예외적인 사례 때문에 문제의 본질을 놓치지는 말아야 한다.

요 근래에 본인의 멘탈에 굉장히 큰 상처를 입힌 바깥 소식은 세 가지이다.

  • 멀쩡한 월성 원자력 발전소의 원자로 난도질과 해체 (고리도 아니고 월성이더군!)
  • 멀쩡한 탈북자를 범죄자 딱지와 함께 북송 (여기에 대해 침묵할 거면 지금까지 인권팔이 하던 자식들 당장 다 닥버 자폭해라)
  • 그 미친놈을 그나마 법무부 장관 자리에서는 끌어내렸지만.. 수십억대의 갑부 주제에 뭐? 구속되면 가족 생계가 막막하다고 변명을 해..?
    (지금은 신 정아 시즌 2를 찍으면서 국제적으로까지 망신살이 잘 하고 있더라. 그러고 있으면서 정 유라의 과제 대리수행 욕을 같이 늘어놓는 건.. 거의 다중인격 정신분열 중증 말기가 아닌가 싶다.)

저 X끼가 운동권 주사파 출신 법조인이 아니라 그냥 대기업 재벌 2세 3세였어 봐라, 여론이 어찌 됐을까? 우와..
이 세 가지는 정말 자다가도 썅 소리와 함께 벌떡 일어나서 개XX 소XX 쌍욕을 퍼붓고 멱살 잡고 뒤집어엎고 다 때려부수고 쳐죽여 버리고 싶은 사항이다.

킹 제임스 성경이 원어· 원문(originals)보다 더 나은 이유 중의 하나로 "후자는 아예 실체가 존재하지 않기 때문" 이런 논리가 있다.
본인은 이와 정확히 동급으로 "종북이 친일보다 더 나쁜 이유"도 "후자는 아예 실체가 존재하지 않기 때문"이라고 말한다. 지금 일본이 핵무기· 미사일을 개발하고 있고 온갖 비열한 도발로 한국 군인을 다치게 하지는 않았을 뿐더러, 그걸 옹호하거나 일본에게 평화 운운하면서 막 퍼주자고 주장하는 미친놈은 없기 때문이다.

이런 거 분별할 능력도 없는 애새끼들한테 투표권 줘서 뭐 어쩌겠다고?
투표권은 자동차 운전까지 가능하고 납세와 병역이라는 의무를 이행하는 시늉이라도 한 사람에게만 줘도 충분하다.
지금은 사법 책임을 질 수 있는 최소 연령, 목욕탕의 이성탕에 입장 가능한 최대 연령 같은 거나 더 낮춰야 할 것이다.

Posted by 사무엘

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

요즘 Visual C++ 사용 메모

1. 디버깅 관련

수 년 전에 본인은 Windows에서 명령 프롬프트와 디버그 로그(OutputDebugString)에 유니코드가 지원되는 날이 언제쯤 올까 푸념을 늘어놓은 적이 있었는데.. 이건 놀랍게도 Windows 10에서 명령 프롬프트의 유니코드화(특수한 여건이 갖춰졌을 때 부분적으로 한해서)와 더불어 그럭저럭 현실이 됐다.

디버거 툴에 대해서 본인이 더 원하는 것은..

(1) IDE가 디버거를 붙여서 직접 실행해 준 디버기 말고.. 타 프로세스에 의해 실행된 디버기도 자동으로 감지해서 breakpoint 내지 로그 출력을 잡아 주기
(2) breakpoint의 작동 조건으로, "임의의 타 지점을 먼저 지나쳤거나 그게 call stack 아래에 있을 것" 정도 지정하기

정도이다.
(1)을 위해서 Attach to process 같은 기능이 이미 있긴 하다. 하지만 내 프로그램이 아주 잠깐 동안만 짤막하게 실행되고 마는 상황이라면(정상적인 종료이든, 오류로 인한 종료이든) 사용자가 느릿느릿 일일이 저 명령을 내릴 겨를이 없다.
이건 EXE의 디버깅도 DLL의 디버깅과 비슷한 양상으로 만든다. 실행 인자를 사용자가 지정해 주는 게 아니라, 이 EXE는 다른 EXE로부터 어떤 인자를 받아서 실행됐는지를 디버거로부터 안내받게 될 것이다.

(2)는 물론 코드 자체를 고쳐서 상태 변수 같은 걸 global하게 추가하는 식으로 편법으로 구현할 수는 있다. 하지만 그건 몹시 귀찮고 불편하다.
디버깅을 해야 하는 코드가 여러 부분에서 호출되고 있는데 우리는 특정 상황에서 호출된 것에만 관심이 가 있는 거.. 생각보다 자주 있는 일이다. 이에 대한 지원이 더 잘 된다면 프로그래머의 생산성이 많이 향상될 수 있을 것이다.

글쎄, 위의 두 아이템은 오래 전에 이미 언급한 적도 있을 것이다.
이것 말고.. 딱히 기술적으로 어려울 것 전혀 없는데 좀 있었으면 좋겠다 싶은 기능으로는..
디버깅을 위해 실행할 프로그램과 인자(argument)를 여러 세트 등록해 놓고.. 사용자가 예전에 등록해 놨던 세트를 곧장 불러올 수 있으면 좋겠다.

지금도 Debug 탭의 Command 입력란의 콤보 상자를 눌러 보면.. 달랑 revsvr32, Edit, Browse 이런 몇 가지 고정적인 아이템밖에 없다. 거기에다가 사용자가 이전에 등록한 적 있는 세트들이 같이 나오면 된다. 이 얼마나 깔끔한가?
EXE라면 Command가 바뀔 일은 별로 없겠지만 인자에 대한 세트 관리 기능이 있다면 충분히 유용할 수 있다.
IDE에 이런 기능이 없으니 날개셋 같은 개인 작품에서나 회사 제품 코드에서나.. 디버깅을 위해 사용할 다양한 프로그램들 경로를.. 소스 코드 주석이나 별도의 텍스트 파일에다 따로 메모해 놓는 촌극이 벌어지고 있다.

세트 데이터는 굳이 해당 프로젝트 파일에다가 저장하지 않아도 된다. 프로젝트/솔루션에 의존할 필요 없이, 그냥 그 프로그램 자체의 history data 명목으로 관리하는 형태로 제공되어도 충분히 편리할 것 같다.

2. 코드 자동 서식 적용

요즘 Visual C++ IDE에는.. 코딩을 하면서 닫는 중괄호나 세미콜론이 입력됐을 때, 각종 변수와 연산자· 토큰 사이에 공백을 균일하게 삽입하거나 없애고 탭 들여쓰기도 일관되게 맞춰 주는 '자동 서식' 기능이 제공된다. 쉽게 말해 whitespace에 대한 formatting 말이다. 이 옵션이 기본적으로 켜져 있다.

내 기억이 맞다면 이건 Visual C++ 2013쯤부터 처음으로 도입됐다. 2012에는 아직 확실하게 없었다.
베이직은 1980년대 도스 시절 QuickBasic에서부터 있었으며 C#도 최소한 200x 버전에서는 들어간 기능이지 싶은데 C++은 이제야 도입됐다.

다른 언어들은 문장을 완전히 파싱해서 내부 representation tree로 바꾼 뒤, 그걸 텍스트로 재구성함으로써 서식도 덤으로 적용되는 것이겠지만, C++은 그럴 수는 없지 싶다. 진짜 기계적이고 lexical한 문자열 치환 수준에서만 서식이 적용되지 싶다.

자동 서식 기능이 전반적으로는 괜찮은 편인데.. int *a, *b는 왜 int* a, * b라고 공백을 어색하게 배치하나 모르겠다. D처럼 int* a,b라고 썼을 때 b까지 포인터형이 되는 언어라면 모를까, 포인터형 별표와 변수명 사이에 공백이 들어가야 할 필요는 느껴지지 않는다.

그리고 배열 delete인 delete[]도 토큰 배치가 약간 기괴하긴 하지만.. 개인적으로는 붙여서 delete[] ptr; 이러는 걸 선호한다. 거기까지는 괜찮은데 delete []a를 다 붙여서 delete[]a로 바꾸는 건 좀 의아하다. 차라리 delete[] a라고 해 주지..
비슷한 맥락으로로, 함수의 인자로 배열의 포인터를 전달하는데 TYPE(*arg)[4] 같은 것을 한데 다 붙여 버리니 이 또한 어색하고 이상하다.

이런 것들이 C++의 자동 서식은 완전한 파싱을 거쳐서 적용되는 게 아니기 때문에 발생하는 부작용이지 싶다. 그러니 매크로나 템플릿 내부 같은 데서도 정확한 동작을 기대하기 어렵다.

3. 2019, 대화상자 리소스 에디터 뻗음

Visual Studio IDE는 2012~2013 즈음부터 외형이 크게 바뀌지 않기 시작했기 때문에 특히 2015와 2017은 내 경험상 거의 분간이 안 된다. 영문판은 웬일로 FILE EDIT 등 메뉴 이름을 잠깐 몽땅 대문자로 표기하는 객기(?)를 부리기 시작했다가 후대 버전에서 객기를 접은 듯하다.
2019는 프로그램의 제목 표시줄이 없어지고 화면 첫 줄에 곧바로 메뉴가 표시되기 시작했다. 현재 열려 있는 솔루션의 이름은 메뉴의 오른쪽에 표시된다. 윕 브라우저들도 그렇고 요즘은 제목 표시줄을 없애는 게 유행이기라도 한가 보다. 게다가 쟤들은 메뉴조차 없애 버리고 Alt키를 눌렀을 때만 메뉴가 표시되게 해 놨다.

그렇게 프로그램의 외형이 야금야금 바뀌는 것이야 좋다고 치는데.. 왜 예전에는 경험한 적이 없던 버그까지 야금야금 끼어 들어가나 모르겠다.
우선 아주 불규칙하지만 분명한 빈도로.. 텍스트 에디터의 폰트가 본인이 수동으로 변경하기 전의 원래 폰트로 되돌아간다. 정확한 재연 조건은 모르겠다. Visual Studio를 열어 놓은 채로 며칠 간격으로 절전 모드에 들어갔다가 복구하기를 반복하다 보면 되돌아가 버린다.

그리고 C++ win32 리소스 중에서 대화상자 편집기만 제대로 안 열리고 프로그램이 무한 루프에 빠지며(= CPU 소모하면서) 응답이 멎는 문제가 있다.
잘 알다시피 Visual Studio 2012부터는 msi 파일을 생성하는 배포 패키지 프로젝트가 짤려서 기본 제공되지 않는다. 별도의 extension을 설치해야만 다시 지원된다. 본인은 회사에서는 그렇게 했다.

그런데 그 extension을 설치한 뒤부터 win32 프로젝트에서 대화상자 편집기가 열리지 않고 IDE가 얼어붙어 버렸다. 그래서 대화상자 리소스를 편집하는 작업을 할 수가 없어졌다.
뒤늦게 그 extension을 disable시키거나 아예 제거해도.. 버전 16.2.3 최신 업데이트를 적용해도, 심지어 Visual Studio를 재설치(복구)해도 그 문제는 해결되지 않았다! 이 VS 2019는 대화상자 리소스를 영원히 편집할 수 없는 절름발이 상태가 된 것 같다.

검색을 해 보니 이 문제는 VS 2019 초창기 시절부터 종종 보고되곤 했던 것 같다. 하지만 release candidate 수준의 옛날 일이지 최신 업데이트에 이르기까지 문제가 발생하거나 해결됐다는 얘기는 딱히 발견하지 못했다.
이러니 Visual Studio는 최신 버전이 구버전의 용도를 완전히 흡수· 대체하지 못하고 구버전도 여전히 병행해서 사용돼야만 할 것 같다. 결국 회사에서도 2010을 따로 설치해야 했다.

4. 2010, 동작은 하지만 이상한 경고 메시지

그럼 구버전은 아무 이상이 없느냐 하면 불행히도 그것도 아니다.
Windows 10 초창기에는 안 그랬던 것 같은데.. 운영체제 업데이트를 몇 번 거치고 나니 VS 2010 devenv.exe는 정체를 알 수 없는 이상한 에러 메시지를 한번 내뱉은 뒤에 실행된다.

The file C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Vsa.tlb could not be loaded. An attempt to repair this condition failed because the file could not be found.
Please reinstall this program.


이미 알려진 문제이며 .NET Framework 3.5를 설치한 뒤에 Visual Studio도 복구(재설치)하면 이런 메시지가 없어질 거라고 하는데..
프로그램 사용을 못 할 정도의 치명적인 오류는 아니니 귀찮아서 안 하고 지낸다. 어차피 VS 2010을 C# 같은 .NET 플랫폼 개발용으로 사용하는 건 아니니 말이다.

5. 컴파일러의 버그

하루는 32비트 정수와 16비트 정수를 인자로 받아서 이걸 한데 뭉친 64비트 정수를 되돌리는 정말 간단한 인라인 함수를 구현한 적이 있었다. 이렇게 생성된 값을 저장하고 불러오게 했는데.. 문제가 발생했다. 불러온 결과가 이전에 저장했던 결과와 일치하지 않고 프로그램이 제대로 동작하질 않았다.

곳곳에다 변수값을 화면에다 찍어 봐도 내가 짠 코드에는 좀체 문제가 없는 것 같고.. 듣도 보도 못한 이상한 값은 전혀 예상치 못했던 곳에서 갑자기 생기고 있었다.
비유하자면 MAKELONG(16012, 76)의 계산 결과값이 저장할 때와 불러올 때가 서로 다르다는 게 믿어지시는가? high word 쪽의 값이 내가 지정한 값이 아니라 32766 같은 엉뚱한 값을 기준으로 계산되었다.

해당 함수를 #pragma를 줘서 최적화를 끄고, 인라이닝을 해제하는 등 별짓을 해도 계산값이 교정되지 않았다. 컴파일러가 구형인 것도 전혀 아니고, 갓 업데이트 받았던 따끈한 Visual C++ 2019 16.3.2였다.
신기한 것은.. { return X|(Y<<32); } 대신

{
    auto ret = X|(Y<<32);
    TRACE("%d %d\n", X,Y);
    return ret;
}

이렇게 함수 인자를 강제로 화면에다 찍게 하면 버그가 발생하지 않고 계산이 맞게 되었다는 것이다.
하지만 저렇게 하지 않고 함수를 아예 #define 매크로 형태로 고쳐도 문제가 동일하게 발생하니.. 이 정도면 변수를 참조하는 코드 자체가 단단히 잘못 생성되고 있는 것이나 마찬가지였다.

수 년 전엔 bit rotation을 구현한 암호화 알고리즘에서도 release와 debug의 동작이 다르고 최적화 적용 여부에 따라 동작이 달라지는 현상을 발견하긴 했는데.. 이 문제는 그것보다도 더 심각한 문제였다.
물론 비트 연산이라는 공통점은 있다. 컴파일러가 << >> | 같은 연산자를 다루는 데서 무리하게 최적화를 시도하는가 보다.

결국 이 버그는 memcpy라는 무식하기 짝이 없는 물건을 동원함으로써 겨우 회피할 수 있었다. 64비트 정수에다가 일단 32비트 값을 대입한 뒤, 4바이트 오프셋에다가 16비트 정수를 강제로 복사하게 했다. 컴파일러가 memcpy는 어째 제멋대로 최적화를 안 했는지 이렇게 하니 프로그램이 깔끔하게 돌아가기 시작했다. 비트 엔디언 독립성은 물론 포기했다.

memcpy는 예전에 align이 맞지 않는 임의의 단위로 메모리를 읽고 써야 할 때.. x86 계열에서는 아무 문제 없다가 ARM 같은 CPU에서 멀쩡한 프로그램이 뻗을 때도 유용하고 사용한 적이 있다.. CPU 특성이나 컴파일러의 특성을 가리지 않고 제일 무식하고 확실하게 메모리를 읽고 쓰는 게 보장돼야 할 때 최후의 보루 역할을 하는 듯하다.
그나저나 컴파일러의 버그임이 명백한 이 현상은 도대체 왜 발생하는지, 해결할 방법이 없나 궁금하다.

이상이다.
본인은 예나 지금이나 개인용 컴터에는 VS 2003, 2010, 2019를 나란히 설치해 놓고 지낸다. 즉, 최신 버전 말고도 2003과 2010은 고정 설치라는 뜻이다.

한때는 최신 API에 대한 설명 때문에 201x의 도움말을 하드에 설치해 놓았으나, 요즘은 마소에서 로컬 도움말은 2015 이후로 업데이트도 안 하고 거의 버린 자식 취급하길래..
그건 포기하고 그냥 옛날 200x 시절의 MSDN을 고전 Windows API 및 기본 C/C++ 레퍼런스용으로 사용한다. 이걸로 충당이 안 되는 최신 정보는 인터넷 조회로 해결하고 말이다.

Visual C++ 201x 버전들에서 본인의 기억에 남아 있는 인상적인 변화 사항은 다음과 같다.

  • 2012: 흰 스킨 도입. Windows XP 타겟 지원을 최초로 중단했다가 별도의 툴킷으로 따로 제공 시작. Syntax coloring이 더 세분화됨. 정적 분석 기능 도입. 예전 같은 서비스 팩 대신, 업데이트 n 형태로 수시로 업데이트 되기 시작
  • 2013: 약간 푸르스름하면서 흰 스킨 도입. 코드 자동 서식 적용 시작, 커뮤니티 에디션 도입.
  • 2015: C 런타임 라이브러리 구조가 개편됨
  • 2017: 설치/업데이트 체계가 전면 개편됨. 안드로이드 등 별별 환경 개발까지 다 지원하기 시작. 오프라인 도움말 앱을 사실상 지원 중단
  • 2019: 프로그램 제목 표시줄이 없어짐. 스플래시 화면이 더 간지나게 바뀜. 색깔이 채도가 약간 더 올라가고 산뜻해짐. 처음 실행했을 때나 기존 솔루션을 닫은 직후에 통상적인 시작 페이지 대신, "원하는 작업을 선택하세요" 대화상자가 표시됨.

Posted by 사무엘

2020/01/04 08:34 2020/01/04 08:34
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1701

똑똑한 사람들 열전

1. 중국: 한어병음의 고안자

중국에서는 1950년대 말을 기해서 공식 표기 문자를 간체자로 바꿨으며, 비슷한 시기에 발음 표기도 전통적으로 사용하던 주음부호 대신 알파벳 기반의 한어병음으로 교체했다.

간체자는 모르겠고 한어병음을 고안한 사람은 '저우 유광'(周有光)이라는 경제학자 겸 언어학자이다. 중국을 우주 개발 강국으로 터를 닦아 놓은 첸 쉐썬만큼이나 자기 나라에 큰 영향을 끼친 천재 중 하나이다. 각각 문과, 이과 버전인지..?

저우 유광은 겁나게 똑똑했을 뿐만 아니라 겁나게 장수하기도 했다. 1906년에 태어나서 바로 3년 전, 2017년에 죽었다! 이 얘기를 해 주니 중국인 지인들도 꽤 놀라더라. >_<
철덕의 예시를 든다면, 경부선이 개통해서 증기 기관차가 다니던 해에 태어난 사람이 SRT 수서 고속철이 개통하는 걸 보고 죽었다는 얘기다. 심지어 자기 아들이 2015년에 80살의 나이로 먼저 죽었다..!!

남자가, 그것도 장수촌에서 평생 농사만 지으며 스트레스 없이 산 할배도 아니고, 교수 등 고위관직을 넘나들던 아저씨가 110세를 찍었다니 대단하지 않을 수 없다. 우리나라는 백 선엽 장군이 오늘 내일 100세 진입이긴 하다만..

그리고 첸 쉐썬 박사도 저우 박사만치는 아니지만 그래도 1911년 태생, 2009년 사망으로, 100세에 근접하며 꽤 장수했다.
비슷한 연배인 타국의 로켓 과학자들과는 확연하게 비교된다. 독일-미국의 베르너 폰 브라운(1912-1977), 소련의 세르게이 코롤료프(1907-1966) 말이다.
누구든 몸 관리는 자기가 알아서 잘 해야겠다.;;

2. 일본: LHA의 개발자

지금으로부터 30여 년 전 1988년에 한국에서는 어떤 겁나게 똑똑한 의사가 '백신'이라는 이름으로 안티바이러스 유틸을 만들었다.
그런데 1988년에 일본에서는 어떤 겁나게 똑똑한 의사가 파일 압축 유틸을 만들었다. 이름하여 LHA. 개발자인 요시자키 하루야스는 최근 사진과 근황을 인터넷에서 쉽게 찾을 수 있을 정도로 유명한 인물은 아니다만, 여러 사이트들에서 1955년생의 내과의사(physician) 겸 아마추어 프로그래머라고 그럭저럭 소개돼 있다.

저 사람이 압축 알고리즘 자체를 완전히 새로 고안한 건 아니었다. 단지, 그 당시 외국 서적을 통해 압축 알고리즘 이론을 공부해 보고는 흥미를 느껴서 그걸 그대로 또는 자기 식으로 조금 바꿔서 어셈블리어로 코딩해 보고 lzh 파일 포맷을 만들고, 파일들을 한데 묶어 주는 유틸리티를 구현하게 된 것이다. 물론 그것만으로도 아무나 할 수 있는 일은 절대 아니지만 말이다.

그때는 PC 통신으로 파일을 주고 받기 위해서는 압축 유틸을 다루는 게 필수였다. 소요 시간과 전화 요금이 걸린 문제이기 때문이다.
그리고 기껏해야 format a: , diskcopy a: b: 이러던 시절에 압축 유틸리티는 이례적으로 명령 옵션 사용이 좀 복잡한 프로그램이었다. 그 시절에 압축 유틸리티라는 게 lha a xxx.lzh *.* (압축하기) 이런 식으로 사용되곤 했기 때문이다.

LHA는 일단 일본 내부에서 큰 인기를 끌면서 국민 압축 프로그램으로 등극했으며, 일본과 가까워서 그런지 한국에서도 유명세를 탔다. 내 개인적으로도 집 컴이 286 AT이던 시절, 태어나서 처음으로 써 본 압축 유틸리티는 pkzip이 아니라 LHA였다.
한국· 일본뿐만 아니라 영미권에도 알려졌는지, id 소프트웨어에서 Doom 같은 게임을 배포할 때 바이너리들이 이 방식으로 압축되었다고 한다. (정작 그 시절에 도스용 아래아한글은 내 기억으로 zip 압축이었는데..)

개발자분은 pkzip의 개발자인 필 카츠와도 종종 연락하고 친목을 나누면서 90년대 초까지는 프로그램을 버전업도 했다.
그러나 그는 본업이 따로 있는 사람인지라(능덕..) 프로그래밍에서는 서서히 손을 떼게 되었고, LHA는 후임 개발자 없이 압축률과 처리 속도 면에서 ZIP을 비롯한 타 압축 파일에 밀리기 시작했다. 유니코드, 64비트, 멀티코어 지원, 보안 문제 등등에도 대응하지 못했다.

Windows의 경우 XP에선가 zip 압축 파일 내부를 탐색기에서 일반 폴더 들여다보듯이 직통으로 조회하는 기능이 추가되었는데, 일본어판은 LZH 파일 내부도 그렇게 들여다보는 기능이 들어가 있었다고 한다. (내가 직접 확인은 못 해 봤음)

허나 2010년대에 와서는 일본 내부에서도 각종 소프트웨어에서 LZH에 대한 지원을 중단하기 시작했고, 그렇게 시대를 풍미했던 압축 파일은 역사 속으로 사라졌다.
누가 만들었는지 LHICE라는 프로그램과 *.ice라는 압축 파일도 나돌았었는데.. 이건 그냥 LHA/LZH과 동일한 클론일 뿐이다.

3. 한국: 배우 신 영균

지난해 11월엔 원로 배우 신 영균 씨가 전재산 환원을 선언하면서 언론 인터뷰에 나섰다. (☞ 링크)
기사의 제목을 "내 관엔 성경책만 넣어 달라"라고 뽑으니 이거 뭐 당사자가 오늘 내일 하는 위독한 상황이고 유언을 남기기라도 한 것처럼 느껴지지만, 전혀 그렇지 않다. 당사자는 91세의 나이에도 쟁쟁하시다. 사진만 보면 그냥 평범한 70대 노신사 정도로나 보일 정도로 건강하다~!

이분은.. 그야말로 만능 엄찬아였다.
집안 사정 때문에 서울대 치의대를 나와서 치과 의사를 시작했지만.. 연기를 너무 좋아하던 개인적인 꿈을 떨칠 수 없어서 결국 병원 때려치우고 이미 처자식이 있는 상태에서 데뷔했다. 196~70년대에 배우 및 영화 제작자로 전격 전업했다.
그래서 그 이름도 유명한 1964년의 최고 흥행작 <빨간 마후라>에서 주연 배우를 맡았다.

이분은 그러다가 사업과 부동산 투자에도 손대서 대성공을 거뒀다. 영화관을 통째로 소유하는 등 몇백억 대의 자산가가 되었고, 나중에는 교수, 정치인까지 역임했다.
인생 자체가 영화나 다름없는 입 쩍 벌어지는 ㅎㄷㄷ한 분이다. 의사부터 하다가 사업, 정치까지 다 손대고 갑부가 됐다는 점에서는 안 철수나 공 병우하고도 비슷하네..

그런데 이분은 그냥 세상적인 성공으로도 모자라서 신앙까지 완전 독실했다. 프로필 상의 종교는 침례교였다는데..
그 당시에 잘나가던 배우들이 갖은 스캔들에 이혼 이력 하나 없는 경우가 없다시피했던 반면, 이분은 그렇지 않았다. 술· 담배 안 하고, 평생 한 아내하고만 아무 트러블 없이 가정과 직업에 충실하며 살았다.

이 정도면 가히 모든 걸 완벽하게 이룬 분 같다. 완전 부럽다. 자기 인생이 자기가 연기한 영화보다 더 영화 같았다..;; 자서전이라도 쓴 게 없나 궁금하다.
이런 옛날 사람에 대해 내가 어떻게 아냐 하면.. 잘 알다시피 예전에 “소령 강 재구”부터 시작해서 옛날 영화 좀 뒤져보다가 프로필이 하도 인상적인 분이 있어서 기억에 남게 됐다.

비슷한 시기에 마침 17년을 재직하다가 91세 나이로 퇴직하신 맥도널드 최고령 알바 어르신 얘기가 보도됐던데.. 그분하고 거의 같은 연배인 것도 신기하다.

4. 박사

우리나라와 관련된 근현대 인물 중에는.. 대학원에서 논문 쓰고 통과되어 정식으로 박사학위를 받지 않았지만 관례상 박사라고 불리는 인물이 좀 있다.

가령, 서 재필은 의사이지, 박사학위 소지자는 아니다. 아마 의사 doctor와 박사 doctor가 헷갈려서 박사라는 호칭이 붙은 것 같다. 옛날에는 오스트리아 출신의 프란체스카 여사를 보고도 '호주댁'(오스트레일리아?)이라는 별명이 통용될 정도였으니..
뭐, 서 재필은 한국인 최초로 서양의 의대 코스를 마친 사람었으며, 의사는 그 자체만으로 석· 박사에 준하는 고된 교육과정을 마친 사람이긴 하다.

또한, 호머 헐버트 역시 다트머스 대학을 나오긴 했지만 박사학위 소지자는 아니다. 그러나 그 정도 공식 학력만으로도 교육자로서 거의 대학 강사급의 일을 한 똑똑한 사람이긴 했다. 언어학, 신학 등 다방면에서 말이다.
이들과 달리 이 승만 할배야 누구나 잘 알다시피 진짜 미국 대학 박사 1호였고, 프랭크 스코필드는 수의학 박사였다. 공 병우 박사도 단순 의사를 넘어 나고야 제국 대학교에서 의학 박사 학위까지 딴 사람이다.

5. 과학 분야 노벨 상

말이 나왔으니 말인데..
일본은 이제 일곱째도 아니고 17째도 아니고.. 무려 27째 노벨 상 수상자를 배출했다고 한다.
저 동네는 애초에 중소기업 연구원이 노벨 상을 받는 미친 나라이다. 노벨 상이 무슨 동네 똥개 이름도 아니고 뭐 저렇게 흔해 빠졌냐..

지난 2014년엔 청색 LED 관련 연구를 한 사람이 물리학상을 받았었는데 이번에는 리튬이온 전지 차례구나. 디스플레이, 그리고 2차 전지.. 다 오늘날 매우 중요하고 실용성이 높은 연구 분야이다.
일본의 저력은 알면 알수록 대단하고 무섭다. 그리고 저런 라이벌을 과거에 실력으로 꺾었던 현대와 삼성 경영주와 엔지니어들이야말로 진짜 우리나라 최고의 애국자였다.

요즘은 노벨 상 수상자들의 연령이 예전에 비해 갈수록 높아지고 있다. 그야말로 평생을 한 분야 외길만 파다가 인생 황혼기인 7, 80대 때 받는 게 보통이다.
정말 엄청난 돈지랄 인프라가 필요해서 여기 국력과 경제력으로 도저히 감당 불가능한 예외적인 분야가 아닌 한.. 노벨 상 수상자가 나오려면 방망이 깎던 노인, 독 짓는 늙은이, 은전 한 닢 같은 근성의 외곬수 과학 기술 덕후가 존중받고 예우받고 마음껏 오덕질을 하는 분위기가 조성되는 것 말고는 답이 없다. 저런 사람이 한두 명이 아니라 그냥 떼거지로 우글거려야 하고, 상 같은 건 바라지도 않았는데 덤으로 따라오는 구조가 돼야 한다.

우주인이니 금메달리스트니 스타 과학자(그놈의 노벨 상 받는)니 육성하겠다고 난리법석 떨고 나라에서 멍석 깔고 전시행정 쑈 헛짓을 벌이면 벌일수록, 우리나라는 노벨 상과는 더욱 멀어지고 요원해질 것이다.

Posted by 사무엘

2020/01/01 08:32 2020/01/01 08:32
, , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1700

우리나라의 산업화 시절 무용담들을 살펴보면.. 경부 고속도로와 포니와 제철소 3관왕을 달성한 왕회장부터 시작해서 과감하게 반도체를 시작한 삼성 이 병철 회장, 일본으로부터 용케 스프 제조 노하우를 전수받아서 삼양 라면을 최초로 개발한 전 중윤 회장 등 여러 일화가 전해진다.

사용자 삽입 이미지

우리나라의 건국 초창기, 할배가 집권해 있을 때야 김 두한의 사딸라를 능가하는 손 원일 제독의 근성의 가격 후려치기 협상(군함 도입), 그리고 홍 덕영 골키퍼의 눈물의 투혼 같은 이야기가 캐감동이다. 그건 각각 군사와 스포츠 분야이고, 경제와 기업 이야기는 아무래도 훗날 박통 때부터야 본격적으로 등장한다.

이런 분야에 더 관심이 있다면 유튜브로 '기업비사'라든가 '신화 창조의 비밀' 시리즈를 쭉 찾아보시기 바란다. 이 반기업 정서가 횡행하는 시대에 사상 무장용으로 유익하다. 뭐 굳이 옛날 이야기가 아니더라도 '극한직업' 시리즈도 좋고 말이다. (당연히 영화 말고 다큐멘터리..)
학교에서 애들한테 주식 투자나 부동산까지 가르칠 필요는 없겠지만.. 최소한 알량한 사회주의 공산주의 공유 환상의 허구에 속지 않을 정도의 방어적인 경제관념 교육은 어릴적부터 정말 필요해 보인다.

친환경 친인간(?)에 더불어 공유하고 국유화하자고 선동하는 넘들치고 자기 사재 기부는 1원도 한 놈이 없으며, 자기들은 누구보다도 재테크에 빠삭해서 시장 경제 자본주의의 혜택을 다 입고 있다. 이건 공공연한 비밀이며 과학이다. 남의 돈 세금 갖고는 천하에 무슨 생색인들 못 내겠는가?
반공, 안보 외치는 높으신 분들치고 자기 자식새끼 군대 보낸 놈이 없는 것을 비판해 왔다면(실제로는 그 정도까지 막장인 것도 아님), 저 분야에 대해서도 똑같이 일관된 비판이 나와야 마땅하다.

뭐 그건 그렇고 다시 본론으로 돌아오면..
우리나라의 산업화를 이끈 위대한 거장 중 하나로, 포항제철을 건설하고 초대 회장을 역임한 한국의 철강왕 박 태준(1927-2011)을 빼놓을 수 없다. 질 좋은 강철이 있어야 그걸로 자동차도 만들고 선박도 만들고 레일도 만들 테니 제철소는 반드시 필요했다.

사용자 삽입 이미지

(제철소는.. 뭐 이런 분위기의 장소이다. 여느 제조 공장과는 분위기가 많이 다르다. 당연한 말이지만 저 붉은 쇳물은 화산 용암이나 마그마보다 훨씬 더 뜨겁다.)

그런데 그런 거대한 시설을 맨땅에서 짓는 건 결코 쉬운 일이 아니었다.
처음에는 UN 세계은행(IBRD), 국제 제철 차관단 등의 통상적인 국제 금융권으로부터 돈을 빌려서 그걸 밑천 삼아 지을 계획이었다. 그러나 거기서는 한국 같은 못사는 듣보잡 나라가 뜬금없이 제철소를 짓는 게 가능할 거라고 전혀 믿지 않았으며, 돈을 빌려주지 않았다.

이때 박 정희 대통령의 심복이었던 박 태준은 기지를 발휘해서 “아 그럼 대일 청구권 자금을 대신 투입하면 어떻겠습니까?”라는 제안을 했고, 대통령은 “오, 기막힌 생각이군. OK!” 했다.

그래서 결과만 따지고 보면 포항제철은 원래 농수산업 지원에나 사용할 돈, 그리고 일제 강제 징용 피해자에게 보상금으로 주라고 일본으로부터 받은 돈을 쓰윽 전용해서 만들어졌다. 훗날 포항제철은 굴지의 대기업으로 성장한 뒤에도 저런 사람들을 딱히 만나 주지도 챙겨 주지도 않았기 때문에 논란거리가 되었으며, 소송을 당하기도 했다.

포항제철은 왜 그런 태도를 보였을까? 블랙기업 악덕기업이어서? 설립자 박 태준이 친일적폐 싸이코패스 악마여서?
아니었다. 박 태준은 그런 인륜이나 도덕이 없는 사람이 아니며, 오히려 위인전에 실려도 손색이 없을 정도로 매우 훌륭하고 청렴한 기업인이었다. 소유와 경영을 분리해야 된다면서 회사 주식을 한 주도 갖지 않고 물러났을 정도로.

더구나 그는 그 유명한 우향우 정신의 창안자였다. “이 제철소는 우리 선조들의 피값인 대일청구권 자금으로 만드는 거다. 이 돈은 절대로 부정하게나 헛되이 쓰여서는 안 된다. 실패하면 우리 다같이 우향우 해서 영일만 바다에 뛰어내려서 죽어서 속죄하자” 이랬던 분이다.

포항제철은 그런 우여곡절 끝에 만들어졌다. 1973년 6월 9일은 포항제철 제1고로에서 최초의 쇳물이 쏟아져나온 날이다. 그래서 업계에서는 6월 9일을 ‘철의 날’이라고 기리고 있다. 당일부터 바로 기린 건 아니고 생각보다 늦은 2000년부터 시작됐다.

사용자 삽입 이미지

그가 얼마나 엄청난 업적을 남겼는지를 짐작케 하는 일화가 있다.

  • 1978년, 중국의 덩 샤오핑이 일본에 가서 우리도 제철소를 만들고 싶다고 자문을 구하자 일본의 신일본 제철 회장(이나야마 요시히로)은 “님 나라에는 박 태준 같은 인물이 없으니 여느 공장 정도는 지어도 제철소까지는 무리일 겁니다” 이렇게 뼈 있는 말을 남겼다.
  • 그리고 박 태준은.. 한국에 제철소는 택도 없다는 부정적인 보고서를 작성해서 세계은행으로부터 자금 대출을 무산시켰던 영국의 존 자페(Jon Jaffe) 박사를 1986년에 런던에서 다시 만날 기회가 있었다. 존 자페는 소감을 이렇게 말했다. “나는 17년 전의 판단에 대해 후회가 없으며, 지금 보고서를 다시 쓰라고 해도 똑같이 쓸 것이다. 겨우 그런 나라에서 대형 제철소는 얼토당토않은 소리인 게 맞다. 다만, 한국에서는 박 태준이라는 상식을 한참 벗어나는 인물 때문에 나의 예상이 예외적으로 빗나가게 됐을 뿐이다” ㅡ,.ㅡ;;

백 선엽(미국에서 더 예우와 존경을 받는 만렙 원로 장성)이나 차 범근(축구 선수 시절..)처럼 국내보다도 외국에서 더 전설을 넘어 레전드 평판을 받는 거인이 일부 있는데, 박 태준 역시 이에 해당했던 셈이다.
그런데.. 이런 엄청난 사람이 정작 훗날 일제 강제 징용 피해자나 위안부 할머니 같은 사람을 상대하지 않았던 이유는 무엇일까? 본인이 생각하기에는 일면 이해가 된다.

그는 우향우 운운하면서 피 같은 돈으로 혼신을 다해서 노력해서 제철소를 만들었다. 만약 실패하고 돈만 날려먹었다면 진짜로 이 한몸 바다에 빠져 죽어서라도 속죄할 의향이 있었지만, 이렇게 성공한 이상 그 자체만으로 자신의 책임을 다한 것이고 선조들 앞에서도 이제 지극히 떳떳하다.
그 이후로 포항제철이 더 성공한 것은 “기업 경영을 잘한 덕분”이지, 더는 무슨 부당한 돈이나 착취 덕분에 부정하게 성장한 게 아니라고 여긴 것이다.

이렇게 된 와중에 포항제철이 또 누구 후손에게 사죄를 한다거나 무슨 보상을 해 준다거나 하면.. 포항제철을 처음 만들 때 들였던 피눈물 나는 노력의 의미에 흠집이 가고 그게 떳떳하지 못한 행적이 되는 것이리라. 그렇기 때문에 그는 추후 불거진 보상 드립은 가당치 않은 요구라고 여기고 무시했음이 틀림없다. 사회 환원은 학교도 세웠고 이 정도 사내복지 수준이면 이미 충분히 하지 않았느냐 말이다.

성경에서 약간 비슷한 예가 떠오른다.
모세는 광야 생활을 하면서 반석에서 물을 내는 기적을 두 번 행했는데, 처음엔 반석을 쳤으며, 한참 나중에 두 번째엔 반석에게 말만 해야 했다. 그러나 모세는 끊임없이 불신하고 반역하는 미개한 백성들에게 너무 화가 난 나머지 두 번째에서도 별 생각 없이 예전처럼 반석을 쳤다. (민 20:10-11)

그래도 물이 콸콸 나오긴 했기 때문에 모세는 백성들 앞에서 체면을 차릴 수 있었다. 그러나 하나님 보시기에 모세의 이런 행위는 예수님을 십자가에 다시 두 번 못 박는 것과 같은 영적으로 굉장한 중범죄로 간주되었다. (반석은 예수님의 예표) 이 자그마한 실수 때문에 모세는 가나안 땅에 들어가지 못하게 되었다.

그것처럼.. 한번 죽을힘을 다해서 선조들 내지 일제 시대 피해자에게 justify를 받았다면 두 번 또 받을 필요는 없다는 것이다.
하나님의 관점에서 반석의 영적 의미가 중요한 것만큼이나, 포철의 창업주 입장에서는 저런 관계와 의미가 왕창 중요하기 때문이다.

포항제철의 이런 사례를 다른 과거사 청산 문제에다가도 넓게 응용하면,
(1) 항일 독립운동가 출신인 대통령(할배)과 법무부 장관(이 인)이 왜 건국 당시에 반민특위를 해체해야만 했을까 하는 의문,

(2) 그리고 친일파 반민족주의자라고 해도 매국의 대가로 일제로부터 직접 받았던 재산 이상으로, 걔네들이 정당하게 노력해서 재산을 불린 것까지도 다 몰수하는 게 법적으로 타당하나 하는 문제에다가도 적용할 수 있을 것이다.
물론 좌빨들은 자기 마음에 안 드는 애국자들을 앞뒤 경황 안 따지고 몽땅 다 친일적폐로 몰고 갈 것이다.

우리나라는 너무나 절망적이고 급박하던 상황에서 결국 일제 부역 군경이라도 동원해서 왜놈보다 더 나쁜 빨갱이들을 잡아야 했으며, 나라를 망조로 몰아넣을 지경이던 사채를 몽땅 정리하기 위해서 유신 헌법을 포함한 다른 극단적이고 비민주적인 조치를 취해야 했다. (애초에 군대라는 조직 자체가 민주주의 체제를 수호하기 위해 존재하는 굉장히 비민주적인 조직..)
그리고 그와 비슷한 맥락으로, 다른 돈줄이 도저히 없으니 피묻은 돈도 좀 끌어다가 산업의 근간인 제철소를 만들게 됐다.

사람이 하는 일이 완벽할 수가 없고 당연히 헛점과 부작용이 있고 그에 따른 피해자가 있을 수 있다. 그런 임기응변식 조치의 가성비와 효용성에 대해서 다각도로 입체적으로 객관적인 평가를 할 수는 있다. 무작정 목적은 수단을 정당화한다는 식으로 생각해서는 안 되기 때문이다. 하지만 배부른 투정과 그 시절에 누구도 가능하지 않았던 선비질 잣대 역시 금물이다. 그건 옳지 않다.

프로그래머로서 본인이 드는 비유이지만, 마소만 해도 초창기 빌 게이츠와 스티브 발머 시절에 그렇게 온갖 독점과 지저분한 짓까지 감내하면서 경쟁자들을 제압하고 마르지 않는 탄탄한 밥줄--운영체제, 오피스--을 만들어 놨기 때문에.. 지금의 후임 사티야 나델라 때는 옛날과는 반대로 온갖 오픈소스 진영을 여유롭게 무료 지원할 수도 있게 된 것이다.
그와 비슷하게 우리나라에는 빌 게이츠와 스티브 발머 같은 역할을 했던 사람들이 여럿 있었다. 그들은 명백히 칭송받아야 마땅한 애국자이다.

Posted by 사무엘

2019/12/29 08:35 2019/12/29 08:35
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1699

동물은 식물보다 키우는 비용이 훨씬 더 많이 드니 식품 버전인 고기 역시 채소보다 비싼 것은 당연한 귀결이다. 동물은 해체해서 식용 부위를 추출하는 것도 식물보다 훨씬 더 어려우며 고급 기술이 필요하다. 어디 그 뿐이랴? 보관하는 데도 식물보다 훨씬 더 저온의 냉장· 냉동이 필수이다.

하지만 인간은 근본적으로 채식만 해서는 영양학적으로 제대로 성장하고 생존할 수 없기 때문에 고기를 반드시 먹어야 한다. 인간은 소화 기관의 구조가 육식 동물에 더 가까운지라, 식물을 섬유질까지 몽땅 뽕을 뽑으면서 오랫동안 길게 소화하는 형태가 아니기 때문이다.

이런 걸 생각하면 풀만 뜯어 먹으면서 그 엄청난 덩치와 체력, 그리고 쇠고기라는 훌륭한 음식을 만들어 내는 소가 참 대단하긴 하다. 개와 돼지는 사료가 인간의 음식과 어느 정도 호환되는 잡식이기라도 하지만 소는 그렇지 않으니 말이다. "일본인은 초식동물이니 길거리의 풀을 뜯어먹으며 진격하라"는...;; 가능할 리가 만무하다.

아 그런데 일본은 메이지 유신 근대화 이전엔 서민들에게 육식이 아예 법으로 금지되기도 했었다.!! 물자 절약 내지 정신력 단련(?) 명분으로 그것도 무려 1000년이 넘게 말이다. 물론, 알음알음 산짐승이나 물고기를 몰래 잡아먹는 것까지 금지는 가능하지 않았겠지만.. 이 정도면 무타구치 렌야 같은 사람이 "일본인은 초식동물" 드립을 칠 만도 했겠다. ㄲㄲㄲㄲ

또한, 한반도의 조선만 해도 소를 무단 도축하다 걸리면 사형이었다. 조선이 무슨 힌두 교를 믿어서 소가 숭배 대상이었기 때문이 아니라, 소는 단순 식용으로 함부로 잡기에는 다른 용도로도 너무 비싸고 귀하신 몸이며 거의 국가 차원에서 수효를 파악하고 관리하는 자원이었기 때문이다.

그랬던 과거와 달리, 오늘날은 상업과 교통· 통신 기술의 발달, 냉동 기술의 발달 덕분에 인류는 어느 때보다도 고기를 풍부하고 저렴하게 먹고 있다.
고기는 식물에 없는 영양소를 제공할 뿐만 아니라, 영양과 별개로 부드럽고 기름기가 흐르는 게 비주얼과 냄새까지도 일품이다. 그렇다 보니

  • "반찬이 온통 잡범들뿐이네. 어디 살인 사건 하나 없나?"  (영화 아저씨 대사 중)
  • "식탁에서 자연의 향기가 물씬 풍기는구나. 그런데 자연에도 달리는 동물이 있는데 여긴 그게 없네." (현기증 난단 말이에요 빨리 라면 끓여 주세요~ 그분..)

처럼 고기 타령을 하는 방법도 참 예술적으로 발전해 왔다.

그러나 여전히 굶주리는 사람들도 있고, 또 식용 가축은 너무 많이 키우는 경우 각종 배설물로 인한 수질 오염과 지구 온난화(메탄 가스..) 문제가 커진다. 구제역 같은 질병 리스크도 있고 말이다.
엄청난 대량 생산과 동물학대 급의 착취로 단가만을 낮췄을 뿐이지, 고기 한 점을 얻는 데 드는 절대적인 비용이 예나 지금이나 그렇게 차이가 나는 건 아니다.

그래서 이 글에서는 통상적인 소· 돼지고기나 생선 말고 좀 기괴한 다른 형태의 단백질 공급원, 그리고 기존 고기들의 대체제들이 연구 개발되고 있는 사례를 나열해 보았다.

1. 민물고기

서양에서는 위생 관념이 막장이던 옛날에도 생선을 날것으로 먹는다는 생각은 차마 안 했던가 보다. 회와 초밥을 세계화시킨 것은 일본이다. 생고기는 익힌 고기와 달리 잘 썰리지 않기 때문에.. 요리사가 잘 썰어 주는 게 중요하다는 차이가 있다.
그런데 바닷물고기가 아니라 붕어 같은 민물고기를 회를 쳐서 먹는다면..?? 그것도 양식도 아닌 자연산을 그대로..??

이건 베어 그릴스 급의 그 어떤 생존왕이라도 권하지 않는 식사법이다. "난 관대하기 때문에 기생충의 숙주가 되고 싶어 미치겠소~!"가 아니라면 구충약을 단단히 챙기고 at your own risk로 먹어야 할 것이다.
하지만 세상에는 "그 쫄깃한 맛이 참하 꿈엔들 잊힐리야"여서 민물회 매니아 취향인 사람도 있다.

민물고기는 척추동물 급에서는 활동 범위가 가장 제한되고 좁은 생물이다. 안 그래도 물 밖을 벗어나지 못하는데 바다로 나갈 수도 없으니 말이다. 교통수단으로 치면 안 그래도 앞뒤로밖에 못 다니는 철도 차량인데 동력원도 단거리용 직류 전기만 가능한 도시철도 지하철에 비유할 수 있겠다. (일반열차용 교류 전철화 구간을 이용할 수 없음)
그리고 민물고기는 인류가 거의 최초로 섭취한 육류라고 여겨진다. 바닷물고기나 다른 육상 동물보다는 더 쉽게 얻을 수 있었을 테니..

2. 충식

취향이 정말 특이한 일부 말고 대부분의 사람들은 더듬이 달린 검정색 또는 형형색색의 벌레에 대해서 본능적으로 징그러움과 더러움과 혐오감을 느낀다.
이런 생물들이 크기까지 척추동물 급으로 거대하다거나, 밟아 죽일 때마다 헤모글로빈이 섞인 시뻘건 피가 찍찍 터져 나왔다면.. 마치 사람 말고 다른 동물이 도구와 불을 다루는 것만큼이나 공포와 끔찍함이 이루 말할 수 없었을 것이다.

덩치 작고 징그럽고 체액이 뻘겋지도 않고, 인간에게 민폐를 끼치는 경우가 많고, 번식력 하나는 왕창 막강하니.. 인간은 이런 곤충을 별 생각 없이 정말 잘 죽인다. 그리고 곤충이 식용이라고도 생각하지 않는다. 그럼에도 불구하고 인간은 먹을 게 없으면 역사적으로 곤충도 먹어 왔다. 메뚜기 정도면 단백질 공급원이 될 수 있으며, 메뚜기 섭취는 심지어 성경에도 나올 정도이다. (레위기, 침례인 요한..)

실제로 곤충은 먹이 공급 비용 대비 뽑아낼 수 있는 단백질의 효율이 의외로 좋다고 한다. 그리고 동물 학대 논란 따위 전혀 없이 바글바글 떼거지로 양성해서는 곧바로 굽고 튀기고 가공해서 식품으로 만들 수 있다.;;; 벌레를 죽이는 건 돼지나 소 따위를 도축하는 것보다는 비교할 수 없이 가볍고 쉬운 일일 테니..

벌레(번데기 포함)를 그대로 굽거나 튀겨서 내놓는 것이랑, 벌레로부터 단백질 같은 성분만 추출해서 벌레와는 완전히 다른 형태의(분말, 칩, 육포 등..) 식품을 만드는 건 별개의 문제이다. 현실에서는 중국 정도가 전자 같은 충식에 우호적인 듯하며, 영상물에서 사람들에게 충식에 대해 꽤 대놓고 긍정적으로 널리 홍보한 사례는 아마 라이온 킹이지 싶다. 심바는 자기 몸의 8할은 타 포유류가 아니라 곤충인 채로 성장했기 때문이다.;;;

사용자 삽입 이미지

그 반면, 오늘날 고기의 대체제로 연구되고 있는 건 후자이다. 충식이라는 티를 최대한 안 내려 하지만, 여전히 소비자로 하여금 심리적인 거부감을 최소화하는 것이 관건이라 하겠다.

3. 콩고기 등의 식물성 고기

식물성 재료를 이용하여 고기의 외형과 맛을 재현하는 기술이 생각보다 오래 전부터 많이 발달해 왔다. 동물을 사랑하지만 고기 맛을 잊지는 못하는 채식주의자라든가, 원가를 최대한 낮추면서 얼큰한 국물과 고기 건더기를 fake로라도 구현해야 하는 라면 스프 제조업자들이 환영할 만한 소식이다.

고기화하기 제일 만만한 작물은 단연 콩이다. 콩은 지력을 소모하는 타 식물들과 달리, 공기 중의 질소를 고정해서 지력을 회복시켜 주는 아주 신기하고 유용한 식물이다. 그리고 자기 자신도 지방과 단백질이 풍부해서 진작부터 밭에서 수확하는 고기 급의 취급을 받아 왔다. 성경에서 다니엘이 바빌론에서 우상에게 바쳐진 고기와 와인 대신에 먹었던 것도 그냥 채소가 아니라 콩이었다. (단 1:12)

대놓고 가공육이 아니면서 각종 냉동· 인스턴트 식품에서 고기 비스무리하게 박혀 있는 것들, 성분에 '대두단백'이라고 명시되어 있는 것들은 전부 콩고기이다. 이것들이 고기 맛을 저렴하게 내는 데 이미 큰 기여를 하고 있다. 가공 비용이 들어가긴 하지만 그래도 원재료가 진짜 고기보다 워낙 저렴하니 수지가 맞는 듯하다.

콩고기도 싸구려만 있는 게 아니며, 비싸게 고퀄리티로 만들면 요리사도 구분을 못 할 정도로 레알 동물 고기하고 맛과 식감이 비슷해진다고 한다.
다만, 너무 비싸지면 그냥 진짜 고기를 쓰고 말지 콩고기를 만든 의미가 없어질 것이다. 마치 위조지폐가 제조 비용이 액면가 이상으로 너무 비싸지면 만드는 의미가 없어지는 것처럼 말이다..

사용자 삽입 이미지

콩 말고도.. 밥이나 분식류를 만들지 어떻게 저걸로 고기를 만드나 싶은 밀이나 쌀로도 고기를 빚어 내는가 보다. 햄· 소시지· 스팸 같은 가공육이야 싸구려는 진짜 고기 대신에 밀가루만 잔뜩 들어있긴 하지만.. 그런 곡식에도 단백질이 없지는 않다.

물론 이런 식물성 고기로 김치를 볶는 것까지 가능한 삼겹살이라든가.. 꽃등심, 갈비를 재현하지는 못한다. 하지만 햄버거 패티용 다진 고기라든가 제육볶음 정도는 충분히 따라잡았다. 기름기와 영양분까지 진짜 고기를 대체하지는 못해도 외형과 맛은 얼추 비슷해졌다는 것이다.

4. 배양육 (인조 고기)

앞의 2번은 척추동물을 죽이지 않는 것이고 3번은 동물을 죽이지 않는 것이다. 다음으로 이거 4번은 아예 채식만치도 생명체를 죽이지 않고, 실험실에서 생화학적인 방법만으로 고기를 만드는 방법을 말한다. 식용 가축의 줄기 세포를 키워서 살코기를 얻는 방법이 쓰인다.

이건 동물을 full scale로 키우는 게 아니라 고기를 얻는 부분만 인위로 얻는 아주 획기적인 방법이다. 글쎄, 원가를 더 절감하기 위해서 일명 GMO라고 불리는 유전자 조작까지 행해질 여지가 있는데, 그건 현재로서는 논란이 많으며 벌써부터 걱정할 단계는 아니다.

배양육은 진짜 고기를 얻는 과정에서 발생하는 여러 윤리 문제와 비효율을 상당수 해결할 수 있지만, 아직까지는 생산 비용 자체가 너무 높다. 굉장히 비싸고 시간도 오래 걸린다. 식물성 고기는 저렴하기라도 한 반면, 식물에도 의존하지 않는 인공 배양육이 기존 대체 고기의 장점을 곧장 흡수 가능하지는 않은 실정이다.
그렇다고 당장 양산해서 단가를 낮출 수 있을 정도로 맛 좋고 육즙과 품질이 뛰어난가 하면 그렇지도 않기 때문에 아직 가야 할 길이 멀다.

5. 똥고기

인간의 배설물이 끔찍하게 더럽기는 하지만, 그래도 거기에도 인체에 흡수되지 않은 영양분이 적지 않다는 것은 인류의 오랜 실험 정신(!) 덕분에 알려져 있었다.

식물에게야 동물의 배설물이 거름이 될 수 있다. 그리고 대변이 아닌 소변 정도는 여과· 정수해서 사람이 다시 마시는 기술이 실제로 쓰이고 있다. 특히 우주 정거장 같은 데서 말이다. 우주에서는 물이 귀한데 무겁기까지 하기 때문에 식수를 따로 챙길 여유가 없기 때문이다. 그러니 수소 연료가 연소한 결과물로 생긴 물이라든가 인체에서 나온 오줌까지 몽땅 재활용해서 식수로 활용해야 한다.

허나, 대변을 퇴비로 삭힌 것도 아니고 오리지널 X로부터 영양분을 추출하고 살균 처리를 해서 고기 패티를 만들었다면 선뜻 먹을 수 있겠는가? ㅠㅠ
이건 배양육이나 식물성 고기처럼 여러 기업들에서 앞다투어 연구한 건 아니고, 오덕의 나라 일본의 어느 대학교 연구팀(이케다 미츠유키 교수??)에서 2011년에 딱 한 번 결과물을 발표해서 전세계적으로 매스컴을 탔었다.

사용자 삽입 이미지

위생 문제는 정말 걱정 안 해도 된다면서 연구 책임자가 직접 먹으면서 인증을 했다.;;
그리고 생산 비용이 아무래도 기존 진짜 고기보다 더 비싸지만 생짜 배양육보다는 저렴하며, 이 역시 추가적인 후속 연구와 대량생산을 통해 충분히 낮출 수 있다고 그런다.

그러나 그 뒤로 연구가 얼마나 더 진행됐는지, 2019년 현재는 딱히 검색돼 나오는 게 없다. 연구하는 중에는 맨날 X과 부대끼며 사느라 X냄새 때문에 고생 많이 하지는 않았으려나 모르겠다... ㅠㅠㅠ

제주도에는 일명 똥돼지라고 불리는 '제주 흑돼지'가 유명하다. 털 색깔이 검기도 하거니와, 먼 옛날에 실제로 인분을 먹이면서 독특하게 사육하기도 했던 모양이다.
그러나 지금은 진짜로 똥을 먹이지는 않는다고 한다. 대변은 영양분만 들어있는 게 아니라 온갖 세균도 많기 때문이다.

이상이다.
1번은 좀 성격이 다르니 그렇다 치고, 나머지 대체 고기 생산 기술은 21세기 인류를 먹여 살릴 고부가가치 신기술 중 하나라면서 세계의 내로라하는 갑부들이 관심을 갖고 투자하고 있기도 하다.

단백질의 출처라는 게 식물로도 모자라서 벌레, 줄기세포, 심지어 대변까지 등장했다..;; 그나마 이미 어느 정도 통용되고 있는 것은 식물이 유일하고, 줄기세포 배양육은 아직 완성도를 더 끌어올려야 한다. 벌레와 대변은 기술적인 난관은 물론이고 사람에게 팔아먹으려면 심리적인 거부감도 극복시켜 줘야 할 것이고, 그게 안 되면 그냥 동물 사료용이나 환경 처리 기술 정도에나 의미를 둬야 할 것이다.

어떤 형태로든 맛 좋은 대체 고기가 저렴하게 보급되어 마치 쿼츠 시계나 디지털 카메라 같은 지위를 차지하게 된다면.. 기존의 진짜 고기는 마치 기계식 시계나 필름 카메라처럼 현역 일선 주류에서 물러나고, 소수의 매니아 고급 취향용으로나 명맥을 유지하게 될 것이다. 다만, 진짜 고기는 안 그래도 비싼데 대량 생산 메리트까지 없어지면 그 가격을 서민으로서는 감당하기 어렵게 되겠다. 그리고 그런 시대가 현재로서는 겨우 수 년 안으로 가깝게 금방 찾아올 것 같지는 않다.

*. 여담: 곤충이 죽는 방식

기왕 충식 얘기가 나왔으니 말인데... 문득 의문이 든다. 곤충은 죽을 때 왜 늘 벌렁 뒤집힌 채로 죽을까?
밟거나 누르거나 파리채로 때리는 등의 물리적인 방법으로 죽일 때는 실감하기 어렵지만, 살충제라는 비충격· 비파괴식(?) 방법으로 죽여 보면 놈은 약속이나 한 듯이 뒤집힌 채로 발버둥 치다가 죽는다. 파리건 바퀴벌레건.. 비행 가능 여부와 무관하게 말이다.

몸체를 일부러 뒤집기도 쉽지 않을 것 같은데 굉장히 흥미로운 현상인 것 같다.
그래서 각종 만화나 일러스트에서 곤충이 뒤집힌 모습은 죽은 모습과 거의 동급으로 취급된다. 사람 얼굴 그림에서 눈이 X자 모양으로 그려지고 혀가 튀어나온 게 기절하거나 죽은 모습의 상징이듯이 말이다.

글쎄, 겉의 현상만 보고서 본인이 세우는 가설은 곤충은 (1) 살충제가 뿜어져 나오는 바람에도 휩쓸려 날아갈 정도로 가볍고, (2) 배보다 위의 등 쪽이 훨씬 더 무겁다. 자동차나 선박만 해도 무게 중심이 높으면 잘 전복되듯이, 이런 구조 때문에 "곤충은 살충제에 몸이 마비되어 죽을 때는 대체로 벌렁 뒤집힐 것이다" 정도로 추측한다.

물론 이에 대한 답변을 인터넷 검색을 통해 확인 가능하긴 하다. 하지만 다리가 맛이 가는 것하고 몸이 뒤집히는 것하고 무슨 인과관계가 있는지 답변이 납득이나 수긍이 가지 않는다.

멀쩡히 살아 있고 날지 못하는 곤충을 매끄러운 평지에서 180도 벌렁 뒤집어 놓으면 스스로 똑바로 설 수 있기는 한가 모르겠다. 가능한 놈도 있고 불가능한 놈도 있을 것 같다.
저렇게 뒤집힌 채 다리를 꼼지락거리며 사경을 헤매고 있는 곤충을 도로 뒤집어 놓으면 어떨까 궁금해진다. 실제로 이동하지는 못하겠지만 뒤집히지 않은 원래 자세대로 죽는 것 자체는 가능하지 않을까?

여담이지만 평범하게 자연사 내지 병사한 놈은 이론적으로는 그냥 배가 땅을 향한 평상시의 자세로 죽는다고도 한다. 허나, 대부분의 곤충은 인간에 의해 끔살 당하거나 아니면 자연에서 다른 동물에게 잡아먹히지, 자연사하는 놈이 과연 얼마나 되려나 모르겠다.

Posted by 사무엘

2019/12/26 08:35 2019/12/26 08:35
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1698

식물 이야기

지난 추석 때 산에서 벌초를 해 보니 동물과 식물의 차이에 대해서도 다시 생각이 들곤 했다.
톱과 낫으로 식물에게 하는 짓을 동물에게 그대로 했다간.. 그야말로 종류를 불문하고 처참한 광경이 벌어질 것이다. 하지만 식물은 그렇게 베고 또 베어도 죽지 않고 끈질기게 또 자라난다. 뿌리까지 완전히 뽑아 버리거나 약을 쳐서 화학적으로 말려 죽이지 않는 한 말이다.

식물은 동물 같은 고통을 느낀다는 개념 자체가 없으며, 한쪽에서 발생하는 질병이 다른 쪽에서는 전혀 위험을 일으키지 않는다.
생명을 지니고 있는데 동물과 식물은 그 근원이 어쩜 이렇게 서로 다를까 싶다. 식물은 죽어서 부패하는 과정도 동물(특히 빨간 피가 흐르는 것들)보다는 훨씬 덜 역겹고 덜 징그럽지 않던가..

그리고 한편으로.. 산에서 야생 전투모기에게 수십 군데를 물려서-_- 서울 모기와는 차원이 다르게 오래 가는 가려움과 붓기를 체험해 봤다.;;
모기에게는 사람의 이산화탄소와 땀 냄새가 마치 삼겹살 굽는 냄새처럼 느껴지기라도 하는 걸까? 그리고 모기도 단백질이 그렇게 궁하지 않을 때는(;;) 그냥 평범하게 식물의 진액만 빨아먹는다는데? 알 수 없는 노릇이다.

모기나 거머리가 사람에게 아무 고통을 주지 않으면서 피부를 찢고 피를 쪽 빨아 가는 기술은 인류가 아직 개발하지 못한(주사기..) 신묘막측의 영역이 틀림없다..;;
이런 일이 있었던 관계로, 오늘은 특별히 식물에 대해서 그 동안 관찰하고 생각해 온 여러 썰들을 풀어 보겠다.

1. 풋사과와 풋고추

우리말에서 '풋-'이라는 접두사가 활발하게 쓰이는 식용 식물이 사과와 고추 말고 또 존재하는가 모르겠다. 둘 다 '풋' 버전은 표면이 초록색이다가, 완전히 익은 놈은 빨간색이 된다는 공통점이 있기도 하다.

사용자 삽입 이미지

고추의 경우, 빨간 고추는 너무 매우니 단독으로 우적우적 먹는 일은 사실상 없고, 다지고 갈아서 고춧가루나 다른 양념의 형태로 많이 먹는다. 그러나 초록색 풋고추는 복불복으로 아직 덜 맵기도 하기 때문에 얘만 단독으로 된장에 찍어 먹기도 하는 것 같다.

어떤 풋고추가 매운지의 여부를 외형만 봐서는 알 수 없으며, 내 경험상으로는 그냥 복불복 운에 의존해야 하는 것 같다. 다만 "작은 고추가 맵다"라는 속담은 신빙성이 있다. 작고 홀쭉한 놈이 더 매울 가능성이 높으며, 반대로 큼직한 풋고추는 대체로 맵지 않더라.

한편, 사과의 경우 일부 초록색 껍질의 사과를 보면 마치 한국에서 흰 껍질 계란을 보는 것처럼 희귀· 희소함이 느껴진다. 이건 대놓고 설익은 풋사과를 딴 게 아니라 초록색 상태에서 여느 익은 빨간 사과에 준하는 맛이 나는 '아오리'라는 별도의 사과 품종이라고 한다.

배는 사과 같은 껍질의 색깔 변화도 없고, 내부가 공기에 노출되면 갈색으로 변색되는 것도 없으니..
금속으로 치면 철과 구리의 이온화 경향 같은 차이가 생물학적으로 존재하는가 궁금한 생각이 든다.

2. 억새

난 어린 시절부터 억새라고 하면 그냥 길다란 잎의 단면이 날카로워서 맨살이 베이기 쉬운 귀찮은 풀 정도로만 알아 왔다.
줄기에 뾰족한 가시가 숭숭 돋은 물건은 장미를 비롯해 여럿 있지만.. 잎이 저런 구조인 물건은 내 머리에 떠오르는 게 딱히 없다.

사용자 삽입 이미지

그런데 사실은 억새도 갈대처럼 꼭대기에 하얀 이삭들이 달려 있어서 언뜻 보기에 둘이 잘 구분되지 않을 정도라고 한다. 인터넷으로 억새를 검색하면 둘의 차이점, 구분 방법이 잔뜩 걸려 나올 정도이다.
둘이 그 정도로 서로 닮았는지는 본인도 미처 몰랐다. 다만, 갈대는 물 주변과 습지에서 더 즐겨 서식하고 억새보다 키가 훨씬 더 크다.

"아아 으악새 슬피 우니 가을인가요"는 1937년도 곡인 '짝사랑'이라는 노래의 가사이다. 으악새는 그냥 억새의 방언인지, 아니면 다른 조류 동물인지 심상이 중의적이어서 영원한 논쟁거리로 남아 있는가 보다. 작사자가 오래 전에 죽고 없으니 말이다.

옛날에 "화왕산 억새 태우기"라는 행사가 경남 창영에서 3년 주기로 개최되어 왔다. 그러나 딱 10년 전의 6회 때 불을 잘못 질러서 방문객이 5명이나 숨지는 참사가 터지는 바람에 이 행사는 영원히 폐지되었다.

3. 관목(灌木 shrub)

세상의 식물 중에는 가로수 같은 아름드리 나무가 아니고, 나팔꽃처럼 덩굴 줄기밖에 없는 부류도 아니고..
굳이 둘 중 하나만 고르라면 나무이긴 한데 나무라는 걸 느낄 수 없을 정도로 키가 왕창 작아서 몸통이 안 보이는 물건이 있다.

사용자 삽입 이미지

이런 것을 관목이라고 부르는가 보다. 다 자라도 키가 2미터를 안 넘고 작고, 초록색 잎만 둥그렇게 무성하면서 줄기· 몸통이 안 보이는 작은 나무(?) 말이다.
길거리나 정원 같은 데서 조경용으로 맨날 보는 식물이니 하나도 생소할 것 없다. 어떤 도로에서는 길가가 아니라 정중앙에 중앙분리대 대용으로 이런 부류의 식물이 심겨 있기도 하다.

얘들은 지면까지 차지하는 부피가 골고루 크기 때문에 조밀하게 심어서 사실상의 울타리 역할도 한다.
내가 이런 식물의 존재에 대해서는 지금까지 별로 생각을 안 했던 것 같다.

하긴, 대나무는 잘 알다시피 나무가 아니라 풀이다. 그리고 현실에서는 과일과 야채의 경계도 많이 헷갈리는 편이다.

4. 잔디

정원을 구성하는 식물 중에서 나무, 관목보다도 더욱 키가 작고 지표면을 가장 낮게 덮고 있는 건 잔디일 것이다.;; 얘는 뿌리와 잎만 있지 줄기가 있는 것 같지 않다.
사람이나 동물들에게 허구헌날 밟히고, 초식동물에게 뜯어먹히지만 얘는 그래도 끈질기게 버티고 살아남는가 보다. 아 그러고 보니 땅뿐만 아니라 무덤 봉분을 뒤덮고 있는 것도 이런 부류의 잔디이다.

사용자 삽입 이미지

땅에 잔디가 심어져 있으면 미관에 더 좋은 건 말할 것도 없거니와 온도와 습도 조절이 되고, 운동 경기를 할 때 선수들의 부상 위험도 크게 줄여 준다. 또한, 돗자리를 깔 때도 밑면에 흙먼지가 덜 묻게 해 준다. 신이 창조해 주신 정말 고맙고 유용한 존재가 아닐 수 없다..

잔디도 겨울에는 죽어서 누래지는 놈이 있는가 하면, 언제나 초록색이 유지되는 상록(?) 잔디 또한 있다고 한다.

5. 잡초

'잡초'라는 건 발효와 부패의 차이만큼이나 매우 인위적이고 인간 중심적인 분류이다. 잡초라는 종이 생물학적으로 따로 있다거나, 얘들이 무슨 해충· 병원균 급으로 인간이나 자연에게 심각한 해를 끼친다는 얘기는 아니다.

다만, 똑같은 초록색이라고 해서 모든 식물이 식용 가능한 건 아니다. 글쎄, 상추나 깻잎 같은 건 인간이 먹을 수 있지만 그렇다고 인간이 모든 채소잎을 뜯어먹을 수 있는 건 아니니 말이다. 심지어 초식동물조차도 아무 식물이나 마음대로 먹을 수 있지는 않다.
그렇기 때문에 밀림· 정글은 녹색 사막이라고 불릴 정도로 보기보다 인구 부양력이 형편없다. 그냥 지구의 허파 역할을 한다는 의의밖에 없다.

이런 맥락에서 잡초는.. 광합성을 해서 산소를 만들고 뿌리로 흙을 붙잡아 두는 등 식물의 아주 기본적인 공통 역할을 하는 것 외에 딱히 인간에게 기여하는 게 없고, 심고 관리하지 않아도 자라기는 왕창 잘 자라고.. 그래서 결과적으로 인간이 진짜로 재배하려고 하는 농작물(생산성이 더 높은)의 성장을 방해하기 때문에 잡초라고 불린다.


사용자 삽입 이미지

(잡초가 무성한 뻘밭. 잔디밭과 비교하면 풀들의 키부터가 들쭉날쭉이고 미관에 좋지 않다. 마치 난개발로 스프롤 현상이 심한 도시의 건물들 모습 같다.)

아니면 농사와 무관하게.. 그냥 아무것도 없어야 할 곳에 불쑥불쑥 불청객처럼 자꾸 자라고 생겨나기 때문에 잡초이다. 이런 잡초는 야외에서 시야를 가리고 미관을 해친다.
먹을 수 있는 식물이 잡초라고 불릴 일은 절대 없을 테니, 식용 가능하지 않은 것은 잡초의 필수 조건이라 하겠다.

왜 하필 인간에게 별로 유용하지 않은 식물이 유용한 식물보다 억척같이 잘 자라는 걸까? 그 근본 이유를 성경에서 찾자면 인류의 타락과 더불어 "또한 땅이 네게 가시덤불과 엉겅퀴를 내리라." (창 3:18) 말씀을 펴야 할 것이다.
농사를 짓는다거나 육군 군생활을 한 사람이라면 이런 녹색 괴물의 강인함과 생명의 끈질김에 줄곧 경악하게 된다.;;

6. 약품

끝으로, 식물에게 치는 약품은 다음과 같은 종류로 나뉘는 듯하다.

  • 영양제 또는 병충해 치료제: 대상 식물에게 좋은 영향을 끼치기 위해
  • 농약: 대상 식물의 주변에 붙어서 해로운 영향을 끼치는 해충· 잡초· 세균 따위를 제거하기 위해
  • 제초제· 고엽제: 대상 식물을 죽이기 위해

1번 영양제· 치료제는 혼자 성격이 많이 다르니 논외로 하고, 어떤 약품이 농약이냐 제초제냐 하는 것은 경계가 애매한 구석이 있다. 에프킬라가 모기뿐만 아니라 사람에게도 궁극적으로는 해롭듯이, 그 끈질긴 잡초를 말라 죽게 하는 농약이 보호 대상 식물에게도 어떤 형태로든 부작용이 없을 수는 없다. 단지, 이로운 농작물이 죽기 전에 잡초를 먼저 죽게 해 줄 뿐이다.

골프장은 산을 깎고 많은 나무들을 베어내어야 만들 수 있지만, 내부의 깔끔한 잔디밭도 농약을 왕창 많이 쳐서 유지되는 것이라는 게 공공연한 사실이다. 다만, 도를 넘는 정도는 아니고 나라에서 전국에 등록된 골프장들을 상대로 관리 실태를(농약 사용량 같은..) 조사도 한다고 한다.

농약은 번개탄만큼이나 자살 수단으로 하도 많이 악용된지라 미성년자의 구매, 얼굴 안 보이는 인터넷 거래를 통한 구매가 전면 금지되어 있다. 뭐, 자살이 아니라 실수로 마신 경우도 있고, 또 음식에다 고의로 몰래 타서 남을 죽이는 용도로 쓰이기도 했었다. 그러라고 만든 농약이 아닐 텐데..

그렇다고 위험하고 환경에 해롭다는 이유로 농약을 아예 안 쓰면 인류는 다시 옛날처럼 잡초와 병충해와 힘겹게 싸워야 하고 농산물의 가격은 수직 상승하게 된다. 친자연, 유기농만 고집하다간 후진국형 기생충과 전염병에 다시 시달리게 될 것이다.

농약은 잡초뿐만 아니라 병충해도 상대하기 때문에 살충제하고 성분이나 용도가 뭔가 호환되는 구석이 있는 것 같다. 가령, 그라목손은 살충제로 치면 DDT 같은 위상이랄까?? 너무 위험하고 장기적으로 안 좋은 영향을 끼친다는 이유로 사용이 금지되긴 했지만 당장 후진국에서 사람들이 말라리아 때문에 픽픽 쓰러지는 와중에 DDT보다 가성비 더 좋은 모기 퇴치제 대안은 없는 실정이다.

농약 쪽도 마찬가지일 것이다. 맨날 친자연을 외쳐도 애초에 자연이 인간에게 좋은 것만 주지는 않는다는 것이 사실이다. 우리가 이 사실을 부정할 수는 없다. 세상일이 그렇게 단순하고 쉽게 돌아가는 게 아니다.

Posted by 사무엘

2019/12/23 08:34 2019/12/23 08:34
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1697

1. 운전 면허의 종류

자동차를 포함해 모든 교통수단들은 잘 알다시피 관련 면허를 취득한 사람만이 운전하고 운행할 수 있는 물건이다.
특수한 유형의 자동차를 몰기 위해 추가로 따야 하는 자격증이 있긴 하다. (버스 운전 자격, 위험물 차량 취급 자격..) 하지만 아무 특성 없고 제일 몰기 쉬운 자그마한 경차라도, 아니 오토바이라도 몰기 위해서는 면허를 따야 한다.
자격증은 보유자가 뭔가를 할 수 있다는 것을 입증하는 긍정 관점이지만, 면허는 반대로 이를 보유하지 않은 사람은 관련 행위를 절대로 해서는 안 된다는 부정 관점이 더 강하다.

당연한 말이지만 면허가 다 같은 면허는 아니다. 몰 수 있는 차체의 크기 내지 승차 인원수에 따라 종류가 갈리며, 다음으로 운전의 성격에 따라서 종류가 갈린다. 자동차 운전 면허의 경우, 보통/대형은 차체의 종류를 구분하며, 1종/2종은 운전 성격을 구분한다. 2종 면허에 같이 붙는 편인 '자동'은 면허 조건을 명시하는 부가적인 옵션 중 하나이다.

운전 성격은 무엇이냐 하면 비영리 자가용 운전이냐, 아니면 금전적인 이득이 걸린 영업용 운전이냐 하는 것이다. 영어에서 명사가 셀 수 있는 개념인지 여부를 매우 중요하게 따진다면(가산· 불가산), 교통수단의 면허에서 매우 중요하게 보는 것은 자가용/영업용 종류이다.

자동차 면허에서 1종은 원래 비행기로 치면 사업용 내지 운송용에 대응하는 전용 면허였다. 그랬는데 자동차가 워낙 흔해지면서 그런 구분이 많이 옅어졌기 때문에 1종은 그냥 대형+수동 연계 면허인 것처럼 굳어졌다. 그러니 요즘은 대형 면허 없이 보통만으로 긴급자동차 승합차를 몰 수 있고, 2종 면허만으로도 '바사아자' 번호판의 택시 기사가 될 수 있게 조건이 완화되고 있다.

잘 알다시피 1종 보통으로도 트럭은 대형 버스 뺨치는 크기인 무려 11톤급까지 몰 수 있다. 2종은 4.5톤이지만 이것만으로도 이미 중형 버스를 능가하는 크기이다. 그런 트럭은 차가 아무리 커 봤자 사람이 3명밖에 안 타기 때문이다.
그에 반해 1종 보통으로 승합차는 아담한 15인승 봉고차급까지만 몰 수 있고, 중형 버스를 운전하려면 1종 대형 먼허가 필요하다. 차량 크기와 승차 인원에 이런 관계가 있다는 걸 알 수 있다.

독자 여러분은 영업용 자동차 중에 제일 몰고 싶은 차가 무엇인가? 택시는 제일 잽싸고 날렵한 난폭운전 총알 기동이 가능=_=하고.. 대형 버스는 왕창 크고 사람을 많이 태운 상태에서 '버스 전용 차로'라는 메리트를 이용해서 꽤 빠르게 달릴 수 있다.
대형 트럭은 차종에 따라서는 버스보다도 더 거대하며, 운전대가 압도적으로 제일 높고 뒷좌석 내지 천장의 아늑한 개인 공간(침대 또는 다락방)을 이용할 수 있다. 다만 속도와 통행 우선순위는 제일 낮고 둔하다는 점을 감안해야 한다.

무슨 차량을 몰든 운전은 재미있다. 하지만 쉬고 싶을 때 못 쉬고 운행 스케줄을 맞춰서 불철주야 강제로 운전해야 한다면 그것만 한 고문도 별로 없지 싶다.

2. 차들의 크기와 폭

난 대형 시내버스와 고속· 시외· 관광버스는 동일한 반경의 타이어를 사용하는 대형 버스이고 크기가 거의 같지 않은가 생각해 왔다.
하지만 제원표를 보니 시내버스는 대형이라 해도 길이가 11m급인 반면, 고속버스 중에는 12m가 넘는 놈도 있다는 걸 알게 됐다. 높기도 후자가 좀 더 높다.

"도로의 구조ㆍ시설 기준에 관한 규칙 제5조, 도로법 시행령 제79조, 자동차 안전기준에 관한 규칙 제4조"에 따르면, 국내에서 도로를 달릴 수 있는 자동차의 최대 크기 한계는 길이 13m, 폭 2.5m, 높이 4m이다. 굴절 버스나 트레일러처럼 중간에 꺾임이 있는 놈은 좀 더 길어도 되지만, 꺾임이 없는 단일 차체의 한계는 저렇다.
그리고 무게는 축당 10톤, 전체 40톤이 한계인데, 이건 사람을 태우는 버스는 무게 따위 걱정할 필요 없고 트럭이 조심해야 할 사항이다.

현대 유니버스, 기아 그랜버드 같은 버스의 최고 사양을 보면 길이는 거의 12.1 ~ 12.5m에 달하고 폭은 2.49m, 높이는 3.3 ~ 3.5m여서 법적 한계에 거의 근접해 있다. 이게 우리나라에서 볼 수 있는 제일 큰 버스이다. 엔진은 1미터당 1000cc씩 잡기라도 했는지 역시 12000cc를 넘는 배기량에 400마력 이상이다.
화물차 역시 트레일러 말고 25톤 트럭(현대 엑시언트), 또는 그보다 작은 트럭이라도 초장축 모델을 보면 이 한계에 근접해 있다.

이 크기와 무게를 초월하는 차량은 일반 차량들처럼 등록해서 평범한 번호판을 받고 일반 도로를 주행할 수 없다. 공항 활주로, 탄광 내부, 놀이공원 내부 같은 자기 영역에서만 주행 가능하며, 이에 대해서는 이전 글에서도 다룬 적이 있다.
또한 군용차 중에서도 승용차나 트럭을 넘어 아예 탱크나 자주포처럼 무기에 더 가까운 건 도로교통법의 적용을 받는 물건이 아니다. 그거 조종 특기는 군에서든 사회에서든 자동차 운전 면허와 동급으로 인정되지도 않으며 별개로 취급된다.

남자라면 왕창 빠른 차 아니면, 이렇게 엄청나게 큰 차를 몰아야 간지가 날 거라는 생각이 든다. 운동 에너지 1/2 mv^2 중에서 m과 v 둘 중 적어도 하나는 왕창 큰 거 말이다.
참고로 국내 기준으로 경차는 길이 3.6m, 폭 1.6m, 높이 2m, 엔진 배기량 1000cc 이내이니 얼마나 작은지가 비교된다..;;

한편, 자동차가 폭의 한계가 저렇게 2m대에 머물러 있는 반면, 철도 차량은 표준궤 기준으로 3m대에서 논다.
"철도차량 안전기준에 관한 규칙"과 관련 별첨 자료를 보면 집전 장치를 제외한 높이의 한계는 4.5m이고, 폭은 3.4m가 한계이다. 다만, 차량의 상부와 하부는 폭의 한계가 3.2m대로 약간 줄어든다.
그 좁은 궤도 위에 자동차보다 훨씬 더 뚱뚱한 차량이 올라가서 달린다는 걸 생각하면, 철도가 공간을 굉장히 효율적으로 쓴다는 걸 알 수 있다.

Posted by 사무엘

2019/12/20 08:32 2019/12/20 08:32
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1696

본인은 최근에 직장일 때문에 이메일을 자동으로 생성해서 보내는 프로그램이란 걸 난생 처음으로 작성해 봤다. 소켓 API만 써서 말이다.
서식이고 첨부고 몽땅 다 생략한 최소한의 형태만 생각한다면, 이메일을 보내는 것 자체는 내 예상보다 굉장히 간편하게 쉽게 자동화할 수 있는 일이라는 걸 알 수 있었다. SMTP 서버 명령어 몇 개만 스펙대로 주고 받으면 된다.

발신자는 말할 것도 없고 수신자조차도 실제로 수신하는 대상과 화면에 표시되는 수신자가 서로 다르게 얼마든지 조작 가능하다. 스팸 메일을 대량으로 살포하는 건 일도 아니겠다는 걸 이제야 느꼈다. 이런 문제도 있고, 또 이메일 내용을 다른 해커가 가로챌 수도 있으니 이 바닥에도 온갖 복잡한 인증과 암호화 계층이 나중에 도입된 거지 싶다.

이메일과 관련하여 서버에다 요청을 보낼 때는 줄 바꿈 문자가 \n이 아니라 반드시 \r\n을 써야 한다는 게 인상적이었다. 이건 어째 유닉스가 아닌 DOS/Windows 진영의 관행과 일치한다. 그리고 메일 본문의 끝을 의미하는 게 도스의 copy con이 사용하는 Ctrl+Z 같은 제어 문자가 아니라 그냥 "빈 줄+마침표+빈 줄"이다.

또 주목할 만한 것은 DATA(본문)에 들어가는 발신 날짜였다. 난 메일을 보내면 발신 시각 정도는 메일 서버가 자기 시각을 기준으로 당연히 자동으로 넣어 줄 거라고 생각했다. 사람이 이메일을 보낼 때 발신 시각을 일일이 써 넣지 않듯이 말이다.
하지만 내부적으로는 그렇지 않았다. 보내는 쪽에서 알려 줘야 하며, 허위로 조작된 임의의 날짜· 시각을 보내는 것도 얼마든지 가능하다.

그리고 여기에 써 주는 날짜· 시각은 "Tue, 18 Nov 2014 13:57:11 +0000" 같은 형태로, 날짜와 시각, time zone을 모두 포함하고 있다. 심지어 요일이라는 일종의 잉여 정보도 있다.
이 형식은 RFC 2822에 표준 규격으로 정해졌는데, 보다시피 사람이 읽기 편하라고 만들어졌지 컴퓨터의 입장에서 간편하게 읽고 쓸 수 있는 형식은 아니다. 컴퓨터의 관점에서는 그냥 1970년 1월 1일 이래로 경과한 초수, 일명 Unix epoch 숫자 하나가 훨씬 편할 텐데 말이다. time zone도 무시하고 UTC만 통용시키고 말이다.

실제로 이 날짜· 시각 문자열은 그 형태 그대로 쓰이지 않는다. 어차피 이메일 클라이언트가 파싱을 해서 내부적으로 Unix epoch 같은 단순한 형태로 바꿔야 한다. 그래야 당장 메일들을 오래된 것-새것 같은 순서대로 정렬해서 목록을 뽑을 수 있을 테니 말이다. 또한 그걸 출력할 때는 "2014년 11월 18일 오후 10시 57분 11초"처럼 사용자의 언어· 로케일과 설정대로 형태가 또 바뀌게 된다.

그러니 사람보다는 기계가 더 활용하는 날짜 시각 문자열 포맷이 왜 저렇게 복잡한 형태로 정해진 건지 의문이 들지 않을 수 없다. 읽고 쓰기 위해서 달 이름과 요일 이름 테이블까지 참조해야 하고 말이다. 글쎄, SMTP 명령어를 사람이 직접 입력해서 이메일을 보내던 엄청난 옛날에 사람이 읽고 쓰기 편하라고 저런 형태가 정해진 건지는 모르겠다.

Windows API의 GetDateFormat/GetTimeFormat 내지 C 언어의 asctime/ctime 함수 어느 것도 이메일의 날짜· 시각 포맷과 완전히 일치하는 문자열을 되돌리지는 않는다. 특히 C 함수의 경우,

Tue Nov 18 13:57:11 2014

로, 년월일 시분초 요일까지 정보가 동일하고 맨 처음에 요일이 나오는 것까지도 일치하지만.. 이메일 포맷과는 일치하지 않는다. C 함수도 나열 순서와 글자수가 언제나 동일하고 불변인 것이 보장돼 있기 때문에 저걸 변경할 수는 없다. 저 결과값을 그대로 쓸 수도 없으니 답답하기 그지없다.

참고로 일반인이 저런 날짜· 시각 format 함수를 작성한다면 그냥 단순무식하게 sprintf "%02d %s" 같은 방식으로 코딩을 하겠지만, 프로그래밍 언어 라이브러리에서는 그런 짓은 하지 않고 성능을 최대한 중요시하여 각 항목들을 써 넣는 것을 한땀 한땀 직접 구현한다. 해당 라이브러리의 소스를 보면 이를 확인할 수 있다.

Windows API에는 SYSTEMTIME이라는 구조체가 있고, C에는 tm이라는 구조체가 있어서 날짜와 시각을 담는 역할을 한다. 그런데 tm이라니.. 구조체 이름을 무슨 변수 이름처럼 참 이례적으로 짧고 성의없게 지은 것 같다. -_-
C 시절에는 앞에 struct라는 표식을 반드시 덧붙이기라도 해야 했지만 C++은 그런 것도 없으니 더욱 난감하다. C++의 등장까지 염두에 뒀다면 이름을 절대로 저렇게 지을 수 없었을 것이다.

또한 tm 구조체의 멤버들 중 월(tm_mon)은 1이 아니라 0부터 시작한다는 것, 그리고 연도(tm_year)는 실제 연도에서 1900을 뺀 값을 되돌린다는 것도 직관적이지 못해서 번거롭다. 즉, 2019년 7월은 각각 119, 6이라고 기재된다는 것이다. 그에 반해 Windows의 SYSTEMTIME은 그렇지 않으며 wYear과 wMonth에 실제값이 그대로 들어가 있다.

월이 0부터 시작하는 건 쟤네들 문화권에서는 어차피 월을 숫자가 아닌 이름으로 취급하기 때문에 배열 참조의 편의를 위해서 그렇게 했을 것이다. 그런데 연도는.. 무슨 공간을 아끼려고 굳이 1900을 뺐는지 모르겠다. 16비트 int 기준으로 서기 32767년만 해도 정말 까마득하게 먼 미래인걸 말이다.

아 하긴, 20세기 중후반엔 연도의 마지막 두 자리(10과 1)만 써도 70이니 90이니 하면서 월과 일의 숫자 범위보다 월등히 컸기 때문에 변별력이 있었다. 연도도 두 자리만 쓰는 게 관행이었기 때문에 1900을 빼는 것은 그런 관행을 반영한 조치였을 것이다. Office 97은 있어도 Office 07은 없고 2007이니까 말이다.

엑셀 같은 스프레트시트들도 날짜 겸 시각을 저장하는 자료형의 하한이 1900년 1월 1일로 잡혀 있다. 그래서 한국 최초의 철도가 개통한 1899년 9월 18일 같은 날짜는 아슬아슬하게 날짜형으로 저장하지 못하며, 일반 문자열로만 취급된다. =_=;;

이렇게 인간 가독형 날짜· 시각 말고 기계 가독형으로 직렬화된 날짜· 시각을 저장하는 정수 자료형으로 Windows에는 FILETIME이 있고, C에는 time_t가 있다. FILETIME은 Windows NT 시절부터 64비트로 시작했지만 후자는 2000년대 이후에 와서야 2038년 버그를 미연에 방지하기 위해 각 플랫폼별로 64비트로 확장됐다. 사실, 이때부터 PC도 64비트로 바뀌어서 플랫폼에 따라서는 long 같은 자료형도 64비트로 바뀌기도 했다..

그리고 요일이야.. 두 구조체 모두 일요일이 0이고 토요일이 6이다.
요일도 이름이 아닌 숫자로만 취급하는 언어는 내가 알기로 중국어밖에 없는데 혹시 더 있는지 궁금하다. 물론 인간의 언어에는 설마 0요일이 있을 리는 없고 1부터 시작할 텐데.. 중국어의 경우 일요일은 日이어서 이게 0 역할을 하고, 월요일부터 토요일까지가 1요일~6요일에 대응한다.

이상이다. 이메일 얘기로 시작해서 날짜 시각 얘기로 소재가 바뀌었는데..
이메일(POP3/SMTP)을 비롯해 HTTP, FTP 같은 표준 인터넷 프로토콜들을 클라이언트와 서버를 모두 소켓 API만으로 직접 구현해 보는 건 코딩 실력의 향상에 도움이 될 것 같다. 일상생활에서야 이미 만들어져 있는 솔루션만 사용하면 되니까 실용적인 의미는 별로 없겠지만, 학교에서 학술..도 아니고 그냥 교육적인 의미는 충분히 있을 테니 말이다. 내부 구조를 직접 살펴보면, 이런 프로토콜의 secure 버전이 왜 따로 만들어져야 했는지 이유도 알게 될 것이다.

더구나 이를 응용해서 특정 메일에 대해 자동 회신을 보내는 프로그램, 한 FTP 서버의 파일을 다른 FTP 서버로 올리는 프로그램까지 만드는 건 시험이나 과제 용도로도 괜찮아 보인다. 요즘은 FTP 같은 거 명령어로 이용할 줄 아는 사람이 얼마나 될까? 당장 본인도 모른다. ㅎㅎ

이메일을 쓰지 않는다는 도널드 커누쓰 할배가 문득 생각난다. 이분이야 뭐 1970년대, 컴퓨터 네트워크라는 건 그냥 기업· 연구소, 정부 기관만의 전유물로 여겨졌고 이메일이란 게 처음으로 발명됐던 시절에 그걸 다뤄 왔던 분이다. 그러다가 현역 은퇴 후에 때려치우고 온라인 공간의 속세와 단절한 셈이다. 이젠 뭐가 아쉬워서 누구에게 이메일로 연락을 하거나 연락을 기다려야 할 처지도 전혀 아니고.. 그냥 아날로그 종이 편지를 취급하는 것만으로 충분하시댄다.

Posted by 사무엘

2019/12/18 08:32 2019/12/18 08:32
, ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1695

« Previous : 1 : ... 62 : 63 : 64 : 65 : 66 : 67 : 68 : 69 : 70 : ... 221 : Next »

블로그 이미지

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

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2024/12   »
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:
3047778
Today:
940
Yesterday:
2058