« Previous : 1 : ... 77 : 78 : 79 : 80 : 81 : 82 : 83 : 84 : 85 : ... 221 : Next »

1. 물, 바다, 수소의 연료화

흔히 우리는 바다가 온통 소금물이니 소금은 다들 염전에서 바닷물을 증발시켜서 얻는 줄 안다. 하지만 대량의 물을 물리· 화학적으로 변형하는 것은 우리 생각보다 많은 에너지(= 비용)가 드는 일이며, 염전 또한 아무 바닷가에나 쉽게 크게 만들 수 있는 시설이 아니다. 정제 비용은 덤이고 말이다.

그렇기 때문에 전세계적으로 생산되는 소금의 출처는 바닷물보다는 의외로 암염의 비중이 더 크다고 한다. 망망대해 가운데에서 마실 물 걱정을 하는 것처럼, 주변이 온통 바닷물이지만 여전히 소금 걱정을 할 수밖에 없다는 것이다.

또한 이와 비슷한 맥락으로, "흔해 빠진 게 물인데 산소와 수소쯤은 물을 전기 분해하면 바로 얻을 수 있잖아?"도 그때 드는 전기의 양을 생각하면 그리 만만한 생각이 아니다. 수소는 생산한 뒤에도 너무 위험하고 안전하게 보관하는 게 어렵다 보니, 21세기의 기술로도 그 막강한 폭발력을 동력 기관으로 제대로 활용하지 못하고 있다. 친환경과 가성비라는 두 마리 토끼를 모두 잡기란 쉬운 일이 아니다.

뭐, 소금은 이렇게 바다가 아니라 육지에서도 많이 얻는다만, 우리가 바다에서 진짜 의외로 더 많이 얻는 것은.. 바로 산소라고 한다. 아마존 숲을 포함해 육상 식물이 만드는 산소보다 전세계 바다의 해조류와 미생물이 광합성을 해서 만드는 산소가 더 많다. 어떻게 그럴 수가 있나 모르겠지만, 일단 지표면에서 면적부터가 바다가 훨씬 더 크기도 하니..

게다가 거대한 양의 바닷물은 이산화탄소를 품고 있기도 하다. 나중에 태양이 적색거성으로 바뀌어서 화력이 강해지고, 태양열 때문에 바닷물이 증발하는 지경이 되면 바닷물이 품고 있던 이산화탄소가 몽땅 증발돼 나오면서 온실효과까지 가미되어.. 지구는 순식간에 금성 같은 불지옥으로 바뀔 거라는 전망이 있다.

이런 점을 생각하면 여러 모로 바다는 소금보다도 더 중요한 분야에서 인류에게 고마운 역할을 하는 듯하다. 아, 훌륭한 단백질 공급원 역할도 톡톡히 한다. 소금은 암염으로 더 많이 생산될지 모르지만 생선이 육상 동물 육류보다 더 저렴하고 영양 가성비가 뛰어난 것은 자명한 사실이다.

2. 음속 -- 진동이 전해지는 속도

공기 중에서 음속이라는 게 초속 330~350m, 시속으로 환산하면 1100~1200km 정도 된다.
음속이 광속보다는 훨씬 더 느리기 때문에, 번갯불이 먼저 번쩍인 뒤(눈에 도달) 수 초 뒤에 폭음이 귀에 도달하여 들리는 것 정도는 주지의 사실이다.

개인적으로는 등산 중에 하늘 위로 비교적 낮게 날아가는 비행기를 봤는데, 비행기는 엔진 소리가 들려 오는 곳보다 더 앞서 나가 있는 게 무척 신기했다. 고도가 낮은 것 같아도 못해도 3~4km 정도는 돼 보인다.

그런데 하물며 우주 관측은 광속으로도 감당 못 할 까마득히 먼 거리를 다룬다는 게 더 신기한 노릇이다. 몇백만 년 전의 별의 모습을 이제야 보는 것이니 말이다. 겨우 수 초 전에 비행기가 지구 대류권 상공에서 낸 엔진 소리를 뒤늦게 듣는 것과는 차원이 다르다.

공기 중의 음속은 인간의 비행기로도 낼 수 있을 정도로 비교적 느린 속도이다. 하지만 액체와 고체 속에서는 음속이 훨씬 더 빨라진다.
물 속에서는 극심한 저항 때문에 총알도 제대로 안 나아가고 모든 것이 둔해지고 느려지지만, 음속은 공기 중보다 대체로 4~5배 정도 더 빨라진다. (초속 1.4~1.5km)

게다가 금속 같은 고체 매질 속에서는 음속이 초속 5~6km대로 치솟는다.
지진파가 바로 고체 속에서 나아가는 음파와 본질적으로 비슷한 존재이다. P파 S파 종류별로 속도 차이는 있지만, 기본적으로 초속 수 km대의 스케일이다.

그렇기 때문에 진원지에서 수백 km 떨어진 곳에 진동이 겨우 몇십 초 만에 느껴졌네 하는 게 가능한 것이다. 우리나라도 얼마 전 경주와 포항의 지진 때문에 이쪽으로 사람들의 관심이 쏠린 바 있다.
하지만 전파 같은 초월적인 광속도 아니고 그렇다고 로켓이나 우주 발사체의 속도도 아니고, 일상적으로 저런 규모의 속도를 접할 일은 그다지 없을 것이다.

소리가 나아가는 건 총알이나 바람이 나아가는 것과는 완전히 다른 개념이다. 질량을 가진 물체가 직접 이동하는 게 아니라, 진동만 전해지는 것이기 때문이다.

그렇기 때문에 물과 고체 속에서 음속이 더 빨라진다. 그리고 결정적으로.. 공기 저항을 없앤답시고 진공을 만들어 버리면 음속이 증가하기는커녕, 소리가 아예 전해지지 못하게 된다. 열은 복사라는 방식으로 진공 속에서도 나아가서 전해질 수 있는 반면, 음파는 그냥 끝이다.

자연에는 물질의 운동뿐만 아니라 파동/진동도 존재한다는 것이 물리 과목을 더욱 어렵게 만드는 주범임이 틀림없다..;; 그냥 이차함수 포물선까지만 생각하면 되던 게 이제 삼각함수가 필요해지기 때문이다.
특히 빛이 입자와 파동의 성질을 모두 지니고 있는 건.. 신학으로 치면 인간이면서 하나님, 삼위일체 급의 난해한 개념이다.

3. 전열기

전기 에너지를 이용하면 잘 알다시피 바퀴를 굴리는 동력을 생성할 수 있고 강렬한 빛(LED)을 만들 수도 있고 컴퓨터를 돌리고 메모리 소자에다 정보를 기록할 수도 있다.
이런 무궁무진한 활용에 비해, 전기로 겨우 열이나 만드는 건 제일 수준 낮은 활용인 것 같다. 어차피 모든 에너지는 열, 그것도 더 재활용하기 곤란한 폐열로 귀착되니 말이다.
마치 싱싱한 참돔이나 우럭, 넙치 활어를 받아서는 회를 만들어 먹지 못하고 몽땅 탕으로 끓여 먹는 것과 비슷해 보인다.

하지만 국가의 정책 차원에서 기름값이 워낙 비싸다 보니 요리나 난방용 전열기가 의미가 전혀 없는 건 아니다. 전기 제품은 안 그래도 간편하고 화력 좋고 그 자체로서는 공해도 전무한데, 전자 공학 기술의 눈부신 발달 덕분에 전열기도 옛날의 전열기보다 에너지 효율이 당연히 훨씬 더 좋다. 같은 전력을 소모했을 때 빛이나 동력이 나와야 하는 곳에서는 열로 낭비되는 에너지 없이 빛이나 동력만 많이 나오고, 진짜 열이 나와야 하는 곳에서는 열만 아주 강렬하게 잘 뿜어져 나온다.

그러고 보니 똑같이 전기로 음식을 데우는데, 단순히 바닥만 뜨겁게 달궈 주는 전기 오븐이 있는 반면에 전자 레인지도 있는 게 신기하게 느껴진다. 후자가 전력 소모가 더 많고 더 고차원적이고 심오한 방법으로 음식을 데우는 것이 틀림없다.

그리고 한편으로, 전기가 아닌 통상적인 연료를 사용하는 가스 레인지나 석유 난로도 전기를 전혀 사용하지 않는 건 아니다. 처음 점화를 할 때는 전기 스파크를 사용하기 때문이며, 이건 휘발유 자동차 엔진도 마찬가지이다. 그렇기 때문에 가스 레인지의 경우 건전지를 집어넣는 부분이 있으며, 석유 난로는 최소한의 전자식 UI 제공을 위해 전기를 사용한다. 물론 순수 전기 난로보다 전력 소모가 훨~~씬 적음은 주지의 사실이다.

4. 20세기 중반의 리즈 시절

요즘 이공계에서 석· 박사까지 공부하는 종사자들은 추세를 다 알겠지만..
오늘날은 어느 분야건 무슨 20세기 초와 그 이전처럼 울트라 초천재 과학자 한 명이 그야말로 X선처럼 0에서 1을 만드는 급의 기상천외한 걸 창조하거나 발견해 내고 세상을 획기적으로 바꾸던 그런 시절은 지났다. 모든 연구는 엄청난 자금빨을 동원해 집단으로 행해지며 단독 저자 논문은 거의 없다.

그리고 앞서 말했듯이 여러 학문들이 손 잡고 힘을 합쳐서 궁극적으로는 (1) 모든 사람들의 취향을 파악하고 마음을 읽어 내는 스마트한 시스템, 그리고 (2) 사람을 닮은 기계를 만드는 것을 목표로 삼고 달려가고 있다.

옛날에, 20세기 이전에 생물학이라는 건 그냥 생물의 생태를 관찰하고 분류하고 해부하는 정도의 방법론밖에 존재하지 않았다. 파브르나 멘델처럼 말이다. 그랬는데 오늘날에 와서는 타 분야의 과학· 공학이 발달한 성과물을 접목하여 예전에 상상도 할 수 없던 미시적인 수준의 분석이 가능해졌다.
이른바 분자 생물학이라는 게 태동한 것이다. 그리고 막대한 양의 DNA 데이터를 분석하다 보니 컴퓨팅 기술과도 손을 잡게 됐다. 이게 물리학으로 치면 마치 뉴턴 고전 역학에서 전자기학, 양자역학으로 넘어가는 급의 패러다임 변화이다.

생물학이 그렇게 되는 동안 의학은? X선 덕분에 방사선 치료니 영상 의학이니 하는 분야가 새로 생겼다. 옛날의 의사들은 상상도 할 수 없었을 것이다.

언어 공학 쪽은? 언어라는 게 인간이 동물과 다르고 기계와 다른 매우 큰 차별화 요소이다 보니 해결되지 못한 문제와 연구할 것이 아주 많다.
언어학에도 말뭉치 언어학이라는 분야는 컴퓨터 기술의 발달 덕분에 생겨났고.. 이런 식으로 학문들이 타 분야의 도움을 받아서 새로운 유행이 생겨나는 것 같다.

이공계의 트렌드 내지 패러다임이 이렇게 바뀌기 전에.. 그 저변과 기술 기반을 제공한 시절이 내 생각에 20세기 중반 정도가 아니었나 싶다. 2차 세계 대전이 끝나고 냉전이 시작된 동안 과학 기술이 얼마나 눈부시게 발달했던가?
전자공학 쪽에서는 진공관 컴퓨터와 더불어 (1) 트랜지스터가 발명되었다. 항공우주 분야는 (2) 로켓, 인공위성, 대륙간 탄도 미사일을 만들어 냈다.
그리고 (3) 원자력 발전이 이때부터 시작됐다. 끝으로 생물학에서는 (4) DNA 구조가 규명되었다.

1950~60년대에 미국의 일류대 대학원에서 이공계 공부를 한 사람들은 그야말로 천지개벽 수준의 과학 기술 업적이 펑펑 터져나오는 걸 경험한 셈이다. 부럽다.

5. 공군 전투 조종 장교 : 이공계 대학원생

  • 비행 시간 : 논문 수, 짬, 연구 실적
  • 전방석 : 1저자, 주저자
  • 후방석 : 공동· 교신저자
  • 전역 후 민항사 : 졸업 후 유명 대기업· 연구소 취업
  • 테스트 파일럿 : 스타트업 창업
  • 장성 진급 : 대학 교수 부임

서로 아귀가 묘하게 잘 맞는 것 같다..;;

6. 기타 수학· 과학 분야 얘기

(1) 예전에 벡터의 내적과 외적에 대해서 글을 쓴 적이 있었는데.. 하필 3차원에서는 두 벡터가 주어졌을 때 이 둘과 일차독립이면서 크기도 일정한 의미를 갖는 다른 벡터를 구하는 외적(벡터곱)이라는 연산이 존재하는 게 정말 심오하고 보통일이 아니라는 게 거듭 느껴진다. 3차원 공간을 구성하는 세 축의 방향을 안내해 주는 나침반이나 마찬가지이다.
FBI이니 뭐니 오른손 왼손 손가락 뻗으면서 외웠던 자기장 방향도 이 외적의 개념을 나타낸 셈이다. 또한, 복소수의 개념을 확장한 사원수의 곱셈 연산은 영락없이 벡터 외적 연산을 떠올리게 한다.

(2) 사람이 갈색이나 노랑이 아니고 초록색이나 파란색 머리카락은 100% 염색이지, 자연적으로는 절대 나올 수 없는 색깔이다. 그와 마찬가지로 장미꽃은 원래 백색, 분홍, 홍색 계열 위주이지 청색..은 자연에 존재하지 않았다. 파란색 꽃 자체는 그렇게 드문 건 아니지만 장미에는 그런 게 없었으나.. 21세기에 와서야 유전 공학의 힘으로 만들어 내는 데 성공했다. 우와..;;
LED도 청색을 구현하기가 제일 어려웠는데 파란색에 뭔가 생물학적인 다른 사연이 있는 건지 모르겠다.

(3) 똑같은 선풍기 바람도 사람에게는 체온보다 낮은 시원한 바람이지만, 아이스크림은 선풍기 바람을 쐬어 주면 반대로 더 빨리 녹게 된다. 아이스크림의 녹는 속도를 늦추려면 오히려 패딩 점퍼로 싸는 게 낫다.
그리고 똑같은 바람도 촛불은 끄게 하지만 큰 불에는 말 그대로 '불난 집에 부채질' 꼴이 되는 것이 흥미롭다. 온도와 풍속이 해당 상황에서 서로 다른 방향으로 영향을 끼친다..;;

