관리 메뉴

bright jazz music

1. Go 웹 프로그래밍 본문

Language/Go

1. Go 웹 프로그래밍

bright jazz music 2021. 11. 17. 23:51
//go: go.mod file not found in current directory or any parent directory; see 'go help modules'
//go env -w GO111MODULE=off 로 해결
// https://okky.kr/article/927026?note=2323727
//https://golang.org/doc/articles/wiki/#tmp_13

package main

//실행 가능한 프로그램이 되려면 패키지 이름은 항상 main이 되어야 한다.
//자바, 루비, 파이썬의 경우 웹애플리케이션을 실행하기 위해서는 서버에 적재하는 과정이 필요하다.
// 그러나 Go에서는 net/http 패키지 제공을 통해 컴파일과 동시에 작성한 코드를 단독 웹 애플리케이션으로서 적재할 수 있다.

import (
	"fmt"
	"log"
	"net/http"
)

// "fmt" : 형식화 된 I/O를 허용하며 HTTP와 상호작용 하기 위한 메인 패키지이다.

func handler(writer http.ResponseWriter, request *http.Request) {
	fmt.Fprintf(writer, "Hi there, I love %s!", request.URL.Path[1:])
}

//handler 함수는 이벤트 발생 시 연이어 호출되는 콜백 함수를 의미
//핸들러 함수의 파라미터:
// request 인터페이스는 request struct를 가리키며 요청으로부터 정보를 취한다. 취한 정보를 통해 HTTP응답을 만들기도 한다.
// 응답할 때는 ResponseWriter를 이용한다. Fprintf 함수는 ResponseWriter로 불리며 이 때 문자열 형태는 %s와 같이 명시한다.

func main() {
	http.HandleFunc("/", handler)
	log.Fatal(http.ListenAndServe(":8080", nil))
	// http.ListenAndServe(":8080", nil)
}

//모든 프로그램은 실행 가능한 파일로 컴파일 되어야 한다. 때문에 반드시 하나의 main함수가 필요하다.

 

go path 경로에 bin, pkg, src의 세 개의 디렉토리를 만든다. 그후 src에 진행할 프로젝트의 디렉토리를 만든다. 그리고 거기에 go 파일을 만들어 코드를 작성한다.

 

위 파일의 이름은 server.go이며, GOPATH의 src  디렉토리에 first_webapp이라는 디렉토리에서 생성하였다. 코드 작성을 끝낸 후에는 vs코드에서 F5를 눌러 프로그램을 실행한다.

 

 

참고서적: Go 웹프로그래밍

Comments