CLI 도구 정의를 위한 'Usage' 스펙, 자동 완성 및 문서 생성을 지원
'Usage'는 CLI 도구의 인터페이스 정의(Interface Definition)를 위한 스펙으로, OpenAPI와 유사하게 작동하며, 자동 완성, 문서 생성 등을 지원한다.
KDL(XML과 JSON의 장점을 결합)을 사용하여 CLI 정의(CLI Definition)를 작성하며, 다양한 CLI 프레임워크에 적용 가능하다.
'docopt'와 비교하여 개선된 방향성을 제시하며, typer 통합(Typer Integration)에 대한 기대감을 표명하는 의견이 존재한다.
CLI 도구의 언어 표준화(Language Standardization) 및 로깅, 애플리케이션 상태 관리의 표준화에 대한 논의가 이루어졌다.
'Usage' 스펙의 핵심 기능
Usage는 CLI 도구의 인터페이스를 정의(Interface Definition)하기 위한 스펙으로, CLI 도구의 인자(Arguments), 플래그(Flags), 환경 변수(Environment Variables), 설정 파일(Config Files) 등을 정의할 수 있다. 특히, 자동 완성 스크립트 생성, 마크다운 문서 생성, 매뉴얼 페이지 생성 기능을 제공하여 개발 생산성을 향상시킨다. 또한, 다양한 언어의 CLI 프레임워크에 적용 가능하도록 설계되었다.
KDL(K Data Language) 채택 배경
Usage 스펙은 KDL(K Data Language)을 사용하여 작성된다. KDL은 XML과 JSON의 장점을 결합한 새로운 문서 언어로, 인간 가독성(Human Readability)과 다양한 도구 지원(Tooling Support)을 동시에 제공하는 것을 목표로 한다. 댓글에서는 KDL의 문법(Syntax)이 Tcl과 유사하다는 의견이 제시되었으며, KDL의 채택 배경에 대한 궁금증을 자아낸다.
기존 도구와의 비교 및 개선점
토론에서는 'Usage'를 기존 CLI 도구 정의 도구인 'docopt'와 비교하며, 'docopt'의 단점을 보완한 점을 강조한다. 특히, 'docopt' 사용 후 겪는 복잡성(Complexity) 문제를 해결하고, 보다 직관적인 방식으로 CLI 인터페이스를 정의할 수 있도록 설계되었다는 평가를 받는다. 또한, 'typer'와의 통합을 통해 자동 완성 기능(Autocompletion)을 더욱 강화할 수 있다는 기대가 존재한다.
CLI 도구의 언어 표준화에 대한 논의
커뮤니티에서는 CLI 도구의 언어 표준화(Language Standardization)에 대한 논의가 이루어졌다. 특히, 로깅(Logging) 및 애플리케이션 상태 관리(Application State Management)의 표준화를 통해 다양한 애플리케이션 간의 데이터 호환성(Data Compatibility)을 향상시키자는 제안이 제시되었다. 하지만, 다양한 요구사항(Diverse Requirements)과 표준화의 어려움(Difficulty of Standardization)에 대한 현실적인 문제점도 함께 언급되었다.