Protocol Buffers는 구조화된 데이터를 직렬화하고 역직렬화하기 위한 언어 및 플랫폼 간의 통신 프로토콜로 널리 사용됩니다. 이 기술은 간결하고 효율적인 데이터 구조를 정의할 수 있게 해주며, 여러 언어에서 사용할 수 있도록 API를 제공합니다.
반복 필드
Protocol Buffers에서는 필드가 하나 이상의 값을 가질 수 있도록 지원하는 반복 필드를 사용할 수 있습니다. 이러한 반복 필드를 사용하여 리스트나 배열과 같은 컬렉션형 데이터를 표현할 수 있습니다.
메시지 정의
아래는 Protocol Buffers로 정의된 예제 메시지입니다. 이 메시지는 Person
이라는 이름의 사람에 대한 정보를 담고 있으며, email
필드는 반복 필드로 정의되어 있습니다.
syntax = "proto3";
message Person {
string name = 1;
repeated string email = 2;
}
메시지 필드에 값 추가하기
Java에서 Protocol Buffers를 사용하여 메시지 필드의 반복 옵션을 설정하려면 다음과 같은 코드를 사용할 수 있습니다.
Person.Builder personBuilder = Person.newBuilder();
personBuilder.setName("John Doe");
personBuilder.addEmail("john.doe@example.com");
personBuilder.addEmail("johndoe@gmail.com");
Person person = personBuilder.build();
Person.newBuilder()
를 호출하여 Person
객체의 빌더를 생성합니다. 그런 다음 addEmail()
메서드를 사용하여 email
필드에 값을 추가합니다. build()
메서드를 호출하여 최종적으로 Person
객체를 생성합니다.
메시지 필드의 값 조회하기
메시지 필드의 값은 반복적으로 처리하거나, 인덱스를 통해 특정 위치의 값을 조회할 수 있습니다. 아래는 반복 필드 email
의 값을 조회하는 예제입니다.
for (String email : person.getEmailList()) {
System.out.println("Email: " + email);
}
getEmailList()
메서드는 반복 필드 email
의 값을 리스트로 반환합니다. 이를 통해 반복문을 사용하여 모든 email
값에 접근할 수 있습니다.
결론
Java에서 Protocol Buffers를 사용하여 메시지 필드의 반복 옵션을 설정하는 방법을 알아보았습니다. Protocol Buffers를 사용하면 구조화된 데이터를 간단하게 정의하고 다양한 언어에서 사용할 수 있게 됩니다. 추가로 Protocol Buffers 문법에 대해 더 알아보고자 한다면 공식 문서를 참조하시기 바랍니다.
참고 문서: