1. 문법 함정

C/C++에서 연산자로 쓰이는 토큰(문자)들 중에는 문맥에 따라서 의미가 중복될 수 있는 것이 있다.
예를 들어 * () [] 같은 토큰은 값을 계산하는 수식에서 쓰일 때와, 변수를 선언할 때 의미가 서로 다르다. 한쪽에서는 인근의 변수가 배열· 포인터· 함수 타입임을 나타내지만, 다른 쪽에서는 실제로 배열 첨자나 포인터를 역참조하고 함수를 호출하는 역할을 한다.

심지어 =조차도 int a=5; 와 그냥 a=5; 에서 =는 문법적인 의미가 서로 동일하지 않다. 똑같이 =를 썼더라도 중괄호를 동원하여 배열이나 구조체를 초기화하는 것은 일반 수식에서는 가능하지 않기 때문이다.

이런 것 말고도 콤마(,)의 경우.. 함수 인자 구분자와 쓰임이 완벽하게 겹친다. 그렇기 때문에 함수 인자에서 콤마 연산자를 쓰려면 수식을 괄호로 싸야 한다.

그리고 <>로 둘러싸인 템플릿 인자에서 부등호 내지 비트 이동 연산자를 쓸 때도 상황이 좀 난감해진다. 템플릿 인자에 typename만 올 때는 <>가 모호성을 전혀 일으키지 않지만, 문제는 템플릿 인자로 정수도 들어올 수 있다는 것이다. 그리고 값이 컴파일 타임 때 결정만 될 수 있다면 정수값을 만들어 내는 각종 연산자들도 당연히 쓰일 수 있다.

template class Foo<size_t N> { .... };

Foo<(a>b ? 5:3)> bar1;
Foo<(MAX>>3)> bar2;

그러니 위와 같은 상황에서는 수식 전체를 괄호로 싸야만 한다. 괄호가 단순히 같은 수식 안에서 연산 우선순위를 조절할 때만 쓰이는 게 아니라는 점이 흥미롭다. 수식 영역과 함수 및 템플릿 인자 영역을 구분할 때도 쓰인다.

std::vector<std::list<int>> vl;

요렇게 중첩되었던 템플릿 인자들이 한꺼번에 종결될 때 > 사이를 강제로 띄우지 않아도 되게 컴파일러의 동작 방식 지침이 달라진 때가 내 기억이 맞다면 C++03과 C++11사이였지 싶은데.. 정확하게는 모르겠다.

그 밖에 2[a]가 가능하다는 C/C++의 변태적인 특성상, 람다와 관련해서 또 변태 같은 중의성을 만들 수 있지는 않으려나 궁금한데, 너무 머리가 아파서 더 생각해 보지는 않으련다.
요즘 C++은 auto라든가 using, delete를 보면 =를 사용하는 새로운 문법이 여럿 생긴 것 같다.

2. 비표준이지만 표준처럼 쓰이는 함수

C언어 라이브러리에 있는 모든 함수들이 100% 표준이고 어느 플랫폼에서나 동일하게 사용 가능한 게 아니다.
본인은 평소에 Visual C++만 쓸 때는 이런 걸 전혀 의식하지 않고 지냈는데.. strlwr과 심지어 내 기억이 맞다면 strdup도 macOS에서는 지원되지 않는 걸 최근에 확인하고는 놀랐었다.
물론 저런 함수들이야 하는 일이 워낙 간단하니 3분 만에 직접 짤 수도 있다. 하지만 핵심은 저건 universal한 표준이 아니라는 것이다.

Visual C++도 세월이 흐를수록 '표준 준수'를 강조하는 쪽으로 라이브러리의 디자인이 바뀌다 보니, 관례적으로 제공되긴 했지만 엄밀히 말해 표준이 아닌 함수들에 대해서는 앞에 밑줄을 붙여서 구분하는 추세이다.
하긴 그러고 보니, Visual C++을 업그레이드 한 뒤에 기존 코드가 컴파일되지 않아서 수정하던 내역 중에도 멀쩡한 함수 앞에다가 _를 붙이는 게 많았다. 일례로, 이분 검색 함수는 bsearch가 당당히 표준으로 등재돼 있지만, 그에 상응하는 선형 검색 함수는 표준이 아니어서 그런지 _lfind이다.

3. 스택 메모리의 임의 할당

그러고 보니 비표준 함수 중에는.. malloc의 변종으로서 가변 길이(= 크기가 런타임 때 정해지는) 메모리를 heap이 아닌 무려 현재의 스택 메모리에서 얻어 오는 alloca이던가 malloca인가 하는 물건도 있었다. 옛날 16비트 Turbo C에만 있는 줄 알았는데 현재의 Visual C++에서도 지원은 하는가 보다. 물론 앞에 밑줄은 붙여서 말이다.

얘는 C에서 문법적으로 가능하지 않은 동적 배열을 heap이 아닌 스택 메모리에 구현해 준다. 메모리 할당 속도가 heap을 다루는 것보다 훨씬 더 빠르며, 함수 실행이나 scope이 끝날 때 해제도 자동으로 되어 memory leak 걱정을 할 필요 없으니 편리하다. 지금 실행 중인 함수의 stack frame을 조작하는 물건이니, 겉으로는 함수 호출 같지만 실제로는 컴파일러 인트린식 형태로 구현되지 싶다.

이렇게 생각하면 얘는 장점이 많아 보이지만.. 일단 할당 장소가 장소인 관계로 (1) 수 MB 이상급의 대용량 메모리를 할당할 수 없으며, (2) 할당 방식의 특성상 heap 메모리처럼 할당과 해제를 무순으로 임의로 자유자재로 할 수 없다. (3) C++ 언어의 보조를 받는 게 없기 때문에 해제와 C++ 객체 소멸을 한데 연계할 수도 없다.

이런 한계로 인해 스택에서의 동적 메모리 할당은 생각만치 그렇게 유용하지 않다. 본인도 지난 20여 년 동안 C/C++ 프로그래밍을 하면서 이걸 전혀 사용해 본 적이 전혀에 가깝게 없었다.
저 함수가 괜히 비표준이 아닌 셈이다. 마치 정수 기반 고정소수점과 비슷한 위상의 이단아인 것 같다. 다만, 그럼에도 불구하고 본인은 이런 상황은 어떨까 하는 생각을 해 보았다.

생성자에서 문자열을 인자로 받아들여 적절한 처리를 하는 기반 클래스가 있다.
이걸 상속받아 파생 클래스가 만들어졌는데, 얘는 자주 쓰이는 문자열 패턴을 손쉽게 생성하기 위해 여러 개의 문자열이나 숫자를 숫자를 인자로 받으며, 이로부터 단일 문자열을 생성하여 기반 클래스의 생성자에다가 전달한다. 즉, 이런 꼴이다.

Derived::Derived(string arg1, string arg2, int num):
 Base( prepareArgument(arg1, arg2, num) ) {}

예시를 보이기 위해 편의상 string이라는 자료형을 썼지만, 실제로 저기서 쓰이는 것은 const char * 같은 문자열 포인터이다.
즉, 나는 Derived의 생성자에서 char buf[128] 같은 스택 기반 지역변수 배열을 선언한 뒤, 거기에다 arg1, arg2, num의 정보를 담고 있는 문자열을 담고 그걸 Base의 생성자에다가 전달하고 싶으나.. 문법 구조상 그건 가능하지 않다. 기반 클래스는 파생 클래스의 생성자가 실행되기 전에 초기화가 완료돼야 하기 때문이다. 그러니 파생 클래스의 생성자 함수에서 확보해 놓은 스택 변수의 공간을 받을 방법도 존재하지 않는다.

이럴 때 prepareArgument(_alloca(len), arg1, arg2, num) 이런 식으로 static한 보조 함수를 만들면 굳이 힙 메모리 할당과 생성자· 소멸자가 뒤따르는 범용 string을 쓸 필요 없이 스택에다가 문자열을 담을 공간을 임시로 확보하여 소기의 목적을 달성할 수 있을 것으로 보인다.

4. 쓰레기값

'초기화되지 않은 변수, 쓰레기값'이라는 건 내가 아는 프로그래밍 언어들 중에는 C/C++에만 존재하는 개념이다. 물론 컴퓨터라는 기계에 본질적으로 존재하니까 C/C++에도 존재하는 것이지만 말이다.
이것 때문에 야기되는 버그의 황당함과 막장스러움은 뭐, 이루 말로 형용할 수 없다. 같은 소스 코드가 release 빌드와 debug 빌드의 실행 결과가 달라지는 건 애교 수준이다. 프로그램이 미묘하게 삑사리가 나고 있어서 몇 시간을 끙끙대며 디버깅을 했는데 원인이 고작 이것 때문인 일이 비일비재하다.

개인적으로는 부모 클래스의 멤버가 초기화되지 않았는데 그걸 자식 클래스에서도 초기화하지 않은 것, 처음에는 0 초기화가 보장되는 static 영역에 있던 오브젝트를 별 생각 없이 스택/힙으로 옮긴 것, 심지어 한 멤버를 초기화할 때 아직 초기화되지 않은 다른 멤버를 참조해서 망한 것이 기억에 남아 있다.

간단한 int 지역변수가 초기화되지 않은 건 컴파일러 차원에서 잡아 주지만 위와 같은 사항들, 복잡한 구조체의 멤버가 일부 초기화되지 않는 것, 스택이 아닌 힙에서 할당하는 동적 메모리가 돌아가는 사정은 컴파일러도 일일이 다 챙겨 주지 못하기 때문에 더 복잡한 정적 분석의 영역으로 가야 한다.

그런데 개인적으로 의문이 드는 건 초기화되지 않은 쓰레기값이란 건 어느 정도로 무질서하냐는 것이다. 무슨 수학적으로 균일한 난수 수준일 리는 없을 것이다.
그 쓰레기들의 값에 영향을 주는 것은 정확하게 무엇일까? (스택이냐 힙이냐에 따라 다르게 생각해야 할 듯) 컴파일 시점에서 결정되어서 한번 빌드된 프로그램은 동일한 동작 조건에서는 불변인 걸까? 혹은 운영체제에 따라 달라질 수 있을까?

마치 중간값 피벗 기반의 퀵 정렬이 최고 시간 복잡도가 나오게 공격하는 방법을 연구하는 것처럼 저것도 뭔가 컴퓨터공학적인 고찰이 필요한 의문인 것 같다.

5. 메모리 주소의 align 문제

"어..? 구조체의 크기가 왜 각 구조체 멤버들의 크기의 합보다 더 크지? 컴파일러의 버그인가?"
본인이 이렇게 크게 놀랐던 게 벌써 20여 년 전, 고딩 시절에 도스용 DJGPP를 갖고 놀던 때였다.
그때는 지금 같은 구글 검색도 없고 네이버 지식인도 없고.. 이런 시시콜콜한 이슈를 다루는 C언어 서적도 없었으니, 궁금하면 물어 볼 만한 곳이 PC 통신 프로그래밍 관련 동호회 게시판밖에 없었다.

메모리 취급에 매우 관대한 x86 물에서만 놀던 사람이라면 word align이라는 개념이 더욱 생소할 수밖에 없다. 더구나 그 경계에 맞지 않은 단위로 메모리 접근을 시도할 경우, CPU가 귀찮아서 예외까지 날린다면??
본인은 포팅이라는 걸 할 때 word align을 조심해야 한다는 것을 머리로는 들어서 알았지만 그 문제를 회사에서야 실제로 겪었다.

이제 네이티브 코드는 반드시 ARM64 기반으로 빌드해야 하니 해당 부분을 64비트로 다시 빌드했다. 그런데 동일한 엔진을 얹은 안드로이드 앱이 어떤 기기에서는 잘 돌아갔는데 다른 기기에서는 뻗었다.
죽은 지점이 어딘지는 stack dump를 통해 알아낼 수 있었지만 거기는 null pointer, buffer overflow 등 그 어떤 통상적인 메모리 문제가 발생할 여지도 없는 곳이었다.

알고 보니 거기는 파일 형태로 기록하는 조밀한 버퍼에다 wcsncpy( reinterpret_cast<wchar_t*>(buf+1), str, len) 이런 짓을 하고 있었으며, 타겟 포인터가 한눈에 보기에도 wchar_t의 크기 대비 word align이 되어 있지 않았다(buf 는 char* ㄲㄲㄲ).
그래서 wcsncpy를 memcpy로 교체함으로써 문제를 해결할 수 있었다. wchar_t는 long과 더불어 포팅을 어렵게 하는 주범이며, reinterpret_cast는 align과 관련된 잠재적 위험성을 발견하는 용도로도 쓰일 수 있다는 점을 알게 됐다.

복잡한 포인터 메모리 조작 코드에서 잠재적인 align 문제를 잡아내는 건 사람의 디버깅만으로는 한계가 있을 텐데, 정적 분석으로 가능한지 궁금하다. 그리고 반대로 레거시 코드를 돌리기 위해 컴파일러가 성능이 떨어지는 걸 감수하고라도 최소한 뻗지는 않게 align 보정 코드를 집어넣어 주는 옵션도 있을 텐데 그것도 궁금해진다.

6. 32비트 단위 문자열

C/C++에서 wchar_t 크기의 파편화로 인해 야기된 혼란과 원성이 워낙 장난이 아니었기 때문에 C++11에서는 아예 크기를 직접 명시하고 고정시킨 char16_t와 char32_t라는 자료형이 built-in으로 추가되었다. int는 32비트 시대에 크기가 변했고 long은 64비트 시대에 플랫폼별로 삐걱거리기 시작했다면, wchar_t는 유니코드와 함께 새로 등장하면서 저 지경이 된 셈이다.

개인적으로 인상적인 것은 char32_t는 U""라고 문자열 리터럴을 나타내는 접두사까지 언어 차원에서 새로 등장했다는 점이다. 드디어 확장 평면 문자도 취급하기 더 수월해지겠다.
그런데 그러면 Visual C++이라면 ""는 1바이트, L""는 2바이트, U""는 4바이트라고 자연스럽게 연결되는데, 처음부터 wchar_t가 4바이트였던 맥에서는 L과 U가 모두 4바이트이다. char16_t에 대응하는 2바이트 문자열은 리터럴로 표현하는 방법이 없나 궁금하다. 오히려 Objective C에서 사용하는 NSString의 @""가 2바이트 문자열 리터럴이다.

char32_t가 언어 차원에서 이렇게 지원되기 시작했는데 str*, wcs*처럼 32비트 문자열 버전에 대응하는 strlen, strcpy, sprintf 등도 있어야 하지 않나 싶다. C++이라면 char_traits 템플릿으로 땜빵할 수도 있겠지만 C에는 그런 게 없으니까..
그리고 템플릿이 없는 저쪽 동네 Java는 32비트 단위 문자열을 취급하는 string class 같은 것도 있어야 하지 않을까? 문자 하나도 확장 평면까지 감안해서 얄짤없이 int로 표기하는 건 직관적이지 못하고 불편하니 말이다.

