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

1. 새 노트북과 새 폰

본인은 2010년대 초중반까지 노트북은 맥북을, 폰은 삼성 안드로이드 폰을 사용해 왔다. 그랬는데 노트북은 이제 성능이 너무 뒤쳐졌으며 배터리 용량도 너무 감소했다.

그리고 폰도 하필 약정이 끝날 무렵부터 배터리가 급격히 빨리 줄어들기 시작했으며, 그로부터 몇 달 되지 않아 걸핏하면 툭툭 꺼지기 시작했다. 폰이 꺼지지 않도록 잘 간수하는(?) 게 마치 옛날에 집안 불씨가 안 꺼지게 간수하는 것 같은 일이 됐다. 서비스센터를 방문해 보니 배터리나 전원 단자 문제가 아니라 순전히 메인보드의 문제라는 말을 들었다.

이런 이유로 인해 본인은 2019년 초의 비슷한 시기에 전화기와 노트북을 모두 교체하게 됐다. 폰은 고맙게도 남아도는 준중고 기기를 그냥 주신 분이 직장에 계셔서 본인은 신규 개통도, 번호 이동도 아닌 기기 변경이란 걸 했다. 그리고 졸지에 생각지도 않았던 아이폰 유저의 대열에 합류했다.
그 반면, 노트북은 맥OS를 굳이 더 쓸 필요를 느끼지 않아서 오랜만에 국산 일반 Windows 기계로 복귀했다. 예전과 반대로 전화기를 애플 것으로 쓰게 된 셈이다.

내가 원하는 노트북 컴터는..
굳이 그렇게 무리하게 얇거나 가볍지는 않아도 된다. 화면 해상도도 그냥 Full HD 1920*1080 급이면 넉넉하고 충분하다. 굳이 2000 안 넘어가도 된다.

또한, 요즘은 무선 인터넷 인프라가 워낙 널리 깔렸으니 광학 드라이브나 유선 랜 단자쯤은 본체에 안 달려도 크게 불편하지는 않은 지경이 된 거 같다.

다만, 램은 8기가가 뭐야 8기가.. 장난하나? 안 그래도 추후 확장하기도 어려운 주제에..
뭐, 저걸로도 Windows 10 깔고 작업 자체는 가능하다. 하지만 개발툴, 가상 머신, 5개 이상 탭을 열어 놓은 크롬 브라우저, 문서 작업을 위한 오피스 등등을 한꺼번에 너끈히 구동하면서 5년 정도 버티려면 요즘은 정말 못 해도 12기가 이상은 달아야 된다.

(메모리가 부족해서 프로그램을 그렇게 많이 한꺼번에 돌리지 못하면? 고성능 CPU라든가, 요즘 놋붉들이 그렇게도 강조하는 큼직한 화면이 별 의미가 없다. 그 넓은 화면에다가 여러 프로그램들을 도배하려 해도 메모리에서 결국 병목이 걸린다!)

Windows 7 이래로 10까지 Windows의 최소/권장 사양의 메모리 용량이 계속 똑같이 1GB/2GB(64비트 기준)인 건.. 개인적으로 좀 사기극이고 허위 과장 광고라고 생각한다. 전혀 현실적이지 않다.

그리고.. 본인은 아재 사고방식이어서 그런지, SSD를 영 미덥지 않게 생각해 왔다. 빠른 건 좋지만 용량이 너무 부족하기 때문이다. 하지만 세월이 흐르니 SSD의 가격도 놀라울 정도로 많이 떨어지고 512GB급 물건도 나오다니 기술의 발달에 경이로움을 느낀다.
기계식과 전자식의 차이는 확연히 드러난다. SSD가 아니면 이 정도 성능과 용량을 자랑하는 노트북 컴이 이렇게 조용하고 가볍고 빠르게 돌아갈 수가 없을 것이다.

2. 새 컴파일러

컴퓨터를 새로 세팅하면서 Visual C++도 드디어 최신 버전을 깔아 봤다. 전에도 얘기한 적이 있지만 IDE, 플랫폼 SDK, 그리고 컴파일러 툴킷이 서로 완전히 분리되고 제각기 따로 노는 게 가능해진 것은 매우 바람직한 변화이다. 그리고 IntelliSense DB를 저장하는 방식이 예전의 MS SQL Server Compact Edition (*.sdf)에서 SQLite (*.vc.db)로 바뀌어 있더라.

날개셋 한글 입력기의 소스를 빌드해 보니 다음 사항들만 '경고'로 걸리고 나머지는 문제 없이 컴파일 된다.

(1) GetVersionEx 함수를 사용하는 부분이 deprecated로 처리됐다. Windows 8.1 내지 10부터는 운영체제의 세부 버전을 체크하는 방식이 이 함수를 사용하지 않는 다른 쪽으로 바뀌었기 때문이다. 다만, 옛 함수가 strcpy 내지 gets처럼 보안 위험 때문에 deprecated 된 건 아니다.

(2) C++에서는 포인터를 정수형으로 typecast 하기 위해서 잘 알다시피 reinterpret_cast 연산자를 사용하는데, 포인터형보다 작은 크기인 char, short, UINT(64비트 환경 한정)로 바꾼다면 언제나 경고가 뜨게 됐다. 이건 static_cast로 형변환을 한 단계 더 거쳐야 된다.

(3) delay-load 콜백 함수의 포인터를 보관하는 전역변수가 보안 강화를 위해 const 형태로 바뀌었다. 이 변수는 이제 실행 도중에 값이 변경될 수 없으며, 우리 코드에서 이 변수를 정의하면서 단 한 번 주소를 지정해 줄 수만 있다.
const PfnDliHook __pfnDliNotifyHook2 = _DelayDLLNotifyHook; 이런 식으로 말이다.
이 변수는 실행 파일의 read-only 영역에 보관되기 때문에 const_cast 같은 연산자를 이용해서 값을 강제로 변경하려 하면.. 그냥 crash가 발생하게 된다.

1은 그냥 어쩔 수 없고, 2는 경고가 안 뜨도록 코드를 고치고, 3은 조치를 취했다.

3. 날개셋 한글 입력기의 개선 사항

이렇게 개인용 컴퓨터가 바뀌고 개발 환경이 바뀌자, 날개셋 한글 입력기에 고칠 점이 몇 가지 눈에 띄기 시작했다. 요런 것들을 반영하면 또 0.01 정도 버전 숫자를 올릴 수 있을 것 같다.

(1) 이제 Windows 10이 세상을 평정했으니.. About 대화상자에 표시되는 운영체제 버전 정보에서도 10일 때는 년/월 형태의 세부 버전 번호(1709, 1809 같은)가 나타나게 했다. 아래 그림의 위/아래가 before과 after이다.

사용자 삽입 이미지

(2) 입력 패드는 지금 떠 있는 도구들을 모두 닫으면 프로그램을 곧장 종료하게 하는 /S 옵션이란 게 있는데.. 이게 프로그램 내부 구조를 개편하는 과정에서 언제부턴가 제대로 동작하지 않게 된 것을 뒤늦게 발견했다. 다음 버전에서는 고쳐질 예정이다.

(3) 글꼴을 본뜰 때 CJK 확장 한자 B뿐만 아니라 그 뒤의 C, D도 추가로 본뜨게 했다. 지난번 emoji에 이어서 글꼴 본뜨기 스크립트가 또 바뀌었다.

이쪽 SIP(보충 한자 평면) 한자들은 글자 수가 너무 많은데 일상생활에서 별로 쓰이지 않는 것들이고, BMP(기본 다국어 평면)보다 지원 시기가 훨씬 더 늦은 점으로 인해.. 지원하는 글꼴들도 통상적인 BMP 영역 한자용 글꼴과는 달리 비트맵 글립이 들어있지 않은 편이다.
그래서 16픽셀 글꼴은 썩 보기 좋지 않으며, 24픽셀은 돼야 볼 만하다.

(4) Vista 이래로 줄곧 그랬는지 아니면 8/10에서 보안이 강화돼서 그런 건지는 모르겠지만.. UAC를 켜 놓은 상태에서 ProgramData 디렉터리에는 새로운 파일을 생성할 수는 있지만 프로그램이 설치해 놓은 파일을 사용자가 임의로 고치는 건 안 되는가 보다.

본인은 거기에 있는 파일은 사용자가 마음대로 수정할 수 있다고 가정하고 글꼴 본뜨기 스크립트 같은 일부 파일은 사용자가 곧장 열어서 사용할 수 있게 했었다. 그런데 그렇게 할 수 없다면... 데이터 파일을 운용하는 방식을 바꾸든가 해야 할 것 같다. 비슷한 문제를 날개셋 타자연습의 연습글 목록 xml에서 이미 한번 겪은 바 있다.

(5) 지금까지 사용자에게서 옛한글 관련 동작 때문에 예기치 않은 오동작 의심 증세 문의를 많이 받았다. 옛한글은 일상생활에서는 안 쓰이다시피하니.. 다음 버전에서는 프로그램을 기본 설치했을 때 '세벌식 옛한글'을 아예 빼 버릴까도 고민 중이다.
장기적으로는 한글 표현 옵션 탭에서도 한양 PUA 내지 유니코드 1.1 레거시는 더 꽁꽁 숨겨 놓고 접근하기 어렵게 할 계획이다. 이제 쓰일 일이 없어졌으니 말이다.

(6) 그리고 좀 더 유의미한 변화로.. 휠 내지 노트북 터치패드를 아주 미세하게 굴렸을 때의 스크롤 동작을 개선했다. 이에 대해서는 다음 항목에서 더 자세히 설명하도록 하겠다.

4. 세밀하게 움직이는 휠

마우스 휠이란 게 PC에 도입된 지 20년이 넘었다. 휠이 도는 단위는 기본적으로 칸 단위로 구획이 나뉘어 있으며, 한 칸 돌 때마다 WHEEL_DELTA (120)이라는 값이 전달된다. 120이라는 값은 약수가 많아서(2*2*2*3*5) 다양하게 쪼개기 편한 수라는 이유로 선택된 것이다.

마소에서는 지금은 마우스 휠이 칸이라는 덩어리 단위로 돌아가지만, 미래에 연속된 단위로 아주 부드럽고 세밀하게 돌아가는 휠도 등장할 수 있을 거라고 예상했다. 그래서 단순히 움직인 칸 수가 아니라 거기에 delta를 곱한 값을 되돌리게 여유를 두고 메시지를 설계했다.

저게 1990년대 중후반의 일이다. 하지만 본인은 부드럽게 세밀하게 돌아가는 마우스 휠은 아직까지 구경하지 못했다. 그 대신 그 동작은 노트북의 터치패드/트랙패드가 물려받았다. 처음에는 손가락의 궤적을 따라 마우스 포인터를 옮기는 기능밖에 없었지만 나중에는 패드의 오른쪽 끝을 수직으로 문지른다거나, 아무 곳이나 두 손가락으로 수직으로 문지르는 것을 스크롤로 따로 인식하게 된 것이다.

그 스크롤 요청을 하는 방식이 예전에는 그 윈도우에 대해서 SetScrollInfo/Pos 함수를 호출하고 WM_H/VSCROLL 메시지를 생성하는 것이었다. 화면 캡처 프로그램이 제공하는 스크롤 캡처 기능이 어떻게 구현됐겠는지를 생각하면 된다.

그랬는데 요즘은 WM_MOUSEWHEEL을 보내는 게 대세이다. 터치패드의 종류에 따라 동작이 케바케이긴 하지만, 이때 옛날 동작과의 호환을 유지하기 위해 WHEEL_DELTA의 배수 단위로 스크롤 요청을 하는 경우도 있고, 아니면 문지른 속도에 따라 그 이하의 값을 보내는 경우도 있다. 2010년대부터는.. 스크롤 하다가 손을 급격하게 확 떼면 스크롤도 마치 관성을 받은 듯이 한동안 지속되다가 멈추는 동작까지도 구현돼 있다.

스크롤 요청을 받은 윈도우가 그림이나 웹페이지처럼 원래 픽셀 수준의 부드러운 스크롤을 지원하고 있다면 WHEEL_DELTA로부터 산출한 비율만치 자연스럽게 스크롤을 하면 된다.
하지만 픽셀이 아닌 글자 줄 수 단위로 이산적이고 각진(?) 스크롤을 지원하는 윈도우는 사정이 다르다. 너무 작은 delta 값은 나눗셈 과정에서 아예 0으로 버려지고 없어져서 스크롤이 전혀 처리되지 않을 수 있다. 내부적으로 델타 값을 보관하고 있다가 그 합이 양수나 음수로 WHEEL_DELTA의 배수가 됐을 때 줄을 옮기도록 다소 번거로운 조치를 취해야 한다.

그런데 동일한 각속도로 굴렸어도 120 단위만 지원하는 휠을 굴렸을 때와, 그 이상 정밀한 휠을 굴렸을 때 들어오는 delta값의 규모가 서로 같지 않다. 휠의 종류를 얻을 수 있는 API는 내가 알기로 없다. 그렇기 때문에 그 종류는 WM_MOUSEWHEEL 메시지 때 날아오는 값들을 보며 얼추 짐작을 해야 한다. (120보다 작은 값이 들어오질 않는가?)

Windows의 리스트 박스에서 마우스 휠을 굴려 보면, 처음에는 목록이 한 줄 정도는 픽셀 단위로 답답하게 굼뜨면서 스크롤 되다가 그 뒤 나중에는 줄 단위로 비교적 빠르게 스크롤 되는 걸 볼 수 있다. 이게.. 휠의 종류와 동작 방식을 감지하는, 한번 "간보는" 동작이 아닌가 개인적으로 생각한다.

날개셋 한글 입력기에서 이런 정밀한 휠을 지원하도록 조치가 취해진 곳은 날개셋의 고유한 에디트 컨트롤, 문자표 리스트, 그리고 편집기의 화면 인쇄(300% 이상의 배율로 확대했을 때)창이다. 사실, 내 것이 아닌 어떤 노트북 PC에서 날개셋 편집기에서 휠 스크롤이 잘 안 된다는 걸 오래 전부터 어렴풋이 경험하긴 했는데 그 당시에는 그다지 문제 의식을 못 느끼고 넘어갔던 것 같다.

처음에는 휠을 굴렸을 때 키보드 포커스를 받고 있는 창이 스크롤 됐지만 Windows 8인가 10부터는 마우스 포인터가 놓여 있는 창이 스크롤 된다. 그리고 저렇게 정밀한 휠이 도입되고, 세로 스크롤뿐만 아니라 가로 휠 스크롤 메시지도 도입되니.. 휠도 마치 고해상도 dpi만큼이나 지금까지 은근히 많이 변했다.

Posted by 사무엘

2019/02/02 08:32 2019/02/02 08:32
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1582

1. 사적 제재와 무장

공동주택에서의 3대 민폐는 담배, 애완동물, 층· 벽간 소음이지 싶다. 그야말로 후각· 촉각· 청각이 골고루 다 분포해 있구나! 또한, 상황이 좀 더 열악한 곳에서는 주차 시비까지 추가해서 4대가 될 수도 있겠다. 이것 때문에 살인 사건도 이미 몇 건 난 적이 있다.

주거용 건물은 계단 통로가 담배 냄새가 안 나는 곳을 별로 못 봤고, 요즘은 예전보다 개도 주변에서 부쩍 눈에 띈다. 먹고 살기 빠듯하고 힘들다면서 애완동물 키울 여력은 있는가 보다. 도시는 시골과 달리 동물에 친화적인 곳이 아니긴 하다.

다음으로 소음 문제의 경우, 찾아가서 항의하는 건 씨알도 안 통하니 당하는 쪽에서도 벽이나 천장을 같이 쿵쿵 치는 걸로 응사하는 편인데.. 인터넷을 뒤져 보니 단돈 몇 천원 짜리 고무 망치가 그렇게도 즉효약이라고 칭찬이 자자하다. (☞ 대표적인 사례: 슈랄라 월드)

잘 쳐 주면 건물 자체는 손상시키지 않으면서 쿵쿵~ 웅웅~ 깊은 진동을 전해서 가해자를 놀라게 하고 숙면을 방해할 수 있다고 한다. 본인은 딱히 소음 피해를 겪은 적이 없고 저런 물건을 써 보지도 않아서 잘 모르겠다.

