7a57faa87b7d8268d9c19bd01791c6ebd7fec3fc
RPS 업무관리 시스템
프로젝트 개요
본 프로젝트는 RPS(Resource Planning System) 업무관리 시스템입니다. 기업의 자원 계획 및 업무 프로세스를 통합적으로 관리하여 효율적인 업무 처리와 자원 최적화를 목표로 합니다.
주요 기능
RPS 업무관리 시스템의 주요 기능은 다음과 같습니다:
- 자원 관리: 인적 자원, 물적 자원, 시설 등의 통합 관리
- 업무 프로세스 관리: 업무 흐름 정의, 승인 프로세스, 워크플로우 관리
- 프로젝트 관리: 프로젝트 계획, 일정 관리, 진행 상황 추적
- 문서 관리: 업무 문서의 생성, 수정, 승인, 보관 및 검색
- 보고서 및 분석: 업무 현황 분석, KPI 관리, 대시보드 제공
- 사용자 및 권한 관리: 역할 기반 접근 제어 및 권한 관리
- 알림 및 메시징: 업무 관련 알림, 메시지 전송 기능
- 데이터 시각화: 차트, 그래프를 통한 데이터 시각화 (jqGrid, Tabulator 등 활용)
기술 스택
- 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, Tabulator 확인)
- CSS (basic.css - 메인 스타일시트, 드롭다운 메뉴 및 반응형 디자인 포함)
- Apache Tiles (v3.0.5) - 페이지 레이아웃/템플릿
- Database:
- PostgreSQL (연결 정보 및 드라이버 확인)
- Web Server / WAS:
- Apache Tomcat (v7.0 -
.classpath및SETTING_GUIDE.txt참조)
- Apache Tomcat (v7.0 -
- Build:
- IDE (Eclipse) 기반 빌드 (소스는
src, 컴파일된 클래스는WebContent/WEB-INF/classes, 라이브러리는WebContent/WEB-INF/lib) - Maven/Gradle 등 표준 빌드 관리 도구는 사용되지 않음
- IDE (Eclipse) 기반 빌드 (소스는
- 주요 라이브러리:
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디렉토리 참조)
UI 구조 및 메뉴 시스템
메뉴 구조
- 상단 네비게이션: 메인 메뉴가 상단 헤더에 위치
- 드롭다운 메뉴: 상단 메뉴 클릭 시 하위 메뉴가 드롭다운으로 표시
- 전체 화면 활용: 왼쪽 프레임을 제거하고 컨텐츠 영역을 전체 화면으로 확대
- 반응형 디자인: 다양한 화면 크기에 대응하는 반응형 레이아웃
주요 파일
- header.jsp: 상단 메뉴 및 네비게이션 구조 정의
- basic.css: 메인 스타일시트, 드롭다운 메뉴 스타일 포함
- 메뉴 관련 JavaScript: jQuery 기반 메뉴 인터랙션 처리
Materialize CSS 드롭다운 시스템
본 시스템은 Materialize CSS 프레임워크의 드롭다운 컴포넌트를 활용하여 현대적이고 사용자 친화적인 메뉴 시스템을 구현합니다.
Materialize CSS 드롭다운 특징
기본 구조
<!-- 드롭다운 트리거 -->
<a class='dropdown-trigger btn' href='#' data-target='dropdown1'>Drop Me!</a>
<!-- 드롭다운 구조 -->
<ul id='dropdown1' class='dropdown-content'>
<li><a href="#!">one</a></li>
<li><a href="#!">two</a></li>
<li class="divider" tabindex="-1"></li>
<li><a href="#!">three</a></li>
<li><a href="#!"><i class="material-icons">view_module</i>four</a></li>
<li><a href="#!"><i class="material-icons">cloud</i>five</a></li>
</ul>
JavaScript 초기화
// DOM 로드 완료 후 초기화
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.dropdown-trigger');
var instances = M.Dropdown.init(elems, options);
});
// jQuery 방식
$('.dropdown-trigger').dropdown();
주요 옵션
| 옵션명 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| alignment | String | 'left' | 메뉴 정렬 방향 정의 |
| autoTrigger | Boolean | true | 키보드 포커스 자동 설정 |
| constrainWidth | Boolean | true | 드롭다운 너비를 트리거 크기에 맞춤 |
| container | Element | null | 드롭다운의 경계 컨테이너 지정 |
| coverTrigger | Boolean | true | false시 트리거 아래에 드롭다운 표시 |
| closeOnClick | Boolean | true | 항목 클릭시 드롭다운 닫기 |
| hover | Boolean | false | 호버시 드롭다운 열기 |
| inDuration | Number | 150 | 열림 애니메이션 지속시간 (ms) |
| outDuration | Number | 250 | 닫힘 애니메이션 지속시간 (ms) |
주요 메서드
.open(): 드롭다운 열기.close(): 드롭다운 닫기.recalculateDimensions(): 내용 변경시 크기 재계산.destroy(): 인스턴스 제거
인스턴스 속성
el: 초기화된 DOM 엘리먼트options: 초기화 옵션 객체id: 드롭다운 엘리먼트 IDdropdownEl: 드롭다운 DOM 엘리먼트isOpen: 드롭다운 열림 상태isScrollable: 드롭다운 스크롤 가능 여부focusedIndex: 포커스된 항목 인덱스
시스템 적용 방식
본 RPS 시스템에서는 Materialize CSS 드롭다운을 다음과 같이 활용합니다:
-
CDN 라이브러리 로드
<!-- Materialize CSS --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"> <!-- Material Icons --> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <!-- Materialize JavaScript --> <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script> -
동적 메뉴 로딩: AJAX를 통해 서버에서 메뉴 데이터를 가져와 동적으로 드롭다운 생성
-
Material Design 아이콘: 메뉴 항목에 Material Icons 적용으로 시각적 향상
-
커스텀 스타일링: basic.css를 통해 기존 시스템 디자인과 조화로운 스타일 적용
프로젝트 구조 (폴더별 역할)
.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 컨테이너 환경에서 실행할 수 있습니다.
- Docker 및 Docker Compose 설치: 시스템에 Docker와 Docker Compose가 설치되어 있어야 합니다.
- 데이터베이스 파일 준비:
ilshin.pgsql파일이 프로젝트 루트 디렉토리에 있는지 확인합니다. (필요시docker-compose.yml에서 파일 경로 수정) - Docker Compose 실행: 프로젝트 루트 디렉토리에서 다음 명령어를 실행합니다.
docker-compose up --build -d-d옵션은 백그라운드 실행을 의미합니다.
- 애플리케이션 접속: 웹 브라우저에서
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) 경로로 배포됩니다.
Description
Languages
PLpgSQL
95.7%
Java
3%
JavaScript
1.1%
CSS
0.2%