JCF3.0™ 공통모듈-프로그램 관리 가이드

From JCFWiKi

Jump to: navigation, search

그림:check.gif

  • 산출물 : JCF3.0™ 공통모듈-프로그램 관리 가이드
  • 작성자: 서경진
  • 작성일 : 2007/12/03
  • 버전 : 0.9
  • 개정이력 :

Copyright © 2007 Daewoo Information Systems Co., Ltd.

목차

[편집] 개요

JCF3.0 공통모듈은 기본적으로 메뉴와 프로그램을 이원화하여 관리하도록 되어 있다. 메뉴와 프로그램이 일치하는 부분도 있지만 하나의 메뉴가 제공하는 화면에 2개 이상의 프로그램이 존재할 수 있다. 따라서 메뉴와 프로그램의 별도 관리하도록 메뉴관리와 프로그램관리 모듈을 제공한다.

[편집] 프로그램관리 모듈

현재 UI가 Miplatform으로 구성되어 있으므로 서비스 컴포넌트와 1:1로 매핑된 UI화면(XML)이 프로그램의 개념이 있다고 할 수 있다. 따라서 각 화면의 버튼과 같은 컴포넌트에 대한 권한 및 접근통제가 프로그램 범위에서 관리된다. 기본적으로 프로그램관리 모듈은 프로그램관리를 위한 기본적인 CRUD와 단위 컴포넌트에 대한 권한 및 접근통제를 위해 AuthService와 연동하여 서비스를 제공한다.

[편집] JCF3.0 프로그램관리의 특징

[편집] 프로그램관리 모듈 설정

[편집] 테이블 생성하기

  • 프로그램 테이블
CREATE TABLE PROGRAM
(
  PROGRAM_ID            VARCHAR2(20 BYTE)       NOT NULL,
  PROGRAM_NAME          VARCHAR2(50 BYTE),
  PROGRAM_PATH          VARCHAR2(100 BYTE),
  PROGRAM_DESC          VARCHAR2(50 BYTE),
  FIRST_INSERT_TIME     TIMESTAMP(6),
  LAST_UPDATE_TIME      TIMESTAMP(6),
  FIRST_INSERT_USER_ID  VARCHAR2(20 BYTE),
  LAST_UPDATE_USER_ID   VARCHAR2(20 BYTE),
  PROGRAM_SRCNAME       VARCHAR2(20 BYTE),
  DIV_CODE              VARCHAR2(10 BYTE),
  SCRTGRAD_CODE         VARCHAR2(10 BYTE)
);
 
CREATE UNIQUE INDEX PROGRAM_PK ON PROGRAM
(PROGRAM_ID)
LOGGING
NOPARALLEL;
 
 
ALTER TABLE PROGRAM ADD (
  CONSTRAINT PROGRAM_PK
 PRIMARY KEY
 (PROGRAM_ID)
    USING INDEX);

[편집] Spring 프로그램 설정

  • applicationContext-program.xml
<?xml version="1.0" encoding="UTF-8"?>
 
<beans
	default-autowire="no"
	default-lazy-init="false"
	default-dependency-check="none"
  	xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:jee="http://www.springframework.org/schema/jee"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
	http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd" >
	
	<bean id="programService" class="jcf.biz.program.service.ProgramServiceImpl">
		<property name="programDao"><ref bean="programDao"/></property>
	</bean>
	
    <bean id="programDao" class="jcf.biz.program.dao.ProgramDAOImpl">
        <property name="sqlMapClient"><ref bean="sqlMapClient"/></property>
    </bean>
	
</beans>

[편집] 프로그램관리 모듈 구조

  • Spring Bean에 등록된 공통모듈 관계도

공통모듈은 메뉴관리, 프로그램관리, 공통코드관리, 사용자관리, 권한관리, 용어사전관리, 보안관리 기능을 제공하고 각 기능을 제공하기 위해 Spring에 등록된 Bean들이 다음과 같은 관계를 가지고 상호 연동한다.



  • Spring Bean에 등록된 메뉴관리 모듈 관계도
  1. ProgramAction을 통해 요청된 request는 ProgramService로 전달되고 처리된다.
  2. ProgramService는 프로그램정보에 대한 CRUD API를 제공한다.
  3. ProgramService는 ProtramDAO를 통해 DB에 접근하고 필요한 정보에 대한 조작을 수행한다.
  4. 프로그램 사용 시 버튼에 대한 통제는 AuthService를 통해 제공된다.
  5. 프로그램 사용 시 AuthService는 버튼에 대한 접근통제 권한을 DB(Cache 적용)에서 조회하고 통제하여 프로그램 화면에 출력한다.


[편집] Presentation Tier

  • 프로그램관리 화면을 위해 별도의 UI용 모델을 구성하지 않고 Business Tier에서 사용하는 ProgramRole을 그대로 활용한다.

[편집] Business Tier

  • ProgramService

프로그램관리를 위한 CRUD를 제공하는 서비스 컴포넌트이다. 비즈니스 흐름의 특성상 저장을 요청하면 rowStatus에 따라 적절한 로직이 수행되어 처리된다. 다음은 저장을 요청하면 ProgramService에서 구동되는 함수를 나타낸 것이다.

public String saveProgramList(List programList) {
	int rowCount = 0;
 
	for (Iterator iterator = programList.iterator(); iterator.hasNext();) {
		Program program = (Program) iterator.next();
		if (program.getRowStatus().equalsIgnoreCase(Constants.ROW_STATUS_INSERT)) {
			rowCount += programDao.insertProgram(program);
		}
		else if (program.getRowStatus().equalsIgnoreCase(Constants.ROW_STATUS_UPDATE)) {
			rowCount += programDao.updateProgram(program);
		}
		else if (program.getRowStatus().equalsIgnoreCase(Constants.ROW_STATUS_DELETE)) {
			rowCount += programDao.deleteProgram(program.getId());
		}
	}
	return ((Integer) rowCount).toString();
}
  • Business Tier: 프로그램관리 클래스다이어그램

[편집] Persistence Tier

[편집] 프로그램 관리

  • 프로그램을 추가하고 구성하는 관리화면

화면에서 위에 있는 공통버튼은 AuthService에서 제공하는 서비스에 따라 출력된다. 프로그램의 구성에서 저장, 수정, 삭제는 X-internet의 특성에 따라 save 메소드하나로 동시에 처리된다. 물론 권한이 있는 경우에만 버튼이 출력되고 실행된다. 프로그램를 입력하여 구성할 경우 메뉴에 맵핑하기 위해 메뉴등록 프로그램의 메뉴 프로퍼티에 프로그램 번호를 입력한다.