[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 언어 프로젝트에서 널리 활용되고 있다.

참고 자료