포크(프로그래밍)

최근 편집: 2018년 8월 21일 (화) 11:58
Daramkun (토론 | 기여)님의 2018년 8월 21일 (화) 11:58 판 (운영체제에서의 포크 추가)

운영 체제에서의 포크

운영 체제 위에서 구동되는 프로세스를 두 갈래로 나누어 실행하는 것을 포크라고 부른다. 이렇게 포그한 프로세스는 각각 서로 다른 프로세스 ID를 가지는 독립적인 프로세스가 된다.

이러한 멀티프로세스 기법은 멀티스레드 기법에 비해 안정성이 높아 많이 이용되어 왔지만 구현에 제약이 많아 웹 서버 등 성능보다 안정성이 요구되는 응용프로그램 개발에 많이 쓰인다.

버전 관리에서의 포크

오픈 소스 프로그래밍에서 모든 프로그램 코드는 변형이 가능하다. 일반적으로는 단일한 소스 코드 프로젝트를 두고 협업 해 나가는 형태를 띄지만, 편의를 위해, 또는 코딩 철학, 정치 등의 이유로 특정 판에서 새로운 프로젝트로 분화해나가는 것도 GPL, MIT 라이선스 등의 배포 라이선스 하에 가능하며, 이것을 포크라고 부른다.

포크라는 표현이 탄생한 영어권에서는 fork, forked, forking, forkabulous 등으로 동사화 시켜 맥락에 따라 변형해서 쓰지만, 한국어권에서는 포크라는 표현만 사용되며, 가끔 포킹이라고 쓸 때도 있기는 하다. (어감이 위험해서 어렵다)

잘 알려진 포크 프로젝트에는 다음과 같은 것들이 있다:

소스의 일부를 가져오는 것은 포크라 부르지 않으며, 특정 판을 통채로 가져온 후 거기서 개발을 다른 방향으로 시작하는 것만 포크라고 부르는 편이다.

  • 버전 관리 도구 중 하나인 Git의 저장소를 호스팅하는 서비스 중 GitHub에서는 포크 기능을 제공하여 손쉽게 프로젝트를 포크할 수 있다.

한편 배포 라이선스나 diff 보기 등 오픈 소스 프로그래밍과 매우 밀접한 형태의 운영 개념을 공유하고 있는 위키 사이트들도 사이트 운영 및 데이터베이스 복제에 포크라는 개념을 적용해, 라이센스를 준수하며 사이트를 베껴서 독립하는 경우도 포크라고 부르고 있다. 예를 들어 나무위키리그베다위키/엔하위키의 내용을 복제해서 나오면서 스스로 포크라고 자칭했으며, 이후 나무위키에서 쫓겨난 신원미상의 설립자(ID namu) 가 다시 나무위키의 DB덤프를 복제해서 알파위키라 이름 붙이며 나무위키의 포크라고 주장하고 있다.

부연 설명

출처