뭐랄까, 지금 같은 법치 의식이나 국가 정체성, 인권 의식이 형성되기 전에, 군인과 민간인의 구분이 엄격하게 생기기 전엔... 서양에서는 민간인의 무장과 사적 제재라고 해야 하나, 그런 관념이 지금보다 훨씬 더 관대했다.

그러니 '사략선'이라는.. 한중일 문화에서는 이해가 잘 안 되는 국가 공인 해적이 있었다. 전시에 민간인이 적국 선박을 터는 것을 합법으로 허용하는 면허 말이다.
그리고 '결투'도 있었다. 결투에서 상대방을 죽이는 것은 마치 전쟁터에서 적군을 죽이는 것만큼이나 정당한 것으로 인정되었다..;;

누구든 월급 주는 주인님을 위해 깃발 바꿔 달고 싸우는 '용병'은 요즘으로 치면 PMC와 비슷한 개념이지만, 국군 상비군이 있는 일반적인 나라에서는 흔하지 않다. 아 하긴, 프랑스에는 아직 외인부대가 있던가?

또한 민간인이 스스로 무장하고 자기 마을을 지키는 '자경단'은.. 용어를 저렇게 쓰면 어감이 굉장히 부정적이어 보이지만, 따지고 보면 조선과 구한말의 '의병'하고 별 차이 없는 개념이다. 그리고 이건 아주 성경적인 개념이기도 하다.

성경에서 에스더기도 유대인 학살 명령이 공식적으로 철회되는 게 아니라, "너희들도 자경단 꾸려서 침략자에 맞서 자기 자신을 스스로 지켜라. 아무도 안 말린다"가 추가되는 걸로 끝나니 말이다.
좀 극단적인 예이긴 하지만, 1992년의 미국 LA 폭동 때도 평소에 총을 구입해 놓고 대비를 했던 한인들은 자경단을 꾸린 덕분에 자기 가게를 안 털리고 지켜내기도 했다.

사용자 삽입 이미지

한국 남성들의 이런 저력(...)은 5· 18 광주 북한군 개입설을 부정하는 근거로도 활용된다.
서슬 퍼런 반공 군사 정권 하에서 교련에다 군생활도 무려 3년씩이나 의무적으로 했던 사람들이 진지 구축이나 총질쯤은 껌이며, 탱크 조종 보직이었던 사람도 그 많은 사람들 중에 없을 리가 없다. 그 정도 군사 행동은 굳이 북괴 공작원이 아니어도 얼마든지 가능하다. 수많은 청년들의 자유를 제약하고 희생하며 돌아가고 있는 우리나라 징병제의 위력을 만만하게 여기지 마시라.

무기고 위치 정도는 그렇게 비밀도 아니며, 평소에 잡범 범죄자에 의해 종종 털리기도 했었다. 그럭저럭 민주화가 된 1990년대의 LA에서도 저랬는데 하물며 전투력이 그때보다 더했을 1980년대의 광주를 동일한 잣대로 생각해 보면 본인으로서는 꽤 설득력 있게 들린다.

소말리아 같은 막장인 나라 말고, 엄연한 잘사는 선진국 중에서 민간인이 버젓이 총을 소지하는 나라는 미국 말고 더 있는지 궁금하다. 물론 화력이 너무 강한 군인 소총이나, 은닉하기 쉬운 권총은 여전히 규제가 걸려 있지만, 샷건 정도는 시골로 갈수록 뭔가 생활 필수품인 것 같다.

2. 경찰 비슷한 것들

경찰은 군대와 마찬가지로 국가와 사회를 유지시키는 역할을 하며, 정부에서 세금을 써서 유지시킨다. 일반 시민의 입장에서 공권력의 존재감을 가장 직접적으로 드러내 보이는 기관이 바로 경찰이다.

그리고 우리나라에서는 군· 경의 역할을 민간이 대체하는 것을 매우 경계하며 금기시한다. 그래서 사적 제재를 전면 금지하고 정당방위도 매우 보수적이고 제한적으로만 인정한다. 나쁜놈이 있으면 어지간해서는 정말 제일 소극적인 제압만 한 뒤 바로 경찰에 넘기기만 해야 한다. 놈이 흉기를 들고 설치고 있으면 흉기를 재주껏 빼앗아서 버리기만 해야지, 그걸로 내가 반격 역관광을 하지는 말아야 한다.;;;

그러니 자경단이나 민병대· 의병 같은 건 말할 것도 없고, 사설 탐정도 국내에서는 전면금지이다.
이런 맥락에서 볼 때 민간인의 경찰 위장· 사칭은 죄질이 매우 나쁜 범죄이다. 일반인은 평시에 전투복뿐만 아니라 경찰복을 입는 것도 법으로 금지되어 있으며 수갑 같은 경찰 전용 장비 역시 소지하거나 휴대할 수 없다.

하지만 현실에서는 경찰이 일상적으로 하는 일을 보조 내지 대행하는 민간인 조직이 아주 없는 게 아니다.
자율방범대(치안)라든가 모범운전자(교통 정리)가 그 예이다. 이런 사람들은 경찰과 어떤 관계를 맺고 보수를 어느 정도 받는지, 직무와 관련하여 어느 정도까지 권한이 있는지 개인적으로 궁금하다. 이 사람들이 진짜 경찰처럼 누구를 체포한다거나 교통법규 위반 범칙금 딱지를 발급하지는 못한다.

은행이나 병원 같은 곳에 있는 청원경찰은 정식 경찰까지는 아니지만 그렇다고 완전 사설 경비원도 아닌 중간 위치 같다. 철도 경찰이나 해경은 일반적으로 아는 그런 경찰과는 다른 경찰일 테고..
그나저나 옛날에 미국에서 큰 모자 쓰고 말 타고 돌아다니던 '보안관'은 경찰하고는 어떤 관계인지 문득 궁금해진다.

3. 사립 사관학교

본인은 먼 옛날에 사탄의 인형 시리즈를 1편부터 3편까지 영화관..은 아니고 TV와 비디오로 봤다. 1편은 진짜 공포 장르였지만 2편과 3편은 호러 코미디에 가깝다. 주인공 앤디가 처키의 정체를 완전히 알게 되면서 동심이 완전히 파괴된 상태가 됐고, 또 나이를 먹고 성장도 했기 때문에 1편과 같은 의미의 약자의 위치에 있지는 않기 때문이다.

특히 3편의 경우, 애가 군사 학교에 입교하게 된다. 이름하여 Kent Military School. 그런데 나이가 들고 나니 문득 의문이 들었다. 이 군사 학교라는 건 도대체 정체가 뭔가? 국· 공립인가, 아니면 설마 사립인가? 한국에는 이런 교육기관은 없는 것 같은데..

병을 양성하는 곳인가, 간부를 양성하는 곳인가? 그냥 신병 훈련소라고 보기에는 내부 시설이 꽤 좋고.. 하지만 학생들의 연령대가 굉장히 다양하고 무슨 웨스트포인트 급의 정식 사관학교도 아닌 것 같다. 앤디처럼 불우하게 자란 애가 그런 정예 장교 양성 시설에 호락호락 들어갈 수 있을 것 같지는 않다. 죽은 아버지가 무슨 명예 훈장의 수훈자이기라도 하지 않다면 말이다.
그리고 계급의 번역이 제대로 된 건지는 모르겠지만, 생도들 군기를 잡는 훈육대장이야 해야 하나.. 그런 사람이 무려 대령인 건 하는 일에 비해 계급이 너무 높은 것 같다.

검색을 해 보니 미국에는 이런 군사 학교가 몇 군데 있다고 한다. 나라에서 인가한 정식 사관학교와의 차이는 (1) 일단, '사립'이다. 자연히 학비는 전면 무료가 아니며, 여기를 졸업한다고 해서 자동으로 미군 간부로 임관한다거나 하지도 않는다.
그리고 여기는 (2) 애초에 대학교에 준하는 고등 교육기관이 아니라 중· 고등학교에 대응하는 중등 교육기관이다. 여기를 졸업한 애들은 소수의 군대 체질들을 제외하면 대부분 그냥 일반 대학교로 진학한다.

즉, 여기는 무슨 정식 사관학교도 아니고 해병대 캠프나 스파르타 식 명문대 학원도 아니지만.. 사관학교의 커리큘럼을 따 와서 일상생활에서 애들을 합숙시키고 군복(정복, 예복, 전투복 등..) 입히고 군대식으로 절도 있게 키우는 학교이다. 한국의 장성들이 자기 자녀는 저기로 유학 보내서 키우기도 한댄다. 중딩 고딩들한테 설마 진짜 사관학교처럼 공수 훈련까지 시키지는 않을 것 같지만.. 그래도 총 잡고 페인트탄 워 게임 정도는 한다.

사탄의 인형 3의 배경인 '켄트(Kent) 군사 학교'는 '켐퍼(Kemper) 군사 학교'라고 미국에 실제로 있었던 사립 사관학교이다. 1800년대부터 있었던 학교이다 보니 캠퍼스가 굉장히 고풍스러우며, 사탄의 인형 말고 몇몇 다른 영화들의 촬영지로도 쓰였다고 한다.

이 학교는 쟁쟁한 졸업생 동문을 배출하기도 했지만 20세기 후반부터 점점 경영난을 겪었으며(신입생의 감소로 인해), 2002년에는 폐교하고 말았다. 국영 사관학교라면 이렇게 망할 일이 없었을 것이다. 역사와 전통을 간직한 옛 캠퍼스 부지와 건물이 어떻게 활용되고 있는지는 잘 모르겠다.

4. 군대의 진급

우리나라의 현행 군대 계급 체계에서 다음과 같이 임관 내지 진급하는 건 흔치 않은 경우이다.

  • 준위로: 부사관에서 상사를 능가하는 만렙 계급은 일단 원사이다. 그런데 거기서 더 나아간 준위는 단순히 원사의 상위 레벨이 아닌 좀 특이한 계급이다. 부사관의 만렙으로서 자기 분야의 최고 전문가 스페셜리스트이면서, 한편으로 그 바닥에서 장교 같은 명령권도 있는 '준사관'을 나타내기 때문이다. 어떤 준사관 계열은 아예 군필만 한 민간인이 곧장 들어오기도 한다.
  • 임관이 아니라 특진해서 소위로: 병장이 진급해서 자연스럽게 부사관인 하사가 될 수는 있다. 그러나 병이나 부사관이 자기 계열에서 진급만 한다고 해서 장교 계급을 받지는 않는다. 우리나라 역사상 죽어서 소위 계급이 상징적으로 추서된 건 지뢰 밟고 죽은 군견이 유일하다.
  • 대장에서 원수로: 원수는 포스타 중에서도 그야말로 나라를 구한 불멸의 성웅이나 받을 법한.. 상징적인 종신 계급이다. 통상적인 진급이나 전사자 특진만으로는 될 수 없다.

우리나라에 과학 분야 노벨 상 수상자가 없는 것만큼이나 원수 계급을 받은 군인도 현재까지 없다. 그나마 제일 근접해 있는 백 선엽 대장마저도 못 받은 계급을 감당할 만한 용자는 국내에 존재하지 않는다.

누가 전쟁터에서 혼자서 적군을 수십 명 때려잡고 아군을 수십 명 구했다면 그건 병이나 부사관이 무공 훈장과 포상금을 잔뜩 받을 일이다. 계급 자체는 그런 병/부사관 수준에서 1~2단계 정도 특진하는 것으로 끝난다. 그에 반해 포스타가 원수가 되려면..?? 가히 전군과 국가에 영향을 끼칠 만한 넘사벽급의 '통솔' 업적이 있어야 한다.

  • 사령관의 천재적인 지휘 하에 전군이 힘을 합쳐서 돼지 목을 따는 데 성공하고 북진 멸공 통일을 이룬다거나,
  • 외계인이 지구를 침략했는데 한국군이 무슨 지구를 구하는 데 국제적인 기여를 했거나,
  • 국군의 규모가 지금보다 몇 배 이상 더 커져서 포스타마저 수십 명으로 늘지 않는 한..

한반도에서 오성장군이 배출될 일은 앞으로도 없을 것이다.

Posted by 사무엘

2019/01/31 08:34 2019/01/31 08:34
, , , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1581

오늘은 인터넷 커뮤니티에서 굴러다니는 글들 중, 개인적으로 느끼기에 필력이 정말 존경스러운 작품을 두 편 소개하고자 한다. 뭐, 내가 알게 됐을 정도면 알려진 지 이미 수 년이 지났고 네티즌들 사이에 퍼질 대로 퍼졌겠지만 말이다.

욕설과 비속어가 난무하지만 팩트가 머리에 쏙쏙 들어오는 글, 비유와 패러디와 개드립이 타의 추종을 불허할 정도로 창의적인 글이 좋다. 본인은 Doom 코믹스 대사라든가 작은 하마 이야기 스타일의 개그 코드를 아주 좋아한다.
도대체 무슨 약을 빨아야 저런 필력이 나올 수 있을까? 나도 이런 스타일과 내용의 글을 쓰고 싶다.

1. 부산 운전 후기 (☞ 링크)

일단 닥치고 읽어 보시길.. 생각 같아서는 이런 주옥 같은 명문은 날개셋 타자연습의 연습글에도 당장 집어넣고 싶을 정도이다. 주요 감상 포인트는 다음과 같다.

  • 야수의 심장을 쏘는 유신의 심정 → 이거 나름 롸임 있는데?? ㅋㅋ
  • 전쟁 이후로 갈아엎은 적이 있나 싶은 X같이 열악한 도로망, 쓸데없이 높은 인구 밀도, 붇싼싸나이 특유의 허세
  • 부산시에서 차량을 등록할 땐 깜빡이를 뜯어내야만 등록 허가가 난다. 이 씨X새X들은 절대로 깜빡이를 키지 않는다.
  • "어 점마 점마 머고? 부싼싸람 아이네!"
  • 수시로 차창을 내리고 옆 차량과 가정사를 물어보는 시끌벅적한 동네
  • 선 끼어들기, 후 깜빡이는 필수. 이때 뒤에서는 힘찬 크락션 소리가 너의 차선 변경을 축하해 줄 것이다. ㅍㅎㅎㅎㅎㅎ
  • 아니면 니가 끼어들 차로의 반대 방향으로 깜박이를 키는 것도 좋다.
  • 아이가 타고 있어요 → 이런 차들은 자기 애새끼가 진짜 불에 활활 타고 있는지 운전을 상당히 X같이 한다.
  • 뭔 동네에 유전이라도 터졌는지, 급제동 급발진을 X나게 습관적으로 하면서 길바닥에 기름을 쳐 뿌리는 걸 보면..
  • 부산에 진입하기 전에 대물 한도를 10억으로 늘리고 과감하게 운전하자. 이 동네에선 잃을 게 많은 놈들이 브레이크를 밟는 법이다.
  • 승객을 인질로 삼고 폭주하는 저 운전사는 도대체 버스 기사인지, 아니면 저승의 뱃사공인지 헷갈린다.
  • 근처 차량의 지붕에 뭐가 달려 있다(택시등ㅋㅋㅋㅋㅋㅋ) 싶으면 무조건 피해라. 아니면 니가 그 안에 타든지.
  • 도로를 달리는 건가, 요단 강 래프팅을 하는 건가?
  • 연비 절감을 위한 자구책인지.. (배기가스 절감이나 연료 소모 절감이 아님. ㅍㅎㅎㅎㅎㅎㅎ)
  • "뭐고, 붇싼 택시 처음 타능교? 내가 이래봬도 중앙동 넘버 쓰리라 안 카나. 남바 완, 투는 다 사고로 디져뿟다 아이가"

아.. 정말 빵터지는 한편으로 나도 어서 부산 가서 운전 좀 하고 싶어진다. ㅋㅋㅋㅋㅋㅋㅋ
아니면 내가 직접 차를 몰지 않더라도, 그 악명 높은 총알택시를 타고 궁극의 과속과 가속도 변화와 스릴을 경험하고 싶다. 나도 과격 격렬한 건 다 좋아하기 때문이다.

말을 이렇게 하지만 본인은 평소에 택시를 타면 뒷좌석에서도 안전벨트를 꼬박꼬박 맨다.
그리고 차를 몰 때는 늘 (1) 1/2 mv^2이라는 물리 감각, (2) 풀 악셀을 밟을 때마다 기름값 몇십 원이 깨진다는 경제 관념, (3) 그리고 시야가 확보되지 않은 곳에서는 언제 무엇이 갑자기 튀어나올지 모른다는 겁대가리라는 삼요소를 늘 숙지하고 명심하고 있다.

