just 설치와 사용: justfile을 쓰고 첫 레시피 실행
just를 설치하고 justfile을 쓴 뒤 just로 첫 레시피를 실행한다.
Makefile 문법에 걸리고, 긴 npm script 목록은 읽기 어렵다. just는 Casey의 명령 러너다. 저장소 루트에 justfile을 두고 짧은 레시피 이름으로 로컬 명령을 호출한다.
just.systems와 github.com/casey/just를 따라 just를 설치하고 사용한다. 바이너리를 넣고 justfile을 쓴 뒤 just로 첫 레시피를 통과시킨다. 개발자 도구 사용법이며 브레인스토밍 안내가 아니다.
먼저 러너, 그다음 레시피
just는 Make, npm, cargo를 대체하지 않는다. 이미 있는 도구만 호출한다. macOS는 Homebrew, Rust가 있으면 cargo, Windows는 Scoop / Chocolatey / WinGet. 정본은 just.systems Installation과 README.
| 방법 | 필요한 것 | 이럴 때 |
|---|---|---|
| Homebrew | macOS / Linuxbrew | brew install just |
| cargo | Rust toolchain | cargo install just |
| Scoop / Chocolatey / WinGet | Windows | zip을 직접 풀기 싫을 때 |
첫 레시피까지 다섯 단계
- 1
just 설치
macOS:
brew install just. 또는cargo install just.just --version으로 확인. 명령은 just.systems를 따른다. - 2
루트에 justfile 만들기
저장소 루트에
justfile(또는Justfile). just는 현재 디렉터리에서 위로 찾는다.package.json이나Cargo.toml과 같은 층이 좋다. - 3
기본 레시피 작성
인자 없는
just는 첫 레시피 또는[default]. 줄 앞@는 에코를 숨긴다. 명령은 이름 아래 들여쓴다. - 4
목록과 실행
just --list가 이름과 주석을 보여 준다.just는 기본,just test는 test. 인자는greet name:→just greet Ada. - 5
의존과 변수
release: test는 먼저 test. 변수는name := "value"와{{name}}. 긴 스크립트는 shebang 레시피(매뉴얼 Recipes).
brew install just
# cargo install just
# scoop install just
just --version
just --list
just
just greet Ada최소 justfile
# justfile — first recipes
default:
@echo "hello from just"
test:
@echo "run tests here"
# pass an argument
greet name:
@echo "hi {{name}}"
레시피와 들여쓰기
이름 뒤에 콜론. 아래 명령은 공백 또는 Tab으로 통일. #는 just --list에 나온다.
의존과 인자
콜론 뒤가 의존. 위치 인자는 이름 뒤. 실패하면 공백과 따옴표를 확인한다.
Make / npm과의 차이
just는 기본으로 타임스탬프 때문에 건너뛰지 않는다. 명령 러너다. npm scripts는 레시피에서 호출할 수 있다.
흔한 함정
justfile 없음: 디렉터리가 다르거나 파일 이름 오타. 동작 안 함: Tab/공백 혼용, 들여쓰기 누락. command not found: 설치 후 PATH 미갱신. Windows는 공식 개행·셸 절.
레시피 후 짧은 스케치가 필요하면 wbstorm. 방 만들기와 참가, 화이트보드 기초, lazygit 설치와 사용.
Make 대체인가?
아니다. Make는 빌드 시스템이고 종종 타임스탬프로 단계를 건너뛴다. just는 매번 실행하는 러너. 함께 쓸 수 있다.
Homebrew가 필수인가?
아니다. just.systems에 Homebrew, cargo, 다른 매니저가 있다. 이미 있는 채널을 쓰면 된다.
파일 이름이 고정인가?
justfile 또는 Justfile이 흔하다. just --justfile path도 가능하다. 팀에서는 이름을 맞춘다.
wbstorm 기능인가?
아니다. 이 글은 casey/just만 다룬다. wbstorm은 브라우저 브레인스토밍 방이다.