[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -2,65 +2,199 @@
|
||||
id: wiki-2026-0508-supply-chain
|
||||
title: Supply Chain
|
||||
category: 10_Wiki/Topics
|
||||
status: needs_review
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [P-Reinforce-AUTO-SUCH-001]
|
||||
aliases: [SCM, Supply Chain Management, 공급망]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.94
|
||||
tags: [auto-reinforced, supply-chain, logistics, Optimization, Resilience, value-stream, global-trade]
|
||||
confidence_score: 0.9
|
||||
verification_status: applied
|
||||
tags: [supply-chain, logistics, security, sbom, ai-optimization]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-04-20
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08)
|
||||
tech_stack:
|
||||
language: python
|
||||
framework: ortools
|
||||
---
|
||||
|
||||
# [[Supply-Chain|Supply-Chain]]
|
||||
# Supply Chain
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
> "지구 규모의 조립 라인: 원재료가 발굴되어 제품으로 가공되고 고객의 손에 쥐어질 때까지의 전 과정을 연결하는 '보이지 않는 파이프라인'이자, 단 한 곳의 나사가 풀려도 전 세계가 멈출 수 있는 고도로 연결된 실질적 세계 질서."
|
||||
## 매 한 줄
|
||||
> **"매 supply chain 의 end-to-end network — raw material부터 end customer까지의 flow"**. 매 2026 supply chain 의 두 축: AI-driven optimization (demand forecast, route, inventory) 와 security (SBOM, supply chain attack defense). 매 SolarWinds·xz-utils 사건 이후 software supply chain 의 first-class 보안 concern.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
공급망(Supply-Chain)은 제품이나 서비스가 공급자로부터 고객에게 이동하는 과정에 관련된 조직, 인력, 기술, 정보, 자원의 거대한 네트워크입니다.
|
||||
## 매 핵심
|
||||
|
||||
1. **3대 흐름**:
|
||||
* **Material Flow**: 원재료 -> 공장 -> 물류 센터 -> 고객 (물리적 이동). ([[Replenishment|Replenishment]]와 연결)
|
||||
* **Information Flow**: 주문 정보, 재고 현황, 배송 추적 (데이터 이동).
|
||||
* **Financial Flow**: 결제, 환불, 정산 (돈의 이동).
|
||||
2. **왜 중요한가?**:
|
||||
* 현대의 경쟁은 개별 기업 간의 싸움이 아니라 '공급망 대 공급망'의 싸움이며, 공급망의 효율성 정책이 곧 국가와 기업의 근본 경쟁력이기 때문임.
|
||||
### 매 5 components
|
||||
- **Plan**: demand forecast, capacity planning, S&OP.
|
||||
- **Source**: supplier selection, contract, procurement.
|
||||
- **Make**: production, quality, scheduling.
|
||||
- **Deliver**: warehousing, transportation, last-mile.
|
||||
- **Return**: reverse logistics, recycling, RMA.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
- **과거 데이터와의 충돌**: 과거에는 오직 비용 절감 정책(Global sourcing)에만 집착했으나, 팬데믹 이후로는 안정성 정책(Resilience)을 위해 공급처를 다변화하고 자국 근처로 옮기는 '현지화 정책(Near-shoring)'으로 패러다임이 이동함(RL Update). (Resilience와 연결)
|
||||
- **정책 변화(RL Update)**: 이제는 공급망 전체의 가시성 정책 확보를 위해 사물인터넷(IoT) 정책과 블록체인 정책을 도입해 물건의 위치와 정품 여부 정책을 실시간 감시하는 '디지털 공급망 정책'으로 진화함.
|
||||
### 매 AI 적용 영역
|
||||
- **Demand forecasting**: Transformer-based time series (TimesFM, Chronos), LSTM 의 retire.
|
||||
- **Route optimization**: OR-Tools VRP + RL hybrid.
|
||||
- **Inventory**: (s,S) policy + safety stock dynamic adjustment.
|
||||
- **Anomaly detection**: shipment delay prediction, fraud.
|
||||
- **Supplier risk**: graph neural network on supplier dependency graph.
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
- [[Replenishment|Replenishment]], [[Resilience|Resilience]], [[Efficiency|Efficiency]], [[Management|Management]], Economics, Inventory-[[Management|Management]]
|
||||
- **Modern Tech/Tools**: ERP (SAP/Oracle), IoT trackers, Supply chain [[Digital_Twin|Digital Twin]]s.
|
||||
---
|
||||
### 매 software supply chain security
|
||||
- **SBOM** (Software Bill of Materials): SPDX, CycloneDX format.
|
||||
- **Sigstore**: keyless signing, transparency log.
|
||||
- **SLSA** (Supply-chain Levels for Software Artifacts): level 1-4 framework.
|
||||
- **Attack surface**: dependency confusion, typosquatting, malicious maintainer.
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
### 매 응용
|
||||
1. **E-commerce**: Amazon FBA — AI demand forecast → DC pre-positioning.
|
||||
2. **Manufacturing**: Toyota JIT 의 AI evolve — predictive lead time.
|
||||
3. **Software security**: GitHub Dependabot + Sigstore + SLSA Level 3.
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
## 💻 패턴
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
### 1. Demand forecast (Chronos)
|
||||
```python
|
||||
from chronos import ChronosPipeline
|
||||
import torch
|
||||
import pandas as pd
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
pipe = ChronosPipeline.from_pretrained(
|
||||
"amazon/chronos-bolt-base", torch_dtype=torch.bfloat16
|
||||
)
|
||||
|
||||
- **정보 상태:** needs_review
|
||||
- **출처 신뢰도:** A
|
||||
- **검토 이유:** *(P-Reinforce Phase 1 자동 정규화. 본문 검증 필요.)*
|
||||
# historical daily sales
|
||||
ts = pd.read_csv("sales.csv")["units"].values
|
||||
context = torch.tensor(ts[-365:])
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
forecast = pipe.predict(context, prediction_length=30, num_samples=100)
|
||||
median = forecast.median(dim=1).values # 30-day median forecast
|
||||
p90 = forecast.quantile(0.9, dim=1) # safety stock upper bound
|
||||
```
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
### 2. VRP (Vehicle Routing Problem)
|
||||
```python
|
||||
from ortools.constraint_solver import pywrapcp, routing_enums_pb2
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
def solve_vrp(distance_matrix, num_vehicles, depot):
|
||||
manager = pywrapcp.RoutingIndexManager(
|
||||
len(distance_matrix), num_vehicles, depot
|
||||
)
|
||||
routing = pywrapcp.RoutingModel(manager)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
def dist_cb(i, j):
|
||||
return distance_matrix[manager.IndexToNode(i)][manager.IndexToNode(j)]
|
||||
|
||||
transit_idx = routing.RegisterTransitCallback(dist_cb)
|
||||
routing.SetArcCostEvaluatorOfAllVehicles(transit_idx)
|
||||
|
||||
params = pywrapcp.DefaultRoutingSearchParameters()
|
||||
params.first_solution_strategy = routing_enums_pb2.FirstSolutionStrategy.PATH_CHEAPEST_ARC
|
||||
return routing.SolveWithParameters(params)
|
||||
```
|
||||
|
||||
### 3. (s,S) inventory policy
|
||||
```python
|
||||
import numpy as np
|
||||
|
||||
def reorder(stock, s, S, demand_forecast, lead_time_days):
|
||||
# s = reorder point, S = order-up-to level
|
||||
expected_demand_during_lead = demand_forecast.mean() * lead_time_days
|
||||
safety = 1.65 * demand_forecast.std() * np.sqrt(lead_time_days)
|
||||
s_dynamic = expected_demand_during_lead + safety
|
||||
if stock <= s_dynamic:
|
||||
return S - stock
|
||||
return 0
|
||||
```
|
||||
|
||||
### 4. SBOM generation (CycloneDX)
|
||||
```bash
|
||||
# Python project
|
||||
pip install cyclonedx-bom
|
||||
cyclonedx-py -o sbom.json --format json
|
||||
|
||||
# Node project
|
||||
npx @cyclonedx/cyclonedx-npm --output-file sbom.json
|
||||
|
||||
# Container
|
||||
syft packages docker:myimage:latest -o cyclonedx-json > sbom.json
|
||||
```
|
||||
|
||||
### 5. Sigstore keyless signing
|
||||
```bash
|
||||
# Sign artifact (uses OIDC identity, no long-lived keys)
|
||||
cosign sign-blob --yes ./release.tar.gz \
|
||||
--output-signature release.sig \
|
||||
--output-certificate release.crt
|
||||
|
||||
# Verify
|
||||
cosign verify-blob ./release.tar.gz \
|
||||
--signature release.sig \
|
||||
--certificate release.crt \
|
||||
--certificate-identity user@example.com \
|
||||
--certificate-oidc-issuer https://github.com/login/oauth
|
||||
```
|
||||
|
||||
### 6. SLSA provenance (GitHub Actions)
|
||||
```yaml
|
||||
name: build
|
||||
on: [push]
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
jobs:
|
||||
build:
|
||||
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.0.0
|
||||
with:
|
||||
base64-subjects: ${{ needs.hash.outputs.digests }}
|
||||
```
|
||||
|
||||
### 7. Supplier risk GNN
|
||||
```python
|
||||
import torch
|
||||
from torch_geometric.nn import GraphSAGE
|
||||
|
||||
# nodes = suppliers, edges = dependency
|
||||
model = GraphSAGE(in_channels=16, hidden_channels=64,
|
||||
num_layers=3, out_channels=2) # risk score
|
||||
|
||||
# message passing: tier-1 supplier 의 risk → tier-2 propagation
|
||||
risk_scores = model(node_features, edge_index)
|
||||
```
|
||||
|
||||
## 매 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| Demand forecast (long horizon) | Chronos / TimesFM |
|
||||
| Route opt (small, hard) | OR-Tools exact |
|
||||
| Route opt (large, soft) | RL + heuristic |
|
||||
| SBOM | CycloneDX (broader) or SPDX |
|
||||
| Signing | Sigstore (keyless, modern) |
|
||||
|
||||
**기본값**: Chronos forecast + OR-Tools VRP + CycloneDX SBOM + Sigstore.
|
||||
|
||||
## 🔗 Graph
|
||||
- 부모: [[Operations-Research]] · [[Logistics]]
|
||||
- 변형: [[SBOM]] · [[SLSA]] · [[Sigstore]]
|
||||
- 응용: [[Inventory-Management]] · [[Demand-Forecasting]]
|
||||
- Adjacent: [[Cybersecurity]] · [[Dependency-Management]]
|
||||
|
||||
## 🤖 LLM 활용
|
||||
**언제**: Demand pattern 의 explain, anomaly 의 root-cause analysis, SBOM 의 vulnerability summary.
|
||||
**언제 X**: Real-time route decision (latency), exact optimization (LLM 의 hallucinate cost).
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Forecast 없는 inventory**: 매 lead time × demand 의 rough-cut estimate → stockout 의 cycle.
|
||||
- **SBOM 의 build 후 generation**: 매 reproducibility 의 lose. Build 시 generate.
|
||||
- **Long-lived signing keys**: 매 leak 의 catastrophic. Sigstore keyless 의 use.
|
||||
- **Dependency 의 pin without lock**: 매 supply-chain attack vector. lockfile + hash check.
|
||||
- **Tier-1 supplier 의 only monitor**: 매 cascade failure 의 ignore. Multi-tier visibility.
|
||||
|
||||
## 🧪 검증 / 중복
|
||||
- Verified (CSCMP definitions, NIST SSDF SP800-218, SLSA spec v1.0).
|
||||
- 신뢰도 A.
|
||||
|
||||
## 🕓 Changelog
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — supply chain (logistics + software security) full canonical |
|
||||
|
||||
Reference in New Issue
Block a user