부산은 6· 25 때도 북괴에 점령당한 적이 없으며, 따라서 전쟁 때문에 길거리가 대판 파괴되어 리셋 재건된 역사가 없다. 그래서 그런지 길거리의 선형에도 옛날 스타일이 고스란히 남아 있으며, 더 좁고 꼬불꼬불하고 오거리 육거리가 많은 것 같다. 거기에다 저기는 서울이나 대구만 한 분지도 없고 산이 많으니.. 구조적으로 자동차 운전에 친화적이지 않은 지형이 형성된 게 아닐까?

부산 도로의 특징에 대해 그나마 점잖게 써 놓은 곳은 다음과 같다. (☞ 링크 1, 링크 2)
롤러코스터 같은 산복도로가 많다, 오거리· 육거리가 많다, 고가도로가 많다 등..
고가도로가 많으면 그 아래는 기둥 때문에 길 모양이 꽤 복잡해지긴 한다. =_=;;;

그리고 말이 나왔으니 말인데 부산 사투리를 빼놓을 수 없다.
부산 사투리라는 걸 최초로 전국적으로 퍼뜨린 매체는 20여 년 전에 나온 영화 <친구>임이 틀림없다. "-예 (하고 있지예, 그런데예)", "아잉교, 아이다" 등..
경상도 사투리라는 게 곧 부산 사투리라고 할 수 있는지는 모르겠다. 영화 <아저씨>에서는 오 명규 사장과 일부 형사, 그리고 <범죄도시>에서도 마 동석 말고 다른 동료 형사가 경상도 사투리를 쓰는 게 클리셰처럼 됐다. ("뭐 보노 X꺄, 상X 터쟈뿔라 마~" ㄲㄲㄲ)

사투리계의 또 다른 계보는 물론 전라도다. "아따 거시기하네, 시방 겁나게 웃겼당께로~" 이런 거.. =_=;; 경상도와는 어휘와 억양이 미묘하게 다르다.
그 밖에 평양 사투리도 있다. "고조, ~했지비, 내레" 이런 말투가 쓰이는데, 자연스럽게 구사하려면 이것뿐만 아니라 형언할 수 없는 그 억양을 북한 방송 보면서 익혀야 할 것이다. 그리고 문화어에 대한 전반적인 지식도 필요하다.

부산은 나름 우리나라 제2위의 대도시인데 서울과 다른 고유한 언어와 교통(!) 문화를 잘 간직하고 사람들이 다이내믹하게 잘 지냈으면 좋겠다~ ㅎㅎ

2. 장애인 (☞ 링크)

이 글은 휠체어를 타는 실제 장애인이 썼다. 부산 운전만치 '웃긴 요소'는 별로 없지만 그럭저럭 재미있고 진지하게 읽을 만하다.

휠체어의 회전 반경과 후방 시야

  • X발 니들 중에 휠체어로 회전반경 20cm 이하로 만들 수 있는 X끼 있으면 나와서 내 욕해도 됨. 세상 어느 휠체어가 제자리 회전이 되냐?
  • 휠체어 뒤로는 제발 바짝 서 있지 좀 마라. 휠체어엔 백미러가 안 달려 있다. 뒤로 목을 돌려 확인할 정도로 목이 잘 돌아가면 병신이라고 불리지도 않아~ 이 X신들아. 아니면 휠체어에 백미러 달아 주든가.

휠체어 탑승자의 높이 접근성

  • 장애인용 엘리베이터라고 분명 마크 달려 있는데 130cm 위에 버튼 달아 놓은 건축 시공사 새X들 전부 대가리에 마대질 할 줄 알아라 씨X, 개놈들 다 총살시켜야 돼~
  • 팔이 어깨보다 위로 올라갈 수 있는 정도면 병신이라고 불리지도 않어. 그런 X나 당연한 게 안 되니까 병신인 거다.

휠체어 탑승자의 접근성과 이동권

  • 대학교 수업 들으면서 "휠체어가 고장 나서 지각/결석합니다"라는 멘트 한번 상상해 봤냐? "비 와서/눈 와서 수업 못 나갑니다"는 어때?
  • 차라리 아파서 결석이면 덜 억울해. 진단서 끊어 가면 인정받으니까.. 하지만 휠체어 수리는 영수증 제시한다고 인정될 사항이 아니지, X발
  • 전동 휠체어를 들고 계단을 오를 땐 무조건 6명 이상 모여라. 니들 허리 생각해서 하는 소리다.
  • 휠체어 전체를 덮는 비옷? 있기야 하지, 그런데 그걸 혼자 쓰고 벗을 수 있을 정도면 병신이라고 안 한다는 거 이제 식상하지?
  • 지하철 1, 4, 7, 10째 칸에 있는 빈 공간에 주저앉아 있지 좀 마라. 나 없을 땐 몰라도, 타면 알아서 좀 비켜라 병신들아, 진짜 병신 만들어 놓기 전에.

휠체어 도로 주행의 애로사항

  • 전동 휠체어는 굴러다니는 것 자체로 모든 면에서 위법임. 기름 넣고 굴러가는 자동차도 아니고(차도 X), 완전 보행자나 그에 준하는 물건도 아니고(차라리 수동 휠체어는 법적 보행자로 인정이지만 전동은..), 그렇다고 자전거도 아니고(자전거 전용 도로도 X).
  • 휠체어는 인도로 가라고 하는 놈들 다 휠체어에 태워서 인도 드라이브 한번 시켜 줘야 됨. 인도가 얼마나 익스트림 한지 니들 모르지?

본인도 휠체어는 지게차나 바퀴 달린 의자처럼 제자리 회전이 당연히 가능할 거라고 막연히 생각해 왔는데.. 아니었구나.

장애인은 안 그래도 몸이 불편한 데다가 수도 적다. 사회에서 완전 약자 중의 약자일 수밖에 없다. 그러니 인권이고 복지고 없고, 사실 사지 멀쩡한 사람들도 자기 입에 풀칠하느라 바쁘던 전근대 시절에는.. 장애인의 삶은 막장 시궁창 그 자체였다. 말 그대로 병신이라고 불리면서 완전 천대와 무시, 멸시, 차별, 박해를 받으며 거지로 살아야 했다.

사회가 이런 사람들을 같이 수용하고 먹여 살릴 수가 없었다. 꾀병 부리는 거랑, 진짜 장애가 있는 것을 일일이 분간할 여력도 없었고 말이다. 오죽했으면 나치 독일은 유대인이 아닌 자국민이라도 이런 장애인은 몰래 죽여 버렸을 정도이다.

하지만 장애인은 사고로 인한 후천적 장애가 훨씬 더 많다. 마치 낙태 사유가 강간으로 인한 것보다 피임 실패가 훨씬 더 많은 것처럼 말이다. 누구든지 재수가 더럽게 없으면 장애인이 될 수 있는데.. 무슨 동성애자 인권 따위가 아니라 장애인 인권과 접근성 문제는 더 진지하게 생각해 볼 주제인 것 같다. 더구나 다른 장애인도 아니고 상이 군경까지 그 따구로 대했다가는 아무도 국가를 위해 기꺼이 죽거나 다치려 하지 않을 것이니 말이다.

Posted by 사무엘

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

1.
지난 1월 중순의 어느 날, 본인은 인터넷 SNS를 통해 알게 된 어느 지인을 오프라인에서 만나러 그 지인이 다니는 교회를 방문한 적이 있었다. 이른바 '제네바 개혁 교회'라고 장로교 계열인데, 기성 주류 교단보다 더 근본주의랄까, 옛날 스타일을 추구하고 교리에 따른 분리를 더 엄격하게 시행하는 곳이었다.

사용자 삽입 이미지

본인은 요즘 같은 세상에 근본주의라고 하면 일부 침례교 교파밖에 없는 줄 알았는데, 저런 곳도 있다는 걸 처음 알게 되니 신기했다.
본인이 다니는 교회도 비성경적인 은사주의를 거부하고 종교 일치 운동 거부하고 동성애 합법화 반대하는 등.. 대세를 따르지 않고 근본주의를 따르는 면모가 있다. 하지만 그걸 '남자는 무조건 정장, 여자는 무조건 긴 치마' 식으로 율법적으로 강요하지는 않는다.

특히 신기한 건 '칼빈주의'였다.
본인은 루터, 칼빈이라든가 예정론이라는 학설을 태어나서 처음 들은 곳이 교회가 아니었다. 그 대신, 아동용 세계사 만화와 중학교(세계사, 윤리)에서 최초로 접했다. 본인은 어린 시절에 장로교가 아니라 감리교 계열에 속하는 성결교를 다녀서 그런 사람을 교회에서 못 들었던 건지도 모르겠다.

루터는 '내 주는 강한 성이요'를 작사뿐만 아니라 작곡까지 했다는 것이 주지의 사실이다. 그런데 칼빈은 이에 질세라 시편 찬송가라는 걸 만들었나 보다. 전 악보를 통틀어서 4분음표와 2분음표밖에 없고 뭔가 종잡을 수 없는 조와 음계로 시편을 1편부터 150편까지 몽땅 노래 형태로 만들었다고 한다. (글쎄, 시편에는 저주도 쓰여 있는데 그런 가사까지 곡으로 옮겼는지는 모르겠다.)

또한, 장로교 내지 개혁 교회 쪽에서는 일명 TULIP이라고 요약되는 5대 강령을 가히 신앙의 핵심· 진수로 떠받들고 있었다. 성결교에 성결 중생 신유 재림(무순)이라는 4대 강령이 있는 것과 비교된다.
종교 개혁자들이 그 서슬 퍼런 교황과 맞장 뜨고 양심의 자유와 성경적 진리를 추구한 것, 엄격 진지 근엄하고 청빈 검소 고결하게 산 것은 분명 훌륭한 일이다. 성경을 독일어로 직접 번역한 루터야 말할 것도 없고, 칼빈도 제네바에서 올바른 성경이 안심하고 번역될 수 있는 여건을 마련해 놓은 것은 매우 잘한 일이다.

다만, 인간이 자기 스스로 죄를 인지하고 예수님을 영접할 능력마저 상실했을 정도로 타락했다거나, 하나님이 답정너 선택하고 '예정'하지 않았기 때문에 사람이 구원받지 못하고 지옥에 간다거나, 선물을 받으려고 단순히 손을 뻗는 동작조차도 선물에 대한 값을 치르는 행위이고 자기 의라고 우기는 주장들은 좀 말장난 궤변처럼 들린다. 난 동의하지 않는다.

아무리 하나님의 섭리와 주권이 킹왕짱 절대적이라 해도.. 그 끔찍한 죄악이 인간의 자유 의지 책임으로 귀착되지 않는 한낱 역할극에 불과한 건 절대 아니다. 하나님이 원하시는 뜻과, "씁 어쩔 수 없지" 그냥 허락하시는 뜻을 분간할 줄 알아야 한다.
칼빈 신학이 실제로 무어라 가르치는지를 내가 직접 배운 게 아니니 정확하게는 모르겠지만, 주위로부터 들리는 말에 따르면 칼빈주의 내지 예정론이 그런 걸 가르치는 것으로 보인다.

칼빈· 루터와 달리, 감리교의 창시자인 존(요한) 웨슬리는 세계사· 윤리 시간에 다뤄질 정도로 유명하지는 않다. 이쪽은 반대로 인간의 자유 의지를 강조하면서 칼빈주의 교리를 정면으로 부정했다. 존 웨슬리의 동생인 찰스 웨슬리는 O Horrible Decree라는 제목으로 TULIP 강령을 신랄하게 디스하고 극딜하는 시를 쓰기도 했다.

뭐 그것까지는 좋은데.. 거기는 반대로 반쯤 행위로 구원 유지, 구원의 상실을 가르치는 것으로 본인은 들었다.
비교하는 게 무의미할지 모르지만, 본인은 그게 어찌 보면 칼빈주의보다 더 잘못됐다고 생각한다. 기본 중의 기본인 구원관이 정확하게 정립돼 있지 못하니 자살하면 지옥 간다는 식으로 아주 이상한 낭설도 교회에 잔뜩 퍼진 게 아닐까?

이런 식으로.. 본인은 칼빈주의와 알미니안주의에 모두 진리도 있고 오류도 있다고 생각한다. 종교 개혁자들도 다 교리적으로 완벽한 사람은 아니었다.
아이고, 신학 얘기가 너무 길어졌다만.. 뭔가 다른 교파에 속한 교회, 그것도 주류 대형 교회가 아니라 마이너한 성향의 교회에 가 보는 건 꽤 신기한 경험이었다.

2.
그나저나 이 교회는 송파구 문정동에 소재해 있고, 교회 근처에는 길 옆으로 문정 근린 공원이라는 도심 속 녹지가 쭉 들어서 있었다.
이 정도로 작지 않은 폭의 공간에 건물 대신 풀밭과 벤치, 주차장이 1km가 넘게 이어지는 건.. 평범한 계획 도시에서 볼 수 있는 지형이 아니다.
풍납동의 풍납토성 구간이야 유적 발굴 명목으로 개발이 봉인되고 풀밭과 언덕이 길게 이어져 있긴 하지만, 문정 공원은 그런 케이스도 아닌 것 같다.

이건 90% 이상의 확률로 폐선 철도 부지일 거라고 감이 어렴풋이 왔다. 내 안에서 살아서 역사하는 철령께서 내게 계시를 주셨다.
실제로 홍대 일대에는 당인리선 폐선 부지를 따라 어중간한 주차 공간과 건물, 골목이 길게 나 있다. 신촌에도 골목길이 과거 경성 순환 철도의 선형대로 형성된 것을 볼 수 있다. 철길이 없어지더라도 철길을 따라 형성된 건물들의 선형이 쉽게 달라지지는 않기 때문이다.

하지만 서울의 구시가지가 아니라 동남부 외곽에 웬 철도가 있었다가 폐선된 적은 없다. 저 공간의 정체는 도대체 뭘까..??
저건 근처의 외곽순환 고속도로와 비슷한 선형으로 수도권 남부 순환 철도를 미래에 '만들려고' 국가에서 1980년대에 확보해 놨던 부지였다. 단선 전철로 여객보다는 화물 수송을 염두에 뒀으며, 의왕에 있는 컨테이너 화물 기지에 이르기까지 선로를 이을 계획이었다고 한다.

사용자 삽입 이미지

목적지는 경부선 의왕(위의 그림에서는 '부곡')에서 분기하는 오봉 화물 기지에서 시작해서 무려 중앙선 도농까지였다.
북쪽의 교외선(능곡-의정부)과 연결하면 진짜로 그럴싸한 순환선 철도가 나올 수 있을 것이다. 대단하지 않은가?

하지만 계획은 여러 난항에 부딪혔다. 서울 외곽에 자리잡은 군부대 등 보안 시설들과 마찰이 있지 않았나 싶다. 그리고 여기 일대에 분당선과 서울 지하철 8호선 같은 여객 철도가 지하로 건설하려는 대체 계획이 잡히면서.. 지상 화물 철도의 건설 계획은 1993년에 완전히 나가리 났다.
그 뒤로 이 부지는 미개발 상태로 오랫동안 놀면서 주차장 정도로나 쓰였다. 그러다가 2000년대 이후에 여기가 문정 근린 공원으로 조성되었다고 한다.

그렇게만 알면 끝인데.. 본인은 그 공원의 일부 구간에 만들다가 말았던 철길의 흔적이 지금도 남아 있다는 정보를 뒤늦게 입수했다. 그래서 즉시 차를 끌고 달려가서 공원을 또 답사했다. 그리고 거기가 바로 공교롭게도 딱 제네바 개혁 교회 근처였다. 2km에 달하는 전체 공원 구간을 다 돌아다녀 봤는데, 레일이 있는 곳은 유일하게 저기밖에 없었다.

사용자 삽입 이미지

오옷~~!!!
남부 순환 철도라는 게 이게 무슨 구 수인선 같은 역사 유물도 아닌데, 철길을 공원에다 일부러 깔았을 리는 없을 테고.. 저건 그 시절에 만들다가 말았던 폐선 흔적이 틀림없을 것이다.
간격은 표준궤가 맞는데 궤조가 유난히도 작고 가녀린 것 같다. 공원의 그 어느 표지판이나 구조물에도 여기가 철도 노반이었음을 암시하는 문구는 존재하지 않았다.

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

세상에, 철도 불모지인 서울의 동남부에서 고가나 지하가 아닌 평지에 깔린 레일을 이렇게 보게 되다니.. 완전 좋다. ^_^ 뭐, 철길의 길이는 100미터가 채 될까 말까이니 너무 많은 걸 바라지는 않는 게 좋지만, 그래도 이 정도라도 있는 게 어디냐.
계획 당시에 땅이 얼마나 놀고 있었으면 평지에다가 대놓고 철길을 놓을 생각을 했을까? 외곽순환 고속도로와는 대조적이다.

사용자 삽입 이미지

특이하게도 중간에 요렇게 교차로를 만들어 놓은 곳이 있었다.

서울 서부 외곽의 오류동에는.. 경인선에서 분기하는 경기화학선의 폐선 잔해가 건물 뒤로 지나가는 게 있다.
이와 비슷한 맥락으로 동부 외곽에는 지금까지 어렴풋이 말로만 들었던 남부 순환 철도의 흔적이 철덕의 가슴을 설레게 한다는 걸 알 수 있었다.

심지어 강동구에 있는 한영 중· 고등학교와 인근의 큰길인 동남로 사이에 있는 큰 공간도.. 그 시절에 확보해 뒀던 철길 노반의 흔적이다. (☞ 관련 링크)

사용자 삽입 이미지

이상이다. 모처럼 철도와 기독교· 성경을 융합한 글이 하나 완성됐다. ^__^
보라매 공원은 원래 공군 사관학교의 부지였고, 여의도 공원은 원래 여의도 공항 활주로 내지 여의도 광장의 부지였다.
또한, 강북 구도심에는 용산선 철길이 있어서 거의 폐선 상태였는데, 2010년대에 싹 걷히고 지하의 경의선· 공항 철도로 형태가 바뀌었다. 그리고 거기도 지상 구간은 공원으로 탈바꿈했다.

이런 식으로 대도시의 도심에 놓여 있는 공원은 제각기 사연과 기원을 찾아볼 수 있다.
그리고 제네바 개혁 교회는 이렇게 만들려다가 만 철도 폐선 부지를 활용한 공원의 근처에 있다는 것도 알게 되었다. 성도들이 쉬는 시간에 밖에서 교제하기 좋겠다.
본인이 다니는 교회의 근처에는 큰 도로의 중앙에 무슨 계기로 조성된 '거리 공원'이란 게 있다. ㅎㅎ

Posted by 사무엘

2019/01/25 08:32 2019/01/25 08:32
,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1579

원자력 발전 이야기

과거에 이따금씩 발전 시설이나 원자력에 대한 글을 몇 번 썼지만, 원자력 발전에 대해서만 전문적으로 글을 쓴 적은 없었던 것 같다.

수력이야 그 정의상 지형을 많이 타고 아무 곳에나 못 만들겠지만, 화력은 연료와 엔진만 있으면 어디서나 발전기를 돌릴 수 있으니 장소와 지형 제약이 상대적으로 덜하다.
물론 화력이라도 엄청 거대한 놈은 연료와 냉각수 조달이 원활한 곳, 보안 걱정 없는 곳, 빵빵하게 돌려도 주민들 항의 민원이 안 들어올 외곽에 건설되어야 할 것이다. 하지만 화력은 규모를 줄여서 도시와 상대적으로 가까운 곳에 열병합 난방 시설과 연계한 형태로도 만들 수 있다. 메탄 가스를 활용할 목적으로 쓰레기장 주변에 이런 발전소가 돌아가기도 한다.

또한 울릉도· 백령도 같은 오지 도서 지역에도 그런 소형 화력 발전소가 있다. 전깃줄을 본토에서 바다 건너 거기까지 연결하는 건 어려우니 말이다.
이런 영세한 발전소들은 메이저급 대형 발전소에 비해 배기가스· 매연을 정화하는 시설이 부실해서 환경을 오염시키고 있다고 어디 언론에서 고발한 적이 있다.

원자력 발전도 물을 끓여서 증기 터빈을 돌리고 그걸로 교류 발전기를 돌린다. 이 원리는 화력과 본질적으로 완전히 동일하다. 다만, 원자력은 열을 생성하는 방식이 화력과는 넘사벽급으로 더 고차원적이고 에너지가 풍부한 대신, 훨씬 더 위험하다는 차이가 있다.

그러니 원자력은 화력처럼 여느 공장 짓듯이 아무렇게나 여기 저기 많이 만들 수 없다. 한번 만들고 나면 수십 년 뒤에 원자로를 해체하는 마지막 순간까지 평생 철통같이 잘 관리하겠다는 심정으로, 정말 엄격한 입지 조건을 따져서 만들어야 한다.
지금의 핵분열 방식보다 더 고차원적인 핵융합 방식의 발전은.. 마치 바퀴식 고속철 vs 자기부상 고속철만큼이나 아직까지 떡밥이다. 기술적 어려움 때문에 실용화되지 못했다.

사용자 삽입 이미지

발전소가 원래 다 민간 지도에서 표시하지 않는 보안 시설이지만, 원전은 위로 비행기의 비행조차 금지할 정도로 보안이 더 삼엄하다. 원자로의 겉벽은 어지간한 댐 급으로 콘크리트를 왕창 쏟아부어서.. 비행기가 쳐박고 어지간한 폭탄이 떨어져도 끄떡없게 만들어진다고 들었다.

원전은 미래의 해체 비용까지 생각하면 마냥 싼 게 아니겠지만.. 어쨌든 당장 핵분열이 시작되어 제대로 돌아갈 때는 화력보다 훨씬 더 많은 열량이 저렴하게 뿜어져 나온다. 한번 시작된 반응을 마음대로 멈췄다가 재개할 수도 있지 않으니 전기는 밤낮 구분 없이 24시간 쭈욱 생산된다.

철도만 해도 비싼 돈 들여 고속철이 개통하고 나면 노선이 전부 KTX 위주로 개편되고, 나머지 느린 열차들은 KTX 연계 지선 위주로 운영된다.
그것처럼 국가에서 전력을 관리할 때도 평소에 저렴한 원전을 상시 가동하고, 이것만으로 감당이 안 될 정도로 전력 소모가 늘면 용량과 생산 원가가 모두 열세인 화력을 추가로 가동하게 된다. 즉, 전력 부하가 커질수록 더 비싼 전기를 생산하게 된다는 것이다.

에휴.. 나도 공돌이 공부 더 열심히 해서 우주로 나간다거나, 아니면 이런 신비로운 업종의 종사자가 됐으면 하는 아쉬움도 든다만..
대한민국에는 원자력 발전소의 군집 내지 본부가 총 네 군데 있다. 아래의 그림은 한 2년 반쯤 전 기준의 자료이다.

사용자 삽입 이미지

1. 고리(1978)

우리나라 최초의 원자력 발전소이다. 그 시기가 1978년 봄이니 박통 집권의 말기이며, 호남선 대전-이리간 복선 개통과도 시기적으로 비슷하다. 착공은 1971년부터 했으니 만드는 데 7년이나 걸렸다.

얘가 있는 곳은 부산 기장군의 최북단과 울산 울주군의 최남단 사이에 있는.. 행정구역상 기장군 '고리'(古) 전체이다. 최초의 원자력 발전소답게 북괴와 최대한 멀리 떨어진 후방인 동시에 나름 부산이라는 대도시와 가장 가까운 곳에 지어진 셈이다. 여기가 원전 부지로 지정되면서, 이 동네에 원래 살던 주민들은 모두 당연히 딴 데로 이주하게 됐다.
이렇듯, 이 발전소의 명칭의 근거는 그냥 지명이다. ring 같은 다른 이상한 근거가 절대 아니다.

원자력 발전소는 안전상의 이유와 원자로를 식힐 냉각수를 조달하는 문제로 인해, 바닷가에 만들어지는 것이 관례이다. 한반도에서는 바람이 서에서 동으로 분다는 특성상, 서해안 대신 동해안의 바닷가가 선택되었다. 근처의 임랑 해수욕장에서 고리 원전을 멀리서나마 구경할 수 있다.

원전이 대도시와 너무 가까운 것은 좀 찝찝하고 문제의 여지가 있지만, 그 덕분에 여기는 직원들의 근무 선호도가 가장 높다. 그리고 근처에 '신고리'라는 이름으로 원전이 더 지어져서 발전 용량이 압도적으로 증가했으며, 한수원의 직원 연수 시설과 심지어 원자력 대학원대학교까지 다 여기 일대에 건립되었다. 여기는 그야말로 우리나라 원전 허브처럼 돼 가는 느낌이다.

대전에 있는 원자력 연구원이 핵물리학을 전반적으로 연구한다면, 저기는 원자력 발전에 더 특화돼 있다.
신고리 원전이 너무 거대해진 관계로, 앞으로 더 만들어지는 신고리 원자로 3호기부터는 '고리'가 아닌 '새울'이라는 새로운 원자력 본부의 명의로 관리할 예정이라고 한다.

다만, 우리나라 최초의 상용 가동 원자로인 고리 1호기는 잘 알다시피 설계 수명을 넘겨서 가동을 중단했으며, 앞으로 수십 년에 걸쳐 해체될 예정이다. 뭔가 몇십 년을 뛰었던 전동차나 여객기가 퇴역하는 것 같은 느낌이다. 화력 발전에는 이런 거창한 프로세스가 존재하지 않을 것이다.
용광로만 해도 한번 쇳물이 흐르기 시작했으면 그야말로 무조건 365일 가동해야 한다던데(쇳물이 중간에 굳어 버리면 용광로 전체가 망가지고 못 쓰게 됨)... 원자로는 더 위험하고 까다로운 물건임이 틀림없을 것이다.

2. 월성(1983)

고리 다음으로 5공 시절에 가동을 시작한 제2의 원자력 발전소는 '월성'이다. 물론 얘도 건설은 이전 정권 때부터 몇 년째 하다가 저때에야 결실을 거뒀다.
있는 곳은 고리보다 더 북쪽으로.. 경주의 남동쪽 끝의 나아리와 봉길리 사이이다. 지명을 딴 해수욕장도 있으며, 우리나라 역사상 보기 드문 해중왕릉인 신라 문무대왕릉도 여기 근처에 있다.

발전소의 이름이 월성인 이유는 여기의 옛 지명이 월성이었기 때문이다. 옛날에는 신라의 도읍에 속하는 좁디좁은 시내만이 경주시이고, 나머지 외곽의 넓은 시골 마을들은 다 경주군(1995 이전)이었다. 그게 더 옛날에는 이름도 경주군이 아니라 월성군(1989 이전)이었던 것이다.

그러니 '경주/월성'은.. 이름은 그대로 남아 있는데 행정구역 영역이 바뀐 '김포/서울'과는 관계가 좀 다르다. 김포 공항조차도 굳이 이름을 바꾸지 않고 있는데(뭐 국제적인 인지도와 관성 문제 때문이지만), 원전의 이름을 뭔 남사스럽게 최신 지명에 맞춰 업데이트 할 필요는 없을 것이다.

다만, 지금도 경주는 시내와 바다 근처는 거리가 상당히 멀고 산으로 가로막혀 있기도 한지라, 생활권이 서로 굉장히 다르다. 경주도 포항처럼 바다와 접하고 있고 해수욕장과 항구도 있는 시라고 하면 누가 선뜻 실감하겠는가? 행정구역이 다르다고 해도 할 말이 없다. 그리고 그것만치 월성 원자력 발전소도 서류상의 행정구역으로만 경주 소재일 뿐, 흔히 생각하는 그런 경주 생활권에 있는 건 아니다.

여기도 2010년대에 와서 신형 원자로를 추가로 만들었으며, 1983년부터 가동했던 원조 1호기는 이미 퇴역했다.
그리고 원자력 발전소라고 다 같은 발전소는 아닌지라, 월성의 원자로는 국내에서 유일하게 가압중수로 방식이라고 한다. (나머지는 가압경수로) 잘은 모르겠지만, 얘는 핵무기 개발과 연계하기 더 쉬운 구조여서 국제적으로 더 민감하다고 그런다. 우주 탐사 로켓이 장거리 미사일로 형태가 고스란히 바뀔 수 있는 것처럼 말이다.

3. 영광-한빛(1986)

얘는 우리나라의 원자력 발전소들 중 이례적으로, 유일하게 서해안에 있는 물건이다.
황해라고도 불리는 서해는 물이 얕고 탁해서 해수욕장으로서의 입지가 동해 및 남해보다 못하다. 그런데 그 단점은 다량의 냉각수를 필요로 하는 원전의 입지 조건에서도 불리하게 작용하는 듯하다.

하지만 전남 영광군의 북부에는 바닷가가 내륙의 산으로 가로막히기도 하고 서해안의 지리· 지형적인 단점이 그나마 적게 작용하는 곳도 있는가 보다. 그래서 거기에 원전이 하나 더 지어졌다.
영광은 광주와 가까우며, 이 발전소가 있는 곳은 위도가 부산 고리와 비슷하다. 얘 혼자 다른 원전들과 달리 낙동강 오리알처럼 따로 떨어져 있다.

본인은 타지 사람으로서 '영광'이라 하면 정말.. (1) 영광 굴비랑, (2) 옛날에 야망이 너무 충만했던 그 조직폭력배 집단, 그리고 (3) 원자력 발전소밖에 떠오르는 게 없다.
그런데 이 지역에서는 자신이 원자력 발전소와 엮이는 것이 싫었는지.. 2013년부로 발전소의 이름을 '한빛'으로 바꿔 버렸다. 지명과 무관한 원전 명칭이 처음으로 등장하게 됐다. 하지만 '광/빛'을 생각하면 개연성이 전혀 없는 명칭은 아니어 보인다.

4. 울진-한울(1988)

우리나라에서 가동 중인 원전 군집 중에서는 제일 나중에 생겼으며, 위도가 제일 높은 북쪽에 있기도 하다. 강원도에 근접한 경북 동북부 끝.. 말만 들어도 전라남도 섬 만만찮은 오지 같지 않은가?
여기는 직원들로서는 기피 1순위인 근무지이다. 오죽했으면 "울진에서 10년간 근무"를 조건으로 거는 특채도 있다고 들었다. 무슨 사관 생도의 군 의무 복무도 아니고 말이다.

여기도 영광과 같은 시기(2013)에 '한울'이라고 이름을 바꿨다. 울진은 이 발전소 덕분에 오지치고는 세수입 많고 재정이 넉넉하고 학교나 공공기관들의 시설이 좋다고 들었는데 왜 굳이 발전소 이름에서 자기 지명을 빼려 하는지 모르겠다.

이상이다.

이런 식이면 강원도에도 원전이 있을 법한데 그렇지 않다. 지형적인 입지는 나쁘지 않지만 북쪽으로 갈수록 북괴와 가까워져서 안보 측면에서 위험하기 때문이다.
그래도 우리나라가 동쪽으로 갈수록 고위도 영토를 많이 수복했기 때문에 강원도 남부의 삼척 정도에는 장기적으로 원전의 건설이 계획돼 있다고 한다. 현재로서는 강원도가 아니라 울진보다 남쪽의 오지인 영덕에 새 원전이 이미 건설 중이긴 하다. 동해도 서해도 아닌 남해안 쪽은 만들 만한 곳이 없나 모르겠다.

우리나라는 1950년대 이 승만 할배 때부터 원자력에 큰 관심을 갖고 있었다. 비록 할배는 문과 출신이고 군 경력도 없는 사람이지만, 절대 망하지 않을 것 같던 일본을 닥버 시키고 우리나라를 해방시켜 준 무서운 폭탄이 원자력 기반이라는 것에 큰 감명을 받지 않았을까 싶다.

그래서 6·25 전쟁 이후, 1956년에 미국과 원자력 협정을 맺고 서울대와 한양대 등의 공대에 원자력 공학과를 신설했으며, 58년에는 원자력 연구소를 설립했다. 이렇게 차근차근 씨를 뿌린 것이 결실을 맺은 덕분에 20여 년 뒤에 한반도엔 원자력 발전소가 돌아가게 됐다. 원자력 발전소가 없이 화력만으로는 지금 같은 전철, 서버, 에어컨, 휴대폰 충전 같은 폭발적인 전기 소모 수요를 지금 같은 생산 원가로 결코 감당할 수 없을 것이다.

본인은 이런 이유로 인해 예나 지금이나 원자력 발전의 적극 찬성론자이며, 되도 않은 탈원전 구도가 어떻고 하는 소리에 전혀 동의하지 않는다. 당장 현실에서 이것만 한 대안이 전무하기 때문이다.
물론 사고가 났을 때의 여파가 너무 크고 평소에도 방사성 폐기물이 계속해서 생겨나는 등 문제는 있지만.. 그것까지 일일이 다 따지려면 자동차나 비행기도 무서워서 타지 말아야 할 것이고, 그냥 현대 문명의 이기를 다 포기해야 할 지경이다. 어디 한번 인간의 손이 닿지 않은 자연에서 냉장고· 에어컨조차 없이 잘만 살아 봤으면 싶다.

원자력을 없애고 그 대신 더 더티한(미세먼지!!) 화력을 늘리는 것은 바보 병신짓이 따로 없고, 또 이 좁은 땅에서 무슨 태양광? 풍력? 이건 한 대 쥐어박아 주고 싶다.
환경 운동한다는 놈들이 정말 환경을 걱정하는 게 아니라 99%가 그냥 진영 논리 정치꾼일 뿐이라는 것은 이미 다 밝혀진 사실이다. 이런 인간들이 원자력 발전을 꼭 '핵 발전'이라고 부르면서 원전을 반대하는 것에 본인은 더욱 공감해 줄 수 없다.

또한, 핵무기 개발을 그렇게도 오랫동안 열심히 해 온 북괴가 정작 원자력을 평화적으로 이용하는 원자력 발전소를 만들었다는 얘기는 지금까지 아무도 못 들어 봤을 것이다.
쟤들도 60년대부터 소련의 지원을 받으며 원자력 연구를 하긴 했다. 다만, 그 유명한 '영변 원자력 연구소'는 바닷가가 아닌 평안북도 소재이고, 그 자체는 원자력 발전이라기보다는 말 그대로 남한의 원자력 연구원과 비슷한 시설이다. 함경북도에 있는 핵실험장 역시 원자력 발전과는 아무 관계 없는 시설이다.

저 짓을 하고 있으니 북한은 평양 말고는 밤에 불빛 하나 안 비치는 암흑천지이고 주민들은 도탄에 빠져 있다. 어디 누가 누구 탓을 하나 모르겠다(미국 탓? 경제 제재? 트럼프가 한반도에 긴장과 전쟁 조장?? -_-;; X랄..).
그러면서 그 부족한 전기는 김씨 일가 우상화 시설에다 최우선으로 공급하고, 대외적으로 전기가 부족하다며 남한 삥이나 뜯는 것이 21세기까지 이어지는 북괴의 추악한 민낯이다. 이래도 도대체 언제까지 민족뽕 평화뽕 통일뽕이라는 저주받을 마약에 취해 있을 텐가?

참고로 국내의 경우, 개인이 '원자력 안전 위원회'의 허가와 승인 없이 싸제 원자로를 구축하고 방사성 원소를 건드리는 것은 법으로 금지되어 있다. 도대체 그런 짓을 누가 하는지는 모르겠지만, 그래도 mad scientist 성향이 있어서 위험한 짓을 하는 사람이 있으니 금지다.
저건 개인이 싸제 총기나 폭발물을 만든다거나 무단으로 북한과 내통을 시도하는 것 이상으로, 훨씬 더 위험한 짓이기 때문이다. 우리나라뿐만 아니라 선진국들은 이런 짓을 다 관련법을 통해 규제하고 있다.

Posted by 사무엘

2019/01/22 08:34 2019/01/22 08:34
, , , ,
Response
No Trackback , 2 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1578

영화 말모이

1. 말모이

독자 여러분은 '말모이'라는 단어를 혹시 들어 보셨는가?
이건 word + collection을 직역한 합성어로, 구한말-일제 시대 급의 과거에 일부 국어학자들이 사전(dictionary)을 순우리말로 옮겨서 표현했던 단어이다.

코퍼스를 뜻하는 '말뭉치'도 어쩌면 ‘말모이’와 비슷한 맥락에서 연세대인지 고려대인지 어디 교수가 처음으로 만들어 쓰기 시작한 용어이다. 그 최초 제안자가 누구인지는 잘 모르겠다. 이건 물론 현대에 만들어졌으며 오늘날까지도 업계에서 활발히 쓰이는 용어이다.

다만, 명사로만 이뤄진 합성어인 말뭉치와 달리, 말모이에서 '모이'는 '먹다'(eat)로부터 '먹이'(food)를 만들듯이 '모으다'의 어간에다가 명사화 접미사 '-이'를 붙인 파생어이다.
결합 과정에서 모음 음운이 하나 탈락하긴 했지만(모으다 ≠ 모다) 그건 별로 어색하지 않으며, 저건 ‘해돋이’, ‘한살이’만큼이나 아무 문제 없는 조어이다. 하지만 어감이 이상하다고 까는 사람도 있다. horse + food (for birds to peck up)가 떠오른다고 말이다. =_=;;

뭐, 그건 우연의 일치일 뿐이다. 동음이의어 때문에 어쩔 수 없다. 옛날에는 ‘시발’이라는 자동차도 있었다. 어감이라는 걸 판단하는 기준이 옛날과 지금이 서로 같지 않다는 걸 감안해야 할 것이다.

2. 동명의 최근 영화

세월이 흘러서 조선어 학회가 영화의 소재로 등장하고 ‘말모이’라는 단어가 영화 제목이 되는 날이 왔다. 그놈의 좌편향 반일 프레임이 지긋지긋하다고 싫어하는 분들의 심정을 본인 역시 이해 못 하는 바는 아니나, 언어와 신앙 분야(과거에 일사각오..)는 내가 특별 관리하는 분야이기 때문에 요런 영화는 찾아서.. ‘혼영’ 했다.

사용자 삽입 이미지

다만, 얘는 여느 전쟁 영화 같은 본격적인 역사 다큐멘터리가 아니다.
“일제 말기에 저런 단체가 있어서 국어사전을 만들려고 했고, 그러다가 왜놈들에게 잡혀서 회원들이 고초를 겪었다. 원고를 빼앗기기까지 했지만 다행히 해방 후에 서울역 창고에서 되찾았고, 사전은 마침내 성공적으로 출간돼 나왔다.”
라는 기본 배경만이 팩트이다. 아, 그 당시에 저기서 ‘한글’이라는 제목의 기관지를 발간했다는 것도 추가적인 팩트이고..

허나, 그것 이후로 세부적인 주인공, 조선어 학회 구성원, 중간에 일어난 사건 등등등은 순도 99%에 가까운 허구 창작이라는 점을 감안하도록 하자. 세상에, 조선어 학회의 대표가 친일파로 변절한 중학교 이사장의 아들 부잣집 도련님이라니, 완전 충격이다. ㅡ,.ㅡ;; ㅠ_ㅠ

더구나 영화에는 어설픈 첩보전까지 나온다. 조선어 학회가 일제의 어용 학술단체로 변절한 듯이 간판을 바꿔 달고, 조선총독부가 허가해 준 합법 집회에서는 대표가 일제 부역 독려 연설까지 하며 페이크를 친다. 그 뒤 그들은 야밤에 극장에서 진짜 동지들을 몰래 모아서 지방 방언을 수집한다.;;; 작가의 상상력과 창의력이 경이로울 따름이다.

그런 건 그냥 드라마틱한 효과를 내려고 일부러 만든 설정이다. 이 영화의 등장 인물 중에는 조선어 학회 대표는 물론이고 일반 회원 중에서도 실존 인물을 모티브로 딴 인물이 없다. 그러니 <말모이>는 어찌 보면 과거의 <밀정>이나 <암살> 같은 부류보다도 현실성이 더 떨어진다.

3. 실제 조선어 학회의 대표

그 당시에 조선어 학회 ‘대표’의 직함명은 ‘간사장(간사+장)’이었다. 193, 40년대에 조선어 학회의 간사장을 역임한 핵심 간부로는 이 극로, 신 명균 같은 사람이 있다.
이 극로는 이 미륵(압록강은 흐른다)처럼 그 시절에 극소수이던 독일 유학 박사이고, 독일의 대학교에서 한국어를 가르치기도 했다. 걸출한 학자로서 조선어 학회에서는 최 현배보다도 중요도가 더 높은 인물이었다.

이 사람이 남긴 매우 긍정적인 행적이 하나 전해진다. 근무 중에 눈병을 앓아서 근처 병원을 찾아갔는데(1938년경) 거기가 바로 개업한 지 얼마 안 됐던 공안과였다. 그는 거기서 자기를 치료해 준 원장 선생에게 대뜸 한글뽕(?)을 주입시켰다. 그리고 그 의사양반은 거기서 큰 감화를 받은 나머지, 훗날 세벌식 한글 타자기를 발명하게 되었다!
뭐, 말모이 같은 영화에는 들어갈 만한 문맥이 없었겠지만, 이런 일화가 영화 같은 매체에서 소개될 기회가 없는 건 아쉬운 점이다.

다만, 이 극로는 해방 후에는 월북을 하는 바람에 남한에서 존재감이 묻혀 버렸다. (사후에 평양 애국렬사릉에 안장됨) 오죽했으면 해방 후에 조선어 학회가 한글 학회로 이름을 바꾼 이유(1949) 중 하나도.. 대표의 월북으로 인한 빨갱이 누명을 조금이라도 벗기 위해서였다.

다음으로 신 명균은 나도 대학 시절 내내 전혀 몰랐을 정도로 존재감이 없는 인물인데.. 1941년쯤에 일제의 한국어 탄압과 민족 말살 정책에 항의하여 ‘자결’을 해 버렸다. 그러니, 조선어 학회 사건에 연루되지도 않았고 투옥 기록도 없고.. 존재도 한참 뒤에야 공식적으로 인정되었다.

이런 분들과 달리, 해방 이후 남한에서 그럭저럭 오래 살았던 최 현배 선생은 조선어 학회 간사이긴 했지만 간사장까지 맡은 적은 없었다.

4. 조선어 학회 사건이 발생한 진짜 이유

사실, 조선어 학회는 조선어 국어사전 편찬과 출간 자체는 조선총독부로부터 1940년에 허가를 받았다. 총칼 무장 독립 운동이 아닌 학술 활동일 뿐인데, 일제가 그런 것까지 일일이 탄압할 정도로 야박하지는 않았다.
뭐 그래도, 국어사전의 편찬에 관심을 가질 정도의 인물이라면 항일 성향도 강하다는 유의미한 상관관계가 있으니, 놈들이 예의주시하고 감시를 하긴 했다.

그런데 갑자기 조선어 학회가 1942년에 뒤늦게 조선 시대 사화를 당하듯이 화를 입은 이유는.. 잘 알다시피 여학생 일기장 사건 때문이다. “국어(=일본어)를 사용하는 학생을 선생이 혼내 줬다” → 어라? 국가 정책을 무시하고 왜 일본어 쓰는 애를 혼내지? → 그 교사를 뒷조사 해 보니 전교조.. 아니 조선어 학회 소속 → 이거 알고 보니 골수 불령선인 악질 반동이구만? → 안 그래도 요주의 인물이었는데 그럼 그렇지, 요놈 잘 걸렸다.

일제의 고등 경찰인지 특별 고등 경찰인지 거기서 실적 껀수 하나 올리려고 요렇게 시나리오를 만들어서 학자들을 잡아들이고 투옥시킨 것이다. 그리고 만들던 사전 원고도 빼앗겼다. 다만, 이건 피의자들이 무슨 짓을 했는지 참고하려고 증거물 차원에서 압수한 것이지, 그게 무슨 일제의 입장에서 나쁜.. 이를테면 일본의 국가기밀 누설, 조선총독부 폭파 음모, 총독 내지 덴노 암살 음모, 본토 테러 지령 같은 것이어서 압수당한 건 아니었다.

일상생활에서 조선어의 사용이 금지되긴 했지만, 그래도 조선어 사전 원고를 작성한 것 자체까지 법적으로 죄는 아니었다. 애초에 조선어 학회도 무슨 광복군 의열단 같은 단체가 아니니까 말이다. 굳이 그 사전 편찬자들을 해코지 하려면 명목상으로 다른 정치적이고 더 큰 죄를 뒤집어씌워야 했다.

애매한 학자들을 골수 반동분자로 조작하기 위해 잔인한 고문에 의한 자백 강요가 되풀이되었으며, 거기에다 춥고 비위생적인 형무소 수감이 장기화되면서 이 윤재, 한 징 선생 두 분이 결국 옥사했다.
그때 그 일기를 썼던 여학생은 그 당시에는 아무것도 모르고 학교를 졸업했는데, 자기 일기로 인해 이런 엄청난 일이 벌어진 것을 뒤늦게 전해 듣고는 큰 충격을 받고 죄책감과 트라우마에 빠졌다고 한다. 그리고 그 일을 가족 누구에게도 말하지 않고 일생을 보냈다.

그러다가 저분은 1982년 여름, 일본의 역사 왜곡 때문에 전국적인 반일 정서가 강해졌던 시절에 환갑을 앞둔 나이가 돼서야 “내가 그때의 영생여고보 학생 박 영희였습니다”라고 선언하고 중앙일보 인터뷰를 했다. “그때 일기장을 빼앗기고 은사가 지금 어디 있는지 대라는 협박과 함께 온갖 불법 감금과 폭행을 당했던 피해자가 바로 본인이고 아직 이렇게 시퍼렇게 살아 있는데... 자기들이 저지른 죄악을 오리발 내밀고 발뺌하고 부정한다니, 왜놈들은 정말 인간도 아닙니다!”라고 규탄하기 위해서였다.
그리고 이 인터뷰 내용은 한국일보에도 실렸던 모양이다.

사용자 삽입 이미지

10년쯤 전에 옛날엔 “내가 소설과 영화 상록수의 실제 주인공이고 최 용신의 옛 약혼자인 김 학준이오!” 커밍아웃이 나왔다. 그리고 그로부터 10년쯤 뒤 1990년대 초에는 일본군 위안부 피해 여성의 증언이 처음으로 나왔으니.. 이런 식으로 옛날 역사의 증인들이 하나 둘 나타난 듯하다.

그러니 <말모이> 같은 소재의 영화가 좀 더 진지하게 역사 고증과 사실성을 추구한다면, 저런 사람의 회상으로 시작하는 액자식 구성을 하는 것도 충분히 가능했을 것이다. 그 대신, 그랬으면 또 월북한 빨갱이 학자를 미화한다는 색깔 논란에 휩싸였을지도 모르겠다. 아니면 이 극로는 깨끗이 잊고 최 현배를 대신 부각시키거나..

5. 그들은 왜 그렇게 사전 편찬에 목숨을 걸었는가

국어사전을 찾아보면 한국어에 이런 단어가 있었나 싶은 듣보잡 어휘가 의외로 많이 잠들어 있다. 가령, 미혼 해녀를 '비바리'라고 하고, 돌싱 여성을 '되모시'라고 한다.
한자어 합성이긴 하지만, 1/n 더치페이를 나타내는 '각추렴'이라는 말도 있다.

호칭과 높임법이 너무 불편해서 영어로 대화하는 거, 정말 어휘가 없어서 외래어 쓰는 것을 뭐라할 수는 없다. 그런 걸 어설프게 순화어 만드는 건 별 영양가가 없는 짓이다. 하지만 그러기 전에 당장 멀쩡하게 이미 있는 말부터 제대로 활용해야 하지 않겠는가? 안 쓰여서 사어가 됐다면 그걸 고유명사화해서 브랜드명으로 써먹는 방법도 있을 테고 말이다.

더구나 한국어는 체언보다 용언을, 형용사보다 부사를 훨씬 더 좋아하는 언어이지 않던가. 순우리말도 저런 지엽적인 명사보다는 동사 같은 용언을 더 많이 찾아서 살려 써야 된다.
본인의 오래된 생각이긴 하다만.. 영어로는 reliable이라고 한 단어로 간단하게 표현하는 걸 우리는 맨날 '믿을 만한, 신뢰할 수 있는'이라고 길게 풀어서 번역해야 한다면 몹시 불편하고 비경제적이다. 이런 예가 한두 개가 아니라 수백 수천 개로 늘어난다면 한국어의 사고 체계는 영어의 사고 체계와 비교했을 때 결코 편리하다고 볼 수 없게 된다.

