[java] Java에서 Protocol Buffers를 사용하여 메시지 필드의 반복 옵션 설정하기

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 문법에 대해 더 알아보고자 한다면 공식 문서를 참조하시기 바랍니다.

참고 문서: