Spring Boot에서 GRPC 사용하기 (1) - GRPC proto interface만들기

Dinnertimes·2024년 8월 5일
0

Spring Boot

목록 보기
2/3
post-thumbnail

grpc-spring-boot-starter 공식문서

중요!!

1. Interface 프로젝트 생성하기

  • vscode 탐색기에서 우클릭 > Maven > New Project...

  • No Archetype 선택 > groupid, project name을 입력하여 새 프로젝트 생성

2. .proto 파일 생성

  • 원하는 위치에 .proto 파일을 생성해줍니다.
    해당 예시에서는 src/protos에 생성

3. Dependency 추가하기

중요!!

  • plugin configuration에 정의된 proto파일의 경로 (protoSourceRoot)를 반드시 지정해주세요!!
  • 해당 예시에서는 <protoSourceRoot>${project.basedir}/src/protos</protoSourceRoot>
	<properties>
        <protobuf.version>3.23.4</protobuf.version>
        <protobuf-plugin.version>0.6.1</protobuf-plugin.version>
        <grpc.version>1.58.0</grpc.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-stub</artifactId>
            <version>${grpc.version}</version>
        </dependency>
        <dependency>
            <groupId>io.grpc</groupId>
            <artifactId>grpc-protobuf</artifactId>
            <version>${grpc.version}</version>
        </dependency>
        <dependency>
            <!-- Java 9+ compatibility - Do NOT update to 2.0.0 -->
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
            <version>1.3.5</version>
            <optional>true</optional>
        </dependency>
    </dependencies>

    <build>
        <extensions>
            <extension>
                <groupId>kr.motd.maven</groupId>
                <artifactId>os-maven-plugin</artifactId>
                <version>1.7.0</version>
            </extension>
        </extensions>

        <plugins>
            <plugin>
                <groupId>org.xolstice.maven.plugins</groupId>
                <artifactId>protobuf-maven-plugin</artifactId>
                <version>${protobuf-plugin.version}</version>
                <configuration>
                    <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
                    <pluginId>grpc-java</pluginId>
                    <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
                    <!-- 중요!! 정의된 proto파일의 경로를 지정해주세요 -->
                    <protoSourceRoot>
                        ${project.basedir}/src/protos
                    </protoSourceRoot>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>compile-custom</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

4. package 빌드

mvn pacakge명령어로 pacakge를 빌드한다.

  • target/classes 하위에 proto파일이 있으면 빌드 성공!!

이렇게 빌드된 jar파일을 원하는 프로젝트에 추가해서 사용하면된다.

5. 추가 팁

  • git으로 버전관리를 하는 경우 jar파일만 있으면 되므로 아래와 같이 .gitignore를 작성하면 깔끔하게 관리할 수 있다.
## proto 파일 경로의 파일만 관리
src/*
!src/protos

## target에서 jar만 관리
target/**
!target/**/*.jar
profile
저녁시간처럼 기다려지는 이야기

0개의 댓글