상위 호환성

소프트웨어 호환성의 한 종류. 앞으로 나올 소프트웨어에서 만들어진 자료나 파일 포맷 등을 현재의 소프트웨어에서 문제 없이 읽을 수 있다는 보장을 뜻하며, 하위호환성의 반댓말이다.

이게 가능하려면 현재의 소프트웨어 자체가 충분히 일반적으로 만들어져서 나중 버전에서 추가될 기능을 어떻게 무시하거나 적절히 처리해야 할 지를 결정해야 하는데, 보통 엄청나게 어렵다. 미래의 일이다 보니 일반화를 어느 정도 해야 할 지 감을 잡기 힘들 뿐만 아니라, 그렇게 일반화를 한 게 쓸모가 있다는 보장도 쉽지 않기 때문이다. 종종 상위 호환성을 위해 만들어지 않은 소프트웨어가 확장되면서 상위 호환성을 어거지로 끼워 넣는 경우가 종종 있는데, 보통 문제가 생기는 게 태반이다(특히 하위 버전에서 "수정"을 했을 때 상위 버전에서 깨지지 않는다는 보장이 없다). 이 때문에 하위 호환성과는 달리 상위 호환성은 흔히 시도하기 어려운 보장이기도 하다.

이런 모든 문제를 극복하고 극강의 상위 호환성을 확보한 대표적인 예로 HTML이 있다. 옛날에 만든 HTML 문서를 현재의 웹 브라우저에서 아무 무리 없이 읽을 수 있을 뿐만 아니라, 몇 가지 주의만 한다면 현재의 HTML 문서를 옛날의 웹 브라우저에서 아무 무리 없이 읽을 수도 있다. 이는 HTML이 웹접근성을 매우 강력하게 권장하면서 생긴 부수 효과이긴 하지만 그냥 구조화되지 않은 태그로 이루어진(그래서 "tag soup"이라고도 불렸던) HTML의 태생과도 어느 정도 연관이 있다고 할 수 있다. 모르는 태그는 무시할 수 있으니까.

좋은 예

  • PNG (다만 실제로 쓸 일은 많지 않았다)

나쁜 예

  • VFAT은 기존의 FAT16유니코드 긴 파일 이름을 적절히 끼워 넣기 위해 보통의 FAT 구현이 인식할 수 없는 파일 이름을 사용한다. 그러나 긴 파일 이름을 모르는 기존의 디스크검사 프로그램을 쓰면 긴 이름이 사라지는 문제가 있었다.
  • HFS플러스 파일 시스템은 HFS 파일 시스템만을 지원하는 시스템을 위해 HFS 파티션으로도 보이도록 설계되어 있다. 그러나 그렇다고 HFS+ 파티션 안에 있는 파일을 읽을 수 있다는 건 아니다(…).

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2011-09-05 09:12 | 작성자 lifthrasiir