[go] cmd 패키지를 활용한 명령행 파싱

Go 언어에서는 flag 패키지를 사용하여 명령행 파라미터를 파싱할 수 있습니다. 이를 통해 명령행 옵션을 쉽게 처리하고 실행 중에 사용자 입력을 처리할 수 있습니다.

명령행 파라미터 정의하기

예를 들어, 다음과 같은 프로그램이 있다고 가정해봅시다.

package main

import (
	"flag"
	"fmt"
)

func main() {
	var name string
	var age int

	flag.StringVar(&name, "name", "defaultName", "사용자 이름")
	flag.IntVar(&age, "age", 0, "사용자 나이")

	flag.Parse()

	fmt.Printf("이름: %s, 나이: %d\n", name, age)
}

이 예제에서는 flag 패키지의 StringVarIntVar 함수를 사용하여 각각 문자열과 정수형 파라미터를 정의하고 있습니다. 이 때, 각각의 함수는 해당 파라미터에 대한 포인터, 파라미터명, 기본값, 그리고 설명을 입력으로 받습니다.

명령행 파라미터 값 읽기

위의 예제에서 flag.Parse() 함수를 호출함으로써 프로그램이 실행될 때 명령행으로 전달된 파라미터들을 파싱할 수 있습니다. 사용자는 프로그램을 실행할 때 -name이나 -age와 같은 옵션을 지정하여 값을 전달할 수 있습니다.

예를 들어, 다음과 같이 프로그램을 실행할 수 있습니다.

go run main.go -name Alice -age 25

위의 명령어를 실행하면 “이름: Alice, 나이: 25”와 같은 결과가 출력됩니다. 이렇게 하면 프로그램이 명령행 파라미터를 올바르게 읽어와서 사용할 수 있습니다.

명령행 파싱을 통해 사용자는 실행 시에 원하는 옵션을 전달하고, 프로그램은 해당 옵션을 쉽게 읽어와서 처리할 수 있습니다.

요약

flag 패키지를 사용하면 Go 프로그램에서 명령행 파라미터를 쉽게 처리할 수 있습니다. 이를 통해 사용자는 프로그램을 실행할 때 옵션을 지정하고, 프로그램은 해당 옵션을 실행 중에 쉽게 읽어들일 수 있습니다.

flag 패키지는 간단하면서도 강력한 기능을 제공하여 명령행 파서로서 많이 사용되고 있습니다.

위 내용은 Go 공식 문서를 참고하여 작성되었습니다.