[김학준의 Net卽時空] 럭비공 같은「호환성」다스리기

필자의 집에는 올해 초등학교 3학년이 된 아들내미가 만 두 살쯤 되던 해에 구입했던 어린이용 CD롬 타이틀이 여러 가지 보관돼 있다. 딱히 둘째 아이를 염두에 두고 있었던 것은 아니었지만 약 7년의 세월이 지난 지금까지 그것들이 버려지지 않은 채 남아있는 이유는, 첫째 녀석이 워낙 그것들을 재미있게 잘 가지고 놀았던 기억이 있어서 미련 때문에 선뜻 버리지 못해서였다.

그러다 보니 딸내미가 새로 태어났고 그 녀석이 이제 만 한 살을 넘어서게 되었는데 제 오빠가 컴퓨터로 인터넷 서핑과 이런 저런 온라인 게임을 하는 것을 보고는 자신도 컴퓨터를 만져보겠다고 난리를 치는 상황이 되었다.

그래서 먼지가 잔뜩 앉아 있던 그 구닥다리 CD롬 타이틀들을 꺼내서 딸내미가 자리를 차지하고 앉은 오빠의 컴퓨터 CD 드라이브에 넣었다. 모니터 화면에 뭔가 메시지가 뜨는 게 보였다.
 
 “DAD caused General Protection Error…”
 
대충 그런 문구였다. 이런, 7년이란 세월은 CD롬 타이틀이나 소프트웨어가 생존해 내기에는 너무 긴 시간이었을까? 그 CD롬 타이틀의 제목은 “Just Me and My Dad”였고 설명서에는 윈도우 3.1 및 윈도우 95 에서 돌아간다고 표시되어 있었다. 7년 전에 이것을 돌리던 컴퓨터는 펜티엄MMX - 266MHz였고 윈도우 98이 설치되어 있었다.

하지만 지금 아들내미의 컴퓨터는 펜티엄 III - 850MHz이고 거기에 깔린 운영체제는 윈도우 XP 이다. CPU와 운영체제가 두 세대나 건너뛴 셈이다. 집에는 그와 함께 비슷한 시기에 구입했던 다른 게임 프로그램 CD도 아직 20여 개나 남아 있다. 그 중에 몇 개를 CD 드라이브에 넣어보았지만 그것들도 제각기 나름대로의 에러 메시지를 뱉어내며 실행을 거부했다.

이때 눈에 띈 것은 그 아랫줄에 쓰여 있는 것은 매킨토시에서도 실행된다는 문구였다. 즉 한 개의 CD에 매킨토시와 PC의 콘텐츠가 함께 들어가 있는 것이다.

필자의 집에는 CD뿐 아니라 하드웨어도 먼지에 쌓인 채 누워있는 것들이 많다. 초기의 iMac도 그 중의 하나이다. 이 또한 구닥다리로서 PowerPC 계열의 G3 칩이 233MHz로 동작하는 물건이다. 이것을 다락에서 끄집어 내서 먼지를 털고 걸레로 닦은 다음 문제의 그 CD를 삽입해줬다. 부팅이 되는 것을 보고서야 여러 달 전에 운영체제를 Mac OS 9 으로 업그레이드했음을 기억했다.

아이맥에서는 역시CD롬 타이틀이 문제없이 실행되었다. 구닥다리 하드웨어에 비교적 구닥다리 OS가 그대로 들어있었기 때문이다. 잠깐 동안은 필자도 맥 OS의 구버전에 대한 호환성이 윈도우 운영체제보다 뛰어난 게 아닌가 추측했지만, OS 9 역시 90년대 말의 운영체제이다.

새로운 매킨토시 하드웨어에 OS X (10) 이 설치되어 있는 환경에서는 이 CD 들도 실행될 것을 기대할 수는 없는 일이다. 하드웨어 혹은 소프트웨어가 갖는 세대 차이는 이처럼 아예 서로를 용납하지 못하는 수준이다.

우리가 보통 말하는 호환성 (Compatibility)은 단지 기술적인 차이를 넘어서서 나아가서는 기업의 흥망에도 큰 영향을 미치는 요소가 된다.

