소프트웨어 패키징 복잡성 해결: 카나니컬의 크래프트 제품군은 다양한 언어, 프레임워크, 빌드 시스템으로 인한 소프트웨어 패키징의 복잡성을 표준화하고 간소화하기 위해 개발되었습니다. 🧩
크래프트 파츠의 핵심 역할: 모든 크래프트 도구의 심장인 '크래프트 파츠'는 소스 코드 가져오기, 빌드, 파일 구조 정리 등 패키징의 핵심 과정을 담당하는 메커니즘입니다. ⚙️
명확한 빌드 라이프사이클: 풀(소스 가져오기), 빌드(컴파일), 스테이지(결과물 수집), 프라임(최종 파일 준비)의 4단계 라이프사이클을 통해 체계적인 빌드 관리가 가능하며, 각 단계는 CLI 명령어로 직접 실행 및 디버깅할 수 있습니다. 🔄
유연하고 재사용 가능한 파트 정의: YAML 파일로 파트 정의를 구성하며, 간단한 플러그인부터 복잡한 환경 변수 설정, 특정 Git 태그 사용까지 유연하게 제어할 수 있고, 이 파트 정의는 다른 크래프트 도구(스냅, 락, 참) 간에 재사용이 가능하여 개발 효율성을 높입니다. ♻️
일관된 빌드 환경 제공: '크래프트 프로바이더스' 라이브러리는 LXD 컨테이너나 멀티패스 가상 머신을 활용하여 OS 종류(리눅스, 맥, 윈도우)에 상관없이 격리된 리눅스 빌드 환경을 제공, "내 컴퓨터에서는 되는데" 문제를 해결합니다. 🌍
통합 테스트 기능 (실험적): '크래프트 테스트' 하위 명령어를 통해 로컬 및 원격 CI 환경에서 일관된 통합 테스트를 수행할 수 있으며, GUI 스냅의 경우 가상 머신 내에서 실제 상호 작용 테스트까지 가능하도록 발전하고 있습니다. 🧪
경량화 및 다중 아키텍처 지원: '치즐링' 기능을 통해 필요한 바이너리/라이브러리만 추출하여 패키지 크기를 줄이고, AMD64, ARM64 등 다양한 CPU 아키텍처를 지원하며, 로컬 환경이 없을 경우 원격 빌드 서버를 활용할 수 있습니다. 🚀
공통 라이브러리를 통한 일관성: '크래프트 애플리케이션'이라는 공통 라이브러리가 크래프트 파츠, CLI 인터페이스, 프로바이더스 등 핵심 기능을 묶어 제공함으로써, 각 크래프트 도구 개발팀이 고유 기능 개발에 집중할 수 있도록 합니다. 🤝
개발자 친화적 접근: 파트 재사용, 일관된 빌드 환경, 통합 테스트, 쉬운 디버깅 등 개발자의 편의성을 높이고 학습 비용을 줄여 개발 속도를 향상시키는 데 중점을 둡니다. 🧑💻