- edge_config_mapper: 엣지 설정 매핑 기능 추가 - edge_node_id: 엣지 노드 ID 생성/관리 기능 추가 - node_router_registry: 노드 라우터 레지스트리 기능 추가 - node_writer_injection: 노드 writer 주입 기능 추가 - edge console 및 server 업데이트 - node bootstrap module 업데이트
76 lines
2.9 KiB
Text
76 lines
2.9 KiB
Text
<!-- task=node_router_registry plan=0 tag=REFACTOR -->
|
|
|
|
# Code Review Reference - REFACTOR
|
|
|
|
## 개요
|
|
|
|
date=2026-05-05
|
|
task=node_router_registry, plan=0, tag=REFACTOR
|
|
|
|
## 이 파일을 읽는 리뷰 에이전트에게
|
|
|
|
각 항목의 구현을 실제 소스 파일과 대조하고, `검증 결과` 섹션의 출력이 코드와 일치하는지 확인하세요.
|
|
리뷰 완료 후 반드시 아래 순서로 아카이브하세요.
|
|
|
|
1. `CODE_REVIEW-local-G03.md` → `code_review_local_G03_0.log`
|
|
2. `PLAN-local-G03.md` → `plan_local_G03_0.log`
|
|
3. PASS인 경우 `complete.log` 작성 후 종료. WARN/FAIL인 경우 새 routed plan + review 스텁 작성.
|
|
|
|
---
|
|
|
|
## 구현 항목별 완료 여부
|
|
|
|
| 항목 | 완료 여부 |
|
|
|------|---------|
|
|
| [REFACTOR-1] `runtime.Router`에 `ResolveAdapter` 메서드 추가 | ✅ 완료 |
|
|
| [REFACTOR-2] `router.defaultRouter`에 `ResolveAdapter` 구현 및 테스트 | ✅ 완료 |
|
|
| [REFACTOR-3] `node.Node`에서 `registry` 필드·파라미터 제거, `ResolveAdapter` 사용 | ✅ 완료 |
|
|
|
|
## 주요 설계 결정
|
|
|
|
- PLAN에서 명시하지 않은 `OnCancel`과 `OnCommandRequest` 메서드도 `n.registry.Get()`을 사용하고 있어 `Registry` 의존성 제거가 필요했다.
|
|
- `Router` 인터페이스에 `GetAdapter(adapterName string) (Adapter, bool)` 메서드를 추가로 확장하여 `Node`가 `adapters.Registry` 없이도 어댑터 조회를 할 수 있도록 했다.
|
|
- `fixedRouter` 테스트 더블에 `adapters` map 필드를 추가하여 `ResolveAdapter`/`GetAdapter`를 구현하고, 기존 `reg.Register(adapter)` 패턴 대신 `router.adapters[...]=adapter`로 직접 매핑했다.
|
|
- `errorRouter` 테스트 더블에도 `ResolveAdapter`와 `GetAdapter` 메서드를 구현하여 `Router` 인터페이스를 만족도록 했다.
|
|
|
|
## 검증 결과
|
|
|
|
### REFACTOR-1 중간 검증
|
|
```
|
|
$ go build ./apps/node/internal/runtime/...
|
|
(no output -ビル드 성공)
|
|
```
|
|
|
|
### REFACTOR-2 중간 검증
|
|
```
|
|
$ go test ./apps/node/internal/router/...
|
|
ok iop/apps/node/internal/router 0.004s
|
|
```
|
|
|
|
### REFACTOR-3 중간 검증
|
|
```
|
|
$ go test ./apps/node/internal/node/...
|
|
ok iop/apps/node/internal/node 0.008s
|
|
```
|
|
|
|
### 최종 검증
|
|
```
|
|
$ go build ./apps/node/...
|
|
(빌드 성공)
|
|
|
|
$ go test ./apps/node/...
|
|
? iop/apps/node/cmd/node [no test files]
|
|
ok iop/apps/node/internal/adapters (cached)
|
|
ok iop/apps/node/internal/adapters/cli (cached)
|
|
? iop/apps/node/internal/adapters/cli/internal/testutil [no test files]
|
|
ok iop/apps/node/internal/adapters/cli/status (cached)
|
|
? iop/apps/node/internal/adapters/mock [no test files]
|
|
? iop/apps/node/internal/adapters/ollama [no test files]
|
|
? iop/apps/node/internal/adapters/vllm [no test files]
|
|
ok iop/apps/node/internal/bootstrap (cached)
|
|
ok iop/apps/node/internal/node (cached)
|
|
ok iop/apps/node/internal/router (cached)
|
|
? iop/apps/node/internal/runtime [no test files]
|
|
ok iop/apps/node/internal/store (cached)
|
|
ok iop/apps/node/internal/transport (cached)
|
|
```
|