7. 레퍼런스 사이트

C/C++은 마소의 C#, 애플의 Swift, 썬-오라클의 Java처럼 한 기업이 주도해서 개발하는 언어가 아니다. 그래서 C++ 라이브러리 레퍼런스 같은 걸 검색해도 딱 떨어지는 개발사의 홈페이지가 곧장 나오지는 않는다.
하지만 수 년 전부터 구글 검색에서 상위권으로 노출되고 있는 유명한 사이트는 아래의 딱 두 곳인 것 같다.

http://www.cplusplus.com
https://en.cppreference.com/w

얘들은 개인? 단체? 어디서 운영하는지 모르겠다. C++17, C++20 같은 최신 정보도 곧장 올라오는 걸 보니 유지보수도 활발히 되고 있고 만만하게 볼 퀄리티가 아니다.
마치 Doom 게임 관련 자료를 듬뿍 얻을 수 있는 위키 사이트가 doomwiki와 doom.fandom.com 요 두 계열로 나뉘듯이 말이다.

Posted by 사무엘

2019/11/13 08:33 2019/11/13 08:33
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1683

30여 년 전에 개최되었던 서울 올림픽은 운동 선수들만 잘 뛰어서 성공한 게 아니었다. 마스코트 호돌이와 주제가 "손에 손잡고" 같은 예술 감성 마케팅도 완벽했다.

개인적으로는 자국의 음악가 대신 일부러 외국인에게 주제가 작곡을 맡기고, 공연도 한국인이지만 외국에서 활동한 그룹에게 맡긴 것이 선견지명이었다고 생각한다. 그래서 음악의 퀄리티가 더욱 올라갈 수 있었다. 고유 모델 자동차를 개발할 때도 첫 단추를 끼울 때 돈 아깝다는 생각을 접고 쿨하게 외국 일류 디자이너에게 디자인을 맡겼으며, 이름도 군사정권이나 북한스러운 시덥잖은 국뽕물 형태로 짓지 않고, 수출을 의식해서 '포니'라고 지었던 것처럼 말이다.

그 뿐만이 아니다. 벤 존슨 선수의 약물 도핑을 잡아낸 기술력, 그리고 자체 개발한 통합 전산 시스템 같은 운영도 아주 성공적이었다. 정말 "우리도 할 수 있다"라는 저력을 세계를 상대로 보이기에 손색이 없었다. 물론 이런 노하우가 갑자기 하늘에서 뚝 떨어진 건 아니고, 자국의 전국체전, 그리고 86년 아시안게임이라는 베타테스트 기회가 먼저 있긴 했다.

오늘은 본인이 서울 올림픽 개막식 동영상을 보다가 문득 떠오른 생각을 좀 열거하고자 한다. 어쩌다 보니 기계 이야기와 사람 이야기가 하나씩 모였는데, 일단 기계 이야기부터 먼저 늘어놓겠다.

1. 전산 시스템의 디지털 서체

본인이 예전부터 강조한 바와 같이, 1953년의 휴전 협정 문서는 한글이 기계식 타자기로 찍혀서 국제적인 역사 기록이 만들어진 거의 최초의 사례이다.
알파벳을 쓰는 서양에서는 학술 논문은 말할 것도 없고 전쟁 중에 삐라 찌라시를 만들 때도 타자기를 써서 일을 아주 신속하게 진행했지만 동양은 아직.. 심지어 펜보다도 더 느리고 불편한 붓을 썼던 것이다.

그런데 그로부터 30여 년 뒤, 서울 올림픽 주경기장 전광판에 떴던 자막은 한글이 디지털 컴퓨터의 화면에 표시되어 국제적인 역사 기록으로 남은.. 완전 최초까지는 아니어도 충분히 초창기 축에 드는 사례이지 싶다. 특히, 내부적으로 단순무식 그림이 아니라 진짜 문자로 처리되어서 출력된 것 말이다.
(화면은 모두 대한뉴스 유튜브 영상들 캡처해서 적당히 짜깁기..)

사용자 삽입 이미지

알파벳· 숫자와 마찬가지로 모든 획을 수평 수직 45도 대각선만으로 구성한 단순한 디자인이요, 확대 계단 현상이 그대로 드러나 보이는 투박한 비트맵이다. 좀 허한 느낌이 드는 ㅅㄷㅈ 같은 초성의 배치를 보면.. 조합 벌수가 그리 많지도 않은 구조로 보인다.

전광판 말고도 그 시절의 대한뉴스 동영상을 열람해 보면 기자나 운영자들이 자료 입력용으로 사용한 전산 시스템의 접속 화면을 볼 수 있다. 일명 GIONS인데.. 난 1980년대의 컴퓨터 프로그래밍 환경은 어떠했을까 아는 게 없으니 신기하기 그지없다. 저 때는 PC 환경에서는 온갖 한글 코드들이 난립하고 조합형이니 완성형이니 하면서 싸우던 때였다. 한글 카드라는 하드웨어(!!)가 있었으며 소프트웨어적으로 한글 입출력을 구현하는 건 고난도 프로그래밍 테크닉이었다.

개인이 단말기 용도로 쓰던 컴은 그냥 IBM XT급인지, 아니면 다 IBM 워크스테이션급인 건지, 16비트인지 32비트인지, x86인지 아닌지(아마 아닌 듯)... 같은 것 말이다. 더구나 GIONS는 그 이름도 유명한 코볼 언어로 작성됐을 거라는 말이 있다.

사용자 삽입 이미지

이 화면에서 쓰인 한글 폰트는 비교적 친숙하다. 글자가 전반적으로 홀쭉하고 영문· 숫자도 전각으로 표현되었던 것 같다.

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

그런데 본인의 고개를 갸웃거리게 하는 것은 이 화면이다. 이건 분명 모니터 화면인데 영문· 숫자는 반각으로 표현되었을 뿐만 아니라 고해상도이다. 화면용 폰트가 아니라 24픽셀급의 도트 프린터 인쇄용 폰트가 쓰였다.
그 시절에 텍스트 모드 화면에서 인쇄용 폰트를 볼 일은 PC 레벨에서는 없었을 텐데.. 이건 도대체 무슨 기기인지 궁금하다.

서울 올림픽의 통합 전산 관리 시스템(모든 경기들의 진행 상황 파악, 선수들 기록 등록, 기사 전송 등...)인 이 GIONS는 순수하게 국산 기술로 개발되었고 대회 중에 한 번도 오류 없이 성공적으로 잘 돌아갔다. 서울 올림픽의 개최를 성공으로 이끈 숨은 일등공신 역할을 했음은 물론이다.

하지만 올림픽이 끝난 뒤에는 이 솔루션은 전혀 유지보수 되지 못한 채, 완벽하게 잊혀지고 사라져 버렸다. 심지어 후대의 올림픽 개최국 중에서 GIONS를 구매해서 도입하고 싶어하는 곳이 있었는데도 도움을 주지 못했다. 그때 한데 모였던 개발 인력은 각자 자기 먹고 살 길을 찾아 이직하고 흩어졌다. 이거 무슨 거북선도 아니고 뭐냐..

물론 지금이야 최신 웹과 DB 기술을 이용해서 그 정도 SI를 구축하는 것은 30년 전 그 시절만치 대단하고 거창한 일은 아닐지 모른다. 하지만 신기술이 아직 가치가 있던 시절에 그게 더 널리 쓰이지 못한 것은 애석한 노릇이다.

2. 고등학생들의 개회식 매스게임

