[go] Go 언어를 사용하여 웹소켓 서버를 구축하는 방법

웹소켓은 실시간 양방향 데이터 통신을 지원하는 프로토콜로, 실시간 채팅 애플리케이션, 주식 시세 업데이트 등 다양한 응용프로그램에 사용됩니다. Go 언어를 사용하여 웹소켓을 구축하는 방법을 알아봅니다.

1. 웹소켓 패키지 설치

먼저, github.com/gorilla/websocket 패키지를 사용하여 웹소켓 서버를 구축할 수 있습니다. 다음 명령을 사용하여 패키지를 설치합니다.

go get github.com/gorilla/websocket

2. 웹소켓 서버 구현

다음은 기본적인 웹소켓 서버를 구현하는 예시입니다.

package main

import (
	"log"
	"net/http"

	"github.com/gorilla/websocket"
)

var upgrader = websocket.Upgrader{
	CheckOrigin: func(r *http.Request) bool {
		return true
	},
}

func handleWebSocket(w http.ResponseWriter, r *http.Request) {
	conn, err := upgrader.Upgrade(w, r, nil)
	if err != nil {
		log.Println("웹소켓 연결 오류:", err)
		return
	}
	defer conn.Close()

	for {
		messageType, message, err := conn.ReadMessage()
		if err != nil {
			log.Println("메시지 수신 오류:", err)
			return
		}
		log.Printf("수신된 메시지: %s", message)

		err = conn.WriteMessage(messageType, message)
		if err != nil {
			log.Println("메시지 송신 오류:", err)
			return
		}
	}
}

func main() {
	http.HandleFunc("/ws", handleWebSocket)
	http.ListenAndServe(":8080", nil)
}

위 코드는 기본적인 웹소켓 서버를 구현하는 예시입니다. /ws 엔드포인트로 웹소켓 연결을 핸들링하고, 메시지를 읽고 다시 전송하는 예시 코드입니다.

이제, 위의 예시 코드를 통해 Go 언어로 웹소켓 서버를 구축하는 방법을 알아보았습니다.

참고 자료

다른 튜토리얼과 실제 프로젝트에서 웹소켓을 사용할 때 위의 코드를 참고하여 직접 적용해보세요.