(4) 동위원소 물질은 생물로 치면 무슨 유전자 변형 같다..;; 동물이 염색체 하나가 더 붙어서 기형이 태어나는 것 같은 느낌.. 원자로의 냉각수로 쓰이는 중수는 산소+수소이긴 한데 수소가 그냥 수소가 아니라 중성자(中)가 하나 더 붙은 중수소(重)이다. 그래서 중수의 얼음은 일반 물에 집어넣으면 가라앉으며, 끓는점과 어는점도 일반 물보다 몇 도가량 더 높다. 그런데 사람 몸에는 썩 좋지 않다고 한다.

(5) 인체에 대해 다룬 책들의 삽화를 보면 동맥피만 빨갛고 정맥피는 완전 시퍼렇기라도 한 것처럼 그려져 있다. 게다가 피부에 비치는 정맥 혈관이 검푸르게 보이기까지 하니(특히 좀비의 혈관..) 더욱 그럴싸해 보인다.
하지만 아무리 정맥이라고 해서 멀쩡한 혈액이 실제로 푸른색인 건 아니다. 명도· 채도의 차이가 있을 뿐, 사람의 피는 언제나 붉다.

이건 마치 태양에 흑점이란 게 있다고 해서, 우주에서 맨눈으로 관측한 태양의 표면에 검은 구멍이 숭숭 보이는 건 절대 아닌 것과도 비슷한 이치이다. 흑점은 태양의 다른 부위에 비해 상대적으로 덜 뜨겁고 덜 밝을 뿐, 여전히 극도로 눈부시고 밝은 건 마찬가지이다.
대기의 산란 같은 게 없는 우주에서 태양을 보면 빨강이나 노랑, 주황 같은 색은 전혀 없으며, 그냥 맹렬한 흰 빛만을 볼 수 있다.

Posted by 사무엘

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

날개셋 한글 입력기 9.6

2018년도 벌써 끝이 얼마 남지 않았다.
그 사이에 날개셋 한글 입력기는 파이널 버전인 9.5가 나온 지 70일 남짓 지났고, 본인의 근황에도 여러 변화가 생겼다. 내 인생에 한글 입력기 TODO list가 비어 있는 나날도 이렇게 오는구나 싶다.

뭐, 정말로 TODO가 전혀 없는 것은 아니다.
생각 같아서는 이미 여러 번 얘기했듯이 입력 설정 파일 포맷을 뜯어고치고 싶고 엔진 구조를 다시 설계하고 싶고, 도움말을 몽땅 영작도 하고 싶다. 허나, 그런 것들은 지금 도저히 추진 가능하지 않을 정도로 너무 거창한 것들이고 비용 대비 효과가 미미하기 때문에, 굳이 지금 같은 학생 신분에서 졸업을 더 늦추면서까지 욕심을 내지는 않는 것이다. 9.5를 넘어 10.0이라는 대망의 버전 번호는 그 날을 위해 비워 두는 것일 수도 있다.

그래도 거창한 것 말고 GUI, 보조 기능, 데이터 쪽에 아주 자잘하게 바뀐 것은 있다. 이것들을 일단 9.6 정도로 정리하고자 한다.

1. 필기 인식!

날개셋 한글 입력기는 지난 9.3 버전 이래로 총 10개의 입력 도구를 제공하고 있다. 그런데 9.6에서는 기존 도구들과는 성격이 매우 다른 물건이 하나 더 추가되어 11개가 되었다.
바로 필기 인식이다. 현재의 글쇠배열이나 날개셋 입력 설정과는 아무 관계 없이, 글자의 모양을 사용자가 마우스로 그리고 프로그램이 이를 인식하여 문자를 입력시킨다. 기술적으로는 '온라인 필기 인식'이다.

사용자 삽입 이미지

필기 인식은 MS IME에서는 아주 오래 전부터 갖추고 있지만 날개셋 한글 입력기에는 없는 기능 중 하나였다. 뭐, 애초에 내 프로그램의 존재 목적과 전문 분야는 세벌식 관련 특수 기능, 키보드 인식 관련 customization, 옛한글과 복합 낱자 처리.. 따위이지, 그런 AI 분야가 아니니까 말이다.

하지만 내가 필기 인식 엔진을 직접 구현까지는 하지 않더라도, 기존 API를 통해서라도 날개셋에서 필기 인식 기능을 제공할 수는 없으려나 하는 아쉬움이 있었다. 그래서 본인은 방법을 찾아 봤는데.. 다행히도 방법을 어렵지 않게 발견할 수 있었다.

과거에는 Windows CE 내지 XP 태블릿 에디션 같은 일부 제품군에만 그런 API가 있었다고 한다. 하지만 이제는 데스크톱용 Windows에도 필기 인식 기능을 다 사용할 수 있더라.
그리고 API 형태가 XP 시절과 Vista 이후가 서로 좀 달라졌다. 이 시점에서 굳이 legacy API를 지원할 필요는 없으니, 내 프로그램의 필기 인식 기능은 후자만 지원하는 형태로 개발되었다.

필기 인식 덕분에 날개셋 한글 입력기의 다음 버전이 9.51이 아니라 당당하게 9.6으로 매겨질 수 있게 됐다. 자체 기능이 아니라 운영체제의 API를 빌려서 동작하는 기능이 한자 단어 사전과 더불어 하나 더 추가됐다. 필기 인식이야말로 키보드 대신 포인팅 장비만으로 문자를 입력하는 기능의 백미 진수가 아닌가 싶다.

위의 스크린샷에서 보듯이 필기 인식 도구는 (1) 글자를 그리는 공간인 정사각형 입력란, (2) 인식된 글자 후보 목록, 그리고 (3) 주요 도구 명령(획 지움 등)과 (4) 자주 쓰이는 키보드 글쇠 버튼들로 평범하게 구성되어 있다.

"부수로 한자 입력"이나 "문자표" 같은 입력 도구들은 키보드에 없고 평소에 자주 쓰이지 않는 특수문자 몇 자를 입력하는 게 목적인 반면, "필기 인식"은 일상적으로 자주 쓰이는 linguistic한 문자들을 연달아 많이 입력하는 용도로 쓰인다.
그렇기 때문에 전자 문자표들은 리스트의 항목을 더블 클릭해야 글자가 입력되지만, "필기 인식"은 한 번 클릭하는 것만으로도 글자가 곧장 입력되게 했다.

그리고 이 입력 도구는 중요한 옵션이 두 종류 있다. 첫째, UI 모드이다.
위의 스크린샷처럼 입력란이 하나만 있고 글자 후보 선택을 수동으로 할 때는 타이머도 옵션으로 지정할 수 있다. 마지막 획을 긋고 나서 별다른 조치 없이 2초 정도 있으면 1순위 글자가 자동으로 본문으로 삽입된다. 매번 '인식 완료'를 누르거나 목록에서 글자를 찍을 필요가 없다. 아니면..

사용자 삽입 이미지

이렇게 입력란을 2개를 꺼내서 쓸 수도 있다. 왼쪽의 입력란에다가 글자를 그린 뒤에 곧장 오른쪽 입력란에다 글자를 그리기 시작하면 왼쪽에서 인식된 글자가 곧장 본문에 삽입되는 것이다. 창이 세로로 길쭉한 크기이면 두 입력란도 좌우로 가로가 아닌 상하로 세로로 자동으로 배열된다.

입력란이 2개 있을 때는 space나 엔터를 누르는 것도 먼저 인식 결과를 본문으로 보내고 난 뒤에 수행한다. 글자를 그리고 있고 후보 목록이 뜬 상태가 일종의 composition 상태라고 생각하면 된다.

둘째로, 사용할 필기 인식 엔진의 언어이다.
필기 인식 엔진이란 건 범언어 세계 공통 형태로 존재하는 게 아니라 각 언어별로 제각기 나뉘어 있다.
그래서 한글은 오로지 한국어 엔진에서만 인식 가능하며, 히라가나· 가타카나는 일본어 엔진에서만 인식된다. 중국에서만 쓰이는 간체 한자를 인식하려면 중국어 엔진을 사용해야 한다.

어느 언어에서나 동일하게 인식 가능한 문자는 숫자, 알파벳, 아스키 기호와 한중일이 완전히 동일하게 사용하는 공통 한자들뿐이다. 한글을 알아보지 못하는 중국 및 일본어 엔진에서는 '튽'을 입력하면 다들 長이 1순위로 제시되는 걸 볼 수 있다.

이 입력 도구는 기본적으로 한국어 엔진을 사용하지만, 컴퓨터에 한중일에 속하는 언어가 2개 이상 설치되어 있다면 원하는 언어의 엔진을 우클릭 메뉴에서 선택할 수도 있다. 프로그램 제목 표시줄에도 현재 사용 중인 언어가 나타나 있다.
Windows 10 기준으로 설정 - 언어 옵션에 들어가면, 각 언어별로 언어 팩이나 IME와는 별개로 필기/음성 데이터를 받는 버튼이 있다. 거기서 한중일 언어의 필기 데이터를 받으면 그 기능을 내 프로그램에서 활용할 수 있게 된다.

그런데 정확하게는 모르겠지만 내 경험상, Microsoft의 한중일 기본 IME가 제공하는 필기 인식이랑, 저 official한 필기 인식은 따로 노는 별개의 기능인 것 같다. 마소의 일본어/중국어 IME는 '확장 입력기 애플릿'을 통해 자체적으로 필기 인식 기능을 제공하지만, 내 프로그램에서는 여전히 일본어/중국어 필기 인식 엔진이 존재하지 않는 것으로 인지하는 경우도 있다.

의외로 Windows Vista는 CD 대신 DVD로 출시되고 전세계 다국어가 기본 내장되기 시작한 첫 버전이어서 그런지..
중국어· 일본어 IME를 끄집어낸 적 없고 Office조차 설치하지 않은 한국어판에도 중국어와 일본어 필기 인식 엔진이 다 기본 내장돼 있는 듯했다. 그것도 Ultimate 말고 Home premium급이 말이다. 아무튼..

한중일 언어의 필기 인식은 이렇게 정사각형 격자에서 글자를 하나씩 인식하는 방식으로, 마치 학창 시절의 칸 공책처럼 동작한다. 하지만 라틴 알파벳은 길쭉한 4선지에다가 단어를 한붓그리기 하듯이 필기체로 날려 쓰는 형태로 동작한다. 즉, 프로그램의 UI 자체가 서로 다르다.
요즘 Windows 10급 컴퓨터에 영어 필기 인식 엔진은 기본으로 다 깔려 있고 이 기능을 활용할 수도 있지만.. 내 프로그램에서는 그건 보류하고 일단은 형태가 더 간단한 한중일 위주로만 구현을 했다.

이런 식으로 필기 인식뿐만 아니라 음성 인식(받아쓰기)도 보조 입력 도구로 구현됐으면 좋겠는데.. 기존 API를 공부하는 것만 해도 필기 인식보다는 훨씬 더 어려울 것 같다. 동아시아 언어는 지원이 아직까지 훨씬 미비하기도 하고 말이다.

2. 글꼴 본뜨기/본뜬 글꼴 삭제 기능

날개셋 한글 입력기는 내부적으로 전용 비트맵 글꼴을 사용하는 부분이 있다. 그렇다고 유니코드의 모든 문자의 글립을 직접 내장해서 제공하지는 않으며, 그럴 수 없고 그럴 필요도 없다.
한자 같은 글자는 그냥 사용자의 컴퓨터에 들어있는 운영체제 글꼴로부터 비트맵을 추출하라고 글꼴 본뜨기라는 기능이 있다. 유니코드 영역별로 여기는 무슨 글꼴을 이용해서 추출하라는 간단한 절차 스크립트 파일도 있다.

날개셋 제어판의 '시스템 계층'으로 가 보면 글꼴 본뜨기를 하고, 필요하다면 절차 스크립트를 편집하고, 본떴던 글꼴 파일을 삭제하는 기능이 있는데.. 이번 9.6에서는 이 글꼴 본뜨기 관련 기능들이 크게 개선되었다. 다음과 같은 변화가 생겼다.

(1) 예전에는 글꼴 본뜨기 버튼을 누르면 그냥 무조건 모든 본뜨기 작업을 처음부터 새로 했다. 하지만 이제는 이미 본뜨기가 돼 있는 파일은 또 건드리지 않고 넘어가며, 변화가 생긴 항목에 대해서만 본뜬다.
만약 모든 항목이 본뜨기가 돼 있어서 파일이 생성된 게 하나도 없으면 "모든 항목이 본뜨기가 돼 있습니다. 혹시 이것들을 무시하고 본뜨기를 처음부터 다시 하시겠습니까?"라고 확인 질문이 나오며, 여기서 사용자가 '예'를 누르면 이전처럼 본뜨기를 처음부터 새로 하게 된다.

사용자 삽입 이미지

(2) 글꼴 본뜨기를 한 뒤, 절차 스크립트에 명시된 영역과 겹치는 파일이 남아 있으면 그건 자동으로 제거하게 했다.
예를 들어 스크립트에 0~300, 500~800이 명시돼 있었고 이렇게 본뜨기를 했다고 치자. 나중에 500~800을 400~800이나 500~900으로 바꿔서 본뜨기를 하게 됐다면.. 이 영역과 충돌하는 이전의 05000800.16/8 같은 파일은 이 프로그램이 알아서 제거해 준다는 것이다. 충돌이 발생하지 않게 해 준다.

(3) 본뜬 글꼴 삭제 기능은 스크립트에 명시돼 있는 파일을 삭제하는 것과 스크립트에 명시되지 않은 잔상을 삭제하는 것을 취사 선택 가능하게 했다. 물론 둘 다 싹 다 없애는 것도 가능하다.

사용자 삽입 이미지

(4) 또한, 글꼴을 본뜨거나 삭제하기 전에, 이미 날개셋 한글 입력기 프로그램이 로딩해서 열어 버린 글꼴 파일들이라도 모두 닫게 했다. 그래서 정상적으로 덮어쓰거나 삭제할 수 있다.
이제는 본뜬 글꼴을 삭제해 버리면 한자 글꼴이 존재하다가도 다시 한자가 표시되지 않는 상태로 되돌아가는 게 가능해졌다. 이전 버전에서는 그게 가능하지 않았었다.

