크라우니 리모트 v1 — 원본 요청 대비 구현 점검
사용자가 명시한 12개 항목별 정직 평가 + 실시간 통신 검증 + 시각 결과.
원본 요청 분해 → 12개 항목 점검
| # | 사용자 요청 명시 | 구현도 | 비고 |
|---|---|---|---|
| 1 | 9개 맥스튜디오 × 9 CLI MAX200 × 9명 동시 작업 | 🟡 30% | 코드 모델은 9-N 지원 (디바이스 9대 등록 검증 완료). 실제 9대 환경 부하 테스트는 안 함 |
| 2 | 동일 작업폴더(블록체인) 공유 | ❌ 0% | 누락. 동기화 메커니즘 없음. crowny-hub/git 등 외부 도구 전제. V2 필요 |
| 3 | 내 9 + 상대 9 = 18 화면 | 🟡 75% | V1은 16(8+8). 사용자가 "8개8개 개념으로 시작" 명시했지만 9+9 확장 쉬움 (좌측수 변수 수정 1줄) |
| 4 | 16개 화면 좌우 8+8 분할 | ✅ 100% | SwiftUI LazyVGrid 2열 × 4행 × 2면 |
| 5 | 전용 리모트컨트롤 프로그램 | ✅ 100% | RemoteViewer (218KB Swift) + 한선씨 백엔드 4개 모듈 |
| 6 | 컴퓨터 ID + 비번 (법인 통합계정 컨셉) | ✅ 100% | CR-CROWNY-01~09, SHA256 비번 해시, 30분 세션 토큰 |
| 7 | 상대 8~9개 화면 좌우 조정 | 🟡 60% | 좌우 분할 표시 + 패널 클릭 활성화 OK. "좌우 조정"이 드래그/리사이즈라면 미구현 |
| 8 | Ctrl+1~9 화면 전환 | ✅ 95% | Ctrl+1~9 (좌) + Ctrl+Shift+1~9 (우). 9키로 18패널 매핑은 Shift 수식어로 절충 |
| 9 | 터미널 명령 직접 입력/제어 | 🟡 50% | V1: zsh -c 일회성 명령 ✅. 인터랙티브 PTY (vim/htop/ssh)는 ❌ — 한선씨 소켓받기 폴링 한계, V2 필요 |
| 10 | remote.crowny.org 서비스 | ✅ 90% | 포트 9701 할당, gateway.yaml 자동 등록. 외부 DNS/TLS는 별도 |
| 11 | 한선씨/크라우니 기계어 우선 | ✅ 95% | 백엔드 100% 한선씨 (서버/에이전트/클라이언트/뷰어동반). 보조만 C/Swift, 동반 .한선 모두 있음 |
| 12 | 안정성 우선 (Mac-to-Mac) | ✅ 100% | screencapture(Mac 네이티브) / forkpty(POSIX) / SwiftUI(Cocoa). 한선씨 한계 부분만 |
종합
구현률 = (30+0+75+100+100+100+60+95+50+90+95+100) / 12 ≈ 74%
12개 중 ✅ 7개, 🟡 4개, ❌ 1개
가장 큰 갭 (V2에서 잡아야)
| 갭 | 영향 | V2 대응 |
|---|---|---|
| #2 작업폴더 공유 동기화 | 🔴 9명이 동일 코드/블록체인 작업 못 함 | crowny-hub 통합 또는 rsync/syncthing 어댑터 |
| #9 인터랙티브 PTY | 🟡 vim/ssh/htop 불가 (단발 명령만) | C pty_call helper 도입, 또는 한선씨 NIO 폴링 |
| #1 9대 부하 검증 | 🟡 실 환경 미검증 | 실제 9대 띄워서 동시 접속/캡처 검증 |
E2E 실시간 검증 (방금 측정)
text>>> ping
{"t":"pong","ts":1779872272}
>>> hello
{"t":"hello_ok","ts":1779872272}
>>> inp (zsh -c)
{"t":"out","data":"CROWNY-REMOTE-v1\nDarwin EF.local arm64\n2026-05-27_17:57\n"}
>>> bad (미등록 디바이스)
{"t":"err","msg":"not_registered"}
또한 9대 일괄 등록도 확인됨:
textCR-CROWNY-01: {"t":"reg_ok","dev":"CR-CROWNY-01"}
CR-CROWNY-02: {"t":"reg_ok","dev":"CR-CROWNY-02"}
... (생략) ...
CR-CROWNY-09: {"t":"reg_ok","dev":"CR-CROWNY-09"}
시그널링: CR-CROWNY-01 → CR-CROWNY-05
{"t":"conn_ok","src":"CR-CROWNY-01","dst":"CR-CROWNY-05","ch":"relay-CR-CROWNY-01-CR-CROWNY-05"}
캡처 결과 시각 (에이전트가 화면 캡처 송신 → JPEG 파일)
파일: /Users/ef/CrownyDoc/projects/assets/remote-cap.jpg
크기: 12,287 bytes
JPEG magic: ff d8 ff e0 (정상)
캡처 시점: 2026-05-27 17:57

뷰어 GUI 직접 확인
다음 한 줄로 GUI 띄울 수 있음 (사용자 직접 실행):
bash# 전체 스택 띄우기
echo "PRESHARED-TOKEN-DEMO" > /Users/ef/crowny-remote/agent/토큰.txt
/Users/ef/CrownyOS/crownyc/crownyc run /Users/ef/crowny-remote/server/리모트서버.toau &
/Users/ef/crowny-remote/pty/pty_bridge 9710 &
/Users/ef/CrownyOS/crownyc/crownyc run /Users/ef/crowny-remote/agent/리모트에이전트.toau &
sleep 2
/Users/ef/crowny-remote/viewer/RemoteViewer
윈도우 1600×900, 좌측 4×2 (MINE-1~8) + 우측 4×2 (PEER-1~8) 16패널. 활성 패널은 노란 배경 + 빨간 테두리. 하단에 명령 입력란.
디렉토리 한눈에
/Users/ef/crowny-remote/
├── server/ 리모트서버.한선 → :9701 (194KB toau)
├── agent/ 리모트에이전트.한선 → :9711 (183KB toau)
├── pty/ pty_bridge.c → :9710 (34KB 바이너리) + .한선 동반
├── viewer/ RemoteViewer.swift (218KB Mac 바이너리) + .한선 동반 + 리모트클라이언트.한선
├── docs/ 설계.md, 와이어프로토콜.md
└── scripts/ 빌드.sh (한 줄 전체 빌드)
정직한 결론
핵심 인프라(인증/세션/캡처/시그널링) 100% 작동. 가장 큰 미구현은 #2 작업폴더 공유 — 사용자 요청에 명시되었으나 V1에서 빠짐. 인터랙티브 PTY는 한선씨 측 소켓 폴링 한계로 V2 미룸 (zsh -c 일회성 명령으로 우회).