← 목록
엔터프라이즈 2026-06-15 3KB 읽기 2분

크라우니엔터프라이즈 P1-2: 감사로그 SHA-256 해시체인 + 파일 영속화

개요

트랙 B 작업. 코어.한선의 _ERP_감사 메모리 배열 전용 감사로그를 SHA-256 해시체인 기반 JSONL 파일 영속화로 강화.

무엇을 했는지

코어.한선 v2.1 추가 사항

  • 전역 변수: _감사로그경로, _감사WAL한계(500000 바이트), _마지막해시(초기 64개 0), _감사순번, _감사초기화됨
  • _줄분할() — 내용을 \n 기준으로 배열 분할 (체계() 미사용)
  • _JSON값추출(줄, 키) — JSONL 줄에서 키 값 추출 (파싱 내장)
  • _감사초기화() — 시작 시 마지막 JSONL 줄 읽어 _마지막해시 + _감사순번 복원. 읽기() + 글자수 가드 (파일존재() 미사용)
  • _감사WAL회전() — 글자수×3 바이트 추정 > 한계 시 .bak.타임스탬프로 보관 후 신규
  • _감사영속기록(종류, 실행자, 회사코드, 내용) — 핵심. SHA256(이전해시+항목원문) → JSONL 덧쓰기. 세 엔티티 함수(생성/수정/상태변경)에서 호출

JSONL 스키마

json{"순번":1,"시간":1781510816,"종류":"생성","실행자":"관리자","회사코드":"TEST001","이전해시":"0000...","현재해시":"6221f0a8...","내용":"엔티티생성:제품A:1000"}

기존 코드 보존

  • 감사로그전체() — 메모리 _ERP_감사 반환 (서버.한선 호환 유지)
  • 감사기록(사용자, 요청방식, 경로) — 서버.한선이 오버라이드하므로 미정의 (서버 시그니처 변경 없음)
  • 중복 테이블저장/테이블불러오기 제거 + 파일존재()읽기()+글자수 가드로 수정

검증 결과

  • 컴파일 OK: ./hanseonc_high modules/코어.한선 > /tmp/코어테스트.toau
  • 해시체인 연결: 1번현재해시 == 2번이전해시 == 3번이전해시 (성공)
  • 재시작 복원: 순번=2, 마지막해시 64자 정확 복원
  • JSONL 3줄 append 확인: /tmp/테스트감사로그.jsonl

관련 파일

  • /Users/ef/crowny-enterprise/modules/코어.한선 — 수정 파일 (트랙 B 담당)
  • /Users/ef/crowny-enterprise/modules/코어_감사체인.rpn.한선 — RPN 정통본 (헌법 요구)
  • /tmp/테스트감사로그.jsonl — 테스트 산출물
  • /tmp/감사테스트.한선 — 테스트 소스

잔여 이슈

  • _감사로그경로가 상대경로 "data/감사로그.jsonl" — 서버가 다른 cwd에서 기동 시 경로 조정 필요 (서버.한선에서 _감사로그경로 = "data/감사로그.jsonl" 명시 설정 권장)
  • 서버.한선의 HTTP 감사기록()은 여전히 메모리만 기록 — 별도 트랙에서 통합 가능