# Just - Command Runner

> Clean Markdown view of GeekNews topic #18146. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=18146](https://news.hada.io/topic?id=18146)
- GeekNews Markdown: [https://news.hada.io/topic/18146.md](https://news.hada.io/topic/18146.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-12-08T09:39:23+09:00
- Updated: 2024-12-08T09:39:23+09:00
- Original source: [just.systems](https://just.systems/)
- Points: 7
- Comments: 2

## Topic Body

- "프로젝트별 명령"을 저장하고 실행하는 간편한 도구   
  - 빌드시스템이 아닌 단순한 "명령 실행기"  
- `make`와 비슷한 문법의 `justfile(recipe)` 를 작성하여 실행   
- 리눅스/맥/윈도우 지원   
- 명확한 에러 제공, 문법 에러는 소스 컨텍스트와 함께 표시   
- Recipe는 명령형 인자 받기 지원  
- 가능하다면 모든 에러는 정적으로 리졸브됨. 알수 없는 레시피 및 순환 종속성은 실행 전에 알려줌   
- Recipe는 명령행에서 리스팅 가능   
- 명령행 자동완성 스크립트는 대부분의 유명 쉘들에서 지원 (Bash, Elvish, Fish, Nushell, PowerShell, Zsh)  
- Recipe는 Python/NodeJS 같은 임의의 언어로 작성할 수 있음

## Comments



### Comment 32140

- Author: constexprif
- Created: 2024-12-09T10:54:00+09:00
- Points: 2

.sh랑 .bat을 둘 다 가지는게 불쾌할 때 쓰는 도구인걸까요

### Comment 32126

- Author: neo
- Created: 2024-12-08T09:39:24+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42351101) 
- 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'가 있기를 바람
