개요

오늘도 어렵구나…

오늘도 어렵구나…

Protobuf 만들어보기

Auth-Server에서 사용하는 proto를 먼저 작성! 기능은 크게 “사용자 생성 / 로그인”, “토큰 발급 및 검증” 2가지로 만들어야겠다.

syntax = "proto3";

package auth;

service AuthService {
    rpc Register (RegisterRequest) returns (AuthResponse);
    rpc Login (LoginRequest) returns (AuthResponse);
    rpc VerifyToken (VerifyTokenRequest) returns (VerifyTokenResponse);
}

message RegisterRequest {
    string username = 1;
    string password = 2;
}

message LoginRequest {
    string username = 1;
    string password = 2;
}

message VerifyTokenRequest {
    string token = 1;
}

message VerifyTokenResponse {
    bool valid = 1;
    string username = 2;
    string message = 3;
}

message AuthResponse {
    bool success = 1;
    string token = 2;
    string message = 3;
}

AuthService는 3가지로 구성했고 Request, Response Message도 구현했다.


Board-Server에서 사용하는 proto를 작성하자! 기능은 “게시글 읽기 / 게시글 생성”으로 만들어야겠다.

syntax = "proto3";

package board;

service BoardService {
    rpc CreatePost (PostRequest) returns (PostResponse);
    rpc GetPosts (Empty) returns (PostsResponse);
}

message PostRequest {
    string title = 1;
    string content = 2;
    string token = 3;
}

message PostResponse {
    bool success = 1;
    string message = 2;
}

message Empty {}

message Post {
    string title = 1;
    string content = 2;
    string username = 3;
}

message PostsResponse {
    repeated Post posts = 1;
}

BoardService는 2가지로 구성했다.


Protobuf 컴파일

  1. 먼저 Python에서 사용할 수 있는 gRPC, gRPC-tools 관련 모듈 설치를 진행하자.
$ pip3 install grpcio grpcio-tools --ignore-installed