업무 시스템 기술 스택 안내

# 업무 시스템 기술 스택 안내

Canonical URL: https://duolabs.co.kr/docs/%EC%97%85%EB%AC%B4-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B8%B0%EC%88%A0-%EC%8A%A4%ED%83%9D-%EC%95%88%EB%82%B4
Author: Duolabs (https://duolabs.co.kr)
License: Creative Commons Attribution 4.0 International (https://creativecommons.org/licenses/by/4.0/)
Last modified: 2026-07-31T18:40:12.238Z

# 업무 시스템 기술 스택 안내

## 개요

업무 시스템은 홈페이지·AI 서비스와 다른 목표를 가집니다. 콘텐츠를 보여주는 것이 아니라 **누가 무엇을 하고 승인했는지를 정확히 기록하고 통제**하는 것이 핵심입니다. 그래서 기본 스택에 역할 기반 권한과 데이터 무결성을 위한 구성이 추가됩니다.

인프라는 개발 금액만으로 결정하지 않습니다. 실제로 필요한 업무 모듈 수, 권한 복잡도, 외부 시스템 연동 여부를 기준으로 필요한 서비스만 선택합니다. 개발 비용은 1회성이고 유지보수와 외부 인프라 사용료는 별도로 산정합니다.

## 규모별 예상 범위와 기본 구성

| 구분 | 개발 비용 예상 범위 | 적합한 프로젝트 | 기본 인프라 |
|---|---:|---|---|
| 작게 시작 | 300~980만원 | 견적·재고·결재처럼 한 가지 핵심 업무 | Cloudflare DNS + Vercel Pro + Postgres |
| 표준 | 730~1,580만원 | 여러 업무 단계를 연결하는 일반적인 사내 시스템 | 기본 구성 + Prisma ORM + 역할 기반 권한(RBAC) |
| 크게 | 1,240~2,000만원 | 부서별 권한·데이터 연동을 포함하는 전사 시스템 | 표준 구성 + 외부 시스템 연동(ERP·회계 API) + 감사 로그 |

위 금액은 기본 범위의 예시입니다. 데이터 이전, 결재·권한 체계, 외부 연동, 모바일 대응 등 선택 사항에 따라 달라지며 요구사항을 확정한 후 고정 견적을 제공합니다.

## 전체 구조

```text
사용자 (역할별)
↓
Cloudflare DNS
↓
Vercel
├─ Next.js 화면 (업무 모듈 단위로 구성)
├─ 서버 액션 ── 쓰기 경계 + 권한 검사
└─ Git 기반 자동 배포
↓
Postgres ── Prisma ORM으로 스키마·관계·마이그레이션 관리
├─ 역할·권한(RBAC) 테이블
├─ 업무 데이터 (모듈별로 분리)
└─ 감사 로그 (승인·변경 이력)

선택 서비스
├─ Resend ── 처리 결과·승인 요청 이메일
├─ 카카오 알림톡 ── 승인·처리 결과 알림
└─ 외부 API 연동 ── ERP·회계·그룹웨어
```

## 1. 단일 기능 모듈

견적서 자동화, 재고 관리처럼 한 가지 핵심 업무만 정리하는 경우입니다.

- Next.js, Vercel Pro
- Postgres + Prisma ORM (단일 스키마)
- 로그인과 기본 역할 구분(예: 담당자/관리자)
- Resend로 처리 결과 알림

별도 승인 단계가 없다면 권한 모델은 단순한 역할 구분만으로 충분합니다.

## 2. 연동형 시스템

주문 → 재고 → 정산처럼 여러 업무 단계를 연결하는 경우입니다.

기본 구성에 다음을 추가합니다.

- 역할 기반 권한(RBAC): 역할마다 조회·작성·승인 범위를 다르게 설정
- 상태 모델: 각 업무 단계의 상태 전이(접수 → 검토 → 승인 → 처리 → 완료)를 데이터로 관리
- 감사 로그: 누가 언제 무엇을 승인·변경했는지 기록

## 3. 전사 업무 시스템

부서별 권한, 여러 외부 시스템 연동, 통합 현황까지 포함하는 경우입니다.

- 부서·직급 단위로 세분화된 권한 모델
- ERP·회계·그룹웨어 등 외부 시스템과의 API 연동
- 통합 대시보드와 보고서(원본 데이터에서 일관되게 생성)
- 대규모 데이터 이전(정제 포함)

이 규모는 화면 수보다 권한 경우의 수와 연동 대상 시스템 수가 비용을 좌우합니다.

## 역할 기반 권한(RBAC)이 다른 상품과 다른 점

홈페이지·AI 서비스는 "로그인했는지"만 확인하면 되는 경우가 많지만, 업무 시스템은 **"이 역할이 이 데이터에 이 작업을 할 수 있는지"** 를 매 요청마다 확인해야 합니다.

권장 원칙은 다음과 같습니다.

- 권한은 화면 단위가 아니라 **작업(키) 단위**로 정의합니다. 예: `견적.승인`, `재고.수정`
- 권한 검사는 **서버 액션 안**에 둡니다. 화면에서 버튼을 숨기는 것은 사용성을 위한 것이지 보안 경계가 아닙니다 — 요청을 직접 보내면 우회될 수 있기 때문입니다.
- 새 업무 모듈을 추가할 때마다 필요한 권한 키를 함께 정의합니다. 처음부터 모든 경우의 수를 설계하지 않고, 실제로 쓰는 모듈부터 채워 나갑니다.
- 승인·변경처럼 되돌리기 어려운 작업은 실행 기록(누가, 언제, 무엇을)을 남깁니다.

## 각 서비스의 역할

| 서비스 | 담당 역할 | 도입 시점 |
|---|---|---|
| Cloudflare DNS | 도메인과 DNS 레코드 관리 | 모든 업무 시스템 |
| Vercel | 화면, 서버 액션, 자동 배포 | 모든 업무 시스템 |
| Postgres | 업무 데이터, 권한, 감사 로그 저장 | 모든 업무 시스템 |
| Prisma ORM | 스키마·관계·마이그레이션 관리 | 모든 업무 시스템 |
| Resend | 처리 결과·승인 요청 알림 | 이메일 알림이 필요할 때 |
| 카카오 알림톡 | 담당자·고객 대상 처리 결과 알림 | 문자·알림톡 채널이 필요할 때 |
| 외부 API 연동 | ERP·회계·그룹웨어 데이터 동기화 | 기존 시스템과 데이터를 주고받아야 할 때 |

## 운영 계정과 비용 원칙

고객 시스템의 도메인과 클라우드 계정은 고객 명의로 개설하는 것을 기본으로 합니다. 듀오랩스는 필요한 권한을 위임받아 구축하고 운영합니다.

외부 시스템 연동에 필요한 API 키·계정은 실제 연동 상대 시스템의 발급 절차를 따르며, 상대 시스템에 문서와 담당자가 없으면 연동 난이도가 크게 올라갑니다.

## 선택 기준 요약

```text
한 가지 핵심 업무만 정리
→ Vercel + Postgres + Prisma, 단순 역할 구분

여러 업무 단계를 연결
→ 위 구성 + RBAC + 상태 모델 + 감사 로그

부서별 권한과 외부 시스템 연동 필요
→ 위 구성 + 세분화된 권한 모델 + ERP·회계 API 연동
```

## 참고

- 실제 사례는 "영업·전자결재 업무 시스템 구축 예시" 문서를 참고하세요
- 범위와 비용 산정 기준은 "업무 시스템 개발 범위 가이드" 문서를 참고하세요
- 서비스별 요금과 제공 한도는 변경될 수 있으므로 계약과 배포 시점의 공식 안내를 기준으로 확인합니다