PC 산업 초기의 IBM 클론 (Clone)이라고 불린 컴퓨터들은 IBM PC 계열과 수평적인 호환성을 가지는 것들로서 거기서 태어난 회사 중 하나인 컴팩은 IBM을 누르고 최대의 컴퓨터 회사가 되기도 했었다. 그런 반면 IBM 은 그런 클론 제품들에 대적하기 위해 야심만만하게 PS/2를 내놓기도 했지만 기존의 ISA 인터페이스 기반의 XT 및 AT 기종들과의 호환성을 무시하는 바람에 완전히 실패하는 결과를 낳았다.

수평적 호환성의 경우에 소비자들은 골치 썩일 필요가 없이 거의 항상 혜택을 본다. 가령 컴퓨터가 같은 기능을 가지면서 다른 회사의 제품과 같은 소프트웨어와 같은 주변기기를 사용하면서도 더 낮은 가격으로 구입할 수 있거나, 더 높은 성능을 제공해 줄 수 있다면 선택의 폭이 더욱 높아지기 때문이다. 그러면서 업체들끼리 경쟁을 통해 가격 대 성능 비는 더 높아진다.

수직적 호환성의 경우도 제대로 지원된다면 소비자들은 하드웨어 사양 때문에 혹은 소프트웨어 버전 때문에 새로운 제품을 사야 하는 일은 크게 줄어들 것이다. 필자의 경우처럼 여러 해 전에 구입했던 많은 CD롬 타이틀을 버리지 않아도 되고, 나아가서는 오래된 하드웨어를 없애지 않아도 될 것이기 때문이다. 그러나 현실은 그런 소박한 희망과는 거리가 멀다.

수직적 호환성은 세 가지로 구분할 수 있다. 우리가 가장 많이 보고 듣는 것이 백워드 호환성 (Backward Compatibility)이다. 즉 새로 출시한 소프트웨어가 예전 버전이 가졌던 기능을 그대로 지원하면서 추가적인 기능을 가질 때는 백워드 호환성이 있다고 한다.

가령 예전의 윈도우 3.1이나 윈도우 95의 경우에는 DOS 에 대해 백워드 호환성을 가지고 있었다. 운영체제뿐 아니라 애플리케이션 소프트웨어들도 버전이 올라감에 따라 백워드 호환성이 주요 이슈가 된다. 그리고 하드웨어도 마찬가지이다.

가장 오래된 전자업계의 백워드 호환성의 실례는 1950년대의 컬러TV 방식 결정에서 볼 수 있다. 미국 정부가 처음에 컬러 TV 신호 방식을 정하면서 선택한 것은 기존의 흑백TV와의 호환성을 완벽히 제공하지 않은 방식이었다.

즉 새로 나온 컬러 TV에서는 예전의 흑백 TV 방송을 수신할 수 있으되 기존에 사용되고 있던 흑백 TV에서는 새로운 컬러 TV 방송을 수신하지 못한 것이었다. 그 결과 방송사들은 컬러 TV 방송을 시작하기를 꺼려했고 전자업체들도 컬러 TV 수상기의 판매부진 때문에 더 이상의 개발을 하지 않았다.

결국 몇 년 되지 않아 미국 정부는 컬러 TV 및 흑백 TV끼리 완전한 상호 호환성을 가지는 새로운 방식으로 규격을 바꾸어서 오늘날까지 그 규격이 이어져 왔다.

또 다른 호환성은 포워드 호환성 (Forward Compatibility)이다. 이것은 미래지향적인 개념의 것으로서 잘 느끼지 못하지만 주위에서 상당히 많은 예를 찾아볼 수 있다.

우리 같은 사용자들에게 불편을 안겨주지 않아서 느끼지 못할 뿐이다. 가령 IEEE-1394 인터페이스의 경우 1394 인터페이스가 처음 상용화 되었을 때에는 200Mbps의 전송속도만 지원되고 있었다. 하지만 규격에서는 향후에 400Mbps 및 600Mbps 속도까지 지원될 것이라고 했다. 그런 약속은 지켜졌고 기존의 200Mbps 지원 하드웨어는 그대로 더 높은 속도에서도 사용될 수 있었다.

필자가 지금 사용하는 마더보드의 경우에도 구입 당시 박스에는 “Prescott Ready”라고 적혀있었는데 이 또한 포워드 호환성의 간단한 예라고 하겠다.

