[go] Go 언어를 사용한 고성능 웹 서버의 쿠키 처리 방법

인터넷 사용자의 이용 환경을 저장하고 관리하기 위해 쿠키 처리는 웹 개발에서 중요한 부분입니다. Go 언어는 빠른 성능과 간결한 문법으로 유명한데, 이 언어를 사용하여 고성능 웹 서버를 개발할 때 쿠키를 어떻게 처리할 수 있는지 알아봅시다.

쿠키 생성과 설정

package main

import (
	"net/http"
)

func main() {
	http.HandleFunc("/setCookie", func(w http.ResponseWriter, r *http.Request) {
		cookie := http.Cookie{
			Name:   "username",
			Value:  "john",
			Path:   "/",
			MaxAge: 86400,
		}
		http.SetCookie(w, &cookie)
	})
	http.ListenAndServe(":8080", nil)
}

위의 예제는 “/setCookie” 엔드포인트에 접속할 경우 “username”이라는 이름의 쿠키를 생성하고, 이를 HTTP 응답 헤더에 포함하여 클라이언트로 전송합니다. 또한 ‘MaxAge’ 속성을 사용하여 쿠키의 유효 기간을 설정하였습니다.

쿠키 가져오기

package main

import (
	"net/http"
)

func main() {
	http.HandleFunc("/getCookie", func(w http.ResponseWriter, r *http.Request) {
		cookie, err := r.Cookie("username")
		if err != nil {
			// 쿠키가 존재하지 않음
		} else {
			// 쿠키 사용
		}
	})
	http.ListenAndServe(":8080", nil)
}

“/getCookie” 엔드포인트로의 요청에서는 클라이언트로부터 전송된 “username” 쿠키를 가져와서 사용할 수 있습니다.

쿠키 삭제

package main

import (
	"net/http"
)

func main() {
	http.HandleFunc("/deleteCookie", func(w http.ResponseWriter, r *http.Request) {
		cookie := http.Cookie{
			Name:   "username",
			Value:  "",
			Path:   "/",
			MaxAge: -1,
		}
		http.SetCookie(w, &cookie)
	})
	http.ListenAndServe(":8080", nil)
}

클라이언트의 쿠키를 삭제하려면, 같은 이름의 빈 값을 가지는 쿠키를 생성하고 ‘MaxAge’ 속성을 음수로 설정하여 유효 시간을 과거로 만들면 됩니다.

이처럼 Go 언어를 사용하여 간단하게 쿠키를 처리할 수 있으며, 이를 통해 다양한 웹 어플리케이션을 개발할 수 있습니다.

참고 자료