맨위로가기

백포팅

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

백포팅은 최신 버전의 소프트웨어에서 개발된 기능을 이전 버전의 소프트웨어에 적용하는 기술이다. 일반적으로 문제 식별, 수정 사항 확인, 백포팅 적용, 품질 관리 및 테스트, 패치 배포의 단계를 거친다. 백포팅은 폐쇄형 소프트웨어에서는 소스 코드 접근의 필요성 때문에 유일한 수정 방법이며, 오픈 소스 소프트웨어에서는 소프트웨어 배포자에 의해 생성되어 업스트림으로 전송되기도 한다. 백포팅은 윈도우 XP, 데비안, 우분투, 윈도우 95 등 다양한 운영 체제 및 소프트웨어에 적용된 사례가 있다.

2. 절차

백포팅 절차는 크게 다음 단계로 나눌 수 있다.[1][10]

1. 백포팅을 통해 수정해야 할 구 버전 소프트웨어의 문제 식별

2. 문제를 해결한 (보통 최신) 코드 수정 사항 파악

3. 오래된 코드 상황에 맞게 수정 사항 적용 (적절한 백포팅)

4. 백포팅된 버전이 이전 기능을 유지하고 새로운 기능을 제대로 구현하는지 확인하는 품질 관리 수준 테스트

일반적으로 여러 개의 이러한 수정 사항은 패치 세트로 묶인다.

백포트는 소프트웨어의 핵심 소프트웨어 개발자 그룹에서 제공할 수 있다. 백포팅은 소프트웨어 소스 코드에 대한 접근이 필요하기 때문에, 이는 폐쇄형 소프트웨어에 대한 백포팅이 이루어지는 유일한 방법이며, 백포트는 일반적으로 소프트웨어의 구 버전 라인에 따라 바이너리 업그레이드에 통합된다. 오픈 소스 소프트웨어의 경우, 백포트는 때때로 소프트웨어 배포자에 의해 생성된 다음 업스트림 (즉, 해당 소프트웨어의 핵심 개발자에게 제출)으로 전송된다.[2][11]

2. 1. 문제 식별

백포팅의 가장 간단하고 일반적인 상황은 최신 버전의 소프트웨어에서 수정된 보안 취약점이다. 다음의 간단한 예를 통해 문제 식별 단계를 설명한다.

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


이 예시에서 소프트웨어 v1.0에 존재하는 'is_notsecure' 텍스트는 보안 취약점을 나타내는 문제점으로 식별될 수 있다. 즉, 이전 버전(v1.0)에서 수정해야 할 대상으로, 백포팅이 필요한 문제 상황임을 알 수 있다.[1]

2. 2. 수정 사항 확인

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

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


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

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

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

# 백포트로 수정해야 하는 이전 버전의 소프트웨어 문제 식별

# 코드의 어떤(보통 최근) 수정 사항이 문제를 해결했는지 확인

# 이전 코드 상황에 수정 사항 적용(적절한 백포팅)

# 하나 또는 여러 수준의 품질 관리 - 백포트된 버전이 이전 기능을 유지하는지 여부와 새 기능을 적절하게 구현하는지 테스트한다.

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

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

2. 3. 백포팅 적용

백포팅의 가장 간단하고 일반적인 예는 최신 버전의 소프트웨어에서 수정된 보안 취약점이다. 예를 들어 다음과 같다.

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


소프트웨어 v2.0을 수정하는 변경 사항을 가져와 소프트웨어 v1.0에 적용하도록 변경하면 효과적으로 수정 사항을 백포팅한 것이다.

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

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

1. 백포트로 수정해야 하는 이전 버전의 소프트웨어 문제 식별

2. 코드의 어떤(보통 최근) 수정 사항이 문제를 해결했는지 확인

3. 이전 코드 상황에 수정 사항 적용(적절한 백포팅)

4. 하나 또는 여러 수준의 품질 관리 - 백포트된 버전이 이전 기능을 유지하는지 여부와 새 기능을 적절하게 구현하는지 테스트한다.

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

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

2. 4. 품질 관리 및 테스트

백포팅된 버전은 이전 기능을 유지하고 새로운 기능을 제대로 구현하는지 확인하기 위해 하나 또는 여러 수준의 품질 관리 테스트를 거친다.[1] 일반적으로 여러 수정 사항은 패치 세트로 묶인다.

2. 5. 패치 배포

일반적으로 이러한 여러 수정 사항은 패치 세트로 묶인다.

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

3. 적용 분야 및 사례

백포팅은 이전 버전의 소프트웨어에 새로운 기능을 추가하거나 문제를 해결하는 과정이다. 일반적으로 다음과 같은 단계로 진행된다.[10]


  • 백포트가 필요한 이전 버전 소프트웨어의 문제 식별
  • 문제를 해결한 최신 버전의 코드 변경 사항 확인
  • 이전 코드에 맞게 변경 사항 수정 및 적용 (백포트)
  • 백포트된 버전이 이전 기능을 유지하고 새로운 기능을 올바르게 구현하는지 확인하기 위한 품질 관리 테스트


이러한 변경 사항들은 보통 패치 형태로 묶여 제공된다.

백포트는 주로 소프트웨어의 핵심 개발자 그룹이 담당한다. 백포트를 위해서는 소프트웨어의 소스 코드에 접근해야 하며, 이는 폐쇄형 소스 소프트웨어의 경우 백포팅을 수행할 수 있는 유일한 방법이다. 백포트는 보통 소프트웨어의 이전 버전에 대한 바이너리업그레이드에 포함된다. 오픈 소스 소프트웨어에서는 소프트웨어 배포자가 백포트를 생성하고, 이를 업스트림, 즉 해당 소프트웨어의 핵심 개발자에게 전달하는 경우도 있다.[11]

