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

crowny-dex 마무리 (2026-07-31)

개요

dex.crowny.org(9402, LaunchAgent org.crowny.dex.plist) 라이브 서비스의 3가지 마무리 작업 완료: QA 백도어 프로덕션 차단, 보급계정 9인 자동등록, 로그인 토큰 영속화. 전부 DEX서버.한선(hanseonc_high)에서 순수 한선씨로 구현.

무엇을 했는지

1. QA 전용 엔드포인트 보호 — 이미 구현되어 있었음(확인만)

/api/_seed, /api/_settime(희년 시뮬레이션), /api/_debugmod는 부팅 시 환경변수("DEX_QA")QA플래그에 캐시하고, 각 핸들러에서 QA플래그 != "1"이면 403 반환하도록 이미 구현되어 있었다 (코드 라인 1881~1922 부근). LaunchAgent plist(~/Library/LaunchAgents/org.crowny.dex.plist)에는 DEX_QA 환경변수를 넣지 않아 프로덕션은 기본 잠김. 로컬에서 DEX_QA=1 PORT=9471 crownyc run build.toau로 띄우면 정상 동작 확인.

2. 보급계정 9인 일괄등록 — 신규 구현

  • 보급계정초기화() 함수 추가(라인 ~1063 부근, 보급계정확인() 다음): 보급계정(SUPPLY-1~9) 배열을
순회하며 자격찾기(계정) < 0인 계정만 무작위 초기비밀번호(SHA256 시드)로 회원가입() 호출. 결과 비밀번호는 data/supply_init_passwords.tsv(계정\t비번\t시각)에 1회 기록.
  • 부팅 시퀀스에 자격불러오기() 직후 토큰불러오기()보급계정초기화() 순서로 결선(라인 ~2048).
기존 계정이 있으면 건너뛰므로 재부팅해도 멱등(재등록/중복 없음, 로그로 확인).

3. 토큰 영속화 — 신규 구현

  • 토큰발급()에서 토큰 발급 시 data/tokens.tsv(아이디\t토큰\t만료시각)에 덧쓰기.
  • 토큰불러오기() 함수 추가: 부팅 시 tokens.tsv를 파싱해 만료(만료값 <= 지금시각())된 토큰은
걸러내고 유효한 것만 메모리(토큰아이디/토큰값/토큰만료)로 복원.
  • 자격불러오기()와 동일한 탭/줄바꿈 수동 파서 패턴 재사용(내장 split 없음).

관련 파일

  • /Users/ef/crowny-dex/DEX서버.한선 — 본체 수정
  • /Users/ef/crowny-dex/build.toau — 재컴파일 산출물(hanseonc_high, 56747 큐브, 에러 0)
  • /Users/ef/crowny-dex/data/tokens.tsv — 신규 토큰 영속화 파일
  • /Users/ef/crowny-dex/data/supply_init_passwords.tsv — 보급계정 9인 초기비밀번호(로컬 전용, 유출 주의)
  • ~/Library/LaunchAgents/org.crowny.dex.plist — 변경 없음(DEX_QA 미설정 확인만)

QA 실측

항목결과
프로덕션(9402, DEX_QA 없음) _seed403
프로덕션(9402, DEX_QA 없음) _settime403
로컬 QA 모드(DEX_QA=1 PORT=9471) _seed200
로컬 QA 모드 _settime200
보급계정 SUPPLY-1~9 로그인9/9 성공(토큰 발급 확인)
credentials.tsv SUPPLY- 항목 수9(중복 없음, 재부팅 후도 9 유지 — 멱등 확인)
서버 재시작 후 재로그인 없이 기존 토큰으로 인증 API(/api/supply) 호출성공(재시작 전 발급 토큰으로 재시작 후 정상 응답)
재컴파일에러 0 (56747 큐브)
배포 후 localhost:9402/health200 healthy
배포 후 공개 https://dex.crowny.org/health200 healthy

잔여 이슈

없음. 이번 라운드로 CLAUDE.md에 명시됐던 "/api/_seed, /api/_settime은 QA 전용 — 실배포 전 인증가드 또는 제거 필요" 항목과 토큰 비영속/보급계정 수동등록 문제 모두 해소.