올림픽의 개회· 폐회식 때는 주최국에서 준비한 온갖 화려 현란한 공연들이 펼쳐져서 흥을 돋우고 관객들에게 잔치 분위기를 내는 것이 관례이다. 서울 올림픽도 예외가 아니었다.
이런 건 주최국에서 내로라 하는 예술가들이 국가로부터 의뢰를 받아서 컨텐츠를 만든 뒤, 전공자 전문 무용수들이 대가를 받고 공연한다. 그런데 서울 올림픽의 경우, 거기에 덤으로 '동대문 상업 고등학교', '서울 여자 상업 고등학교' 이렇게 남녀 실업계 고등학교 두 곳에서 총 1100명이나 되는 2학년 학생들이 소집되어 매스게임을 했다.

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

이 사람들은 처음에 전문 무용수들이 '태초의 빛'이라는 창세기 1장스러운 공연을 할 때는 들러리로 자리 채우는 역할만 했지만, 그 다음 '어서오세요' 편에서는 자기들이 직접 운동장을 뛰어다니고 구르면서 88, WELCOME, 어서오세요, 오륜기 등등 글자 픽셀을 만들고 심지어 색깔띠(?)를 펼쳐서 펄럭이기까지 했다.

아예 체조 선수나 발레리나 같은 레오타드도 아니고 반쯤 운동 선수 같은 희고 짧은 복장에, 색깔띠는 저렇게 머리에 두르고 있는 게 무척 인상적으로 느껴졌다.

사용자 삽입 이미지

매스게임은 그 특성상 민주· 인권이 발달한 나라에서는 잘 안 하고 사회· 공산주의 집단· 전체주의 똥군기스러운 곳에서 체제 선전과 단결력 과시(?)를 목적으로 많이 하는 편이다. 가령, 북한의 아리랑 공연은 그야말로 HD급 해상도를 자랑하는-_- 카드섹션을 선보이는 걸로 유명하다. 그 대가로 침해되는 북한 어린이와 청소년들의 개인 시간과 건강, 학습권 따위는 아웃 오브 안중..

우리나라는 북괴 정도까지는 아니지만 그래도 옛날엔 주변에서 선진 문물이랍시고 보고 배운 게 온통 일본물밖에 없고, 또 생존을 위해서라도 멸사봉공 군대 문화와 전체주의 분위기가 오랫동안 쩔었다. 그렇기 때문에 학교나 대기업 같은 데서 맛보기 수준의 매스게임은 종종 행해졌다. 당장 전국체전 때만 해도 운동부 애들의 운동 경기뿐만 아니라 여학생들 집단군무가 관행이었다는 것을 옛날 대한뉴스를 보면 알 수 있다.

군대는? 제식부터가 일종의 집단군무이다. 카드섹션 같은 건 없겠지만 그 대신 무릎을 안 굽히고 걷는 거위걸음 행군이 있다.
그리고 국군의 날 기념 퍼레이드 연습이 통과의례였다. 퍼레이드에 선발된 부대의 일반 보병들이야 각 잡고 광낸 군장 메고 행군만 하겠지만 사관 생도나 특전사들은 뭔가 더 특별한 걸 보여줘야 하니 연습하느라 고생이 이만저만이 아니었을 것이다. 요즘이야 대규모 특별 행사를 5년마다 한 번씩 대통령이 취임한 해에만 하지만, 옛날 군사 정권 시절에는 그 짓을 여의도 광장과 서울 종로에서 매년 해야 했다.

자, 그런 와중에.. 서울 올림픽 개회식의 매스게임에 참여했었다는 익명의 서울여상 졸업생의 회고 인터뷰가 어째 딴지일보에 올라와 있어서 본인은 재미있게 읽었다. 참고로 딴지일보 기사도 무려 2004년작이니, 올림픽 당시와 지금의 중간 사이인 엄청난 옛날이다.;; "그리스 아테네 올림픽 개회식은 보셨나요?"라는 인터뷰 질문에서 세월의 격차를 느낄 수 있다.

인터뷰 내용에 따르면..

  • 그 아이들은 1학년 2학기에 들어갔을 무렵부터 거의 1년을 연습했다고 한다. 매일 하루도 빠짐없이는 아니었겠지만 그래도.. 연습날은 오전 수업만 하고 오후 내내 해 떨어질 때까지.. 이 때문에 수업 시간이 펑크난 건 방학을 줄여서 메워야 했다.
  • 자기 학교가 뜬금없이 개회식 매스게임에 참여하기로 결정된 것은 자기 반이 배틀로얄 시범 학급으로 지정된 과정과 다를 바 없다. 학생들의 의사는 반영되지 않았다. 그 시절엔 세계가 지켜보고 있으니 그냥 나라와 학교에서 시키면 애국이라는 명목으로 해야 했다. 까라면 까야 했다.
  • 두 학교가 같이 모여서 연습할 때는 연습 장소로 효창 운동장이 주로 쓰였다.
  • 세 번 정도 올림픽 주경기장에서 개막식 폐막식 총연습 리허설이 있었는데, 마지막 '최종' 리허설 때는 학부모들도 공식적으로 초청받았다고 한다.
  • 조금 씁쓸한 얘기이지만, 실업계고가 선택된 이유는 일반 인문계고에서는 애들 공부하는 데 방해 된다고 학부모들 반대가 심했기 때문이랜다. (그 전의 86년 아시안게임 때의 선례)
  • 올림픽이 끝난 뒤에 모든 참가자들은 고생했다고, 수고 많았다면서 나중에 국가로부터 자그마한 기념 훈장쪼가리를 받았다.

그래도 강제 동원된 것치고는 저 클로즈업 영상에 나오는 학생들의 표정은 대체로 밝아 보인다.
개회식 이후에 폐회식 때는 또 다른 실업계 고등학교 학생들이 매스게임을 했다. 학교명은 공주농고, 해성여상이라고 뜨는데, 지금은 두 학교 모두 특성화 고등학교를 표방하며 이름이 바뀌어 있다. 지방에 있는 학교이면 이동하느라 연습하기가 더 어려웠을 것 같은데..

정말 88 올림픽을 소재로 영화 좀 나오는 게 없으려나 모르겠다. 운동 선수, 운영 인력 등 무엇 하나를 집어도 드라마틱한 소재는 만들어질 수 있을 것 같은데 말이다.
참, '태초의 빛'을 지도한 이화여대 무용학과 교수는 성명이 어째 '유 관순' 열사랑 발음이 같다..; 일부러 노린 작명인지 진지하게 궁금해진다.

서울 올림픽은 전세계 지구촌 축제를 표방하며 개최되었고, 실제로 그 목표를 어느 정도 이뤘다. 자유 진영과 공산권 국가들이 모두 참가해서 그 전의 모스크바· LA 올림픽의 한계를 훌륭하게 극복했기 때문이다.
하지만 그 와중에 북괴는 펜대 굴리며 곰곰이 계산을 해 보니.. 결국 자기 주민들에게 미칠 여파를 생각하면 안 되겠다 싶었는지 불참했다. 불참만 한 게 아니라 KAL858편 테러나 일으키면서 남한의 올림픽 개최를 방해하고 해코지나 했다는 것을 우리는 잊지 말아야겠다.

사용자 삽입 이미지

Posted by 사무엘

2019/11/10 08:35 2019/11/10 08:35
, , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1682

