Files
sam-docs/dev/dev_plans/erp-api-development-plan.md
권혁성 db63fcff85 refactor: [docs] 팀별 폴더 구조 재편 (공유/개발/프론트/기획)
- 개발팀 전용 폴더 dev/ 생성 (standards, guides, quickstart, changes, deploys, data, history, dev_plans 이동)
- 프론트엔드 전용 폴더 frontend/ 생성 (api/ → frontend/api-specs/)
- 기획팀 폴더 requests/ 생성
- plans/ → dev/dev_plans/ 이름 변경
- README.md 신규 (사람용 안내), INDEX.md 재작성 (Claude Code용)
- resources.md 신규 (노션 링크용, assets/brochure 이관 예정)
- CURRENT_WORKS.md 삭제, TODO.md → dev/ 이동
- 전체 참조 경로 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:46:03 +09:00

30 KiB

SAM ERP API 개발 작업 계획

작성일: 2025-12-17 기준 문서: SAM_ERP_Storyboard_D0.8_251216 상태: Phase 1 완료 | Phase 2 완료 | Phase 3 완료 | Phase L 완료 (직급/직책) | 🟡 L-2 권한관리 React 연동 대기


📚 참고 문서

핵심 참고 문서

문서 경로 용도
ERP API 명세서 docs/specs/erp-analysis/99-gap-analysis.md 전체 개발 범위, 테이블 스키마, API 엔드포인트
스토리보드 원본 docs/dev_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 추가 🟢 2/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 근무/출퇴근 설정

참조: 99-gap-analysis.md#22-근무출퇴근-설정 완료일: 2025-12-17 | 커밋: ca5618b

  • 테이블 생성

    • work_settings 마이그레이션
    • attendance_settings 마이그레이션
    • sites (현장) 마이그레이션
    • 마이그레이션 실행 및 검증
  • 모델 생성

    • WorkSetting 모델 (BelongsToTenant)
    • AttendanceSetting 모델 (BelongsToTenant, GPS 거리 계산)
    • Site 모델 (BelongsToTenant, SoftDeletes)
  • 서비스 구현

    • WorkSettingService 생성 (자동 기본값 생성)
    • SiteService 생성 (페이지네이션, 검색, 활성 목록)
  • API 엔드포인트 (10개)

    • GET /v1/settings/work - 근무 설정 조회
    • PUT /v1/settings/work - 근무 설정 수정
    • GET /v1/settings/attendance - 출퇴근 설정 조회
    • PUT /v1/settings/attendance - 출퇴근 설정 수정
    • GET /v1/sites - 현장 목록
    • POST /v1/sites - 현장 등록
    • GET /v1/sites/active - 활성 현장 목록 (셀렉트박스용)
    • GET /v1/sites/{id} - 현장 상세
    • PUT /v1/sites/{id} - 현장 수정
    • DELETE /v1/sites/{id} - 현장 삭제
  • Swagger 문서

    • WorkSettingApi.php 작성
    • SiteApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

2.3 카드/계좌 관리

참조: 99-gap-analysis.md#23-카드계좌-관리 완료일: 2025-12-17 | 커밋: e1b0c99

  • 테이블 생성

    • cards 마이그레이션 (카드번호 암호화)
    • bank_accounts 마이그레이션
  • 모델 생성

    • Card 모델 (암호화 처리, Laravel Crypt)
    • BankAccount 모델 (대표계좌 자동 설정)
  • 서비스 구현

    • CardService 생성
    • BankAccountService 생성
    • 암호화/복호화 (Crypt::encryptString/decryptString)
  • API 엔드포인트 (15개)

    • GET /v1/cards - 카드 목록
    • POST /v1/cards - 카드 등록
    • GET /v1/cards/active - 활성 카드 목록 (셀렉트박스용)
    • GET /v1/cards/{id} - 카드 상세
    • PUT /v1/cards/{id} - 카드 수정
    • DELETE /v1/cards/{id} - 카드 삭제
    • PATCH /v1/cards/{id}/toggle - 사용/정지
    • GET /v1/bank-accounts - 계좌 목록
    • POST /v1/bank-accounts - 계좌 등록
    • GET /v1/bank-accounts/active - 활성 계좌 목록 (셀렉트박스용)
    • GET /v1/bank-accounts/{id} - 계좌 상세
    • PUT /v1/bank-accounts/{id} - 계좌 수정
    • DELETE /v1/bank-accounts/{id} - 계좌 삭제
    • PATCH /v1/bank-accounts/{id}/toggle - 사용/정지
    • PATCH /v1/bank-accounts/{id}/set-primary - 대표계좌
  • Swagger 문서

    • CardApi.php 작성
    • BankAccountApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