세번째는 상호 호환성(Two-way Compatibility) 이다. 가령 새로 구입한 소프트웨어가 예전의 하드웨어에서도 잘 돌아갈 뿐 아니라, 예전의 소프트웨어가 새로운 하드웨어에서도 잘 실행될 수 있게 만든다면 바로 그것이 상호 호환성을 가지는 것이다. 물론 이것을 지원하는 경우는 버전이 달라지는 수직적 호환성의 세계에서는 그리 많지 않다.

운영체제나 소프트웨어는 물론 통신 프로토콜과 주변기기 등의 모든 경우에서도 이런 호환성 문제는 언제나 중요한 자리를 차지하고 있다. 사용자로서는 호환성이 많이 제공될수록 편리하지만, 업체들은 항상 기술적인 난이도와 개발기간, 안정성, 경쟁업체와의 대결, 새로운 기능과 성능 제공을 위한 신기술의 적용 등을 비롯한 많은 요인에 대해 신경을 써야 한다.

인텔이 CPU 소켓을 계속 바꿔오고 한때는 슬롯 방식의 CPU를 채택했다가 나중에 포기한 것은, 광대한 마이크로프로세서 분야에서 조그만 한 예일 뿐이다. 칩 내부에서는 우리에게 보이지 않은 엄청나게 많은 선택과 결정이 숨어있는 게 사실이다.

소비자들은 사실 백워드 호환성에 대해 무척이나 민감할 수밖에 없다. 적지 않은 돈을 들여 구매한 소프트웨어나 하드웨어 장치들이 백워드 호환성이 지원되지 않는 바람에 시간이 지남에 따라 쓸모없는 것이 되는 경우가 많기 때문이다. 업체들이 지속적으로 지원하는 것도 한도가 있다.

필자가 썼던 주변기기 중의 상당수가 운영체제를 XP로 바꾸면서 쓸모없는 것이 돼 버렸던 경험을 되새겨보면 중소업체들의 경우는 백워드뿐만 아니라 포워드 호환성 면에서 더욱 미진한 면이 많다.

드라이버를 지속적으로 업데이트하면서 호환성이 유지되게 만드는 것은 기술적으로도 문제가 되지만 비즈니스적으로도 그 업체들에게 도움이 안 될 수도 있기 때문이다. 지나치게 호환성 지원이 안 되어도 업체의 지명도에 도움이 안 되지만 지나치게(?) 지원을 잘해도 신제품 판매를 통한 매출 증대에는 도움이 되지 않는다.

이처럼 어느 선까지 호환성을 제공해 주느냐는 것은 비즈니스적인 논리도 작용하는데 또 한편에는 피치 못할 기술적 어려움 때문에 어쩔 수 없이 호환성을 포기해야 하는 경우도 생길 수 있다.

그리고 호환성에 치중하다 보면 새로운 기술을 적용한 더 높은 성능과 더 편리한 기능의 제품을 만들기도 어려워진다. 호환성이란 것은 우리는 느끼지 못하는 이면에서 그처럼 복잡한 과정을 거쳐 지원되기도 하고 또는 포기되기도 하는 것이다.

아무튼 업체들의 입장과 기술혁신의 명제의 측면은 그렇다 쳐도 소비자의 입장이 무시되어서는 안 될 것이다. 그러기 위해 가장 좋은 해결법은 아무래도 장기적인 안목으로 모든 하드웨어나 소프트웨어를 만들 때 포워드 호환성을 최대한 가질 수 있도록 해야 하지 않을까 싶다.

이는 기술발전의 발목을 붙들지도 않고 소비자들이 구매에 투자한 비용을 최대로 활용할 수 있는 것이다. 비록 쉬운 일은 아니지만 장기적으로는 소비자뿐 아니라 해당 업체에게도 이익이 될 것은 분명하다.

이제 앞으로 다들 호환성에 대해 얘기할 때 백워드 호환성을 어떻게 구현할까 하는 것보다는 포워드 호환성을 최대한 구현하기 위해서는 어떤 식으로 개발을 해 나가는 게 좋을까라고 발전적인 방향으로 얘기할 수 있는 풍토가 되었으면 한다. @