[go] - go 언어에서의 net/url 패키지 활용
Go 언어에서 URL을 다루는 데 가장 흔히 사용되는 패키지는 net/url
이다. 이 패키지는 URL을 파싱하고 생성하는 데 필요한 함수와 데이터 구조를 제공한다.
URL 파싱하기
만약 URL을 파싱해야 한다면, net/url
패키지의 Parse
함수를 사용하면 된다.
package main
import (
"fmt"
"net/url"
)
func main() {
u, err := url.Parse("https://www.example.com/path?query=value")
if err != nil {
panic(err)
}
fmt.Println(u.Scheme) // 출력: "https"
fmt.Println(u.Host) // 출력: "www.example.com"
fmt.Println(u.Path) // 출력: "/path"
fmt.Println(u.RawQuery) // 출력: "query=value"
}
위 코드에서 url.Parse
함수는 URL을 구성 요소별로 파싱하여 url.URL
구조체를 반환한다. 반환된 구조체는 Scheme
, Host
, Path
, RawQuery
등의 필드를 포함한다.
URL 생성하기
URL을 생성할 때는 url.URL
구조체의 필드를 설정한 후 String()
메서드를 사용하여 URL 문자열로 변환할 수 있다.
package main
import (
"fmt"
"net/url"
)
func main() {
u := &url.URL{
Scheme: "https",
Host: "www.example.com",
Path: "/path",
RawQuery: "query=value",
}
fmt.Println(u.String()) // 출력: "https://www.example.com/path?query=value"
}
위 코드에서 url.URL
을 직접 초기화하여 필드를 설정하고, String()
메서드를 호출하여 URL 문자열을 얻을 수 있다.
net/url
패키지는 URL을 파싱하고 생성하는데 필요한 주요 기능을 제공하기 때문에 많은 Go 언어 프로젝트에서 널리 활용되고 있다.