GN⁺: Just - Command Runner
(just.systems)- "프로젝트별 명령"을 저장하고 실행하는 간편한 도구
- 빌드시스템이 아닌 단순한 "명령 실행기"
-
make
와 비슷한 문법의justfile(recipe)
를 작성하여 실행 - 리눅스/맥/윈도우 지원
- 명확한 에러 제공, 문법 에러는 소스 컨텍스트와 함께 표시
- Recipe는 명령형 인자 받기 지원
- 가능하다면 모든 에러는 정적으로 리졸브됨. 알수 없는 레시피 및 순환 종속성은 실행 전에 알려줌
- Recipe는 명령행에서 리스팅 가능
- 명령행 자동완성 스크립트는 대부분의 유명 쉘들에서 지원 (Bash, Elvish, Fish, Nushell, PowerShell, Zsh)
- Recipe는 Python/NodeJS 같은 임의의 언어로 작성할 수 있음
Hacker News 의견
-
Task는 예상 파일을 지정하여 불필요한 작업을 피할 수 있어 소프트웨어 빌드에 적합함
- Just는 프로세스의 성공 코드만 중요할 때 적합하며, Rust 팬에게도 좋음
- CI 같은 특정 용도에서는 이미 YAML/JSON/XML 형식을 사용 중일 가능성이 높음
-
Just는 추가적인 언어를 요구하며, 프로젝트 도구로서 명령형 모드를 장려함
- 이는 파일 시스템 상태를 변경할 수 있어, 자동화가 불확실한 상태에 의존하게 됨
- Nix와 같은 도구를 사용하여 빌드로 재구성하는 것이 바람직함
-
Mise를 사용해 보았으나 설치가 번거로워 Just로 돌아옴
- Just는 가볍고 빠르다는 인식 덕분에 저항이 적음
-
Just를 거의 1년 동안 사용하며 만족함
-
just --list
로 새로운 사람의 온보딩이 쉬움 - Make보다 더 나은 문법을 제공함
-
-
과거에 비슷한 도구를 개발한 경험이 있으며, 같은 필요를 느낀 사람들이 있어 기쁨
-
Just는 개발 스택에서 중요한 소프트웨어로, Windows에서도 잘 작동함
-
모든 프로젝트에서 Just를 사용 중이며, 일반적인 justfile은 약 20개의 규칙을 가짐
- 프로젝트 루트 디렉토리에서 항상 실행되는 것이 큰 장점임
-
Just는 Make보다 사용 설득이 쉬움
- Make는 배우기 유용하지만, 쉘 경험이 적은 사람에게는 어려운 언어임
- 소유자가 불분명한 Makefile이 레포지토리에 흩어져 있는 경우가 많음
-
Task/Taskfile과 유사한 Mage/Magefile은 Go 코드로 작업을 정의함
- 복잡한 작업에 유용하며, Pulumi와 Terraform의 관계와 비슷함
-
Make를 오랫동안 사용했지만, 새로운 도구에 투자하는 것이 불안함
- Make를 대체할 '더 나은 Make'가 있기를 바람