2.4 입금/출금 관리

참조: 99-gap-analysis.md#24-입금출금-관리 완료일: 2025-12-17 | 커밋: 17799c4

  • 테이블 생성

    • deposits 마이그레이션
    • withdrawals 마이그레이션
  • 모델 생성

    • Deposit 모델 (BelongsToTenant, SoftDeletes)
    • Withdrawal 모델 (BelongsToTenant, SoftDeletes)
  • 서비스 구현

    • DepositService 생성
    • WithdrawalService 생성
    • 요약 계산 로직 (payment_method별 집계)
  • API 엔드포인트 (12개)

    • GET /v1/deposits - 입금 목록
    • POST /v1/deposits - 입금 등록
    • GET /v1/deposits/summary - 입금 요약
    • GET /v1/deposits/{id} - 입금 상세
    • PUT /v1/deposits/{id} - 입금 수정
    • DELETE /v1/deposits/{id} - 입금 삭제
    • GET /v1/withdrawals - 출금 목록
    • POST /v1/withdrawals - 출금 등록
    • GET /v1/withdrawals/summary - 출금 요약
    • GET /v1/withdrawals/{id} - 출금 상세
    • PUT /v1/withdrawals/{id} - 출금 수정
    • DELETE /v1/withdrawals/{id} - 출금 삭제
  • Swagger 문서

    • DepositApi.php 작성
    • WithdrawalApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

2.5 매출/매입 관리

참조: 99-gap-analysis.md#25-매출매입-관리 완료일: 2025-12-17

  • 테이블 생성

    • sales 마이그레이션
    • purchases 마이그레이션
  • 모델 생성

    • Sale 모델 (BelongsToTenant, SoftDeletes)
    • Purchase 모델 (BelongsToTenant, SoftDeletes)
  • 서비스 구현

    • SaleService 생성 (CRUD, confirm, summary)
    • PurchaseService 생성 (CRUD, confirm, summary)
    • 세금계산서 발행 연동 (추후 개발)
  • API 엔드포인트 (14개)

    • GET /v1/sales - 매출 목록
    • POST /v1/sales - 매출 등록
    • GET /v1/sales/{id} - 매출 상세
    • PUT /v1/sales/{id} - 매출 수정
    • DELETE /v1/sales/{id} - 매출 삭제
    • POST /v1/sales/{id}/confirm - 매출 확정
    • GET /v1/sales/summary - 매출 요약
    • GET /v1/purchases - 매입 목록
    • POST /v1/purchases - 매입 등록
    • GET /v1/purchases/{id} - 매입 상세
    • PUT /v1/purchases/{id} - 매입 수정
    • DELETE /v1/purchases/{id} - 매입 삭제
    • POST /v1/purchases/{id}/confirm - 매입 확정
    • GET /v1/purchases/summary - 매입 요약
  • Swagger 문서

    • SaleApi.php 작성
    • PurchaseApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

2.6 보고서

참조: 99-gap-analysis.md#26-보고서 완료일: 2025-12-17 | 커밋: 77914da

  • 서비스 구현

    • ReportService 생성
    • 일일 일보 집계 로직 (전일잔액, 당일입출금, 상세내역)
    • 지출 예상 내역 계산 로직 (월별 집계, 예상잔액)
    • Excel 다운로드 (Laravel Excel - DailyReportExport, ExpenseEstimateExport)
  • API 엔드포인트

    • GET /v1/reports/daily - 일일 일보
    • GET /v1/reports/daily/export - 엑셀 다운로드
    • GET /v1/reports/expense-estimate - 지출 예상 내역서
    • GET /v1/reports/expense-estimate/export - 엑셀 다운로드
  • Swagger 문서

    • ReportApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

🔨 Phase 2: 핵심 신규 개발 (예상 2-4주)

3.1 전자결재 모듈

참조: 99-gap-analysis.md#31-전자결재-모듈 완료일: 2025-12-17 | 커밋: b43796a

  • 테이블 생성

    • approval_forms 마이그레이션
    • approval_lines 마이그레이션
    • approvals 마이그레이션
    • approval_steps 마이그레이션
  • 모델 생성

    • ApprovalForm 모델 (BelongsToTenant, SoftDeletes)
    • ApprovalLine 모델 (BelongsToTenant, SoftDeletes)
    • Approval 모델 (상태: draft→pending→approved/rejected/cancelled)
    • ApprovalStep 모델 (유형: approval, agreement, reference)
  • 서비스 구현

    • ApprovalService 생성
    • 결재선 로직
    • 상태 전이 로직 (draft→pending→approved/rejected)
    • 알림 연동 (추후 개발)
  • API 엔드포인트 (26개)

    • 결재 양식 API (6개: CRUD + active)
    • 결재선 템플릿 API (5개: CRUD)
    • 결재 문서 API (15개: drafts, inbox, reference, CRUD, 액션)
  • Swagger 문서

    • ApprovalFormApi.php 작성
    • ApprovalLineApi.php 작성
    • ApprovalApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

3.2 급여 관리

참조: 99-gap-analysis.md#32-급여-관리 완료일: 2025-12-18

  • 테이블 생성

    • payrolls 마이그레이션
    • payroll_settings 마이그레이션
  • 모델 생성

    • Payroll 모델 (상태: draft→confirmed→paid, BelongsToTenant, SoftDeletes)
    • PayrollSetting 모델 (4대보험 요율, 수당/공제 유형)
  • 서비스 구현

    • PayrollService 생성
    • 급여 계산 로직 (4대보험: 건강보험, 장기요양, 국민연금, 고용보험)
    • 소득세/주민세 계산 로직
    • 급여명세서 데이터 (payslip)
    • 급여명세서 PDF 생성 (추후 개발)
  • API 엔드포인트 (13개)

    • GET /v1/payrolls - 급여 목록
    • POST /v1/payrolls - 급여 등록
    • GET /v1/payrolls/summary - 급여 현황 요약
    • POST /v1/payrolls/calculate - 급여 일괄 계산
    • POST /v1/payrolls/bulk-confirm - 급여 일괄 확정
    • GET /v1/payrolls/{id} - 급여 상세
    • PUT /v1/payrolls/{id} - 급여 수정
    • DELETE /v1/payrolls/{id} - 급여 삭제
    • POST /v1/payrolls/{id}/confirm - 급여 확정
    • POST /v1/payrolls/{id}/pay - 급여 지급 처리
    • GET /v1/payrolls/{id}/payslip - 급여명세서 조회
    • GET /v1/settings/payroll - 급여 설정 조회
    • PUT /v1/settings/payroll - 급여 설정 수정
  • Swagger 문서

    • PayrollApi.php 작성 (스키마 10개, 엔드포인트 13개)
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

3.3 대시보드

참조: 99-gap-analysis.md#33-대시보드 완료일: 2025-12-18

  • 서비스 구현

    • DashboardService 생성
    • 통계 집계 로직 (오늘 현황, 재무, 매출/매입, 할 일)
    • 차트 데이터 생성 (입금/출금 추이, 거래처별 매출)
  • API 엔드포인트 (3개)

    • GET /v1/dashboard/summary - 요약 데이터
    • GET /v1/dashboard/charts - 차트 데이터
    • GET /v1/dashboard/approvals - 결재 현황
    • GET /v1/dashboard/notifications - 알림 (Push 기능과 함께 개발 예정)
  • Swagger 문서

    • DashboardApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

🔧 Phase 3: 추가 기능 (예상 4-6주)

3.4 AI 리포트

완료일: 2025-12-18 | 커밋: 9864531

  • 테이블 생성

    • ai_reports 마이그레이션
  • 모델 생성

    • AiReport 모델 (BelongsToTenant, SoftDeletes)
    • 상수 정의 (REPORT_TYPES, STATUSES, ANALYSIS_AREAS, STATUS_CODES)
  • 서비스 구현

    • AiReportService 생성
    • Google Gemini API 연동
    • 비즈니스 데이터 수집 로직 (매출, 매입, 입출금, 미수금, 카드/계좌)
    • AI 프롬프트 생성 (재무 분석 전문가 역할)
  • API 엔드포인트 (4개)

    • GET /v1/reports/ai - 목록 조회
    • POST /v1/reports/ai/generate - 리포트 생성
    • GET /v1/reports/ai/{id} - 상세 조회
    • DELETE /v1/reports/ai/{id} - 삭제
  • Swagger 문서

    • AiReportApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

3.5 가지급금 관리

  • 테이블 생성 (loans) - 2025-12-18
  • 서비스 구현 (인정이자 계산) - LoanService
  • API 구현 - LoanController, FormRequest 5개, 9개 라우트
  • Swagger 문서 - LoanApi.php (스키마 7개, 엔드포인트 9개)

3.8 바로빌 연동

완료일: 2025-12-18 | 커밋: 8ad4d7c

  • 테이블 생성

    • barobill_settings 마이그레이션 (테넌트별 바로빌 설정, 인증서 암호화)
    • tax_invoices 마이그레이션 (세금계산서 발행 내역)
  • 모델 생성

    • BarobillSetting 모델 (cert_key 암호화 - Laravel Crypt)
    • TaxInvoice 모델 (5개 상태, 3개 유형, 공급자/공급받는자 정보)
  • 서비스 구현

    • BarobillService 생성 (바로빌 API 연동, 테스트/운영 환경 구분)
    • TaxInvoiceService 생성 (CRUD, 발행, 취소, 상태조회, 통계)
  • API 엔드포인트 (12개)

    • GET /v1/barobill-settings - 바로빌 설정 조회
    • PUT /v1/barobill-settings - 바로빌 설정 저장
    • POST /v1/barobill-settings/test-connection - 연동 테스트
    • GET /v1/tax-invoices - 목록 조회
    • POST /v1/tax-invoices - 세금계산서 생성
    • GET /v1/tax-invoices/summary - 요약 통계
    • GET /v1/tax-invoices/{id} - 상세 조회
    • PUT /v1/tax-invoices/{id} - 수정
    • DELETE /v1/tax-invoices/{id} - 삭제
    • POST /v1/tax-invoices/{id}/issue - 발행
    • POST /v1/tax-invoices/{id}/cancel - 취소
    • GET /v1/tax-invoices/{id}/check-status - 국세청 전송 상태
  • Swagger 문서

    • BarobillSettingApi.php 작성
    • TaxInvoiceApi.php 작성
  • 테스트

    • Feature 테스트 작성
    • 수동 API 테스트

⚙️ Phase L: 설정 및 기준정보 (2025-12-30)

참조: docs/dev_plans/react-mock-remaining-tasks.md - Phase L 섹션

L-2 권한관리 🟡

참조: docs/dev_plans/l2-permission-management-plan.md 상태: API 개발 완료, React 연동 대기

  • 테이블 수정

    • roles 테이블에 is_hidden 컬럼 추가 마이그레이션
  • API 엔드포인트 (9개)

    • GET /v1/roles - 역할 목록
    • POST /v1/roles - 역할 생성
    • GET /v1/roles/{id} - 역할 상세
    • PATCH /v1/roles/{id} - 역할 수정
    • DELETE /v1/roles/{id} - 역할 삭제
    • GET /v1/roles/{id}/permissions - 역할 권한 조회
    • POST /v1/roles/{id}/permissions - 권한 추가
    • DELETE /v1/roles/{id}/permissions - 권한 제거
    • PUT /v1/roles/{id}/permissions/sync - 권한 동기화
  • Swagger 문서

    • RoleApi.php 작성
    • RolePermissionApi.php 작성
  • React 연동

    • actions.ts 생성
    • 컴포넌트 API 연동
    • Mock 데이터 제거

L-3 직급관리 + L-4 직책관리

완료일: 2025-12-30 설계: 직급(rank)과 직책(title)을 통합 positions 테이블로 구현

  • 테이블 생성

    • positions 마이그레이션 (type 컬럼으로 rank/title 구분)
    • common_codes에 position_type 그룹 추가
  • 모델 생성

    • Position 모델 (BelongsToTenant, SoftDeletes)
  • 서비스 구현

    • PositionService 생성 (CRUD, reorder)
  • API 엔드포인트 (6개)

    • GET /v1/positions?type=rank - 직급 목록
    • GET /v1/positions?type=title - 직책 목록
    • POST /v1/positions - 생성 (type 필수)
    • PUT /v1/positions/{id} - 수정
    • DELETE /v1/positions/{id} - 삭제
    • POST /v1/positions/reorder - 순서 변경 (bulk)
  • Swagger 문서

    • PositionApi.php 작성
  • React 연동

    • lib/api/positions.ts API 클라이언트
    • RankManagement/ 컴포넌트 API 연동
    • TitleManagement/ 컴포넌트 API 연동
    • 드래그 앤 드롭 순서 저장

L-5 출퇴근설정 🟡

상태: 부분 완료 - 부서 목록 API 연동 필요

  • 출퇴근 설정 API 연동 완료
  • MOCK_DEPARTMENTSgetDepartments() API 연동 필요

💼 Phase 4: SaaS 기능 (별도 일정)

⚠️ 기존 코드베이스 분석 결과 반영 (2025-12-18)

  • 구독/결제: 이미 모델 존재 → 신규 테이블 불필요, API 확장만 필요
  • 고객센터: mng 게시판 기능으로 대체 가능 → 신규 개발 불필요

3.6 구독/결제 관리 (기존 모델 확장)

기존 구성요소 (이미 존재):

항목 위치 상태
Plan 모델 api/app/Models/Tenants/Plan.php 완성
Subscription 모델 api/app/Models/Tenants/Subscription.php 완성
Payment 모델 api/app/Models/Tenants/Payment.php 완성
테넌트 구독 조회 api/admin/tenants/{id}/subscription 라우트 존재
관리 페이지 public/tenant/subscription/ 3개 파일

기존 스키마:

// Plan: name, code, description, price, billing_cycle, features(json), is_active
// Subscription: tenant_id, plan_id, started_at, ended_at, status
// Payment: subscription_id, amount, payment_method, transaction_id, paid_at, status, memo

추가 개발 필요 (API 확장):

  • Plan API (관리자용)

    • GET /v1/admin/plans - 요금제 목록
    • POST /v1/admin/plans - 요금제 등록
    • PUT /v1/admin/plans/{id} - 요금제 수정
    • DELETE /v1/admin/plans/{id} - 요금제 삭제
  • Subscription API (테넌트용)

    • GET /v1/subscriptions/current - 현재 구독 조회
    • POST /v1/subscriptions - 구독 신청
    • PUT /v1/subscriptions/{id} - 구독 변경
    • POST /v1/subscriptions/{id}/cancel - 구독 해지
  • Payment API

    • GET /v1/payments - 결제 내역
    • POST /v1/payments - 결제 처리 (PG 연동)
    • GET /v1/payments/{id} - 결제 상세
  • PG 연동 (별도 검토)

    • 토스페이먼츠 / 아임포트 연동
    • 자동결제(정기결제) 구현
  • Swagger 문서

    • PlanApi.php, SubscriptionApi.php, PaymentApi.php

3.7 고객센터 (mng 게시판 활용)

기존 구성요소 (이미 존재 - mng):

