한선씨 대치감사 → 책·마이그레이션·부동소수점 (2026-06-22)
개요
"한선씨 구현능력·전체 서비스 대치 가능성·저성능 영역" 울트라씽킹 감사에서 출발해, 사용자 지시로 ① 책 발간 ② node→한선씨 마이그레이션 ③ 부동소수점 벽 돌파 ④ 음 본래의미 정정을 수행.감사 결론
- VM(crownyc.c 867 opcode)·고수준(hanseonc_high 225함수/24lib) = 프로덕션급
- 210서비스 중 ~72-75% 즉시 대치가능, 사이드카(한선주서버+JS HTTPS브리지) 표준화 시 ~90%
- 4대 물리벽: 부동소수점·TLS·외부LLM·대용량스트리밍
- RPN 정통(hanseonc_std.asm) 깨짐, hanseonc_rpn.c는 작동 → 문서정정 필요
- 크라우니코드 생성엔진 자립도 70%(수학98·문자열98·네트워크97·알고리즘91, 약: 파일IO74·자료구조66)
1. 책 — book.crowny.org/hanseon (발간)
- "한선씨 만들기 — 한국어로 컴퓨터를 짓다", 4버전(kid/fast/general/expert)×7장
- 빌더 CONFIG: 웹/build-reader.js 의
hanseon항목 추가 - 원고: data/전권/hanseon/{버전}_{NN}.md
- 1차 집필(35에이전트) 후 다듬기(20에이전트): 음 본래의미 충실 반영 + 한계중심→극복서사 톤전환
- 공개 HTTPS 200 검증(8443 SNI), 라이브 무중단. 1편 유지, 2·3편 보완 예정
2. 마이그레이션 — 서비스서버.한선 (파일럿)
- /Users/ef/crowny-services/서비스서버.한선 (384줄, EXIT=0): 33서비스 공유 node 진입점의 한선씨 대치
- 섀도 패리티 6/6(19742 vs 9742 beauti): health/정적/tokens.css/store/폴백
- 일괄스왑 안전대상 29개(blob/anchor 미사용). 미포팅=blob스트리밍/SHA256앵커/ZIP/CRDT merge → JS유지(4096캡 한계). cloud/memo는 2차
- ✅ 라이브 컷오버 완료(2026-06-22): 33서비스 중 28개 node→한선씨, 롤백 0. 카나리(beauti)→데몬1틱 안정확인→배치(서비스별 health+landing 200 검증 통과시에만 등재). 공개 8443 200
- 영속화: manage.sh 패치(is_migrated→crownyc/node 분기, stop=js|toau, 백업 .bak.precutover_20260622) + migrated.txt(28개) + LaunchAgent kickstart. 한선씨 죽으면 데몬이 한선씨로 자가치유
- 제외 5개(node 유지): cloud·memo(blob/anchor)·mail(메일API)·ecosystem(상태집계)·market(coin) — 동적API 미포팅, 2차
- 롤백: migrated.txt에서 이름 제거 → manage.sh restart. 함정: TCP읽기 2인자 필수
2차 마이그레이션 — 동적 API 포팅 + 컷오버 (2026-06-22)
- 서비스서버_ext.한선 → 프로덕션 서비스서버.한선/.toau(843KB, 백업 .bak.preext_20260622). 회귀 안전(bible·care·market 200)
- 포팅 동적 API: store(GET/POST 본문누적)·anchor(SHA256체인)·merge(LWW)·quota(du)·access(집계)·status(ecosystem 순차헬스)·구매확정(verse coin TCP, graceful)·share-note. 본문누적=Content-Length+TCP읽기(연결,4096) 루프
- JS 영구유지: blob GET(Range 스트리밍)·zip(CRC32 바이너리)·share-blob — 바이너리 스트리밍은 JS 우위
- 추가 컷오버: memo·ecosystem → 한선씨(검증: memo store/anchor 라운드트립, ecosystem /api/status 200). 최종 30 한선씨 / 3 node
- node 잔류 3개: cloud(blob 코어)·market(이미지 blob 가능성)·mail(독립 메일서버 49라우트)
- 함정: owner=X-Crowny-Owner 헤더 또는 ?o=, sanitizeOwner는 8~100자
[a-zA-Z0-9_-](짧은 owner 401은 정상 거부)
4. 축자속모터 4상균형3진 벡터제어 — 축자속벡터제어.한선 (2026-06-22)
파일: /Users/ef/CrownyOS/apps/축자속벡터제어.한선 (25KB, 기존 축자속모터.한선 무수정). 가져오기 고정소수점v2- 클라크/파크/역파크/역클라크(고정v2_사인·코사인 CORDIC), FOC비율(변조율·dq비·약자속비)
- ★균형3진 ↔ NPC 3레벨 인버터★: 상별 Vx→{T=+Vdc/2, O=0, A=-Vdc/2}, 3상 3트릿=3³=27 전압벡터=ISA729 큐브 주소공간 동형
- ★적은트릿 원리 실증★: 3⁷=2187 제어, 최대오차 0.28% < INT8(256레벨) 0.39% → 제어루프 저정밀 충분(테슬라 교훈 수치확인)
- 4상판정 Ti(정상)/Om(경계)/Ta(과변조)/Um. 예제 θ=30/60/90/45° 검증
- 미구현: PI 전류제어기, SVM, PLL/관측기, 약자속 id_ref 감쇄(현재 개루프)
4-b. 축자속 폐루프 — 축자속폐루프.한선 (2026-06-22)
파일: /Users/ef/CrownyOS/apps/축자속폐루프.한선 (가져오기 축자속벡터제어+고정v2, 기존 무수정)- PI 전류제어기(Kp≈0.8/Ki≈0.3, 안티와인드업 Vq=400V 클램프 확인), SVM 6섹터(T1+T2+T0=2187 보장), 약자속 id_ref(|V|>462V 음수감쇄), 모터모델(R10mΩ/L1mH/Ψf1Wb/Ts100μs 오일러)
- 폐루프 스텝응답: 5A@1000rpm 오차0.02%, 10A@2000 0.12%, 15A@5000 1.0%, 200스텝(20ms) 수렴
- 한계: 5000rpm 오버슈트 42%(Kp/Ki 재조정 필요), θ=0 고정(옵저버/엔코더 미연동), 데드타임보상·열모델·과전류인터락 없음. 실HW 전 6종 필요(θ추정기/이득재조정/데드타임/ADC동기/파라미터갱신/안전래치)
5. blob 바이너리 스트리밍 + VM opcode 3개 (2026-06-22)
- /Users/ef/crowny-services/블롭스트림.한선: 다운로드(파일소켓전송 856, 바이트안전 MD5일치), Range, 업로드(버퍼SHA256+버퍼파일쓰기)
- ★VM opcode 3개 추가(crownyc.c/hanseonc_high.c, additive)★: 857 버퍼파일쓰기(BUF_FILE_WRITE, fopen wb+fwrite+원자rename), 858 버퍼SHA256(BUF_SHA256, 버퍼 대상 해시), 859 파일소켓범위전송(FILE_SOCKET_SEND_RANGE, fseek+부분전송). 사용중 아닌 번호, case 856 직후. 이름테이블+hanseonc_high 매핑 전레이어 배선
- 회귀 ALL PASS(고정v2·크라우니수·서비스서버 컴파일·산술/배열/맵), opcode 스모크(버퍼SHA256=해시_SHA256 바이트동일)
- blob 섀도 9/9: 200KB NUL업로드 SHA256+cmp 바이트동일, dedup, 대용량Range offset>65536, 전체다운로드 바이트동일
- ★프로덕션 VM 스왑 완료(사용자 승인)★: 백업 crownyc.bak.preopcode_20260622·hanseonc_high.bak.preopcode_20260622, 원자 mv. 프로덕션 스모크 버퍼SHA256("Hello")=해시_SHA256 검증. 30 라이브 한선씨 서비스는 in-memory 구바이너리 무영향, respawn시 신바이너리(additive 안전)
- ✅ 블롭스트림→서비스서버.한선 통합 완료(가져오기+/api/blob prefix 라우팅, 바이너리안전 버그수정 부분/글자수→버퍼찾기/잘라/문자열). 서비스서버.toau 1.25MB 스왑(백업 .bak.preblob_20260622)
- ✅ cloud·market 컷오버 완료: cloud blob 라이브 라운드트립 50KB 업로드→다운로드 바이트동일. 최종 32 한선씨 / 1 node(mail만), 공개 8443 전부 200
- node 잔류=mail(독립 크라우니메일서버 49라우트, 별도 트랙)
mail + kimpresidentsk 컷오버 → 100% 한선씨 (2026-06-22)
- mail: /Users/ef/crowny-mail/크라우니메일서버.한선(406KB toau, 17라우트 완전 독립 HTTP서버). 독립 LaunchAgent com.crowny.mail(KeepAlive, PORT=9610). 라이브 발송→수신 검증(admin@crowny.org/crowny2026! → kim, "33완성" 수신). 세션=X-Session 헤더
- manage.sh 독립.txt skip 추가(is_independent → start_one return3): 독립 LaunchAgent 소유 서비스를 데몬이 무간섭(mail 등록). 데몬 충돌 방지
- kimpresidentsk(9942, 후발 등록 서비스)도 서비스서버.toau로 컷오버
- ★최종: 34 공유서비스 전부 한선씨, node 0★
- ⚠️ mail 영속성 갭: 인메모리 DB(재시작 시 admin/kim/rental 3계정만, 메일 초기화). mail.log/users.log는 있으나 부팅 replay 미구현 → 다음 개선과제(부팅시 로그 replay)
- 진단경고 2건(crownyc.c:9361 unused-return, 12200 misleading-indent)=기존코드 코스메틱, 신규opcode 아님
6. 크라우니수 모터 결선 — 축자속손실.한선 (2026-06-22)
파일: /Users/ef/CrownyOS/apps/축자속손실.한선 (가져오기 크라우니수+고정v2)- Steinmetz 철손 P_fe=k·f^1.6·B² — f^1.6 멱법칙=크라우니수_지수(0.6×크라우니수_로그(f))×f (α=정수1+소수0.6 분해로 오버플로 회피)
- ★크라우니수 스위치 실증★: 철손=켜기(멱법칙 eᵏ), 동손 I²R=끄기(3진). 함수내 끄기() 복원으로 문맥누출 0
- f^1.6 정밀도: f≤1000Hz 오차 0천분율(Python 일치). 효율 99.2%@4000rpm→98.4%@12000rpm(고속 철손 지배, 물리타당)
- 한계: f>7527Hz(113,000rpm) 오버플로 — 운용상한(800Hz/12000rpm)의 9.4배라 무관. 함정수정: 고정v2_곱셈 정밀손실→_고정곱 분해
7. θ 슬라이딩모드 옵저버 — 축자속옵저버.한선 (센서리스, 부분통과)
파일: /Users/ef/CrownyOS/apps/축자속옵저버.한선 (가져오기 고정v2)- SMO 전류옵저버(K·sign 적분기 내부), 역기전력→θ=CORDIC arctan2(4사분면 정확 0/90/±135/45°), LPF(α=0.7), PLL(각도PI)
- 수렴: 1000rpm 750스텝(75ms)→정상상태 9°, 2000rpm 600스텝→17°, 3000rpm 360스텝→0°(진동중). 전 케이스 최소오차 0° [Ti-수렴]
- ★정상상태 오차=LPF 위상지연(이론 9.9/19.2/27.6° vs 측정 9/17/28°, 2° 이내 일치)=설계 트레이드오프, 버그 아님★
- 한계(센서리스 고유): ①저속(<800rpm) 역기전력<채터링→추정불능(HFI/인코더 기동필요) ②LPF 위상지연 토크오차 sin(28°)=47%@고속(α↑로 완화) ③3000rpm PLL 진동(Kp↓ 필요) ④VM OOM(함수내 배열누적, >600스텝→전역변수 리팩터/MEM_MAX 확장 필요)
- 개선여지: 위상지연 보상(θ+예측), 전역변수 리팩터(OOM), Kp 재튜닝
수 체계 3분할 (확정)
- 기계제어=적은트릿 고정소수점(3⁷, 3레벨인버터 직결) / 회계=정확정수+오일러e 상수 그대로(진법에 안녹임) / 과학·지수로그=크라우니수 v3
3. 부동소수점 — 고정소수점.한선 (돌파)
- /Users/ef/CrownyOS/crownyc/libs/고정소수점.한선 (233줄): 테슬라식 스케일드정수
- SCALE=1000(소수3자리, 1e6는 곱셈 오버플로 ±1412억 초과). 함수 10종(정수화/덧셈/뺄셈/곱셈단계축소/나눗셈/루트뉴턴/사인·코사인 분면축소테일러/문자열/절댓값)
- 정확도 최대오차 0.001. 검증 에이전트가 나눗셈 단계축소 버그 1건 수정
- 함정: VM 자연반올림이 문자열변환 깨뜨림(-0.999→"1.-1")→_바닥나눗셈 헬퍼
- 테슬라 웹리서치: 1차 Fable 불가로 실패 → sonnet+WebSearch로 재실행(진행중)
4. 음 본래의미 정정 (사용자)
- 옴(O,0)=화이트홀·가시선·티/타 전상태 / 음(U,-0)=블랙홀·비가시선·모름영역(옴0 대치 -0)
- 코드의 U=구분자/띄어쓰기는 2진FPGA 매핑 도구적결정일뿐, "단지 띄어쓰기" 아님
- 메모리 reference_tiomta_4sang_um_meaning 기록, 책 1·2·6장에 반영
3-b. 테슬라 정수연산 리서치 (학습 완료)
출처: Tesla FSD HW3/HW4(INT8×INT8→INT32, 4.9 TOPs/W), Dojo CFloat8, ISO26262/DO-178C, CORDIC, nullhardware 고정소수점.왜 FP를 피하나: 정수가 9배 전력효율 / 플랫폼불문 결정론(FP는 라운딩모드·FMA·재순서화로 결과 달라짐) / NaN·Inf·denormal 없어 인증(형식검증) 쉬움. 테슬라 전략=훈련 CFloat8·추론 INT8 분리.
고정소수점.한선 개선 5 (권고):
- SCALE 1000→65536(Q16): 2의거듭제곱→
>>16비트시프트로 자연반올림 오차제거, 66배 정밀(오차 0.000015). 안전최대값 ≈2,154,831. 기존 API 호환 위해 Q16 변형모드 분리 - 테일러 sin/cos→CORDIC(덧셈+시프트만, 20회=6자리, 극점오차 제거) 또는 nullhardware 5차다항식
- 곱셈 단계축소 기준
절a > sqrt(VM_MAX/SCALE)≈375786로, 음수 부호보존 검증 추가 - 나눗셈 뱅커 반올림(round-half-to-even)으로 누산편향 제거
- 뉴턴 루트 초기값 MSB 비트추정(60회→6~10회), 수렴조건
차이<1
3-c. 고정소수점 v2 — 4상균형3진 네이티브 (구현·검증)
파일: /Users/ef/CrownyOS/crownyc/libs/고정소수점v2.한선 (v1 보존)- SCALE = 3^11 = 177147 (10진 1000 아님 — 3진 네이티브). VM 워드=3^24=±141,214,768,240
- 트릿시프트 TSHR(opcode 95)로 ÷3^k 정확 (자연반올림 오차 없음). ÷e^k는 트릿경계 불일치로 불가
- sin/cos = CORDIC 16단계(라딕스-3은 arctan(3^-i) 순환의존으로 미채택 → 3^k 스케일 위 표준 CORDIC, ÷2^i는 반복/2)
- 나눗셈 뱅커반올림, 곱셈 단계축소(임계 sqrt(VM_MAX)=375785)
- 정확도: 소수 ~5.2자리. 1/3 오차=0(3^11/3=3^10 정확 — 3진 네이티브 핵심이점). sin/cos 극점오차 1.7e-5
- v1 대비: sin(3π/2) 오차 1e-3→1.7e-5 = 59배 개선, 3자리→5~6자리
- 함정: 문자열변환 ×1e6 오버플로(2단계분리), VM 자연반올림vs floor 충돌(_v2_바닥나눗셈)
- ★버그 수정완료★: 고정v2_루트 N=vSCALE^2 오버플로 → SCALE=3^6×3^5 분해 _ascale_div_b 2단계 나눗셈 + 뉴턴루프 고정v2_나눗셈 사용. 독립검증 sqrt(9)=3.000000·sqrt(100)=10·sqrt(2)=1.414210·1/3=0.333333. 안전범위 정수부 4→797,161
3-d. Cr(base-e=2.71828진법) 적용 검토 — 판정: 범용 불가, 특화 가능
- Cr진법(/Users/ef/crowny-base): 자릿값=round(e^k) 무리수 위치기수계, 음(Um)=잉여덤프 오차누적버퍼
- 범용 고정소수점 불가: SCALE=e^n 무리수 → e^n·e^m이 정수격자에서 닫히지 않음. 음덤프는 오차를 0이 아니라 유계로만 유지(저차수 상대오차 ~10%)
- Cr 유리 도메인: 지수·로그·복리/감쇠·로그스케일 압축 (d/dx eˣ=eˣ 자연성, ln LUT가 진법 내장). CIF/CVF 트릿트리 코덱과 동형
- 권고: 이원화 — 범용=3진(3^k, TSHR 정확), Cr=지수/로그 특화레이어. 최선=하이브리드(e^k 레벨 ⊕ 3진 가수 m·e^k), 잉여는 정규화 시점 1회만 음덤프
- crowny-base 소스버그 발견: 그리드[7]=1096 → 정답 1097(round(e^7)). v1·v2_코어 동일 오타 (수정은 crowny-base 세션 판단)
3-e. Cr 하이브리드 v3 — 크라우니수.한선 (런타임 스위치) ✅
파일: /Users/ef/CrownyOS/crownyc/libs/크라우니수.한선 (366줄)- 표현: 하이브리드 (eᵏ 레벨 ⊕ 3진 가수, 고정소수점v2 백엔드 재사용)
- 런타임 스위치: 전역
_크라우니수_모드(0/1) +크라우니수_켜기()/크라우니수_끄기(). ON/OFF/ON 반복 정상 - OFF = 3진 v2와 bit-identical(1/3 raw=59049, √2 raw=250523 오차0) — 폴백 완벽
- ON 정확도: e¹=2.718279(오차~0), ln(e)=1·ln(e²)=2 정확, e^0.5 오차 3.4e-5, e²=7.389 오차 1.7e-5. 복리(1000,5%,10) 오차 0.062(테일러 6항 누산, 부분통과)
- 16/17 PASS. 함정 수정: 고정v2_곱셈 오버플로분기가 e→3 뱅킹 → _cr_곱안전(S1=3⁶·S2=3⁵ 2단계)
- 개선여지: 테일러 7~8항이면 복리오차 0.001↓. e⁵ 이상 별도검증
- 용도: 지수/로그/복리 서비스(finance·reward·value·달란트)에서 필요시 스위치 ON
3-e-2. v3 정밀도 개선 (테일러 9항) — 2026-06-22
- e^x 소수부 테일러 6→9항(누적식 항_k=_cr_곱안전(항_(k-1),frac)/k, 오버플로회피). 복리 rt=이율기간SCALE/1000 한번나눔
- e^0.5 오차 2.8e-5→5.6e-6(SCALE 분해능 한계 도달). 복리(1000,5%,10)=1648.709829 오차 0.062→0.011. 복리(100,10%,1)=110.517819
- OFF 회귀 PASS(1/3·√2 bit-identical), 스위치/ln/곱셈 미수정
- ★중대 제약(finance 직결)★: 복리 원금 인자는 평문정수, 내부 고정v2_정수화 → 원금 > ~797,161(3¹³)이면 오버플로(복리(1e6,..)=-800). 고정소수점 정수부 천장. 수십억 CRY엔 부적합 → 워크어라운드: 천원단위 스케일 OR v4(원금을 하이브리드 eᵏ레벨⊕가수로 유지해 동적범위 확장 — Cr 본래목적)
잔여 이슈
- 테슬라 리서치 결과로 고정소수점.한선 개선(삼각함수 극점오차, 정밀도) 검토
- VM 네이티브 고정소수점 opcode 도입 여부 결정
- RPN 정통 문서정정(hanseonc_std→hanseonc_rpn.c)
- 마이그레이션 라이브 컷오버(29서비스) — 사용자 결정 대기
- 책 2·3편 (만들기 서사 심화)
관련 파일
- /Users/ef/crowny-agent/웹/build-reader.js (hanseon CONFIG)
- /Users/ef/crowny-agent/data/전권/hanseon/.md
- /Users/ef/crowny-services/서비스서버.한선
- /Users/ef/CrownyOS/crownyc/libs/고정소수점.한선