[go] go 언어에서의 플래그 값을 활용한 실전 프로젝트 예제
Go 언어에서는 플래그(Flag) 패키지를 사용하여 명령줄 인자를 처리하고 프로그램 동작을 제어할 수 있습니다. 이번 글에서는 Go 언어에서 플래그 값을 활용하여 실전 프로젝트를 만드는 방법에 대해 알아보겠습니다.
목차
플래그(Flag)란 무엇인가요?
플래그(Flag)란 Go 언어에서 명령줄 인자를 처리하는 데 사용되는 패키지입니다. 명령줄을 통해 프로그램을 실행할 때 필요한 인자를 입력받아 동작을 제어할 수 있게 해줍니다. 일반적으로 -flag=value
형태로 사용되며, 프로그램 실행 시에 여러 플래그를 조합하여 다양한 동작을 지정할 수 있습니다.
실전 프로젝트 예제
아래의 예제는 플래그 값을 활용하여 간단한 웹 서버를 만드는 Go 언어 프로젝트입니다.
package main
import (
"flag"
"fmt"
"log"
"net/http"
)
func main() {
port := flag.Int("port", 8080, "서버 포트")
directory := flag.String("dir", ".", "웹 서버 루트 디렉토리")
flag.Parse()
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, r.URL.Path[1:])
})
addr := fmt.Sprintf(":%d", *port)
fmt.Printf("웹 서버 시작 - 포트: %d, 디렉토리: %s\n", *port, *directory)
log.Fatal(http.ListenAndServe(addr, nil))
}
이 예제는 -port
와 -dir
플래그 값을 받아와 웹 서버를 실행합니다. -port
플래그는 서버의 포트를, -dir
플래그는 웹 서버의 루트 디렉토리를 설정합니다. 예를 들어, go run server.go -port=8081 -dir=/var/www
와 같이 실행하면, 포트를 8081로, 웹 서버 루트 디렉토리를 /var/www
로 지정하여 서버를 실행할 수 있습니다.
실제로 웹 서버를 실행해보고 웹 브라우저에서 접속하여 파일을 확인해보세요!
이번 예제를 통해, 플래그 값을 활용하여 프로그램 동작을 제어하는 방법에 대해 알아보았습니다. 플래그(Flag) 패키지를 사용하면 프로그램을 보다 유연하게 제어할 수 있으며, 실전 프로젝트에서도 활용할 수 있습니다.