항목 위치 상태
Board 모델 mng/app/Models/Boards/Board.php 완성
Post 모델 mng/app/Models/Boards/Post.php 완성
BoardSetting mng/app/Models/Boards/BoardSetting.php 동적 필드 지원
BoardService mng/app/Services/BoardService.php 520줄
API 라우트 api/admin/boards/* 20개+ 라우트

게시판 구조:

  • is_system = true → 시스템 전체용 (공지사항, FAQ)
  • is_system = false → 테넌트별 개별 게시판 (문의게시판)
  • 템플릿 기반 생성 지원 (createBoardFromTemplate)

추가 개발 필요 (템플릿 추가):

  • 게시판 템플릿 정의 (config/board_templates.php)

    • faq - FAQ 게시판 템플릿
    • inquiry - 1:1 문의 템플릿
    • notice - 공지사항 템플릿
  • API 라우트 확장 (api 프로젝트)

    • GET /v1/boards/{code}/posts - 게시글 목록 (사용자용)
    • POST /v1/boards/{code}/posts - 게시글 작성
    • GET /v1/boards/{code}/posts/{id} - 게시글 상세
  • Swagger 문서

    • BoardApi.php (사용자용 API)

참고: mng의 BoardService는 시스템/테넌트 게시판 모두 지원하므로 신규 테이블 생성 불필요


📋 기획 확인 필요 항목

⚠️ 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 메시지 키 추가
  • 카드/계좌 관리 API 구현 완료 (커밋: e1b0c99)

    • 마이그레이션 2개 (cards, bank_accounts)
    • 모델 2개 (Card, BankAccount)
    • 서비스 2개 (CardService, BankAccountService)
    • 컨트롤러 2개, FormRequest 4개
    • API 엔드포인트 15개 (카드 7개, 계좌 8개)
    • Swagger 문서 (CardApi.php, BankAccountApi.php)
    • 카드번호 암호화 (Laravel Crypt 사용)
    • 대표계좌 자동 설정 로직
  • 전자결재 모듈 API 구현 완료 (커밋: b43796a)

    • 마이그레이션 4개 (approval_forms, approval_lines, approvals, approval_steps)
    • 모델 4개 (ApprovalForm, ApprovalLine, Approval, ApprovalStep)
    • 서비스 1개 (ApprovalService)
    • 컨트롤러 3개, FormRequest 13개
    • API 엔드포인트 26개 (양식 6, 결재선 5, 문서 15)
    • Swagger 문서 3개 (ApprovalFormApi.php, ApprovalLineApi.php, ApprovalApi.php)
    • i18n 메시지/에러 키 추가

2025-12-18

  • 급여 관리 API 구현 완료

    • 마이그레이션 2개 (payrolls, payroll_settings)
    • 모델 2개 (Payroll, PayrollSetting)
    • 서비스 1개 (PayrollService)
    • 컨트롤러 1개, FormRequest 5개
    • API 엔드포인트 13개
    • Swagger 문서 (PayrollApi.php)
    • i18n 메시지/에러 키 추가
    • 4대보험 계산 로직 (건강보험, 장기요양, 국민연금, 고용보험)
    • 급여 상태 관리 (draft→confirmed→paid)
  • 대시보드 API 구현 완료

    • 서비스 1개 (DashboardService)
    • 컨트롤러 1개 (DashboardController)
    • FormRequest 2개 (DashboardChartsRequest, DashboardApprovalsRequest)
    • API 엔드포인트 3개 (summary, charts, approvals)
    • Swagger 문서 (DashboardApi.php)
    • i18n 메시지/에러 키 추가
    • 통계 집계 로직 (오늘 현황, 재무, 매출/매입, 할 일)
    • 차트 데이터 (입금/출금 추이, 거래처별 매출 상위 10)
    • ※ notifications는 Push 기능과 함께 개발 예정
  • API 품질 점검 및 수정 (커밋: c7eee97)

    • Pint 스타일 이슈 25개 자동 수정 (783 파일 통과)
    • 마이그레이션 4개 실행 (payrolls, payroll_settings, push_device_tokens, push_notification_settings)
    • PHP 문법 검사 통과
    • Swagger 문서 재생성 완료
    • 라우트 로딩 테스트 통과 (471개 엔드포인트)
  • AI 리포트 API 구현 완료 (커밋: 9864531)

    • 마이그레이션 1개 (ai_reports)
    • 모델 1개 (AiReport)
    • 서비스 1개 (AiReportService)
    • 컨트롤러 1개, FormRequest 2개
    • API 엔드포인트 4개 (목록/생성/상세/삭제)
    • Swagger 문서 (AiReportApi.php)
    • i18n 메시지/에러 키 추가
    • Google Gemini API 연동
    • 비즈니스 데이터 수집 (매출/매입/입출금/미수금/카드/계좌)
  • 가지급금 관리 API 구현 완료 (커밋: 9b3dd2f)

    • 마이그레이션 1개 (loans)
    • 모델 1개 (Loan)
    • 서비스 1개 (LoanService - 인정이자 계산 포함)
    • 컨트롤러 1개, FormRequest 5개
    • API 엔드포인트 9개
    • Swagger 문서 (LoanApi.php)
  • 바로빌 세금계산서 연동 API 구현 완료 (커밋: 8ad4d7c)

    • 마이그레이션 2개 (barobill_settings, tax_invoices)
    • 모델 2개 (BarobillSetting, TaxInvoice)
    • 서비스 2개 (BarobillService, TaxInvoiceService)
    • 컨트롤러 2개, FormRequest 6개
    • API 엔드포인트 12개
    • Swagger 문서 2개 (BarobillSettingApi.php, TaxInvoiceApi.php)
    • 바로빌 API 연동 (테스트/운영 환경 구분)
    • 인증서 키 암호화 (Laravel Crypt)
    • 세금계산서 발행/취소/상태조회/통계
  • Phase 4 계획 수정 (기존 코드베이스 분석 반영)

    • 구독/결제: Plan, Subscription, Payment 모델 이미 존재 → 신규 테이블 불필요
    • 고객센터: mng 게시판 기능(Board, Post, BoardService)으로 대체 가능
    • 계획 문서 수정: 신규 개발 → 기존 모델 확장으로 변경

2025-12-30

  • Phase L 설정 및 기준정보 개발
    • L-2 권한관리 API 개발 완료 (React 연동 대기)
    • L-3 직급관리 + L-4 직책관리 완료 (통합 positions 테이블)
    • 마이그레이션 2개, 모델 1개, 서비스 2개, 컨트롤러 2개
    • API 엔드포인트 15개 (Role 9개 + Position 6개)
    • Swagger 문서 3개 (RoleApi, RolePermissionApi, PositionApi)
    • React API 클라이언트 및 컴포넌트 연동 (직급/직책)

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/dev_plans/SAM_ERP_Storyboard_D0.8_251216/