포크 (소프트웨어 개발)

소프트웨어 개발에서 말하는 포크(Fork)는 기존 소프트웨어의 소스 코드를 복사하여 별도의 새 프로그램을 만들어내는 것을 의미한다. 이 행위는 원래 있던 것이 오픈 소스이고, 복사 및 다듬기가 허용되어 있어야 가능하며, 새로 딸려나온 소프트웨어는 기존의 것에서 포크하여 사용할 수 있도록 라이선스가 호환되어야 한다. 원본이 MIT 라이선스처럼 동일 라이선스를 요구하지 않는다면 다른 라이선스로 변경이 가능하다.

여기서 '포크'란 동일한 소스 코드에서 서로 독립된 여러 소프트웨어가 '갈라져 나온다'는 뜻이다. 간혹 (식기로 쓰는) 포크처럼 소스 코드를 찍어서 옮기는 모습을 빗댄 거라 오해하는 경우가 있지만, 사실 영단어 'fork'가 원래 분기를 뜻하고 우리가 음식을 찍어 먹을 때 쓰는 포크도 여기서 따온 것이다.

유닉스에서의 포크[편집 | 원본 편집]

fork() 유닉스리눅스에서의 시스템 콜이다. 현재 프로세스를 복제하여 자식 프로세스를 만드는 역할을 한다.

이 함수를 호출하면 코드 공간을 복사하여 실행하여 새로운 프로세스 id를 받는데 부모 프로세스에서는 그 id가 fork 함수에서 반환되고 자식 프로세스에서는 0이 반환된다. 자식과 부모의 구분은 이렇게 한다. 자식에서 exec를 호출하면 다른 프로그램으로 코드 공간을 바꿔치기한다.

윈도우에서는 fork 함수를 사용할 수 없다.

위키에서의 포크[편집 | 원본 편집]

리그베다 위키 사유화 사태를 계기로 국내 위키가 대거 생겨나던 시기를 기억하는 사람이라면 '포크'라는 용어가 꽤 익숙할 것이다. 나무위키리그베다 위키를 포크해서 생겨났기 때문. 이후 나무위키의 DB를 다시 포크해서 여러 위키들이 나오고는 했지만 나무위키에 비해 인지도가 묻히거나 뒤안길로 사라졌다.

위키를 포크한다는 것은 기존 위키의 편집 기록을 포함한 자료를 복사해서 새 사이트에다 옮기는 것을 의미한다. 이 경우 편집 기록이 일반적인 포크 개념의 '소스 코드'에 해당한다.

아래는 여러 위키의 포크 사례이다. 처음부터 포크로 시작된 위키도 있는 한편, 독자적으로 형성된 이후 타 문서를 포크해 추가하는 사례도 있다.

기존 위키 옮겨진 위키 포크 일시 포크 목적 라이선스
리그베다 위키 나무위키 2015년 4월 17일 리그베다 위키의 대체 공간 마련 CC-BY-NC-SA 2.0 KR
리그베다 위키 오리위키[1] 2015년 4월 18일 리그베다 위키의 대체 공간 마련 CC-BY-NC-SA 2.0 KR
나무위키 바다위키[1] 2016년 5월 13일 나무위키 영리 논란에 따른 대체 공간 마련 CC-BY-NC-SA 2.0 KR
나무위키 알파위키 (1기)[2] 2017년 9월 24일 나무위키 붕괴를 대비하여 만들어짐 CC-BY-NC-SA 2.0 KR
위키쨩 리브레 위키 2021년 5월 3일[3] 위키쨩 서비스 종료에 따른 DB 이전 CC-BY-SA 3.0
위키쨩 제타위키 2021년 ?월 ?일 위키쨩 서비스 종료에 따른 DB 이전 CC-BY-SA 3.0
백합온실 리브레 위키 2021년 9월 27일 백합온실 서비스 종료에 따른 DB 이전 CC-BY-SA 3.0
위키독[4] 리브레 위키 2023년 1월 1일~ 위키독 서비스 종료에 따른 DB 이전 CC-BY-SA 3.0

위키백과 분기 관련[편집 | 원본 편집]

위키백과리브레 위키는 라이선스가 CC-BY-SA 3.0으로 같아서 조건에 맞도록 출처를 밝힌다면 위키백과의 자료를 여기에다 옮기는 건 사실 저작권상의 문제는 없다. 더구나 똑같이 미디어위키 기반이기도 해서 아예 위키백과의 문서와 편집 기록을 포크해서 리브레 위키에다 들여오는 것도 기술적으로 가능하다.

그러나 일반적으로 이 행위는 위키 발전에 도움이 되지 않는다. 구글과 같은 검색 엔진에서는 독창적인 내용이 풍부한 페이지를 우선 순위로 띄우며, 서로 다른 사이트에서 중복된 정보가 있으면 검색 노출에서 밀리거나 빠지기 때문이다. 더군다나 애초 리브레 위키를 포함하여 CCL이 호환되는 사이트들은 원했다면 처음부터 위키백과 데이터를 통째로 포크하여 시작할 수도 있었지만, 적어도 이를 선택하지는 않는 길을 택했다. 문법이 호환되더라도 서술 형태와 같은 면에서 이질적으로 보이기 쉽다는 점도 생각해 봐야 할 문제이다. 위키쨩이나 위키독 사례와 같이 폐쇄된 웹사이트의 포크는 정보 보존이라는 목적이 있으므로 논외.[5]

위키백과의 특정 문서에서 글을 가져오거나 타 언어의 것을 번역할 경우, 틀:퍼온문서틀:번역된 문서를 붙이거나 편집 요약을 통해 알맞게 출처를 밝혀야 한다. 여기에 리브레 위키 사용자가 직접 유의미한 편집을 해야 문서 분기를 제대로 한 것이다. 그렇지 않으면 '단순 위키백과 분기'를 사유로 삭제 대상이 된다.

각주

  1. 1.0 1.1 현재 폐쇄된 상태
  2. 현재 있는 알파위키는 2기로, 알파위키 자체 편집분을 제외하고 포크 부분은 삭제된 상태다.
  3. 위키쨩 문서가 포크1 이름공간으로 들어온 날
  4. 부분 포크
  5. 위키독의 경우는 폐쇄가 공지되기 전부터 운영이 매우 불안정해져 폐쇄 수순을 밟기 전에도 대비 차원에서 포크가 시작되었다.