Files
sam-docs/patent-doc-01-automation-flowchart.md
김보곤 24e31e0ae6 docs: [patent] 변리사 제출용 기술문서 3건 작성
- 문서1: 온보딩 자동화 5단계 흐름도 + 필수 구성 요소 + 청구항 초안
- 문서2: As-Is/To-Be 수치 대조표 (7개 영역 비교, 비용 절감 효과)
- 문서3: AI 프롬프트 엔지니어링 4계층 아키텍처 + 도메인 지식 베이스
2026-03-20 08:19:07 +09:00

25 KiB
Raw Blame History

[특허 기술문서 1] SAM 고객사 맞춤형 ERP/MES 자동 구성 — 처리 흐름도

문서 목적: 변리사 제출용 — 방법특허 청구항 근거 자료 대상: 축1 플랫폼 방법특허 (고객사별 맞춤형 시스템 자동 생성 방법) 작성일: 2026-03-20 출원인: (주)코드브릿지엑스


1. 발명이 해결하는 과제

1.1 기존 ERP 도입의 문제

중소 제조업체가 ERP/MES를 도입하려면:

❌ 기존 방식 (6개월~1년 소요)
┌─────────────┐    ┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ ① 현장 방문  │→ │ ② 업무 분석   │→ │ ③ 커스터마이징 │→ │ ④ 데이터 이관 │
│ (1~2주)     │    │ (1~2개월)    │    │ (3~6개월)    │    │ (1~2개월)    │
│ 컨설턴트 파견│    │ 인터뷰+문서화 │    │ 코드 포크     │    │ 수동 매핑    │
└─────────────┘    └──────────────┘    └──────────────┘    └──────────────┘
비용: 3,000만~2억원 / 인력: 2~5명 / 실패율: 40~60%

핵심 문제: 모든 과정이 사람 의존적이며, 업체마다 처음부터 반복해야 한다.

1.2 본 발명의 해결

✅ SAM 방식 (1주일 이내)
┌──────────────┐    ┌──────────────┐    ┌──────────────┐
│ ① 로우데이터 │→ │ ② AI 분석     │→ │ ③ 자동 구성   │
│ 비대면 수집   │    │ + 패턴 매칭   │    │ + 자동 초기화 │
│ (1~2일)      │    │ (수분 이내)   │    │ (수초 이내)   │
└──────────────┘    └──────────────┘    └──────────────┘
비용: 기존 대비 1/10 / 인력: AI + 1명 / 성공률: 실증 완료

2. 전체 처리 흐름도 — 5단계 자동화 파이프라인

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
단계 1: 로우데이터 수집 (비대면, 3채널)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

채널 A                   채널 B                    채널 C
┌──────────────────┐    ┌──────────────────┐    ┌──────────────────┐
│ 기존 견적서 양식  │    │ 체크리스트형 설문  │    │ 음성 인터뷰       │
│ 파일 업로드       │    │ (인터뷰 시나리오)  │    │ (전화/화상 녹음)  │
│                  │    │                  │    │                  │
│ • 엑셀/PDF 견적서│    │ • 카테고리별 질문  │    │ • 브라우저 STT    │
│ • BOM 양식       │    │ • 체크박스+서술형  │    │ • Google Cloud STT│
│ • 단가표         │    │ • 진행률 실시간    │    │ • 화자 분리       │
│ • 공정 흐름표    │    │   추적 (%)        │    │ (Diarization)    │
└────────┬─────────┘    └────────┬─────────┘    └────────┬─────────┘
         │                       │                       │
         ▼                       ▼                       ▼
    구조화된 데이터          설문 응답 JSON            텍스트 변환본
    (파일 파싱 결과)        (질문별 체크/서술)        (화자별 분리)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