(5) 끝으로, 본뜨기 스크립트의 내부 구조도 개편했다.
SYMBOL, HANGUL, LATIN이라고 섹션을 구분하여 SYMBOL 영역에서는 예전과 동일하게 본뜰 문자 영역을 명시하면 된다.
HANGUL과 LATIN에서는 예전처럼 번거롭게 AC00~AC00, 00~FF을 써 줄 필요 없이, 이미 선언된 글꼴 ID만 써 주거나.. 아니면 새로운 글꼴을 선언만 하면 자동으로 완성형 한글이나 영문 글꼴을 본뜨도록 했다.

스크립트에서 글꼴 ID도 예전에는 고정된 배열을 기반으로 5~63 사이만 지정할 수 있었으나, 이제는 쿨하게 아무 숫자로나 지정 가능하게 했다(32767 이내). 그리고 완성형 한글이나 영문에서 재사용 없이 글꼴을 일회용으로만 선언할 때는 번호를 지정할 필요조차 없이 그냥 0만 줘도 된다.

한글 입력 엔진과는 무관한 그냥 UI 기능인데, 뭔가 프로그램의 완성도를 향상시키는 여러 작업들이 한데 행해졌다.

3. 이모지(emoji) 입력

2010년대부터 유니코드의 확장 평면에는 한자뿐만 아니라 이모지(Emoji)라고 불리는.. 이모티콘이 아니라고는 하지만 웹과 모바일에서 실질적으로 이모티콘처럼 쓰이는 온갖 그림문자들이 추가되고 있다.
유니코드 위원회는 출처와 근거가 명확하지 않은 임의의 문자를 제멋대로 넙죽 받아들이고 추가해 주는 곳이 절대 아니다. 그럼에도 불구하고, 일본에서 임의로 이런 그림문자들을 오랫동안 많이 사용해 온 덕분에 이들도 전세계에서 통용되는 유일한 코드 번호가 주어지게 되었다.

BMP를 벗어나 확장 평면이라는 제2군, 2루에 추가되는 문자들은 일상생활에서 쓸 일이 없는 듣보잡 벽자 한자나 고대 문자, 악보 기호 등이 고작이었는데.. 웬일로 채팅에서 활발히 쓰이는 그림문자가 이 영역에 대거 추가되었다.
그래서 유니코드의 버전이 10에 도달한 무려 2010년대까지도 모든 글자가 16비트 코드 포인트 하나로 감당 가능하다고 안일하게 생각하고 UTF-16의 대비가 제대로 돼 있지 않던... 구닥다리 글꼴 엔진이나 텍스트 에디터들이 이제야 부랴부랴 수정되어야 했다고 한다. 뭐, 출처를 알 수 없는 카더라 통신이다.

폰트는 근본적으로 흑백 벡터 이미지밖에 표현을 못 하니, 인쇄를 염두에 둔 워드 프로세서에서는 이런 이모지들이 그냥 U+26??대의 그림문자와 별 다를 바 없는 외형으로 찍힌다. 하지만 전문적인 채팅 앱이나 스마트폰의 텍스트 입력란에서는 이것들이 컬러 그림으로 표시된다. 이 정도면 마치 한자만큼이나 글자와 그림의 경계가 모호해지는 것이나 마찬가지로 보인다. 서식(글꼴, 글자색, 크기 변경 등) 없는 텍스트 입력란 하나만 만드는데도 온갖 유니코드 문자 처리뿐만 아니라 이제는 사실상 그림 출력까지 감당해야 할 듯하다.;;

2010년대에 나온 최신 중국어· 일본어 IME를 보면 이런 이모티콘을 입력하는 전용 문자표나 입력 모드가 꼭 존재하더라. 이런 거 입력도 뭔가 피할 수 없는 대세가 되어 가는 듯한 느낌이다.
하지만, 내 프로그램은 모든 유니코드 문자를 고르는 범용적인 문자표 외에, 분야별 전용 문자표 같은 것은 딱히 고려 대상이 아니다. 현재로서는 말이다.
또한 편집기도 일반 문자들조차 흑백 비트맵 나부랭이로 출력하는 주제에 이모지를 컬러 이미지로 출력해야 할 이유는 없다.

날개셋 한글 입력기가 이모지의 지원과 관련하여 할 만한 최소한의 조치는 글꼴 본뜨기 스크립트에다가 이 영역을 반영해 주는 것이다. Windows의 경우 Segoe UI Symbol이라는 글꼴이 이모지 출력용으로 쓰이고 있어서 이걸로 U+1F300부터 U+1F6FF 정도를 전각으로 본뜨면 된다. 문자표의 영역명에는 이 영역도 이미 등록돼 있다.

이건 아주 간단한 조치이니 지난 9.5에도 반영돼 들어갔으면 좋았겠지만..;; 인제 생각이 나 버렸으니 뭐 어쩔 수 없다. 이제 9.6을 설치한 뒤 글꼴 본뜨기를 다시 해 주면 편집기에서 이모지 글꼴들을 볼 수 있다.

4. '조합 안에 조합 생성' 입력 도구의 개선

'조합 안에 조합 생성' 입력 도구는 지난 9.3과 9.5 버전 시절에 도입되었던 핵심 기능들 중 하나이다. 이제 더 고칠 게 없을 거라 여겨졌지만 미세한 개선 사항과 버그들이 더 발견되어서 9.6에서 다들 고쳤다.

  • numlock 키패드로도 후보를 선택할 수 있게 했다. 안 그래도 세벌식 자판은 키보드의 1~0은 문자가 배당돼 있는데 Ctrl+숫자뿐만 아니라 numlock 키패드도 지원된다면 아무래도 더 도움이 될 것이다.
  • 한글을 조합하는 중에 capslock 또는 이에 준하는 조합 종료 글쇠를 누르면 원래는 아무 반응이 없어야 정상이다. 그런데 외부 모듈은 지금 조합이 덧나면서 조합이 종료되는 문제가 있었다. 편집기, 외부 모듈, 입력 패드에서 모두 아무 반응이 없게 일관되게 조치를 취했다.
  • 편집기와 입력 패드는 입력 도구를 꺼내는 과정에서 대화상자를 꺼내고 창 포커스가 바뀌기 때문에 이런 일이 원천적으로 발생할 수 없는데 외부 모듈은 현재 조합을 그대로 유지하면서 입력 도구를 열거나 닫을 수 있다. 이미 조합이 있는 상태에서 저 도구를 꺼내거나 닫으면 여러가지 문제가 발생할 수 있던 것을 다 해결했다.

Posted by 사무엘

2018/11/05 08:32 2018/11/05 08:32
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1551

파이, 수학에서의 패턴

1998년에 개봉한 <파이>라는 영화가 있다. 제목은 음식 파이가 아니라 원주율 파이를 가리킨다. 구체적인 내용은 본인도 기억이 안 난다만 배경은 아마 20세기 중반 정도의 가까운 과거이고, 수학 덕후 주인공과 유대교 랍비가 나오고 '쿵쿵따다 쿵쿵따다 쿵쿵따다 쿵따~' 이런 인상적인 BGM이 나오고, 이례적으로 흑백으로 만들어진 좀 마이너 매니악한 취향의 영화이다.

벤허처럼 1950년대에도 컬러로 만들어진 영화가 있는 반면, 1990년대에 일부러 흑백으로 만들어진 영화도 소수나마 있다. 내가 아는 건 쉰들러 리스트와 저것밖에 없다.
뭐, 킬 빌은 녹엽정 격투 장면이 수위 조절(사지가 날아다니고 피가 철철 튀고..)을 위해서 일부 흑백으로 촬영됐다고는 하는데.. 그런 일부 장면 말고 작품 전체가 흑백인 것 말이다.

과거에 텔레비전의 화질이 디지털 HD로 한층 업그레이드 되자, 출연자들의 피부 표면이 예전보다 훨씬 더 선명하게 보이기 시작했다. 이 때문에 분장· 화장을 맡은 방송 스탭들의 수고가 더 커졌다고 한다.
그리고 텔레비전이 흑백으로 컬러로 바뀌었을 때에도 예전에 대충 하면 되던 각종 보정이나 특수효과들이 이제는 통하지 않게 되었다고 한동안 난리가 났다고 한다. 예를 들어, 없는 눈을 만들어서 눈 내리는 장면을 만들기가 흑백 시절보다 훨씬 더 어려워진 것이다.

하지만 그 반대도 그저 만만하지는 않다. 컬러 찍듯이 평범하게 세팅을 한 뒤에 영상에서 채색을 제거하고 명도만 남긴다고 해서, 보기 좋은 흑백 영화를 만들 수 있는 건 물론 아니라고 한다. 흑백으로 찍었을 때 배경과 인물 분간이 잘 되게 별도의 방법론을 동원해야 한다.
얘기가 좀 옆길로 새었다만 아무튼.. 저 pi 영화에서는 다음과 같이 주인공의 신념(가설)이 담긴 독백 대사가 나온다.

사용자 삽입 이미지

1. 수학은 자연의 언어이다.
2. 우리 주변의 만물들은 수를 통해 표현되고 이해될 수 있다.
3. 그 수들을 그래프로 표현해 보면 패턴이 나타난다.
그러므로 자연에는 패턴이 어디에나 존재한다.


1번을 반영하여 <컨택트>(1997)라는 영화에서는 외계인이 무슨 심장 박동 같은 신호를 2 3 5 7 11... 소수 간격으로 보내는 장면이 나온다. 수학은 지구인이나 외계인이나 다같이 공감할 자연의 언어이니까 말이다.
2번은.. 오늘날 디지털 컴퓨터에서 맨날 하는 짓이 바로 이것이다. 양자화, 전산화, DB화... 인간이 접하고 취급하는 사물의 모든 현상과 정보를 숫자로 표현했기 때문에 컴퓨터가 글과 그림, 소리를 출력할 수 있다.

그리고 3번과 그 이후는 정말 그러한지는 알 수 없다. 단지 그런 패턴을 발견해서 깔끔한 수식으로 아름답게 표현하는 것이 세상 모든 수학자들의 로망인 건 사실이며, 영화에서는 이를 더욱 드라마틱하게 표현했을 뿐이다.
그런데 패턴이라...;; 이 시점에서 본인은 <말죽거리 잔혹사>의 대사가 떠오르지 않을 수 없었다.

사용자 삽입 이미지

"2 로그 2에 4를 푼다. 우선 2로그에서 앞에 있는 2를 뒤로 쭉 빼. 그리고 4 위에 살짝 올려. 왜? 패턴이니까. 수학은 논리가 아니고 뭐다?"


로그값 계산을 저렇게 거창하게.. 무슨 집 맞은편 편의점까지 모험을 떠나고, 동네 뒷산으로 에베레스트 등반을 하듯이 하는 풀이는 처음 본다. ㅠㅠ

당연히, 두 말할 나위도 없이..
전자의 영화에서 말하는 그 심오한 패턴이랑, 후자의 영화에서 말하는 그냥 시험 문제 풀이 테크닉에 가까운 패턴은.. 격이 완전히, 달라도 너무 다른 용어이다.
(뭐, 안 내상 씨도 혹시 진짜 현업 수학 교사를 불러다가 연기 시킨 게 아니냐는 말을 들을 정도로 연기를 잘하긴 했다.;; ㄲㄲ)

말죽거리 잔혹사는 영어 명사의 종류 고추X집물뿐만 아니라 수학에서도 그 당시의 참 비효율적인 입시 위주 암기 위주 교육을 그럭저럭 풍자했다.
하지만 뭐든지 다 잘하는 천재 괴수들은 그런 교육 체제에서도 다 100점 받고 할 거 다 하긴 했다.

Posted by 사무엘

2018/11/03 08:36 2018/11/03 08:36
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1550

우리는 객체지향 프로그래밍 언어를 공부하면서 클래스 멤버들의 공개 등급이라는 개념을 접한다. 까놓고 말해 public, protected, private은 C++, C#, Java에 모두 공통으로 거의 동일한 용도로 쓰이는 키워드이다.

C++은 이런 공개 등급을 마치 case나 default처럼 뒤에다 콜론을 붙여 일종의 label 형태로 지정하지만, Java/C#은 멤버 함수 및 변수의 선언에 공개 등급이 같이 붙는다. 이 세 등급의 차이는 아래 표와 같다.

출처 \ 공개 등급 public protected private
외부 O X X
파생 클래스 내부 O O X
자기 클래스 내부 O O O

public이야 멤버의 접근에 아무 제약이 없는 등급이지만 pr*로 시작하는 나머지 두 등급은 그렇지 않다. 단지, protected는 파생 클래스의 내부에서 자기에게 접근을 허용하는 반면, private은 이마저도 허용하지 않는다. 상속 관계에서부터 둘의 차이가 발생하는 것이다. private은 사람으로 치면 자식에게도 물려주거나 공유하지 않는 개인 칫솔, 속옷, 복용하는 약 같은 급의 지극히 '사쩍'인 물건에다 비유할 수 있겠다.

물론 그 어떤 공개 등급이라도 자기가 선언해 놓고 자기 클래스의 멤버 함수에서도 사용하지 못하는 등급은 없다. 심지어 자기 자신 this뿐만 아니라 자기 클래스에 속하는 아무 객체라도 말이다.
즉, 아래의 코드에서 bar(함수)와 priv_member(변수)가 똑같이 Foo의 멤버라면, bar는 o라는 다른 인스턴스의 priv_member에도 저렇게 마음대로 접근할 수 있다.

void Foo::bar(Foo& o)
{
    priv_member += o.priv_member;
}

this 포인터가 아예 없는 static 멤버 함수도 있다는 점을 생각한다면 이는 당연한 귀결이라 하겠다. 선언은 자기가 했지만, 접근과 사용은 내가 곧장 못 하고 파생 클래스에서만 가능하다거나 하는 기괴한 개념은 없다.

오히려 반대로 부모 클래스에서는 공개였는데 파생 클래스에서는 부모의 멤버를 감추고, 외부에서는 오로지 파생 클래스가 새로 제공하는 public 멤버만 사용 가능하도록 클래스를 더 폐쇄적인 형태로 바꾸는 건 가능하다.

C++에서는 클래스를 상속할 때 별 생각 없이 파생 클래스의 이름 뒤에다 콜론을 찍고 public Base1, public Base2 이런 식으로 public을 붙이곤 한다. 이때 써 주는 공개 등급은.. 부모 클래스 멤버들의 공개 등급이 파생 클래스에서는 어떻게 되는지를 결정한다. 그 방식은 한편으로는 직관적이어 보이면서도 한편으로는 헷갈리고 어렵다.