그런데 그걸 '미덥다'라고 간단하게 표현할 수 있다면 아주 큰 도움이 된다. '믿음직하다'보다도 더 짧다. 한국어에 원래 그런 어휘가 있다는 증언을 바로 국어사전이 해야 한다.
비슷한 맥락에서 faithful에는 '신실하다'뿐만 아니라 '미쁘다'도 들어가 있어야 한다. throw는 그냥 '던지다'이지만, hurl에는 '내박치다'라는 뜻풀이가 실려 있어야 한다.

영일 사전을 그대로 베끼기만 해서는 진짜 우리말다운 표현이 반영된 영한 사전을 만들 수 없을 것이다. 국어 사전과의 적절한 연계가 필요하다. 그리고 이것이 한국어 최초의 사전이라 일컬어지는 조선어 학회 큰사전의 존재 의의였다.

6. Aftermath

이렇듯, 조선어 학회는 일제 시대에는 한글 맞춤법 통일안을 내놓고 사전 편찬 작업을 했다. 영화에서는 맞춤법이라기보다는 방언 수집· 분류와 표준어 제정처럼 묘사되었지만 말이다. 그래도 사전을 편찬하려면 실제로 저런 식으로 온갖 어휘들을 수집하기도 해야 했을 것이다.

사용자 삽입 이미지

해방 후에는 이 학회 출신의 학자들이 미군정 하에서 거의 즉시 한국어 교과서를 편찬하고 사전을 실제로 출간하는 과업까지 이뤘다.
한글 학회 큰사전 이후로 나중에는 신 기철· 신 용철이 편찬한 '새우리말 큰사전'도 민간 국어사전의 양대 산맥을 구성했다. 그러다가 2000년대부터는 국립 국어원의 '표준 국어 대사전'이 나오면서 민간에서 국어사전을 또 편찬할 일은 사실상 없어졌다.

그런데 이때는 대세가 이미 인터넷으로 기울고 있었던지라, 국가 기관에서 편찬한 국어사전조차도 초판 종이책이 많이 팔리지 않아 출판사가 적자를 봤다고 한다. 그 뒤로 사전이 수차례 개정되고 증보되었지만 종이책은 다시 나오지 않았다. 참 격세지감이다.

이상이다.
영화가 배경 말고 이야기의 주 뼈대가 거의 다 허구인 것은 아쉬운 점이다. 햄· 소시지 같은 가공육인 것을 처음부터 감안하고 먹긴 했지만, 성분 분포를 보니 싸구려 잡육과 밀가루가 너무 많이 들어간 것 같다.

그래도 맨날 뻔한 무장 항일 투쟁 말고 조선어 학회를 배경으로 한 영화가 나온 것은 나름 의미가 있다고 여겨진다. <아저씨>의 오 명규 사장과 <범죄도시>의 장 첸을 한데 만나니 반갑기도 했다.
국내에 있는 영화 소품용 1930년대 올드카 대여 업체들은 다 좌핸들 차량만 보유 중인가 보다. 그 시절 배경 드라마나 영화들을 봐도 다 그런 것 같다. 진짜 일제 시대에는 일본을 따라 다 좌측통행 우핸들이었을 텐데 말이다.

* 이 글은 한글 학회 홈페이지에 공식 기재된 학회 연혁을 상당수 참고하여 작성되었음을 밝힌다. 내 기억에만 의지해서 쓴 게 아니다.
아울러, 관심 있으신 분은 조선어 학회 사건의 전말에 대해 잘 소개해 놓은 다음 사이트의 자료도 추가로 참고하시기 바란다. #1 / #2

Posted by 사무엘

2019/01/19 08:33 2019/01/19 08:33
, , , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1577

1. 경인선 특급

작년(2017년) 7월 7일부터 경인선엔 일반적인 급행을 넘어 그거보다도 정차역이 적은 일명 '특급'이 운행되기 시작했다.
사실 경인선에는 지난 2010~2012년 사이에 일명 '급행A'라는 이름으로 역사상 최초로 특급의 전신이 잠시 운행되었다가 곧 없어진 적이 있는데, 그게 5년 남짓 만에 다시 부활한 것이다.

그때와 지금의 특급 정차역이 완전히 동일하지는 않다. 지금 매우 인상적인 것은 구로-용산 구간에서도 여러 역들을 건너뛰고 노량진· 신도림· 구로에만 정차한다는 것이다. 즉, 노량진과 신도림 사이의 대방· 신길· 영등포는 스킵이다.
그리고 기존 급행이 정차하는 역곡도 건너뛰어서 구로 다음의 정차역은 무려 부천이다.

물론 특급은 거의 1시간에 1대꼴로만 다니기 때문에 경부선 천안 급행에 준하는 간격이다. 그리고 이른 아침과 저녁에는 운행하지 않기 때문에 출퇴근 시간대에 이 열차를 탈 수는 없다는 게 아쉬운 점으로 느껴진다.
운행이 뜸한 전동차도 순위를 매기면 상위권은 얼추 이렇게 분류 가능할 것 같다.

  • 하루 다섯 손가락 안의 횟수: 서울-천안 급행 (하루 단 3회), 중앙선 지평 (하루 단 4회)
  • 1시간에 0.n대급: 광명 셔틀. 그리고 최근에 연장된 분당선 청량리-왕십리 구간 (평일 한정 하루 9회)
  • 1시간에 1대꼴: 경의선 신촌-지상 가좌, 용산-천안 급행, 광주 지하철 녹동
  • 1시간에 2~3대: 1호선 종점들 (신창, 소요산), 경의선 서강-지하 가좌, 중앙선 덕소 이후 용문까지

이거 다음으로는 1시간에 4~5대 꼴로 서울 7호선 장암, 서동탄, 경의중앙선 (경의선은 DMC 이북부터, 중앙선은 덕소까지), 경춘선, 1호선 천안 정도가 오를 듯하다.

2. 강남의 지하철역 배치

서울 강남의 삼성동 일대에 횡축으로 지하철들이 들어선 걸 보면 꽤 흥미롭다.

사용자 삽입 이미지

  • 가장 아래에 가장 먼저(1980년대) 생긴 2호선은 쿨하게 두 블록 간격으로(거의 1.3km!) 선릉과 삼성 역이 들어섰다.
  • 그 다음으로 생긴 7호선은 어정쩡한 거리의 구간에 굳이 역을 여러 개 만들지 않기 위해 청담 역을 엄청나게 길게 만드는 꼼수를 썼다. 그렇기 때문에 '청담역 사거리'라는 이름의 교차로는 존재하지 않는다.
  • 그 반면 가장 나중에 생긴 9호선은 중간에 역을 하나 더 만들었다. 코엑스에 가려면 당연히 삼성이라고 생각했는데 사실은 봉은사가 코엑스에서 더 가까워졌다.

위의 그림에는 나오지 않았지만 더 아래의 대치동· 개포동을 지나는 3호선과 분당선도 9호선처럼 각 블록마다 일일이 역을 다 만들었다. 3호선은 그렇다 치더라도 분당선은 광역전철인데도 도시철도 수준으로 역을 너무 많이 만들어서 비판받고 있음이 주지의 사실이다. 성북· 강북구에 비해서 강남구는 지하철역이 정말 많긴 하다.

그리고 봉은사는 원래 서울 도심과는 전혀 관계 없는 조용한 오지 언덕에 자리잡은 절이었는데.. 강남 지역 개발과 지하철 9호선 연장 개통 덕분에 초대박 난 사례임이 틀림없다.
분당선 구성 역 덕분에 초역세권이 된 옆의 전통사, 그리고 처음부터 서울 종로 한복판에 자리잡은 조계사 뺨치는 입지를 갖추게 됐다.

3. 지하철 소프트 환승 예외

현재 서울· 수도권의 대중교통 통합 요금제는 잘 알다시피 버스와 버스(같은 번호끼리는 제외), 버스와 지하철 간의 환승 할인(30분 이내)은 인정하지만 지하철과 지하철 간의 환승은 인정되지 않는다. 지하철에는 애초에 하드웨어적인 환승 통로가 있으니 카드를 찍을 필요 자체가 없으며, 굳이 별도의 조건부 환승 시스템을 도입할 필요가 없기 때문이다. 일반적으로는 말이다.

지하철 간의 환승 할인도 기술적으로 구현하려면 얼마든지 구현할 수 있다. 단지 할 필요가 없으며, 한번 예외를 만들었다간 형평성 차원에서 여기저기 다 열어 줘야 되기 때문에 그게 번거로우니 안 할 뿐이다.
물론 용산(1)-신용산(4) 같은 경우는 버스 한 정거장 거리도 안 되고 해 줬으면 싶기도 하다.

지금이야 환승 통로가 뚫렸으니 의미가 없어졌지만.. 옛날에는 지상 청량리(지금의 경의· 중앙선)와 지하 청량리(1)도 서로 별개의 역이었으며 환승이 안 됐었다. 사람이 승차권을 일일이 개표하던 시절에는 승차권에다 특수한 표시를 해서 두 청량리 간에 상호 소프트 환승이 가능하게 유도리를 봐 줬을 정도였다. 자동차로 치면 외곽순환 고속도로의 청계 TG 영수증을 제시할 경우, 경부 고속도로의 판교 TG에서는 통행료 추가 징수를 하지 않는 것처럼 말이다. (하이패스가 있으면 이런 거 다 자동으로 처리됨)

아무튼, 지금도 우리나라 전철에서 지하철의 환승은 무조건 전용 통로를 이용하는 것만이 원칙인데, 여건상 전용 통로가 갖춰지지 못했을 때에만 극히 제한적으로 소프트/간접 환승 예외를 인정한다. 그래서 노량진 역이 1호선과 9호선 환승 통로가 없던 시절에 지하철 간 환승 할인이 인정되었으며, 현재는 유일하게 경의선 서울 역과 타 노선 간의 환승만이 예외로 남아 있다. 공항 철도도 전용 환승 통로가 뚫린 뒤부터는 간접 환승이 막혔다.

옛날에 노량진과 서울 역 딱 둘밖에 없었는지 기억이 가물가물하다만...
지금은 카드를 찍고 나갔다가 5분 안으로 그 동일한 게이트로 다시 들어갈 때는, 환승 횟수가 1회 차감되지만 기본 요금 재부과는 없는 유도리도 추가되었다.
글쎄, 없는 것보다는 나은지 모르겠지만, 이것만으로는 반대편 승강장 횡단을 할 수 있는 것도 아니고 실생활에서는 거의 무용지물이다. 화장실 다녀오는 것 정도만 가능하고 그나마도 남자 소변 한정일 것이다. 서울 지하철이 지하철을 카드 찍고 나갔다가 그대로 다시 들어가는 쪽은 정책이 엄격한 편이다.

4. 중복 구간과 연속 환승역

수도권 광역전철과 지하철에서 둘 이상의 노선이 나란히 지나면서 환승역도 연달아 만드는 예를 정리하면 다음과 같다.

  • 청량리-회기 (1 vs 중앙): 지상/지하 청량리, 국철/지하철 청량리 등으로 구분하다가 2010년에부터 정식 환승 통로가 생겼다. 물론 청량리는 환승 거리가 회기보다 훨씬 더 길다.
  • 상봉-망우 (중앙 vs 경춘): 역간거리가 좀 짧긴 하다. 상봉은 그나마 두 노선의 승강장이 가까이 붙은 편이지만 망우는 선로 수가 매우 많고 전철 승강장이 양 끝에 있어서 환승 거리가 길다.
  • 동대문역사문화-을지로4가 (2 vs 5): 얘는 5호선이 꼬깃꼬깃 굴곡져 있기 때문에 둘 다 평행이 아니라 수직 교차한다는 점이 흥미롭다.
  • 신용산-서울역 (1 vs 4): 4호선이 미군 기지를 피해서 만들어지느라 1호선과의 어설픈 중복 구간을 형성했다. 그래도 1호선의 수요를 분산하는 역할을 잘 수행하고 있다.
  • 효창공원-공덕 (6 vs 경의): 옛 용산선 구간을 따라 경의선과 공항 철도가 복층 형태로 만들어졌는데, 여기는 지하철 6호선조차도 동일 노선을 그대로 따라가니 무려 3중복이다. 그래도 공항철도는 급행을 표방하느라 효창공원 역엔 서지 않는다.
  • 수색-DMC: 원래 경의선 수색 역이 먼저 있었는데 거기서 어중간하게 떨어진 곳에 지하철 6호선이 또 수색이라는 이름의 역을 독자적으로 만들었다. 마치 경의선 신촌과 2호선 신촌처럼 말이다. 그런데 경의선까지 수도권 전철로 들어오면서 지하철 수색은 DMC로 이름이 바뀌고, 기존 수색도 역이 유지되면서 굉장히 가까운 중복역이 생겨 버렸다.

5. 서울 지하철의 선형과 연장 가능성

서울 지하철 중 순환선이거나(2호선) 이미 광역전철들과 얽힐 대로 얽힌 다른 1기 지하철들을 제치고 5호선 이후부터 살펴보면..
5호선은 Y자 분기 굴곡(배차간격 너무 길어짐)에다 강북 도심에서도 1· 2호선과 차별화하기 위한 온갖 굴곡으로 가득하다. 6호선도 은평구와 용산구의 지하철 소외 지역을 일부러 들쑤시느라 굴곡이 심하며, 서쪽 끝은 아예 단선 루프로 매듭 지어져 있다(매듭을 역행하기가 매우 불편)
8호선은 남쪽의 성남 구시가지를 경유하느라 선형이 분당선에 비해 좋지 못하다.

그나마 선형이 전반적으로 곧은 축에 드는 지하철은 7호선과 9호선이다. 얘들은 정말 잘 만들었고 승객들이 터져난다. 특히 7호선의 경우 인천 서쪽 끝까지 계속해서 연장 떡밥이 나돌고 있을 정도이다.
다만, 이렇게 서쪽으로 잘 나가고 있는 7호선과 달리, 9호선은 서쪽 연장 없이 김포시와의 연계는 별개의 김포 경전철로 귀착된 것이 아쉽다면 아쉬운 점이다. 9호선은 공항 철도와의 직통 운행은 어째 성사되려나 모르겠다. 직· 교류 겸용 차량이 필요할 텐데..

그리고 노선이 굴곡졌다 해도 5호선은 상일동 지선이 하남시로 연장되고 있고, 8호선도 암사 이북이 구리시로 연장 중이다. 8호선은 복정-산성 사이라든가 모란 종점 근처에 역을 하나 더 만들 생각도 있는 모양이다.

Posted by 사무엘

2019/01/16 08:34 2019/01/16 08:34
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1576

오늘은 Windows라는 운영체제가 GUI 프로그래밍 용도로 제공하는 공용 컨트롤들 중의 하나인 리스트뷰(List-view) 컨트롤에 대해 자세히 알아보도록 하겠다. (이름에서 '뷰'는 종종 생략되기도 함)
결론부터 말하자면 얘는 정말 세심하게 설계된 다재다능한 요물이다. 동일한 규격을 가진 다수의 아이템들, 특히 그림과 글자가 같이 가미된 아이템을 표시하는 모든 방식과 가능성을 고려해서 만들어졌다. 그래서 정말 많은 기능들을 제공한다.

리스트뷰가 기존의 재래식 초간단 리스트박스와 다른 점은 다음과 같다.

  • 리스트뷰는 글자뿐만 아니라 곁들여진 그림도 태생적으로 같이 처리 가능하다. 리스트박스에서는 그림과 글자를 같이 표시하기 위해서 얄짤없이 owner-draw로 가야 했다.
  • 마우스의 동작이 다르다. 리스트박스는 내부를 왼쪽 버튼으로 아이템을 선택해서 드래그 하면 선택막대가 자동으로 쭉 바뀌며 스크롤도 된다. 하지만 리스트뷰는 그렇지 않다.
  • 키보드의 동작도 다르다. 아이템을 복수 선택할 때 리스트뷰는 Ctrl+화살표를 눌러서 포커스만 이동시키고 Ctrl+Space로 선택을 하지만 리스트박스는 Shift+F8과 space 같은 다른 글쇠를 사용한다. 리스트뷰는 F2를 눌러서 아이템의 이름을 바꾸는 기능도 있지만 리스트박스는 그렇지 않다.

