- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
방화셔터 견적 시스템 (Estimate System)
📋 개요
이 폴더는 방화셔터 스크린과 철재의 견적을 산출하고 문서를 작성하기 위한 종합적인 시스템입니다. 견적서 작성, 수정, 조회, 출력, 단가 관리, 통계 분석 등의 모든 기능을 제공합니다.
🗂️ 폴더 구조
estimate/
├── common/ # 공통 JavaScript 및 PHP 파일
│ ├── common_addrowJS.php # 견적 항목 추가 JavaScript
│ ├── lastJS.php # 최종 JavaScript 처리
│ ├── common_slat.php # 철재 공통 기능
│ ├── common_screen.php # 스크린 공통 기능
│ ├── output_lastJS.php # 출력용 최종 JavaScript
│ ├── output_head.php # 출력용 헤더
│ ├── estimate_head.php # 견적 헤더
│ ├── compare_lastJS.php # 견적 비교용 JavaScript
│ ├── compare_price_edit_table.php # 가격 비교 편집 테이블
│ └── estimate_compare_head.php # 견적 비교 헤더
├── css/ # 스타일시트 파일
│ └── style.css # 견적 시스템 전용 스타일
├── *.php # 메인 기능 파일들
└── README.md # 시스템 문서
📁 상세 파일 설명
🎯 메인 기능 파일
estimate.php (53KB, 1363 lines)
- 기능: 스크린 견적서 메인 페이지
- 역할: 스크린 제품의 견적서 작성 및 수정
- 주요 특징:
- 견적서 데이터 입력 폼 제공
- 저장 및 닫기 기능
- 수정 모드 지원
- 실시간 데이터 검증
- 자동 계산 기능
- 사용 방법: 스크린 견적서 작성 시 메인 진입점
- 연관 파일:
_request.php,_row.php,common/common_addrowJS.php
estimateSlat.php (51KB, 1307 lines)
- 기능: 철재스라트 견적서 메인 페이지
- 역할: 철재 제품의 견적서 작성 및 수정
- 주요 특징:
- 철재스라트 전용 견적서 폼
- 스크린과 유사한 구조이지만 철재 특화 기능
- 철재 사양별 단가 계산
- 절곡, 용접 등 철재 특수 공정 반영
- 사용 방법: 철재 견적서 작성 시 메인 진입점
- 연관 파일:
get_slat_amount.php,fetch_unitprice.php
write_form.php (101KB, 2426 lines)
- 기능: 견적 산출 통합 폼
- 역할: 새로운 견적 작성 및 기존 견적 수정
- 주요 특징:
- 스크린/철재 선택 가능
- 데이터 복사 기능 (mode=copy)
- 발주서 연동 기능
- 실시간 단가 계산
- 자동 저장 기능
- 다중 견적 항목 관리
- 사용 방법: 새로운 견적 작성 또는 기존 견적 수정
- 연관 파일:
insert.php,get_screen_amount.php,get_slat_amount.php
list.php (14KB, 400 lines)
- 기능: 견적 목록 조회 및 관리
- 역할: 등록된 견적들의 리스트 표시 및 검색
- 주요 특징:
- 날짜 범위 필터링 (기본: 과거 10개월 ~ 미래 1개월)
- 모델명, 대분류, 중분류 필터링
- 전체 컬럼 검색 기능
- 페이징 처리
- 정렬 기능 (기본: num DESC)
- 사용 방법: 견적 목록 조회 및 검색
- 연관 파일:
edit.php
💰 견적 계산 관련 파일
get_screen_amount.php (27KB, 583 lines)
- 기능: 스크린 견적 금액 계산 엔진
- 역할: 스크린 제품의 단가 및 총액 계산
- 주요 특징:
- 실리카/와이어 스크린 구분 계산
- 검사비 자동 계산
- 주자재, 부자재, 모터, 케이스 등 세부 항목별 계산
- 체크박스 옵션에 따른 추가 비용 반영
- JSON 형태로 상세 내역 반환
- 핵심 함수:
calculateScreenAmount(): 메인 계산 함수calculateGuideRailPrice(): 가이드레일 가격 계산calculateShaftPrice(): 샤프트 가격 계산
- 연관 파일:
fetch_unitprice.php,price_raw_materials테이블
get_slat_amount.php (26KB, 541 lines)
- 기능: 철재스라트 견적 금액 계산 엔진
- 역할: 철재 제품의 단가 및 총액 계산
- 주요 특징:
- 환봉, 각파이프 등 철재 종류별 계산
- 절곡, 용접 공정비 반영
- 모터 브라켓 사이즈 자동 계산
- 중량 및 인치 기준 모터 용량 판별
- 핵심 함수:
calculateSlatAmount(): 메인 계산 함수searchBracketSize(): 브라켓 사이즈 검색
- 연관 파일:
fetch_unitprice.php,price_raw_materials테이블
get_estimate_amount.php (3.2KB, 87 lines)
- 기능: 일반 견적 금액 계산
- 역할: 기본 견적 계산 로직
- 주요 특징:
- 기본 단가 계산
- 수량별 총액 계산
- 할인율 적용
- 사용 방법: 간단한 견적 계산이 필요한 경우
fetch_unitprice.php (32KB, 875 lines)
- 기능: 단가 정보 조회 및 계산 유틸리티
- 역할: 제품별 단가 데이터 가져오기 및 계산 함수 제공
- 주요 함수들:
searchBracketSize(): 모터 브라켓 사이즈 검색slatPrice(): 철재 단가 조회addShaftPrice(): 샤프트 가격 추가calculatePipe(): 파이프 계산calculateMotorSpec(): 모터 사양 계산getScreenUnitPrice(): 스크린 단가 조회getMaterialPrices(): 자재 가격 조회
- 특징: 모든 견적 계산의 기반이 되는 핵심 유틸리티 파일
- 연관 파일: 모든 견적 계산 파일에서 참조
fetch_price.php (2.8KB, 91 lines)
- 기능: 가격 정보 조회
- 역할: 특정 제품의 가격 정보 조회
- 주요 특징:
- 원격 가격 조회
- 캐싱 기능
- 에러 처리
📊 견적 단가 관리
estimateUnit.php (25KB, 757 lines)
- 기능: 견적 단가 관리 시스템
- 역할: 제품별 단가 설정 및 관리
- 주요 특징:
- 스크린, 철재, 모터 등 제품별 단가 관리
- CSV 데이터 임포트 기능
- 단가 이력 관리
- 실시간 단가 업데이트
- 사용 방법: 관리자가 제품별 단가를 설정하고 관리
- 연관 파일:
list_unit.php,fetch_unitprice.php
list_unit.php (34KB, 917 lines)
- 기능: 단가 목록 조회 및 관리
- 역할: 등록된 단가 정보들의 리스트 표시
- 주요 특징:
- 단가 검색 및 필터링
- 단가 수정 기능
- 단가 이력 조회
- 엑셀 내보내기
🔍 조회 및 출력
viewEstimate.php (63KB, 1575 lines)
- 기능: 스크린 견적서 상세 조회 및 출력
- 역할: 스크린 견적서의 상세 내용 표시 및 PDF 출력
- 주요 특징:
- 완전한 견적서 형태로 출력
- PDF 저장 기능
- 회사 정보 및 견적 상세 내역 포함
- 인쇄 최적화 레이아웃
- 사용 방법: 스크린 견적서 최종 출력
- 연관 파일:
css/style.css,fetch_unitprice.php
viewEstimateDetail.php (85KB, 1822 lines)
- 기능: 견적서 세부사항 조회
- 역할: 견적서의 세부 항목들 표시
- 주요 특징:
- 항목별 상세 내역
- 계산 과정 표시
- 단가 및 수량 상세 정보
- 사용 방법: 견적서의 상세 내역 확인
- 연관 파일:
fetch_unitprice.php,css/style.css
screen_view_original.php (90KB, 1825 lines)
- 기능: 스크린 견적서 원본 출력
- 역할: 스크린 견적서의 원본 형태 출력
- 주요 특징:
- 원본 견적서 형태
- 모든 세부 정보 포함
- 인쇄용 레이아웃
screen_view_modified.php (61KB, 1266 lines)
- 기능: 스크린 견적서 수정본 출력
- 역할: 수정된 스크린 견적서 출력
- 주요 특징:
- 수정된 내용 반영
- 변경 이력 표시
- 최적화된 레이아웃
slat_view_original.php (82KB, 1774 lines)
- 기능: 철재스라트 견적서 원본 출력
- 역할: 철재스라트 견적서의 원본 형태 출력
- 주요 특징:
- 철재 전용 견적서 형태
- 철재 사양 상세 정보
- 절곡, 용접 정보 포함
slat_view_modified.php (55KB, 1135 lines)
- 기능: 철재스라트 견적서 수정본 출력
- 역할: 수정된 철재스라트 견적서 출력
- 주요 특징:
- 수정된 철재 견적서
- 변경 사항 표시
- 사용 방법: 수정된 철재 견적서 출력
- 연관 파일:
css/style.css,fetch_unitprice.php
viewEstimateSlatDetail.php (885B, 21 lines)
- 기능: 철재 견적서 상세 조회
- 역할: 철재 견적서의 상세 내용 표시
- 사용 방법: 철재 견적서 상세 조회
EsDetail_screen.php (1010B, 26 lines)
- 기능: 스크린 견적서 세부사항
- 역할: 스크린 견적서의 세부 항목 처리
- 사용 방법: 스크린 견적서 세부사항 출력
EsDetail_slat.php (918B, 20 lines)
- 기능: 철재 견적서 세부사항
- 역할: 철재 견적서의 세부 항목 처리
- 사용 방법: 철재 견적서 세부사항 출력
output_EsDetail_screen.php (1.1KB, 29 lines)
- 기능: 스크린 견적서 세부사항 출력
- 역할: 스크린 견적서 세부사항의 출력 처리
- 사용 방법: 스크린 견적서 세부사항 출력
output_EsDetail_slat.php (1.1KB, 27 lines)
- 기능: 철재 견적서 세부사항 출력
- 역할: 철재 견적서 세부사항의 출력 처리
- 사용 방법: 철재 견적서 세부사항 출력
📝 데이터 관리
insert.php (9.9KB, 199 lines)
- 기능: 견적 데이터 삽입 및 수정
- 역할: 새로운 견적 정보를 데이터베이스에 저장하거나 기존 견적 수정
- 주요 특징:
- JSON 데이터 안전 처리
- 프로젝트 번호 자동 생성
- 트랜잭션 처리
- 수정 로그 기록
- 에러 처리 및 롤백
- 핵심 기능:
mode="modify": 기존 견적 수정mode="insert": 새로운 견적 등록- 자동
pjnum생성 (KD-PR-YYYYMM-NN 형식)
- 연관 파일:
generate_serial_pjnum.php,_request.php
edit.php (23KB, 680 lines)
- 기능: 견적 수정 폼
- 역할: 기존 견적을 수정하기 위한 폼 제공
- 주요 특징:
- 기존 데이터 로드
- 수정 전용 인터페이스
- 데이터 검증
edit_slat.php (18KB, 584 lines)
- 기능: 철재스라트 견적 수정 폼
- 역할: 철재스라트 견적 수정 전용 폼
- 주요 특징:
- 철재 전용 수정 인터페이스
- 철재 사양 수정 기능
🔧 유틸리티 파일
_request.php (3.3KB, 51 lines)
- 기능: 요청 변수 처리 및 안전화
- 역할: POST/GET 요청의 변수들을 안전하게 처리
- 주요 변수들:
num,con_num: 견적 번호, 계약 번호outdate,indate: 견적서 작성일, 등록일orderman,outworkplace: 주문자명, 작업장/현장명estimateList,estimateSlatList: 스크린/철재 견적 항목 JSONestimateList_auto,estimateSlatList_auto: 자동 저장된 견적 항목 JSONmakeWidth,makeHeight: 제작 폭/높이 (mm)steel,motor,warranty: 철재 절곡, 모터 설치, 보증서 발급 여부slatcheck,partscheck: 주자재/부자재 체크 여부EstimateFirstSum,EstimateUpdatetSum,EstimateFinalSum: 견적 금액들
- 특징: 모든 견적 관련 파일에서 공통으로 사용되는 변수 처리
_row.php (2.9KB, 49 lines)
- 기능: 데이터베이스 행 처리
- 역할: DB에서 가져온 데이터를 PHP 변수로 설정
- 주요 특징:
- JSON 데이터 디코딩
- 변수 초기화
- 기본값 설정
generate_serial_pjnum.php (755B, 24 lines)
- 기능: 프로젝트 번호 생성
- 역할: 견적서용 고유 프로젝트 번호 자동 생성
- 생성 형식:
KD-PR-YYYYMM-NN(예: KD-PR-202412-01) - 특징: 중복 방지 및 순차 번호 생성
get_initial_pjnum.php (729B, 24 lines)
- 기능: 초기 프로젝트 번호 조회
- 역할: 프로젝트 번호의 초기값 가져오기
- 사용 방법: 견적서 작성 시 기본 번호 제공
fetch_length_data.php (3.1KB, 102 lines)
- 기능: 길이 데이터 조회
- 역할: 제품별 길이 정보 조회
- 사용 방법: 견적 계산 시 길이 정보 참조
fetch_date.php (1.5KB, 40 lines)
- 기능: 날짜 데이터 조회
- 역할: 날짜 관련 정보 조회
- 사용 방법: 날짜 필터링 및 검색
fetch_outworkplace.php (2.2KB, 58 lines)
- 기능: 작업장 정보 조회
- 역할: 작업장/현장 정보 조회
- 사용 방법: 작업장 정보 자동완성
fetch_receiver.php (1.9KB, 55 lines)
- 기능: 수신자 정보 조회
- 역할: 견적서 수신자 정보 조회
- 사용 방법: 수신자 정보 자동완성
recalc_row.php (355B, 13 lines)
- 기능: 행 재계산
- 역할: 견적 항목 행의 재계산 처리
- 사용 방법: 실시간 계산 업데이트
insert_detail.php (4.1KB, 96 lines)
- 기능: 견적 세부사항 삽입
- 역할: 견적의 세부 항목들을 데이터베이스에 저장
- 사용 방법: 견적 세부사항 저장
insert_detail_output.php (5.5KB, 107 lines)
- 기능: 출력용 견적 세부사항 삽입
- 역할: 출력용 견적 세부사항을 데이터베이스에 저장
- 사용 방법: 출력용 견적 세부사항 저장
insert_estimate.php (1.6KB, 53 lines)
- 기능: 견적 기본 정보 삽입
- 역할: 견적의 기본 정보를 데이터베이스에 저장
- 사용 방법: 견적 기본 정보 저장
insert_logmenu.php (1.2KB, 39 lines)
- 기능: 로그 메뉴 삽입
- 역할: 견적 관련 로그 메뉴 정보 저장
- 사용 방법: 로그 메뉴 정보 저장
estimate_table.php (713B, 25 lines)
- 기능: 견적 테이블 생성
- 역할: 견적 데이터를 표시하는 테이블 생성
- 사용 방법: 견적 테이블 출력
excel_sample.php (0.0B, 0 lines)
- 기능: 엑셀 샘플 파일
- 역할: 엑셀 출력을 위한 샘플 템플릿
- 사용 방법: 엑셀 출력 템플릿 참조
📊 통계 및 분석
statistics.php (8.0KB, 195 lines)
- 기능: 견적 통계 대시보드
- 역할: 견적 관련 통계 정보 표시
- 주요 특징:
- 월별/분기별 견적 현황
- 제품별 통계
- 매출 분석
- 사용 방법: 견적 현황 및 통계 확인
- 연관 파일:
func_statistics.php
func_statistics.php (1.6KB, 44 lines)
- 기능: 통계 계산 함수 모음
- 역할: 통계 계산을 위한 함수들
- 주요 함수:
- 매출 계산 함수
- 비율 계산 함수
- 차트 데이터 생성 함수
📤 출력 및 엑셀
saveExcel.php (6.0KB, 177 lines)
- 기능: 엑셀 파일 저장
- 역할: 견적서를 엑셀 형태로 저장
- 주요 특징:
- PHPSpreadsheet 라이브러리 사용
- 견적서 형태 그대로 엑셀 변환
- 서식 및 스타일 유지
- 사용 방법: 견적서를 엑셀 파일로 다운로드
downloadExcel.php (741B, 26 lines)
- 기능: 엑셀 파일 다운로드 처리
- 역할: 엑셀 파일 다운로드 처리
- 주요 특징:
- 파일 다운로드 헤더 설정
- 보안 처리
🔄 기타 기능
compare.php (2.7KB, 79 lines)
- 기능: 견적 비교 분석
- 역할: 여러 견적을 비교 분석
- 주요 특징:
- 견적 간 차이점 표시
- 가격 비교
- 사양 비교
search.php (10KB, 246 lines)
- 기능: 견적 검색 엔진
- 역할: 견적 정보 검색 기능
- 주요 특징:
- 고급 검색 기능
- 검색 결과 필터링
- 검색 히스토리
- 사용 방법: 견적 정보 검색
- 연관 파일:
list.php
list_sim.php (13KB, 346 lines)
- 기능: 견적 목록 시뮬레이션
- 역할: 견적 목록의 시뮬레이션 및 테스트
- 주요 특징:
- 견적 목록 시뮬레이션
- 테스트 데이터 생성
- 성능 테스트
- 사용 방법: 견적 목록 기능 테스트
- 연관 파일:
list.php
📁 하위 폴더 상세
common/ 폴더
공통으로 사용되는 JavaScript와 PHP 파일들이 포함되어 있습니다.
common_addrowJS.php (113KB, 2536 lines)
- 기능: 견적 항목 추가 JavaScript
- 역할: 견적 테이블에 새로운 행을 동적으로 추가
- 주요 특징:
- 71개 컬럼을 가진 견적 행 생성
- 스크린/철재 모델 옵션 자동 로드
- 실시간 계산 버튼 추가
- 복사/삭제 기능
- 셔터박스, 모터 등 특수 입력 필드 처리
- 핵심 함수:
addRow(): 새로운 행 추가removeRow(): 행 삭제copyRow(): 행 복사
- 사용 방법: 견적서 작성 시 항목 추가
lastJS.php (27KB, 753 lines)
- 기능: 최종 JavaScript 처리
- 역할: 견적서 작성 완료 후 최종 처리
- 주요 특징:
- 데이터 검증
- 자동 저장
- 계산 완료 처리
- 폼 제출 처리
common_slat.php (10KB, 227 lines)
- 기능: 철재 공통 기능
- 역할: 철재 견적 관련 공통 함수들
- 주요 특징:
- 철재 계산 함수
- 철재 사양 처리
- 철재 단가 조회
common_screen.php (10KB, 220 lines)
- 기능: 스크린 공통 기능
- 역할: 스크린 견적 관련 공통 함수들
- 주요 특징:
- 스크린 계산 함수
- 스크린 사양 처리
- 스크린 단가 조회
output_head.php (13KB, 263 lines)
- 기능: 출력용 헤더
- 역할: 견적서 출력 시 사용되는 헤더 정보
- 주요 특징:
- 회사 정보
- 견적서 양식
- 인쇄 스타일
estimate_head.php (11KB, 224 lines)
- 기능: 견적 헤더
- 역할: 견적서 작성 시 사용되는 헤더 정보
- 주요 특징:
- 견적서 기본 정보
- 입력 폼 헤더
- 검증 스크립트
output_lastJS.php (33KB, 934 lines)
- 기능: 출력용 최종 JavaScript
- 역할: 견적서 출력 시 최종 처리
- 주요 특징:
- PDF 생성
- 인쇄 처리
- 출력 최적화
compare_lastJS.php (24KB, 682 lines)
- 기능: 견적 비교용 JavaScript
- 역할: 견적 비교 시 사용되는 JavaScript
- 주요 특징:
- 견적 비교 로직
- 차이점 표시
- 비교 결과 출력
compare_price_edit_table.php (4.8KB, 103 lines)
- 기능: 가격 비교 편집 테이블
- 역할: 견적 가격 비교 시 편집 가능한 테이블
- 주요 특징:
- 실시간 가격 편집
- 비교 표시
- 변경 사항 저장
estimate_compare_head.php (9.5KB, 207 lines)
- 기능: 견적 비교 헤더
- 역할: 견적 비교 페이지의 헤더 정보
- 주요 특징:
- 비교 양식
- 비교 옵션
- 비교 결과 표시
css/ 폴더
스타일시트 파일들이 포함되어 있습니다.
style.css (4.6KB, 154 lines)
- 기능: 견적 시스템 전용 스타일
- 역할: 견적서 작성 및 출력 시 사용되는 CSS
- 주요 특징:
- 견적서 양식 스타일
- 인쇄 최적화 스타일
- 반응형 디자인
- 테이블 스타일링
- 버튼 및 폼 스타일
🔐 보안 및 인증
세션 기반 인증
- 모든 견적 관련 페이지에서 세션 검증
- 사용자 레벨에 따른 접근 제어 (레벨 5 이하만 접근 가능)
- 세션 만료 시 자동 로그아웃
데이터 보안
- SQL 인젝션 방지를 위한 PDO 사용
- 입력 데이터 검증 및 필터링
- XSS 공격 방지
- CSRF 토큰 검증
파일 보안
- 직접 파일 접근 제한
- 업로드 파일 검증
- 실행 파일 업로드 차단
💡 주요 특징 및 기능
1. 이중 견적 시스템
- 스크린 견적: 실리카/와이어 스크린 전용 견적 시스템
- 철재 견적: 철재스라트 전용 견적 시스템
- 통합 관리: 하나의 시스템에서 두 종류 견적 모두 관리
2. 자동 계산 엔진
- 실시간 계산: 입력 즉시 견적 금액 자동 계산
- 복잡한 계산: 치수, 단가, 수량, 옵션에 따른 정확한 계산
- 검사비 자동: 수량에 따른 검사비 자동 계산
- 할인율 적용: 할인율 및 할인 금액 자동 계산
3. 다양한 출력 형태
- 원본 견적서: 최초 작성된 견적서 형태
- 수정본 견적서: 수정된 견적서 형태
- PDF 출력: 견적서를 PDF 형태로 저장
- 엑셀 출력: 견적서를 엑셀 형태로 저장
- 인쇄 최적화: 인쇄용 레이아웃 제공
4. 단가 관리 시스템
- 제품별 단가: 스크린, 철재, 모터 등 제품별 단가 관리
- 단가 이력: 단가 변경 이력 관리
- CSV 임포트: 대량 단가 데이터 임포트
- 실시간 업데이트: 단가 변경 시 실시간 반영
5. 통계 및 분석
- 매출 통계: 월별/분기별 매출 분석
- 제품별 통계: 제품별 판매 현황
- 견적 현황: 견적 작성 및 승인 현황
- 차트 제공: 시각적 통계 차트
6. 검색 및 필터링
- 고급 검색: 다양한 조건으로 견적 검색
- 날짜 필터: 날짜 범위별 검색
- 제품 필터: 제품별 검색
- 상태 필터: 견적 상태별 검색
7. 데이터 관리
- JSON 저장: 견적 항목을 JSON 형태로 저장
- 자동 저장: 작업 중 자동 저장 기능
- 버전 관리: 견적 수정 이력 관리
- 백업 복구: 데이터 백업 및 복구 기능
🚀 사용법 가이드
1. 견적 작성
# 새로운 견적 작성
1. write_form.php 접속
2. 스크린/철재 선택
3. 견적 항목 입력
4. 자동 계산 확인
5. 저장
2. 견적 조회
# 견적 목록 조회
1. list.php 접속
2. 검색 조건 설정
3. 견적 목록 확인
4. 상세 조회 또는 수정
3. 견적 수정
# 기존 견적 수정
1. list.php에서 수정할 견적 선택
2. edit.php 또는 edit_slat.php 접속
3. 데이터 수정
4. 저장
4. 견적서 출력
# 견적서 출력
1. viewEstimate.php에서 견적서 확인
2. PDF 저장 또는 인쇄
3. 엑셀 다운로드 (필요시)
5. 단가 관리
# 단가 설정
1. estimateUnit.php 접속
2. 제품별 단가 입력
3. CSV 임포트 (대량 데이터)
4. 단가 적용
🔧 개발 및 유지보수
데이터베이스 구조
- estimate 테이블: 메인 견적 정보
- price_raw_materials 테이블: 원자재 단가 정보
- estimate_units 테이블: 단가 관리 정보
주요 API
- 견적 계산 API:
get_screen_amount.php,get_slat_amount.php - 단가 조회 API:
fetch_unitprice.php - 데이터 저장 API:
insert.php
JavaScript 라이브러리
- jQuery: DOM 조작 및 AJAX
- Bootstrap: UI 프레임워크
- PHPSpreadsheet: 엑셀 처리
에러 처리
- PHP 에러 로그:
/php_errors.log - 사용자 친화적 에러 메시지
- 트랜잭션 롤백
📞 지원 및 문의
- 개발팀: 시스템 개발 및 유지보수
- 관리자: 사용자 권한 및 시스템 설정
- 기술지원: 사용법 문의 및 문제 해결