+
+

PROJECT MASTER ver 4.0 데이터베이스 테이블 명세서

+

PostgreSQL (ver4 스키마) 물리 설계 명세 및 컬럼 바인딩 상세 설명서

+
+ +

본 명세서는 ver4_init_schema.sql 물리 DDL 기준 및 ver.2 통합 관리자 시스템 설계를 전적으로 준수하여 작성된 전체 19개 테이블(ver 2.0 추가 + 테이블 5개 포함)의 스펙 및 맵 구성서입니다. 개발 및 테스트 용도의 분기 테이블(_test_tb_project, _test_tb_data, + _test_tb_log, _test_tb_click_log)은 원본 테이블과 물리적 스키마(컬럼명, 데이터 타입)가 100% 동일하게 복사되어 + 구동됩니다. +

+ + +

1. 사용자 계정 및 프로젝트 권한 영역

+ + +
+
+
tb_user 사용자 마스터
+
사용자 계정 정보 관리
+
+
시스템 로그인 계정 정보를 관리하며 Sentinel SSO(단일 로그인) 연동 정보, 즐겨찾기 북마크 및 임직원 직급 등의 정보를 + 보관합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
user_idVARCHAR(50)Primary Key사용자 로그인 ID (예: test_user, admin)
user_nmVARCHAR(100)Not Null사용자 실명
user_pwVARCHAR(255)Not Null단방향 암호화 처리된 계정 패스워드
companyVARCHAR(100)-소속 기관/회사 명칭 (예: 한맥기술)
deptVARCHAR(100)-소속 부서/팀 명칭 (예: 개발본부)
positionVARCHAR(50)-임직원 직급 (예: 부장, 차장)
"group"VARCHAR(50)-계정 그룹 (예: dev, super, general)
bookmarkTEXT-개인화 즐겨찾기/북마크 폴더 JSON 설정 구문
is_resignedBOOLEANDefault: FALSE퇴사 여부 및 계정 강제 잠금 토글
create_dateTIMESTAMPDefault: NOW()계정 등록 일시
+
+ + +
+
+
tb_project 프로젝트 마스터
+
현장/공구 기본 마스터 정의
+
+
+ 수행 중이거나 관리 대상인 토목/건축 현장 및 공구 프로젝트 리스트를 정의합니다.
+ ※ _test_tb_project 테이블은 본 테이블의 스키마를 복사하여 구동합니다. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
project_idVARCHAR(50)Primary Key프로젝트 고유 식별 코드 (예: PM_TEST_01)
user_idVARCHAR(50)FK (tb_user)해당 프로젝트 총괄 책임 관리자 ID
categoryVARCHAR(50)-프로젝트 분류 카테고리 (tdc, gpd, bimproject, overseas)
project_nmVARCHAR(255)Not Null현장 공식 명칭 (예: 한국 가상 교량 건설 프로젝트)
short_nmVARCHAR(100)-프로젝트 축약명 (예: 가상교량)
project_typeVARCHAR(50)-공개 구분 분류 유형 (예: public, private)
stepVARCHAR(50)-현장 진행 단계 (예: 기획, 설계, 시공)
emp_mapVARCHAR(255)-현장 인력 배치도 정적 이미지 스토리지 키
flytoVARCHAR(255)-3D Cesium 카메라 자동 이동용 고도/좌표 문자열
show_in_indexBOOLEANDefault: TRUE메인 포털 인덱스 화면 노출 여부
is_activeBOOLEANDefault: TRUE프로젝트 운영 활성화 여부 (비활성 시 사용자 진입 차단)
banner_noticeTEXT-대시보드 상단 텍스트 마르퀴 띠배너 공지사항 내용
lonDOUBLE PRECISION-지도상 대표 중심 위치 경도(Longitude)
latDOUBLE PRECISION-지도상 대표 중심 위치 위도(Latitude)
heightDOUBLE PRECISION-3D 지도 대표 카메라 초기 고도(Height)
overviewBOOLEANDefault: TRUE메뉴 LNB '과업개요' 탭 활성화 여부
official_docBOOLEANDefault: TRUE메뉴 LNB '공문' 탭 활성화 여부
gsimBOOLEANDefault: TRUE메뉴 LNB '위치기반모델' 탭 활성화 여부
storage_byteBIGINTDefault: 10현장별 스토리지 최대 제한 용량 (기본 10GB 단위 저장)
create_dateTIMESTAMPDefault: NOW()프로젝트 레코드 최초 등록 일시
+
+ + +
+
+
tb_permission 프로젝트별 사용자 권한 등급
+
현장별 세부 접근 제어
+
+
개별 프로젝트 내에서 유저가 행사할 수 있는 권한 레벨 상수를 복합 기본키로 식별하여 저장합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
project_idVARCHAR(50)PK / FK (tb_project) + 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
user_idVARCHAR(50)PK / FK (tb_user) + 사용자 마스터 외래키 참조 (종속 삭제 연동)
levINTEGERNot Null Default: 1권한 등급값 (Owner=255, Sub-Master/관리=7, Worker/쓰기=4, Viewer/읽기=1)
+
+ + +
+
+
tb_user_setting 사용자 개인화 설정
+
사용자 환경 옵션 저장
+
+
공문 분석 탭 등에서 활용되는 AI 요약 옵션 및 유저의 편의 설정 상태값을 기록합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
project_idVARCHAR(50)PK / FK (tb_project) + 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
user_idVARCHAR(50)PK / FK (tb_user) + 사용자 마스터 외래키 참조 (종속 삭제 연동)
doc_option_instructionsBOOLEANDefault: FALSE공문 AI 요약 시 지시 사항 적용 여부 플래그
doc_option_summaryBOOLEANDefault: FALSE공문 AI 요약 결과 자동 팝업 노출 여부 플래그
+
+ + + +