아울러, 리스트뷰가 같이 추가된 공용 컨트롤인 트리뷰(Tree-view) 컨트롤과 다른 점은 다음과 같다.

  • 트리는 아이템 하나를 HTREEITEM이라는 별도의 자료형으로 식별하지만, 리스트는 그냥 인덱스 번호이다. 트리는 노드 포인터 기반의 이산적인 컨테이너를 쓰지만, 리스트는 내부적으로 배열과 유사한 컨테이너를 쓰는 듯하다.
  • 리스트는 아이템의 복수 선택이 가능하지만 트리는 그렇지 않다.
  • 트리는 리스트와 같은 다양한 view 모드가 존재하지 않는다.
  • 아이템의 텍스트를 진하게 표시하는 state 플래그가 트리에는 있지만 리스트에는 없다.

리스트박스와 위상이 비슷한 자매 컨트롤(?)은 콤보박스이다. 하지만 리스트뷰와 위상이 비슷한 자매 컨트롤은 트리뷰라고 할 수 있다.
왼쪽에 트리뷰, 오른쪽에 리스트뷰를 배치한 프로그램으로는 탐색기, 레지스트리 편집기, 시스템 정보 등 의외로 꽤 많다. 왼쪽에서 카테고리를 선택하면 오른쪽에서 세부 정보가 표시되는 것이다. 오죽했으면 Visual C++의 MFC 프로젝트 마법사에도 요런 형태의 프로그램을 만드는 템플릿이 제공될 정도이다.

옛날에는 리스트박스를 서브클래싱 해서 drag & drop을 구현하고, owner-draw와 item data를 이용해서 얼추 트리 계층 구조라든가 check list를 구현하고, 파일이나 디렉터리나 드라이브 목록을 채워 주는 리스트를 만드는 등.. 별별 짓을 다 했다. 그리고 Visual Basic 부류의 RAD 툴들은 그걸 미리 구현해 놓은 리스트를 컴포넌트 형태로 제공했었다. 하지만 리스트뷰와 트리뷰 공용 컨트롤이 등장하면서 리스트박스의 역할이 상당수 분담되었다.

Windows 탐색기의 보기 메뉴에서 보는 바와 같이 리스트뷰 컨트롤에는 다양한 보기 모드가 있다.

(1) 큰 아이콘
아이콘이 중심이고 이를 설명하는 주 텍스트가 아이콘의 하단 중앙에 찍힌다. 이걸로 끝. 아이콘의 크기는 무엇이 되어도 상관없지만 보통은 표준 아이콘 크기인 32*32 또는 그보다 약간 더 큰 48*48이 쓰인다.
탐색기에서 확대 배율 조정이 되는 대부분의 모드들은 이 모드에 속한다. 아이콘의 크기만 바꾸는 거니까.. (보통 아이콘, 큰 아이콘, 아주 큰 아이콘..) 또한 당장 바탕 화면에 표시된 아이콘들도 다 리스트뷰의 이 모드인 것을 알 수 있다.

사용자 삽입 이미지

(2) 작은 아이콘
글자의 크기와 대등한 크기인 작은 아이콘이 쓰이며, 아이콘의 아래가 아니라 오른쪽에 주 텍스트가 나란히 찍힌다.

사용자 삽입 이미지

(3) 목록
아이템 하나가 표시된 모습이 작은 아이콘 모드와 완전히 동일하다. 그렇기 때문에 '작은 아이콘'과 차이가 무엇인지 언뜻 봐서는 구분하기 어렵다. 하지만 작은 아이콘(+ 큰 아이콘도 포함)에서는, 아이템을 드래그 해서 화면의 아무 위치로나 옮길 수가 있는 반면, 목록 모드는 그렇지 않다. i째 아이템은 현재의 스크롤 위치 기준으로 반드시 그에 상응하는 위치에 있어야 하며, 아무 위치로나 옮길 수 없다.

사용자 삽입 이미지

(4) 자세히(일명 report view)
한 줄에 아이템이 오로지 하나만 찍힌다. 작은 아이콘, 주 텍스트, 그 다음으로 n개의 부 텍스트가 마치 표처럼 일목요연하게 표시된다. 즉, 이 모드는 부 텍스트를 표 형태로 모두 볼 수 있는 유일한 모드이며, 상단에 헤더 컨트롤이 등장해서 쓰이는 유일한 모드이기도 하다.

사용자 삽입 이미지

사실, 헤더 컨트롤만 별도로 따로 생성할 수도 있다. 얘만으로도 각종 메시지 스펙이 공개돼 있는 별개의 공용 컨트롤이기 때문이다.
하지만 우리가 아주 특수한 사연이 있어서 리스트뷰 컨트롤 같은 거창한 물건을 직접 자체 구현이라도 하지 않는 한, 헤더만 끄집어내서 사용할 일은 별로 없을 것 같다.

지금까지 소개한 4종류의 모드를 정리하자면, 아이콘 모드들은 align을 어찌 하느냐에 따라서 상하와 좌우 스크롤바를 모두 볼 수 있고, '목록' 모드는 좌우 스크롤바만 볼 수 있다.
'자세히' 모드는 개수가 초과될 때는 상하 스크롤바이고, 아이템을 표시하는 폭이 초과됐을 때만 좌우 스크롤바를 볼 수 있다.

그리고 아이콘 모드는 기존 리스트박스에는 전혀 없던 새로운 기능이며, 기존 리스트박스와 가장 비슷한 모드는 '자세히' 내지 '목록' 모드라는 것을 알 수 있다. 이 두 모드에서는 아이콘은 필수가 아닌 그냥 선택, 옵션이다. 기존 리스트박스처럼 그림 없이 글자를 출력하는 용도로만 써도 된다.

이들에 비해 '작은 아이콘' 모드는 정체성이 불분명해서 사실 잘 쓰이지 않는다. 아이콘을 강조하고 싶으면 '큰 아이콘'으로 가면 되고, 좀 더 예쁘게 일목요연하게 아이템들을 출력하려면 '목록'(간단히) 또는 '자세히'로 가면 되기 때문이다. 저 그림에서도 보다시피 작은 아이콘은 폭이 들쭉날쭉이어서 보기에도 별로 좋지 않다.

그래서 Windows XP에서는 제5의 새로운 모드가 추가됐다. 바로..

(5) 타일
큰 아이콘을 사용하는데, 주 텍스트는 아이콘의 아래가 아닌 오른쪽에 출력된다.
아이콘이 좀 큰 편이니 주 텍스트의 아래에도 여유 공간이 생기는데, 거기에는 부 텍스트 중에서 사용자가 지정한 것을 덤으로 출력해 준다.

사용자 삽입 이미지

이것도 굉장히 참신한 발상인 것 같다. 타일의 폭은 사용자가 임의로 지정 가능하다.
align은 아이콘 모드처럼 left와 top을 모두 지정 가능하다. 다만, 아이템들의 위치까지 아이콘 모드처럼 임의 지정 가능한지는 잘 모르겠다.

원래 리스트뷰 컨트롤의 보기 모드는 4종류이다 보니.. 윈도우 스타일에서 0부터 3까지 딱 2개의 최하위 비트를 사용하여 지정하게 돼 있었다.
컨트롤을 생성하고 아이템들을 잔뜩 추가한 뒤에도 모드를 변경할 수 있었다. SetWindowLongPtr을 이용해서 스타일 값을 변경하면 컨트롤이 이를 인식해서 모드를 변경했다.

그런데 제5의 모드는 이런 식으로 지정할 수 없게 됐다. 리스트뷰 컨트롤은 기능이 워낙 너무 많아서 스타일, 확장 스타일, 거기에다 자신만의 고유한 전용 확장 스타일까지(LVM_SETEXTENDEDLISTVIEWSTYLE) 비트 플래그들이 꽉 찼기 때문이다.
결국은 LVM_SETVIEW라고 보기 모드를 지정하는 전용 메시지가 추가됐다. 새로운 보기 모드를 겨우 하나 추가하기 위해서였다.

네이버나 다음의 블로그들만 들어가 봐도 제목 목록만 표시, 본문까지 약간 포함해서 타일 형태로 표시.. 처럼 적어도 두세 종류의 보기 모드가 있는 걸 알 수 있다. 리스트뷰도 그런 식으로 그림과 글자의 표시 비율, 아이템당 전체 크기 같은 다양한 변수를 이런 식으로 제어할 수 있다고 생각하면 된다.
아이콘이 들어갈 자리에 사람 얼굴이 들어가면 무슨 인사기록표나 선거 후보 목록을 출력할 수 있을 것이고, 한자가 들어가면 옥편· 자전 내용을 이런 식으로 출력할 수 있을 것이다.

그럼 이제부터는 리스트뷰 컨트롤의 주요 개념이나 기능에 대해서 분야별로 간단히 소개한 뒤 글을 맺도록 하겠다.

1. image list

리스트와 트리 컨트롤은 아이템들 옆에 출력할 다양한 종류의 아이콘 그림들을 한데 관리하기 위해서 무슨 HICON을 몇백 개 내부적으로 관리..하는 건 아니고 image list라는 자료 구조를 공통으로 사용한다. image list는 마치 애니메이션 프레임처럼 크기가 동일한 여러 그림들의 배열이라고 생각하면 되며, 아이콘 핸들도 물론 손쉽게 등록할 수 있다. 투명색은 이미지 내부의 특정 배경색 또는 별도의 마스크 비트맵 중 편한 것으로 지정 가능하다.

또한 트리에서는 작은 아이콘이라는 한 종류만 사용하지만, 리스트 컨트롤에서는 구조적으로 큰 아이콘, 작은 아이콘 두 종류를 나눠서 지정 가능하다.
그리고 한 아이템의 아이콘에 대해서 여러 종류의 이미지를 한데 겹쳐서(overlay) 지정할 수도 있다. 파일이라면 '바로가기'임을 나타내는 자그마한 화살표라든가, 버전 관리 시스템에서 Up-to-date, modified 같은 상태를 나타내는 자그마한 modifier 그림이 바로 아이콘 overlay를 이용해서 표시된 것이다.

2. 그룹 분류

Windows XP에서는 타일 모드에 이어 리스트뷰 컨트롤에 아주 획기적인 기능이 하나 추가됐는데, 바로 '그룹' 기능이다. 필요하다면 그룹 내지 카테고리라는 것을 등록해 놓은 뒤, 아이템들별로 소속 그룹을 지정하면 이것들이 그룹별로 분류되어 딱 일목요연하게 표시된다.

사용자 삽입 이미지

그룹이 처음으로 도입된 XP에서는 이것 말고 다른 기능은 없다. Vista에서는 그룹에 대해 [+], [-] 버튼을 눌러서 마치 트리 컨트롤처럼 collapse/expand이 되게 하는 기능이 추가되었다. 단, 응용 프로그램에서 그게 가능하도록 별도의 비트 플래그를 넣은 그룹에 대해서만 그렇게 동작한다.
그룹은 다른 보기 모드에서는 다 지원되고 '목록' 모드만 열외이다.

3. 수많은 기능과 복잡한 API

리스트뷰 컨트롤은 당장 마소에서도 적극 사용하고 있다 보니, 자기 필요에 따라서 이것저것 수많은 기능들이 추가돼 왔다.
특히 IE4 시절에는 Active 데스크톱이니 뭐니 하면서 뭐든지 웹페이지처럼 보이게 하는 게 유행이었다. 리스트뷰 컨트롤의 아이템을 클릭하는 것조차 밑줄 쳐진 링크를 클릭하는 것과 비슷하게 보이게 하는 옵션은.. 음~ 정말 비장함이 느껴진다.

리스트뷰는 기능이 너무 많고, 공용 컨트롤 특유의 그 조작감까지 더해져서 다루기가 귀찮고 까다롭다. 리스트박스처럼 간단하게 LB_ADDSTRING + "문자열" 한 방으로 아이템을 추가할 수 없다. 뭘 더하고 고치려면 기본적으로 LVITEM 구조체 선언하고 마스크 플래그 지정하고..

더구나 문자열 부분 멤버는 읽기 쓰기 겸용으로 모두 쓰인다. Set 용도로 읽기 전용 문자열 포인터를 집어넣으려 해도 부득이하게 PTSTR 멤버에다가 const_cast를 해 줘야 된다. PTSTR과 PCTSTR을 공용체로라도 좀 같이 넣어 주지 하는 아쉬운 생각이 든다.

그리고 아이템 drag & drop은 컨트롤에서 우리에게 이벤트만 날려 주고 그걸로 끝이다. 드래그용 이미지를 생성하고 마우스 포인터 모양을 바꾸고 실제로 drop 처리를 하는 것, 아이콘 모드의 경우 실제 위치를 변경하는 LVM_SETITEMPOSITION 요청 따위는... 머리부터 발끝까지 사용자가 전부 일일이 구현해야 한다. 이거 일이 여간 번거로운 게 아니다.

헤더 클릭 정렬도 마찬가지다. 컨트롤이 자동으로 해 주지 않는다. 클릭된 헤더에 대해서 오름차순/내림차순/무정렬 상태를 나타내는 ▲▼ 모양을 표시하는 것, 다른 헤더에 있던 마크는 제거하는 것까지 전부 미주알고주알 우리가 해 줘야 되며, 아이템 비교 함수도 우리가 공급해 줘야 한다.
좋게 말하면 customize의 폭이 큰 것이고 나쁘게 말하면.. 귀찮다. 물론 재래식 리스트박스는 한번 등록된 아이템은 텍스트를 고치거나 순서를 변경하는 기능 자체가 전무했으니 그것보다는 상황이 나아진 셈이다.

4. 시스템 색상 변경

어떤 윈도우가 WM_PAINT를 받아서 자기 내용을 그릴 때, 매번 GetSysColor나 GetSysColorBrush를 호출하고, 매번 색깔을 새로 지정하고 펜과 브러시를 새로 생성한다면.. 시스템 색상이 나중에 달라지더라도 별 상관 없다.
하지만 성능을 위해서 이런 GDI 개체를 보관해 놓는다거나, 특정 시스템 색상이 합성된 상태로 비트맵 같은 걸 저장하고 있다면(일종의 캐싱).. 그것들은 시스템 색상이 바뀌었을 때 갱신되어야 한다.

이 상태를 알리는 메시지가 바로 WM_SYSCOLORCHANGE이다. 이제는 macOS조차도 최신 10.14 '모하비'에서 Dark 테마가 추가되었으니 시스템 색상 변경과 비슷한 개념이 도입된 셈이다. Windows는 다른 색깔 테마들은 다 없어졌지만 고대비 블랙/화이트만이 특수한 용도로 남아 있다.

WM_SYSCOLORCHANGE는 top-level 윈도우들에게 전파된다. 차일드에 속하는 리스트뷰 컨트롤이 이 메시지를 직접 받지는 못한다. 아이콘을 사용하지 않을 때는 별 문제가 없는데, 아이콘을 사용하는 컨트롤에 대해서 이 메시지를 수동으로 전해 줘야 한다. 그리하지 않으면 화면 배경의 흑백이 바뀌어도 쟤는 그게 반영되지 않아서 색깔 배색이 어색해지더라.

색깔 변경 통지도 마치 클립보드의 내용 변경 통지처럼 원하는 윈도우가 신청하면 top/bottom 위상을 불문하고 직통으로 받을 수 있어야 하지 않나 싶다. 이렇게 부모 윈도우가 일일이 전해 줘야 하는 건 디자인상 문제가 있어 보인다.

5. Ctrl+휠 인식

리스트뷰 컨트롤 내부에서 마우스 휠이 굴러갔다면 그렇다면 창 내부를 스크롤 하면 된다. 즉, 자체적으로 처리하면 되고 굳이 부모 윈도우에게 알려 줄 필요가 없다.
하지만 Ctrl+휠은 화면 확대 배율을 변경하는 용도로 쓰이는 게 요즘 추세이다. 응용 프로그램마다 자기가 사용하는 리스트뷰에서 지원하고자 하는 모드가 다를 테니, 이를 운영체제에서 임의로 일괄적으로 자동 지원할 수는 없다.

