[go] Flag 패키지의 기본 구조와 사용법

flag 패키지는 Go 언어에서 명령줄 인수를 파싱하고 옵션을 처리하는 데 사용되는 표준 라이브러리입니다. 이 패키지를 사용하여 프로그램에게 명령줄에서 입력한 옵션들을 손쉽게 읽고 처리할 수 있습니다.

flag 패키지의 기본 구조

flag 패키지를 사용하면 플래그(옵션)를 정의하고, 각 플래그에 대한 값을 설정하고, 명령줄에서 입력한 옵션을 읽어들일 수 있습니다. 여기에는 몇 가지 중요한 구조 요소가 있습니다.

  1. Flag 변수 정의

    프로그램에서 사용할 옵션에 대한 변수를 정의합니다.

    import "flag"
    var optionVar = flag.String("option", "default", "Usage message")
    

    위 예제에서 optionVar은 옵션 이름이며, default는 기본값, 그리고 Usage message는 이 옵션에 대한 설명입니다.

  2. flag.Parse() 호출

    프로그램이 시작될 때 flag.Parse() 함수를 호출하여 명령줄 인수를 파싱하고 정의한 옵션 변수에 값을 할당합니다.

    flag.Parse()
    
  3. 옵션 값 사용

    이제 변수들은 명령줄에서 받은 값 또는 기본값을 갖게 됩니다.

    fmt.Println("Option:", *optionVar)
    

이제 flag 패키지를 사용하여 기본 구조를 이해했으니, 이를 실제로 어떻게 사용하는지 자세히 알아보겠습니다.

flag 패키지의 사용법

다음은 간단한 프로그램에서 flag 패키지를 사용하는 예제입니다.

package main

import (
	"flag"
	"fmt"
)

func main() {
	// 옵션 정의
	var name string
	flag.StringVar(&name, "name", "Guest", "The name to greet")

	// 옵션 파싱
	flag.Parse()

	// 옵션 값 사용
	fmt.Println("Hello,", name)
}

위의 예제는 name 옵션을 정의하고, flag.Parse()를 통해 이 옵션을 파싱합니다. 그리고 마지막으로 name 값을 출력합니다.

이제 flag 패키지를 사용하여 명령줄 인수를 처리하는 기본적인 방법을 이해하였습니다. 자신만의 프로그램에 flag 패키지를 사용해 보세요!