[go] Go 언어로 시스템 간 통신하기
  1. 소개
  2. Go 언어의 시스템 간 통신
  3. TCP 통신 예시
  4. HTTP 클라이언트 예시
  5. 마무리

1. 소개

Go 언어는 간단하면서도 강력한 도구들을 제공해 시스템 간 통신을 용이하게 합니다. 이번 글에서는 Go 언어로 TCP와 HTTP를 이용한 간단한 통신 예시를 살펴볼 것입니다.

2. Go 언어의 시스템 간 통신

Go 언어는 내장된 패키지들을 통해 TCP, HTTP, RPC 등을 포함한 다양한 프로토콜을 지원합니다. 이러한 패키지들을 이용하여 시스템 간 안정적이고 효과적인 통신을 구현할 수 있습니다.

3. TCP 통신 예시

아래는 클라이언트와 서버 간의 기본적인 TCP 통신 예시입니다.

// TCP 클라이언트
package main

import (
	"fmt"
	"net"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080")
	if err != nil {
		fmt.Println("서버 연결 실패:", err)
		return
	}
	fmt.Fprintf(conn, "안녕하세요, 서버!")
	conn.Close()
}
// TCP 서버
package main

import (
	"fmt"
	"net"
)

func main() {
	ln, err := net.Listen("tcp", ":8080")
	if err != nil {
		fmt.Println("리스닝 실패:", err)
		return
	}
	conn, err := ln.Accept()
	if err != nil {
		fmt.Println("연결 수락 실패:", err)
		return
	}
	var buf [512]byte
	n, _ := conn.Read(buf[:])
	fmt.Printf("받은 데이터: %v", string(buf[:n]))
	conn.Close()
}

4. HTTP 클라이언트 예시

아래는 HTTP 클라이언트의 예시입니다.

package main

import (
	"fmt"
	"net/http"
)

func main() {
	resp, err := http.Get("https://example.com")
	if err != nil {
		fmt.Println("요청 실패:", err)
		return
	}
	defer resp.Body.Close()
	fmt.Println("상태 코드:", resp.Status)
}

5. 마무리

이렇게 간단하게 Go 언어를 사용하여 TCP와 HTTP 통신을 구현할 수 있습니다. 이는 시스템 간 안정적인 통신을 위해 Go 언어를 선택하는 데 있어 매우 중요한 부분입니다.


위 내용은 Go 언어의 공식 문서를 참고하여 작성되었습니다.