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

crowny-enterprise P0-3 데이터 테넌트 격리 (2026-06-15)

개요

멀티테넌시 데이터계층 격리 구현 (P0-3). 인가계층(X-Company-Code 403)은 기존 서버.한선 로직이 유지하고, 데이터계층(DB 행 단위 격리)을 격리강화.한선 + 3모듈 스키마 변경으로 구현.

한 것

1. 격리강화.한선 완성 (/Users/ef/crowny-enterprise/격리강화.한선)

  • 회사격리조회(DB, 회사코드, 컬럼, 연산, 값) — 조회() 결과를 회사코드로 필터
  • 회사격리전체(DB, 회사코드) — 전체조회() 결과를 회사코드로 필터
  • 격리행수(결과배열) — 격리된 배열의 행 수
  • 격리집계합(결과배열, 컬럼명) — 격리 결과 합계

2. 핵심 3모듈 스키마 + 삽입 함수 변경

모듈DB추가된 컬럼변경된 함수
재무.한선_분개DB회사코드분개입력(7인자)
인사.한선_직원DB회사코드직원등록(7인자)
영업.한선_고객DB회사코드고객등록(8인자)

3. 서버.한선 핸들러 수정

  • 요청처리() 진입부: 현재회사 = 토큰회사(토큰v) 단일 추출
  • POST처리(5인자): 현재회사 추가 전달
  • /api/hrm/employee, /api/crm/customer, /api/finance/journal 핸들러에서 현재회사 주입

4. 각 모듈에 테넌트 격리 조회 함수 추가

  • 재무: 재무_회사분개목록, 재무_회사예산조회, 재무_회사분개수
  • 인사: 인사_회사직원목록, 인사_회사직원수, 인사_회사부서원, 인사_회사재직자수
  • 영업: 영업_회사고객목록, 영업_회사고객수, 영업_회사VIP고객, 영업_회사파이프라인

관련 파일

  • /Users/ef/crowny-enterprise/격리강화.한선 — 격리 래퍼 (완성)
  • /Users/ef/crowny-enterprise/modules/재무.한선 — _분개DB 9컬럼, 분개입력 7인자
  • /Users/ef/crowny-enterprise/modules/인사.한선 — _직원DB 12컬럼, 직원등록 7인자
  • /Users/ef/crowny-enterprise/modules/영업.한선 — _고객DB 12컬럼, 고객등록 8인자
  • /tmp/enterprise.new.toau — 배포용 TOAU (서버.한선 포트 9701)
  • /tmp/enterprise.test19701.toau — 테스트용 TOAU (포트 19701)

검증 결과

  • 컴파일: OK
  • 테스트 서버 (19701): 정상 기동
  • 크로스 컴퍼니 403: COMPANY_A 토큰 + COMPANY_B 헤더 → 회사코드 불일치 403 ✓
  • DB 스키마 확인: 분개장 9개, 직원 12개, 고객 12개 컬럼 ✓
  • 격리강화 로드 확인: [격리강화] P0-3 데이터격리래퍼 로드 출력 ✓

미적용 모듈 (다음 스텝)

공급망(_상품DB/_재고DB), 보안, 대시보드, 워크플로우, 프로젝트, 자산, 생산, 문서, 조직

주의

  • 회사코드 729초과(3^6) 시 맵 샤딩 필요 (현재 10개 안전)
  • 배포: 메인 세션이 서버.한선 재컴파일 후 9701 재기동