로컬바로보기 (lbv) — 게이트웨이 우회 로컬 직통 도구
2026-05-27 | gateway.yaml의 170개 도메인을 게이트웨이 다운 시에도 127.0.0.1:포트로 즉시 접근.
개요
게이트웨이(8080/8443)가 보수중이거나 다운된 상태에서도 모든 서비스를 로컬에서 즉시 확인할 수 있는 도구. 한선씨 본체 + 얇은 bash entry + 한선씨 라이브러리(브라우저용)로 구성.
무엇을 했는지
1. CLI lbv (한선씨 본체)
/Users/ef/crowny-local/로컬바로보기.한선 (TOAU 컴파일됨).
| 명령 | 동작 |
|---|---|
lbv 리스트 | gateway.yaml 등록 170 도메인 + 매핑 |
lbv 조회 <도메인> | 도메인 → http://127.0.0.1:포트 |
lbv 헬스 <도메인> | TCP 연결 시도 → LIVE/DOWN |
lbv 열기 <도메인> | CrownyBrowser 우선, 없으면 default 브라우저 |
lbv 헬스올 | 전체 LIVE/DOWN 집계 |
lbv 살아있음 | LIVE 서비스만 필터 |
lbv 찾기 <키워드> | 도메인/name 키워드 검색 |
nc -z -w 1.2. 한선씨 라이브러리 로컬직통.한선
/Users/ef/CrownyOS/crownyc/libs/로컬직통.한선 — 브라우저/HTTP스택이 import 가능.
javascript가져오기 "로컬직통.한선"
변수 매핑 = 로컬매핑로드()
변수 새URL = 로컬URL변환(매핑, "https://core.crowny.org/api/foo")
; → "http://127.0.0.1:7731/api/foo"
API:
로컬매핑로드()— 매핑 평탄 배열 [도메인,포트,name,...]로컬매핑갱신()— gateway.yaml에서 강제 재추출로컬포트조회(매핑, 도메인)— 포트 번호 (없으면 -1)로컬URL변환(매핑, URL)— URL 통째로 변환 (path/query 보존)로컬가능한가(매핑, 도메인)— yes/no
3. 브라우저 v2 통합 지점 (선택사항)
/Users/ef/CrownyBrowser/src/v2/HTTP스택.한선 또는 브라우저런타임.한선에서 fetch/요청 함수가 URL을 받는 진입점에 한 줄 추가:
javascript가져오기 "로컬직통.한선" ; 파일 상단
변수 _로컬매핑_ = 로컬매핑로드()
함수 가져오기실행(URL) {
URL = 로컬URL변환(_로컬매핑_, URL) ; ← 이 한 줄만 추가
; 기존 로직...
}
CRNS와 충돌 없음 (CRNS는 한글 도메인, 로컬직통은 등록 도메인 → 127.0.0.1).
관련 파일
| 파일 | 역할 | ||
|---|---|---|---|
/Users/ef/crowny-local/로컬바로보기.한선 | CLI 본체 (한선씨) | ||
/Users/ef/crowny-local/로컬바로보기.toau | 컴파일된 TOAU | ||
/Users/ef/crowny-local/lbv | bash entry (매핑 추출 + 명령 전달) | ||
/Users/ef/CrownyOS/crownyc/libs/로컬직통.한선 | 브라우저용 한선씨 라이브러리 | ||
/tmp/lbv-map | awk가 추출한 매핑 캐시 (도메인\ | 포트\ | name) |
/tmp/lbv-cmd, /tmp/lbv-arg | 한선씨 통신용 임시 파일 |
동작 검증
lbv 조회 core.crowny.org → core.crowny.org → http://127.0.0.1:7731
lbv 헬스 main.crowny.org → main.crowny.org :7730 LIVE
lbv 헬스 audio.crowny.org → audio.crowny.org :9880 DOWN
lbv 찾기 bank → 3 매칭 (bank.crowny.org / bank.crownybus.com / bank-preview)
lbv 살아있음 → 60+ LIVE 서비스
로컬URL변환(..., "https://main.crowny.org/path?q=1") → "http://127.0.0.1:7730/path?q=1"
잔여 이슈 / 다음 단계
- PATH 등록:
ln -s /Users/ef/crowny-local/lbv /usr/local/bin/lbv또는.zshrc에 alias - 체계() 함수 함정: macOS sh의
echo -n이-n LIVE로 출력됨 →printf사용 필수 - 다듬기() 한글 함정: ASCII 시작 byte를 char로 잘못 판단할 수 있음 → 끝 개행만 제거하는 단순 함수 권장
- 브라우저 통합: HTTP스택.한선에 한 줄 추가 필요 (사용자 선택). 통합 시 brower-rebuild 필요.
- CRNS와의 우선순위: 로컬직통은 IP 리터럴 다음, CRNS 이전 단계에서 호출하는 게 자연스러움
- 포트 충돌 감지: 매핑에 동일 포트 다중 도메인 (예: :9152 = gateway-monitor + os, :9600 = spear+simulator+member) — 의도된 alias인지 확인 필요
비중
한선씨 라인: 295 (로컬바로보기.한선) + 110 (로컬직통.한선) = 405 줄
bash entry: 22 줄
새 한선씨 라이브러리: +1 (108 → 109)