상속 방식 \ 기존 공개 등급 public protected private
public public protected private
protected protected protected private
private private private private

public 상속은 부모 클래스 멤버들의 공개 등급을 파생 클래스에다가도 원래 지정되었던 형태 그대로 유지시킨다. 부모 때 public이었던 놈은 파생에서도 public, protected는 protected.. 그런 식이다.

그 반면, protected나 private 상속으로 가면 일단 부모 멤버들은 몽땅 private, 또는 잘해야 protected로 등급이 바뀐다. public 속성이 없어지기 때문에 외부에서 파생 클래스 객체를 대상으로 부모 클래스의 멤버에 접근은 할 수 없어진다. public, protected, private이라는 공개 등급을 각각 3, 2, 1이라는 수라고 생각한다면, 클래스를 상속하는 방식 N은 부모 멤버들의 공개 등급을 N보다 크지 않은 등급으로 재설정하는 셈이다.

다른 예로, 부모 클래스에서 protected였던 멤버가 있는데 자식이 부모를 private로 상속했다고 치자. 그러면 그 멤버는 부모에서의 공개 등급은 protected였기 때문에 자식 클래스의 내부에서 마음대로 접근이 가능하다. (참고로 public 멤버는 부모에서 public이었다 하더라도 non-public 상속을 거치면 파생 클래스에서의 외부 접근이 곧장 차단된다. 내부 접근과 외부 접근의 차단 시기가 서로 차이가 있다.)

하지만 private 상속된 protected 멤버는 파생 클래스에서의 등급이 private로 바뀌었다. 그렇기 때문에 얘로부터 상속받은 손자 클래스에서는 이 멤버에 더 접근할 수 없게 된다.
그리고 한번 private/protected 상속으로 인해 작아져 버린 공개 등급은 후속 파생 클래스가 다시 public으로 상속한다고 해서 다시 커지지 않는다. 상속 과정에서 기존 공개 등급을 동일하게 유지하거나 더 낮출 수는 있어도 도로 높일 수는 없다는 뜻이다.

부모 클래스에서 private 상태였던 멤버들은(처음부터 그리 됐든, 상속 방식 때문에 그리 됐든..) public 등 그 어떤 방식으로 상속을 받더라도 파생 클래스에서는 결코 접근할 수 없다. 위의 표에서 그냥 평범하게 private라고 명시된 놈은 현재 private이기 때문에 다음 파생 클래스에서는 감춰진다는 뜻이며, 취소선이 그어져 있는 private은 이미 접근 불가이고 파생 클래스의 입장에서는 그냥 없는 멤버가 됐음을 의미한다.

C++은 언어 차원에서 POD(단순 데이터 더미)와 객체(생성자 소멸자 가상 함수 등..)의 구분이 모호하다 보니, struct와 class의 언어적 구분도 없다시피한 것으로 잘 알려져 있다. 그냥 디폴트로 지정돼 있는 멤버의 공개 등급이 전자는 public이고 후자는 private이라는 차이만이 있을 뿐이다.

그것처럼, 클래스를 상속할 때 공개 등급을 안 쓰고 그냥 class Derived: Base {} 라고만 쓰면 Base는 private 방식으로 상속된다. C++의 세계에서는 디폴트 공개 등급이 어디서든 private인 셈이다.

class 대신 아예 struct Base { private: int a; } 이런 식으로 클래스를 선언해도 된다. 미관상 보기 좋지 않으니까 안 할 뿐이지.
얘는 클래스 선언 문맥에서는 struct라는 대체제가 있고, 템플릿 인자 문맥에서는 typename라는 대체제가 있으니 위상이 뭔가 애매해 보인다. 전자는 C 시절부터 있었던 키워드요, 후자는 C++98에서 추가된 키워드이다.

코딩을 하다 보면 범용적인 부모 클래스의 포인터로부터 자식 클래스로 static_cast 형변환을 하는 경우가 많다. 파생 클래스가 부모보다 멤버가 더 많고 할 수 있는 일도 더 많기 때문이다. 그런데 protected/private 상속을 한 파생 클래스는 자기만의 새로운 멤버/메소드가 있는 한편으로 부모에게 가능한 조작이 금지되어 버린다.

일반적으로 부모와 자식 클래스 관계는 is-a 관계라고 일컬어지고, 자식 포인터에서 부모 포인터로 형변환은 "당연히" 가능한 것으로 여겨지는데.. 그 당연한 건 public 상속일 때만으로 한정이다. 비공개 상속일 때는 정보 은닉을 제대로 보장하기 위해 자식에서 부모로 가는 게 허용되지 않으며, 심지어 static_cast로도 안 된다! Visual C++ 기준 C2243이라는 고유한 에러까지 난다.

기술적으로는, 객체 내부의 ABI 차원에서는 아무 위험할 것이 없음에도 불구하고 전적으로 객체지향 이념에 위배된다는 이유만으로 자식에서 부모로 못 간다. 무리해서 강제로 부모인 것처럼 취급하려면 reinterpret_cast라는 무리수를 동원해야 한다.

게다가 C++은 다중 상속(=가상 상속) 때문에 일이 더 크고 복잡해진다.

class A { public: int pub_mem; };

class B: virtual protected A {};

class C: virtual public A {};

class D: public B, private C {};

D o; o.pub_mem = 100;

위의 코드에서 저 멤버에다가 100을 대입하는 것은 가능할까?
이걸 판단하기 위해서는 컴파일러는 클래스 D의 가능한 상속 계통을 모두 순회하면서 최대 공개 등급(?)이 public이 되는지 따져 봐야 한다.
(참고로, 둘을 virtual로 상속하지 않았다면, 저 pub_mem이 B에 딸린 놈인지 C에 딸린 놈인지 알 수 없어서 모호하다고 어차피 컴파일 에러가 남..)

B는 A를 protected 상속했기 때문에 여기서 pub_mem이 protected가 되어 버려서 나가리. C는 A를 public으로 상속했지만, 최종 단계인 D에서 C를 private 상속해 버렸기 때문에 private가 된다.
요컨대 A에서 D까지 가는 동안 public이 계속 public으로 유지되는 상속 계통이 존재하지 않으며, 최대 공개 등급은 B 계열인 protected로 귀착된다. 그렇기 때문에 위의 구문은 컴파일 에러가 나게 되며, pub_mem은 D의 멤버 함수 내부에서나 건드릴 수 있다.

Visual C++의 경우, 가상 상속이 아닌 일반적인 상속 공개 등급 위반이라면 C2247 Not accessible because .. uses ... to inherit from 이라는 좀 단정적인 문구의 에러가 뜬다.
그러나 가상 상속 체계에서는 "접근 경로가 없다"라는 표현이 들어간 C2249 No accessible path to ... member declared in virtual base ... 에러가 난다. 공개 등급 체크를 위해서 더 복잡한 계산을 한 뒤에 판정된 에러이기 때문에 그렇다. 매우 흥미로운 차이점이다.

아무튼.. 참 복잡하기 그지없다.
그래서 C++ 이후의 언어들은 상속은 그냥 부모 멤버들의 공개 등급을 그대로 유지하는 public 상속만 생각하는 편이다. 다중 상속을 봉인해 버렸다는 건 더 말하면 입만 아플 것이고. C++이 객체지향 언어로서 여러 실험과 시행착오를 많이 했고 거기서 너무 무리수로 여겨지는 개념들이 후대의 언어에서는 짤렸다고 생각하면 되겠다.

Posted by 사무엘

2018/10/31 08:36 2018/10/31 08:36
, ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1549

※ 대한민국 역사 박물관

서울의 중심부에 속하는 광화문-시청-종각 일대는 어쩐 일인지 대형 서점이 두 개나 비교적 서로 가까운 거리(광화문 교보, 종각 영풍)에 입점해 있다. 그 덕분에 책을 사러 잠시 들르기 좋다.
본인은 여러 볼일을 보러 시내에 갔는데, 광화문 근처에 '대한민국 역사 박물관'이라는 게 있다는 걸 근래에 처음으로 알게 됐다. 그래서 거기도 짬을 내어 들렀다.

아래에서 위층으로 올라가면서 관람하는 형태이고, 2층은 그냥 구한말과 일제 강점기, 3층은 이 승만 시절의 건국 초기, 4층은 산업화와 민주화 ~ 현대의 순이었던 걸로 기억한다. 기억에 남는 전시물들 사진을 소개하면서 본인의 생각을 덧붙이도록 하겠다.

사용자 삽입 이미지

구한말-일제 시대는 제끼고..
저건 1948년 5· 10 총선거를 앞두고, 역사상 처음으로 투표라는 걸 해 보는 단군의 후손들에게 요령을 설명하는 포스터이다.
저 때는 지금 같은 주민 등록 번호나 신분증이 없었던 관계로 투표를 하려면 유권자 등록부터 먼저 해야 했다.

사용자 삽입 이미지

옛날에는 한자는커녕 한글도 못 읽고 심지어 아라비아 숫자조차 못 읽는 사람이 있었나? 막대 표기라니 무슨 로마 숫자 같다.
당사자에게는 좀 잔인하고 미안한 얘기이지만, 이 정도로 무지· 무식한 사람들의 집단에서 무슨 합리적이고 이성적인 지도자 선출과 민주주의 따위를 바랄 수 있었겠는지 본인으로서는 매우 비관적인 전망을 할 수밖에 없다.

이 사람들이 무슨 정책이나 이념이나 공약을 보고 자기 소신대로 투표를 하겠는가? 그냥 다른 사람이 시키는 대로, 향응을 주는 진영에서 부탁하는 대로, 혹은 빨갱이들이 지상락원 선동하는 대로 우루루 끌려갈 확률이 99.9%이지.. 이래 갖고는 나라 망한다.

세상 물정 모르고 학교에서 불철주야 애들만 상대하던 교사가 퇴직하고 나와서 어설프게 사업이라도 하겠다고 나서면.. 그 교사의 퇴직금은 반쯤 과장 보태면 그냥 먼저 맡은 놈(= 사기꾼)이 임자라고 한다. 심지어 현직 교사들조차도 자기들이 학교 밖 사회에서는 완전 호구 취급 받는다는 것을 어느 정도 인지할 정도이다.

오늘날 교사는 분명 아무나 될 수 없는 직업이고, 그 치열한 경쟁을 뚫고 교사까지 된 사람은 일반인들 평균 이상의 지능과 체력과 리더십을 갖춘 인재이다. 그런데도 저렇게 될 수가 있다. 하물며 무지몽매한 민중들의 투표권이 어떤 방식으로 오· 남· 악용될지 대해서야 뭐 안 봐도 비디오이다.

투표권이란 게 무슨 운전 면허에 준하는 급으로, 혹은 군복무 조건까지 요구할 정도로 까다롭게 주어질 필요는 없을 것이다. 하지만 그래도 일정 수준 이상의 나이와 학력, 그리고 자기 소득으로 단돈 1원이라도 세금을 내는 최소한의 경제력 같은 조건 정도는 붙을 필요가 있다고 본다. 최소한 연령을 지금보다 더 낮춰서 무슨 중· 고등학생이 대통령이나 국회의원 선거에 참여하는 건.. 영 아니라는 게 본인의 생각이다. 애들이 정치에 대해 뭘 안다고..

5월 총선거 이후 1948년 8월 15일은 대한민국의 실질적인 생일이니 박물관에서도 당시 경축 기념식을 하던 분위기 회고록과 할배 대통령의 축사 연설 육성 같은 자료가 전시되어 있었다.
단, 제헌 국회 때 애드립으로 드려졌던 기도문은 종교색 때문인지 전혀 언급되지 않았다.

사용자 삽입 이미지

박물관에서는 분단과 북괴 정권의 수립 과정, 1940년대에 좌익이 저지른 각종 반란과 혼란 공작에 대해서는 진지하게 다루지 않고 곧장 6· 25 전쟁 파트로 넘어갔다.
전쟁 당시에 북한의 절반인 10만 명에 불과하던 남한의 육군은 휴전 이후 1954년엔 70만 명으로 급증했다.
이 영상 자료가 소개하는 바와 같이 군사력이 증강된 것은 사실이다. 왜냐고? 이제 상시 징병제가 시행됐기 때문이다.

난 1950년대 이 승만 때는 원자력 연구소만 만들고 국방 과학 연구소는 순전히 1970년대 박통의 작품인 줄로만 알았는데..
저 때도 '국방부 과학 연구소'라는 이름으로 비슷한 연구 기관이 생기긴 했다는 걸 처음으로 알게 됐다. 하긴, 저 때는 어떻게든 북괴의 남침 시즌 2를 원천 봉쇄하는 게 최대의 과제였을 것이다.

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

이제 다음으로 1960년대로 넘어간다. 저게 바로 그 시절에 국내에서 최초로 생산해 낸 자석식 전화기와 라디오이다. ㅠ.ㅠ
전화기는 다이얼조차 없이 수동 발전기로 최소한의 전기 신호를 전화선을 통해 보내는 기능만 있다. 그리고 라디오는 기능이 굉장히 빈약해 보이는데 크기는 꽤=_= 크다.
하긴, 저 때는 저렇게 전파를 통해 아날로그 신호를 수신하는 기계를 만드는 것만으로도 최첨단 기술이었을 것이다.

텔레비전은 지금으로부터 5년도 더 전에 아날로그 송출이 중단되고 디지털로 전환된 반면, 라디오는 그런 변화의 기미가 보이지 않는다. 운전자용 아니면 비상용으로 TV와는 용도가 확 다르니 예로부터 통용되는 단순한 아날로그 기술만으로 충분한 듯하다.
그나저나 라디오 중에는 TV 채널의 음성 부분만 추출 가능한 물건도 있었는데, 그럼 이제 그건 불가능해진 건가 모르겠다. 라디오 방송국이 일부러 TV 방송을 들려주는 게 아니라면 말이다.

사용자 삽입 이미지

삼성 교통 박물관에서 봤던 시발 자동차를 여기서도 보게 됐다. 색깔도 동일하다.
저 시절엔 자매품으로 시발 리무진과 시발 버스도 있었는데.. 그건 실물은 말할 것도 없고 레플리카가 만들어진 것도 없나 보다.

사용자 삽입 이미지

