개발 로드맵 » 이력 » 버전 3
이태훈, 2025/08/12 04:20
| 1 | 1 | 이태훈 | h1. 개발 로드맵 |
|---|---|---|---|
| 2 | |||
| 3 | h2. 전체 구조 |
||
| 4 | |||
| 5 | * 이론 : ERP/회계/프로세스/재고•세무•원가의 핵심 개념 파악 |
||
| 6 | * 실전 : 웹 ERP(모놀리식) MVP 개발 → 점진적 고도화 |
||
| 7 | * 최소 산출물 : 도메인 용어집, 프로세스 다이어그램, ERD, 자동분개 규칙, API 스펙, 화면 와이어프레임, 테스트 시나리오, 배포 스트립트 |
||
| 8 | * 개발 스택 |
||
| 9 | ** 프론트엔드 : React.js + shadcn/ui (공통) |
||
| 10 | ** 백엔드1 : TypeScript/NextJS + Prisma + PostgreSQL + Next.js |
||
| 11 | ** 백엔드2 : Spring Boot + JPA + PostgreSQL + Next.js |
||
| 12 | |||
| 13 | h2. 아키텍처 원칙 |
||
| 14 | |||
| 15 | * 단일 정보 출처(SSOT) |
||
| 16 | ** DB : 스키마 - sql/migrations의 순수 SQL(표준 Postgres)로 관리 (둘다 동일 스키마 사용) |
||
| 17 | ** API : openapi/openapi.yaml (서버/클라이언트 SDK 자동 생성) |
||
| 18 | ** 이벤트 : events/*.json (도메인 이벤트 페이로드 스펙) |
||
| 19 | |||
| 20 | * 동일한 메인 모듈 |
||
| 21 | <pre> |
||
| 22 | auth, core, master(품목/거래처), finance(GL/분개), purchasing, sales, inventory |
||
| 23 | </pre> |
||
| 24 | |||
| 25 | * 동일한 테스트 시나리오 |
||
| 26 | ** 단위(분개 룰), 통합(입고→전표), E2E(발주→입고→청구/지급, 주문→출고→청구/수금) |
||
| 27 | 2 | 이태훈 | |
| 28 | h2. 로드맵 요약 |
||
| 29 | |||
| 30 | 3 | 이태훈 | h3. 1-4주차 : 이론 기초 + 플랫폼 뼈대 구성 |
| 31 | 1 | 이태훈 | |
| 32 | 3 | 이태훈 | * 이론 |
| 33 | ** ERP 핵심: 주문→출하/인도→청구→수금(O2C), 요청→발주→입고→정산(P2P) |
||
| 34 | ** 이중부기와 계정과목, 보조부→총계정원장(GL) 흐름. |
||
| 35 | ** 한국 로컬 포인트 : 부가가치세(영세/과세/면세), 환율, 회계기간, 월마감 |
||
| 36 | * 실전 |
||
| 37 | ** 프로젝트 템플릿 생성, 모놀리식 모듈 구조(ex. core, auth, master, finance, purchasing, sales, inventory) |
||
| 38 | ** 공통 레이어 |
||
| 39 | *** 인증/인가(JWT + RBAC), 사용자/조직, 번호체계, 감사로그(Audit), 첨부/코멘트 |
||
| 40 | *** 표준 응답/에러/검증 파이프, OpenAPI 문서화 |
||
| 41 | ** 데이터 모델(핵심) |
||
| 42 | *** 마스터 : partners, items, warehouses, tax_codes, currencies, exchange_rates, gl_accounts |
||
| 43 | *** 회계 : gl_journals, gl_journal_lines, fiscal_periods |
||
| 44 | *** 공통 : attachments, audit_logs, doc_sequences |
||
| 45 | ** UI 골격 |
||
| 46 | *** 레이아웃, 공통 그리드(저장된 필터/컬럼), 상태배지, Export(CSV/XLSX) |
||
| 47 | * 주간 산출물 |
||
| 48 | ** 용어집(파트너/품목/전표/세금코드 등) |
||
| 49 | ** ERD 초안(v0) |
||
| 50 | ** 와이어프레임(전표 미리보기 패널 포함) |
||
| 51 | *** 배포 : Docker(Contaner Manager) + Nginx(프록시) + Cl(빌드/테스트) |
||
| 52 | |||
| 53 | h3. 5-6주차 : 회계 엔진 코어(필수) |
||
| 54 | * 이론 |
||
| 55 | ** 분개 규칙 : 판매확정, 입고확정, 출고확정, 청구/수금, 매입/지급 시 차/대변 매핑. |
||
| 56 | ** 환율/다중통화, 세금 분개(매출•매입•부가세) |
||
| 57 | * 실전 |
||
| 58 | ** 테이블 확정 : gl_accounts, posting_rules, gl_journals, gl_journal_lines |
||
| 59 | ** 자동분개 엔진(룰 기반) 구현 : 도메인 이벤트→룰 조회→분개 생성→저장 |
||
| 60 | ** 샘플 룰(JSON) |
||
| 61 | 2 | 이태훈 | <pre> |
| 62 | { |
||
| 63 | "event": "SALES_CONFIRMED", |
||
| 64 | "conditions": { "tax_code": "VAT10", "item_type": "GOODS" }, |
||
| 65 | "lines": [ |
||
| 66 | { "side": "DR", "account": "AR", "amount": "net+vat" }, |
||
| 67 | { "side": "CR", "account": "REV", "amount": "net" }, |
||
| 68 | { "side": "CR", "account": "VAT_OUT", "amount": "vat" } |
||
| 69 | ] |
||
| 70 | } |
||
| 71 | </pre> |
||
| 72 | 3 | 이태훈 | ** 의사코드 |
| 73 | 2 | 이태훈 | <pre> |
| 74 | onEvent(e): |
||
| 75 | rule = PostingRules.match(e) |
||
| 76 | lines = rule.build(e.payload) // 금액, 통화, 세금 |
||
| 77 | Journal.create(headerFrom(e), lines) |
||
| 78 | </pre> |
||
| 79 | 3 | 이태훈 | * 산출물 |
| 80 | ** 분개 규칙 표(이벤트별) |
||
| 81 | ** 전표장/원장 기본 리포트 API |
||
| 82 | 2 | 이태훈 | |
| 83 | 3 | 이태훈 | h3. 7-9주차 : 구매(P2P) + 재고(수불) |
| 84 | 2 | 이태훈 | |
| 85 | 3 | 이태훈 | * 이론 |
| 86 | ** 재고평가 방법 : 가중평균 or FIFO(MVP는 한 가지로 고정) |
||
| 87 | ** 입고/반품/이동, 창고/로케이션 개념 |
||
| 88 | * 실전 |
||
| 89 | ** 구매요청(PR)→발주(PO)→입고(GR)→매입세금계산서(AP)→지급 |
||
| 90 | ** 테이블 : purchase_requests, purchase_orders, receipts, ap_invoices, payments, inventory_moves, inventory_layers(평가용), grn_lines 등 |
||
| 91 | ** 분개 포인트 예시 |
||
| 92 | *** 입고확정 : 재고자산(차)/매입채무(대) |
||
| 93 | *** 매입세금계산서 : 매입부가세(차)/매입채무(대) |
||
| 94 | ** 그리드 UX : 라인 인라인 편집, 단가/세액 자동계산, 상태 전이(초안→승인→확정) |
||
| 95 | * 산출물 |
||
| 96 | ** 입고 전표 자동생성 E2E 테스트 |
||
| 97 | ** 재고수불 리포트(기간/창고/품목) |
||
| 98 | 2 | 이태훈 | |
| 99 | 3 | 이태훈 | h3. 10-12주차 : 판매(O2C) + 청구/수금 |
| 100 | * 이론 |
||
| 101 | ** 주문/출고/매출/수금 흐름, 출고 시점의 매출원가(COGS) 인식 |
||
| 102 | * 실전 |
||
| 103 | ** 견적→주문→출고→매출세금계산서(AR)→수금 |
||
| 104 | ** 분개 포인트 예시 |
||
| 105 | *** 출고확정 : 매출원가(차)/재고자산(대) |
||
| 106 | *** 매출확정 : 외상매출금(차)/매출(대)+부가세계수금(대) |
||
| 107 | ** 리포트 : 매출현황, 미수잔액(고객/기간), 손익 간이표 |
||
| 108 | * 산출물 |
||
| 109 | ** 판매/출고/청구 E2E 시나리오 |
||
| 110 | ** 시산표(월/계정) v1 |
||
| 111 | 2 | 이태훈 | |
| 112 | 3 | 이태훈 | h3. 13-14주차 : 마감/권한/감사+안정화 |
| 113 | * 이론 |
||
| 114 | ** 월마감 : 역분개/조정분개, 기간 잠금, 승인 체계 |
||
| 115 | ** 권한 모델 : 문서 단위 보기/작성/승인/역분개 |
||
| 116 | * 실전 |
||
| 117 | ** 마감 작업 배치(Job) + 재무기간 잠금 |
||
| 118 | ** 역분개(Reverse) : 수정 대신 역분개 + 재기표 정책 |
||
| 119 | ** 권한 세분화(엔드포이트/액션 레벨) |
||
| 120 | ** 대량 데이터 성능(인덱스, 파티셔닝 : 월/회사) |
||
| 121 | * 산출물 |
||
| 122 | ** 마감 체크리스트, 감사 로그 대시보드, 성능지표(Grafana 권장) |
||
| 123 | |||
| 124 | h3. 15-16주차 : 운영/배포/데이터•테스트 |
||
| 125 | * 운영 |
||
| 126 | ** Docker 이미지 최적화, 백업/복구 시나리오, 스냅샷 테이블(BI용) 설계 |
||
| 127 | ** 모니터링/알람 : Prometheus(or node_exporter) + Grafana, 구조화 로깅 |
||
| 128 | * 테스트 전략 |
||
| 129 | ** 단위 : 분개빌더, 금액/세액 라운딩 |
||
| 130 | ** 통합 : 입고→전표, 출고→전표, 청구→수금 |
||
| 131 | ** E2E : P2P/O2C 핵심 흐름 10개 시나리오 자동화 |
||
| 132 | * 최종 산추물(캡스톤) |
||
| 133 | ** 데모 스크립트(5분) : PO 생성→입고→AP전표/지급, SO→출고→AR전표/수금, 시산표 확인 |
||
| 134 | ** 관리자 계정, 3개 역할(Role) 데모, 10만행 샘플로 리포트/성능 확인 |
||
| 135 | 2 | 이태훈 | |
| 136 | ----------------------- |
||
| 137 | |||
| 138 | h2. 핵심 설계 체크리스트 |
||
| 139 | |||
| 140 | * ▢ 이벤트 → 자동분개 룰 → 전표 생성 파이프라인이 단방향으로 깔끔한가? |
||
| 141 | * ▢ 모든 문서에 상태머신과 감사로그가 붙었는가? |
||
| 142 | * ▢ 전표 미리보기(가상 분개)가 저장 전 확인 가능하게 되어 있는가? |
||
| 143 | * ▢ 역분개 정책이 코드/화면/권한에서 일관성 있는가? |
||
| 144 | * ▢ 재고평가(가중평균/FIFO)가 전 과정에서 동일 규칙으로 계산되는가? |
||
| 145 | * ▢ 한국 VAT, 환율, 기간 잠금이 반영됐는가? |