Argc란 무엇일까?
Argc는 Bash 기반의 CLI 프레임워크이자 커맨드 러너로, CLI를 구축할 때 발생하는 지루한 작업(인수 파싱, 사용법 텍스트 생성, 에러 메시지 처리 등)을 자동화해줍니다. 핵심 아이디어는 주석으로 CLI 인터페이스를 정의하는 거예요. 코드를 작성하면서 @로 시작하는 주석만 달아주면, Argc가 나머지를 처리해주죠. 게다가 크로스플랫폼 지원(macOS, Linux, Windows, BSD)으로 어디서든 동작합니다. 라이선스는 Apache-2.0 또는 MIT로 자유롭게 사용할 수 있어요.
이 프로젝트의 매력은 단순함에 있어요. 복잡한 파서 라이브러리를 배우지 않아도, 기존 Bash 스킬만으로 풀페처 CLI를 만들 수 있답니다. 게다가 Argcfile.sh를 통해 태스크 자동화도 가능하니, 스크립트 애호가들에게 딱 맞아요!
Argc의 주요 기능
Argc가 왜 특별한지, 핵심 기능을 나열해볼게요:
- 쉬운 인수 파싱: 플래그, 옵션, 위치 인수, 서브커맨드를 자동 처리. 입력 유효성 검사와 사용법 텍스트 생성까지!
- 독립 실행 스크립트 생성: Argc에 의존하지 않는 standalone Bash 스크립트를 빌드할 수 있어요.
- 자동 완성 지원: Bash, Zsh, Fish, PowerShell 등 다양한 쉘에서 자동 완성 기능 제공.
- Man 페이지 자동 생성: CLI의 상세 매뉴얼을 한 번에 만들어줍니다.
- 환경 변수 통합: 옵션/인수와 환경 변수를 연결하고 검증.
- 태스크 자동화: Argcfile.sh로 Bash + GNU 도구를 활용한 명령 실행.
- 크로스플랫폼 호환: 플랫폼 간 이식성이 뛰어나요.
이 기능들 덕분에, CLI 개발 시간이 대폭 줄어요. 예를 들어, 기존에 수십 줄의 파싱 코드를 작성하던 걸 몇 줄의 주석으로 대체할 수 있죠.
설치 방법: 5분 만에 시작하기
Argc 설치가 간단해서 좋습니다. 여러 방법을 지원하니, 환경에 맞게 선택하세요.
패키지 매니저 사용
- Rust (Cargo):
cargo install argc - Homebrew (macOS/Linux):
brew install argc - Arch Linux (Pacman):
yay -S argc
바이너리 다운로드
GitHub Releases에서 다운로드하거나, 한 줄 스크립트로 설치:
curl -fsSL https://raw.githubusercontent.com/sigoden/argc/main/install.sh | sh -s -- --to /usr/local/bin
GitHub Actions (CI/CD용)
- uses: sigoden/install-binary@v1
with:
repo: sigoden/argc
팁: macOS에서는 Bash 5와 GNU 도구를 설치하세요 (brew install bash coreutils gawk gnu-sed grep). Windows에서는 Git Bash를 사용하고, PowerShell에서 .sh 파일 실행을 위해 레지스트리 설정을 추가하면 돼요. (자세한 코드는 리포지토리 참조!)
실제 사용 예시: 간단한 CLI 만들기
이제 Argc의 마법을 느껴보죠. example.sh라는 스크립트를 작성해봅시다. 주석으로 인터페이스를 정의한 후, eval로 Argc를 호출하면 끝!
#!/usr/bin/env bash
# @flag -F --foo Flag param
# @option --bar Option param
# @option --baz* Option param (multi-occurs)
# @arg val* Positional param
eval "$(argc --argc-eval "$0" "$@")"
echo foo: $argc_foo
echo bar: $argc_bar
echo baz: ${argc_baz[@]}
echo val: ${argc_val[@]}
실행 예시:
./example.sh -F --bar=xyz --baz a --baz b v1 v2
출력:
foo: 1
bar: xyz
baz: a b
val: v1 v2
도움말도 자동 생성! ./example.sh --help를 치면:
USAGE: example [OPTIONS] [VAL]...
ARGS:
[VAL]... Positional param
OPTIONS:
-F, --foo Flag param
--bar <BAR> Option param
--baz [BAZ]... Option param (multi-occurs)
-h, --help Print help
-V, --version Print version
추가 기능 활용
- Standalone 빌드:
argc --argc-build ./example.sh build/로 Argc 없이 실행 가능한 스크립트 생성. - 자동 완성:
source <(argc --argc-completions bash ./example.sh example --)로 쉘 완성 활성화. - Man 페이지:
argc --argc-mangen ./example.sh man/로 매뉴얼 생성 후man man/example.1확인.
더 복잡한 CLI는 @describe, @cmd (서브커맨드), @env (환경 변수) 등의 태그를 활용하세요. Argcfile.sh로 태스크를 정의하면, Makefile 같은 자동화도 가능해요.
왜 Argc를 추천할까?
Argc는 Bash의 강점을 극대화하면서, 현대 CLI 도구의 편의성을 더해줍니다. 특히, Rust로 작성된 가벼운 바이너리라 성능도 우수해요. 벤치마크는 별도로 없지만, 간단한 파싱으로도 고속 동작을 보장하죠. 만약 여러분이 스크립트나 도구를 자주 만드신다면, Argc로 시간을 절약하고 더 프로페셔널한 CLI를 만들어보세요!
이 프로젝트를 더 탐구하고 싶으시면 GitHub 리포지토리를 방문하세요.
'Programming' 카테고리의 다른 글
| Next.js 16의 혁신: 캐싱부터 개발자 경험까지, 미래 지향적인 업데이트 (0) | 2025.10.28 |
|---|---|
| React Grab: React 앱 요소를 클릭 한 번으로 코딩 에이전트에게 전달하는 혁신적인 도구 (0) | 2025.10.28 |
| Vitest 4.0 출시: 테스트 도구의 새로운 시대를 열다 (0) | 2025.10.28 |
| Node.js가 이렇게 변했다? 2025년 현대 Node.js의 숨겨진 기능 5가지 (0) | 2025.10.25 |
| Graffle.js: JavaScript 개발자를 위한 간단하고 타입 안전한 GraphQL 클라이언트 (0) | 2025.10.22 |