Files
bns_system/README.md

81 lines
5.0 KiB
Markdown
Raw Normal View History

2025-09-16 14:04:11 +09:00
# PLM 솔루션 (ILSHIN)
## 프로젝트 개요
본 프로젝트는 제품 수명 주기 관리(PLM - Product Lifecycle Management) 솔루션입니다. 제품 개발 초기 단계부터 설계, 생산, 유통, 유지보수 및 폐기에 이르기까지 제품과 관련된 모든 데이터와 프로세스를 통합적으로 관리하는 것을 목표로 합니다.
## 주요 기능 (예상)
소스 코드 분석 및 일반적인 PLM 솔루션의 기능을 바탕으로 다음과 같은 메뉴/기능을 포함할 것으로 예상됩니다. 실제 메뉴는 애플리케이션 실행 후 확인해야 합니다.
- **제품 정보 관리:** 제품 분류, 속성, 사양 등 관리
- **BOM (Bill of Materials) 관리:** 부품 목록, 계층 구조 관리 (eBOM, mBOM 등)
- **설계 변경 관리 (ECO/ECR):** 설계 변경 요청, 검토, 승인 프로세스 관리
- **문서 관리:** CAD 데이터, 도면, 기술 문서 등의 버전 관리 및 접근 제어
- **프로젝트/일정 관리:** 개발 프로젝트 일정, 리소스, 산출물 관리
- **사용자 및 권한 관리:** 역할 기반 접근 제어
- **워크플로우 관리:** 표준 프로세스 자동화 및 추적
- **데이터 시각화/리포트:** 다양한 형식의 보고서 생성 (데이터 표시는 `jqGrid` 등을 활용할 것으로 보입니다.)
## 기술 스택
- **Backend:**
- Java 7 (Eclipse project settings and JRE 7 libraries confirm version 1.7)
- Spring Framework (v3.2.4.RELEASE)
- MyBatis (v3.2.3) - 데이터베이스 연동
- **Frontend:**
- JSP (JavaServer Pages)
- JavaScript (jQuery v1.11.3 / v2.1.4, jqGrid v4.7.1 확인)
- CSS
- Apache Tiles (v3.0.5) - 페이지 레이아웃/템플릿
- **Database:**
- PostgreSQL (연결 정보 및 드라이버 확인)
- **Web Server / WAS:**
- Apache Tomcat (v7.0 - `.classpath``SETTING_GUIDE.txt` 참조)
- **Build:**
- IDE (Eclipse) 기반 빌드 (소스는 `src`, 컴파일된 클래스는 `WebContent/WEB-INF/classes`, 라이브러리는 `WebContent/WEB-INF/lib`)
- Maven/Gradle 등 표준 빌드 관리 도구는 사용되지 않음
- **주요 라이브러리:**
- `log4j`, `slf4j` (로깅)
- Tomcat JNDI DataSource 사용 추정 (Datasource 설정 및 관련 라이브러리 부재 기반)
- `jackson`, `json-lib`, `gson` (JSON 처리)
- Apache Commons 라이브러리 (Lang, IO, Collections, FileUpload 등)
- `jxl`, `poi` (Excel 파일 처리)
- `pdfbox` (PDF 처리)
- 기타 다수 (`WebContent/WEB-INF/lib` 디렉토리 참조)
## 프로젝트 구조 (폴더별 역할)
- **`.git/`**: Git 버전 관리 시스템 메타데이터 저장소.
- **`tomcat-conf/`**: Docker 환경에서 사용될 Tomcat 서버 설정 파일 (예: `server.xml`, `context.xml`).
- **`db/`**: 데이터베이스 관련 파일 저장 (예: Docker 초기화용 DB 덤프 `.pgsql` 파일).
- **`.svn/`**: Subversion 버전 관리 메타데이터 (과거 SVN 사용 이력 추정).
- **`WebContent/`**: 웹 애플리케이션 루트 디렉토리 (Eclipse Dynamic Web Project 표준).
- 정적 리소스 (HTML, CSS, JS, 이미지 등).
- JSP 파일.
- `WEB-INF/`: 웹 애플리케이션 설정 및 라이브러리.
- `classes/`: 컴파일된 Java 클래스 파일 (`src` 폴더의 결과물).
- `lib/`: 애플리케이션 실행에 필요한 라이브러리 (`.jar` 파일).
- `web.xml`: 웹 애플리케이션 배포 서술자.
- 기타 설정 파일 (예: Tiles 설정).
- **`src/`**: Java 소스 코드 (`.java` 파일) - 백엔드 로직 (Controller, Service, DAO 등).
- **`.settings/`**: Eclipse IDE 프로젝트 관련 설정 파일.
## 실행 환경 설정 (Docker)
이 프로젝트는 제공된 `Dockerfile``docker-compose.yml` 파일을 사용하여 Docker 컨테이너 환경에서 실행할 수 있습니다.
1. **Docker 및 Docker Compose 설치:** 시스템에 Docker와 Docker Compose가 설치되어 있어야 합니다.
2. **데이터베이스 파일 준비:** `ilshin.pgsql` 파일이 프로젝트 루트 디렉토리에 있는지 확인합니다. (필요시 `docker-compose.yml`에서 파일 경로 수정)
3. **Docker Compose 실행:** 프로젝트 루트 디렉토리에서 다음 명령어를 실행합니다.
```bash
docker-compose up --build -d
```
- `-d` 옵션은 백그라운드 실행을 의미합니다.
4. **애플리케이션 접속:** 웹 브라우저에서 `http://localhost:8080` (또는 `docker-compose.yml`에 설정된 포트)으로 접속합니다.
**참고:**
- 애플리케이션이 데이터베이스 연결 정보를 읽는 방식 (예: JNDI, 환경 변수, 설정 파일)에 따라 `docker-compose.yml``app` 서비스 환경 변수 또는 Tomcat 설정 파일 (`context.xml` 등) 수정이 필요할 수 있습니다.
- `SETTING_GUIDE.txt`에 명시된 Tomcat 컨텍스트 경로 (`/ilshin`)를 사용하려면 `Dockerfile`에서 `WebContent``/usr/local/tomcat/webapps/ilshin`로 복사하거나 Tomcat 설정을 변경해야 할 수 있습니다. 현재 설정은 `/` (ROOT) 경로로 배포됩니다.