백포팅(Backporting)은 신버전의 소프트웨어 시스템 또는 소프트웨어 구성 요소에서 컴포넌트를 가져와 동일한 소프트웨어의 이전 버전으로 포팅하는 작업이다. 이는 소프트웨어 개발 프로세스에서 유지 관리 단계의 일부를 구성하며 일반적으로 이전 버전의 소프트웨어에서 보안 문제를 해결하고 이전 버전에 새로운 기능을 제공하는 데 사용된다.

개요 편집

백포팅의 가장 간단하고 아마도 가장 일반적인 상황은 최신 버전의 소프트웨어에 고정된 보안 허점이 있는 것이다. 다음의 간단한 예를 고려할 수 있다.

  • 소프트웨어 v2.0에는 'is_unsecured' 텍스트를 'is_secured'로 변경하면 해결되는 보안 취약점이 있었다.
  • 최신 버전의 코드베이스가 파생되는 소프트웨어 v1.0에도 동일한 보안 허점이 존재하지만 텍스트가 'is_notsecure'로 표시될 수 있다.

소프트웨어 v2.0을 수정하는 수정 사항을 취하고 이를 소프트웨어 v1.0에 적용하도록 변경함으로써 수정 사항을 효과적으로 백포트했다.

실제 상황에서 소프트웨어의 단일 측면에 대한 수정은 단순할 수도 있고(코드 몇 줄만 변경됨) 무겁고 대규모일 수도 있다(많은 수정이 코드의 여러 파일에 분산됨). 후자의 경우 백포팅은 지루하고 비효율적일 수 있으며 최신 버전을 선호하기 위해 이전 버전의 소프트웨어가 실제로 필요한 경우에만 수행해야 한다(예를 들어 최신 버전이 여전히 임무에서 사용할 수 없는 안정성 문제를 겪고 있는 경우)

절차 편집

백포팅 프로세스는 대략 다음 단계로 나눌 수 있다.

  1. 백포트로 수정해야 하는 이전 버전의 소프트웨어 문제 식별
  2. 코드의 어떤(보통 최근) 수정 사항이 문제를 해결했는지 확인
  3. 이전 코드 상황에 수정 사항 적용(적절한 백포팅)
  4. 하나 또는 여러 수준의 품질 관리 - 백포트된 버전이 이전 기능을 유지하는지 여부와 새 기능을 적절하게 구현하는지 테스트한다.

일반적으로 이러한 여러 수정 사항은 패치 세트에 번들로 제공된다.

백포트는 소프트웨어의 핵심 개발자 그룹에서 제공할 수 있다. 백포트는 소프트웨어의 소스 코드에 액세스해야 하기 때문에 이것이 클로즈드 소스 소프트웨어에 대해 백포트를 수행하는 유일한 방법이다. 백포트는 일반적으로 소프트웨어의 이전 버전 라인을 따라 바이너리 업그레이드에 통합된다. 오픈 소스 소프트웨어의 경우 소프트웨어 배포자가 백포트를 생성하고 나중에 업스트림 (소프트웨어 개발)으로 전송하는 경우도 있다(즉, 문제가 발생한 소프트웨어의 핵심 개발자에게 제출).

편집

윈도우 XP용 서비스 팩 3이 출시되었을 때 윈도우 비스타의 많은 기능이 윈도우 XP로 백포트되었다. 따라서 원래 최소 요구 사항인 비스타와 응용 프로그램(주로 게임)의 호환성이 최소 요구 사항인 XP SP3에서 실행되는 것이 가능해졌다. 2010년 9월부터 데비안 프로젝트는 일부 데비안 리눅스 소프트웨어 패키지에 대한 공식 백포팅 서비스를 제공하고 우분투 리눅스도 백포트를 지원하지만 우분투 백포트(Ubuntu Backports)는 캐노니컬로부터 전혀 지원을 받지 않으며 전적으로 커뮤니티에서 관리된다.

같이 보기 편집