결국 Ctrl+휠은 그냥 휠과는 달리 부모 윈도우로 통지해 주는 게 바람직해 보인다. 하지만 이와 관련된 event notification은 공식적으로 존재하지 않는다. 탐색기는 Ctrl+휠을 어떻게 구현했는지가 궁금해진다. 하긴, 탐색기는 리스트뷰 컨트롤도 워낙 많이 마개조했으니 윈도우 프로시저를 서브클래싱 해서 메시지 전체를 통째로 가로채 버렸다면 그 정도 구현쯤은 일도 아니긴 했을 것이다.

6. 체크리스트 모드에서의 버그

리스트뷰 컨트롤(그리고 트리 컨트롤도)에는 모든 항목들에 대해 체크박스를 넣는 옵션이 있다.
보통은 아이콘 자리에다가 체크박스 이미지를 집어넣는 꼼수를 동원해서 야메로 체크리스트 모드를 구현하는 편인데.. 이 옵션은 이미지와 별개로 체크박스를 또 표시해 준다.

이 기능은 공용 컨트롤이 처음 개발되던 때부터 있었던 건 아니고 Windows 98 + IE4 내지 5 타이밍 때 추가되었다. 이 기능이 처음부터 지원됐다면 리스트뷰 컨트롤의 Selection model이라는 속성 하에서 "단일 선택 / 체크박스 / 복수 선택" 중의 한 옵션으로 지원되는 게 바람직했을 것이다. 체크박스 모드에서 또 복수 선택을 사용할 일은 없을 테니까 말이다.

그리고 체크리스트 모드는 그 정의상 보기 모드들 중에서는 '목록' 모드와 가장 잘 어울리고 아니면 기껏해야 '자세히' 모드와도 추가로 어울린다. 큰 아이콘이 부각되는 모드와는 아무래도 영 어울리지 않는데, 그래도 원한다면 그 모드에서도 체크리스트를 사용할 수는 있다.
다만, 이 모드에서 키보드나 마우스로 체크 표시를 반복하면 선택막대가 갈수록 진해지는데.. 이건 명백히 버그로 보인다. 고전 테마나 XP~7 같은 구버전에서는 이런 현상이 없었고 Windows 8~10에서만 저런다!

사용자 삽입 이미지


Posted by 사무엘

2019/01/13 08:36 2019/01/13 08:36
, ,
Response
No Trackback , 3 Comments
RSS :
http://moogi.new21.org/tc/rss/response/1575

1. ? :에서 피연산자의 타입 동기화 방식

C/C++에서 포인터는 컴퓨터가 내부적으로 메모리를 다루는 메커니즘을 아무 보정 오버헤드 없이 쌩으로 노출하고 관리를 프로그래머에게 전적으로 맡기는 물건이다. 그러니 강력한 대신 매우 위험하기도 하며, 사용자의 실수가 들어가기 쉽다.

이런 한계를 극복하기 위해 C++에는 생성자와 소멸자, 템플릿, 연산자 오버로딩을 적극 활용하여 다양한 형태로 포인터를 컴파일 시점에서 자동 관리해 주는 클래스가 존재한다. 소멸자에서 자신에 대한 delete 내지 Release를 자동으로 클래스가 있으면 한결 편할 것이다. 대입도 기존 오브젝트가 없어지고 다른 걸로 대체되는 거나 마찬가지이니, 레퍼런스 카운팅 관리 같은 걸 해 주고 말이다.

함수가 실행이 실패해서 도중에 return을 해야 하는데 지금까지 할당했던 자원(메모리, 파일)들을 반환은 해야 하니.. 부득이하게 goto문을 쓰느라 코드가 지저분해지는 거 공감하실 것이다. 이런 간단한 것 하나만 생각해도 C++이 C에 비해 코딩을 얼마나 더 편리하게 해 주는지 알 수 있다.

본인은 날포인터를 써서 만들어졌던 옛날 코드를 그런 wrapper 클래스 형태로 리팩터링 했다. 가령, FOO *p = .... p->Release() 하던 것을 CAutoPtr<FOO> p 하나로 대체하는 식이다. 자원을 수동으로 해제하는 코드를 최대한 줄였다.

그런데 하루는 큰 문제 없이 이렇게 고쳐지고 컴파일 됐던 프로그램이 도저히 이해되지 않는 부분에서 뻗는 걸 발견했다.
한참을 디버깅한 끝에 알고 보니... 문제는 A ? B: C 연산자 안이었다. 원래 B와 C 모두 FOO* 타입인데, B만 CAutoPtr<FOO>로 바뀌었던 것이다. 다른쪽 C는 구조체의 멤버이다 보니 타입을 고칠 수 없었고 말이다.

내가 의도한 건 B가 operator FOO*()를 통해 FOO*로 암묵적으로 형변환되는 것이었다. 이 ? : 식은 함수의 인자로 전달되는 문맥에서 쓰였으며, 이 인자의 타입도 그냥 FOO*였다.
그러나 이때 B와 C의 타입을 동기화하기 위해 컴파일러가 한 일은.. CAutoPtr<FOO>(C), 다시 말해 C를 CAutoPtr로 승격시키고 임시 객체를 생성하는 것이었다. 그러고 나서는 그 CAutoPtr에 대해서 역으로 operator FOO*()를 호출하여 리턴값을 함수에다 전달했다.

이 클래스는 생성자에서는 딱히 하는 일 없이 인자로 주어진 메모리 주소를 대입만 하고, 소멸자에서 그 주소가 가리키는 영역을 해제했다.
그러니 임시 객체는 소멸자에서 멀쩡한 메모리를 예기치 않게 해제했으며, 이 부작용 때문에 프로그램이 죽은 것이었다. 아하, 이런 내막이 있었다니... 무릎을 쳤다.

그런데 이 문제를 깔끔하게 해결할 방법은 없는지 본인의 C++ 지식 범위에서는 답이 떠오르지 않는다. 이때는 부득이하게, B에다가 static_cast, (FOO*), operator FOO*() 같은 명시적 형변환을 지저분하게 집어넣어 줘야만 하는 걸까? (리팩터링 전에 날포인터만 쓰던 시절에는 할 필요 없던..)

아니면 CAutoPtr의 생성자를 어째 잘 만들어서 저런 형변환을 허용하지 않고 최소한 에러로 처리시킬 방법이라도 없나 궁금하다. 암시적인 R-value 임시 객체가 생기는 것만 금지하고 막으면 될 거 같은데..??
explicit을 지정하는 것만으로는 충분치 않고, 복사 생성자나 R-value 생성자 같은 걸 어설프게 건드리면 정상적인 객체 생성에 대해서도 에러가 발생하게 되더라.

FOO*를 받아들이는 상황에서도 컴파일러가 B와 C를 모두 일단 클래스로 만든 뒤에 다시 operator FOO*를 호출하는 것은 일종의 언어 차원에서의 디자인 원칙인 것 같다. C++이 함수 오버로딩도 인자의 개수와 타입만으로 판단하지, 리턴값의 타입은 전혀 감안하지 않는 것처럼 말이다. 일을 단순하게 만들기 위해 수식 내부의 토큰을 해석하는 데 수식 바깥 전체의 타입을 굳이 고려하지는 않기로 한 듯하다.

또한, template<T> void Foo(T, T) 이런 함수를 선언한 뒤, 템플릿 인자 없이 함수의 두 인자에다가 CAutoPtr<FOO>와 FOO*를 집어넣는 것은 통하지 않더라. 컴파일러가 어설프게 타입 유추와 동기화를 시도하지 않고 깔끔하게 에러를 내뱉었다. Foo<FOO*> 이렇게 T가 무엇인지를 명시적으로 써 줘야 했다. ? :와는 다른 동작으로 보인다.

? : 연산자에 대해서 본인은 먼 옛날에 대입 연산과 관련된 파싱 방식이 이해되지 않는 게 있어서 글을 쓴 적이 있는데.. 이번엔 다른 분야에서 알쏭달쏭한 게 생겼다. 흥미롭다.

A ? B:C에서 둘 중 하나가 기반 클래스이고 다른 하나가 파생 클래스라면, 이 수식의 결과값이 지칭하는 타입은 B와 C 어느 것이 걸리건 무관하게 당연히 더 범용적인 기반 클래스로 결정된다. 그런데 이것도 다중· 가상 상속이 개입하면 굉장히 골치아픈 문제가 될 것 같다. 파생 클래스가 자신의 실질적인 기반 클래스로 돌아가는 게 trivial한 일이 아니게 되기 때문이다.

2. 클래스 static 멤버 함수에서 non-static 멤버의 sizeof 구하기

C++에서 클래스의 static 멤버 함수는 그 정의상 this 포인터를 갖고 있지 않다. 명칭의 scope resolution만 빼면 기술적으로 일반 global 함수와 전혀 다를 바 없다. 그렇기 때문에 이런 함수의 내부에서 클래스의 non-static 멤버는 당연히 참조할 수 없다.

그런데 sizeof 연산자는 어떨까? 얘는 런타임 때의 메모리 값을 전혀 참조하지 않고, 컴파일 타임 때 결정되는 타입만을 기반으로 답을 구해 주는 답정너 연산자이다. 그러니 this 같은 게 전혀 필요하지 않다. 그럼에도 불구하고 아래의 코드는 옛날 컴파일러에서는 에러가 발생하며 컴파일 되지 않는다. (VC++ 기준 C2070 Illegal sizeof operand)

class Sample {
    int MEMB[4]; //일반 타입이건 배열이건 포인터건 모두 무관
public:
    static void Talk() {
        printf("%d\n", sizeof(MEMB));
    }
};

저 안에서 MEMB의 크기를 어떻게든 구하려면?
sizeof( ((Sample*)NULL)->MEMB) 라고 써 줘야 했다. 마치 구조체 내부에서 특정 멤버의 오프셋을 구할 때처럼.. Sample의 포인터를 야메로라도 만들어야 한 것이다.
sizeof의 피연산자는 실제로 실행되지는 않으니 저런다고 프로그램이 뻗지는 않는다. 하지만 미관상 깔끔하지 못하고 부자연스러운 건 어쩔 수 없다.

그런데 2015쯤 Visual C++ 후대 버전에는 sizeof(MEMB)라고 직통으로 요청하는 게 가능해졌다. 그래, sizeof 정도는 static 함수에서라도 non-static 멤버를 피연산자로 삼을 수 있는 게 이치에 맞다.
클래스 밖에서 sizeof(Sample::MEMB)라고 요청해도 된다. 다만, 위의 코드에서는 MEMB가 비공개 멤버이기 때문에 클래스 밖에서는 컴파일 에러가 나게 된다.

흥미로운 점은, VC++ 2010/2012의 경우 빌드용 메인 컴파일러와 인텔리센스용 컴파일러의 동작이 서로 다르다는 것이다.
전자는 저 문법을 지원하지 않고 에러 처리하지만, 인텔리센스 컴파일러는 그걸 인식하는지 코드에 빨간줄을 긋지 않는다. 두 말할 나위 없이 마소에서 자기 컴파일러를 C++ 표준 내지 인텔리센스용 EDG 컴파일러의 동작을 참고하여 추후에 개선한 셈이다.

3. 멤버 함수를 가리키는 템플릿 인자

수 년 전에 본인은 템플릿 인자에 단순 함수 포인터나 functor가 아니라 C++ 멤버 함수도 들어갈 수 있는 걸 발견하고 이게 신기하다고 글을 올린 적이 있다. (☞ 관련 링크)

요약하자면 template<typename T> class Foo에다가는 멤버 변수처럼 T bar를 선언한 뒤,
Foo<int(PCSTR)> f를 선언하고 template<> int Foo<int(PCSTR)>::Bar(PCSTR p) 라고 specialize된 함수 몸체를 정의하면 된다. 그러면 n = f.Bar("kekeke")를 할 수 있다.

그런데.. 이건 역시 너무 사기적이고 사악했는지.. 후대의 컴파일러에서는 지원이 끊기고 봉인됐다.
Visual C++의 경우 딱 2010까지만 지원되며, 2012부터는 C2207 a member of a class template cannot acquire a function type 에러와 함께 컴파일이 거부된다.

그리고 사실은 2010도 인텔리센스 컴파일러는 마소 컴파일러보다 시대를 앞서 갔는지, 이걸 에러로 처리하고 있었다. 단지, 에러가 발생하는 지점이 서로 다르다.
인텔리센스는 template<> int Foo<int (PCSTR)>::bar(PCSTR s) 요렇게 멤버 함수 몸체를 정의하는 부분에서 에러를 찍지만 VC++ 후대 컴파일러는 Foo<int(PCSTR)> obj; 이렇게 템플릿을 찍어내는 과정에서 에러를 찍더라.

템플릿의 인자가 :: 연산자와 함께 다른 명칭의 일부로 들어갔을 때, 그 전체 명칭이 타입명인지 변수명인지가 오락가락 한다는 이유로 typename이라는 키워드가 도입됐다.
그것처럼 템플릿 인자가 non-static한 멤버의 변수가 될 수도 있고 함수도 될 수 있는 건 무질서도가 너무 크긴 하다. static 멤버라면 함수라도 단순 포인터로 간편하게 취급할 수 있지만 non-static 멤버 함수는 그렇지 않으니까..

그러면 저 문법은 완전히 사용 금지됐는지, 아니면 멤버 함수를 템플릿 인자로 전하는 다른 방법이 있는지 그건 잘 모르겠다. 일단 멤버 포인터라는 물건 자체가 워낙 무시무시한 놈이어서 말이다.

4. friend 키워드의 클래스 명칭 인식 방식

어떤 헤더 파일 내부에.. global scope에서 class A가 먼저 선언되었다. 그 다음으로 namespace에 소속된 클래스 B가 선언되었고, B는 내부에서 class A를 friend로 선언했다 (friend class A).
Visual C++은 이 코드에서 우리 namespace에 속하지는 않지만 밖에서 먼저 정의되어 있는 A를 인식했으며, A의 멤버 함수가 B의 비공개 멤버에 접근하는 것을 허용했다.
그러나 xcode, 안드로이드 NDK 등 타 플랫폼의 C++ 컴파일러들은 A를 인식하지 못하고 에러를 내뱉었다.

이 문제의 해결 방법은 간단하다. 그냥 A라고 하지 말고 friend class ::A라고 써 주면 된다.
그럼 Visual C++은 함수 인자의 ADL 같은 것도 아닌 상황에서 왜 유도리를 발휘한 건지 궁금해진다. 심지어 이건 인텔리센스도 동일하게 맞는 문법으로 인정해 줬다.

어떤 클래스 B가 다른 클래스 A를 friend로 선언할 때, A의 명칭은 진짜 아무거나 적어 줘도 된다. friend 선언 당시에 A가 class A; 라고 달랑 전방 선언(forward)만 됐건, 아니면 심지어 전혀 선언되지 않은 듣보잡 이름이어도 된다. friend부터 맺은 뒤에 다음에 A를 선언해도 된다.
단, Visual C++의 경우, 친구 클래스 A를 인식하는 방식에서 다음과 같은 추가적인 특성이 있었다.

  • 앞의 경우처럼 A가 아닌 ::A라고 명시하려면 A는 그 전에 어떤 형태로든 global scope 어딘가에 선언이 돼 있어야 하더라. 그렇지 않으면 Visual C++이라도 에러가 난다.
  • A가 B와 동일한 namespace에 존재한다면 아무 문제 없다. B에서 friend class A만 해 준 뒤, A는 B의 앞에 있건 뒤에 있건 자유롭게 인식 가능하다.
  • A가 그냥 global scope에 있고 B와 동일한 namespace 소속이 아닌데 friend class A만으로 A가 인식되려면 A는 B보다 먼저 선언되어 있어야 한다. 안 그러면 B의 친구는 namespace에 소속돼 있는 가상의 A로 간주되고, ::A는 제외된다.

다시 말해 자신과 다른 namespace 소속의 클래스를 친구로 지목하려면 친구 대상을 반드시 먼저 선언해 주고 :: 연산자도 동원하는 등, 통상적인 friend에 비해 문법에 약간 제약이 걸린다는 걸 알 수 있다. Visual C++은 표준을 따르고 있는 건지는 잘 모르겠지만 그 과정에서 약간 더 유도리를 제공하고 있는 것 같다.

Posted by 사무엘

2019/01/10 08:37 2019/01/10 08:37
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1574

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

« Previous : 1 : ... 74 : 75 : 76 : 77 : 78 : 79 : 80 : 81 : 82 : ... 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:
3049408
Today:
428
Yesterday:
2142