# argp - Go용 GNU 스타일 커맨드라인 인자 파서

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19959](https://news.hada.io/topic?id=19959)
- GeekNews Markdown: [https://news.hada.io/topic/19959.md](https://news.hada.io/topic/19959.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-03-26T09:15:48+09:00
- Updated: 2025-03-26T09:15:48+09:00
- Original source: [github.com/tdewolff](https://github.com/tdewolff/argp)
- Points: 2
- Comments: 1

## Topic Body

- `./test -vo out.png --size 256 input.txt` 같은 GNU 표준을 따르는 명령줄 인자 파서  
- `-h` 및 `--help`로 내장된 도움말 메시지 제공  
- 태그 설정으로 구조체 필드에 인자 매핑  
- 배열, 슬라이스, 구조체 같은 복합 타입 필드 지원  
- 중첩된 서브 명령 지원  
  
### GNU 명령줄 인자 규칙  
- 하이픈(`-`)으로 시작하는 항목은 옵션임  
- 여러 옵션은 결합 가능 (`-abc`는 `-a -b -c`와 동일함)  
- 긴 옵션은 두 개의 하이픈(`--`)으로 시작 (`--abc`)  
- 옵션 이름은 영숫자만 가능  
- 옵션 값은 공백, 등호(`=`), 또는 연속된 값으로 설정 가능 (`-a1`, `-a=1`, `-a 1` 모두 동일)  
- 옵션과 비옵션 값은 섞여도 문제 없음  
- 옵션은 어떤 순서로든 나타날 수 있음.  
- `--`는 옵션 종료 의미로 이후 인자는 모두 비옵션으로 처리  
- 단일 `-`는 일반적으로 표준 입력 또는 출력을 의미  
- 동일 옵션이 여러 번 지정되면 마지막 값이 적용됨  
- 옵션은 여러 개의 값을 가질 수 있음 (`-a 1 2 3`은 `[1,2,3]`으로 처리됨)  
  
### 추가 기능  
  
- 옵션 카운팅: `-vvv`는 `v = 3`으로 설정됨  
- 옵션 추가: `-v 1 -v 2`는 `v = []int{1, 2}`로 설정됨  
- 불리언 옵션: `--var`는 활성화하고 `--no-var`는 비활성화함  
- 옵션은 구조체, 슬라이스, 맵과 같은 복합 타입이 될 수 있음  
- 옵션은 소스(예: SQL)에서 목록/딕셔너리 값을 가져올 수 있음

## Comments



### Comment 36373

- Author: haung921209
- Created: 2025-03-26T13:31:00+09:00
- Points: 1

cobra를 사용했었는데, 그에 비해 argp는 flag에 대해 여러가지 옵션을 주네요 ㅎㅎ
