14 KiB
14 KiB
SAM ERP API 개발 작업 계획
작성일: 2025-12-17 기준 문서: SAM_ERP_Storyboard_D0.8_251216 상태: 🟢 Phase 1 진행 중 (휴가 관리 완료)
📚 참고 문서
핵심 참고 문서
| 문서 | 경로 | 용도 |
|---|---|---|
| ERP API 명세서 | docs/specs/erp-analysis/99-gap-analysis.md |
전체 개발 범위, 테이블 스키마, API 엔드포인트 |
| 스토리보드 원본 | docs/plans/SAM_ERP_Storyboard_D0.8_251216/ |
UI/UX 참조, 화면 설계 |
기능별 분석 문서
| 문서 | 경로 | 내용 |
|---|---|---|
| 개요 | docs/specs/erp-analysis/00-overview.md |
메뉴 구조, 슬라이드 매핑 |
| 공통 UI | docs/specs/erp-analysis/01-common.md |
UI 컴포넌트, 알림, 셀렉트박스 |
| 인증/영업 | docs/specs/erp-analysis/02-auth.md |
로그인, 회원가입, 테넌트 |
| GPS 출퇴근 | docs/specs/erp-analysis/03-gps-attendance.md |
모바일 출퇴근, 현장 관리 |
| 인사관리 | docs/specs/erp-analysis/04-hr-management.md |
부서/사원/근태/휴가 |
| 전자결재 | docs/specs/erp-analysis/05-approval.md |
기안/결재/참조함 |
| 회계관리 | docs/specs/erp-analysis/06-accounting.md |
거래처/매출/매입/입출금 |
| 기준정보 | docs/specs/erp-analysis/07-master-data.md |
직급/직책/설정/카드/계좌 |
| 보고서 | docs/specs/erp-analysis/08-reports.md |
일일일보/AI리포트 |
개발 표준 문서
| 문서 | 경로 | 용도 |
|---|---|---|
| API 개발 규칙 | docs/standards/api-rules.md |
Service-First, FormRequest, i18n |
| DB 스키마 | docs/specs/database-schema.md |
테이블 구조, 관계 |
| 시스템 아키텍처 | docs/architecture/system-overview.md |
전체 아키텍처 |
| 보안 정책 | docs/architecture/security-policy.md |
인증/인가, 보안 |
| Swagger 가이드 | docs/guides/swagger-guide.md |
API 문서 작성법 |
| 품질 체크리스트 | docs/standards/quality-checklist.md |
코드 품질 검증 |
기존 코드 참조
| 항목 | 경로 | 용도 |
|---|---|---|
| API 라우트 | api/routes/api.php |
기존 엔드포인트 확인 |
| 컨트롤러 | api/app/Http/Controllers/Api/V1/ |
기존 패턴 참조 |
| 서비스 | api/app/Services/ |
비즈니스 로직 패턴 |
| 모델 | api/app/Models/ |
Eloquent 모델 패턴 |
| Swagger | api/app/Swagger/v1/ |
API 문서 패턴 |
📊 개발 범위 요약
| 구분 | 항목수 | 작업 | 상태 |
|---|---|---|---|
| 기존 API 활용 | 12개 | 프론트엔드 연동만 | ⬜ 대기 |
| 확장 개발 | 6개 | 기존 구조 활용, API 추가 | 🟢 1/6 완료 |
| 신규 개발 | 8개 | 테이블 + API 신규 생성 | ⬜ 대기 |
🚀 Phase 1: 확장 개발 (예상 1-2주)
2.1 휴가 관리 ✅
참조: 99-gap-analysis.md#21-휴가-관리 완료일: 2025-12-17 | 커밋:
e81e5d7
-
테이블 생성
leaves마이그레이션 생성leave_balances마이그레이션 생성- 마이그레이션 실행 및 검증
-
모델 생성
Leave모델 (BelongsToTenant, SoftDeletes)LeaveBalance모델
-
서비스 구현
LeaveService생성- 휴가 신청/승인/반려 로직
- 잔여휴가 계산 로직
-
API 엔드포인트 (11개)
GET /v1/leaves- 목록POST /v1/leaves- 신청GET /v1/leaves/{id}- 상세PATCH /v1/leaves/{id}- 수정DELETE /v1/leaves/{id}- 삭제POST /v1/leaves/{id}/approve- 승인POST /v1/leaves/{id}/reject- 반려POST /v1/leaves/{id}/cancel- 취소GET /v1/leaves/balance- 내 잔여휴가GET /v1/leaves/balance/{userId}- 특정 사용자 잔여휴가PUT /v1/leaves/balance- 잔여휴가 설정
-
Swagger 문서
LeaveApi.php작성- 스키마 정의 (Leave, LeaveBalance, Request/Response)
-
테스트
- Feature 테스트 작성
- 수동 API 테스트
2.2 근무/출퇴근 설정
-
테이블 생성
work_settings마이그레이션attendance_settings마이그레이션sites(현장) 마이그레이션
-
모델 생성
WorkSetting모델AttendanceSetting모델Site모델
-
서비스 구현
WorkSettingService생성SiteService생성
-
API 엔드포인트
GET/PUT /v1/settings/work- 근무 설정GET/PUT /v1/settings/attendance- 출퇴근 설정GET/POST/PUT/DELETE /v1/sites- 현장 CRUD
-
Swagger 문서
WorkSettingApi.php작성SiteApi.php작성
2.3 카드/계좌 관리
-
테이블 생성
cards마이그레이션 (카드번호 암호화)bank_accounts마이그레이션
-
모델 생성
Card모델 (암호화 처리)BankAccount모델
-
서비스 구현
CardService생성BankAccountService생성- 암호화/복호화 유틸리티
-
API 엔드포인트
GET/POST/PUT/DELETE /v1/cards- 카드 CRUDPATCH /v1/cards/{id}/toggle- 사용/정지GET/POST/PUT/DELETE /v1/bank-accounts- 계좌 CRUDPATCH /v1/bank-accounts/{id}/toggle- 사용/정지PATCH /v1/bank-accounts/{id}/set-primary- 대표계좌
-
Swagger 문서
CardApi.php작성BankAccountApi.php작성
2.4 입금/출금 관리
-
테이블 생성
deposits마이그레이션withdrawals마이그레이션
-
모델 생성
Deposit모델Withdrawal모델
-
서비스 구현
DepositService생성WithdrawalService생성- 요약 계산 로직
-
API 엔드포인트
GET/POST/PUT/DELETE /v1/deposits- 입금 CRUDGET /v1/deposits/summary- 입금 요약GET/POST/PUT/DELETE /v1/withdrawals- 출금 CRUDGET /v1/withdrawals/summary- 출금 요약
-
Swagger 문서
DepositApi.php작성WithdrawalApi.php작성
2.5 매출/매입 관리
-
테이블 생성
sales마이그레이션purchases마이그레이션
-
모델 생성
Sale모델Purchase모델
-
서비스 구현
SaleService생성PurchaseService생성- 세금계산서 발행 연동 준비
-
API 엔드포인트
GET/POST/PUT/DELETE /v1/sales- 매출 CRUDPOST /v1/sales/{id}/confirm- 매출 확정POST /v1/sales/{id}/tax-invoice- 세금계산서 발행GET/POST/PUT/DELETE /v1/purchases- 매입 CRUDPOST /v1/purchases/{id}/confirm- 매입 확정
-
Swagger 문서
SaleApi.php작성PurchaseApi.php작성
2.6 보고서
-
서비스 구현
ReportService생성- 일일 일보 집계 로직
- 지출 예상 내역 계산 로직
- Excel 다운로드 (Laravel Excel)
-
API 엔드포인트
GET /v1/reports/daily- 일일 일보GET /v1/reports/daily/export- 엑셀 다운로드GET /v1/reports/expense-estimate- 지출 예상 내역서GET /v1/reports/expense-estimate/export- 엑셀 다운로드
-
Swagger 문서
ReportApi.php작성
🔨 Phase 2: 핵심 신규 개발 (예상 2-4주)
3.1 전자결재 모듈 ⭐
-
테이블 생성
approval_forms마이그레이션approval_lines마이그레이션approvals마이그레이션approval_steps마이그레이션
-
모델 생성
ApprovalForm모델ApprovalLine모델Approval모델ApprovalStep모델
-
서비스 구현
ApprovalService생성- 결재선 로직
- 상태 전이 로직 (draft→pending→approved/rejected)
- 알림 연동
-
API 엔드포인트
- 결재 문서 API (drafts, inbox, completed, reference)
- 결재선 템플릿 API
- 결재 양식 API
-
Swagger 문서
ApprovalApi.php작성
3.2 급여 관리
-
테이블 생성
payrolls마이그레이션
-
모델 생성
Payroll모델
-
서비스 구현
PayrollService생성- 급여 계산 로직 (4대보험, 세금)
- 급여명세서 PDF 생성
-
API 엔드포인트
- 급여 CRUD API
POST /v1/payrolls/calculate- 급여 일괄 계산GET /v1/payrolls/{id}/payslip/pdf- 급여명세서 PDF
-
Swagger 문서
PayrollApi.php작성
3.3 대시보드
-
서비스 구현
DashboardService생성- 통계 집계 로직
- 차트 데이터 생성
-
API 엔드포인트
GET /v1/dashboard/summary- 요약 데이터GET /v1/dashboard/charts- 차트 데이터GET /v1/dashboard/notifications- 알림GET /v1/dashboard/approvals- 결재 현황
-
Swagger 문서
DashboardApi.php작성
🔧 Phase 3: 추가 기능 (예상 4-6주)
3.4 AI 리포트
- 테이블 생성 (
ai_reports) - 서비스 구현 (AI 연동 로직)
- API 구현
- Swagger 문서
3.5 가지급금 관리
- 테이블 생성 (
loans) - 서비스 구현 (인정이자 계산)
- API 구현
- Swagger 문서
3.8 바로빌 연동
- 테이블 생성 (
tax_invoices) - 외부 API 연동 서비스
- API 구현
- Swagger 문서
💼 Phase 4: SaaS 기능 (별도 일정)
3.6 구독/결제 관리
- 테이블 생성 (
subscriptions,payments) - PG 연동 서비스
- API 구현
- Swagger 문서
3.7 고객센터
- 테이블 생성 (
support_tickets,faqs) - 서비스 구현
- API 구현
- Swagger 문서
📋 기획 확인 필요 항목
⚠️ API 구현 전 비즈니스 로직 확정 필요
상태 전이 조건
- 테넌트: 신청→승인→만료→해지 전이 조건
- 사원: 휴직→복직/퇴사 전이 조건
- 결재: 반려 후 재기안 프로세스
- 미수금: 연체 판정 기준일 (기본 30일)
- 악성채권: 판정 조건 (기본 90일 + 수동)
모듈 간 연동
- 전자결재→회계: 지출결의서 승인 시 출금 자동 생성?
- 휴가신청→결재: 휴가가 결재 문서로 생성되는지?
- 휴가승인→근태: 승인 휴가 근태 자동 반영 (기본 O)
- GPS출퇴근→근태: GPS 기록 근태 자동 반영 (기본 O)
- 급여→출금: 급여 확정 시 출금 자동 생성?
외부 연동
- 바로빌 API 비용 확인
- 연동 은행 범위 확인
- 연동 실패 처리 정책
📝 작업 일지
2025-12-17
- ERP 스토리보드 분석 문서 작성 완료 (00~08)
- Gap Analysis 문서 작성 완료 (99-gap-analysis.md)
- 개발 작업 계획 수립 (이 문서)
- 휴가 관리 API 구현 완료 (커밋:
e81e5d7)- 마이그레이션 2개 (
leaves,leave_balances) - 모델 2개 (
Leave,LeaveBalance) - 서비스 1개 (
LeaveService) - 컨트롤러 1개, FormRequest 5개
- API 엔드포인트 11개
- Swagger 문서 (
LeaveApi.php) - i18n 메시지 키 추가
- 마이그레이션 2개 (
YYYY-MM-DD
- (작업 내용 기록)
✅ 완료 기준
Phase 1 완료 조건
- 모든 확장 개발 API 구현 완료
- Swagger 문서 100% 완성
- API 테스트 통과
- Pint 코드 포맷팅 완료
Phase 2 완료 조건
- 전자결재 모듈 완전 동작
- 급여 관리 완전 동작
- 대시보드 데이터 정상 조회
전체 완료 조건
- 모든 API 구현 완료
- Swagger 문서 100%
- 통합 테스트 통과
- 프론트엔드 연동 준비 완료
🔗 관련 링크
- API Swagger UI: http://sam.kr/api-docs/index.html
- 기존 API 라우트:
api/routes/api.php - ERP 스토리보드 원본:
docs/plans/SAM_ERP_Storyboard_D0.8_251216/