← 목록
기타 2026-07-10 5KB 읽기 5분

수치·웹 S급 잔여 로직버그 정리 (P5)

개요

재측정_P4_최종.md가 명시한 두 도메인의 유일 잔여 갭(수치-과학의 보간법, 웹-응용프로토콜의 HTTP chunked 전송인코딩)을 재현→수정→표준대조 검증까지 완료. t검정은 이미 P3에서 정상 재배선되어 있음을 재확인(코드 변경 없음).

무엇을 했는지

1. 보간법(라그랑주/뉴턴) — libs/보간.한선

  • 재현: 라그랑주보간이 항상 0 반환(변수 결과=0 bare int 초기값 + float 항을
더하는 과정에서 "0+float 정수반올림 함정"에 걸림). 뉴턴보간은 저차 3점 데이터에선 우연히 정답(6.25)이 나왔으나, 5점 3차식으로 스트레스 테스트하니 13.4458(정답 15.625)로 완전히 깨짐 — ×1000/÷1000 고정소수 스케일이 오더(k)가 올라갈수록 뉴턴차분과 뉴턴보간 사이에서 어긋나는 근본버그.
  • 수정: 두 함수 모두 순수 float로 전면 재작성. 수학.한선실수합_*
누산기(0+float 함정 회피, alias-mutation 배열 기반) 재사용, 모든 나눗셈은 분모를 * 1.0으로 float 승격.
  • 검증: 6개 케이스(포물선/3차식/비정수 x 등) 전부 독립 Python Lagrange
구현과 완전 일치(예: (1,1),(2,4),(3,9)→x=2.5 → 6.25 정확).

2. t검정 — libs/통계분석.한선 (변경 없음, 재확인만)

  • psv 문서상 "평균()/분산() 버그 상속"으로 기록돼 있었으나, 실제로는 이미
P3에서 표본평균()/모표준편차()(실수합_* + 실수제곱근 기반)로 재배선 완료된 상태였음. 두 개의 서로 다른 표본 조합으로 Python 독립 재계산 대조 → 완전 일치 확인. 코드 수정 불필요.

3. HTTP chunked 전송 인코딩 — libs/네트워크.한선 (신규)

  • 신규 함수 6개: _청크16진, _청크16진파싱, HTTP청크인코드, HTTP청크종료,
HTTP청크헤더, HTTP청크전송(+ 자체 디코더 HTTP청크디코드, ASCII/자체생성 청크 한정 안전).
  • 십육진 자릿수 추출은 절단나눗셈/절단나머지(opcode 738, 트렁케이션)로
구현 — bare /·%의 균형3진 자연반올림 함정 회피.
  • 함정 발견: 첫 테스트에서 소켓생성/소켓수락(slot 계열)로 얻은 fd를
TCP쓰기 기반 HTTP청크전송에 넘기니 curl은 "Empty reply", 서버 자신의 stdout에 응답이 통째로 출력되는 현상 발견 — TCP_WRITE가 raw fd로 가정하고 바로 write()하는데 slot 계열 fd가 우연히 낮은 정수(stdout과 충돌)라 발생. TCP대기/TCP수락(raw fd 계열)로 교체해 해결 (기존 웹소켓 TRAP-CONFIRMED 함정과 동일 계열).
  • 검증: 라이브 TCP 서버(한/영 혼합 UTF-8, 3760바이트, 9청크) → curl로
실제 수신 — (a) curl 자동 디코딩 재조립 본문이 원본과 바이트 단위 완전 일치, (b) curl --raw로 원시 와이어 캡처 후 Python으로 직접 파싱해 9개 청크 전부 hex 크기=실제 데이터 길이 일치 + 매 청크 CRLF 정확 + 종료청크 정확 — 이중 독립 검증 통과.

회귀 확인

tests/run_all.sh — 수정 전/후 동일하게 99/107 통과(8개 실패는 전부 본 작업과 무관한 기존 실패). 신규 회귀 없음.

관련 파일

  • /Users/ef/CrownyOS/crownyc/libs/보간.한선 (라그랑주보간/뉴턴차분/뉴턴보간
재작성, 하드링크 pkg/libs/보간.한선 자동 동기)
  • /Users/ef/CrownyOS/crownyc/libs/네트워크.한선 (chunked 함수 6개 신규,
하드링크 pkg/libs/네트워크.한선 자동 동기)
  • /Users/ef/CrownyOS/crownyc/libs/통계분석.한선 (변경 없음, 재확인만)
  • 검증 로그: /Users/ef/CrownyOS/crownyc/docs/한선씨-P5-20260710/수치웹_검증.md
  • 근거 문서: /Users/ef/CrownyOS/docs/한선씨-P4보완-20260710/재측정_P4_최종.md
  • 데모 서버(임시): /private/tmp/claude-501/-Users-ef/75958a3d-340c-4503-b5cb-7ff1ab34a93b/scratchpad/p5test/chunk_demo_server.한선
  • 크라우니코드 학습: 라그랑주보간_float재작성, 뉴턴차분_뉴턴보간_float재작성,
HTTP청크전송_chunked인코딩 3건 등록 (~/.claude/scripts/crownycode-learn.sh)

잔여 이슈

  • HTTP청크디코드는 문자(UTF-8) 인덱스 기반 슬라이스라 자체 생성한 청크
되돌리기에는 안전하지만, 임의의 외부 멀티바이트 청크 경계 스트림에 대한 완전 범용 디코더는 아님(버퍼 기반 재작성 필요 — 바이트수() 헤더 주석과 동일한 기존 한계, 이번 작업 범위 밖).
  • 웹-응용프로토콜 과제 "gzip+chunked"는 이제 두 축 모두 구현됨 — 다음 재측정
라운드에서 이 과제의 psv 판정을 partial→full로 승격 검토 여지 있음(이번 세션은 개별 로직버그 수정이 스코프라 도메인 tally 재산정은 하지 않음).