본인이 다니는 교회에서는 매년 8월에 자연의 정취가 살아 있는 곳으로 2박 3일간 하계 수련회를 간다.
거기서 대부분의 교인들은 특정 주제를 두고 진행하는 담임목사님의 성경 특강을 시리즈로 듣는다. 하지만 불신자 내지 초신자들을 위한 복음 전도 집회를 따로 진행하는 분도 있고, 어린애들 주일학교를 진행하는 분도 있다. 이분들은 목사님의 특강을 못 듣는다.

그리고 본인은 언제부턴가 주일학교 강사 중 하나 역할을 맡기 시작했다.
작년에는 주일학교 공부 주제가 "하늘나라 heaven", 즉 미래 시제였다. 그랬는데 올해는 이와 대조적으로 주제가 "교회사"로, 어째 과거 얘기가 됐다.
형제들 세 명이 번갈아가며 2, 30분 남짓 강의를 하기로 했다.

신약 교회사에서 대격변에 달하는 큰 사건은 콘스탄틴 (313), 종교 개혁 (1517) 정도이다.
그렇기 때문에 이걸 기준으로 시기를 나누면 별다른 고민할 필요 없이 세 명의 강의 구간이 딱 정확하게 갈라지게 된다.

1부는 침례인 요한, 예수님의 승천과 교회 태동, 사도행전, 네로 황제의 박해, 최근 영화 '바울'의 고증 분석, 로마 제국에 의한 맹렬한 박해, 예수님 제자들의 최후, 초기 교부들.. 이런 게 나올 것이다.
다루는 시기가 상대적으로 짧으나, 첫 타인 만큼 기본 개념을 얘기해 줘야 되는 게 많다. 유대인과 교회의 차이, 세례와 침례의 차이, 기독교 천주교 개신교의 관계 등.

2부는 중세 암흑기, 종교 재판, 위그노· 노바티안· 왈덴시스 등 "개신교가 아닌 계통의" 기독교 크리스천들의 계보, 위클리프 이래로 틴데일 등 킹 제임스까지 영어 성경 번역 역사, 성 바돌로메 대학살, 에라스무스의 공인 본문, 루터가 나올 것이고..

그리고 3부는 미국 건국, 18~19세기의 부흥, 그리고 "한국의 교회사", 성경 변개 내력, 20세기 이후의 거대한 배도의 물결이 다뤄질 것이다.

내가 강의를 전부 맡는다면 내용을 저렇게 편성할 것이다.
본인은 셋 중 하나만 하라면 제일 최근인 3부를 맡아서 어린 꿈나무들에게 특별히 반공 교육을 해 주고 싶었다.

우리나라의 1948년 5월 10일 총선거일은 주일을 피해서 일부러 월요일로 정해졌는데 북괴는 1946년 11월 3일 총선거를 일부러 일요일로 정했다는 것을 얘기하고,
제헌 국회 기도문을 북괴의 제2차 로동당 대회와 대조해서 소개하고 싶었다.

일제 말기뿐만 아니라 1950년 가을과 겨울에도 반도에 순교의 피가 얼마나 많이 흘려졌는지, 북괴가 왜 저렇게 기독교를 못 잡아먹어서 안달일 수밖에 없는지 본질적인 이유를 얘기할 생각이었는데..

형제 중 한 분이 사정상 마지막 날 3부 시간대에만 강의가 가능하다고 해서 3부는 그 형제에게 양보하게 됐다. 나는 그 대신 2부를 맡았다.
하지만 그 형제도 나 만만찮은 반공 보수 우파이니 안심이 된다. 사실 크리스천이라면 누구나 이렇게 되는 게 정상이지.. 특히나 요즘 같은 나라 꼬라지라면 더욱 말이다.

좀 수위가 쎈 슬라이드 몇 장만 빼고 대부분을 내 블로그에다가도 공개하도록 하겠다. 도움 되셨으면 좋겠다.
다만, 듣는 애들이 대부분 초등학생이다 보니, 강의를 하던 당시에는 문장들이 전반적으로 여전히 너무 길고 어렵다는 평을 받았다.

사용자 삽입 이미지

제목부터가 '피 흘린 발자취'인데 슬라이드 배경은 응당 어두운 색으로 뽑아야겠다는 생각을 진작부터 했다.

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

3부작의 강사가 모두 다르지만, 강의하는 주제와 내용과 범위를 얼추 합의했기 때문에 '지난 줄거리'를 짤 수 있었다.
교회, 박해, 침례.. 모두 아주 중요한 개념이다.

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

천주교와 기독교는 그저 구원 교리나 마리아나 연옥 같은 교리만 다른 게 아니라 역사관부터가 극과 극으로 다르다.
콘스탄틴의 기독교 공인은 일제 시대 무단 통치가 문화 통치로 바뀐 정도라고 생각하면 된다. 참조할 만한 다른 사건은..

  • 예수님이 받으신 사탄 마귀의 마지막 시험 "내게 절하라. 그럼 내가 이 모든 걸 너에게 주겠다."
  • 파라오가 출애굽과 관련해서 모세에게 제안했던 온갖 타협 절충안들. "애들은 놔두고 성인들만 가라", "가축들은 놔두고 가라" 등등등..
  • 사사기 후반부에서 벌어지던 온갖 성직자들의 타락, 예배의 왜곡
  • 겨자씨가 거대한 나무가 되어 공중의 새들이 가지에 앉는 사건 비유

정도이다.

사용자 삽입 이미지

특히 침례교인들은 유아 세례 반대 같은 이유로 인해, 카톨릭뿐만 아니라 장로교 같은 종교 개혁 개신교 교파들로부터도 박해를 받았다. 쟤들을 가만 놔두면 자기 교리가 틀린 꼴이 되기 때문이다. 물론 그 박해는 스페인 종교재판소 같은 것하고는 규모나 스케일이나 맥락이 좀 다른 박해이다.

사용자 삽입 이미지

그래서 부유한 과부들이 제일 호구였다. 마 23:14 / 막 12:40와 정확히 일치한다.
이교도 마녀로 몰아서 죽여 버리고 재산 몰수하면 끝이다.

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

중세 유럽은 이랬다.

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

종교 개혁은 유익하고 선한 결과물도 있던 한편으로, 한계도 있었다.
성경 번역 내력과 관련된 슬라이드는 생략한다.

사용자 삽입 이미지

이제 강의를 마무리 하는 퀴즈 차례이다.
처음엔 '아닌 것은'이라고 문제를 만들었다가.. 교육학적인 요소를 감안(?)하여 '옳은 것은'이라고 형태를 바꿨다.

사용자 삽입 이미지

교회사를 총망라 정리하는 마지막 문제이다. 나름 머리를 굴려서 만든 문제이긴 한데...

  1. 돌탕질 -- 율법을 어긴 죄인을 처형하는 방법으로, 유대인 동족끼리 행함. (예: 스데반의 순교)
  2. 십자가형 -- 고대 로마 제국에서 행하던 가장 잔혹한 처형 방법. 로마 시민에게는 하지도 않았음. 그래서 로마 시민권이 있었던 바울은 로마 대화재의 주범이라는 극악 죄인으로 몰렸음에도 불구하고 십자가형까지는 아니고 참수형을 당했다.
  3. 화형 -- 이건 뭐.. 종교 재판소가 1순위이고, 로마 제국도.. 인간 횃불이라는 방법으로 행했다고도 볼 수 있다. 다만, 동족 유대인이 행한 건 절대 아니므로 오답이다.
  4. 로마 제국 시절에 콜로세움에서 행해졌으니 이게 정답이고..
  5. 로마 제국은 몽둥이질 채찍질을 하고 잔인하게 처형을 했지만, 중세 종교 재판소만치 별 희한한 변태적인 고문까지 하지는 않았다.