3공화국 시절, 박통의 원대한 국토 마개조 야망이 저 지도에 그려져 있다.
우리나라의 짧은 역사 동안 정말 박통 같은 위대한 지도자는 없었다. 옛날에 무슨 "인도와 마 광수를 바꾸지 않겠다" 이런 구호가 있었던가 본데, 저 시절 우리나라에서 이 정도로 건전하고 불가피하고 선했던 경제 개발 반공 독재라면 어줍잖은 2공 의원내각이니 사분오열 당파싸움 민주주의 따위하고는 얼마든지 맞바꾸고도 남는 장사였다.

저 과업들을 다 일관되게 이루려 하다 보니 통상적인 임기만으로는 시간이 너무 부족해서 장기집권을 하게 된 거다.
그리고 그걸 추진하려면 돈이 왕창 많이 필요한데 돈이란 게 땅 판다고 나오는 것도 아니고, 국가고 국민이고 다들 가난했다.
초창기에는 삼성과 현대도 그냥 오늘 내일 직원 월급 주는 걸 걱정하는 아류 영세 기업일 뿐이었으며, 돈줄은 제도권 은행이 아니라 지하에서 민간 사채업자들이 잔뜩 쥐고 있었다. 그만치 나라 사정이 답이 없고 열악했다.

그러니 박통은 화폐 개혁을 감행하고, 기업들이 돈 걱정 없이 투자를 할 수 있게 사채의 전부나 일부를 국가가 초법적인 권한으로 강제로 탕감해 버리기도 하고, 국민들에게는 온통 저축을 강조하면서 경제 개발 자금이 은행으로 모이도록 독려했다. 일본과 수교하면서 받은 소위 일제 피해 배상금도 최소한 다른 이상한 짓거리로 탕진하지 않고, 경부 고속도로와 포항 제철의 건설에 썼다. 왜냐 하면..

사용자 삽입 이미지

그냥 물고기를 주는 것보다 물고기를 잡는 법을 가르치는 게 더 낫기 때문이다. 국가가 잘살고 국민들이 다들 등 따시고 배 부른 중산층이 되어 자기 생업에만 종사하면서 가족과 오순도순 즐겁게 잘 살기만 한다면.. 골치 아픈 정치에 관심 가질 필요 따위 없고 반공은 저절로 이뤄지기 때문이다. 당장 자기가 사는 데 아무 지장이 없으면 무슨 계급 갈등에 자본가들을 타도해야 되네 혁명 과업을 이뤄야 하네 식의 불순한 수작에 귀를 기울일 일이 없다.

그러니 위의 포스터는 그저 정치 프로파간다가 아니라 어느 정도 사실이다. 실력으로 일본을 이기는 게 가장 훌륭한 극일 반일이듯이, 자유 시장 경제 하에서 북괴보다 잘사는 나라를 만드는 것이야말로 가장 수준 높은 반공이다.
오늘날의 좌익 종북 빨갱이 위정자들은 이와 정반대 짓거리를 하고 있다. 기업을 몽땅 망가뜨리고 서민 경제를 파탄 몰락시키는 게 대남적화에 어떤 형태로든 더 유리하다. (선동에 더 취약해지고 먹을것 앞에서 인간성이 더 쉽게 상실되는 등..) 이른바 경제 무장의 해제이다.

사용자 삽입 이미지

할 일은 너무 많고 시간은 부족하고 야당의 쓸데없는 태클은 심해지고 기존 선거 방식대로는 계속 당선되기가 어려우니..
박통은 헌법을 뜯어고치는 초강수를 밀어붙였다. 우리나라 헌정 사상 전무후무한 10월 유신.. 이게 '우리식 사회주의'...가 아니고, '한국식 민주주의'이고 이것만이 살 길이라고 긍정적인 프로파간다 홍보를 죽어라고 해야 했다. 병신 같지만 왠지 멋있어 보인다.

사용자 삽입 이미지

이 포니는 뉴질랜드로 수출되었던 것을 역수입한 것이어서 포니로서는 아주 드물게 우핸들이다. 게다가 안을 들여다보니 자동 변속기이더라. 2도 아니고 1이 오토라니.. 정말 보기 드문 모델이다.
옛날에 무슨 영화 찍고 자동차 박물관에 전시하는 용도로 이집트에 수출되었던 포니를 하나 역수입했다고 그러던데, 그 시절에 포니가 참 세계 곳곳으로 퍼져나가긴 했었다.

이렇게 산업화 얘기부터 한 뒤에 한켠에 개발 부작용에 대한 한계, 민주화 열망 그런 얘기도 소개돼 있었다. 이념적으로 치우치지 않으려고 최소한의 성의를 보이는 듯했다.

이 승만은 건국 초기와 관련하여 육성과 사진을 곳곳에서 접할 수 있는 반면, 박통에 대해서는 경제 성장 성과만 저렇게 소개돼 있고 당사자의 족적은 박물관에서 거의 발견할 수 없었다. 이쪽으로 더 관심이 있으면 아무래도 상암동에 소재한 "박 정희 기념 도서관"을 찾아가는 게 더 좋을 것이다.
또한 못살던 시절, 한창 산업화 하던 시절에 서민들 생활이 어땠는지에 대한 자료는 경희궁 근처의 "서울 역사 박물관"과도 영역이 일부 겹친다고 볼 수 있다.

개인적으로는 "대한민국 역사 박물관"이라는 타이틀이라면 차라리 구한말· 일제 시대를 빼 버리고, 서울 올림픽이나 대전 엑스포, IMF 극복 같은 역사 자료도 더 풍부하게 넣었어야 하지 않나 생각한다. 그것도 벌써 2~30년 묵은 역사의 영역으로 옮겨져 가고 있으니 말이다.

관람을 다 마치고 내려가는 계단에서 정~~말 뜻하지 않게 본인이 다니는 교회의 청년부 동생과 마주쳤다. 서로 깜짝 놀라면서 좁은 세상을 실감했다. =_=;;;

※ 외솔 상 시상식

이 날 서점과 박물관을 방문한 뒤 본인이 마지막으로 들른 곳은 서울 시청 근처 프레스센터에서 개최되었던 올해치 외솔 상 시상식이었다. 본인은 수상자와는 별 인연이 없지만, 거기에 참석했던 사람들 중에는 본인의 지인 분들이 여럿 있었다.

"재단법인 외솔회"라고 국어학자 외솔 최 현배 박사를 기념하는 단체가 있다. 거기서는 매년 고인의 탄신일(10월 19일)에 즈음해서 한국어· 한글과 관련해 문화· 학술 분야에서 1명, 계몽· 운동 분야에서 1명 이렇게 총 2명을 선정해서 상을 준다.
그렇게 시작된 시상식이 2018년 기준 벌써 40회를 맞이했다고 한다. 공 병우 박사도 외솔 상의 아주 초창기 수상자였다.

올해는 학술 분야는 서울대 국문과 교수 겸 국립 국어원 원장을 역임했던 권 재일 교수가, 운동 분야는 한글 문화 연대의 어느 간부가 받았다. 돌아가신 지 벌써 15년이 돼 가는 허 웅(한글 학회 회장) 박사가 외솔의 제자였고, 권 교수는 허 웅의 제자였다고 한다.

사용자 삽입 이미지

행사장 입구에는 본인이 다니는 대학원의 총장과, 세종대왕 기념 사업회 명의로 화환이 나란히 놓여 있었다.
그러고 보니 외솔회는 재단법인이지만, 비슷한 업종(?)에 속하는 세종대왕 기념 사업회는 사단법인이라는 차이가 있다.

사용자 삽입 이미지

시상식은 상만 씨크하게 주고 끝인 게 아니라 외솔 선생의 생전 육성 청취, 수상자의 소감 연설, 심지어 "한글이 목숨이다"를 가사로 뮤지컬 공연까지 생각보다 프로그램이 많았다. 게다가 뷔페 저녁 식사도 공짜로 줬다.

전공 분야와 관련해서 외솔의 사상과 행적은 이 블로그에서도 몇 차례 다룬 바 있으니 그걸 참고하면 될 듯하다.
킹 제임스 성경 신자가 0.5초 만에 이해 가능하게 한데 요약하자면, 요일 5:7 구절에서 '아버지, 아들, 성령' 대신에 '말, 글, 얼'을 집어넣으면 씽크로율이 99%에 근접할 것이다.
이분은 말년에 기독교로 개종해서 개인적인 종교가 실제로 기독교였다고도 하지만, 대외적으로는 그런 신앙보다는 그냥 방망이 깎던 노인 스타일의 대쪽 강직한 고집쟁이 원칙주의자 "한글이 목숨" 언어학자로 더 알려져 있다.

그는 1970년 봄, 아폴로 13호의 발사를 세 주 남짓 앞두고 세상을 떠났다. 이분이 그 근성으로 성경· 신학 쪽도 진지하게 파고들었다면 이 분야 순우리말 용어에도 분명 관심을 가졌을 것이며 혼과 영 대신에 넋과 얼을 제안도 분명 했으리라고 본인은 추측해 본다.

Posted by 사무엘

2018/10/28 08:33 2018/10/28 08:33
, , , , , ,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1548

한국어 문체, 어문 정책 등

1. 교과서의 문체

지금까지 이런 말을 한 적은 없었지 싶은데..
본인은 먼 옛날 초딩 시절에 형· 누나(가족, 사촌 등)의 교과서를 미리 보니, 교과서가 갈수록 글자 크기가 작아지고, 컬러이던 것이 흑백으로 바뀌는(중등 이상) 것에서 일종의 문화 충격을 느꼈고 심리적으로 겁을 먹었었다.

특히 말투가 반말로 바뀌는 게 싫었다.
내 기억이 맞다면, 1990년대엔 초1~2에서는 '해요체'였고, 과도기인 초3에서 좀 더 격식을 차린 '하오체', 그 다음 초4부터 '해라체' 반말로 바뀌었다. 지금은 어떤가 모르겠다.
그냥 반말도 모자라서 '하여라(해라)/써라'에서 연결어미가 더 생략되어 '하라/쓰라'라고만 하면.. 더 건조하고 무뚝뚝하게 느껴졌다.

  • 하십시오: 아주 높임
  • 하시오: 약간 높임
  • 하세요: 두루 높임
  • 해요: 두루 낮춤
  • 하게: 약간 낮춤
  • 해라: 아주 낮춤

이게 바로 학교에서 배우는 한국어의 문체이다. 군대에서 사용을 금지하는 것은 '-요'로 끝나는 비격식체 '두루 높임/낮춤'이다.
학교 교과서는 맨 처음엔 두루 높임으로 시작했다가(계산하세요), 약간 높임을 보여준 뒤(계산하시오) 곧장 아주 낮춤으로 바뀐 셈이다(계산하여라).

물론 한국어의 글에서는 존댓말보다 이런 반말이 훨씬 더 보편적이다. 그리고 간결하기 때문에 쓰는 것일 뿐, 굳이 독자를 낮출 의도가 있는 건 아니다. 사실 한국어는 제일 짧은 반말을 쓰더라도 용언 뒤에 각종 어미들이 덕지덕지 달라붙느라 여전히 좀 거추장스러운 구석이 있다. (예: 프로그래밍 언어를 한국어로 설계해 보면?)
하지만 저런 말투의 변화조차도 어린 동심의 입장에서는 병아리가 알을 깨는 것과 같은 큰 변화였던 것이다.

한국과 달리 서양 내지 영어권 애들은 그런 거 고민이 필요 없는 언어를 쓴다. 부모님 하나님도 그냥 you라고 부르고.. 나이 꼰대질 없이 누구든 그냥 통성명부터 한 뒤, you 아니면 이름으로 부르면 되니 참 편하겠다는 생각이 든다. 군대에서도 하급자는 상급자에게 sir을 앞뒤에 덧붙이는 것만 빼면 거의 똑같은 방식으로 말하면 된다.

이런 의사소통에서의 효율이 더 멀리 나아가 학문과 기술의 발달 깊이, 그리고 업무 프로세스의 효율 차이까지 가져온 건지도 모른다.
1990년대 대한항공 여객기 추락 사고 같은 극단적인 예까지 들먹이지 않더라도 말이다.

2. 옛날 한글 개역성경의 이색 문체

오늘날 우리말에서 성경 같은 경전은 '-느니라, -도다, -노라, -소서' 같은 엄격 진지 근엄한 고어 문체의 최후의 보루로 여겨지고 있다. 사람 위에 사람 없고 전근대적인 절대권위라는 게 몽땅 무너진 오늘날에는 일상생활에서 저런 말투를 사용하거나 접할 일이 없기 때문이다.

천주교야 오래 전부터 현대어 스타일로 번역된 공동번역을 사용했기 때문에 상황이 어떤지 모르겠다. 하지만 기독교회 쪽은 사정이 달라서 개역성경의 문체를 하루아침에 탈피하는 건 신자들의 정서상 아직 요원해 보인다. 그러니 2000년대에 와서도 교회에서 예배용으로 사용하는 성경의 주류는 여전히 개역성경을 약간만 고친 개역개정판에 머무르고 있다.

심지어 킹 제임스 성경 진영에서도 본문 내용이 변개되고 삭제된 것들을 논할 뿐, 문체는 개역성경의 고어 문체를 별 이의 없이 그대로 수용해서 성경을 번역하는 편이다. 아니, KJV도 고어체이니 한국어 역시 의도적으로 고어체로 번역하는 게 더 어울릴 지경이다.

본인은 어린 시절에 성경의 이런 문체가 신기하게 느껴졌으며, 또 맨 끝에 있던 계 22:18-19.. 그 유명한 성경 변개 금지 경고문(말씀에다 더하거나 빼는 자는 이렇게 될 것이다)에서도 강렬한 인상을 받았다. 그 인상이 잠재의식 속에 남아서 본인을 훗날 킹 제임스 성경 유일주의로 이끈 건지도 모르겠다.

그건 그렇고 아직 한글 개역성경만 보던 옛날에..
본인은 한글 개역성경이 예수님께서 십자가에서 숨이 끊어지시는 부분만이 이례적으로 고어체 대신 평범한 '-다'로 끝나는 것을 일찍부터 주목했다. 이것도 인상이 아주 강렬했다.

  • 예수께서 다시 크게 소리 지르시고 영혼이 떠나시다 (마 27:50)
  • 예수께서 큰 소리를 지르시고 운명하시다 (막 15:37)
  • 예수께서 큰 소리로 불러 가라사대 아버지여 내 영혼을 아버지 손에 부탁하나이다 하고 이 말씀을 하신 후 운명하시다 (눅 23:46)
  • 예수께서 신 포도주를 받으신 후 가라사대 다 이루었다 하시고 머리를 숙이시고 영혼이 돌아가시니라 (요 19:30)

