← 목록
한선씨 2026-04-16 3KB 읽기 3분

크라우니포커스 서버 — 한선씨 풀파리티 포팅

개요

/Users/ef/crowny-focus/server.js (Node.js) 전체 기능을 한선씨(포커스서버.한선)로 포팅하고 end-to-end 검증 완료.

무엇을 했는지

1. 네트워크 라이브러리 확장 (libs/네트워크.한선)

  • 바이트수(s) — UTF-8 바이트 계산 (Content-Length 정확도). 한글 응답 잘림 수정
  • 요청분해(data)[메서드, 경로, 헤더맵, 본문] — 1차 줄 + 헤더 + 본문 파싱
  • 헤더값(헤더맵, 키) — 대소문자 무시 조회
  • 경로쿼리분리(URL), 쿼리값(쿼리, 키) — URL 쿼리 파싱
  • HTTP응답 헤더에 Access-Control-Allow-Origin: *, Connection: close 추가

2. HTTP 클라이언트 예약어 수정 (libs/HTTP클라이언트.한선)

  • 예약어 메서드메서드명 전체 치환
  • 소켓생성("TCP") 문자열 형식 → 소켓생성(2, 1) 숫자 형식

3. 포커스서버.한선 풀파리티 구현 (~700줄)

모든 엔드포인트 1:1 대응:
  • GET/POST /api/tasks, /api/tasks/today, /api/stats, /api/logs, /api/version
  • PUT/DELETE /api/tasks/:id, POST /api/tasks/:id/complete, /api/tasks/:id/log
  • POST /api/tasks/reorder (순서 변경)
  • GET/POST/PUT /api/session, POST /api/focus/start, /api/focus/stop
  • OPTIONS CORS preflight, 정적 파일 + SPA 폴백
  • 다중 유저 (X-Crowny-User 헤더 → ~/.crowny-focus/users/<id>/)
  • Core 동기화 (코어푸시) — fire-and-forget 백그라운드 curl (동기 블로킹 회피)
  • 반복 작업 (repeat) → 완료 시 다음 기한 자동 생성

4. 발견한 한선씨 함정 (feedback 메모리에 저장)

  • 중첩 설정 플랫화: 설정(A, idx, 설정(A[idx], k, v)) 패턴이 12-element 서브배열을 flatten하여 파일 손상 유발. 중간 변수 사용 필수
  • 파일존재 항상 -1: 존재 파일에도 -1 반환. 읽기() + 글자수 > 0 으로 대체

관련 파일

  • /Users/ef/crowny-focus/포커스서버.한선 — 서버 본체
  • /Users/ef/CrownyOS/crownyc/libs/네트워크.한선 — HTTP 파싱 확장
  • /Users/ef/CrownyOS/crownyc/libs/HTTP클라이언트.한선 — 클라이언트
  • /Users/ef/crowny-focus/server.js — 비교 대상 (JS 원본)

검증 결과

16개 엔드포인트 전수 테스트 통과 (test3 유저):
  • POST x2 → GET(2개) → PUT(수정) → COMPLETE → DELETE → STATS(total=1 done=1) → 파일 무결성 확인 ✓

잔여 이슈

  • 파일존재 항상 -1 반환 문제는 crownyc 런타임 버그. OP_FEXISTS/OP_FOPEN 경로 점검 필요
  • 설정(outer, i, 설정(inner, ...)) 중첩 플랫화는 한선씨 컴파일러 설계 이슈. 문서화 필요
  • 웹앱.한선 (통합 HTML/CSS/JS 생성기) — 아직 미착수