반복 명령을 이름으로 실행하는 프로그래머용 유틸리티
대상 사용자: 프로그래머. 펌웨어 빌드·검사·문서 생성처럼 반복하는 명령을 justfile의 이름으로 실행하고 싶은 개발자를 위한 자료입니다. just는 명령 실행 도구이며, 예제에서는 빌드 시스템이나 컴파일러를 설치하지 않습니다.
검증 환경은 Windows x64와 Windows PowerShell입니다. 이 자료의 공식 원본은 just 1.59.0 / x86_64-pc-windows-msvc입니다. ARM64·32비트 Windows용 파일은 포함하지 않습니다. 확인일은 2026-10-17입니다.
1. 첨부파일과 공식 다운로드
- 공식 원본 ZIP:
just-1.59.0-x86_64-pc-windows-msvc.zip. just.exe, LICENSE, README, Cargo 파일, 매뉴얼, 셸 완성 파일을 포함한 배포 원본입니다.
- 한국어 설명서·실습 ZIP:
just-1.59.0-korean-guide-practice.zip. 이 설명서, 브라우저로 읽는 HTML 설명서, 실습 justfile, 예상 출력, 자동 실습 검증 스크립트, 라이선스·출처 안내를 담았습니다. 이 실습 ZIP에는 실행 파일이나 설치파일이 없습니다. 실행 파일은 별도 공식 원본 ZIP에 들어 있습니다.
- 공식 릴리스 1.59.0
- 공식 Windows x64 원본 ZIP
- 공식 사용 설명서
공식 원본 ZIP의 크기는 2,292,448바이트이며 SHA-256은 아래와 같습니다. 다운로드한 바이트를 GitHub 릴리스 API가 제공한 SHA-256과 대조했습니다. 이 값은 파일 일치 확인용이며 별도의 코드 서명 검증을 뜻하지 않습니다.
9c5463e2d0974e31bee71346aa5cbf19167de1585a4abc1bae7b3b04604ea9c0
2. 설치: 압축 해제 후 버전 확인
- 별도 작업 폴더를 만들고 공식 원본 ZIP을 압축 해제합니다. 예:
C:\Tools\just-1.59.0.
- 그 폴더의
just.exe를 실행합니다. MSI 설치 과정 없이 사용할 수 있습니다. 배포 폴더의 LICENSE와 README도 함께 보관하세요.
- PowerShell을 열고 아래 명령으로 확인합니다. 공백이 있는 경로는 따옴표와 호출 연산자
&를 함께 사용합니다.
$justExe = 'C:\Tools\just-1.59.0\just.exe'
& $justExe --version
예상 출력은 just 1.59.0입니다. PATH를 영구 변경하지 않아도 위처럼 실행할 수 있습니다. 전역 설치는 공식 매뉴얼의 패키지 관리자 안내를 참고할 수 있습니다. 이 글의 실습은 첨부한 공식 ZIP의 실행 파일을 기준으로 합니다.
3. 실습 폴더와 PowerShell 셸 설정
실습 ZIP을 원하는 폴더에 풀고 PowerShell에서 그 폴더로 이동합니다. justfile이 있는 디렉터리에서 아래 내용을 확인하세요. 파일 확장자가 자동으로 붙어 justfile.txt가 되지 않도록 합니다.
set windows-shell := ["powershell.exe", "-NoLogo", "-NoProfile", "-Command"]
# Show recipe list without running a task.
default:
@just --list
# Show a reproducible message.
hello name="developer":
@Write-Output "Hello, {{name}}"
# This dependency runs before the final message.
check: (hello "firmware")
@Write-Output "Checks complete"
# Preserve a non-zero exit code for the caller.
fail:
@exit 7
이 실습은 Windows에 기본 제공되는 powershell.exe를 셸로 명시합니다. 따라서 Git Bash의 sh나 PowerShell 7의 pwsh 설치가 필요하지 않습니다. 레시피 본문은 들여쓰기하며, 줄 앞의 @는 실행할 명령 자체를 화면에 다시 찍는 동작을 줄입니다. 실제 출력 메시지는 계속 표시됩니다.
hello의 기본 인수는 developer입니다. 실습에서는 MCU처럼 간단한 인수만 사용합니다. 이 예제의 텍스트 치환은 임의의 외부 입력을 안전하게 이스케이프하는 기능이 아니므로 외부 입력을 셸 명령에 직접 끼워 넣지 마세요.
4. 목록·인수·의존 레시피 실행
공식 원본에서 압축 해제한 실행 파일의 경로를 먼저 지정합니다. 현재 PowerShell 세션의 PATH 앞에도 그 폴더를 붙여 default 레시피 안의 just --list 호출이 같은 실행 파일을 찾도록 합니다. 시스템 PATH는 변경하지 않습니다.
$justExe = 'C:\Tools\just-1.59.0\just.exe'
$env:Path = (Split-Path -Parent $justExe) + [IO.Path]::PathSeparator + $env:Path
& $justExe --list
& $justExe hello MCU
& $justExe check
& $justExe --dry-run check
hello MCU는 아래 한 줄을 출력합니다.
Hello, MCU
check는 의존 레시피 hello "firmware"를 먼저 실행하고 다음 순서로 출력합니다.
Hello, firmware
Checks complete
--dry-run check는 실행 예정 명령을 보여주며 레시피 명령을 실행하지 않습니다. 신뢰할 수 없는 justfile을 안전하게 격리하는 샌드박스는 아니므로 내용을 먼저 확인하세요. justfile의 함수·변수 등 평가가 필요한 구문까지 안전하다고 가정하면 안 됩니다.
기본적으로 일반 레시피의 각 줄은 별도의 셸에서 실행됩니다. 한 줄에서 수행한 cd나 셸 변수 대입이 다음 줄에도 남는다고 가정하지 마세요. 작업 디렉터리는 명확히 지정하거나 명령을 한 줄로 구성하고, 여러 줄 상태가 필요하면 공식 문서의 script recipe 방식을 확인하세요.
5. 실패 코드 확인과 첨부 검증 스크립트
아래 fail은 오류 전달을 확인하려고 의도적으로 종료 코드 7을 반환하는 실습입니다. 파일을 삭제하거나 시스템 설정을 바꾸지 않습니다.
& $justExe fail
$LASTEXITCODE
예상 종료 코드는 7입니다. PowerShell에서 나중에 다른 프로그램을 실행하면 $LASTEXITCODE가 바뀔 수 있으므로 바로 확인합니다. 실제 빌드나 테스트 명령을 레시피에 넣을 때도 하위 프로그램의 오류를 전달하는지 확인하세요.
첨부한 verify-practice.ps1은 실행 파일 경로를 인수로 받아 버전, 목록, 기본 레시피, 인수 전달, 의존 레시피 순서, dry-run, 의도적 실패를 검사합니다.
.\verify-practice.ps1 -JustExe 'C:\Tools\just-1.59.0\just.exe'
검증이 끝나면 PASS: 7 just practice checks가 출력됩니다. 스크립트는 실습 폴더로 잠시 이동하고 현재 프로세스의 PATH를 임시로 설정한 뒤 되돌립니다. 파일 생성·삭제, 네트워크 접속, 시스템 PATH 변경은 하지 않습니다. PC 정책으로 스크립트 실행이 제한되면 조직 정책에 따라 처리하고 위의 개별 명령을 직접 실행해도 됩니다.
6. 문제 해결
| 증상 |
확인·해결 방법 |
just를 찾을 수 없음 |
& $justExe --version으로 전체 경로 실행부터 확인합니다. 기본 레시피를 사용할 때는 같은 PowerShell 세션의 PATH 설정도 적용합니다. |
sh 또는 pwsh를 찾을 수 없음 |
첨부 justfile의 첫 줄 set windows-shell을 확인합니다. 이 실습은 powershell.exe를 명시합니다. |
| justfile을 찾을 수 없음 |
실습 ZIP 압축 해제 폴더로 이동하고 파일명이 justfile인지 확인합니다. 다른 위치에서는 --justfile '경로\justfile'을 사용합니다. |
| 레시피 구문·들여쓰기 오류 |
본문 들여쓰기를 유지하고, UTF-8 일반 텍스트로 저장합니다. 워드프로세서의 스마트 따옴표를 사용하지 않습니다. |
fail을 실행하니 빨간 오류가 나옴 |
이 예제에서는 정상입니다. 종료 코드 7을 확인하기 위한 레시피입니다. |
| 다른 PC에서 실행 파일이 동작하지 않음 |
이 첨부는 Windows x64용입니다. ARM64·다른 OS는 공식 릴리스에서 맞는 파일을 선택합니다. 보안 프로그램의 차단이 있으면 출처·해시·정책을 확인하고 보호 기능을 임의로 끄지 않습니다. |
| 명령이 성공한 것처럼 보여도 하위 도구는 실패함 |
PowerShell 레시피에서 네이티브 명령 종료 코드를 확인하고 필요하면 exit $LASTEXITCODE로 전달합니다. 복합 명령의 마지막 상태만으로 성공을 판단하지 않습니다. |
7. 라이선스와 재배포 안내
just 프로젝트의 배포 원본 LICENSE는 CC0 1.0 Universal입니다. 원본 ZIP은 재압축·파일 제거 없이 그대로 첨부했으며 LICENSE·README·Cargo 파일·매뉴얼·완성 파일을 보존했습니다. 프로젝트의 라이선스를 모든 의존성의 라이선스와 동일하다고 해석하지 않으며, 원본에 포함된 고지와 각 의존성의 조건도 유지해야 합니다.
한국어 설명서와 이 자료를 위해 만든 실습 파일은 J-IoT 작성 자료입니다. 실습 ZIP에는 원본 LICENSE의 사본과 공식 출처·해시 안내도 들어 있습니다. 공식 지원이나 실행 파일의 코드 서명을 제공하는 자료는 아닙니다.
공식 참고 자료
검증 범위: 공식 ZIP의 SHA-256·압축 무결성·LICENSE 확인, just 1.59.0 실행, 첨부 justfile과 검증 스크립트 실행. 실제 프로젝트 빌드·배포는 실행하지 않았습니다.