사용자 삽입 이미지
이렇게 다음 강의자의 내용 예고도 해 줬다~ 이상. ㅎㅎ

Posted by 사무엘

2019/11/07 08:31 2019/11/07 08:31
, , , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1681

등산 답사기: 수락산 #2

본인은 올해 가을엔 어쩌다 보니 등산 야영을 시리즈로 계속하게 됐다. (1) 예빈산(남양주), (2) 청계산 국사봉+발화산(의왕+성남) 다음으로는 (3) 수락산을 다시 찾아갔다. 한강 근처의 예빈산· 예봉산 일대도 남양주이고 서울 북동부의 수락산 근처도 남양주라니.. 실감이 잘 가지 않았다. 세부 행정구역이 별내면과 와부읍으로 서로 다르긴 하다만 말이다.

지금으로부터 3년쯤 전, 겨울에 장암 역 근처에서 수락산을 올라서 주봉 정상에 도달한 뒤, 남양주의 청학리 수락산 유원지 방면으로 하산한 적이 있었다. 산을 서에서 동으로 횡단한 것이다. 이번에는 차를 가져가서 수락산 유원지에서 등산을 시작한 뒤, 하산도 동일 지점으로 했다.

그러니 등산 경로의 관점에서 보면 이번 산행은 새로운 산이나 등산로를 개척한 것이 없었다.
하지만 시간이 3년에 가깝게 지나니 기존 경로도 충분히 새롭게 느껴졌으며, 수락산은 재방문만으로도 예빈산이나 청계산과는 사뭇 다른 경험을 선사했다. 암반이 많은 돌산이며, 물이 졸졸 흐르는 계곡도 있기 때문이었다. 그리고 무엇보다도...

사용자 삽입 이미지

이 등산로는 꽤 높은 곳까지 자동차 접근성이 좋았으며, 이렇게 차를 댈 만한 곳도 곳곳에 있었다. 내가 굳이 이 경로를 택한 주 이유 중 하나 역시 이것이었다.

경치 좋은 계곡의 주변 공간을 어디선가 무단 점유하고는 방문객에게 바가지 요금을 물리는 식당들의 불법 영업이 어제오늘 일이 아니었다. 그랬는데 올해는 이 관행을 근절하겠다고 경기도에서 주도적으로 칼을 뽑고 나섰다. 언제까지나 생계형 범죄랍시고 오냐 오냐 봐 주지 않겠다고 말이다. 그래서 그런지 여기도 식당들이 상당수 박살이 난 듯한 모습이었다.

한강 공원들만 해도 텐트와 야식 광고 찌라시, 쓰레기 때문에 몸살을 앓다가 지금은 질서를 많이 되찾았듯이.. 저것도 공권력이 마음만 먹으면 얼마든지 금방 바로잡을 수 있었던 일이었던 셈이다.

사용자 삽입 이미지

한참을 올라간 뒤에야 드디어 차도가 끝나고 사람만이 접근 가능한 돌계단과 비좁은 등산로가 나타났다.

사용자 삽입 이미지

이게 '금류 폭포'이며, 요런 게 바로 여느 흙산에서는 볼 수 없는 풍경이다. 흙바닥이 아닌 바위 위로 물이 줄줄..
이렇게 높은 곳에서도 아주 가늘게나마 물이 흐르는 산은 본인은 지금까지 수락산밖에 못 봤다. 이 정도면 물을 그냥 인위로 끌어올리기라도 한 건가 궁금해진다. 수락산 계곡에서 발원한 이 물은 평지에서 청학천으로 이어진다.

금류 폭포의 바로 옆엔 산장이라고 해야 하나 휴게소라고 해야 하나 자그마한 간이 식당까지 있었다.
예전에도 언급한 적이 있지지만, 여기는 국립공원이 아니기 때문에 이런 민간 산장이 들어서는 게 가능하다. 북한산 같은 곳이라면 등산로를 벗어난 계곡 근처는 몽땅 울타리가 쳐지고, 무단 침입 시 과태료가 부과되었을 것이다.

여기서 정상을 향해 더 올라가면 그리 멀지 않은 곳에 '내원암'이라는 바위와 함께 절인지 암자인지가 있다. 차량이 들어올 수 없는 높고 험한 곳치고는 건물과 마당을 포함한 부지가 꽤 넓었던 것으로 기억한다.
게다가 '해우소'라고 불리는 공중 화장실도 있었다. 실제로 이용해 보지는 않았지만 생긴 형태는 마치 수돗물이 여기까지 들어오기라도 하는 것처럼 수세식이었다.

하긴, 나중에 집에서 지도를 확인해 보니 금류 폭포와 내원암 정도는 해발 고도가 아직 300~350m밖에 안 되었다.
지금까지 올랐던 200여 m 고도는 경사가 여전히 굉장히 완만한 편이었고, 내원함 이후부터가 급격히 가팔라졌다. 실제로 빽빽한 계단을 오르고 또 올라야 하는 곳이 계속해서 등장했다.

사용자 삽입 이미지

아직 정상이 보일 기미가 안 보이는데 날은 계속해서 어두워져 갔다. 하긴, 오늘은 등산 자체를 오후 5시가 돼서야 시작했다.
정상에 거의 다 와서야 그 이름도 유명한 '수락 산장'과 함께 약수터도 등장했다. 1리터짜리 통을 다 채우는 데 내 기억으로 거의 1분 가까이 걸릴 정도로 수압이 낮았지만, 그래도 이 높이에서 맑은 물이 나오는 것만으로 어디냐.. 마시는 용도와 씻는 용도로 모두 도움이 됐다.

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

결국 해가 다 떨어진 뒤에야 주봉 정상에 도착했다. 1시간 반쯤 걸렸다.
수락산엔 여기 말고도 능선에 온갖 이름의 기암괴석 봉우리들이 더 있고 다른 등산로도 있는데, 거기는 아직 가 보지 못한 게 아쉽다.

사용자 삽입 이미지

성경의 '반석 위에 지은 집'에서 착안하여 '반석 위에 친 텐트' 정도 되겠다. ㄲㄲㄲㄲㄲ
따뜻한 간이 숙소에서 휴식을 취하고 도시락을 먹었다.
산을 오를 때까지만 해도 힘들어서 옷이 땀으로 흠뻑 젖고 물을 다 마실 정도였지만, 날씨는 이내 급격히 추워지고 땀이 식었으며, 바람도 세차게 불기 시작했다.

전에 예영을 했던 산들은 한밤중에 정말 아무도 없었지만 이 산은 달랐다. 새벽 1시쯤에 야간 산행을 하는 일행이 수락산 정상에 왔다가 갔다.
아무도 없을 줄 알았던 산 정상 근처 바위에 텐트가 덩그러니 놓여 있으니 그 사람들도 좀 놀랐을 것 같다. =_=;;
"웬 텐트? 허걱~" 하는 소리를 본인도 듣긴 했지만.. 서로 마주치지는 않았다.

그리고 사실은 아까 전에 저녁을 먹고 있던 중에 텐트 문을 열었을 때는 근처에 웬 고양이 한 마리와 마주치기도 했다.
옛날에 인왕산 정상 부근과 북한산 정상에서도 고양이를 봤던 기억이 있다. 야생일 텐데 어디서 어떻게 먹고 사는지 모르겠다.

바람이 너무 세게 불고 시끄러워서 결국은 숙소를 정상 아래의 숲 속 공터로 옮겼다. 여기가 훨씬 더 조용하고 자기 편했다.
달빛이 밝았던 덕분에 주변도 한 치 앞이 안 보일 정도로 암흑천지는 아니었다.

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