3. 1. 운영 체제

윈도우 XP 서비스 팩 3이 출시되었을 때 윈도우 비스타의 많은 기능이 윈도우 XP로 백포트되었다. 따라서 원래 비스타를 최소 요구 사항으로 하는 응용 프로그램(주로 게임)이 XP SP3에서 실행되는 것이 가능해졌다.[3] 데비안 프로젝트는 2010년 9월부터 일부 데비안 리눅스 소프트웨어 패키지에 대한 공식 백포팅 서비스를 제공하고 있다.[4] 우분투 리눅스도 백포트를 지원하지만, 우분투 백포트는 캐노니컬로부터 전혀 지원을 받지 않으며 전적으로 커뮤니티에서 관리된다.[5] 2024년, 유튜버 MattKC는 .NET 프레임워크를 공식적으로 지원하지 않는 윈도우 95에 .NET 프레임워크 버전 2.0 및 3.5를 백포팅했다.[6][7]

3. 2. 기타

백포팅의 가장 간단하고 일반적인 상황은 최신 버전의 소프트웨어에서 보안 취약점을 수정한 경우이다. 예를 들면 다음과 같다.

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


소프트웨어 v2.0의 수정 사항을 소프트웨어 v1.0에 적용하도록 변경하면, 효과적으로 수정 사항을 백포트한 것이다.[1]

실제 상황에서 소프트웨어 수정은 코드 몇 줄만 변경하는 단순한 경우도 있지만, 코드의 여러 파일에 걸쳐 많은 수정이 필요한 복잡하고 대규모인 경우도 있다. 후자의 경우 백포팅은 지루하고 비효율적일 수 있으며, 최신 버전 대신 이전 버전의 소프트웨어가 정말로 필요한 경우에만 수행해야 한다. (예: 최신 버전이 여전히 안정성 문제로 인해 매우 중요한 작업에 사용이 불가능한 경우)[2]

윈도우 XP 서비스 팩 3 출시와 함께 윈도우 비스타의 많은 기능이 윈도우 XP로 백포트되었다. 따라서 원래 비스타를 최소 요구 사항으로 하는 응용 프로그램(주로 게임)이 XP SP3를 최소 요구 사항으로 실행될 수 있게 되었다.[3] 2010년 9월부터 데비안 프로젝트는 일부 데비안 리눅스 소프트웨어 패키지에 대한 공식 백포팅 서비스를 제공하고 있으며, 우분투 리눅스도 백포트를 지원한다.[5] 2024년, 유튜버 MattKC는 프레임워크를 공식적으로 지원하지 않는 윈도우 95에 .NET Framework 버전 2.0 및 3.5를 백포팅했다.[6][7]

4. 한계

백포팅의 가장 단순하고 일반적인 예는 소프트웨어의 새 버전에서 보안 취약점을 수정한 경우이다. 예를 들어 다음과 같다.


  • 어떤 소프트웨어 v2.0에는 텍스트 "is_unsecured"를 "is_secured"로 변경하여 수정되는 보안 취약점이 있었다.
  • 이 소프트웨어 v1.0에도 동일한 보안 취약점이 존재한다. 이는 새 버전에도 동일한 코드 기반이 사용되기 때문이다. 그러나 텍스트는 "is_notsecure"로 약간 변경되어 있다.


소프트웨어 v2.0을 수정하는 변경을 가하고, 소프트웨어 v1.0에도 적용할 수 있도록 변경함으로써 수정을 효과적으로 백포팅했다.[8]

실제 상황에서 소프트웨어의 한 부분에서 이루어진 변경은 몇 줄의 코드만 변경된 단순한 것부터, 코드의 여러 파일에 걸쳐 많은 변경이 있는 크고 대규모인 것까지 다양하다. 대규모인 경우, 백포팅은 번거롭고 비효율적이 되기 쉬우며, 구버전의 소프트웨어가 정말 필요한 경우에만 실행해야 한다. 예를 들어 새 버전이 아직 미션 크리티컬한 사용을 방해하는 견고성 문제를 안고 있는 경우가 있다.[9]

참조

[1] 웹사이트 Backporting Security Fixes https://access.redha[...] Red Hat 2020-05-11
[2] 웹사이트 Staying close to upstream projects https://fedoraprojec[...] Fedora Project 2016-01-14
[3] 웹사이트 Microsoft backports Vista features for new Windows XP SP3 beta https://www.engadget[...] Engadget 2007-10-09
[4] 웹사이트 Backports service becoming official https://www.debian.o[...] Debian Project 2010-09-05
[5] 웹사이트 UbuntuBackports https://help.ubuntu.[...] Ubuntu Project 2015-11-29
[6] 웹사이트 Thousands of apps ported back to Windows 95 twenty-eight years later — .NET Framework port enables backward compatibility for modern software https://www.tomshard[...] 2024-04-14
[7] 웹사이트 Porting Modern Windows Applications To Windows 95 https://hackaday.com[...] 2024-04-14
[8] 웹사이트 Backporting Security Fixes https://access.redha[...] Red Hat 2020-05-11
[9] 웹사이트 Staying close to upstream projects https://fedoraprojec[...] Fedora Project 2020-05-11
[10] 웹사이트 Backporting Security Fixes https://access.redha[...] Red Hat 2020-05-11
[11] 웹사이트 Staying close to upstream projects https://fedoraprojec[...] Fedora Project 2020-05-11
[12] 웹사이트 Microsoft backports Vista features for new Windows XP SP3 beta https://www.engadget[...] Engadget 2020-05-11
[13] 웹사이트 Backports service becoming official https://www.debian.o[...] Debian Project 2020-05-11
[14] 웹사이트 UbuntuBackports https://help.ubuntu.[...] Ubuntu Project 2020-05-11



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com