PQProject 관계도
프로젝트 내 별도 다이어그램 파일은 없었지만, PQProject 하위 C# 소스 코드를 기준으로 클래스 관계와 모듈 아키텍처를 정리한 문서입니다.
1. 소스 구성 및 관계도
%%{init: {'themeVariables': {'fontSize': '18px'}}}%%
graph TD
classDef entry fill:#f9f,stroke:#333,stroke-width:2px,font-size:18px;
classDef infra fill:#bbf,stroke:#333,stroke-width:1px,font-size:18px;
classDef domain fill:#dfd,stroke:#333,stroke-width:1px,font-size:18px;
classDef external fill:#fdd,stroke:#333,stroke-width:1px,font-size:18px;
subgraph "1. Entry & Core Shell Layer"
Login["frmLogin.cs (로그인)"]:::entry
MainMDI["frmMainMDI.cs (MDI 메인 컨테이너)"]:::entry
SysUpdate["frmSystemUpdate.cs (업데이트)"]:::entry
end
subgraph "2. Core Infrastructure & Data Access Layer"
ClassDB["ClassDataBase.cs (DB 연동 / OleDb SQL Core)"]:::infra
CommonMod["CommonModule.cs (전역 유틸리티 / FarPoint Grid)"]:::infra
CommonGlob["CommonGlobal.cs / CommonCodeClass.cs"]:::infra
PersonDB["PersonDatabase.cs (인력 전용 DB 조율)"]:::infra
GridCtrl["GridControlClass.cs / GridControl.cs"]:::infra
FormList["OpenFormList.cs (MDI 폼 인스턴스 관리)"]:::infra
end
subgraph "3. External Integration & Custom Controls"
WebQuery["WebQueryLib.cs (웹 쿼리 / HTTP 연동)"]:::external
FTP["FtpDownload.cs / FtpUpload.cs (FTP 전송)"]:::external
AttachFile["AttachFileControl.cs (첨부파일 컨트롤)"]:::external
HWP["HwpItem.cs / frmHwpCtrlView.cs (한글 HWP 컨트롤)"]:::external
end
subgraph "4. Business Domain UI Forms"
subgraph "A. 인력 관리 (Person)"
PersonForms["frmPerson.cs / frmPersonInfo.cs<br/>frmPersonList.cs / frmPersonCareer.cs"]:::domain
end
subgraph "B. 회사 및 사업 실적 (Company & Project)"
ProjectForms["frmCompanyProjectInfo.cs / frmCompanyCareer.cs<br/>frmCompanyProjectCreate.cs / frmCreateProject.cs"]:::domain
end
subgraph "C. 실적/가점 관리 (R&D / Invest / Develop / Most)"
SpecialForms["frmRD.cs / frmInvest.cs / frmDevelop.cs<br/>frmMost.cs / frmMostManagement.cs"]:::domain
end
subgraph "D. 공통 코드 & PQ 자격/평가 조건"
CodeForms["frmCommonCode.cs / frmCommonJobType.cs<br/>frmCommonConLevel1~3.cs / frmCommonConList.cs"]:::domain
end
subgraph "E. 보고서 & 출력 (Reports)"
ReportForms["frmReportFindCondition.cs / frmReportPersonJobList.cs<br/>frmReportPersonLevel.cs / frmPersonReportPrint.cs"]:::domain
end
end
Login --> MainMDI
MainMDI --> FormList
MainMDI --> PersonForms
MainMDI --> ProjectForms
MainMDI --> SpecialForms
MainMDI --> CodeForms
MainMDI --> ReportForms
PersonForms --> PersonDB
ProjectForms --> ClassDB
SpecialForms --> ClassDB
CodeForms --> ClassDB
ReportForms --> ClassDB
PersonForms --> CommonMod
ProjectForms --> CommonMod
SpecialForms --> CommonMod
PersonForms --> AttachFile
ProjectForms --> AttachFile
ReportForms --> HWP
ClassDB --> CommonGlob
CommonMod --> GridCtrl
WebQuery --> FTP
2. 한눈에 보는 핵심 흐름
복잡한 클래스 간 연결 대신, 사용자가 기능을 실행했을 때의 큰 흐름을 단순화한 그림입니다. 실제 세부 호출 관계는 위의 상세 관계도를 참고하세요.
%%{init: {'themeVariables': {'fontSize': '20px'}, 'flowchart': {'nodeSpacing': 55, 'rankSpacing': 70}}}%%
flowchart LR
U[사용자] --> L[로그인<br/>frmLogin.cs]
L --> M[메인 화면<br/>frmMainMDI.cs]
M --> F[업무 화면<br/>인력 · 사업 · 실적<br/>조건 · 보고서]
F --> C[공통 모듈<br/>CommonModule.cs<br/>그리드 · 공통 코드]
F --> D[데이터 처리<br/>ClassDataBase.cs<br/>PersonDatabase.cs]
D --> DB[(OleDb 데이터베이스)]
F -. 파일/문서 .-> X[외부 연동<br/>첨부파일 · HWP · FTP · WebQuery]
style U fill:#fff3cd,stroke:#b8860b,stroke-width:2px,font-size:20px
style L fill:#f9f,stroke:#333,stroke-width:2px,font-size:20px
style M fill:#f9f,stroke:#333,stroke-width:2px,font-size:20px
style F fill:#dfd,stroke:#333,stroke-width:2px,font-size:20px
style C fill:#bbf,stroke:#333,stroke-width:2px,font-size:20px
style D fill:#bbf,stroke:#333,stroke-width:2px,font-size:20px
style DB fill:#e8e8e8,stroke:#333,stroke-width:2px,font-size:20px
style X fill:#fdd,stroke:#333,stroke-width:2px,font-size:20px
계층으로 읽는 소스 구성
다이어그램을 볼 수 없는 환경에서도 구조를 파악할 수 있도록 같은 내용을 단계별로 정리했습니다.
사용자
└─ frmLogin.cs 로그인
└─ frmMainMDI.cs 메인 화면 / 메뉴 / 자식 폼 관리
├─ 업무 화면
│ ├─ 인력 관리: frmPerson* 인력 정보·경력·등급
│ ├─ 사업/실적: frmCompany* 회사·사업·참여 이력
│ ├─ 실적/가점: frmRD, frmInvest,
│ │ frmDevelop, frmMost
│ ├─ 조건/코드: frmCommon* PQ 평가 기준·공통 코드
│ └─ 보고서: frmReport*, 검색·출력·인쇄
│ frmPersonReportPrint
│
├─ 공통 인프라
│ ├─ ClassDataBase.cs OleDb SQL·DB 처리
│ ├─ PersonDatabase.cs 인력 DB 조율
│ ├─ CommonModule.cs 전역 기능·그리드
│ └─ GridControl*, CommonGlobal* 공통 UI·전역 코드
│
└─ 외부 연동
├─ AttachFileControl.cs 첨부파일
├─ HwpItem.cs / frmHwpCtrlView.cs HWP 문서
├─ FtpDownload.cs / FtpUpload.cs FTP 전송
└─ WebQueryLib.cs 웹/HTTP 연동
업무 화면 ──> 공통 인프라 ──> OleDb 데이터베이스
업무 화면 ──> 외부 연동(필요한 기능에서만 사용)
3. 주요 계층 및 모듈 역할
| 계층 | 주요 파일 / 클래스 | 역할 |
|---|---|---|
| 진입 및 메인 셸 (Entry & Shell) | frmLogin.cs, frmMainMDI.cs, frmSystemUpdate.cs |
시스템 진입, 사용자 인증, MDI 메인 메뉴 처리, 자식 폼 수명주기 관리 |
| 데이터 및 인프라 (Core Infrastructure) | ClassDataBase.cs, PersonDatabase.cs, CommonModule.cs, GridControlClass.cs |
OleDb 기반 DB 연결, SQL 처리, 전역 유틸리티, FarPoint Spread 그리드 연동 |
| 외부 통합 및 컨트롤 (External & Controls) | WebQueryLib.cs, AttachFileControl.cs, frmHwpCtrlView.cs, FtpDownload.cs |
웹 서버/HTTP API 연동, 첨부파일 업로드/다운로드, HWP 문서 처리, FTP 전송 |
| 인력 관리 (Person) | frmPerson, frmPersonInfo, frmPersonCareer, frmPersonList |
기술인력 기본 정보, 자격증, 회사 경력, 기술 등급 관리 |
| 사업 및 실적 (Project) | frmCompanyProjectInfo, frmCompanyCareer, frmCreateProject |
참여 회사 및 사업 수행 실적, 참여 인원 매핑, 실적 이력 관리 |
| 실적/가점 (Special) | frmRD, frmInvest, frmDevelop, frmMost |
연구개발, 투자실적, 개발실적, 가점/우수실적 관리 및 보고서 연동 |
| 자격/조건 설정 (Condition) | frmCommonConLevel1~3, frmCommonConList, frmCommonCode |
PQ 평가 조건, 등급별 기준, 공통 코드 관리 |
| 보고서 및 출력 (Reports) | frmReportFindCondition, frmReportPersonJobList, frmPersonReportPrint |
평가용 검색 조건 설정, 인력/사업별 제출 문서 출력 및 인쇄 |
필요한 경우 특정 폼이나 모듈 간 호출 흐름까지 이어서 정리할 수 있습니다.