요한복음만 빼고 마태, 마가, 누가복음이 저렇다.
동사 용언이 ㄴ이나 '았' 같은 시제 선어말 어미 없이 으뜸꼴 형태 그대로 쓰이는 건 무슨 제목이나 자막 같은 데서.. "누구누구 죽다", "어디에 가다"처럼 드물게 쓰이기는 한다.
그런데 존대 선어말 어미 '시'는 붙어서 '떠나시다, 운명하시다'는 어린 동심에 굉장히 특이한 심상을 만들어 냈다.

개역성경에서 '-시다'라고 끝나는 구절을 찾아보면 사복음서에만 딱 10군데가 나온다. 마 16:4 "떠나가시다"부터 요 18:1 "제자들과 함께 들어가시다"까지..
하지만 이것들은 별 의미는 없고, 단순히 이 부분을 맡은 번역자의 번역 스타일 때문에 들어간 특이한 일탈에 가깝다. 그렇기 때문에 훗날 개역개정판에서는 다들 '떠나시니라'(마 27:50), '숨지시니라'(막 15:37, 눅 23:46) 같은 '-시니라' 꼴로 바뀌었다.

3. 여담: 한중일의 언어 정책 변화

동북아시아 삼국은 20세기가 가히 격변의 시대였다. 사회· 정치뿐만 아니라 문자 언어 쪽도 큰 변화를 겪었다.

(1) 중국: 1956~1964년에 걸쳐 공산당 마오의 령도력으로 한자들의 획을 대폭 줄인 '간체자'를 제정했다. 1953년, 6· 25 휴전 협정 당시까지만 해도 중국은 '나라 국'을 國이라고 쓰고 있었지만 그로부터 불과 몇 년 뒤부터는 그렇지 않게 됐다.
또한 보조 표음용으로 알파벳 기반의 한어병음도 1958년에 전격 시행하여 기존 주음부호를 대체했다. 오늘날은 '대만'만 옛날 정체(번체)와 주음부호를 계속해서 쓰고 있다.

(2) 일본: 1949년, 아직 미군정 하에 있을 때 '신자체'를 만들었다.
이런 글자의 변화 말고도 지금처럼 히라가나를 고유어의 표기에 활용하는 일본어 정서법 역시 해방(한국의)/패전(일본의) 이후에 도입되고 정착했다. 그 전에는 지금은 히라가나로 표기했을 말도 다 가타카나로 표기했다.

(3) 한국: 아직 일제 시대이던 1933년에 초안이 나온 한글 맞춤법 통일안이 그야말로 기념비적인 업적이었다. 이때 아래아 같은 잉여 옛한글은 사용하지 않기로 하고 한국어 정서법이 지금과 얼추 비슷하게 정착했기 때문이다.
그리고 이 정서법을 바탕으로 한국어 성경(개역성경전서 1938)과 국어사전(조선어 학회 큰사전 1947~57)이 출간될 수 있었다. 저 1938년도 성경을 또 개정하여 1961년에 나온 것이 바로 개역개정판 이전까지 국내에서 널리 쓰였던 그 개역성경이다.

한국은 중· 일과 달리, 국가 차원에서 한자를 손본 적은 없다. 그럴 필요도 없었고.. 그러니 그냥 정자체를 그대로 쓰고 있고, 그냥 조금 한자깨나 아는 사람들이 중국보다는 일본식 약자를 무단으로 쓰는 편이었다.

4. 여담: 소나기

자고로 옛날에 이 승만은 지금 본인과 비슷한 나이 때 프린스턴 대학교에서 박사 학위를 받았으며, 소설가 황 순원은 지금 본인과 비슷한 나이 때 일생일대의 명작 걸작인 단편소설 <소나기>를 지었다.

소나기는 중학교 교과서에도 실렸고, 아니 그 전에 한메 같은 타자연습 프로그램의 연습글로도 신물나도록 봤다. 내가 알기로 이 소설은 발표된 이래로 자국의 국어 교과서에서 누락된 적이 없다. 영화와 애니로도 이미 실컷 만들어져 나왔다.

다른 때도 아니고 아직 6· 25 전쟁도 안 끝났고 나라가 온통 박살이 나 있었을 때..
쉽게 말해 그 암울하던 이 범선의 <학마을 사람들> 사건이 실제로 벌어지고 있었을 시절에 어째 저런 전원적이고 낭만적이고 아기자기 예쁜 소설이 만들어질 수 있었는지 놀랍기 그지없다.

사용자 삽입 이미지

  • 초 중딩 시절에는 소나기 정도만 해도 텍스트가 상당히 길다고 생각했지만.. 지금은 전혀 그런 느낌이 안 든다.
  • 남자애는.. 정말 숙맥이다.;;
  • 한편으로는 단선 철길 폐색 구간의 양방향에서 잘못 진입한 열차가 떠오르기도 한다.

Posted by 사무엘

2018/10/25 08:34 2018/10/25 08:34
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1547

본인은 재작년(2016)에 이어 올해 열린 한글 및 한국어 정보처리 학술대회(제30회)에 논문을 투고하고 발표했다.
재작년에는 현재 날개셋 한글 입력기에 '복합 낱자 입력 로직 생성기'라고 깔끔하게 구현된(8.8~9.0) 기능의 개념과 필요성에 대해서 썼다.

그 뒤 이번에는 본격적으로 세벌식 글쇠배열에서 구현 가능한 모아치기, 동시치기 등의 개념을 정립했으며 이와 관련된 연구, 날개셋 9.5에서 새로 구현된 기능의 핵심 아이디어, 그리고 간단한 관련 실험 결과를 짧은 분량에 최대한 요약해서 소개했다. 이번 학술대회는 날개셋 한글 입력기의 파이널 버전에서 최종 테크 명목으로 연구된 (1) 세벌식 응용 기능을 발표한 자리이니 본인으로서는 뜻깊을 수밖에 없었다.

그리고 또 특이한 점은 장소이다.
재작년에는 학술대회가 부산 동아 대학교에서 열렸다. 서울과 굉장히 먼 대도시라는 특성상, 차를 가져가지 않고 커다란 캐리어만 끌고 다니며 여행을 다녀왔다.
그런데 이번에는 장소가 서울 고려 대학교이고, (2) 차나 숙박이 전혀 필요 없이 집에서 간편하게 다녀올 수 있는 아주 가까운 곳이었다. 학회를 다녀 오는 분위기가 완전 극과 극으로 달라졌다.

적당히 경기도 외곽이나 강원도 지방에 자가용을 몰고 내려가고 주변에 좀 놀러도 다니고, 밤에는 차에서 자면서 추억을 만드는 학회를 생각했는데.. 이건 결국 본인의 대학원 재학 중에는 이뤄지지 않게 됐다.
그래도 해수욕을 하고 여관방과 카페에서 잔 학회와, 교통과 숙박 걱정이 전무한 인서울 학회도 서로 다른 방향으로 의미가 있었다. 극단적으로 먼 곳과 극단적으로 가까운 곳의 차이이다.

그리고 (3) 다른 학교가 아니라 고려대라니.. 여기는 본인이 대학 학부 시절에 최초로 논문을 투고하고 참가했던 먼 옛날 2003년 제15회 대회 때와도 동일한 장소였다. 거기를 15년 만에 다시 찾아가다니.. 참 좁은 세상이다. (그땐 본인이 아직 대전에서 학교를 다니고 서울에 거주지가 없던 시절인 관계로, 숙박은 서울 친척 집에서 함)

올해는 딱 30회 기념에다 인서울 버프까지 받아서 그런지, 재작년은 물론이고 예년 평균의 2배를 상회하는 많은 논문이 투고되었다.
재작년엔 4개의 세션에서 토요일 오후 12시 반쯤에 모든 논문 발표가 마무리 되었던 반면, 올해는 5개의 세션에서 무려 오후 5시까지 끊임없이 논문 발표 스케줄이 배당되어 있었다.

재작년에는 학회에서 아는 사람이 거의 없다시피했던 반면, 올해에는 우리 학교의 김 한샘 교수님이 발표 세션 중 한 곳에서 좌장을 맡으시고 우리 학교 언어 정보 연구원에서도 논문을 투고했다. Universal Dependency라고.. 언어들의 구문 분석 태그 세트도 전세계 공통 통합 체계를 만들려는 연구가 진행 중이라는 걸 난생 처음 들었는데, 저 세션은 바로 그 UD 관련 발표 세션이었다.

또한 (4) 본인처럼 한글 코드와 글자판 같은 기초/마이너 분야의 연구를 하는 분을 몇몇 뵐 수도 있었다.
변 정용 교수님은 재작년에는 특강만 하시더니 올해는 논문도 투고하셨고, 내 논문까지 포함해서 아예 이 분야만을 위한 별도의 발표 세션도 배당되었다. 이것도 좋았다. 재작년에 냈던 내 논문은 인지과학 세션으로 분류됐었다.

그러니 이번 학술대회는 개인적으로 느낀 분위기가 재작년 대회보다 훨씬 더 좋았다.
그런 데다가 정말 고맙게도 본인은 2년 전에 이어 올해에도 우수 논문상을 받았다. 재작년과는 달리 아예 대회 시작 전에 미리 알려 주더라.
뭐, NLP처럼 많은 연구자들이 몰리는 주류 연구 주제에서 두각을 보였다기보다는, 워낙 독특하고 마이너한 분야를 파고 있고 그게 학술적으로 무가치한 건 아니니, 그 연구 성과를 인정받은 것에 대한 비중이 더 컸을 것이다.

본인이 여기에 논문을 하나 더 낸 이유는 다른 동기도 있지만 가장 중요한 학교 졸업 이수요건 충족을 위해서이다. 그런데 학계에서 논문이라는 건 크게 학위논문(대학원 졸업용), 학술지(저널) 논문, 그리고 학술대회 발표 논문(프로시딩)으로 크게 나뉜다.
본인은 발표 논문만으로 이수요건이 충족되는 줄 알고 있었으나 그렇지는 않더라. 사실 프로시딩은 투고하고 게재되는 절차가 제일 신속 간편하고 격도 제일 낮다. 학계 이 바닥의 최신 동향을 모니터링하고 자기 연구 성과를 정말 짤막하게 신속하게 광고하는 수단에 가깝다.

결국 학술지 논문 두 편 이상인데, 하나는 KCI 등재 또는 등재후보 등급 이상의 학술지에 실어야 한다. 그건 본인이 이미 작년에 하나 해냈다. 나머지 하나 더는 이론적으로는 정말 아무 학술지에나 실어도 되고 더 부담 없이 해도 된다.
하지만 논문이란 건 한번 투고하면 영원히 기록이 남고 특히 박사들에게는 취업 스펙이나 마찬가지인 아이템인데, 너무 대충 아무렇게나 할 수는 없는 노릇이다. 지금 발표 논문도 학술지 논문으로 발전시켜서 실으려면 내용을 추가 보완하는 두벌일을 하게 됐다.

그래도 이런 학술대회에서 우수 논문 추천을 받으면 관련 학술지에다가 발표 논문의 파생 논문을 싣는 것도 한결 더 수월해진다. 본인의 이전 학술지 논문도 이런 절차를 거쳐서 실을 수 있었다.
한글 및 한국어 정보처리 학술대회는 본인과 이런 관계가 있는 자리였다. 올해 대회에 참가하여 추억을 만들고 온 기록을 내 블로그에다가도 남기고자 한다.

※ 장소와 분위기

고려대는 고풍스러운 석조 건물이 많은 게 인상적이었다.
교내로 들어온 차량은 지하로 쏙 보내 버리고 지상에는 보행자와 이륜차 정도만 지나가는 넓은 광장을 두는 게 요즘 대학교 캠퍼스들의 디자인 트렌드인 것 같다. 라이벌인 연세대만 해도 2010년대 초중반에 '백양로 재창조' 리모델링을 하면서 캠퍼스를 그렇게 뜯어고쳤으니 말이다.

요런 학회는 첫째 날엔 참가자들이 몽땅 한 자리에 모이니 커다란 강당이 필요하고, 다음날 실제 학회가 진행될 때는 발표 세션들이 있을 강의실 네댓 개와 포스터가 전시될 광장이 필요하다.
두 공간이 성격이 좀 다르다 보니 이번에는 첫째 날 모이는 장소(인촌 기념관)와 둘째 날 모이는 장소(현대자동차 경영관)가 학교 정문의 서쪽과 동쪽으로 서로 완전히 달라졌다. 동일하거나 인접한 건물에서 층만 달라지는 정도가 아니었다.

올해 학술대회는 논문이 많이 투고된 것에 비해 첫째 날의 프로그램이 의외로 어느 때보다도 적었다. 특강 딱 세 개 이후에 경과 보고와 시상식만 하고 끝이었다.
보통 저녁 7시가 넘어서야 간신히 저녁 먹으러 나갔던 것 같은데 이번에는 5시 반에 칼같이 첫째 날 일정이 종료됐다. 새내기 박사 졸업자들의 자기 학위 논문 발표라든가 후원사 홍보 세션 같은 것도 없고..

그리고 만찬도 예전에는 뷔페라든가, 앉아서 먹는 한식 정도가 나왔던 것 같은데, 이번에는 그냥 교내 학생 식당에서 각자 알아서 배식 받아 먹는 것으로 끝이었다. 이번 학회가 참가자가 이례적으로 굉장히 많아서 이렇게 결정한 것 같긴 하나.. 이렇게 하니 모르는 사람과 안면을 틀 기회가 없어서 일면 아쉬웠다.

※ 특강(초청 강연): 검색엔진

특강 세 편 중에서 (1) 네이버에서 근무 중인 어느 언어공학 박사가 한 강의가 제일 유익했고 머리에 제일 많이 남았다.

  • 오늘날 전세계에 유의미하게 남아 있는 검색엔진은 구글, 마소 Bing, ..., 러시아 XXX, 중국 바이두, 한국 네이버 등 딱 7개 남짓밖에 없다. 정치적으로 폐쇄적이거나, 기술 배경이 특이하게 고립된(갈라파고스화..) 곳 말고는 그나마 구글이 사실상 전부 다 먹었다. 우리(네이버)는 이런 상황에서 뒤쳐지고 도태하지 않게 위기의식을 갖고 피말리는 노력을 하고 있다.
  • 웹사이트 검색과 블로그/뉴스 검색은 성격이 매우 다르다.
  • 검색엔진들이 웹 문서들을 평가하고 노출 순위를 매기는 세부 기준들은 전적으로 개발사들의 권한· 재량인 동시에 중대한 영업기밀이다. 교사들의 시험 문제 출제와도 같다. 그게 유출되면 당연히 오· 남용 악용되고(시험지 유출처럼..!!) 그걸 막으려고 피차 또 왕창 피곤해진다. 아무리 오픈소스네 개방이네 해도 개방되는 건 중립적인 기술과 알고리즘일 뿐, 그런 주관적인 잣대는 국회의원 같은 높으신 분이 요청한다 하더라도 넘겨줄 수 없다.
  • 뭔가 얼토당토않은 사이트가 상위로 랭크된 듯한 게 있으면 그건 기술적인 문제나 한계, 버그 때문일 뿐이다. 노출 우선순위는 전적으로 데이터와 알고리즘에 의해(상상을 초월하게 방대하고 복잡한!) 결정될 뿐, 그게 내부인의 농간에 의해 호락호락 조작 가능한 게 아니다. 관련 괴담이나 음모론들은 절대로 사실이 아니다.
  • 굳이 AI나 기계 학습 관련 알고리즘을 다 이해하고 있고 직접 코딩 구현까지 했다고 해서 엔지니어 채용 시에 크게 가산점을 주지는 않는다. 그런 기술을 이용해서 실제 언어 데이터를 상대로 얼마나 많은 고민을 하고 창의적인 실험을 해 봤는지를 더 중요하게 본다.
  • 그럼에도 불구하고 이 모든 강연 내용들은 본인의 개인적인 견해일 뿐, 내 직장의 공식적인 입장을 대변하지는 않는다.

옛날에, 1990년대 25년쯤 전에 검색엔진이라는 건 수많은 웹사이트들을 사람이 손으로 도서 분류하듯이 카테고리화해서 안내하는 길잡이, 아니면 msdn의 검색(search) 기능처럼 그냥 기계적으로 특정 주제어가 존재하는 웹페이지들을 정확도와 빈도 순으로 보여주는 메타사이트일 뿐이었다.

그런데 언제부턴가 검색엔진은 웹메일, 뉴스 기사 등 온갖 서비스들을 같이 제공하는 포털 사이트를 겸하게 되어 덩치가 커졌으며, 검색 기능에도 온갖 자연어 처리 기술이 접목되었다.
2002년쯤에 네이버에 지식인이라는 게 도입되면서 이변이 일어났다. 검색엔진은 그냥 기계적인 검색만 하는 게 아니라, 사람의 말귀를 알아듣고 그 사람이 원하는 정보를 즉각 대령하는 경지에 다다르게 됐다.

그리고 나라 밖에서는 구글이라는 신흥 강자가 세계의 웹을 정복했다. 야후, 심마니, 엠파스 등.. 1세대 검색엔진들은 싹 도태해 버리고 물갈이 됐다. 과거에 워드 프로세서를 두고 마소 vs 한컴이던 게 지금은 검색엔진을 갖고 구글 vs 네이버 구도가 아닌가 싶을 정도이다. 아무튼..

(2) 그 다음, 젊어 보이는 어느 고려대 '영문과' 교수님은 맥북 Keynote를 써서 발표하면서(예능· 디자인?), null space가 어떻고 야코비안 행렬이니 벡터 편미분이니 나열하며 반쯤 선형대수학 강의를 하시는 게 아주 인상적이었다. 요즘은 정말 학문에 경계란 게 없는가 보다.
하긴 언어 응용 중에 음성 처리 쪽은 기술 집약적이고 굉장히 이과스러운 분야이기도 하니까..

※ 특강: 한글 코드

(3) 그리고 마지막으로 변 정용 교수님은 예나 지금이나 자음· 모음을 이중 삼중으로 임의로 집어넣은 한글을 구현하려고 애쓰고 계셨다.
지금 유니코드에서는 한글을 글자 단위로 완성형으로 쓰지는 않는다. 단지, 낱자 레벨에서는 완성형인 게 사실이다. 초성의 자음 집합과 종성의 자음 집합이 일치하지 않는다. ㅄ이라는 낱자 번호로부터 ㅂ과 ㅅ을 자연스럽게 추출할 수 없으며, 초성 ㅂ으로부터 종성 ㅂ의 코드값을 얻을 수 없다. 다 테이블을 갖고 있어야 한다.

변 교수님의 주장은 그게 잘못됐다는 것이다. 지금의 160여 만 자 옛한글조차도 한글을 컴퓨터에서 제대로 구현한 게 아니라고 한다. 원래 훈민정음의 원리대로 한글 자모를 뭉쳐 넣고 조합하면 399억 종류, 32비트 정수 범위를 초과하는 가짓수의 글자를 만들어 낼 수 있다고..
그냥 영어의 strike, school라든가, 중국의 xian, yao 등등.. 세계 모든 언어에서 1음절로 표현되는 음운은 몽땅 한글 한 글자로 묶어서 표현하겠다는 포부이다.;;

프로그래밍 언어 분야에도 극단적인 순수주의자(purist)가 있듯이, 한글의 표현 방식에 대해서 이런 최고 수준의 추상화와 순수주의 이념을 추구하는 분이 계시는 것도 나름 의미가 있다. 24자인지 28자인지 최소한의 낱자만 문자 코드에 배당해 놓고, 얘를 쭈루룩~~ 늘어놓는 것만으로 모아쓰기 글자가 생성된다면 얼마나 좋겠는가?

단지 그렇기 하기에는 제반 글꼴 기술이라든가 음절 경계 구분 쪽의 부담이 대책 없이 너무 커지기 때문에 현실에서는 낱자는 그냥 코드 차원에서 완성형으로 퉁친 것이다. 심지어 현대 한글은 글자마디 11172자를 다 집어넣기도 했다.
뭐, 유니코드 5.2가 등장하기 전에는 심지어 마소에서도 1.1 자모를 최대 3개까지 한데 묶어서 최대 9개의 코드 포인트를 차지하는 옛한글을 편법으로 구현한 적이 있다. 그러니 변 교수님의 지론도 기술적으로 전혀 불가능한 건 아니긴 하지만.. 그래도 조합 가짓수가 비현실적으로 너무 많긴 하다.

변 교수님이야 무려 1980년대부터 한글 코드 역사의 산 증인이라 해도 과언이 아닌 분이니, 학회에서도 이분에 대한 courtesy 차원에서 특강에 논문 발표 기회까지 잔뜩 마련해 줬다. 하지만 "한글을 굳이 저렇게 이상한 형태로 활용할 필요가 있나, 그게 무슨 돈이 되고 실용적인 의미가 있나? 멀쩡한 IPA 부호를 냅두고 굳이 저런 한글 변형을 쓸 사람이 있겠나" 같은 이의 제기도 물론 있다. 이건 요즘처럼 AI네 빅데이터네 머신러닝이네 떠들어대는 시절에 신세대 연구자들의 주목을 받을 만한 인기 분야라고는 할 수 없다. =_=;;

발표 자료 중에는 북한에서 유니코드 위원회에다 '한글' 대신 '조선글'이라는 명칭을 써 달라 뭐 이렇게 영어로 이의 제기 메일을 보냈던 것의 캡처 화면이 잠시 지나갔다. 북한은 국가· 민족 정체성과 관련하여 한(韓)이라는 글자를 아주 싫어하니까..
물론 북괴는 그래 봤자 회비도 잔뜩 체납된 상태에서 발언권이고 영향력이고 아무것도 없었다. "한글 배열 순서를 북한 식으로 해 달라, 최고존엄(김 일성 김 정일) 전용 문자 코드를 배당해 달라" 이런 요청 따위도 몽땅 씹혔으며, 유니코드에서 한글은 오로지 100% 남한의 관행대로만 배당되었다.

북한이 작성한 이메일을 쭉 훑어보니 byte를 bite로 잘못 써 놓은 게 보였다. ㅡ,.ㅡ;;
하긴, '자전거'도 bycicle이라고 쓰기 쉬운 와중에 I와 Y를 헷갈리는 거 이해는 된다.
게다가 4비트 nibble도 '야금야금 물어뜯어 갉아먹다'라는 뜻이 있으니, 그 다음 byte 역시 bite와 전혀 무관한 명칭은 아니어 보인다.

Posted by 사무엘

2018/10/22 08:31 2018/10/22 08:31
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1546

Windows에서 돌아가는 GUI 프로그램은 커다란 자기 창을 띄우며, 그러면 작업 표시줄(task bar)에서도 그 창이 있다는 걸 표시해 준다.
그런데 작업 표시줄은 어떤 프로세스가 생성하는 여러 창들을 어떤 기준으로 선별하여 표시하는 걸까? 화면에만 표시되고 작업 표시줄에는 나타나지 않는 일명 '스텔스 윈도우'는 어떻게 만드는 걸까?

심지어 이 작업 표시줄에 등재된 창 목록은 Alt+tab을 눌렀을 때 나타나는 task 목록과도 완전히 일대일 대응하지는 않는 것 같다. 그 관계는 어떻게 될까?

일단, 작업 표시줄은 (1) child가 아니고(overlapped 또는 popup) owner(parent)가 NULL인 모든 윈도우를 자기 목록에 등재해서 표시해 준다. 대화상자건, 응용 프로그램이 클래스를 따로 등록한 윈도우건 모두 상관없다. 이건 대부분의 상황에서 충분히 합리적인 조치이다.

옛날에 대략 Windows XP 정도까지 쓰던 기억을 떠올려 보면, 디스플레이/키보드/마우스 같은 제어판 애플릿들은 분명 rundll32라는 독립된 프로세스로부터 구동된 대화상자임에도 불구하고 작업 표시줄에는 제목이 뜨지 않았다. 그 이유는 제어판 애플릿은 제어판 셸로부터 주어진 보이지 않는 부모 윈도우를 owner로 삼고 생성되기 때문이다.

그러므로 보이지 않는 윈도우를 생성하여 owner로 잡으면 대화상자뿐만 아니라 크기 조절 가능한 멀쩡한 overlapped 윈도우라도 작업 표시줄에 표시되지 않는 '스텔스' 형태로 만들 수 있다. 일반적으로 그런 건 만들 필요가 없고 그게 UI 디자인 상으로 권장되는 짓도 아니니 안 할 뿐이다.
그리고 저런 모델은 응용 프로그램의 입장에서는 자기 창이 하나가 아니라 두 개가 존재하는 셈이므로 창을 관리하는 게 약간 더 귀찮아진다.

한편, 위의 (1) 다음으로 몇 가지 단서가 있다. (2) WS_EX_TOOLWINDOW는 owner가 NULL이더라도 이 창이 무조건 작업 표시줄에 등록되지 않게 하고 심지어 Alt+tab 작업 목록에도 나타나지 않게 한다.
얘는 덤으로 제목 표시줄도 더 얇게 찍히게 한다(WS_CAPTION이 명시된 경우). 그래픽 에디터의 도구 팔레트처럼 작고 키보드 포커스도 안 받고, 화면에 언제나 표시되어 있는 그런 창을 찍으라고 있는 스타일인 것이다.

이 스타일 한 방이면 스텔스 윈도우를 아주 쉽게 만들 수 있다. 단지 제목 표시줄이 꼭 필요하고 그걸 다른 평범한 윈도우처럼 두껍게 만들고 싶을 때에만 owner 편법을 쓰면 될 듯하다.

그리고 다음으로.. WS_EX_TOOLWINDOW와 상극인 WS_EX_APPWINDOW 스타일이 있다. (3) 얘는 자기가 owner가 지정되었다 하더라도 반드시 작업 표시줄에 표시되게 한다.
Windows Vista인가 7부터는 디자인이 바뀌었는지 제어판 애플릿이 작업 표시줄에 나타나는 걸 볼 수 있다. 얘들은 여전히 owner 윈도우가 따로 있음에도 불구하고 저 스타일이 지정되었기 때문에 작업 표시줄에도 보인다. 중간에 뭔가 디자인 정책이 바뀐 듯하다.

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

내가 표시하는 대화상자나 창이 작업 표시줄을 건드리지 않고 조용히 떴다가 없어질지, 아니면 독립된 응용 프로그램처럼 뜰지 결정하는 것은 개발자의 재량이다. 다만, 작업 표시줄에다가도 나타나게 할 거면 창에다가 적절한 아이콘도 넣어 주는 게 좋을 것이다.

하지만 어지간해서는 owner가 NULL인 것만으로도 작업 표시줄에 창이 자동으로 등록되니 이 스타일이 굳이 따로 쓰일 일은 내 경험상 별로 없다.
WS_OVERLAPPEDWINDOW나 WS_POPUPWINDOW는 여러 기존 스타일들의 조합이지만 WS_EX_*WINDOW는 그렇지 않고 자신만의 고유한 값이다.

그리고 마지막으로 하나 살펴볼 게 있다.

MS Office Excel의 경우, 워크시트 문서창이 응용 프로그램 창의 내부에 소속된 child이다. 단독의 popup 윈도우 같은 게 아니다.
그럼에도 불구하고 한 프로그램에서 여러 파일을 열면 그 문서창들이 작업 표시줄에 제각각 나타난다. 이게 먼 옛날 Office 2000쯤부터 그렇게 되기 시작했는데.. 어떻게 이런 일이 가능한지 신기하지 않으신가?

이건 윈도우 스타일 조작만으로 가능한 동작이 아니고 별도의 API를 사용해서 구현한다.
셸 API들, 특히 작업 표시줄 근처에 있는 트레이(notification) 아이콘을 조작하는 API는 다 SH_*로 시작하는 고전적인 C 함수인 반면, 작업 표시줄을 조작하는 API는 ITaskbarList라는 COM 인터페이스 형태이다.

ITaskbarList를 얻어 온 뒤 HrInit를 호출해서 초기화하고, MDI 문서 창이 생성되면 자기 자신에 대해 AddTab + ActivateTab을 호출한다(ActiveTab도 반드시 해 줘야 됐음). 그리고 문서 창이 닫힐 때는 DeleteTab를 하면 된다. 이렇게만 하면 당장 날개셋 편집기조차도 얼추 Excel처럼 문서 창을 작업 표시줄에서 곧장 접근 가능하게 수정할 수 있다.

사용자 삽입 이미지

다만, 일이 마냥 간단하지만은 않다. 문서 창뿐만 아니라 기존 날개셋 편집기 자체의 창이 등록된 것도 같이 관리해야 하기 때문이다.
문서 창이 없거나 하나밖에 없으면 그냥 프로그램 자체의 창 하나만 유지하고 있고, 문서 창이 2개 이상이 되면 그때부터 프로그램 창은 날리고 문서 창들이 작업 표시줄에 나타나게 해야 한다. 불가능한 일은 아니지만 자동화가 돼 있지 않아 귀찮다. 마치 클립보드 viewer chain을 관리하는 것처럼 말이다.

요컨대, owner 윈도우, WS_EX_TOOL/APPWINDOW 스타일, 그리고 ITaskBarList 인터페이스만 기억하고 있으면 창과 작업 표시줄의 연계는 다 마스터했다고 볼 수 있겠다.
참고로 ITaskBarList는 초창기에는 이렇게 탭을 수동으로 등록하고 삭제하는 원시적인 기능만 있었다. 아마 IE 4나 5 시기쯤, 웹 브라우저와 운영체제 셸이 얽혀서 마개조되고 DLL hell 현상이 악명을 떨치던 20여년 전에 첫 등장했다.

그러다가 얘가 온갖 기능이 추가되어 ITaskBarList3으로 발전한 게 2000년대 말의 Windows 7 타이밍이다. 작업 표시줄에다가 응용 프로그램의 고유한 썸네일을 표시하고, 백그라운드 작업 진행률을 나타내고, 재생기의 경우 간단한 재생/멈춤 같은 버튼까지 갖다박는 UI 요소가 그때 추가됐기 때문이다. 그런 기능들을 바로 저 API를 통해 사용할 수 있다.

Posted by 사무엘

2018/10/17 08:34 2018/10/17 08:34
,
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1544

1990년대 말~2000년대 초에 어지간한 인터넷 웹사이트들은 폭이 참 꾀죄죄하고 입구나 메뉴가 플래시로 만들어졌으며, "IE 6 브라우저와 1024*768 해상도에서 가장 잘 표시됩니다" 이런 거 적는 게 유행이었다. 커뮤니티 게시판은 제로보드 4로 만들어지기도 했다. 물리적인 프레임 구분이 있는 웹사이트도 있었다. "이 페이지를 보려면 프레임을 지원하는 브라우저가 필요합니다" 에러 문구도 있고 말이다.

지금 저런 사이트를 보면 유지 보수되고 있지 않은 옛날 구닥다리 골동품 냄새가 풀풀 느껴질 것이다. 게시판은 온통 스팸 광고글로 넘쳐나고 있지 않은지가 걱정될 지경이고 말이다.

요즘 스타일의 웹사이트라면 큰 폭에 유연히 대처할 뿐만 아니라 플래시 없이 JavaScript만으로 모든 인터랙티브한 UI를 구현해야 한다. 특히 화면이 아래로 스크롤 됐을 때 메뉴 같은 게 쏙 줄어들어서 화면 한구석으로 밀려나는 거라든가.. 목록의 끝을 열람했을 때 다음 목록이 뒤에 실시간으로 추가되는 기능 같은 게 요즘 유행인 것 같다. css만 바꿔서 모바일 최적화 페이지도 제공하고 말이다.

사실, 본인조차도 HTML 지식은 거의 2000년대 초반 이래로 정지-_-해 있어서 최신 스타일의 홈페이지를 만드는 법을 잘 모른다. 그래도 옛날보다는 지금이 웹 기술들의 파편화가 훨씬 줄어들고 웹 개발자들이 일하기 편리해지긴 했다.
지나간 옛날 이야기이다만 싸이월드의 사이트 개편도 그런 변화를 따라가기 위한 명분과 당위성이 충분한 개편이었다. 구형 싸이월드는 시대에 너무 뒤쳐졌었기 때문이다. 하지만 개편을 매끄럽게 제대로 못 하고 개악에 가까운 수준으로 해 버리는 바람에 사용자들이 대거 이탈하고 망하게 됐다.

웹사이트의 현대화를 나타내는 지표는 단순히 저렇게 외형적인 것에만 있는 게 아니다.
웹 문서들의 인코딩은 국제 표준으로 등극한 UTF-8로 통일하도록 하고, 서버의 각종 URL에도 오로지 영문· 숫자만 쓰거나 아니면 최소한 UTF-8방식으로 인식하게 설정해야 한다.
1990년대 말에 한글로 된 파일을 첨부한 것이 인식되지 않는 문제를 해결한답시고 IE에서 "URL을 언제나 UTF-8 방식으로 보냄" 옵션을 끄는 게 팁으로 통용되었던 건.. 마치 Windows Vista에서 UAC 옵션을 끄는 팁만큼이나 뭔가 미개한 관행이었다.

그리고 요즘 무시할 수 없는 대세가 바로.. HTTPS이다. 이건 웹사이트계의 디지털 서명이나 마찬가지이다.
사용자가 서버로 뭔가를 입력하고 보내는 게 전혀 없이 오로지 일방적으로 조회하고 표시하는 기능밖에 없는 사이트라면 모를까, 로그인을 하고 최소한의 interaction이 있는 사이트라면 내가 이 사이트를 믿고 내 개인 정보를 제공해 줘도 되겠는지에 대한 보증이 필요하다.

요즘 최신 브라우저들은 HTTPS가 아닌 구닥다리 HTTP를 쓰면서 폼 입력 기능이 있는 웹사이트에 대해, 갈수록 더 적극적으로 "이 사이트는 위험함, 정보 전송을 권장하지 않음"이라고 경고하는 추세이다.
그러니 사이트 운영자들은 깔끔한 UX를 방문자에게 제공하기 위해서는 HTTPS를 도입해야 하는데.. 여기에는 대가가 따른다. 인증서를 발급받아야 하고 암호 해독 때문에 서버의 트래픽과 오버헤드가 더 증가하는 것도 감수해야 하고.. 귀찮다.

내 홈페이지는 언제쯤 HTTPS를 도입하게 될지 모르겠다. 웹사이트가 아니라 당장 날개셋 한글 입력기 바이너리조차도 디지털 서명을 안(못) 하고 배째라 쌩으로 배포하고 있거늘..;;

이렇듯, Windows 기준으로 응용 프로그램의 현대화 지표가 유니코드 API, 고해상도 DPI 지원, 공용 컨트롤 6 매니페스트 같은 거라면, 웹사이트의 현대화 지표는 UTF-8, 無플래시, 최신 HTML/CSS 요소, 모바일 페이지, HTTPS 같은 것들이라 하겠다.

그나저나, HTML5 웹표준의 지원 수준 척도로 여겨지고 있는 ACID3 테스트 말이다.
마소에서 만든 IE11과 Edge도 ACID3을 100점 만점으로 통과하고 있고 Google 크롬 역시 예전에는 그랬던 것 같은데 요즘 버전은 97점에서 멈추고 있다. 내 자리만 그런 줄 알았는데 그렇지 않다. 또 뭐가 바뀌어서 그런지 모르겠다.

한편으로 크롬은 과거에는 APNG(png 기반 애니메이션)를 웹 비표준이라는 이유로 지원하지 않다가 요즘은 지원하기 시작했다.
크롬도 나온 지 벌써 10년이나 됐다(since 2008). 정말 엄청난 속도로 버전업을 하고 있고 지금도 프로그램 내부가 쉴 새 없이 변하고 있는 것 같다.

또한, 요즘은 세상이 바뀌어서 옛날처럼 마소와 오픈소스 진영이 브라우저 전쟁을 하는 게 아니며, Visual Studio로 어설픈 Windows Phone 앱 대신 무려 안드로이드 앱을 만드는 지경이 됐다. 옛날에다 비유하자면 컴퓨터 세계에서 미국· 소련간의 냉전이 끝난 것이나 마찬가지인 것 같다.
삼성 갤럭시와 애플 아이폰도 갈수록 서로 비슷해져 가고 있다. (배터리 일체형은 삼성이 따라하고, 큼직한 화면은 애플이 따라하는 식)

IT 업계가 전반적으로 분리와 파편화가 아니라 통합과 상생이 대세인 듯하다.
마소의 경우 빌 게이츠와 스티브 발머 같은 초창기 원로들이 경영진에서 물러나고 사티아 나델라가 집권한 뒤부터 경영 방침과 회사 분위기가 굉장히 크게 바뀐 게 느껴진다. 제아무리 천하의 마소라 해도 영원무궁토록 Windows와 Office만 갖고 먹고 살 수는 없는 노릇이고, 언제까지나 오픈소스 진영과 척지고 살 수는 없으며 인제 와서 Windows Phone이 안드로이드와 아이폰을 이긴다는 건 불가능할 테니 말이다.

뭐, 경쟁자들을 적대시하여 어떻게든 독과점으로 말려 죽이려 했던 옛날 마소 경영자들의 전략도 그 시절에는 기업의 생존을 위해 필요하긴 했을지 모른다. 천하의 삼성 전자도 과거에는 일본의 아류 짝퉁이나 만드는 영세 전자 기기 제조사였던 적이 있으며, 마소도 처음에는 그냥 공룡 하드웨어 제조사에다가 소프트웨어를 납품해서 먹고 사는 을의 처지로 시작했다는 점을 기억할 필요가 있다. 지금의 여유로운 잣대로 옛날을 함부로 판단하지는 않을 것이다.

Posted by 사무엘

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

(1) 미국 대선이 치러지는 절차: 우리나라 같은 단순무식한 직접 선거가 아니고 뭐가 그리 복잡하냐.. 잘 알다시피 땅이 너무 넓어서 그냥 선거인만으로 간접 선거를 하는데, 선거인단을 뽑는 절차와 조건, 그리고 표를 취합해서 당선자를 가리는 방식도 그냥 직관적인 다수결이 아니다. 미국 내부에서도 현행 선거 방식이 너무 복잡하다고 비판하는 사람이 있다.

(2) 야구 룰: 득점 조건이 정확하게 무엇이고, 경기를 이기려면 각 선수들이 무엇을 잘해야 하는지.. 투수가 던진 공을 타수가 빠따로 친 뒤, 그 다음부터 벌어지는 일의 내막을 전~혀 모른다.
전산학 용어로 표현하면, 야구 경기라는 프로그램의 내부 상태 전이 그래프에 대한 총체적인 그림이 없다.

(3) FIFA 월드컵에서 토너먼트가 진행되는 절차: 이 경기에서 몇 점 이상으로 이기면 상대방 국가에도 어떤 영향을 주고, 저쪽 나라가 이기면 우리도 16강 가고, 반대로 우리가 이 경기를 이기면 다른 무슨 나라가 탈락하고 이렇게 유기적으로 연결되는 그 조건과 원리.. 모름.

물론 요즘 세상에 10~20분만 투자해서 검색해서 공부해 보면 알 수 있겠지만.. 현재로서는 그럴 필요를 느끼지 않는다.

그리고 본인이 원리를 잘 모르는 분야가 또 있는데, 바로 달력이다.
우리나라는 공식적으로는 세계 공통인 서기 연호에다가 그레고리 태양력을 사용한다. 하지만 민간에서는 여전히 음력 날짜가 쓰이며, 설이나 추석 같은 주요 명절은 음력으로 계산된다. 그렇기 때문에 달력에는 음력 날짜도 병기돼 있다.

철도에서 디젤 기관차가 더 정확하게는 디젤-전기 기관차인 경우가 대부분이듯, 한국에서 음력이라고 불리고 쓰이는 달력은 더 정확하게는 태음 태양력이다. 윤달을 넣어서 음력을 양력 달력에다가 절충한 물건이기 때문이다.
음력 달력은 딱 하나로 정해져 있는 것도 아니라는데 중국· 일본에서는 음력이 존재하는지, 존재한다면 어떤 방식을 쓰는지 모르겠다. 또한 우리나라에서는 언제부터 이런 음력 달력을 써 왔는지도 궁금하다.

우리나라에서 공식적으로 단기 대신 서기 연호를 사용하기 시작한 것은 박 정희 3공 때라고 하는데, 음력 대신 양력 달력을 쓰기 시작한 것은 훨씬 더 옛날인 구한말 을미개혁 때부터라고 한다(1896년).

그리고 더 궁금한 것은 양력과 이 음력 달력은 공식 계산만으로 날짜의 상호 변환이 가능하느냐는 것이다.
그때 그때 어떻게 바뀔지 알 수 없는 천문 데이터가 필요하기라도 한지, 음력 변환은 임의의 연도로 아무렇게나 가능하지 않고 수십 년 정도의 가까운 미래나 과거까지만 제공되는 경우가 대부분이다. 정 궁금하면 한국 천문 연구원에 문의라도 해야 할 것 같다.

우리나라는 개인 취향상 생일을 음력으로 지키는 걸 고집하는 사람도 적지 않다.
하지만 일본의 경우 서양 문물을 받아들이면서 과거의 음력 관행을 우리나라보다 더 철저하게 없앤 것으로 본인은 기억한다. 성명을 로마자로 표기할 때도 우리나라처럼 성-이름 따위 고집하지 않고 깔끔하게 이름-성 서양 스타일을 받아들였는데..

그런데 일본은 책이나 신문에서 세로쓰기 정서법은 의외로 보수적으로 꿋꿋이 유지하고 있는 듯하다. 주변의 한국과 중국에서는 세로쓰기가 거의 다 사라졌는데 말이다.
중국은 일본처럼 서양 문물을 받아들인 것보다는, 공산당 시절의 적폐 청산 개혁을 거치면서 글자가 간체자로 바뀌고 가로쓰기가 시행되어 있다.

여름에 마케팅 차원에서 어김없이 따지는 복날도 음력 달력과 관계가 있는 건지 모르겠다(아마 아닌 듯). 지금은 상식으로 다 알려져 있는 천제의 움직임과 절기, 달력 같은 것도 먼 옛날에 관찰만으로 최초로 알아낸 사람들은 당대 최고의 엘리트 지식인이었을 것이다..;;

Posted by 사무엘

2018/10/13 08:37 2018/10/13 08:37
Response
No Trackback , No Comment
RSS :
http://moogi.new21.org/tc/rss/response/1542

« Previous : 1 : ... 77 : 78 : 79 : 80 : 81 : 82 : 83 : 84 : 85 : ... 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:
3050057
Today:
1077
Yesterday:
2142