2. 프로젝트 대시보드 및 과업 세부 명세 영역

+ + +
+
+
tb_overview 대시보드 과업 개요 정보
+
프로젝트 기본 정보 대시보드 표출 데이터
+
+
공사 계약 범위, 수주 정보, 발주기관, PM 성명, 시차 오프셋 등 과업개요 메인화면에 시각화될 종합 데이터를 포괄 저장합니다. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
project_idVARCHAR(50)Primary Key / FK + (tb_project)프로젝트 마스터 외래키 참조 (종속 삭제 연동)
project_noVARCHAR(100)-사업 공식 계약 번호 (예: PRJ-2026-001)
business_purposeTEXT-사업 추진 목적 및 핵심 의의
location_imgVARCHAR(255)-현장 위치도 이미지 파일의 스토리지(MinIO) 보관 key
overview_imgVARCHAR(255)-현장 개요도 이미지 파일의 스토리지(MinIO) 보관 key
continentVARCHAR(50)-대상 현장 소속 대륙 (예: 아시아, 중동)
performance_areaVARCHAR(100)-실제 과업 수행 행정 구역/지역
reference_areaVARCHAR(100)-과업 관련 보조 참조 구역/지역
facility_size_overviewTEXT-현장 시설물 구조 규모에 대한 종합 요약 구문
task_nm_krVARCHAR(255)-국문 공식 과업 명칭 (예: 가상교량 건설 관리 용역)
task_nm_enVARCHAR(255)-영문 공식 과업 명칭
task_purposeTEXT-과업 수행 목적 명세
task_typeVARCHAR(100)-용역/설계 과업의 형태 구분
clientVARCHAR(255)-공식 발주기관/발주처 사명 (예: 서울지방국토관리청)
financialVARCHAR(255)-사업 재원 금융 조달방식 및 은행명
financial_countryVARCHAR(100)-보증서 발급 금융 참여 보증 국가
bidVARCHAR(100)-입찰 방식 형태 (예: 종합심사낙찰제)
selection_methodVARCHAR(100)-업체 선정 세부 규정 방식
joint_contract_nmTEXT-공동수급 컨소시엄 구성 도급사 명칭 리스트
joint_contract_shareratioVARCHAR(100)-도급 지분율 (예: 한맥 60%, 공동 40%)
contract_amountNUMERIC(20, 2)-원화 기준 계약 총액
foreign_currency_amountNUMERIC(20, 2)-외화 기준 계약 총액 (달러, 유로화 등)
contract_dateVARCHAR(50)-사업 최초 계약 체결 일자
commencement_dateVARCHAR(50)-실제 공사/용역 착수 일자 (Commencement Date)
original_completion_dateVARCHAR(50)-사업 최초 계약상 준공 예정일
completion_dateVARCHAR(50)-변경/실제 최종 준공 일자
projectmanager_nmVARCHAR(100)-총괄 책임 PM 인명 (예: 홍길동 PM)
manager_nmVARCHAR(100)-부책임자/담당자 실무 관리 직원명
nation_nmVARCHAR(100)-현장 건설 국가 명칭 (예: 한국)
client_originVARCHAR(100)-발주처 국적 및 출처 구분
support_departmentVARCHAR(100)-본사 과업 지원 주관 부서
support_manager_nmVARCHAR(100)-지원부서 담당 실무 책임자명
representative_companyVARCHAR(255)-대표 공동수급 주간사명
order_size_krwNUMERIC(20, 2)-원화 수주 규모 금액
order_size_usdNUMERIC(20, 2)-달러(USD) 기준 수주 규모 금액
scheuled_commencement_dateVARCHAR(50)-예정되어 있는 착수 일자
contract_periodVARCHAR(100)-계약 이행 기간 범위 텍스트
abbreviated_nameVARCHAR(100)-과업의 단축된 대외 명칭
departmentVARCHAR(100)-주관 실행 부서
data_sizeTEXTDefault: '[0]'JSON 배열 규격 폴더별 누적 용량 메타데이터
issueTEXT-사업 추진 간 직면한 주요 공사 쟁점 및 민원 이슈
currency_codeVARCHAR(10)-적용 외화 통화 단위 기호 (예: USD)
joint_contractTEXT-공동 도급 지분율 계약 세부 내용
lead_companyVARCHAR(255)-컨소시엄 연대 대표 회사명
nation_codeVARCHAR(10)-국가 표준 식별 코드 (예: KR, US)
nation_offsetVARCHAR(10)-대시보드 헤더의 실시간 타이머 계산용 시차 정보 (예: +09:00)
+
+ + +
+
+
tb_facility_size 시설 상세 규모
+
현장 구조물 세부 스펙 보관
+
+
건설 대상 교량, 터널, 도로 등 세부 공정물들의 상세 스펙 수치(연장, 두께, 면적 등)를 Key-Value 형태로 정규화하여 + 관리합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
facility_idSERIALPrimary Key시설 항목 일련번호
project_idVARCHAR(50)FK (tb_project)프로젝트 마스터 외래키 참조 (종속 삭제 연동)
titleVARCHAR(100)Not Null스펙 분류 대제목 (예: 교량 스펙, 터널 스펙)
keyVARCHAR(100)Not Null스펙 명칭 키값 (예: 총 연장, 최대 폭, 차선 수)
valueVARCHAR(255)-스펙의 실제 규격 수치값 (예: 1,200 m, 4차로)
+
+ + +
+
+
tb_task_history 과업 변경 및 중단 이력
+
용역 일정 변동 히스토리
+
+
공사 지연, 민원 해결에 따른 일시 중단 일자, 준공계 제출 지연 등 계약 기간 및 과업 지시 상의 변경 조치 이력을 순차 기록합니다. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
task_history_idSERIALPrimary Key이력 기록용 고유 식별 번호
project_idVARCHAR(50)FK (tb_project)프로젝트 마스터 외래키 참조 (종속 삭제 연동)
task_orderINTEGER-변경 차수 일련번호 (1, 2, 3...)
suspension_dateVARCHAR(50)-과업/공사 일시 중단 일자 (예: 2026-03-01)
suspension_reasonTEXT-공사 일시 중단에 따른 행정적/물리적 상세 사유
resumption_dateVARCHAR(50)-과업/공사 재개 처리 일자 (예: 2026-04-15)
consultation_contentTEXT-발주청 및 관계 기관과의 협의 사항 회의록
change_dateVARCHAR(50)-최종 계약서 서류 상의 일자 변경일
+
+ + +
+
+
tb_calendar_event 캘린더 일정 및 국가 공휴일
+
공정 캘린더용 스케줄 보관
+
+
개별 현장별 주요 주요 마일스톤 회의 일정(착수, 중간, 준공보고 등)과 함께, 해외 현장의 경우 시차 계산 및 공휴일 표시를 위한 기초 + 데이터 테이블입니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
calendar_event_idSERIALPrimary Key일정 레코드 고유 번호
project_idVARCHAR(50)FK (tb_project)프로젝트 마스터 외래키 참조 (종속 삭제 연동)
typeVARCHAR(50)Not Null일정 속성 종류 구분 (예: schedule, holiday)
titleVARCHAR(255)Not Null일정/휴일 타이틀 제목 (예: 1차 중간보고회, 신정)
contentTEXT-일정에 관한 세부 수행 목적 및 장소 설명
colorVARCHAR(20)-캘린더 표출용 배경색 Hex 코드 (예: #ff0000)
start_dateVARCHAR(50)Not Null일정 시작일 YYYY-MM-DD
end_dateVARCHAR(50)Not Null일정 종료일 YYYY-MM-DD
nation_nmVARCHAR(100)-소속 공휴일 지정 대상 국가명 (예: 한국)
+
+ + + +

3. 파일 아카이브 및 백그라운드 압축 다운로드 영역

+ + +
+
+
tb_data 아카이브 산출물 마스터
+
아카이브 폴더 트리 및 파일 구조 제어
+
+
+ 가상 폴더 트리 구조와 파일 업로드/변환 관련 핵심 메타 정보를 저장합니다. 1행이 하나의 파일 또는 하나의 폴더를 의미합니다.
+ ※ _test_tb_data 테이블은 본 테이블의 스키마를 복사하여 구동합니다. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
data_idSERIALPrimary Key산출물 고유 식별 번호
project_idVARCHAR(50)FK (tb_project)소속 프로젝트 ID (종속 삭제 연동)
user_idVARCHAR(50)FK (tb_user)최초 등록(업로드)한 사용자 ID
create_dateTIMESTAMPNot Null Default: NOW()최초 파일 업로드/폴더 생성 일시
data_permissionINTEGERDefault: 1산출물 개별 조회 접근 제한 등급 레벨 상수값
bucketVARCHAR(100)-스토리지 저장 대상 버킷명 (예: pm-test-01)
is_folderBOOLEANDefault: FALSE폴더 여부 (true=폴더, false=파일)
is_removedBOOLEANDefault: FALSE가상 휴지통 보관 상태 유무 플래그 (true 시 화면에서 배제)
data_depthINTEGERDefault: 1계층 트리의 깊이 단계 범위 (1 ~ 8-depth)
extVARCHAR(50)-파일 포맷 확장자명 (예: dwg, pdf, xlsx)
path1 ~ path8VARCHAR(100)- + 가상 계층별 경로 및 파일명의 문자열 매핑.
+ (예: path1='01_설계도서', path2='교량일반도.dwg' 등) +
mod_dateTIMESTAMP-최근 구조/명칭 수정 처리 완료 일시
mod_user_idVARCHAR(50)-최근 변경 조치를 수행한 사용자 ID
mod_activityVARCHAR(100)-최근에 발생한 수정 행동 성격 코드 (예: renameTarget)
data_sizeBIGINTDefault: 0파일 용량 크기 (Byte 단위)
memoTEXT-해당 파일에 붙여진 텍스트 메모 기입란
storage_typeVARCHAR(20)-스토리지 물리 분류 (ONPREMISE / CLOUD)
object_keyTEXT-실제 MinIO/S3 내의 고유 보관 object key
preview_keyTEXT-변환된 미리보기 및 썸네일용 1Page PDF 보관 key
popup_keyTEXT-통합 문서 뷰어 팝업용 전체 페이지 PDF 보관 key
verINTEGERDefault: 1개정 버전 차수 카운팅 (버전 업로드 지원용)
folder_typeVARCHAR(50)-폴더 성격 종류 구분 (예: 보안폴더, 일반폴더)
thumbnail_sizeBIGINTDefault: 0미리보기 썸네일 이미지 크기 (Byte)
thumbnail_keyTEXT-썸네일 이미지 파일(png 등) 스토리지 보관 key
lonDOUBLE PRECISION-지도 마커 연계 경도 (GSIM 모듈용)
latDOUBLE PRECISION-지도 마커 연계 위도 (GSIM 모듈용)
heightDOUBLE PRECISION-3D 지도 공간 정보 좌표 높이값 (GSIM 모듈용)
author_idVARCHAR(50)-원본 산출물 최초 제작자 계정 ID
author_nmVARCHAR(100)-원본 산출물 최초 제작자 성명
last_folder_act_dateTIMESTAMP-해당 폴더 내부의 최종 변경 활동 발생 시각
popup_sizeBIGINTDefault: 0뷰어용 전체 페이지 PDF 용량 (Byte)
preview_sizeBIGINTDefault: 0미리보기용 1페이지 PDF 용량 (Byte)
ai_summaryTEXT-Gemini API 기반 생성된 문서 개요 AI 자동 요약문
+
+ + +
+
+
tb_download_folder 폴더 백그라운드 압축 이력
+
비동기 BullMQ 압축 작업 상태 관리
+
+
대량 폴더/파일을 일괄 ZIP 압축 다운로드할 때 생성되는 스토리지 임시 보관 정보 및 링크 만료 일자를 기록합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
download_idSERIALPrimary Key압축 작업 일련번호
project_idVARCHAR(50)FK (tb_project)대상 프로젝트 식별 아이디
user_idVARCHAR(50)FK (tb_user)압축 처리를 위임한 사용자 ID
statusVARCHAR(50)-비동기 압축 큐 상태 단계 (예: processing, completed, failed)
zip_keyTEXT-생성 완료된 임시 압축파일의 스토리지 보관 key
expire_dateTIMESTAMP-임시 압축파일 보관 디스크 소거를 위한 만료시각 (24시간 등)
madeBOOLEANDefault: FALSE비동기 압축 파일 빌드 준비 완료 여부 플래그
pathTEXT-압축을 개시한 원본 대상 가상 폴더의 최상위 경로
nameTEXT-압축된 파일에 바인딩된 기본 표출 명칭 (폴더명.zip)
create_dateTIMESTAMPDefault: NOW()다운로드 요청 등록 일시
+
+ + + +

4. 수신 및 발신 공식 공문서 관리 영역

+ + +
+
+
tb_official_doc_file 공문서 상세 및 AI 요약
+
공문 수발신 대장 및 메타데이터 정보
+
+
공문서의 제목, 날짜, 수발신처를 관리하며, OCR 파싱 및 Gemini AI가 수행한 주요 의사결정 요약 텍스트를 구조적으로 통합 + 보관합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
doc_idINTEGERPrimary Key공문서 일련번호 (시퀀스 seq_tb_official_doc_file 연동)
project_idVARCHAR(50)FK (tb_project)소속 프로젝트 ID (종속 삭제 연동)
uploaderVARCHAR(50)FK (tb_user)공문서 업로더 계정 ID
create_dateTIMESTAMPDefault: NOW()공문서 파일 업로드 등록 일시
permissionINTEGERDefault: 1공문서에 부여된 읽기/조회 보안 권한 등급
bucketVARCHAR(100)-스토리지 저장 버킷명
file_pathTEXT-공문 원본 파일이 업로드된 물리 스토리지 보관 경로
extVARCHAR(50)-원본 공문 파일 확장자 (소문자 규격)
doc_directionVARCHAR(20)-공문 교환 방향성 구분 (수신 / 발신)
doc_numberVARCHAR(100)-공식 접수/발송용 공문 문서 번호 (예: 서울국토-2026-012)
doc_dateVARCHAR(50)-공문서 상의 기안/체결 일자 (YYYY-MM-DD 형식)
recipient_orgVARCHAR(255)-공문 수신 수석 기관 명칭 (예: 한맥기술)
recipient_org_abbrVARCHAR(100)-수신 기관 약어 (예: 한맥)
sender_orgVARCHAR(255)-공문 발송 원천 기관 명칭 (예: 서울지방국토관리청)
sender_org_abbrVARCHAR(100)-발송 기관 약어 (예: 서울국토청)
doc_titleTEXT-공문서 상의 원본 기안문 제목
doc_title_summaryTEXT-Gemini AI가 함축 요약한 직관적 제목
doc_content_summaryTEXT-Gemini AI가 핵심 조작 및 지시 사항 중심으로 파싱한 본문 요약문
doc_related_docsTEXT-공문 내부 연관/참조 처리된 다른 공문서 번호 내역
doc_typeVARCHAR(50)-공문서 종류 구분 (예: 공문, 지시문, 보고서)
doc_categoryVARCHAR(100)-행정 업무별 세부 서류 분류 카테고리
attachment_titleTEXT-공문과 동봉 첨부된 첨부파일 제목 리스트
attachment_countINTEGERDefault: 0첨부된 보조 문서 파일 개수 카운트
doc_memoTEXT-담당자 기입 관리용 요약 비고 메모
doc_managerVARCHAR(100)-해당 공문 책임 지정 처리 실무자 성명
doc_labelVARCHAR(100)-공문 태그/분류 라벨
mod_dateTIMESTAMP-공문 메타 정보 최근 변경 완료 시각
mod_user_idVARCHAR(50)-공문 정보를 마지막으로 변경한 유저 ID
mod_activityVARCHAR(100)-마지막 변경 조치 내용 코드
data_sizeBIGINTDefault: 0원본 공문 PDF 파일 용량 (Byte)
storage_typeVARCHAR(20)-스토리지 타겟 (ONPREMISE / CLOUD)
object_keyTEXT-실제 스토리지 내 공문 원본 보관 key
preview_keyTEXT-1-Page 요약 썸네일 미리보기용 PDF key
popup_keyTEXT-전체 뷰어 확인용 PDF key
verINTEGERDefault: 1문서 이력 버전
group_idVARCHAR(50)-동일 묶음 발송 공문서 그룹 번호 ID
is_aiusedBOOLEANDefault: FALSEGemini AI 자동 분석/요약 수행 완료 여부 플래그
popup_sizeBIGINTDefault: 0뷰어용 전체 페이지 PDF 용량 (Byte)
preview_sizeBIGINTDefault: 0미리보기용 1페이지 PDF 용량 (Byte)
+
+ + +
+
+
tb_official_doc_company 공문 교환 회사 기관 목록
+
공문 수발신 참여 주체 목록
+
+
개별 프로젝트에 공문서를 주고받는 정부 기관, 지자체, 감리단, 도급사 등의 업체 리스트와 성격을 지정 보관합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
company_idSERIALPrimary Key업체 일련번호 (복합 PK 사용)
project_idVARCHAR(50)PK / FK (tb_project) + 프로젝트 마스터 외래키 참조 (종속 삭제 연동)
company_nameVARCHAR(255)Not Null공식 업체 및 기관 명칭 (예: 서울지방국토관리청)
company_typeVARCHAR(100)-기관 성격 구분 (예: 발주처, 도급사, 감리단)
company_roleVARCHAR(100)-공문 매핑상의 수발신 역할군 구분 (예: 기준, 상대기관)
+
+ + + +

5. 시스템 모니터링 및 활동 감사 로그 영역

+ + +
+
+
tb_log 파일 조작 감사 로그
+
보안 감사 활동 추적
+
+
+ 파일 업로드, 다운로드, 폴더 삭제 등 데이터 위/변조 가능 활동을 발생 IP, 일시와 함께 추적 기록하는 보안 로그 테이블입니다.
+ ※ _test_tb_log 테이블은 본 테이블의 스키마를 복사하여 구동합니다. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
log_idSERIALPrimary Key로그 감사 고유 번호
project_idVARCHAR(50)FK (tb_project)이벤트가 발생한 소속 프로젝트 ID (종속 삭제 연동)
activityVARCHAR(100)Not Null보안 감사 대상 활동 종류 식별자 (예: uploadData_file, createFolder, removeTarget)
user_idVARCHAR(50)FK (tb_user)활동을 유발시킨 사용자 계정 ID
user_ipVARCHAR(50)-행위를 유발한 접속지 IP 주소 (IPv4/IPv6)
log_dateTIMESTAMPDefault: NOW()활동 유발 저장 기록 시각
path_arrTEXT[]-조작한 파일들의 가상 경로 리스트 배열 (예: {"/01_설계도서/구조계산서.pdf"})
data_id_arrINTEGER[]-조작한 대상 파일의 data_id 일련번호 배열 (예: {15, 16})
+
+ + +
+
+
tb_click_log 사용자 UI 요소 클릭 로그
+
사용자 행동 흐름 통계 수집
+
+
+ 통합 문서 뷰어 진입, 썸네일 노출 요청, 탭 전환 등의 사용자 비활동/활동 클릭 이벤트를 통계 목적으로 수집합니다.
+ ※ _test_tb_click_log 테이블은 본 테이블의 스키마를 복사하여 구동합니다. +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
click_log_idSERIALPrimary Key클릭 이력 고유 ID
project_idVARCHAR(50)FK (tb_project)클릭이 터진 프로젝트 식별 ID (종속 삭제 연동)
activityVARCHAR(100)Not Null수집된 클릭 활동 액션 코드 (예: viewThumbnail, tabChange)
user_idVARCHAR(50)FK (tb_user)클릭을 행한 사용자 ID
user_ipVARCHAR(50)-사용자 접속 단말 IP 주소
log_dateTIMESTAMPDefault: NOW()클릭 활동 기록 시각
path_arrTEXT[]-클릭에 해당하는 산출물 파일 경로 배열
data_id_arrINTEGER[]-클릭된 파일의 일련번호 (data_id) 배열
+
+ + +

6. 통합 관리자 대시보드 추가 테이블

+ + +
+
+
code_master 공통 코드 대분류 마스터
+
공통 코드 대분류 그룹 관리
+
+
시스템 전반에서 활용되는 공통 코드의 대분류(분류 ID 및 명칭) 정보를 관리합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
main_codeVARCHAR(30)Primary Key / Not + Null대분류 분류 코드 식별자 (예: PROJECT_CATEGORY, USER_GROUP)
main_code_nmVARCHAR(100)Not Null대분류 분류 명칭 (예: 프로젝트 구분, 사용자 그룹)
use_ynCHAR(1)Default: 'Y'사용 여부 ('Y' / 'N')
rmkVARCHAR(255)-비고 및 대분류에 대한 부가 설명
+
+ + +
+
+
code_detail 공통 세부 코드
+
공통 코드 소분류 세부 설정값 관리
+
+
대분류에 종속되는 세부 소분류 코드값 및 한글 코드명, 정렬 순서를 관리합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
main_codeVARCHAR(30)PK / FK + (code_master)대분류 분류 식별자 (종속 삭제 ON DELETE CASCADE 연동)
sub_codeVARCHAR(30)PK / Not Null소분류 상세 코드값 (예: tdc, gpd, super, worker)
base_codeVARCHAR(61)Not Null / UNIQUE대/소분류 접합 고유 코드 (main_code || '_' || sub_code 형태)
code_nmVARCHAR(100)Not Null상세 세부 코드 한글명 (예: 수퍼관리자, 일반작업자)
sort_ordINTEGERDefault: 1화면 및 그리드 노출 정렬 순서
use_ynCHAR(1)Default: 'Y'사용 여부 ('Y' / 'N')
rmkVARCHAR(255)-비고 및 코드 상세 부가 설명
+
+ + +
+
+
tb_system_policy 시스템 공통 자동 보존/삭제 정책
+
전체 현장 대상 글로벌 보존 임계치 통제
+
+
개별 프로젝트 단위 제어가 아닌 시스템 전체 공통으로 일괄 적용될 파일 삭제 보존 기준 임계치를 단일 레코드로 저장 관리합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
policy_idSERIALPrimary Key정책 설정 번호
policy_keyVARCHAR(50)UNIQUE / Not Null정책 설정 고유 식별 키 (예: GLOBAL_DELETE_POLICY)
limit_file_countINTEGERNot Null자동 보존할 최소 안전 유지 파일 개수 기준 (숫자)
limit_daysINTEGERNot Null자동 보관/삭제 처리 기준 경과 보존 일수 (숫자)
is_activeBOOLEANDefault: TRUE글로벌 정책 작동 활성화 여부
upd_dateTIMESTAMPDefault: NOW()최종 정책 기준 변경 및 저장 시각
+
+ + +
+
+
tb_banner_notice 실시간 배너 공지 이력
+
대시보드 배너 송출 및 공지이력 관리
+
+
각 프로젝트 현장(또는 전체)에 전송할 배너 공지 내용, 시작/종료일 및 송출 상태 이력을 보관합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
banner_idSERIALPrimary Key배너 공지 일련번호
project_idVARCHAR(50)FK (tb_project)배너 송출 대상 프로젝트 식별자 (전체 프로젝트일 경우 'all' 기입)
reg_dateDATENot Null배너 공지 최초 등록/작성일 (임의 지정 가능)
start_dateDATENot Null공지 송출 시작 예정일
end_dateDATENot Null공지 송출 종료 예정일
notice_textTEXTNot Null흐르는 자막으로 출력될 배너 공지 내용 본문
status_codeVARCHAR(61)FK (code_detail)송출 상태 구분 코드 (NOTICE_STATUS_active, scheduled, expired)
+
+ + +
+
+
tb_auto_clean_log 배치 스케줄러 자동 삭제 처리 로그
+
정기 스케줄러 가동 감사 로그 보관
+
+
정기 배치 스케줄러 작동으로 스토리지 자동 청소가 구동되었을 때의 상세 처리 일시 및 결과를 보관합니다.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컬럼명 (Column)타입 (Type)제약조건설명 및 바인딩 예시
clean_log_idSERIALPrimary Key청소 처리 결과 고유 번호
clean_dateTIMESTAMPDefault: NOW()배치 스케줄러 가동 성공 및 로그 저장 일시
project_idVARCHAR(50)-청소 처리된 현장 ID (공통 정책 저장 이력일 시 'SYSTEM' 기입)
pathTEXT-청소/삭제 처리가 수행된 아카이브 폴더 경로
ruleTEXT-당시 실행된 정책 기준(임계치 수량, 경과 기한) 요약 내용
resultTEXT-삭제된 총 파일 건수 및 디스크 회수 용량 등 결과 리포트
+
+ +