그리고.. 눈을 감았다 뜨니 이튿날 아침이 되었다. 처음에 텐트를 쳤던 곳의 낮과 밤 풍경은 이러했다.

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

탁 트인 정상 주변 풍경은 몹시 멋졌다. 근처의 불암산도 수락산보다 약간 더 낮고 작은 축소판일 뿐, 내부 제원(?)은 수락산의 판박이인 것 같다.

사용자 삽입 이미지

어제 깜깜할 때 지나갔던 길이 낮에는 이런 모습이었다.

사용자 삽입 이미지

하산하고 차가 세워진 공터로 돌아오니, 이제야 여기에 차를 몰고 와서 주차 자리를 찾는 등산객들 일행을 여럿 볼 수 있었다.
본인은 여기 올 때는 용마 터널과 구리-포천 고속도로(29) 같은 유료 도로를 적극 활용해서 갔지만, 귀가할 때는 그냥 순화궁로, 덕릉로, 동부 간선 도로 등의 기존 종축 도로만 타고 갔다. 글쎄, 서울 동쪽의 구리와 남양주 쪽으로는 유료 도로와 관련 진출입로들이 유난히 많이 눈에 띄는 것 같다.

  • 산을 관통하는 유료 터널: 용마(아차산), 별내(불암산)
  • 서울-양양 고속도로(60): 남양주*, 덕소삼패
  • 외곽순환 고속도로(100): 구리남양주, 불암산, 토평
  • 구리(세종)-포천 고속도로(29): 갈매동구릉*, 남별내
  • 수석-호평 도시고속화도로: 이패

서울의 남쪽이야 서해안(서서울), 경부(서울), 중부(동서울)라는 3대 '종축' 간선 고속도로가 시작되는 요금소가 있으며, 좀 더 생각하면 관악산 아래를 지나는 유료 도로인 남부순환로, 그리고 유료 터널인 우면산 터널 정도가 떠오른다.

그런데 서울의 동쪽에는 서울-춘천-양양이라는 '횡축' 간선 고속도로가 시작된다. 남양주는 마치 경부의 서울, 서해안의 서서울처럼 폐쇄식과 개방식을 전환하는 톨게이트이다. 그리고 덕소삼패는 남양주보다 전인 개방식 구간에 있지만 경부의 판교 톨게이트처럼 고정된 요금을 징수하는 톨게이트이다.

그리고 서울의 북동쪽으로는 구리(세종)-포천이라는 '종축' 간선 고속도로가 시작된다. 공식 명칭은 세종이지만 과연 그 길고 먼 구간이 모두 개통하는 때는 과연 언제가 될지 모르겠다. 얘는 갈매동구릉 톨게이트가 폐쇄식과 개방식이 전환되는 곳이며, 여기 근처에서는 북중랑 톨게이트를 통해 고속도로를 드나들 수 있다.
폐쇄식 요금소와 개방식 요금소가 뒤섞여 있으니 구조가 더욱 복잡하게 느껴진다. 폐쇄식과 개방식 요금제는 열차로 치면 지정석과 자유석의 관계와도 비슷해 보인다.

서울 북쪽 외곽의 노고산, 사패산, 수락산, 불암산은 모두 터널이 뚫려 있다. 그 중 수락산 아래를 지나는 덕릉 터널만이 무료이고, 나머지는 다들 유료 터널이거나 유료 도로인 외곽순환 고속도로 구간에 포함돼 있다.
이에 덧붙여 수석-호평 고속화도로는 고속도로도, 터널도 아닌 마치 제3 경인 고속화도로와 비슷한 급의 유료 도로이다.

Posted by 사무엘

2019/11/04 08:32 2019/11/04 08:32
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1680

1. 흡연과 재떨이

오늘날은 옛날에는 상상도 할 수 없었을 정도로 금연이 당연한 사회 풍조로 정착했다.
군대에서 보급 담배는 진작에 없어졌으며, 담뱃갑에는 끔찍한 사진과 함께 경고문이 반드시 일정 크기 이상으로 부착되는 게 의무가 됐다.

버스 정류장을 포함한 모든 공공장소와 대중교통 내부에서는 담배를 일체 피울 수 없다. TV 드라마 같은 데서 담배를 뻑뻑 피우는 모습을 내보내는 것조차도 금지됐으며, 부득이하게 흡연 동작이 포함된 영화 장면 따위를 인용할 때는 담배가 무슨 흉기이기라도 한 것처럼 모자이크 처리를 하게 됐다.

하지만 그렇게까지 강하게 규제를 걸고 금기시해도.. "흡연은 폐암을 유발합니다", "당신이 지불한 담뱃값은 국회의원들 월급 주는 데 쓰입니다" 등의 온갖 기발한 문구로 경고를 해도..
그래도 담배를 피울 사람은 여전히 피운다.. =_=;; 수 년 전에 담뱃값이 2500원에서 4500원으로 폭등했어도 담배 판매량과 매출은 이내 예전 수준을 회복했다고 하니 말이다.

옛날에는 그런 풍조를 반영하여 승용차에도 앞쪽 대시보드의 아래엔 시거라이터 잭(...)과 재떨이가 있었으며, 좀 고급 승용차는 뒷좌석 도어의 안쪽에도 재떨이가 비치되어 있었다.
그에 반해 요즘 차는 뒷좌석 재떨이까지는 없다. 전국 지도(< 내비게이션)라든가 돌돌이 닭다리 창문 개폐 크랭크(< 파워윈도우)만큼이나 이제는 찾아볼 수 없어진 물건이다.

그래도 내 차를 살펴보니 시거라이터는 있다. 지금까지 동전통으로 사용했던 자그마한 통이 알고 보니 재떨이였구나..;; 물론 지금까지 이 통에는 담뱃재가 담긴 적은 단 한 번도 없었다.
그 옆에 하이패스 단말기를 연결해 두는 소켓은.. 자동차에만 존재하는 전자기기용 플러그이기라도 한가 모르겠다.

자, 비행기와 관계 없는 서론이 좀 길어졌는데..
이런 강력한 금연 트렌드에도 불구하고 여객기의 화장실 안에는 재떨이 비스무리한 물건이 2019년 현재까지도 의외로 여전히 남아 있다.
기내엔 흡연은커녕 액체 연료 라이터조차도 반입을 못 할 텐데, 그리고 기내 금연은 여객기의 내구연한보다 더 오래 전부터 시행되었을 텐데?
심지어 금연 표지판 바로 옆이나 밑에 재떨이가 버젓이 비치되어 있기도 하다. 왜 그런 걸까? 그 이유는...

사용자 삽입 이미지

아무리 화장실에다 연기 감지기를 설치하고 제발 화장실에서 담배 피우지 말라고 계도를 해도 말 안 듣고 담배를 몰래 피우는 사람이 수많은 탑승객들 중에 꼭 한둘씩 있기 때문이다. 장거리 노선이면 그 긴 시간 동안 담배를 전혀 피울 수 없으니 괴로울 법도 하다. 비행기에 고속버스처럼 휴게소가 있는 것도 아니고..

그래서 기어이 피울 거면 일말의 양심을 발휘해서 담뱃재와 꽁초를 아무 데나 버리지 말고 여기에다가 버리기라도 하라는 자포자기 심정으로 재떨이를 남겨 놓은 거라고 한다..;; 버릴 곳이 없어서 담배 꽁초가 휴지통을 포함한 아무 데나 떨어지면 최악의 경우 다른 쓰레기에 불이 붙어서 기내에 화재가 발생할 수 있기 때문이다.