단계 2: 전처리 및 정규화
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌──────────────────────────────────────────────────────────┐
│                    전처리 엔진                            │
│                                                          │
│  [A] 파일 파싱                                           │
│      엑셀 → 행/열 구조 추출 → 컬럼 유형 추론             │
│      PDF → 테이블 영역 감지 → 텍스트 추출                │
│                                                          │
│  [B] 설문 응답 정규화                                    │
│      InterviewAnswer → 카테고리별 집계                   │
│      체크박스: is_checked 기반 이진 분류                  │
│      서술형: answer_text 키워드 추출                      │
│      진행률: answered_questions / total_questions         │
│                                                          │
│  [C] 음성 텍스트 정제                                    │
│      STT 결과 → 문장 분리 → 화자별 그룹핑               │
│      업무 키워드 추출 → 도메인 태깅                       │
│                                                          │
│  ──────────────────────────────────────────────────────  │
│  출력: 통합 분석 입력 데이터 (JSON)                       │
│  {company_info, collected_answers, documents, keywords}   │
└───────────────────────────┬──────────────────────────────┘
                            │
                            ▼
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
단계 3: AI 분석 — 업종·규모·공정 패턴 도출
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌──────────────────────────────────────────────────────────┐
│                  AI 분석 엔진 (LLM)                       │
│                                                          │
│  입력:                                                   │
│    • 통합 분석 입력 데이터 (단계 2 출력)                  │
│    • 도메인 지식 베이스 (20만줄+ 기술 문서)               │
│    • 모듈 카탈로그 (가용한 ERP/MES 기능 목록)            │
│                                                          │
│  처리:                                                   │
│    ① 업종 분류 (제조/시공/유통 + 세부 업종)              │
│    ② 규모 판별 (매출/직원수/거래처수 기반)               │
│    ③ 핵심 업무 프로세스 도출                             │
│       (견적→수주→생산→출하→정산 등)                      │
│    ④ 필요 모듈 매칭 (모듈 카탈로그 대조)                 │
│    ⑤ BOM 구조 패턴 추론 (견적서 양식 분석)               │
│    ⑥ 수식 템플릿 선택/생성                               │
│       (면적/중량/수량 기반 계산 방식 결정)                │
│                                                          │
│  출력:                                                   │
│    {                                                     │
│      company_analysis: 업종/규모/특성,                    │
│      business_domains: 핵심 업무 영역[],                  │
│      recommended_modules: 필요 모듈[],                    │
│      bom_structure: BOM 패턴 정의,                        │
│      formula_templates: 수식 템플릿[],                    │
│      customization_plan: 커스터마이징 계획                 │
│    }                                                     │
└───────────────────────────┬──────────────────────────────┘
                            │
                            ▼
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
단계 4: 테넌트 자동 생성 및 시스템 초기화
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌──────────────────────────────────────────────────────────┐
│              RegisterService + TenantBootstrapper         │
│                                                          │
│  [4-1] 테넌트 코드 자동 생성                             │
│        한글 회사명 → 유니코드 초성 추출                   │
│        (0xAC00 기준 588 단위 나눗셈)                     │
│        → 영문 변환 (ㄱ→G, ㄲ→KK, ...)                   │
│        → 36진수 4자리 순번 부여                          │
│        → 코드 생성 (예: "경동기업" → "KDKO0001")         │
│        → 최대 1,679,616개 테넌트 지원 (36^4)            │
│                                                          │
│  [4-2] 테넌트 레코드 생성                                │
│        Tenant::create(code, status='trial')              │
│                                                          │
│  [4-3] 메뉴 계층 자동 복제                               │
│        MenuBootstrapService::cloneGlobalMenusForTenant() │
│        global_menus → menus (부모-자식 ID 재매핑)        │
│                                                          │
│  [4-4] 사용자 + 역할 + 권한 자동 설정                    │
│        User 생성 → Role('system_manager') 생성           │
│        → 메뉴별×5종(view/create/update/delete/approve)   │
│          권한 일괄 부여                                   │
│                                                          │
│  [4-5] 레시피 기반 부트스트래핑 (4단계)                   │
│        ┌──────────────────────────────────────┐          │
│        │ RecipeRegistry('STANDARD')            │          │
│        │                                      │          │
│        │ Step 1: CapabilityProfilesStep       │          │
│        │   → 완제품/서브어셈블리/구매부품/팬텀│          │
│        │   → 4속성 조합으로 품목 유형 정의     │          │
│        │                                      │          │
│        │ Step 2: CategoriesStep               │          │
│        │   → 기본 카테고리 자동 생성           │          │
│        │                                      │          │
│        │ Step 3: SettingsStep                 │          │
│        │   → 기본 시스템 설정 3종 자동 구성    │          │
│        │                                      │          │
│        │ Step 4: ApprovalFormsStep            │          │
│        │   → 5개 결재 양식 자동 생성           │          │
│        │   → JSON 필드 정의 (7종 입력 유형)    │          │
│        └──────────────────────────────────────┘          │
│                                                          │
│  모든 Step은 멱등성(idempotent) 보장                     │
│  — 재실행 시 데이터 중복 없이 안전                        │
│  — updateOrInsert 패턴으로 구현                           │
│                                                          │
│  실행 이력: tenant_bootstrap_runs 테이블                  │
│  → status(RUNNING/SUCCESS/FAILED)                        │
│  → steps[], log[] (JSON 진행 상태 기록)                  │
└───────────────────────────┬──────────────────────────────┘
                            │
                            ▼
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
단계 5: 테넌트별 동적 커스터마이징
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

