세티스 구조추가

This commit is contained in:
2026-07-20 13:55:46 +09:00
parent d479c7c4ab
commit 4e6a41b266
2 changed files with 87 additions and 14 deletions
+28 -8
View File
@@ -1,4 +1,4 @@
# (주)삼안 ERP 및 그룹웨어 시스템 (Satis) 하이레벨 아키텍처 명세서
# (주)삼안 ERP 시스템 (Satis) 하이레벨 아키텍처 명세서
본 문서는 (주)삼안의 **ERP 시스템(`Satis`)** 프로젝트의 전체 하이레벨 아키텍처(HLA) 명세서입니다.
시스템 개요, 계층 구조, 기술 스택, 업무 도메인, **인프라/배포, 보안/인증, 외부 시스템 연동, 프론트엔드 아키텍처, 개발 운영 구조**를 종합적으로 포함합니다.
@@ -131,8 +131,28 @@ d:\41.dev\10.saman\
│ │ ├── Common/ # 공통 팝업, SMS, PDF, OTP (17개 컨트롤러)
│ │ ├── Jqgrid/ # jqGrid JSON 데이터 응답
│ │ └── Fileupload/ # 파일 업로드 처리
│ ├── model/ # 비즈니스 로직 (모듈별 Logic 클래스)
├── util/ # 시스템 유틸리티 클래스
│ ├── model/ # 비즈니스 로직 (20개 업무 모듈별 Logic 클래스)
│ ├── Account/ # 회계/전표/원가 Logic (41개 logic 파일)
│ │ ├── Person/ # 인사/급여/근태/연말정산 Logic (36개 logic 파일)
│ │ ├── Project/ # 프로젝트/공정/기성/원가 Logic (16개 logic 파일)
│ │ ├── Document/ # 전자결재 문서 Logic
│ │ ├── Sign/ # 전자서명/결재 처리 Logic (SignLogic.php 등)
│ │ ├── Sale/ # 영업/입찰/수금/실적 Logic (9개 logic 파일)
│ │ ├── Purchase/ # 구매/발주/정산 Logic (4개 logic 파일)
│ │ ├── Travel/ # domestic/overseas 출장 정산 Logic
│ │ ├── Asset/ # 고정자산/자산구매 Logic (3개 logic 파일)
│ │ ├── Book/ # 도서 대여/목록 관리 Logic
│ │ ├── Association/ # 협회 관리 Logic
│ │ ├── Management/ # 공통코드/메뉴권한/알림/이력 Logic (4개 logic 파일)
│ │ ├── Supervisor/ # 시스템 관리자 Logic (Supervisor_logic.php 등)
│ │ ├── Common/ # 공통 팝업/SMS/PDF/OTP Logic (17개 logic 파일)
│ │ ├── Jqgrid/ # jqGrid 그리드 전용 응답 Logic (Jqgrid_logic.php)
│ │ ├── Fileupload/ # 파일 업로드/인사 이미지 처리 Logic (8개 파일)
│ │ ├── Help/ # 사용자 도움말 Logic
│ │ ├── Report/ # 출력 보고서 전용 Logic (Report_logic.php)
│ │ ├── Sample/ # 시스템 표준 샘플 Logic
│ │ └── TestLogic.php # 개발 및 테스트 전용 Logic
│ ├── util/ # 시스템 유틸리티 클래스 (OracleClass, AuthClass 등)
│ │ ├── OracleClass.php # Oracle OCI 커넥션 핵심 클래스 (1,392라인)
│ │ ├── AuthClass.php # CSRF 토큰 / 세션 보안 (591라인)
│ │ ├── LoginInfomation.php # 로그인 상태 / 개인 권한 검증
@@ -265,16 +285,16 @@ sequenceDiagram
graph TD
SatisCore["Satis ERP Core System<br/>(PHP Application Server)"]
SatisCore <-->|OCI Native: oci_connect('satis','SATIS11707808','samandb')| OracleDB["Oracle DB (Main ERP)<br/>그룹웨어, 인사, 회계, 프로젝트, 결재"]
SatisCore <-->|mssql_connect: 192.168.13.50:5539<br/>DZGUEST/dzguest123| iCubeDB["더존 iCube ERP (MS-SQL)<br/>DB: DZICUBE<br/>회계전표 연동, 인사급여 싱크"]
SatisCore <-->|mysql_connect: erp.samaneng.com<br/>root/vbxsystem| IntranetDB["인트라넷 MySQL<br/>DB: hallaerp<br/>전자결재 사원/부서 정보, 코드 사전"]
SatisCore <-->|OCI Native: oci_connect('satis','**********','samandb')| OracleDB["Oracle DB (Main ERP)<br/>그룹웨어, 인사, 회계, 프로젝트, 결재"]
SatisCore <-->|mssql_connect: 192.168.13.50:5539<br/>DZGUEST/**********| iCubeDB["더존 iCube ERP (MS-SQL)<br/>DB: DZICUBE<br/>회계전표 연동, 인사급여 싱크"]
SatisCore <-->|mysql_connect: erp.samaneng.com<br/>root/**********| IntranetDB["인트라넷 MySQL<br/>DB: hallaerp<br/>전자결재 사원/부서 정보, 코드 사전"]
SatisCore -->|SMS API| SMSSvc["SMS 발송 서비스<br/>기술자보수교육 대상자 알림<br/>프로젝트 미결재 알림"]
SatisCore -->|PdfLogic| PDFSvc["PDF 생성 서비스<br/>결재문서/보고서 PDF 변환"]
```
| 연동 시스템 | 접속 방식 | 연동 목적 | 관련 파일 |
| :--- | :--- | :--- | :--- |
| **Oracle DB (Main)** | OCI8: `oci_connect('satis','SATIS11707808','samandb')` | ERP 핵심 데이터 (결재/인사/회계/프로젝트) | `OracleClass.php` |
| **Oracle DB (Main)** | OCI8: `oci_connect('satis','**************','samandb')` | ERP 핵심 데이터 (결재/인사/회계/프로젝트) | `OracleClass.php` |
| **더존 iCube ERP** | MS-SQL: `192.168.13.50:5539` DB: `DZICUBE` | 회계 전표 더존 전송, 인사/급여 싱크 | `saman_icube_dbcon.inc` |
| **인트라넷 MySQL** | MySQL: `erp.samaneng.com` DB: `hallaerp` | 전자결재용 사원/부서 코드, 문서 마스터 | `dbcon.inc`, `approval_function.php` |
| **SMS 서비스** | PHP Logic 클래스 | 기술자 보수교육 대상자 알림, 프로젝트 미결재 경고 문자 | `sms_controller.php`, `sms_logic.php` |
@@ -370,7 +390,7 @@ Smarty `.tpl` 파일은 아래의 일관된 명명 규칙을 따릅니다.
> **레거시 PHP 드라이버 사용**: `mysql_connect()`, `mssql_connect()`는 PHP 7.0에서 완전히 제거된 deprecated 함수입니다. PHP 5.6 이하 환경에서만 실행 가능합니다.
> [!CAUTION]
> **DB 접속 정보 평문 노출**: `dbcon.inc`(root/vbxsystem), `saman_icube_dbcon.inc`(DZGUEST/dzguest123$), `OracleClass.php`(satis/SATIS11707808) 소스 코드에 DB 계정이 하드코딩되어 있습니다.
> **DB 접속 정보 평문 노출**: `dbcon.inc`(root/**********), `saman_icube_dbcon.inc`(DZGUEST/**********), `OracleClass.php`(satis/****************) 소스 코드에 DB 계정이 하드코딩되어 있습니다.
> [!WARNING]
> **SQL Injection 위험**: `approval_function.php`, `function.php` 등 다수 함수에서 `$mCode` 값을 필터링 없이 SQL에 직접 삽입합니다. `mysql_real_escape_string()` 미적용.