- 7-8월 초기 구축 문서 12개를 _archive/troubleshooting/2025_07-08_initial_setup/로 이동 - book/300_architecture/390_human_in_the_loop_intent_learning.md를 journey/research/intent_classification/로 이동 (개발 여정 문서) - 빈 폴더 제거 (journey/assets/*)
221 lines
7.0 KiB
Markdown
221 lines
7.0 KiB
Markdown
# 전자계약 자동화 기능 - 로빙 통합 아키텍처
|
|
|
|
## 작성일: 2025-09-09
|
|
## 작성자: Claude (51123 서버 관리자)
|
|
|
|
## 1. 개요
|
|
플렉스 등 HR 솔루션의 유료 전자계약 기능(월 1천원/인)을 로빙이 슬랙 네이티브로 무료 제공.
|
|
법적 효력을 갖춘 전자계약을 슬랙 내에서 완결하는 차별화된 서비스.
|
|
|
|
## 2. 비즈니스 가치
|
|
- **비용 절감**: 10명 스타트업 기준 월 1만원, 연 12만원 절약
|
|
- **효율성**: 슬랙 내에서 모든 계약 프로세스 완결
|
|
- **자동화**: 직원 정보 자동 입력, 템플릿 기반 빠른 생성
|
|
- **추적성**: 모든 계약 히스토리를 로빙이 기억
|
|
|
|
## 3. 법적 요구사항
|
|
|
|
### 3.1 전자서명법 준수
|
|
- 공인전자서명 또는 사설인증서 필수
|
|
- 서명자 신원 확인 (카카오인증/PASS/토스인증)
|
|
- 서명 시점 타임스탬프 (KISA TSA 연동)
|
|
|
|
### 3.2 문서 보관 의무
|
|
- 근로계약서: 퇴직 후 3년
|
|
- 비밀유지계약: 계약 종료 후 5년
|
|
- 위변조 방지: SHA-256 해시 + 블록체인 기록
|
|
|
|
### 3.3 개인정보보호
|
|
- 주민번호, 급여 정보 암호화 (AES-256)
|
|
- 접근 권한 관리 (당사자/관리자만)
|
|
- 열람 로그 기록
|
|
|
|
## 4. 기술 아키텍처
|
|
|
|
### 4.1 시스템 구성
|
|
```
|
|
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
|
|
│ Slack │────▶│ rb8001 │────▶│ skill-contract │
|
|
└─────────────┘ └──────────────┘ └─────────────────┘
|
|
│
|
|
┌──────────────────────────────┼──────────────────┐
|
|
│ │ │
|
|
┌───────▼────────┐ ┌──────────▼────────┐ ┌─────▼──────┐
|
|
│ PostgreSQL │ │ File Storage │ │ External │
|
|
│ (메타데이터) │ │ (/mnt/hdd/) │ │ APIs │
|
|
└────────────────┘ └───────────────────┘ └────────────┘
|
|
```
|
|
|
|
### 4.2 skill-contract 서비스 (신규)
|
|
- **포트**: 8506
|
|
- **기능**: 계약 생성/서명/관리
|
|
- **의존성**: PostgreSQL, ChromaDB, 외부 인증 API
|
|
|
|
## 5. 데이터베이스 설계
|
|
|
|
### 5.1 PostgreSQL 스키마
|
|
```sql
|
|
-- 계약 템플릿
|
|
CREATE TABLE contract_templates (
|
|
id UUID PRIMARY KEY,
|
|
name VARCHAR(100),
|
|
type VARCHAR(50), -- 'employment', 'nda', 'service'
|
|
template_content TEXT, -- Jinja2 템플릿
|
|
variables JSONB, -- 필요 변수 목록
|
|
created_by UUID,
|
|
created_at TIMESTAMP
|
|
);
|
|
|
|
-- 계약 인스턴스
|
|
CREATE TABLE contracts (
|
|
id UUID PRIMARY KEY,
|
|
template_id UUID REFERENCES contract_templates(id),
|
|
creator_id UUID,
|
|
recipient_id UUID,
|
|
status VARCHAR(50), -- 'draft', 'sent', 'signed', 'completed'
|
|
contract_data JSONB, -- 실제 입력된 데이터
|
|
pdf_path TEXT,
|
|
hash VARCHAR(64),
|
|
signed_at TIMESTAMP,
|
|
expires_at TIMESTAMP
|
|
);
|
|
|
|
-- 서명 기록
|
|
CREATE TABLE contract_signatures (
|
|
id UUID PRIMARY KEY,
|
|
contract_id UUID REFERENCES contracts(id),
|
|
signer_id UUID,
|
|
signature_method VARCHAR(50), -- 'kakao', 'pass', 'toss'
|
|
signature_data TEXT, -- 암호화된 서명 이미지
|
|
ip_address INET,
|
|
timestamp TIMESTAMP,
|
|
certificate TEXT -- 인증서 정보
|
|
);
|
|
```
|
|
|
|
### 5.2 파일 저장 구조
|
|
```
|
|
/mnt/hdd/contracts/
|
|
├── templates/
|
|
│ ├── employment_contract_v1.html
|
|
│ └── nda_template_v1.html
|
|
├── signed/
|
|
│ ├── 2025-09/
|
|
│ │ ├── {contract_id}_original.pdf
|
|
│ │ └── {contract_id}_signed.pdf
|
|
│ └── 2025-10/
|
|
└── temp/
|
|
└── {session_id}_draft.pdf
|
|
```
|
|
|
|
## 6. 구현 플로우
|
|
|
|
### 6.1 계약 생성 프로세스
|
|
```
|
|
1. CEO: "@로빙 김철수 근로계약서 보내줘"
|
|
2. 로빙: slack_user_mapping에서 김철수 정보 조회
|
|
3. 템플릿에 자동 입력 (이름, 부서, 직급, 입사일)
|
|
4. 프리뷰 생성 및 확인 요청
|
|
5. CEO 확인 후 발송
|
|
6. 김철수에게 DM으로 서명 링크 전송
|
|
```
|
|
|
|
### 6.2 서명 프로세스
|
|
```
|
|
1. 서명 링크 클릭 (JWT 토큰, 30분 유효)
|
|
2. 본인인증 (카카오/PASS/토스)
|
|
3. 계약서 내용 확인
|
|
4. 전자서명 (터치/마우스 서명)
|
|
5. PDF 생성 + 타임스탬프
|
|
6. 양 당사자에게 완료 PDF 전송
|
|
```
|
|
|
|
## 7. 슬랙 인터페이스
|
|
|
|
### 7.1 계약 생성
|
|
```slack
|
|
CEO: @로빙 김철수 근로계약서 준비해줘
|
|
|
|
로빙: 📝 김철수님 근로계약서를 준비했습니다.
|
|
┌─────────────────────────┐
|
|
│ 성명: 김철수 │
|
|
│ 부서: 개발팀 │
|
|
│ 직급: 대리 │
|
|
│ 입사일: 2025-10-01 │
|
|
│ 급여: ****만원 │
|
|
└─────────────────────────┘
|
|
[✅ 발송] [✏️ 수정] [❌ 취소]
|
|
```
|
|
|
|
### 7.2 서명 요청 (김철수 DM)
|
|
```slack
|
|
로빙: 📮 근로계약서 서명 요청이 도착했습니다.
|
|
|
|
발신: 홍길동 대표
|
|
문서: 근로계약서
|
|
만료: 2025-09-10 18:00
|
|
|
|
[📝 서명하기] [📄 내용 확인]
|
|
```
|
|
|
|
## 8. 보안 및 컴플라이언스
|
|
|
|
### 8.1 보안 조치
|
|
- HTTPS 전용 통신
|
|
- 서명 페이지 CSRF 토큰
|
|
- Rate limiting (분당 10회)
|
|
- 민감정보 마스킹 처리
|
|
|
|
### 8.2 감사 로그
|
|
```python
|
|
audit_log = {
|
|
"action": "contract_signed",
|
|
"user_id": "uuid",
|
|
"contract_id": "uuid",
|
|
"ip": "192.168.1.1",
|
|
"timestamp": "2025-09-09T10:00:00Z",
|
|
"details": {...}
|
|
}
|
|
```
|
|
|
|
## 9. 외부 서비스 연동
|
|
|
|
### 9.1 전자서명 인증
|
|
- **카카오인증**: REST API 연동
|
|
- **PASS**: 통신3사 인증
|
|
- **토스인증**: 간편인증 API
|
|
|
|
### 9.2 타임스탬프
|
|
- KISA TSA 서버 연동
|
|
- RFC 3161 표준 준수
|
|
|
|
### 9.3 블록체인 (선택)
|
|
- Klaytn 메인넷 활용
|
|
- 문서 해시만 기록 (비용 최소화)
|
|
|
|
## 10. 차별화 기능
|
|
|
|
### 10.1 AI 기반 계약 검토
|
|
- 불공정 조항 자동 감지
|
|
- 법률 용어 쉬운 설명
|
|
- 유사 계약 비교 분석
|
|
|
|
### 10.2 자동 갱신 관리
|
|
- 만료 30일 전 알림
|
|
- 자동 갱신 조항 추적
|
|
- 갱신 협상 가이드
|
|
|
|
### 10.3 다국어 지원
|
|
- 영문 계약서 자동 번역
|
|
- 이중 언어 병기 옵션
|
|
|
|
## 11. 예상 개발 일정
|
|
- Phase 1 (2주): 기본 템플릿 및 PDF 생성
|
|
- Phase 2 (2주): 전자서명 API 연동
|
|
- Phase 3 (1주): 슬랙 인터페이스
|
|
- Phase 4 (1주): 보안 및 테스트
|
|
|
|
## 12. ROI 분석
|
|
- 개발 비용: 6주 * 1명 = 약 3000만원
|
|
- 절감 효과: 100개 회사 * 월 10만원 = 월 1000만원
|
|
- 투자 회수: 3개월 |