┌──────────────────────────────────────────────────────────┐
│               동적 필드 + 수식 엔진 구성                  │
│                                                          │
│  [5-A] 동적 필드 3계층 자동 구성                         │
│        ┌─ item_pages (품목 유형별 페이지 생성)           │
│        │   └─ item_sections (섹션 분류)                  │
│        │       └─ item_fields (필드 정의)                │
│        │           ├─ field_type: 6종                    │
│        │           │  (textbox/number/dropdown/          │
│        │           │   checkbox/date/textarea)           │
│        │           ├─ validation_rules: JSON             │
│        │           │  {min, max, pattern}                │
│        │           ├─ display_condition: JSON            │
│        │           │  {field_id, operator, value}        │
│        │           │  → DB 수준 조건부 렌더링            │
│        │           └─ options: JSON (드롭다운 선택지)    │
│        │                                                 │
│        └─ 프론트엔드: API 메타데이터로 폼 자동 생성      │
│                                                          │
│  [5-B] 전역/테넌트 오버레이 설정                         │
│        SettingFieldDef (전역 필드 정의, 불변)             │
│        + TenantFieldSetting (테넌트별 재정의, 가변)      │
│        → buildEffectiveRow() 합성                        │
│        → is_core=true 필드는 설정 없어도 자동 활성       │
│                                                          │
│  [5-C] 수식 엔진 자동 라우팅 (Zero-Config)              │
│        FormulaHandlerFactory::make(tenantId)             │
│        → class_exists("Handlers/Tenant{id}/...")         │
│        → 파일 존재만으로 자동 발견 (DB/설정파일 불필요)  │
│        → 없으면 제네릭 DB 수식 기반 계산으로 폴백        │
│                                                          │
│  [5-D] 멀티테넌트 데이터 자동 격리                       │
│        BelongsToTenant trait → TenantScope               │
│        → 모든 Eloquent 쿼리에 WHERE tenant_id = ? 주입  │
│        → 267개 모델 전체 적용                            │
│        → 개발자 실수와 무관하게 아키텍처 수준 차단       │
└──────────────────────────────────────────────────────────┘

3. 필수 구성 요소 (Essential Elements) — 청구항 기초

변리사 요청: "자동화 프로세스에서 반드시 거쳐야 하는 단계를 특정"

3.1 생략 불가한 필수 단계

