jiyeon610
127
2016-05-24 17:17:57
1
1050

Protobuf 사용법 문의드립니다



[Proto]

mseeage UserInfo {
  required string id = 1;
  required string passwd = 2;
}



[Java]

// UserInfo 데이터 담을 바구니(builder) 생성
UserInfo.Builder userinfo_builder = UserInfo.newBuilder(); 

// 바구니에 Id, PassWd 데이터 담음
userinfo_builder.setId("MASTER");
userinfo_builder.setPasswd("1234");

System.out.println("1. " + userinfo_builder.getId() + " " + userinfo_builder.getPasswd());
System.out.println("2. " + userinfo_builder.build());



[출력결과]
-------------------
1. MASTER 1234
2. id: "MASTER"
passwd: "1234"



안녕하세요.
검색을 해봐도 잘 모르겠어서 질문합니다.


Protobuf를 Java에서 사용할 때,
메시지명.Builder AAA = 메시지명.newBuilder();
이렇게 데이터를 담는바구니(=builder) 를 생성한다고 이해했습니다.


setId, getId 같은 함수는 낯설지 않아서 잘 알겠는데,

userinfo_builder.build() 여기서 build() 가 뭔지를 잘 모르겠습니다.


그래서 출력을 해봤는데

제가 set해줬던 데이터를 담고(?) 있더라구요...


build() 이건 뭔가요??? 어느 용도로 쓰는건가요????


너무 어렵습니다ㅠㅠ

개발자가이드도 영어로 되있어서 많이 힘들고요^^;;


답변 기다리겠습니다

감사합니다





0
0
  • 답변 1

  • zepinos
    19k
    2016-05-24 17:29:25

    프로토버퍼를 직접 해보진 않았지만, 아마 빌더 패턴으로 되어 있는 걸로 보입니다.


    Protobuf 로 생성된 UserInfo 에서 Builder 로 개체를 만들어서 값을 담은 뒤, build() 을 호출하면 UserInfo 개체로 만들어주는 것이다...라고 생각하시면 될겁니다.


    즉, 처음 생성할 때 UserInfo.Builder 개체 만들고 그 안에 값들을 담고 build() 을 호출해서 담긴 값을 통해 UserInfo 개체로 변환(?)되어 사용자에게 반환되는 것이죠.


    빌더 패턴을 한 번 보세요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.