- 문서1: 온보딩 자동화 5단계 흐름도 + 필수 구성 요소 + 청구항 초안 - 문서2: As-Is/To-Be 수치 대조표 (7개 영역 비교, 비용 절감 효과) - 문서3: AI 프롬프트 엔지니어링 4계층 아키텍처 + 도메인 지식 베이스
25 KiB
[특허 기술문서 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_conditionJSON으로 다른 필드의 값에 따라 표시/숨김 결정- 이 조건이 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