Files
sam-docs/system/erp-analysis/02-auth.md
권혁성 d4e5f62413 docs: [종합정비] Phase 1 시스템 현황 문서 14개 작성
- system/overview.md: 전체 아키텍처 개요
- system/api-structure.md: API 구조 (220 모델, 1027 엔드포인트, 18 라우트 도메인)
- system/react-structure.md: React 구조 (249 페이지, 612 컴포넌트)
- system/mng-structure.md: MNG 구조 (171 컨트롤러, 436 Blade 뷰)
- system/docker-setup.md: Docker 7 컨테이너 구성
- system/database/README.md + 9개 도메인 스키마 (270+ 테이블)
  - core, hr, sales, production, finance, boards, files, system, erp-analysis

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 18:03:13 +09:00

206 lines
7.4 KiB
Markdown

# 인증/영업 (슬라이드 14-22)
## 1. 가입 및 로그인 플로우차트 (슬라이드 15)
### 1.1 영업사원 플로우
```
운영 로그인 → 사업자등록번호 입력 → 사업자번호 조회?
↓ Yes
회사정보 등록 → 가입신청 완료
↓ (거절)
거절 알림
```
### 1.2 관리자 플로우
```
자료 확인 → 승인? → (Yes) → 이메일로 URL 발송
↓ (No)
계약금50% 결제 확인
```
### 1.3 고객사 플로우
```
약관 동의 → 비밀번호 설정 → SAM 로그인 → 테넌트 추가?
↓ (Yes)
매니저: 테넌트 추가 알림
사업자등록번호 입력
```
## 2. 운영 로그인 (슬라이드 16)
### 2.1 아이디 인풋박스
- 테넌트 생성자일 경우 이메일
- 사용자일 경우 이메일 또는 아이디
- (1-1) 상황별 가이드 메시지
### 2.2 비밀번호 인풋박스
- 입력 시 마지막 글자 제외 후 마스킹 처리
- (2-1) 상황별 가이드 메시지
### 2.3 열람 버튼
- 클릭: 열람/숨김 토글
- 디폴트: 숨김 상태
- 열람 상태일 시 (2) 영역 마스킹 해제 처리
### 2.4 자동 로그인 체크박스
- 클릭: 체크 설정/해제 토글
- 체크 시 로그아웃 전까지 세션 유지
### 2.5 로그인 버튼
- 클릭: 유효할 경우 대시보드 화면으로 이동
### 2.6 가이드 메시지
| 상황 | 가이드 메시지 |
|------|---------------|
| 필수 정보 미 입력 시 | 필수 정보입니다. |
| 4글자 미만 입력 시 | 이메일은 4자 이상 가능합니다 |
| 이메일 형식에 유효 하지 않을 경우 | 이메일 주소를 다시 확인해주세요. |
| 8자 미만 입력 시 | 8자 이상으로 만들어주세요. |
| 영문+숫자+특수문자 조합이 아닐 경우 | 영문, 숫자, 특수문자를 포함해주세요. 다음의 특수기호는 보안 사항을 가능합니다., ; - @ ! |
## 3. 사업자등록번호 조회 (슬라이드 17)
### 3.1 제조 데모
- 클릭: 제조 데모 화면으로 이동
### 3.2 시공 데모
- 클릭: 시공 데모 화면으로 이동
### 3.3 사업자등록번호 인풋박스
- 숫자만 가능, 10자리
### 3.4 다음 버튼
- 클릭:
1. 바로 빌 사업자등록번호 조회 후 사용 불가 경우: "중복된 사업자등록번호입니다." 알림 Alert 표시
2. 바로 빌 사업자등록번호 조회 후 사용 가능한 경우:
- [1] 테넌트 등록된 사업자등록번호일 경우: 테넌트 등록 전이어도 다른 영업사원이 등록중을 경우에는 사업자등록번호 사용 불가 (어드민에서는 해제 가능)
- "등록된 사업자등록번호 입니다." 알림 Alert 표시
- [2] 등록되지 않은 사업자등록번호일 경우: 회사정보 등록 화면으로 이동
## 4. 회사정보 등록 (슬라이드 18)
### 4.1 회사(테넌트) 상태
- 신청: 신청 완료 입력
- 승인: 자동 입금 외 계약금 50% 입금, 이메일로 URL 발송 선택
- 최초 로그인 시 ERP만 표시
- 거절: 프로젝트 설정 완료, 잔금 50% 입금 및 인도, 당월 말일까지는 무료, 익월부터 익월말까지 사용하고 구독료 청구
- 만료: 기간 종료, 안료외 연체 상태 구분?? 영업사원에게 알림, 서비스에는 접근 불가, 배너
- 해지: 오퍼 대기기간 단계 필요??
- 해지: 서비스 이용 불가
- 탈퇴: 로그인 불가, 복구 불가??
- 미사: 서비스 이용 불가
### 4.2 회사 로고 이미지 영역
- 디폴드 이미지 표시
- 클릭: 파일탐색기 팝업 표시, 10MB 이하의 PNG, JPEG, GIF 중 하나 선택 가능
### 4.3 우편번호 찾기 버튼
- 클릭: 선정한 주소 팝업 표시
### 4.4 찾기 버튼
- 클릭: 파일탐색기 팝업 표시, 이미지 또는 파일 하나 선택 가능
### 4.5 가입 신청 버튼
- 클릭: 사업자등록번호 조회 화면으로 이동
- 회사 로고만 선택, 나머지는 필수 정보
- 클릭: 가입 신청 완료 화면으로 이동
### 4.6 입력 필드
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 회사 로고 | N | 750x250px, 10MB 이하 PNG, JPEG, GIF |
| 회사명 | Y | |
| 대표자명 | Y | |
| 업태 | Y | |
| 업종 | Y | |
| 주소 | Y | 우편번호 찾기 + 상세주소 |
| 이메일 (아이디) | Y | |
| 세금계산서 이메일 | Y | |
| 담당자명 | Y | |
| 담당자 연락처 | Y | |
| 사업자등록증 | Y | 파일 첨부 |
## 5. 가입 신청 완료 (슬라이드 19)
### 5.1 가입 신청 완료 안내 문구 표시
- SAM은 폐쇄형 네트워크이므로 플랫폼의 무결성을 보장하기 위해 모든 계정을 검토해야 합니다.
- (회사명)의 계정 세부 정보를 추가로 확인하기 위해 추가 정보를 요청할 수 있습니다.
- 영업일 기준 3일 이내에 계정에 대한 업데이트를 받게 됩니다.
### 5.2 가입 신청 취소 버튼
- 클릭: "가입 신청 취소 시 등록한 모든 정보가 삭제됩니다. 정말 가입 신청을 취소하시겠습니까?" 확인 Alert 표시
## 6. 가입 신청 승인 성공 이메일 (슬라이드 20)
### 6.1 계정 활성화 버튼
- 클릭: 약관 동의 화면으로 이동
### 6.2 지원, 블로그 버튼
- 클릭: 해당 운영 노션 링크로 이동
## 7. 약관 동의 (슬라이드 21)
### 7.1 약관 영역
- 클릭: (1-1) 약관 내용 영역 열림/닫힘 토글
- 디폴트: 닫힘
### 7.2 체크박스
- 클릭: 체크 설정/해제 토글
- 디폴트: 체크 설정 해제
### 7.3 약관에 동의합니다 버튼
- 모든 필수 약관 동의 시 버튼 활성화
- 클릭: 비밀번호 설정 화면으로 이동
### 7.4 약관에 동의합니다 버튼
- 클릭: 모든 필수, 선택 약관에 동의 처리, 비밀번호 설정 화면으로 이동
### 7.5 약관 목록
| 약관명 | 필수 |
|--------|------|
| [필수] 서비스 이용약관 | Y |
| [필수] 개인정보 취급방침 | Y |
| [필수] 약관명 | Y |
| 마케팅 정보 수신 동의 (선택) | N |
| - 이메일 수신 동의 | N |
| - SMS 수신 동의 | N |
## 8. 비밀번호 설정 (슬라이드 22)
### 8.1 계정 활성화 버튼
- 클릭: 로그인 화면으로 이동
### 8.2 비밀번호 요구사항
- 최소 8자 이상 영문+숫자+특수문자 조합
---
## API 도출
### 인증 API
```
POST /api/auth/login # 로그인
POST /api/auth/logout # 로그아웃
POST /api/auth/password/reset # 비밀번호 재설정
POST /api/auth/password/change # 비밀번호 변경
```
### 회원가입/영업 API
```
GET /api/business-registration/verify # 사업자등록번호 조회
POST /api/registration/company # 회사정보 등록
POST /api/registration/cancel # 가입신청 취소
GET /api/terms # 약관 목록 조회
POST /api/terms/agree # 약관 동의
POST /api/account/activate # 계정 활성화
```
### 테넌트 API
```
GET /api/tenants # 테넌트 목록
POST /api/tenants # 테넌트 추가
PUT /api/tenants/{id} # 테넌트 수정
GET /api/tenants/{id}/switch # 테넌트 전환
```