정의
새로 나온 기술이나 기기가 이전 세대 규격을 그대로 받아들이는 성질이에요. 이전 규격으로 만들어진 데이터, 소프트웨어, 주변기기를 정상 작동시켜요. 최신 제품이 구형 환경과의 호환성을 스스로 책임져요. 덕분에 사용자는 기존에 쓰던 자산을 버리지 않고 계속 쓸 수 있어요.
새 기기를 사도 예전 게임을 그대로 즐겨요
새로 나온 최신 게임기를 큰마음 먹고 샀다고 상상해 볼게요. 기기는 바뀌었지만 예전 기기에서 즐기던 수십 장의 게임 타이틀을 고스란히 다시 플레이할 수 있다면 참 기쁘겠죠. 새 기기가 구형 디스크를 문제없이 읽어내는 성질이 바로 하위 호환이에요.
여기서 '하위(下位)'는 아래 세대, 즉 과거의 옛 버전을 뜻해요. 최신 제품이 과거의 옛 규격과 파일까지 넓게 포용해 준다는 의미예요. 컴퓨터에 달린 파란색 초고속 USB 단자에 아주 오래전에 나온 구형 메모리를 꽂아도 아무 문제 없이 인식되는 이유도 같아요.
소비자는 비싼 돈을 들여 산 소프트웨어나 장비를 하루아침에 내다 버리지 않아도 돼요. 제조사 입장에서도 기존 고객들이 쓰던 콘텐츠를 그대로 안고 최신 제품으로 갈아타도록 유도할 수 있어 고객의 이전 자산을 지켜주는 다리 역할을 톡톡히 해내요.
최신 기술은 어떻게 옛것을 알아들을까요?
하위 호환을 구현하는 방법은 크게 두 가지로 나뉘어요. 첫 번째는 아예 구형 기기에 쓰이던 부품이나 물리적 모양새를 최신 기기 안에 그대로 남겨두는 방식이에요. 모양이 똑같은 단자를 유지하거나, 예전 연산 칩을 기판 한구석에 함께 넣어 옛 소프트웨어를 그대로 돌리는 식이죠. 컴퓨터의 x86 계열 CPU가 오래전 명령어를 설계 안에 계속 남겨 두는 것도 이 방식에 해당해요.
두 번째는 소프트웨어의 힘을 빌리는 방법이에요. 최신 컴퓨터가 과거 컴퓨터의 작동 방식을 그대로 흉내 내는 가상 환경을 만들고, 옛 명령어를 최신 명령어로 실시간 통역해 줘요. 이를 컴퓨터 분야에서는 에뮬레이션(가상 구현)이라고 불러요.
에뮬레이터라는 프로그램이 옛 기계의 명령 규칙을 하나하나 흉내 내기 때문에, 새 기계의 하드웨어 구조가 완전히 달라도 옛 프로그램을 돌릴 수 있어요. 이렇게 과거의 규칙을 흉내 내는 번역 과정 덕분에 복잡한 코드 수정 없이도 오래된 프로그램이 최신 기계 위에서 자연스럽게 돌아가요.
조금 더 정확히 말하면: 기술 발전과 호환성의 줄다리기
하위 호환은 사용자에게 무척 편리하지만, 기술을 개발하는 입장에서는 엄청난 짐이 되기도 해요. 수십 년 전의 오래된 작동 방식까지 계속 품고 가려다 보면 기계 내부가 불필요하게 복잡해지고 개발 비용도 껑충 뛰기 때문이에요.
새로운 기술이 완전히 날아오르지 못하고 옛 기술의 낡은 규칙에 발목이 잡히는 현상이 생길 수도 있어요. 이런 부담을 기술적 부채(당장의 편의 때문에 미래에 치러야 할 부담)의 한 형태로 보기도 해요. 그래서 스마트폰 제조사가 구형 3.5mm 이어폰 구멍을 과감히 없애거나, 구형 32비트 앱 지원을 전면 중단하며 충격을 감수하기도 해요.
또한 하위 호환은 모든 과거를 무조건 감싸 안지 않아요. 문자 인코딩 규격인 UTF-8이 영문 중심의 아스키 규격과는 완벽히 호환되지만 EUC-KR 같은 옛 한글 인코딩과는 호환되지 않아, 그런 문서를 UTF-8로 열면 글자가 깨져 보이듯, 규격마다 약속된 범위가 엄격히 정해져 있어요. 혁신을 위해 과거의 낡은 짐을 털어내는 결단과 하위 호환 사이의 균형이 늘 중요한 이유예요.
흔한 오해
하위 호환은 옛날 기계가 앞으로 나올 최신 소프트웨어를 실행할 수 있다는 뜻이다.
그것은 상위 호환(Forward Compatibility)에 해당해요. 하위 호환은 최신 기계가 옛날 소프트웨어나 구형 기기를 문제없이 품어주는 능력을 말해요.
기술이 발전하면 이전 세대의 모든 구형 프로그램이 저절로 호환된다.
하위 호환은 저절로 생기지 않아요. 개발진이 추가 비용과 노력을 들여 구형 규격에 맞춘 부품을 심거나 전용 번역 소프트웨어를 따로 설계해야만 가능해요.
일상에서 만나요
플레이스테이션 5 기기에 이전 세대인 플레이스테이션 4 게임 디스크를 넣고 그대로 실행하는 경우(대부분의 게임이 되지만 일부는 안 돼요)
최신 노트북의 USB 3.0 포트에 10년 전에 산 USB 2.0 외장 하드를 연결해 자료를 옮기는 상황
최신 윈도우 운영체제에서 과거 윈도우 7 시절에 쓰던 사무용 프로그램을 호환 모드로 켜서 작업하는 상황
그러니까 한마디로
새로운 기기나 시스템이 이전 세대 규격으로 만들어진 소프트웨어와 장치를 그대로 인식하고 실행해 주는 기술적 배려예요.