<h1 align="center">
<a href="https://github.com/jolicode/castor"><img src="https://jolicode.com/media/original/oss/headers/castor.png" alt="Castor"></a>
<br />
자동화(Automation), CI/CD 및 DevOps를 위한 가볍고 현대적인 태스크 러너입니다.<br>
<sub><em><h6>PHP로 모든 것을 자동화하세요. 간단하게. 효율적으로. 우아하게.</h6></em></sub>
</h1>
<!-- start index -->
PHP로 자동화 스크립트를 작성하고 CLI에서 실행하세요.<br/>
Bash, Makefile 또는 YAML이 필요 없습니다.<br/>
소개 (Presentation)
Castor는 개발자 경험(DX) 중심의 태스크 러너로, 개발 작업과 워크플로우를 간단하고 효율적인 방식으로 자동화하는 데 도움을 주도록 설계되었습니다.
이는 Makefile, Fabric, Invoke, Shell 스크립트 등의 대안으로 볼 수 있지만, PHP의 스크립팅 기능과 광범위한 라이브러리 생태계를 활용합니다.
사용자의 삶을 더 쉽게 만들어 줄 많은 기능을 제공합니다:
- 인수와 옵션을 원활하게 파싱하여 입력 처리를 단순화합니다.
- 더 빠르고 오류 없는 타이핑을 위한 Autocomplete 지원
- 유용한 함수 목록이 내장되어 있습니다:
run(): 외부 프로세스를 실행하여 외부 도구와의 원활한 통합을 가능하게 합니다.
io(): 예쁜 출력을 표시하고 터미널과 상호 작용합니다.
watch(): 파일을 감시하며 파일 수정 시 자동으로 작업을 트리거합니다.
fs(): 파일과 디렉토리를 생성, 제거 및 조작합니다.
- 더 고급 기능도 사용할 수 있습니다.
10초 만에 시작하기
curl "https://castor.jolicode.com/install" | bash
castor
→ Castor는 다른 여러 방법(phar, 정적 바이너리, Composer, Github Action 등)으로도 설치할 수 있습니다. 설치 문서를 참고하세요.
기본 사용법
Castor에서는 작업을 castor.php 파일 내에서 #[AsTask()] 속성으로 표시된 일반적인 PHP 함수로 설정합니다.
이러한 작업은 모든 PHP 코드를 실행할 수 있을 뿐만 아니라, Castor에 미리 패키징되어 제공되는 다양한 표준 작업용 함수를 활용할 수도 있습니다.
예를 들어, 다음 castor.php 파일:
use Castor\Attribute\AsTask;
#[AsTask()]
...
을 실행하면 castor hello로 실행할 수 있는 hello 작업이 노출됩니다:
$ castor hello
Hello from castor
그 후, 더 복잡한 작업을 만들며 자유롭게 활용할 수 있습니다:
#[AsTask(description: '인프라를 정리합니다 (컨테이너, 볼륨, 네트워크 제거)')]
function destroy(bool $force = false)
{
...
→ Castor의 기본적인 사용법과 주요 기능을 확인하고 싶으신가요? Getting started documentation를 읽어보세요.
실제 활용 사례 (Real-world use cases)
- 데이터베이스 마이그레이션 실행
- 단일 명령어로 앱 배포
- 에셋 또는 번역 관리
- 환경 부트스트랩(Bootstrap environments)
- 내부 도구 자동화
→ 커뮤니티의 더 많은 예제를 확인해 보세요.
개발자들이 말하는 것 (What developers say)
"마침내 PHP처럼 느껴지는 태스크 러너가 나왔네요. 이상한 DSL(Domain Specific Language) 없이, 그냥 함수만 사용해요."<br>
— 모든 Castor 사용자 중 한 명일 것입니다.
<!-- -->
"Bash, Make, 그리고 반쯤 되는 DevOps 학위가 필요할 줄 알았어요. 알고 보니 필요한 건 Castor 하나뿐이더라고요."<br>
— 놀라울 정도로 안도한 개발자
<!-- -->
"Make에서 Castor로 마이그레이션했는데 아무도 울지 않았어요. 그게 승리죠."<br>
— 시니어 개발자, 이제는 덜 짜증남
Make / Robo / Phing / Deployer / Symfony Console은 왜 아닌가요?
다음과 같은 이유 때문입니다:
- Make는 PHP가 아니며 대규모 프로젝트에서 유지보수가 어렵습니다.
- 다른 도구들은 너무 장황하거나, OOP(Object-Oriented Programming)에 치중되어 있거나, YML 또는 XML 설정이 필요하거나, 배포 전용으로 특화되어 있습니다.
- Symfony Console은 훌륭한 기반이지만, Castor는 이를 기반으로 구축되었으며 초능력(superpowers)을 제공합니다.
→ FAQ에서 자세한 비교를 확인해 보세요.
<!-- end index -->
더 알고 싶으신가요?
문서를 읽고 더 많은 것을 발견하세요:
<br><br>
<div align="center">
<a href="https://jolicode.com/"><img src="https://jolicode.com/media/original/oss/footer-github.png?v3" alt="JoliCode is sponsoring this project"></a>
</div>