jex 관련 개념 사용법 정리
in etc on Etc
Jex Framework 기본설명
1. Jex Framework
- JAVA Extension Framework
- 일반적 MVC2 모델에서 Controller(servlet), model(EJB, POJO), view(jsp) 사용하는 것과 달리 Web(service), Action, View 로 이뤄져 있으며, Client->(request)->Web(service)->Action->view->(response)의 과정으로 요청/응답 받음
2. JexFrameWork 구성
- JexFrameWork 는 화면 표시 담당하는 PT(Presentation Tier)와 BT(Business Tier)로 이뤄짐.
- PT와 BT는 하나의 서버로 구성 가능
3. JexFrameWork 개발 시스템 구성도
- JexFrameWork 는 jexStudio라는 web기반 개발 도구와 SVN을 통환 개발 환경 제공
- SVN 통해 관리 및 공유, JexDeploy 를 통해 개발 서버에 자동으로 컴파일 후 배포
4. JexFramework 용어
공통
- input/output field
- JexFramework 기반의 모든 컴포넌트 실행 위한 입출ㄹ력값
- JexStudio에서 컴포넌트 생성시 자동으로 XML 파일 정의
- JexStudio의 표준 용어에 등록 된 값만 사용 가능
- IDO(Integrated Data Object)
- DB SQL Query를 수행하기 위한 정보를 가지고 있는 컴포넌트
- JexStudio에서 IDO를 등록 후 SQL을 입력하면 자동으로 필요한 input/output을 정의하며 XML 파일로 생성
- IMO(Integrated Message Object)
- 메시지 통신(전문) 수행하기 위한 정보 가진 컴포넌트
- JexStudio에서 IMO를 등록하여 입/출력 값 (전문 입/출력)을 설정 시 Input/output 필드를 가진 XML 파일로 생성
- CMO (Common Message Object)
- IMO, Service 등 컴포넌트 들의 Input/output 필드에서 공통적으로 사용하는 값을 정의 하는 컴포넌트
- JexStudio에서 CMO를 등록 하여 설정시 Input/output필드를 가진 XML파일로 생성
PT(Presentation Tier)
- WebService
- Web 프로그래밍에서 JSP로 업무 호출하는 걸 JexFramework에서는 WebService라 부름
- WebService는 Jex에서 등록하게 되며, XML 파일로 새애성됨
- WebService 등록 시, 화면을 구성하는 View와 업무로직을 구성하는 Action 여부 선택
- View 호출 시 http://project.host.com/webService_ID.act와 같이 .act확장자로 호출
- Action 호출 시 http://project.host.com/webService_ID.jct와 같이 .jct확장자로 호출
- Action
- WebService의 업무로직을 구현하는 컴포넌트
- WebService 등록시 Action을 사용하게 설정하면 JSP 파일이 생성됨
- IDO, IMO를 사용하여 다른 서버와 통신 가능
- View
- WebService의 화면을 구현하는 컴포넌트
- WebService 등록시 View를 사용하게 설정하면 JSP 파일이 생성됨
BT(Business Tier)
- Service
- PT의 Action과 동일하게 업무 로직을 구현하는 컴포넌트
- Jex에서 service를 등록하여 입/출력값 설정시 Input/output 필드를 가진 XML 파일과, 업무로직 기술할 수 있는 JAVA 파일이 생성됨
- 화면 없이 입/출력 값으로만 동작, PT의 Action에서 IMO를 통해 호출, 또는 외부 서버와 연계 할 때도 사용
- BCS(Business Component Service)
- 공통적으로 사용하는 업무로직 기술
- jex에서 BCS를 등록하여 입/출력 값을 설정하면 Input/output 필드를 가진 XML파일과 업무 로직 기술할 수 있는 JAVA 파일 생성
표준관리
메타 관리
개요
- 메타관리는 표준단어를 관리하기 위한 메뉴, 각 컴포넌트의 I/O 필드 정보 추가 시 사용
- 일반적으로 각 프로젝트에서 표준단어 추가하는 경우, 각 프로젝트 내에서만 사용
- 그러나 모든 프로젝트에서 동일한 표준단어 사용하고 싶은 경우 ‘Studio Manager’ 프로젝트에 추가하여 각 프로젝트에서 모두 사용하도록 함(Studio Manager는 관리자 계정만 접근 가능)
- 개인적으로 느끼기엔 DTO 마냥 하나의 엔티티 느낌인 듯.
1. 설정
- jexStudio의 ‘jex.studio.xml’의 설정 수정
stdWrdUseYN : ‘Studio Manager’ 프로젝트에 등록한 표준 단어를 Y인 경우 모든 프로젝트에 보이도록 설정, N인 경우 각 프로젝트 내에서 추가한 표준 단어만 보이도록 설정
2. 메타정보 조회
- 표준단어 ‘%’로 like조회 가능(ex. %계좌%, %계좌, 계좌%)
- 표준단어 검색시 초성 검새개도 가능(ex. %ㄱㅈ%, %ㄱㅈ, ㄱㅈ)
3. 메타 정보 등록 및 수정
- 한글명 : 등록할 표준 단어 한글 명
- 영문 약어명 : 표준 단어 나타낼 약어명. 등록 후 변경 불가
- 영문명 : 등록할 표준 단어의 영문명을 입력합니다.
- 타입 : 해당 표준단어가 문자형인지, 숫자형인지 구분하여 선택
- 길이 : 표준 단어를 IMO에서 사용할 시 기본 길이 ㅈ정
- 설명 : 등록할 표준 단어에 대한 설명 입력
코드 관리
코드 관리는 “정적인 정보”를 관리하기 위해 사용
- 대코드는 여러개의 소코드 포함 가능
- 소코드는 소분류 코드와 언어별 소분류명을 등록할 수 있다.
- 언어별로 등록이 가능하므로 다국어 페이지 개발 시 동일하게 소분류 코드를 사용하여 코딩 해두면, 언어에 따라 변경된 소 분류명을 알아서 반환해준다.
1. 설정
- 코드는 jex형상 관리를 통해 테스트, 운영서버로 직접 파일 배포하는 것과, jexAdmin을 통해 업무서버로 배포하는 방법 2가지가 제공된다.
2. 대코드
- 대코드는 소코드의 그룹이라 할 수 있으며, 소코드는 항상 대코드에 소속되어 있어야 한다.
- 업무 소스에서는 대코드를 사용해 대코드의 모든 소코드 정보 가져오기 가능
- 대코드는 업무에서 원하는 대로 명명해서 사용 가능하나, jex 표준 대분류 코드가 존재한다
- 대코드가 패키지 느낌인 듯 하다. 소코드가 그 안의 java파일 처럼 패키지 안의 파일인 거 같고
jex 표준 대분류 코드
- RSPS_CD (응답코드): 업무에서 Exception 시, Error 메세지 코드 집합.
- SYS_ERR_CD (jex 시승템 코드): jex 에러 코드를 관리하는 코드집합.
- SYS_CD (미사용 메시지 코드) : jexadmin-서비스 제어관리에서 미사용 메시지 코드 사용하는 경우 사용되는 코드 집합
예제.
js에서 코드 정보를 가져오기 위해서는 먼저 code_manager객체 생성
사용 가능한 옵션
- order_base (value) : “key”,”code”,”usr”
- 기본값 : key
- 정렬 기준이 되는 값을 의미(Key: 소분류 코드를 기준으로 정렬, CODE: 소분류 명을 기준으로 정렬, USR: 소분류 순번을 기준으로 정렬)
- order (value) : “ASC”,”DESC”
- 기본값 : ASC
- 정렬순서 의미 (ASC: 오름차순, DESC: 내림차순)
객체 기본 생성 방법
객체 생성 방법
- code_manager 기본 객체 생성 방법
var JexUtil = {};
JexUtil.getCodeManager = function(){
return jex.js.plugin("code_manager,{
"ORDER_BASE":"USR"
});
return codeManager;
}
코드 정보 가져오기 예제(js)
- 소분류명 가져오기
var code = JexUtil.getCodeManager.getCode(“TG1”, “TC1”); //테스트 코드
소분류 약어명 가져오기 var code = JexUtil.getCodeManager.getSimpleCode(“TG1”,”TC1”); //테스트 코드 약어 명
대코드에 대한 소코드 리스트 정보 가져오기 var codeList = JexUtil.getCodeManager.getCode(“TG1”); // {“TC1”:”테스트코드입니다”, “TC2”:”테스트코드2입니다.”}
소분류 순번에 의해 정렬된 소 코드 정보 가져오기
var codeList = JexUtil.getCodeManagerByUsrSort().getCode(“TG1”);//{“TC1”:”테스트코드입니다”TC2”:”테스트코드2입니다.”}