← 목록
기타 2026-07-09 3KB 읽기 3분

게이트웨이 정적 파일 서빙 성능 최적화 (A1) — 완료·라이브검증

개요

재부팅으로 중단된 "Gateway 정적 서빙 최적화" 세션을 복구·완료. 정적서빙 A1(fork 감축)은 직전 진화루프에서 소스에 적용됐고, 이번 세션에서 소스→라이브 바이너리→런타임 바이트무결성을 end-to-end 검증해 완료 확정. 부수로 gw doctor 로케일 크래시 버그 수정.

무엇을 했는지 (검증 중심)

  1. A1 소스 확인게이트웨이통합.한선 _정적스트리밍이 네이티브 파일소켓전송
(opcode 856, C레벨 fread→write 64KB) 사용 → 요청당 fork 0. 구 dd 청크 셸아웃(10MB=625 fork) 제거됨. Content-Length는 파일바이트수=네이티브 stat()(crownyc.c:9361) → 전체읽기 없음, 단일 stat.
  1. 라이브 = 소스 증명 — 현재 소스를 그림자 컴파일 → /tmp/gwlive.toaubyte-identical(cmp 일치).
즉 라이브 게이트웨이가 최적화 소스를 그대로 구동 중(2026-06-30 20:33 빌드).
  1. 런타임 바이트무결성 — security.crowny.org/index.html(26,011B) 게이트웨이 경유 서빙,
디스크 원본과 SHA256 일치(372fa4c1...), 0.036s. fork-0 정적경로 정상.
  1. gw doctor 버그 수정 — Korean 문자열의 $n개 표현이 C 로케일(launchd/워치독)에서
변수명 n<byte> 흡수 → unbound variable 크래시. ${n} 브레이스로 로케일 무관 안전화. LC_ALL=C gw doctor 재현→해소 확인, bash -n OK.

관련 파일

  • /Users/ef/crowny-gateway/한선게이트웨이/게이트웨이통합.한선 (_정적스트리밍 line 346, _요청처리 line 441-445)
  • /Users/ef/crowny-gateway/게이트웨이Q/번들libs/게이트웨이SPA정적코어.한선 (정적맵/조회)
  • /Users/ef/crowny-gateway/gw (line 115·121 ${n} 수정)
  • /Users/ef/CrownyOS/crownyc/crownyc.c:9361 (파일바이트수=stat), opcode856(파일소켓전송)

잔여 이슈

  • gwlive 인스턴스 2개 (PID 3681+4447, SO_REUSEPORT 공존) — start.sh/워치독 재시작 경합.
현재 전 도메인 200(무장애). org.crowny.gwhealth + sysguard가 자동 수렴(중복 toau cull). 필요 시 정본 복구: 전체 pkill gwlive → 리스너0 확인 → 단일 gw restart(kickstart org.crowny.gateway).
  • 정적서빙 A1 외 최적화 백로그(별건, 정밀 단독): C3 WS 소켓 타임아웃(옴/보류),
B-1 4상 프록시(죽은 백엔드 빠른실패), A2 단일패스, RateLimit 라이브배선, SNI생성기 디렉토리스캔.