[go] Go 언어로 시스템 간 통신하기
- 소개
- Go 언어의 시스템 간 통신
- TCP 통신 예시
- HTTP 클라이언트 예시
- 마무리
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 언어의 공식 문서를 참고하여 작성되었습니다.