[go] go 언어에서의 플래그 값을 활용한 실전 프로젝트 예제

Go 언어에서는 플래그(Flag) 패키지를 사용하여 명령줄 인자를 처리하고 프로그램 동작을 제어할 수 있습니다. 이번 글에서는 Go 언어에서 플래그 값을 활용하여 실전 프로젝트를 만드는 방법에 대해 알아보겠습니다.

목차

  1. 플래그(Flag)란 무엇인가요?
  2. 실전 프로젝트 예제

플래그(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) 패키지를 사용하면 프로그램을 보다 유연하게 제어할 수 있으며, 실전 프로젝트에서도 활용할 수 있습니다.

참고 자료