- edge_config_mapper: 엣지 설정 매핑 기능 추가 - edge_node_id: 엣지 노드 ID 생성/관리 기능 추가 - node_router_registry: 노드 라우터 레지스트리 기능 추가 - node_writer_injection: 노드 writer 주입 기능 추가 - edge console 및 server 업데이트 - node bootstrap module 업데이트
75 lines
2.7 KiB
Text
75 lines
2.7 KiB
Text
<!-- task=edge_node_id plan=0 tag=REFACTOR -->
|
|
|
|
# Code Review Reference - REFACTOR
|
|
|
|
## 개요
|
|
|
|
date=2026-05-05
|
|
task=edge_node_id, plan=0, tag=REFACTOR
|
|
|
|
## 이 파일을 읽는 리뷰 에이전트에게
|
|
|
|
각 항목의 구현을 실제 소스 파일과 대조하고, `검증 결과` 섹션의 출력이 코드와 일치하는지 확인하세요.
|
|
리뷰 완료 후 반드시 아래 순서로 아카이브하세요.
|
|
|
|
1. `CODE_REVIEW-local-G02.md` → `code_review_local_G02_0.log`
|
|
2. `PLAN-local-G02.md` → `plan_local_G02_0.log`
|
|
3. PASS인 경우 `complete.log` 작성 후 종료. WARN/FAIL인 경우 새 routed plan + review 스텁 작성.
|
|
|
|
---
|
|
|
|
## 구현 항목별 완료 여부
|
|
|
|
| 항목 | 완료 여부 |
|
|
|------|---------|
|
|
| [REFACTOR-1] `config.NodeDefinition`에 `ID` 필드 추가 | [x] |
|
|
| [REFACTOR-2] `LoadFromConfig`에서 UUID 자동 생성 및 테스트 추가 | [x] |
|
|
| [REFACTOR-2] `go.mod`에서 uuid를 direct 의존성으로 승격 | [x] |
|
|
|
|
## 계획 대비 변경 사항
|
|
|
|
- `TestLoadFromConfig_Success`: 기존 테스트가 `"node-alpha"` ID를 하드코딩했으므로, UUID 자동 생성 이후 호환되도록 alias만 검증하도록 수정. 추가 테스트 `TestLoadFromConfig_ExplicitID`, `TestLoadFromConfig_AutoID`, `TestLoadFromConfig_AutoIDUnique` 추가.
|
|
- `integration_test.go`: `transport` 통합 테스트에서 `"node-test-node"`를 하드코딩하여 검증하므로, `nodeStore.FindByToken`으로 실제 ID를 동적 얻도록 수정.
|
|
|
|
## 주요 설계 결정
|
|
|
|
- `d.ID`가 비었으면 `uuid.NewString()`으로 UUID v4 자동 생성. 명시적 ID는 그대로 사용.
|
|
- `go.mod`에서 `github.com/google/uuid`가 indirect에서 direct로 승격됨.
|
|
|
|
## 리뷰어를 위한 체크포인트
|
|
|
|
- [x] `store.go:LoadFromConfig`에서 `"node-" + d.Alias` 패턴이 완전히 제거되었는지 확인
|
|
- [x] `d.ID`가 비어 있지 않을 때 UUID 생성 없이 그대로 사용하는지 확인 (명시적 ID 우선)
|
|
- [x] `store_test.go`의 `TestLoadFromConfig_AutoIDUnique`가 두 UUID가 서로 다름을 단언하는지 확인
|
|
- [x] `go.mod`에서 `github.com/google/uuid`가 `// indirect` 없이 선언되어 있는지 확인
|
|
- [x] `go test ./apps/edge/internal/node/...` 모두 PASS
|
|
|
|
## 검증 결과
|
|
|
|
### REFACTOR-1 중간 검증
|
|
```
|
|
$ go build ./packages/config/...
|
|
(no output - 빌드 성공)
|
|
```
|
|
|
|
### REFACTOR-2 중간 검증
|
|
```
|
|
$ go test ./apps/edge/internal/node/...
|
|
ok iop/apps/edge/internal/node 0.004s
|
|
```
|
|
|
|
### 최종 검증
|
|
```
|
|
$ go mod tidy
|
|
(no output)
|
|
|
|
$ go build ./...
|
|
(no output - 빌드 성공)
|
|
|
|
$ go test ./apps/edge/... ./packages/config/...
|
|
ok iop/apps/edge/cmd/edge (cached)
|
|
? iop/apps/edge/internal/bootstrap [no test files]
|
|
ok iop/apps/edge/internal/node (cached)
|
|
ok iop/apps/edge/internal/transport (cached)
|
|
ok iop/packages/config (cached)
|
|
```
|