포크 (소프트웨어 개발)

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

소프트웨어 개발 포크(project fork)는 한 소프트웨어 패키지의 소스 코드에서 분기하여 다른 독립적인 소프트웨어를 개발하는 것이다. 자유 소프트웨어오픈 소스 소프트웨어에서, 라이센스, 원작자의 허가없이 포크가 가능하다.

분기[편집]

많은 프로젝트는 버그 픽스 만 이루어지는 ‘안정 버전’(stable version) 또는 ‘릴리스’(release version) 와 새로운 기능을 통합한 ‘개발 버전’(development version) 과를 따로 마련하고 있다. 이것도 포크의 일종이다. 이 같은 포크는 ‘브랜치’(branch) 또는 ‘분기’라고 하며, 이는 ‘포크’(fork)라는 말이 부정적인 뉘앙스를 풍기고 있으며, 이 방법은 소프트웨어 공학의 ‘브랜칭’(branching)을 닮았기 때문이다.

프리웨어[편집]

자유 소프트웨어의 포크 원인은 목표의 불일치 및 개인 대립 등이 있다. 포크가 발생하는 경우 개발 그룹이 거의 같은 내용의 코드 기반으로 사용하지만, 소프트웨어의 원래 이름과 사용자 커뮤니티 내용은 대부분의 경우 큰 그룹 (또는 원래 설계자의 소속 그룹)이 인수하게 된다. 따라서, 포크 소프트웨어의 평판 식으로 불이익이 된다. 분기한 개발팀 간의 관계는 대체로 양호하지만(예 : 우분투데비안 ), 충돌하고 있거나 (예 : X.Org ServerXFree86, cdrtools 과 cdrkit ), 전혀 교류가없는(예 : 리눅스 배포판의 대부분) 경우 등 다양하다.

포크는 자유 소프트웨어로 인한 자유의 일종으로 간주할 수도 있지만, 중복된 개발로 인해 이용자가 어떤 것을 사용해야할 지 고민을 던져주는 나쁜 점도 있다. 각 그룹이 협력하여 자원을 공유할 수는 있지만, 무료 소프트웨어 라이센스로는 이 점에 대해서는 규정이 없어 합의가 된 경우에만 행해지지 않는다. 따라서 개발 작업은 다른 포크와의 차별화에 중점을 두고 행해지는 경우가 많다.

주석[편집]

바깥 고리[편집]