refactor: migrate lib/grpcentity to lib/grpc/basic and update path references

This commit is contained in:
2026-07-17 21:43:48 +09:00
parent 600a950806
commit d90553ecdf
9 changed files with 29 additions and 26 deletions
@@ -1,12 +1,12 @@
# lib/grpcentity 실습 설명서
# lib/grpc/basic 실습 설명서
본 디렉토리는 Go 언어를 활용한 gRPC 서버 및 클라이언트 실습 예제를 포함하고 있습니다.
## 📖 실습 상세 분석 및 가이드 안내
학습의 일관성을 위해, 이 실습의 상세 분석 및 개념 명세는 통합 교재의 gRPC 심화 가이드인 **[docs/GRPC.md](../../docs/GRPC.md)**로 모듈화되어 있습니다. 전체 학습 로드맵은 [docs/MANUSCRIPT.md](../../docs/MANUSCRIPT.md)를 참고하십시오.
학습의 일관성을 위해, 이 실습의 상세 분석 및 개념 명세는 통합 교재의 gRPC 심화 가이드인 **[docs/GRPC.md](../../../docs/GRPC.md)**로 모듈화되어 있습니다. 전체 학습 로드맵은 [docs/MANUSCRIPT.md](../../../docs/MANUSCRIPT.md)를 참고하십시오.
[docs/GRPC.md](../../docs/GRPC.md) 문서에서 다음 내용을 참고하실 수 있습니다:
[docs/GRPC.md](../../../docs/GRPC.md) 문서에서 다음 내용을 참고하실 수 있습니다:
* **IDL ([protoapi.proto](./protoapi.proto)) 명세 및 필드 분석**
* **Go에서의 `protoc` 설치 및 Stub 파일 컴파일 방법**
* **gRPC 서버 코드 ([server.go](./server.go)) 구현 상세 분석**
@@ -1,9 +1,9 @@
package entity
package basic
import (
"context"
"fmt"
"grpccanary/lib/grpcentity/protoapi"
"grpccanary/lib/grpc/basic/protoapi"
"io"
"math/rand"
"time"
@@ -207,11 +207,13 @@ func ClientRun(addr string) {
// 7단계: 임계값 초과 온습도 전송을 통한 Pub/Sub 실시간 알림 유발 시뮬레이션
fmt.Println("Sending abnormal high-temperature sensing data (45.8°C)...")
alertRes, err := AskUpdateSensingData(context.Background(), client, "sensor-room-01", 45.8, 60.1)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Abnormal Sensing Update Success:", alertRes.Success)
// 알림 이벤트가 비동기로 화면에 출력될 시간을 확보하기 위해 100ms 대기
time.Sleep(100 * time.Millisecond)
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.36.11
// protoc v5.27.2
// protoc v3.21.12
// source: protoapi.proto
package protoapi
@@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.6.2
// - protoc v5.27.2
// - protoc v3.21.12
// source: protoapi.proto
package protoapi
@@ -1,9 +1,9 @@
package entity
package basic
import (
"context"
"fmt"
"grpccanary/lib/grpcentity/protoapi"
"grpccanary/lib/grpc/basic/protoapi"
"io"
"math/rand"
"net"
+3 -3
View File
@@ -2,7 +2,7 @@ package main
import (
"fmt"
entity "grpccanary/lib/grpcentity"
"grpccanary/lib/grpc/basic"
"grpccanary/lib/jsonexample"
"time"
)
@@ -21,11 +21,11 @@ func grpcSample() {
fmt.Println("--- starting gRPC IoT Simulation ---")
// 1. gRPC 서버를 백그라운드 고루틴으로 구동
go entity.ServerRun(port)
go basic.ServerRun(port)
// 2. 서버 포트가 바인딩되어 통신 대기 상태에 들어갈 시간을 일시적으로 보장
time.Sleep(100 * time.Millisecond)
// 3. gRPC 클라이언트를 구동하여 원격 프로시저(RPC) 기동 시뮬레이션 집행
entity.ClientRun(port)
basic.ClientRun(port)
}