Posted by 사무엘
Posted by 사무엘
※ 2.0x
조합형 아스키 파일을 불러와서 편집하는 입력기 기술 데모 수준에 불과하던 1.x 에디팅 엔진이 2.0에 와서는 비약적으로 향상됐다. 서로 다른 입력 설정을 가질 수 있는 입력 항목을 4개까지 가질 수 있고 간단하게나마 플러그 인 확장도 가능해졌다.
편집기는 이제 자동 줄바꿈과 탭 문자가 지원되고 옛한글도 쓸 수 있게 되었다. 유니코드에 대한 지식이 부족해서 당시 아직도 널리 쓰이던 한/글 97의 내부 코드를 사용했던 게 무척 이색적임. 이게 무려 2002년의 일이다.
※ 2.3x
2.0 엔진을 기반으로 해서 편집기에 굉장히 많은 편의 기능이 추가되었다. 예를 들어, 중복 실행 방지라든가 전체 화면 같은 옵션은 이 버전대에서 처음으로 추가되어 오늘날에 이르고 있다.
※ 2.5
2.4와 기능면에서는 큰 차이가 없으나 드디어 개발툴이 비주얼 C++ 2003으로 업그레이드되어 향후 6년간 이 툴이 쓰이기 시작했다. 그리고 이 때부터 MSI 패키지 방식으로 프로그램이 배포되기 시작했고, 이 버전에서 정말 허접하게나마 TSF 모듈이 시범적으로 도입됐다.
※ 3.0 ~ 3.02
<날개셋> 개발 역사상 버전업 gap이 가장 길었던 3.0은 더 말이 필요 없다. API가 밑바닥부터 완전히 revamp되었다.
입력 기본 문자가 64비트 크기로 확장되고 100% 유니코드 기반 설계, 오토마타와 글쇠배열에 수식 지원, 임의의 개수의 입력 아이템 등록, 입력 스키마와 문자 생성기 계층의 분리, 첫가끝 방식 옛한글 표현 등 지금 <날개셋> 한글 입력기의 근간을 상당수 이때 이뤄냈다.
물론 엔진 교체에만 치중하느라 2.x에 있던 기능이 다운그레이드된 것도 그때는 있었다.
3.01은 3.0의 여러 치명적인 버그 수정 중심이었다.
엔진뿐만 아니라 외부 모듈 쪽 연구도 꾸준히 이뤄진 덕분에 3.02 때는 드디어 <날개셋> 한글 입력기가 역사상 처음으로 정식 외부 모듈(윈도우 IME)로 개발되는 쾌거를 이뤘다. 전용 에디터인 편집기 말고도 또 하나의 프런트 엔드가 추가된 것이다.
※ 3.1
상당히 개발 기간이 길었다. 외부 모듈을 처음 만들면서 부딪혔던 지옥 같은 온갖 버그들의 해결에 초점을 맞췄다. 그 후로도 3.x, 심지어 4.x 초반때까지도, 너무 투박하던 3.0x의 UI 편의성 강화 내지 다운그레이드 요인 해소 같은 개선 작업은 계속됐다.
※ 3.41
기념비적인 작품이다.
지금과 같은 tree 형태의 <날개셋> 제어판 UI가 이 때 정착했다. (3.0 UI는 지금보다 훨씬 더 불편했음)
그리고 한 바이너리로 유니코드도 지원하고 윈도우 9x에서도 실행 가능한 기술이 자체 개발되어 이 버전 때부터 적용됐고, MFC 라이브러리에 대한 종속성도 이때부터 완전히 사라졌다. 이 외에도 추가된 기능들 엄청 많다.
원래 3.4가 나왔으나, 치명적인 버그들 때문에 약 3주만에 역사 속으로 묻혔다. -_-
※ 3.9
3.5와 3.65는 여전히 외부 모듈 버그 해결 위주였고..
3.9에 와서 한글 입력 엔진이 장족의 발전을 이뤘다. 특수 도깨비불과 결합 축약 규칙이 도입되어 휴대전화 같은 굉장히 특이한 한글 입력 방식을 기술하는 기반이 마련되고, 한글뿐만 아니라 임의의 문자를 조합 상태로 입력할 수 있는 "날개셋 고급 입력기"라는 문자 생성기도 추가되었다.
아울러 XML 방식으로 입력 설정 파일을 읽고 쓰는 기능이 최초로 도입된 것도 이 버전부터이다.
※ 4.2
외부 모듈 쪽 버그를 잡은 것도 많지만, 편집기에 세로쓰기가 가능해지고(비록 기괴해 보이지만 -_-) undo/redo 기능이 지금과 같은 수준으로 쓸 만해진 게 이 버전부터이다.
사실 4.x은 3.x 엔진을 기반으로 해서 끊임없이 기능이 추가되고 외부 모듈이 안정화되던 단계였지 옛날 같은 급격한 변화는 없었다.
※ 4.4
윈도우 비스타와 MS 오피스 2007 같은 거물급 소프트웨어가 연달아 출시된 지 얼마 안 된 2007년 초에 나왔다. 이 버전은 에디팅 엔진부터 시작해서 외부 모듈 등 다방면에 걸쳐 굉장히 많은 기능이 추가되고 강화되었다. 윈도우 비스타 환경에 특화된 업데이트가 적용되었음도 물론이다.
개인적으로 무척 의미 심장한 버전이었다고 생각하는데, 놀라운 건 4.4는 4.2가 나온 지 불과 90일이 채 안 되는 짧은 기간만에 완성되었다는 것이다. 게다가 그 기간 동안 세벌식 파워업도 먼저 업데이트하고, 타자연습도 적지 않게 기능이 더해지고 고쳐졌다. 10년에 가까운 <날개셋> 한글 입력기 개발 역사상, 거의 전무후무한 사건이 아닌가 싶다.
어떻게 이 일이 가능했을까? 당시 근무 중이던 병특 회사가 망해 가면서 사실상 조업 중단 상태였고, 덕분에 개인 시간이 굉장히 많았던 덕분이었다. =_=;;
※ 4.55
지금과 같은 언어 리소스 파일이 확실하게 독립한 게 이 버전부터이다. 영어 말고 여타 언어 UI도 이제 이론적으로는 얼마든지 추가가 가능해졌는데, 그런 거 할 인력이 없으니.. -_-;;
이 시기에 정 재민 님의 노력 덕분에 같이 제공되는 비트맵 글꼴의 양과 품질도 굉장히 향상되었다.
※ 4.8x
짠.. 시대의 요구에 부합하여 이때 드디어 64비트 에디션이 나오기 시작했다.
그리고 이때, 프로그램 디렉터리 구조도 윈도우 비스타 기준대로 더욱 깔끔하게 바뀌었다.
4.81에 와서야 드디어 수식에 상수 명칭이 도입되었다.
※ 5.0
비록 기능상의 큰 변화는 없지만 한글 표현 범위가 유니코드 5.2에 맞춰서 확장됐으니, 5.0이라는 번호에 걸맞은 매우 의미심장한 변화라 할 수 있다. 또한 3~4대 버전에서 사용되어 온 비표준 한글 표현 관행도 완전히 없어졌다.
3~4대 버전에서 그대로 쓰이던 입력 설정 파일 포맷이 이 버전에서부터 바뀌었다. 그 대신, 한글 코드 변환과 옛날 방식 설정 파일의 변환만을 전문으로 하는 별도의 유틸리티가 추가됐다.
※ 5.3
나이를 먹고 사회적 위치가 바뀌면서 본인은 점차 시간의 압박에 시달리고 있다. <날개셋> 개발 주기도 갈수록 길어지는 게 눈에 띈다. 하지만 5.3은 5.0 이후 꽤 긴 시간만에 완성된 만큼 알찬 변화가 많으며, 보기 좋은 작품이다.
편집기는 8*4*4 도깨비 한글 글꼴뿐만 아니라 임의의 조합 테이블을 내장한 자체 글꼴을 지원하기 시작해, 옛한글 자모까지 포함하여 더욱 다양한 한글 글꼴을 사용할 수 있게 되었다.
이것 말고도 5.3에서의 가장 큰 변화는 "입력 패드"라는 제 3의 프런트 엔드의 추가이다. 편집기처럼 실행해서 외부 모듈처럼 다른 프로그램에다 글자 입력을 보내 주는 이 도구는 포인팅 장비로 입력 UI를 클릭하여 문자 입력이 가능하다. 예전에 존재하던 화면 키보드도 이런 입력 UI 중의 하나로 위상이 바뀌고, 동일한 UI를 세 개의 프런트 엔드에서 동일하게 구동하는 체계가 정립된 것이다.
그건 그런데, 5.3에 와서도 아직도 외부 모듈 버그 수정 사항이 심심찮게 보인다. 정말 윈도우 IME는 제대로 만들기가 불가능하며, 문제가 생길 때마다 그때 그때 고치는 수밖에 없다.
5.31은 5.3의 버그 패치라기보다는, 5.3에서 미처 다 못 넣은 기능들에 대한 강화판에 더 가깝다.
※ 5.5x
이 버전부터는 프로그램의 무설치 실행이 가능해졌으며, 윈도우 7에서 새롭게 발생하는 문제에 대한 패치가 몇 차례 이뤄졌다. 내부적으로는 개발툴이 6년만에 업그레이드되었다.
이 외에, 입력 UI로 부수 한자 입력기와 문자표가 입력 UI로 추가되었다. <날개셋>은 기술적으로 키보드 입력뿐만 아니라 터치스크린 입력 방식까지 커버할 만반의 준비를 하고 있는 중이다.
최신 버전인 5.52가 나온 후 현재 개인적으로 작업해 놓았거나 작업 중인 사소한 수정 사항은 다음과 같다. 일종의 ‘알려진 버그’인 셈이다.
1. 윈도우 라이브 메신저에서 마우스 클릭으로 대화창을 연 후 한글을 바로 입력하면 첫 타가 영문으로 씹히는 문제 (이건 기술적으로는 메신저의 버그임. 문제를 피해 가도록 조치를 취함)
2. 지금은 기억도 안 나는 여러 UI 개선. 특히, 받침 결합 규칙이 전혀 없는 세벌식 최종 자판에서 글쇠배열만 390이나 두벌식으로 바꾸려 할 때 경고 메시지가 뜨게 바꿈. ^^;;
3. XML 방식으로 설정 파일을 저장할 때, "" 안에 들어있는 부등호나 따옴표 같은 문자가 & 엔티티로 제대로 바뀌지 않을 수도 있는 문제를 발견하여 수정
4. 윈도우 7의 콘솔에서 한글을 조합 중이다가 조합을 중단할 때, 조합 중이던 한글이 덧나는 문제가 있다. ‘다 -> 다다.’ 처럼. 이게 일단은 MS IME에서도 두벌식이 아닌 세벌식 모드일 때 동일하게 나타나며, 비스타에서는 전혀 나타나지 않는 증상이 7에서만 나타나는 걸로 미뤄 볼 때 운영체제의 버그일 가능성이 높다.
5.52 이후 다음 버전은 또 기능 추가에 초점을 둔 5.7 정도로 생각 중이다.
Posted by 사무엘
Posted by 사무엘
본인은 컴퓨터 가상화 프로그램으로 VMware와 도스박스(DOSBox)를 애용하고 있다. 순수 도스와 윈도우 3.x까지를 돌리는 데는 도스박스가 독보적인 솔루션인 반면, 윈도우 9x부터 시작해 여타 NT급 운영체제, 리눅스 등을 구동할 때는 VMware를 사용한다.
둘은 구동하는 방식이 근본적으로 다른데 이 차이를 세세히 논하기 위해서는 나도 잘 모르는 CPU 계층에서의 난해한 개념 설명이 필요하다. 하지만 다 모르더라도 이 사실 하나만 기억하면 된다. VMware(와 기타 동급의 가상화 프로그램)는 CPU가 하드웨어 차원에서 자체 제공하는 가상화 기능을 적극 활용하여 동작하며 이는 32비트 윈도우 NT급 운영체제가 아주 허접하게 호환성 에뮬레이션 계층으로 제공하는 NTVDM도 마찬가지이다. 하지만 도스박스는 CPU 동작 자체를 포함해 모든 하드웨어 동작을 소프트웨어적으로 흉내 낸다.
그 결과 둘은 제각기 일장일단을 갖게 된다. D는 동작 방식의 특성상, 태생적으로 성능은 V보다 꽤 뒤쳐진다. 오늘날의 1~2GHz급 초고성능 컴퓨터에서 겨우 90년대 중반, 윈도우 95 출현 직전의 486~펜티엄급 PC의 성능을 낸다. 사실, 도스의 수명은 거기가 끝이었으므로 그 정도만 동작해도 D는 제 할 일 충분히 해 낸 셈이다. 32비트 보호 모드도 지원하여 둠 정도까지는 도스용을 잘 실행해 내지만, 퀘이크까지 되면 차라리 윈도우용으로 포팅된 퀘이크를 돌리는 게 낫다는 뜻.
하지만 D는 소프트웨어 계층이 담당하는 일이 많은 덕분에, V의 방식으로는 상상도 할 수 없는 다양한 옛날 하드웨어를, 호스트 컴퓨터의 성능만 좋다면 얼마든지 재현해 낼 수 있으며 컴퓨터 구동 속도도 세밀하게 제어할 수 있다.
V의 경우 PC 스피커 소리가 제대로 나지 않으며, 위험한 데이브는 너무 빠르게 돌아가고 금도끼(도스용)는 너무 느릿느릿 실행된다. 이것은 V의 방식으로는 소프트웨어적인 방법으로 제어를 할 수 없다. 윈도우 3.x를 설치는 할 수 있으나 guest extension(VMware tools)을 제공하지 않으며 겨우 16컬러 VGA에서밖에 사용할 수 없다. 사실 V는 근본적으로 16비트 구닥다리 플랫폼 에뮬이 주된 목적인 제품이 아니다.
그 반면 D는 어떤가? 아예 PC 스피커 소리와 옛날 애드립 소리를 사운드카드로 흉내 내어 준다. 그냥 비프음뿐만 아니라, 하드웨어를 교묘하게 제어하여 PC 스피커로 얼추 사운드카드 소리를 내던 기법까지 완벽하게 재현된다! 화면/동영상/음성 캡처야 요즘 가상화 프로그램들이 거의 필수로 갖추고 있는 기능이지만, 아예 프로그램이 내리는 미디 명령을 캡처하여 게임 음악의 미디 악보를 저장하는 기능은 하드웨어를 소프트웨어적으로 흉내 내지 않고서는 구현할 수 없는 기능인 것이다.
없는 하드웨어를 소프트웨어로 다 만들어 준다. 일일이 autoexec나 config.sys 튜닝을 하지 않아도 EMS, XMS 같은 메모리 세팅도 다 자동으로 해 주고, 과거의 베사 SVGA 비디오나 미디 카드, 마우스, 심지어 모뎀 따위도 프로그램이 필요로 하면 다 잡아 주니 V와는 비교가 안 되는 그야말로 도스 천국이 아닐 수 없다. 옛날 잡동사니 드라이버 파일을 뒤지면 윈도우 3.x도 그래픽/사운드 잡아서 쓸 수 있다. 더구나 D는 무려 윈도우 9x에서도 돌아간다!
아무튼 D는 참 대단한 프로그램임이 틀림없다.
그러고 보니 굳이 NT 계열로 운영체제가 완전히 넘어가기 전부터도 윈도우 9x 시대가 되면서 디렉터리의 파일들을 정렬-_-해 주는 유틸리티, 그리고 파일 첫 글자를 입력하여 지운 파일을 살리는 undelete 유틸리티는 아련한 추억 저편으로 사라진 것 같다. FAT32를 도입한 윈도우 95 OSR2가 이를 더욱 가속화한 게 아닌가 싶다. 요즘 NT 계열에서 쓰이는 NTFS는 아예 구조적으로 파일이 자동으로 정렬이 유지되는 파일 시스템이다.
그 전의 FAT16은 하드디스크 크기를 겨우 2GB까지밖에 인식 못 했었다. 요즘은 하드가 아니라 램 크기가 수 GB인데! ㅎㄷㄷㄷ FAT16이 MS 도스 4.0에서 처음 도입되어서 그때는 그걸 갖고 “하드디스크 용량 제한이 ‘없어졌다’”라고 말을 붙이곤 했다. (과거의 FAT12는 한술 더 떠서 하드디스크를 32MB까지밖에 인식 못 했음)
하지만 윈도우 9x는 FAT32로도 100수십 GB 이상의 하드는 제대로 인식 못 하니 어차피 요즘 컴퓨터에서는 쓰지도 못한다.
참고로, VMware에다 과거 윈도우 운영체제를 설치해 보면, 2000/ME부터는 사운드를 자동으로 인식하고 멀티웨이브까지 되는 반면 95/98은 그렇지 못하다. USB 메모리를 안전하게 제거하는 트레이 메뉴가 추가된 것도, 그리고 미디에 소프트웨어 신시사이저가 기본 내장된 것도 2000/ME부터이다.
이런 맥락에서 보면 윈도우 ME는 같은 9x 계열 중에서 그저 나쁘기만 한 게 아니라 최신 하드웨어의 지원 면에서는 98 SE보다 나아진 점도 분명 있다. 하지만 괜히 도스로 부팅하는 기능만 쏙 빼서, 도스 지원 때문에 윈도우 9x 계열을 일부러 선호하는 사용자들로부터도 외면 받았고, 1년 남짓 XP가 출시되는 바람에 아주 짧은 시간만에 묻혀 버린 비운의 마지막 9x 계열 운영체제로 역사에 기록된 셈이다.
98도 마찬가지. 처음 나왔을 때는 윈도우 95+IE4 통합일 뿐이라고 비아냥거림이 많았지만, 95는 마우스 휠, USB, 멀티 모니터라는 개념 자체가 없었던 캐 구닥다리였다. 그런 것들이 도입되고 IME의 문자 입력 프로토콜이 유니코드로 확장된 것만으로도 98은 정말 숨통을 튼 것이었다. 98 SE는 윈도우 9x 계열 중에서는 정말 최장수 안정판이었음도 주지의 사실이다.
Posted by 사무엘
본인이 고등학교 때부터 딱 바뀌어서 지금까지도 변함없이 이어지고 있는 생활 습관을 들자면,
매일 성경을 읽기 시작했다.
세벌식을 쓰기 시작했다.
그리고, 노트북 컴퓨터를 끼고 살기 시작했다.
그래서 10년이 넘는 시간 동안 내가 노트북 없이 산 기간은 몇 개월이 채 안 된다.
노트북보다 더 작은 기계에조차 관심을 두지 않을 정도이다. 통화와 문자 이외에 스마트폰 같은 건 전혀 필요를 느끼지 않으며, 심지어 지하철 안에서 MP3조차도 노트북을 켜서 들을 정도이다.
초대: 삼성 센스 (1998. 3. ~ 2003. 5.) 지하철에서 분실
펜티엄, 윈도우 95/98급, 800*600 화면
USB 포트도 없는 완전 구닥다리였지만, 잃어버리는 마지막 순간까지 내 인생의 멋진 동반자였고 이걸로 <날개셋> 한글 입력기를 무려 2.x대까지 개발해 냈다. 램이 원래 16MB이던 것을 48MB까지로 확장하고 유선 랜 카드도 따로 장착했다.
전반적으로 튼튼하고 특히 내장 마이크 성능이 매우 뛰어난 게 마음에 들었으나, 아래 화살표 같은 키캡이 곧 빠지고 99년 무렵부터는 액정 접촉 불량도 조금씩 감지됐다. 2000년 말엔 한번 대대적인 수리를 받기도 했다.
2대: HP 프리자리오 (2003. 7. ~ 2005. 11.) 사고로 파손
펜티엄 III 중고, 윈도우 2000/ME급, 1024*768 화면
초대 노트북보다야 훨씬 성능이 좋지만, 그렇게 좋은 성능은 또 아니었기 때문에 데스크톱 완전 대용으로 쓰기에는 무리가 있었다. 중고여서 그런지 값은 쌌지만 내구성이 좀 약했던 걸로 기억한다. 이때 USB 플래시 메모리를 최초로 사용하기 시작했고, 무선 랜 카드를 달아서 썼다.
2004년 말엔 컴퓨터가 아예 켜지지 않는 문제가 발생하여 메인보드를 교체하는 수리를 받았다. 그렇게 계속 사용해 왔지만, 그로부터 1년 남짓 뒤엔 노트북 책상 위의 열린 창문으로 폭우가 그대로 쏟아지는 사고가 나는 바람에 기계 사망.
3대: LGIBM XNOTE (2005. 12. ~ 2008. 5.) 자폭
펜티엄 M 준중고, 윈도우 XP급, 1400*1050 화면
이제야 좀 데스크톱 성능과 비슷한 컴퓨터다운 컴퓨터를 사용하기 시작했다. 화면도 큼직하고, 윈도우 XP도 마음껏 돌리고 배경 사진도 트루컬러로 지정하고, 가상 머신도 돌리고 용량 걱정 없이 백업도 마음껏 하고.. -_-;;
모든 게 괜찮았고 이 기계를 한 5년은 쓸까 생각도 하고 있었는데 역시 준중고여서 그럴까? 구입한 지 몇 개월이 안 돼 액정 접촉 불량이 생겼다. 화면을 펼치다 보면 화면이 꺼져 버리는 것 때문에 굉장히 답답했고, 서비스 센터에 문의하여 부품을 여러 차례 교체한 뒤에도 이건 지병처럼 달고 다녀야 했다.
그러다 결국은 병특 기간 3년을 미처 못 채우고, <날개셋> 한글 입력기 5.0이 완성되는 걸 미처 구경 못 하고서 저절로 메인보드가 사망해 버렸다. 컴퓨터가 잘 돌아가다 갑자기 꺼져 버리거나, 켜지질 않았다. 내가 평소에 좀 험하게 다루긴 했어도 딱히 물이 들어가거나 떨어뜨리거나 외부적인 요인은 없었다.
4대: LGIBM XNOTE (2008. 6. ~ ) 현역 활동 중
Core2Duo, 윈도우 비스타급
3대 노트북의 후속 기종으로, 성능은 더욱 향상됐다. 또한 요즘 추세와는 달리 4:3 화면인 아주 희귀한 기종인데, 본인은 와이드 대신 4:3 화면이 훨씬 더 익숙하고 이를 더 선호한다.
지금까지 약 1년 반 동안 썼지만, 잔고장이 전혀 없이 어디서나 임무를 잘 수행하고 있어서 매우 만족스럽다. 역시 신제품이 튼튼한 건 사실이다.
액정 접촉 불량도 없고, 심지어 노트북의 고질병인 키캡이 빠진 것도 지금까지 전혀 없다. 엔터 키가 조금 약한 상태이긴 하지만 우려할 만한 정도는 아니다. OS로 비스타를 사용하고 있으나 7을 설치하는 데도 아무 문제 없다. 앞으로 수 년은 더 이 기계를 쓸 것이다. 3년을 미처 못 쓴 2대와 3대보다야 임기가 더 오래 유지되지 않을까? ^^
노트북은 너무 작으면 성능에 비해 가격이 치솟으며 더구나 본인처럼, 빠른 타자와 넓은 화면이 보장되는 준 데스크톱 급의 개발 환경이 필요한 사람에게도 부적합하다.
그렇다고 해서 너무 무겁고 크면 LCD 때문에 역시 가격이 비싸지며, 들고 다니기도 힘들어진다.
역시 자기 용도에 맞는 녀석 구입하는 게 중요한 것 같다.
Posted by 사무엘
Posted by 사무엘
Posted by 사무엘
꽤 희귀한 기회 덕분에,
한때 시대를 풍미했던 상업용 소프트웨어의 소스를 구경하게 됐습니다.
윈도우 3.1에서 돌아가는 녀석이었거든요.
저야 도스박스에다 윈도우 3.1 + 비주얼 C++ 1.5도 갖추고 있어서 이걸로 돌려도 되지만
32비트로 포팅을 해 보고 싶어서 최신 개발툴로 프로젝트를 만들고 빌드를 해 봤습니다.
당연히 바로 빌드는 안 되고 수백여 군데에서 에러가 나는데...
16비트 윈도우 코드의 특징을 한눈에 알 수 있었습니다.
1. precompiled header가 없었는지 매 소스 파일마다 <windows.h> 인클루드.
2. 말로만 듣던 far, huge 포인터의 압박. 메모리 모델별로 malloc이라든가 포인터를 다루는 함수도 따로 존재. _fmalloc 같은.
3. POINT 구조체. 옛날엔 POINT 구조체의 x,y 멤버가 16비트 크기였기 때문에 32비트 long 하나로 POINT를 나타내는 게 관행이었으며, 심지어 lParam *을 POINT *로 바로 캐스트하는 MAKEPOINT 같은 매크로까지 존재했습니다. 하지만 지금은 좌표계가 32비트로 커지고 이것 때문에 MoveTo, SetWindowOrg, SetViewportExt 같은 함수들은 모두 Ex가 붙은 형태로 프로토타입이 바뀌게 됐죠.
4. 옛날에는 핸들(HANDLE, HINSTANCE, HGDIOBJ, HWND 등등)은 전부 void *의 typedef였고, 아무 형변환 없이 마음대로 섞어 썼습니다. 이 폐해를 막으려고 지금은 STRICT(엄격한 타입 구분)라는 개념이 추가됐지만 어마어마한 분량의 레거시 코드를 컴파일시키려면 그 옵션을 꺼야 하죠.
5. WM_CTLCOLOR 메시지. 옛날에는 이 메시지 하나만 왔지만 지금은 WM_CTLCOLORBTN, DLG, EDIT, LISTBOX 등으로 세분화됐습니다. 다만, 16비트 관행을 물려받은 MFC는 여전히 OnCtlColor 라는 한 함수로 이 메시지들을 모두 처리합니다.
6. 멀건 윈도우 3.1 대화상자에다가 은빛 3차원 효과를 입혀 주는 ctl3d.dll과 교신을 하는 흔적. 그러고 보니 그때는 이런 효과가 지금의 공용 컨트롤 6.0 매니페스트 같은 그런 매개체였던 것 같습니다. MFC에도 CWinApp 클래스에 Enable3dControls 같은 멤버 함수가 있을 정도였는데, 이제는 완전히 deprecated로 처리되죠.
7. DLL도 아니고 EXE에 웬 export 속성이 지정된 함수? 그것도 __declspec(dllexport) 같은 지금 통용되는 문법으로 작성된 것도 아닙니다.
16비트 윈도우 EXE는 헥사 에디터로 들여다보면, 윈도우/대화상자 프로시저처럼 운영체제로부터 호출을 받는 콜백 함수들의 이름을 따로 name table에다 등재를 해 놓는 경우가 많더군요. 꼭 그렇게 할 필요는 없는데 왜 그러는지 궁금.. 디버깅 정보와 관련이 있는지, 아니면 속도를 높이려고 그러는지 이유는 모르겠습니다.
8. C++ 문법이 바뀌어서 옛날에는 허용되었으나 지금은 허용되지 않는 몇몇 문법들
맥이나 리눅스 같은 다른 플랫폼들은 도스 같은 극악의 호환성 발목은 없었겠지만, 16비트를 겪은 시절조차 전혀 없었는지가 문득 궁금해지네요.
참고로 저는 C/C++은 32비트 도스 익스텐더 환경에서(왓콤, DJGPP) 처음 시작했고 16비트는 거의 접한 적이 없는 세대입니다. ^^
Posted by 사무엘
저의 대학 시절 중반기에 KTX 개통과 주요 대형역들의 리모델링 공사가 행해졌습니다.
그리고 그와 거의 딱 일치하는 시기에 저는 철도 매니아가 됐습니다. 타이밍 한번 절묘하기 그지없습니다.
※ 서울
일제 강점기 때 일본의 건축가가 서양 스타일로 지은 그 유명한 옛 역사는 역사적 가치가 워낙 높아서 사적 문화재로도 지정돼 있죠. 간이역이 아닌 대형역이 문화재로 지정받은 건 유일한 사례가 아닐까 합니다.
옛날 역사만 해도 공항 같다는 느낌이 들 정도로 게이트 수도 많고 덩치가 컸습니다. 요즘이야 선상역이 대세이지만, 옛날에는 어지간한 중대형 역도 1층이 매표소이고 승강장까지는 지하도를 통과하여 가는 경우가 많았는데요. 그래도 서울 역은 옛 건물도 나름 선상역인지라, 탈 때는 1층의 입구로 들어가서 대합실, 매표소가 있는 2층으로 올라가고 다시 승강장으로 계단을 이용하여 내려갔었습니다. (영화 라이터를 켜라 참고)
이미 KTX 개통 전 2003년 말부터 지하철 서울 역의 출구 개조 공사가 활발히 진행됐고 역의 기능은 옆에 새로 지어진 민자역사 유리궁전으로 완전히 넘어갔습니다. 그러고 보니 서울 청계 고가 철거 공사와 시기적으로 비슷했습니다. 신축 건물은 서울 역이라는 문구보다 콩코스(Concos)가 더 큼직하게 보이죠.
옛날 역사는 하차 승객은 역 입구로 나오는 게 아니라, 지하도를 통해 별도의 출구로 빠져나갔습니다.
지금도 대전 역은 지하도는 아니지만 하차 승객의 통로가 별도로 분리된 형태이고, 대전은 동부 고속버스 터미널도 마치 서울 강남 고속버스 터미널처럼 하차장이 따로 갖춰져 있는 게 인상적이랍니다.
참고로 옛날에는 청량리 역도 하차 승객 전용 지하도와 출구가 있었습니다. 지금은 또 새 역사 신축하느라 그것도 다 없어지고 형태가 바뀌었지만.
※ 대전
대전 하면 우동이 유명했지요.
옛날 역사는 2층도 없는(최소한 승객이 올라갈 일은 없는) 1층짜리 자그마한 건물이었고, 역사에서 승강장까지는 또 지하도로 이동하던 형태였습니다. 하지만 2004년부터 슬슬 리모델링 공사가 진행되어 지금은 선상역으로 변했습니다. 저는 대학 시절, 대전 역의 변화를 일일이 목격할 수 있었습니다.
옛날에는 역전 광장도 무지막지하게 넓었습니다만, 지금은 온통 택시 진입로와 지하철 출구 공사 때문에 공간이 거의 사라지고 없습니다. 대전은 건물 통로상으로 딱 연결은 안 돼 있지만 지하철 출구로 나오면 딱 철도역 입구이기 때문에 지하철과의 연계가 서울만큼이나 잘 돼 있습니다.
다만, 대전은 1호선 치고는 철도역에 해당하는 지하철 역이 이례적으로 굉장히 깊습니다. 서울, 대구, 부산은 안 그렇거든요.
※ 동대구
과거의 구질구질하던 동대구 역도 유리궁전으로 변신하고, 언덕 위의 본 입구뿐만 아니라 언덕 아래에서도 올라가는 출입구를 신설했습니다. 사실, 선상역으로 리모델링하면서 서울, 대전도 반대편 출입구가 신설되어 역의 접근성이 더 향상되기도 했답니다.
동대구 역은 언덕 위에 건설되어서 언덕 아래의 승강장으로 내려간다는 특성상, 입구에 들어가서 별도로 또 계단을 오르내리지 않습니다. 들어가면 곧바로 매표소와 대합실이 나오는 게 특이하죠. 나가면 광장은 거의 없고 고가 도로 상으로 차와 택시들만이 즐비합니다.
지하철 동대구 역하고는 서울· 대전에 비해서는 거리가 좀 먼 편입니다. 하지만 이 기회에 이 지역에 동대구 역, 지하철 역, 동대구 고속버스 터미널, 동부 시외버스 터미널이 통합한 종합 터미널이 생기면 얼마나 좋을까 싶기도 합니다. 전국에서 유례를 찾을 수 없는 대구 명물이 되겠죠. 대구는 철도역과 고속버스 터미널 모두 굉장히 특이한 형태라는 건 익히 잘 알려진 사실이니까요.
※ 부산
겉은 으리으리한 유리 궁전으로 탈바꿈하여 외형은 광주 역과 비슷해 보입니다. 하지만 내부는 60년대 말에 건설된 옛날 형태에서 크게 달라진 게 없습니다. 한 건물로 연결은 돼 있지만 서울 같은 완전한 선상역은 아니어서 대합실· 매표소 영역과 승강장 영역은 다소 거리가 있습니다.
바다와 가까운 역이다 보니 이 역의 승강장 주변엔 온통 컨테이너, 화물들을 심심찮게 볼 수 있습니다. 경부선상의 다른 역과는 다른 분위기이고 마치 또다른 항구 역인 인천 역을 떠올리게 합니다.
부산 역은 제가 알고 있는 경부선 역들 중 현재 광장이 가장 넓은 역이기도 합니다. KTX 개통을 앞두고 숱한 리모델링의 손길에도 불구하고 학교 운동장을 방불케 하는 넓은 광장이 아직 원형 그대로 남아 있습니다. 지하철 역과는 그렇게 완전 가깝지는 않아서 지하철 출입구는 학교로 치면 딱 교문까지만 닿지, 대전이나 서울처럼 학교 건물 코앞에 닿아 있지는 않습니다. 이런 점에서는 부전동 역(부전 역)도 마찬가지.
전에도 글로 썼지만 부산은 남쪽이 철도, 북쪽 노포동 쪽에 종합 버스 터미널 이렇게 교통이 양분되어 있습니다.
Posted by 사무엘
Posted by 사무엘
그런즉 이제 애호박, 단호박, 늙은호박 이 셋은 항상 있으나, 그 중에 제일은 늙은호박이니라.
- 사무엘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |