Go 언어를 사용하여 웹 애플리케이션을 개발할 때, 라우팅은 매우 중요한 부분입니다. 라우팅은 클라이언트의 요청을 적절한 핸들러 함수로 연결하는 프로세스를 말합니다. 이 블로그에서는 Go 언어를 이용하여 간단한 웹 애플리케이션을 개발하고, 그 안에서 라우팅을 어떻게 구현하는지 알아보겠습니다.
1. Go 언어로 웹 애플리케이션 개발하기
우선 Go 언어로 웹 애플리케이션을 개발하기 위해서는 net/http
패키지를 사용해야 합니다. 다음은 간단한 웹 서버를 생성하는 Go 코드의 예시입니다.
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Welcome to our website!")
})
http.ListenAndServe(":8080", nil)
}
위 코드에서 http.HandleFunc
함수를 사용하여 /
경로로 들어오는 요청을 처리할 핸들러 함수를 등록하고, http.ListenAndServe
함수를 사용하여 웹 서버를 시작합니다.
2. 라우팅 구현하기
간단한 라우팅을 구현하기 위해서는 http.HandleFunc
함수를 사용합니다. 다음은 /about
경로에 대한 핸들러 함수를 등록하는 예시입니다.
http.HandleFunc("/about", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "This is the about page")
})
위와 같이 경로와 핸들러 함수를 http.HandleFunc
함수를 사용하여 등록할 수 있습니다. 이제 /about
경로로 들어오는 요청을 위의 핸들러 함수가 처리하게 됩니다.
3. 매개변수를 이용한 동적 라우팅
가끔은 경로에 매개변수를 사용하여 동적으로 요청을 처리해야 할 때가 있습니다. 이때는 Gorilla Mux와 같은 외부 라이브러리를 사용하면 편리합니다. 다음은 Gorilla Mux를 사용하여 동적 라우팅을 구현하는 예시입니다.
package main
import (
"fmt"
"net/http"
"github.com/gorilla/mux"
)
func main() {
r := mux.NewRouter()
r.HandleFunc("/users/{id}", func(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
fmt.Fprintf(w, "User ID: %v", vars["id"])
})
http.ListenAndServe(":8080", r)
}
위 코드에서 Gorilla Mux 패키지를 사용하여 /users/{id}
경로에 대한 핸들러 함수를 등록하고, 해당 경로로 들어오는 요청에서 id
매개변수 값을 추출하여 사용할 수 있습니다.
이렇게 Go 언어로 웹 애플리케이션을 개발하고, 라우팅을 구현하는 방법에 대해 알아보았습니다. Go로 웹 애플리케이션을 개발하고자 한다면, 이러한 기본적인 개념을 숙지하는 것이 중요합니다.
참고 자료
- Go 언어 공식 문서: https://golang.org/doc/
- Gorilla Mux: https://github.com/gorilla/mux