2025-11-26 11:12:42 +09:00
2025-11-26 15:35:49 +09:00
2025-09-15 20:30:37 +09:00
2025-12-02 17:49:35 +09:00
2025-08-30 01:33:34 +09:00
2025-08-30 01:33:34 +09:00
2025-11-13 09:56:55 +09:00
2025-10-20 23:04:30 +09:00
2025-08-30 01:33:34 +09:00
2025-11-10 12:17:16 +09:00
2025-08-30 01:33:34 +09:00
2025-08-30 01:07:38 +09:00
2025-08-30 01:07:38 +09:00
2025-11-17 17:52:03 +09:00
2025-10-15 10:06:05 +09:00
2025-09-12 09:42:36 +09:00
2025-10-15 14:43:56 +09:00
2025-08-30 01:47:43 +09:00
2025-08-30 01:33:34 +09:00
2025-08-30 01:33:34 +09:00

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 - .classpathSETTING_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 디렉토리 참조)

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: 드롭다운 엘리먼트 ID
  • dropdownEl: 드롭다운 DOM 엘리먼트
  • isOpen: 드롭다운 열림 상태
  • isScrollable: 드롭다운 스크롤 가능 여부
  • focusedIndex: 포커스된 항목 인덱스

시스템 적용 방식

본 RPS 시스템에서는 Materialize CSS 드롭다운을 다음과 같이 활용합니다:

  1. 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>
    
  2. 동적 메뉴 로딩: AJAX를 통해 서버에서 메뉴 데이터를 가져와 동적으로 드롭다운 생성

  3. Material Design 아이콘: 메뉴 항목에 Material Icons 적용으로 시각적 향상

  4. 커스텀 스타일링: 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)

이 프로젝트는 제공된 Dockerfiledocker-compose.yml 파일을 사용하여 Docker 컨테이너 환경에서 실행할 수 있습니다.

  1. Docker 및 Docker Compose 설치: 시스템에 Docker와 Docker Compose가 설치되어 있어야 합니다.
  2. 데이터베이스 파일 준비: ilshin.pgsql 파일이 프로젝트 루트 디렉토리에 있는지 확인합니다. (필요시 docker-compose.yml에서 파일 경로 수정)
  3. Docker Compose 실행: 프로젝트 루트 디렉토리에서 다음 명령어를 실행합니다.
    docker-compose up --build -d
    
    • -d 옵션은 백그라운드 실행을 의미합니다.
  4. 애플리케이션 접속: 웹 브라우저에서 http://localhost:8080 (또는 docker-compose.yml에 설정된 포트)으로 접속합니다.

참고:

  • 애플리케이션이 데이터베이스 연결 정보를 읽는 방식 (예: JNDI, 환경 변수, 설정 파일)에 따라 docker-compose.ymlapp 서비스 환경 변수 또는 Tomcat 설정 파일 (context.xml 등) 수정이 필요할 수 있습니다.
  • SETTING_GUIDE.txt에 명시된 Tomcat 컨텍스트 경로 (/ilshin)를 사용하려면 Dockerfile에서 WebContent/usr/local/tomcat/webapps/ilshin로 복사하거나 Tomcat 설정을 변경해야 할 수 있습니다. 현재 설정은 / (ROOT) 경로로 배포됩니다.
Description
wace_plm demo
Readme 214 MiB
Languages
PLpgSQL 95.7%
Java 3%
JavaScript 1.1%
CSS 0.2%