이 재떨이는 기내에서 흡연이 가능하던 시절의 잔재 레거시가 아니며, 새로 만들어진 비행기도 반드시 갖춰야 하는 법적 의무 사항이다. 마치 자동차에 법적으로 방향지시등과 헤드라이트, 안전벨트가 반드시 있어야 하는 것만큼이나 말이다. 흡연자들을 배려해서가 아니라 화재 예방을 위해서 갖다 놓은 거라고 생각하면 정확하다.
육해공 대중교통 중에서 그나마 흡연이 제일 자유로운 곳은 역시나 선박인 것 같다. 갑판이 있으니까..;;.

여담이지만, 극장에서 영화 본편이 끝나고 엔딩 크레딧이 올라올 때 불이 켜지는 것도 '금연 비행기 내부의 재떨이'와 비슷한 맥락에서 존재하는 관행이다. 영화 제작자들이 엔딩 크레딧을 아무 이유 없이 만드는 게 아니고, 도의적으로 원칙적으로는 모든 관객들이 이것까지 다 진지하게 봐야 영화가 완전히 끝나는 게 맞다.

하지만 현실에서는 불을 켜건 말건 엔딩 크레딧이 나오기 시작하면 자리를 뜨고 나가는 관객이 적지 않으며, 이때 조명이 없으면 깜깜한 계단에서 넘어지는 사고가 발생하기 쉽다. 그런데 이러다 사람이 다치면 극장에 대한 고소로 이어지기 때문에(...), 시빗거리를 없애기 위해 "조기 조명 ON"이라는 권장되지 않는 관행이 극장에 존재하게 되었다.

2. 비행기 이모지

유니코드에는 U+1F6EC Airplane Arriving이라는 이모지가 있는데..
본인은 이걸 보니 피식 웃음이 나왔다.

사용자 삽입 이미지

현실의 비행기는 다들 아시다시피 착륙할 때도 이륙할 때와 마찬가지로 기수가 위를 향하고 있다. 뒷쪽이 앞쪽보다 먼저 착지한다.
이와 달리 저 그림처럼 기수가 아래를 향한 채로 하강하는 건 아무리 봐도 착륙이 아니라 추락하는 모습이다..;;;

일출 노을 풍경과 일몰 노을 풍경을 일반적으로 서로 구분할 수 없듯이.. (그림자 방향이나 지형 같은 단서가 없다면)
정지 사진만으로 비행기의 이륙과 착륙을 구분하는 건 내가 알기로 불가능하다. 굳이 따지자면 이륙이 착륙보다 미세하게나마 더 고각이긴 할 것이다.

그래서인지 이모지에서는 그냥 편의상 기수의 방향과 랜딩기어의 수납 여부로 이륙과 착륙을 구분시켜 놓은 것 같다.

3. 우주 발사체와의 차이

고정익 비행기와 우주 발사체(인공위성? 로켓?)는 모두 지표면에서 끊임없이 수평 이동을 해야 고도가 유지되며, 속도가 너무 느려지면 추락한다는 공통점이 있다. 그러나 이 둘은 당연한 말이지만 요구되는 속도의 수준과 추락 조건이 서로 완전히 다르다. 급이 다르고 차원이 다르다.
마치 육상 교통수단들이 고속으로 갈수록 더 가속하기가 어려워지는 건 공기 저항 때문일 뿐이지, 무슨 광속에 가까워지면서 상대성 이론에 따라 질량이 증가하기 때문은 전혀 아닌 것과 같은 이치이다.

비행기가 빠르게 이동하는 이유는 날개의 상하로 공기의 압력 차이를 만들고 이로부터 양력을 얻어야 뜰 수 있기 때문이다. 자동차는 연료를 연소시키기 위해서 공기 중의 산소가 필요하지만, 비행기는 엔진을 돌리는 것뿐만 아니라 뜨는 것 자체를 위해서도 공기라는 유체가 필요하다. 이걸 유지할 만한 속도를 못 내어 비행기가 양력을 잃고 조종성까지 상실하는 것을 실속(stall)에 빠졌다고 말한다.

한여름에 날씨가 너무 더워지면 공기가 부피가 커지고 밀도가 낮아지는데, 이러면 비행기도 뜨기가 어려워져서 활주거리가 길어진다. 그래서 작은 공항에서는 폭설도 아니고 폭염 때문에 큰 비행기가 뜨지 못해서 결항될 수 있다. (이륙 활주 공간 부족)
또한, 이륙 후에도 공중에서 공기가 갑자기 희박해지는 곳을 지나면 비행기가 고도를 유지하지 못하고 아래로 주저앉게 된다. 이건 폭염으로 인한 레일의 팽창 때문에 고속철이 서행 운행하는 것만큼이나 비행의 악재로 작용한다.

이런 비행기와 달리 지구 궤도를 도는 우주 발사체는 공기와 전혀 무관하게 움직인다. 실속이고 상승 기류고 난류고 나발이고 없다. 애초에 공기를 받는 날개가 있지도 않으며, 로켓은 양력이 아니라 전적으로 추력만으로 날아간다. 비행기의 제트 엔진과 달리, 로켓은 주변의 공기를 빨아들이지 않으며 오히려 연료와 함께 산화제를 자체적으로 내장하고 있다.

그리고 로켓은 그야말로 공기와의 마찰을 걱정해야 할 정도로, 초음속 여객기 콩코드가 그나마 돌파해 봤다는 지구 적도 표면의 자전 속도보다도 10배 이상 빠르게 이동한다.
지표면으로 수직으로 떨어지는 속도보다 수평 이동하는 속도가 커야 지구를 향해 "한없이 추락"하는 게 가능하기 때문이다. 이게 바로 우주 발사체가 추락하지 않고, 그리고 연료도 거의 쓰지 않으면서 비행(?)하는 비결이다.

달로 가는 로켓이라고 해서 무슨 위를 바라보고 달을 향해서 한없이 쭉쭉 올라가는 게 아니다. 우주로 나가는 모든 로켓들은 단별로 가동 시간이 보통 겨우 몇 분, 길어야 10분을 채 넘기지 않는다. 그 짧은 시간 동안 그 많은 연료를 몽땅 소모하면서 수직으로는 겨우 수십~수백 km 위로만 올라가며, 발사체가 지상의 시야에서 사라질 즈음에는 기수를 기울여서 수평으로 필사적으로 가속한다. 지구 궤도를 도는 상태를 만드는 것이 로켓의 목적인 것이다.

쉽게 말해 비행기는 한국에서 미국까지 날아가는 10몇 시간 내내 엔진이 켜져 있다. 그러나 로켓 내지 우주 발사체는 그렇지 않다는 것이 핵심이다. 달로 갈 때는 지구를 도는 타원 궤도의 이심률을 키우고 달 궤도로 끌려가기 위해서 또 가속을 하지만, 그 가속 시간 역시 단 몇 분에 지나지 않는다. 나머지 며칠 동안 날아가는 건 전부 관성 무동력으로 행해진다.
비행기와 로켓이 서로 얼마나 다른 존재인지를 알 수 있다.

Posted by 사무엘

2019/11/01 19:34 2019/11/01 19:34
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1679


블로그 이미지

철도를 명절 때에나 떠오르는 4대 교통수단 중 하나로만 아는 것은, 예수님을 사대성인· 성인군자 중 하나로만 아는 것과 같다.

- 사무엘

Archives

Authors

  1. 사무엘

Calendar

«   2019/11   »
          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:
1280864
Today:
51
Yesterday:
501