[go] go 언어에서의 동적 플래그 처리 방법

애플리케이션을 실행할 때 동적으로 설정을 바꾸거나 특정 동작을 활성화하거나 비활성화해야 할 때가 있습니다. Go 언어에서는 이러한 요구를 동적으로 처리하기 위해 flag 패키지를 제공합니다. 이 패키지를 사용하면 커맨드 라인 인자를 쉽게 처리할 수 있으며, 프로그램 실행 시에 설정을 변경할 수 있습니다.

flag 패키지 소개

flag 패키지를 사용하면 커맨드 라인에서 특정 플래그를 설정할 수 있습니다. 예를 들어, -port-timeout 같은 플래그를 통해 포트 번호나 타임아웃 값을 설정할 수 있습니다. 아래는 간단한 예제 코드입니다.

package main

import (
	"flag"
	"fmt"
)

func main() {
	portPtr := flag.Int("port", 8080, "Port number")
	timeoutPtr := flag.Int("timeout", 1000, "Timeout in milliseconds")

	flag.Parse()

	fmt.Println("Port:", *portPtr)
	fmt.Println("Timeout:", *timeoutPtr)
}

이 코드에서 flag.Int 함수를 사용하여 각각 -port-timeout 플래그를 정의했습니다. flag.Parse()를 호출하여 플래그 값을 읽어들인 후 설정된 값을 출력했습니다.

이제, 이 코드를 빌드하고 커맨드 라인에서 플래그를 사용해보세요.

go run main.go -port=9090 -timeout=2000

결론

flag 패키지를 사용하면 Go 애플리케이션에서 커맨드 라인을 통해 동적으로 설정 값을 받아올 수 있습니다. 이는 프로그램의 동작을 변경하거나 특정 기능을 활성화/비활성화하는 데 유용합니다.

더 많은 정보는 공식 문서에서 확인할 수 있습니다.