단계 필수 구성 요소 생략 시 결과 SAM 구현
1 복수 채널 로우데이터 수집 고객사 업무 파악 불가 InterviewScenario (5모델)
2 데이터 전처리 및 정규화 AI 분석 입력 불가 파일 파싱 + STT + 응답 정규화
3 AI 기반 업종·공정 패턴 도출 수동 분석 필요 (기존과 동일) LLM + 도메인 지식 베이스
4a 테넌트 코드 자동 생성 수동 코드 부여 필요 한글 초성 유니코드 알고리즘
4b 레시피 기반 단계별 초기화 수동 설정 필요 TenantBootstrapper (4 Steps)
5a 동적 필드 자동 구성 고정 스키마 한계 ItemMaster 3계층
5b 수식 엔진 자동 라우팅 테넌트별 코드 전면 수정 Zero-Config Factory Pattern
5c 행 수준 데이터 자동 격리 데이터 유출 위험 BelongsToTenant Global Scope

3.2 청구항 초안 (변리사 검토용)

독립항 1 (플랫폼 방법특허):

컴퓨터로 구현되는 멀티테넌트 ERP/MES 시스템의 고객사별 맞춤형 자동 구성 방법으로서,

(a) 복수의 채널을 통해 고객사의 업무 데이터를 비대면으로 수집하는 단계; (b) 수집된 데이터를 정규화하여 통합 분석 입력을 생성하는 단계; (c) AI 모델을 이용하여 상기 통합 분석 입력으로부터 업종, 규모 및 업무 프로세스 패턴을 도출하는 단계; (d) 도출된 패턴을 기반으로 테넌트 식별 코드를 자동 생성하고, 사전 정의된 레시피에 따라 시스템 구성 요소를 단계별로 자동 초기화하는 단계; (e) 초기화된 시스템의 데이터 필드, 메뉴 구조 및 권한을 고객사 특성에 맞게 동적으로 조정하되, 행 수준 데이터 격리를 자동 적용하는 단계;

를 포함하는 것을 특징으로 하는 방법.

종속항 후보:

# 종속 대상 한정 내용
2 항 1의 (a) 상기 복수의 채널은 파일 업로드, 체크리스트형 설문, 및 음성 인터뷰 녹음을 포함
3 항 1의 (a) 상기 설문은 마스터 질문 세트를 프로젝트별로 완전 복제하여 독립 운용
4 항 1의 (d) 상기 테넌트 코드는 한글 회사명의 유니코드 초성을 추출하여 영문 변환하고 36진수 순번을 결합
5 항 1의 (d) 상기 레시피는 복수의 단계(Step)를 순차 실행하되, 각 단계는 멱등성을 보장하며, 실행 이력을 데이터베이스에 기록
6 항 1의 (e) 상기 동적 필드는 3계층 구조(페이지-섹션-필드)로 정의되고, 조건부 표시 규칙을 JSON으로 저장
7 항 1의 (e) 상기 동적 조정은 전역 필드 정의와 테넌트별 설정을 오버레이 합성하여 수행
8 항 1의 (e) 상기 수식 엔진은 파일 시스템 기반 자동 발견으로 테넌트별 핸들러를 라우팅하되, 설정 파일 및 데이터베이스 매핑 없이 클래스 존재 여부만으로 판별

독립항 2 (역방향 AI 동적 설문):

컴퓨터로 구현되는 ERP/MES 도입을 위한 고객사 업무 분석 방법으로서,

(a) AI 모델이 고객사 담당자에게 업무 방식에 관한 질문을 제시하는 단계; (b) 담당자의 응답을 실시간으로 분석하여 후속 질문을 동적으로 생성하는 단계; (c) 수집된 응답의 전체 집합으로부터 업무 프로세스 모델을 자동 도출하는 단계; (d) 도출된 업무 프로세스 모델을 ERP/MES 모듈 구성 및 시스템 설정으로 자동 변환하는 단계;

를 포함하는 것을 특징으로 하는 방법.


4. SAM만의 독창적 처리 방식 — 선행기술 대비

4.1 선행기술과의 차별점

