SAM 시스템 개요
최종 갱신: 2026-02-27
상태: Phase 1-B 작성
1. 프로젝트 개요
SAM (Smart Automation Management) — 블라인드/스크린 제조업체용 ERP/MES 통합 시스템
| 항목 |
내용 |
| 서비스명 |
SAM |
| 회사명 |
(주)코드브릿지엑스 |
| 아키텍처 |
Multi-tenant (tenant_id 기반 데이터 격리) |
| DB |
MySQL 8.0 (단일 DB samdb, 통계 sam_stat) |
| 레거시 |
5130.co.kr (PHP 7.3) → SAM으로 마이그레이션 중 |
2. 어플리케이션 구조
앱별 역할
| 앱 |
역할 |
기술 스택 |
Git 저장소 |
| api |
REST API 서버, DB 마이그레이션 관리 |
Laravel 12, PHP 8.4, Sanctum, Swagger |
독립 |
| mng |
관리자 패널 (admin.sam.kr 포함) |
Laravel 12, PHP 8.4, HTMX, DaisyUI, Vite 7 |
독립 |
| react |
사용자 프론트엔드 |
Next.js 15, React 19, Tailwind v4, Zustand |
독립 |
| design |
디자인 시스템/컴포넌트 |
Vite |
독립 |
앱 간 관계
- api: DB 마이그레이션 유일 관리자. 모든 테이블 정의는 api에서만.
- mng: 자체 모델 보유 (185개), DB 마이그레이션 없음. api와 동일 DB 사용.
- react: Server Actions로 api 호출. DB 직접 접근 없음.
3. 기술 스택 상세
api/ (REST API)
| 항목 |
상세 |
| Framework |
Laravel 12 |
| PHP |
8.4+ |
| 인증 |
Sanctum (Access 120분, Refresh 7일) |
| 권한 |
Spatie Permission (RBAC) |
| API 문서 |
L5-Swagger (OpenAPI) |
| 큐 |
Database Driver |
| 캐시 |
Database Driver |
| 규모 |
모델 205, 서비스 179, 컨트롤러 131, FormRequest 271 |
| 마이그레이션 |
458개 (메인 437 + 통계 21) |
| API 도메인 |
18개 라우트 파일, ~876 엔드포인트 |
react/ (프론트엔드)
| 항목 |
상세 |
| Framework |
Next.js 15 (App Router, Turbopack) |
| React |
19 |
| 스타일 |
Tailwind CSS v4 |
| UI |
shadcn/ui (Radix 기반) 55개 컴포넌트 |
| 상태관리 |
Zustand 5 (13 stores) |
| 폼 |
React Hook Form + Zod |
| i18n |
next-intl (ko, en, ja) |
| 차트 |
Recharts |
| PDF |
jspdf + Puppeteer |
| 규모 |
페이지 249, 컴포넌트 612, Server Actions 91 |
mng/ (관리자 패널)
| 항목 |
상세 |
| Framework |
Laravel 12 (Blade + HTMX) |
| PHP |
8.4+ |
| 프론트 |
HTMX 2 + DaisyUI 5 + Tailwind 3 |
| 빌드 |
Vite 7 |
| PDF |
TCPDF + FPDI |
| Excel |
PhpSpreadsheet |
| 규모 |
컨트롤러 171, 블레이드 436, 모델 185, 서비스 98 |
4. 핵심 아키텍처 패턴
Multi-tenancy
- 모든 테넌트 데이터는
tenant_id로 격리
BelongsToTenant 트레이트/스코프 필수
- 글로벌 테이블 (users, plans 등)은 예외
Service-First
- 비즈니스 로직은 반드시 Service 클래스에
- Controller는 라우팅 + FormRequest 검증만 담당
ApiResponse::handle() 통일 응답 포맷
API 인증
- 글로벌: API Key (모든 요청)
- 사용자: Sanctum Bearer Token
- 내부: HMAC (mng ↔ api 내부 통신)
FormRequest
- Controller에서 직접 검증 금지
- 모든 입력 검증은 FormRequest 클래스에서
5. 환경 구성
| 환경 |
도메인 |
위치 |
비고 |
| 로컬 |
*.sam.kr |
Docker (macOS) |
개발용 |
| 개발 |
codebridge-x.com |
114.203.209.83 |
react만 |
| 스테이지+운영 |
TBD |
211.117.60.189 |
api, mng, react |
로컬 도메인
| 도메인 |
서비스 |
포트 |
dev.sam.kr |
react (Next.js) |
3000 |
api.sam.kr |
api (Laravel) |
9000 (FastCGI) |
mng.sam.kr |
mng (Laravel) |
9000 (FastCGI) |
admin.sam.kr |
mng (동일) |
9000 (FastCGI) |
design.sam.kr |
design (Vite) |
3002 |
5130.sam.kr |
5130 (레거시) |
9000 (FastCGI) |
관련 문서