Menu

메모용 개발 블로그

전체보기 > Develop > Go >

Go 1.22 net/http 라우팅 개선

2024-04-25 15:05:47

릴리즈 노트: https://go.dev/doc/go1.22

Go 1.22 버전에서 net/http 패키지에서 서버 라우팅이 개선되었다.

이제 별도의 라이브러리 없이 라우팅 핸들러를 등록할 때 메소드를 지정하고 동적인 경로를 사용할 수 있다.

앞으로는 간단한 서버를 만들 때. 추가적인 의존성 없이 Go 만으로도 꽤 쓸만한 웹 서버를 작성할 수 있게 되었다.

package main

import (
	"net/http"
)

func main() {
	http.HandleFunc("GET /{test}", func(w http.ResponseWriter, req *http.Request) {
		w.Write([]byte(req.PathValue("test")))
	})

	http.ListenAndServe(":8888", nil)
}

예시 코드이다. 동작 시 GET 요청으로만 매칭되고 경로를 동적으로 지정하고 경로명을 참조할 수 있다.

image-20240426000142155

예제 샘플 접근 예시이다.

그 외에도 /file/{path...} 이런 식으로 파일 경로에 사용하기 좋은 패턴도 존재한다.