크라우니클라우드 출시 + 게이트웨이 POST 개행함정 근본수정
개요
크라우니 생태계 순차 출시(13종)의 5번 제품. 클라우드(개인 보관함, cloud.crowny.org:9611 한선씨 VM) 검증 중 역사적 게이트웨이 버그 2건의 뿌리를 발견·근본수정하고, CLI 클라이언트를 신규 패키징.무엇을 했는지
1) 현황체크 — 코어 클린, 그러나
- 서버 7일 무중단, 재컴파일 바이트동일(1,249,080B), store/blob(SHA256 dedup)/quota 왕복 전부 통과 (로컬 직결)
- 게이트웨이 경유 한글 본문 POST가 503 — 여기서 파고들어 근본 원인 2건 발견
2) 보완 — 버그 2건 근본수정
버그 A (클라우드 백엔드): 본문읽기가 글자수(char)로 Content-Length(byte)를 대조 → 한글 본문은 char<byte라 영원히 미달 → 분할 패킷 수신 시 5초 행 → 게이트웨이 5초 폴링과 경합해 503.
→ _바이트수(버퍼 왕복) 비교로 수정 (서비스서버.한선). 분할전송 5.07s→0.014s. 주의: 서비스서버.toau는 29개 서비스 인스턴스 공유 — cloud만 재기동, 나머지는 각자 재기동 시 반영.
버그 B (게이트웨이 — 역사적 "POST \n제거" 함정의 뿌리): _요청재작성이 본문까지 줄분리→재조립하며 본문 개행을 소실 → Content-Length 불일치 → 백엔드 대기 → 503. 전 세션이 ¶프로토콜로 우회해온 그 버그.
→ 헤더/본문 선분리(헤더만 줄 재작성, 본문 무가공)로 수정 (게이트웨이통합.한선). ¶프로토콜 이제 불필요.
진단 방법론: gw 전달 바이트 포획(죽은 업스트림 포트에 nc 대기) → 바이트 무손상 확인 → 포획 요청 재생 → 분할전송 3단 테스트로 백엔드 행 검증 — 층별 분리로 이중 버그를 각각 확정.
배포: start.sh 정본 절차(소스 자동 재컴파일) 재기동, 293라우트 로드. 검증: 5도메인 200, 다중줄 한글 본문 개행보존 왕복, deacon/msg POST 회귀 0. 같은 소스에 있던 타 세션 근본수정 #1~#3도 함께 배포됨(소스 SSOT 병합).
3) 패키징
crowny-cloud.sh(+한선씨 동반) CLI 신규: put/get(보관함)·up/down(블롭)·quota·health, 소유자 토큰 자동생성(~/.crowny-cloud-owner 공유=기기간 동기화)crownycloud-cli-v1.0.zip게시 + 게이트웨이 다운로드 200- CLI 전 기능 게이트웨이 경유 검증 통과
관련 파일
- 백엔드:
/Users/ef/crowny-services/서비스서버.한선(본문읽기 바이트수정, .toau.bak-바이트수정전-20260707) - 게이트웨이:
/Users/ef/crowny-gateway/한선게이트웨이/게이트웨이통합.한선(_요청재작성) - CLI:
/Users/ef/crowny-services/crowny-cloud.sh·.한선 - 지식: infra/게이트웨이_POST개행함정_근본수정 (#22203) · 메모리 feedback_한선게이트웨이_본문함정 갱신 · 메신저 #375 브로드캐스트
정정 (2026-07-08 적대검증)
- store "512KB 한도"는 부정확했음: 한선 VM 문자열 65535B 캡으로 실제 ~65KB에서 조용히 잘려 저장됨(데이터 손상). 본문읽기에 무결성 가드 추가 → 64KB 초과는 명시 413 거부(silent truncation 제거), 대용량은 blob 청크 API. 29인스턴스 전체 반영.
잔여 이슈
- 게이트웨이 24KB 본문한계·VM 문자열 65535캡은 유효(청크 프로토콜 유지)
- 서비스서버 공유 29인스턴스 중 cloud 외 28개는 구 toau 메모리 상주 — 재기동 시 자동 반영
- 단일스레드 백엔드 동시접속 503 가능성(부하 시) — 멀티스레드/큐는 차기
- 다음 출시 순번: 크라우니팀 (6/13)