요소 젠소프트 "하이퍼 오토메이션" 이카운트 ERP SAM
업종 특화 BOM 수식 범용 없음 10단계 파이프라인
비대면 3채널 수집 파일+설문+음성
한글 초성 코드 생성 유니코드 알고리즘
레시피 기반 부트스트래핑 멱등성 보장 Step
동적 필드 3계층 △ 고정 스키마 △ 고정 필드 page→section→field
조건부 렌더링 (DB 수준) display_condition JSON
Zero-Config 핸들러 파일 존재만으로 발견
행 수준 자동 격리 △ DB 분리 단일 테넌트 Global Scope 267모델
전역/테넌트 오버레이 buildEffectiveRow()

4.2 기술적 진보성 근거

① 레시피 기반 멱등적 초기화 파이프라인

기존 SaaS 온보딩은 스크립트 1회 실행 방식으로, 실패 시 롤백/재시도가 어렵다. SAM은:

  • TenantBootstrapStep 인터페이스로 각 단계의 멱등성을 강제
  • updateOrInsert 패턴으로 재실행해도 데이터 중복 없음
  • tenant_bootstrap_runs 테이블로 실행 이력 추적 (RUNNING/SUCCESS/FAILED)
  • RecipeRegistry로 레시피(LITE/STANDARD)별 다른 단계 조합 선택

② 한글 유니코드 기반 테넌트 코드 자동 생성

외부 라이브러리 없이 유니코드 0xAC00~0xD7A3 범위의 한글 자모 분리를 직접 구현:

code = mb_ord(char)
index = floor((code - 0xAC00) / 588)  ← 19개 초성 인덱스
초성 → 영문 매핑 (ㄱ→G, ㄴ→N, ㄷ→D, ...)
+ 36진수 4자리 시퀀스 (0~9, A~Z)
→ 최대 1,679,616개(36^4) 테넌트 순환 지원

③ Zero-Config 테넌트 수식 핸들러 라우팅

class_exists("App\\Services\\Quote\\Handlers\\Tenant{$tenantId}\\FormulaHandler")

38줄의 Factory가 DB 조회, 설정 파일, 레지스트리 없이 파일 시스템만으로 테넌트별 계산 엔진을 자동 발견한다. 새 업체 추가 = PHP 파일 1개 생성.

④ 3계층 동적 필드 + DB 수준 조건부 렌더링

일반 SaaS의 커스텀 필드는 key-value 평면 구조이다. SAM은:

  • page → section → field 3계층 트리
  • display_condition JSON으로 다른 필드의 값에 따라 표시/숨김 결정
  • 이 조건이 DB에 저장되어 코드 배포 없이 변경 가능
  • 프론트엔드는 API 메타데이터로 폼을 동적 생성

5. 증빙 코드 및 문서 목록

증빙 경로 줄 수 역할
테넌트 부트스트래퍼 api/app/Services/TenantBootstrapper.php 56 파이프라인 오케스트레이터
레시피 레지스트리 api/app/Services/TenantBootstrap/RecipeRegistry.php 40 레시피→Step 매핑
회원가입 서비스 api/app/Services/RegisterService.php 154 12단계 온보딩 시퀀스
메뉴 복제 서비스 api/app/Services/MenuBootstrapService.php 291 글로벌→테넌트 계층 복제
테넌트 코드 생성 api/app/Helpers/TenantCodeGenerator.php 114 한글 초성 알고리즘
동적 필드 서비스 api/app/Services/TenantFieldSettingService.php 212 전역/테넌트 오버레이
수식 핸들러 팩토리 api/app/Services/Quote/FormulaHandlerFactory.php 38 Zero-Config 발견
인터뷰 서비스 mng/app/Services/Sales/InterviewScenarioService.php 732 설문 온보딩
AI 견적 엔진 설계 docs/plans/ai-quotation-engine-plan.md 929 2단계 AI 파이프라인
인터뷰 시스템 문서 docs/features/sales/interviews.md 282 설문 시스템

최종 업데이트: 2026-03-20