>  기사  >  백엔드 개발  >  golang에 protobuf를 설치하는 방법

golang에 protobuf를 설치하는 방법

PHPz
PHPz원래의
2023-04-05 14:36:35905검색

Golang은 최근 매우 인기 있는 프로그래밍 언어입니다. 구문이 간단하고 이해하기 쉬우며 대규모 동시 프로그래밍에 매우 적합합니다. Golang에서는 protobuf를 설치하여 효율적인 데이터 교환을 달성할 수 있습니다.

protobuf가 무엇인가요?

먼저 protobuf가 무엇인지 이해해야 합니다. Protobuf는 Google에서 개발한 데이터 교환 형식으로, 가볍고 효율적인 데이터 직렬화 방법입니다. 간단한 구문을 사용하여 데이터 구조를 정의하고 자동 생성된 코드를 사용하여 데이터 구조를 쉽게 직렬화 및 역직렬화할 수 있습니다. Protobuf는 바이너리 인코딩을 사용하기 때문에 데이터 전송 속도가 XML, JSON과 같은 형식보다 훨씬 빠릅니다.

protobuf를 설치하는 방법

Golang을 설치하기 전에 먼저 protobuf를 설치해야 합니다. 따라서 먼저 protobuf의 컴파일러 protoc을 설치해야 합니다. protobuf는 다음 주소에서 다운로드할 수 있습니다:

https://github.com/protocolbuffers/protobuf/releases

여기에서는 최신 버전의 protobuf를 설치하도록 선택합니다. 다운로드가 완료되면 파일을 로컬 컴퓨터에 추출해야 합니다.

다음으로 컴퓨터가 protoc.exe를 정상적으로 찾을 수 있도록 환경 변수를 설정해야 합니다. 시스템 환경 변수의 "경로"에 Protobuf 파일 경로를 추가하거나 다른 방법으로 환경 변수를 설정할 수 있습니다. 다음은 환경 변수를 설정하는 방법 중 하나입니다.

1. 터미널을 엽니다.

2. 다음 명령을 입력하여 환경 변수를 추가합니다.

export PB_FOLDER=<PATH_TO_PROTOBUF_FOLDER>
export PATH="$PATH:$PB_FOLDER/bin"

여기서 <PATH_TO_PROTOBUF_FOLDER>는 protobuf 폴더의 경로입니다.

설치가 완료된 후 터미널에 다음 명령을 입력하여 Protobuf가 올바르게 설치되었는지 테스트할 수 있습니다.

protoc --version

Protobuf의 버전 정보가 출력되면 Protobuf가 올바르게 설치된 것입니다.

Golang에서 protobuf를 사용하는 방법

protobuf를 설치한 후 protobuf에서 생성된 Golang 구조와 메서드가 포함된 Golang의 github.com/golang/protobuf 라이브러리를 사용할 수 있습니다. 먼저 터미널에 다음 명령을 입력하여 github.com/golang/protobuf를 설치해야 합니다.

go get -u github.com/golang/protobuf/protoc-gen-go

다음으로 터미널을 통해 다음 단계에 따라 protobuf를 사용할 수 있습니다.

1.proto 파일을 정의합니다. .proto 파일에는 Protobuf를 사용하여 데이터 메시지를 정의하는 구조가 포함되어 있습니다. 텍스트 편집기를 사용하여 .proto 파일을 작성할 수 있습니다. 샘플 코드는 다음과 같습니다.

syntax = "proto3";
message Person {
    string name = 1;
    int32 age = 2;
    double weight = 3;
    repeated string hobbies = 4;
}

2 protoc 명령을 사용하여 Golang 코드를 생성합니다. 이러한 코드는 Protobuf 데이터 구조를 직렬화 및 역직렬화할 수 있습니다. 예시 명령어는 다음과 같습니다:

protoc --go_out=. *.proto

그 중 --go_out=.파라미터는 생성된 코드를 현재 디렉터리에 저장하는 것을 의미합니다. *.proto는 모든 .proto 파일이 컴파일된다는 의미입니다. 이 단계에서는 올바른 .proto 파일 경로를 주의해서 지정하세요.

3. 생성된 코드를 사용하세요. 생성된 코드에서 각 .proto 파일은 .pb.go로 끝나는 파일을 생성합니다. 코드에서는 생성된 코드를 사용하여 데이터 메시지를 읽고 쓸 수 있습니다. 샘플 코드는 다음과 같습니다:

package main

import (
    "fmt"
    "log"

    pb "github.com/USERNAME/REPO/DIR"
    "github.com/golang/protobuf/proto"
)

func main() {
    p := &pb.Person{
        Name:    "Alice",
        Age:     22,
        Weight:  55.5,
        Hobbies: []string{"singing", "dancing"},
    }

    data, err := proto.Marshal(p)
    if err != nil {
        log.Fatal("marshaling error: ", err)
    }

    fmt.Printf("Serialized: %v\n", data)

    var person pb.Person
    err = proto.Unmarshal(data, &person)
    if err != nil {
        log.Fatal("unmarshaling error: ", err)
    }

    fmt.Printf("Person: %#v\n", person)
}

Summary

protobuf를 설치하고 Golang에서 protobuf를 사용하는 것은 복잡하지 않습니다. 위의 단계를 마스터하기만 하면 됩니다. 나는 그것이 당신의 프로그래밍 경력에 확실히 큰 도움이 될 것이라고 믿습니다.

위 내용은 golang에 protobuf를 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.