[go] Flag 패키지를 사용한 명령줄 플래그 처리의 실제 활용 사례

애플리케이션 또는 명령줄 도구를 개발할 때, 사용자가 프로그램 실행 중에 동작을 제어할 수 있는 명령줄 플래그 처리는 매우 중요합니다. Go의 표준 라이브러리에는 명령줄 플래그를 처리하는 데 유용한 기능을 제공하는 flag 패키지가 포함되어 있습니다. 이번 포스트에서는 실제로 flag 패키지를 사용하여 명령줄 플래그를 처리하는 간단한 예제를 살펴보겠습니다.

목표

먼저, 이 예제의 목표를 설명하겠습니다. 우리는 간단한 명령줄 도구를 만들어서 사용자가 프로그램 실행 시 출력할 메시지와 반복할 횟수를 선택적으로 지정할 수 있도록 할 것입니다.

Flag 패키지 예제

package main

import (
	"flag"
	"fmt"
)

func main() {
	messagePtr := flag.String("message", "Hello, World!", "a message to print")
	countPtr := flag.Int("count", 1, "number of times to print the message")

	flag.Parse()

	for i := 0; i < *countPtr; i++ {
		fmt.Println(*messagePtr)
	}
}

위의 예제는 간단한 Go 프로그램입니다. 이 프로그램은 사용자가 -message 플래그로 출력할 메시지와 -count 플래그로 반복할 횟수를 선택할 수 있습니다.

코드 설명

이 코드의 핵심은 flag 패키지를 사용하여 명령줄 플래그를 처리하는 부분입니다. flag.String 함수는 문자열 플래그를 정의하고, flag.Int 함수는 정수형 플래그를 정의합니다. 그 다음에 flag.Parse 함수를 호출하여 명령줄 플래그를 파싱합니다.

실행

위의 코드를 작성하고 go run 명령어로 실행해보세요. 예를 들어, 다음과 같이 실행할 수 있습니다.

go run main.go -message "Hello, Flag!" -count 3

이렇게 하면 “Hello, Flag!” 메시지가 3번 출력됩니다.

결론

이 예제를 통해 우리는 flag 패키지를 사용하여 명령줄 플래그를 처리하는 방법을 살펴보았습니다. flag 패키지를 사용하면 명령줄 도구나 간단한 CLI 애플리케이션을 개발할 때 플래그 처리를 간단하게 구현할 수 있습니다.

참고문헌: The Go Programming Language Specification - Package flag