소프트웨어 라이선스 및 오픈 소스의 맥락에서 "포킹"은 원본 소스 코드를 기반으로 활용하여 기존 소프트웨어 프로젝트의 새롭고 고유한 버전을 만드는 프로세스를 의미합니다. 이러한 방식을 통해 개발자는 원래 프로젝트에 영향을 주지 않고 특정 요구 사항이나 목표에 맞게 소프트웨어를 수정, 확장 및 조정할 수 있습니다. Forking은 협업, 혁신 및 사용자 정의 가능한 소프트웨어 솔루션에 대한 고유한 지원으로 인해 오픈 소스 커뮤니티의 필수적인 부분이 되었습니다.
분기는 개발자가 소프트웨어 프로젝트의 주요 개발 경로에서 벗어나 다양한 디자인 선택이나 목표를 추구하기 위해 별도의 분기를 생성하기로 결정할 때 발생합니다. 이러한 분기 또는 "포크"는 변경 사항을 다시 기본 프로젝트에 다시 통합하려는 의도로 임시적일 수도 있고, 뚜렷하고 독립적인 프로젝트를 수립하기 위해 영구적일 수도 있습니다. 포크는 두 가지 주요 범주로 분류될 수 있습니다.
- 하드 포크: 이 유형의 포크는 원래 소프트웨어 프로젝트에서 영구적이고 호환되지 않는 분할을 생성하여 공통 코드베이스를 공유하는 두 개의 독립적인 프로젝트로 이어집니다. 하드 포크는 일반적으로 향후 개발 방향이나 목표에 관해 개발자 커뮤니티 내에서 심각한 의견 차이가 발생할 때 발생합니다. 하드포크의 잘 알려진 사례는 2017년 비트코인(BTC)에서 암호화폐 비트코인캐시(BCH)가 탄생한 것이다.
- 소프트 포크: 반면에 소프트 포크는 궁극적으로 메인 프로젝트에 다시 병합되기 전에 새로운 기능이나 개선 사항에 대해 협력하려는 의도로 메인 프로젝트에서 일시적으로 분리되는 것입니다. 소프트 포크는 새로운 아이디어와 혁신이 기본 코드베이스에 통합되기 전에 테스트하는 안전하고 효과적인 수단으로 자주 등장합니다.
오픈 소스 라이선싱 모델이 포크 실행에서 중요한 역할을 한다는 점에 유의하는 것이 중요합니다. 오픈 소스 라이선스는 개발자에게 소프트웨어 프로젝트의 소스 코드에 자유롭게 액세스, 수정 및 재배포할 수 있는 권한을 부여하여 포크가 합법적으로 설정되고 유지 관리될 수 있도록 보장합니다. 따라서 포크는 오픈 소스 소프트웨어 개발의 필수 구성 요소로, 개발자가 자신의 비전과 목표를 추구하기 위해 기존 프로젝트를 조정하고 구축할 수 있도록 지원합니다.
소프트웨어 개발 환경에서 포크는 혁신을 주도하고 개발 프로세스를 가속화하며 맞춤형 소프트웨어 솔루션의 광범위한 가용성을 지원하는 데 중요한 역할을 해왔습니다. 예를 들어, Linux 운영 체제는 여러 번 포크되어 다양한 사용 사례, 산업 및 사용자 선호도를 충족하는 수많은 배포판(배포판)이 탄생했습니다. 이 Linux 배포판 에코시스템은 다양한 요구 사항을 해결하고 소프트웨어 개발에서 포괄적인 성장 환경을 조성하는 수단으로 포크의 힘을 보여줍니다.
백엔드, 웹 및 모바일 애플리케이션 생성을 위한 선도적인 no-code 개발 솔루션인 AppMaster 플랫폼은 현대 소프트웨어 개발 생태계에서 포크의 중요성을 인정합니다. AppMaster 주로 직관적인 시각적 디자인 도구를 사용하여 새로운 애플리케이션을 생성하는 데 중점을 두고 있지만 Business+ 및 Enterprise 구독 고객은 프로젝트의 소스 코드 패키지를 획득하고 필요에 따라 포크 방식을 채택하여 독립적인 개발 경로를 추구할 수 있습니다.
백엔드 애플리케이션용으로 생성된 Go(golang) 소스 코드, 웹 애플리케이션용 Vue3 프레임워크 및 JS/TS 코드, 모바일 애플리케이션용 Kotlin 및 Jetpack Compose 또는 SwiftUI 코드를 활용하여 사용자는 고유한 요구 사항이나 목표에 맞는 포크를 만들 수 있습니다. , AppMaster 의 no-code 환경 범위를 벗어납니다. 이러한 유연성을 통해 AppMaster 고객은 포크 방식의 이점을 활용하는 동시에 플랫폼의 no-code 기능이 제공하는 신속한 애플리케이션 개발의 이점을 누릴 수 있습니다.
요약하자면, 포크는 개발자가 원본 소스 코드를 활용하여 기존 소프트웨어 프로젝트의 새 버전을 만들 수 있도록 하는 소프트웨어 라이선스 및 오픈 소스 컨텍스트 내에서 핵심 관행입니다. 이는 혁신을 촉진하고 개발 프로세스를 가속화하며 특정 요구 사항이나 목표를 충족하도록 소프트웨어 솔루션을 사용자 정의할 수 있도록 보장합니다. AppMaster 플랫폼은 현대 소프트웨어 개발에서 포크의 중요성을 인식하고 고객에게 생성된 소스 코드 패키지를 제공하여 필요할 때 포크 실행을 통해 독립적인 개발 경로를 추구할 수 있도록 합니다.