🔥 ArgumentParser의 실험 기능
397자
4분
강의 목차
주의
현재 이 문서는 ArgumentParser 공식 문서 버전 1.3.1 을 편역한 것입니다. 실험 기능은 ArgumentParser 버전이 업데이트 되면서 변경되거나 삭제될 수 있으므로 주의하세요.
https://swiftpackageindex.com/apple/swift-argument-parser/1.3.1/documentation/argumentparser/
ArgumentParser를 사용하여 만든 명령행 프로그램은 --experimental
접두사와 함께 몇 가지 내장된 실험 기능을 포함할 수 있어요. 이러한 기능들은 접두사가 붙어 있는 동안에는 안정적이라고 간주되어서는 안 되는데, 이는 향후 릴리스에서 동작이 변경되거나 제거될 수 있기 때문이에요.
실험 기능에 대한 의견이 있다면 GitHub 이슈를 열어주시길 바랍니다.
실험 기능 목록
이름 | 설명 | 관련 PR | 버전 |
---|---|---|---|
--experimental-dump-help | 명령/인자/도움말 정보를 JSON으로 덤프합니다 | #310 #335 | 0.5.0 이상 |
-experimental-dump-help
기능을 사용하면 ArgumentParser로 정의한 명령, 인자, 도움말 정보를 JSON 형식으로 덤프할 수 있습니다. 다음은 이 기능을 사용하는 예시 코드예요:
import ArgumentParser struct MyCommand: ParsableCommand { @Flag(help: "Activate verbose mode") var verbose = false @Argument(help: "The input file path") var inputFile: String func run() throws { print("Verbose: \(verbose)") print("Input file: \(inputFile)") } } MyCommand.main(["--experimental-dump-help"])
swift
이 코드를 실행하면 다음과 같은 JSON 출력이 터미널에 나타납니다:
{ "command" : { "arguments" : [ { "abstract" : "Activate verbose mode", "isOptional" : true, "isRepeating" : false, "kind" : "flag", "names" : [ { "kind" : "long", "name" : "verbose" } ], "preferredName" : { "kind" : "long", "name" : "verbose" }, "shouldDisplay" : true, "valueName" : "verbose" }, { "abstract" : "The input file path", "isOptional" : false, "isRepeating" : false, "kind" : "positional", "shouldDisplay" : true, "valueName" : "input-file" }, { "abstract" : "Show help information.", "isOptional" : true, "isRepeating" : false, "kind" : "flag", "names" : [ { "kind" : "short", "name" : "h" }, { "kind" : "long", "name" : "help" } ], "preferredName" : { "kind" : "long", "name" : "help" }, "shouldDisplay" : true, "valueName" : "help" } ], "commandName" : "my-command" }, "serializationVersion" : 0 }
json
이 JSON 출력에는 MyCommand
타입에 정의된 명령(my-command
), 플래그(verbose
), 인자(inputFile
)에 대한 정보가 포함되어 있습니다. 각각의 요소에는 이름, 도움말 메시지, 기본값 등의 메타데이터가 함께 제공되지요.
-experimental-dump-help
기능은 ArgumentParser로 만든 CLI 도구의 인터페이스를 프로그래밍 방식으로 검사하고 문서화하는 데 유용하게 활용할 수 있습니다. 이를 통해 자동화된 도구 통합이나 사용자 지향적인 도움말 생성 등의 작업을 수행할 수 있게 되는 거예요.
하지만 앞서 언급했듯이 이 기능은 아직 실험 단계에 있으므로, 향후 릴리스에서는 동작이 변경되거나 심지어 제거될 수도 있다는 점을 유념해야 합니다. 따라서 프로덕션 환경에서 이 기능에 크게 의존하는 것은 권장하지 않습니다.