eGovFramework 공통컴포넌트 테이블 사용
eGovFramework 공통컴포넌트 테이블
공통코드, 파일, 메뉴, 권한, 롤, 회원(사용자), 최근 검색어, 로그, 게시글, 게시글 통계, 템플릿 등 공통 테이블을 제공합니다.
테이블 생성 스크립트
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v3.8:init_table
공통 컴포넌트 테이블과 초기 데이터는 eGov에서 제공하는 스크립트로 DB에 생성할 수 있습니다.
Row가 없는 테이블도 eGov 프로젝트 톰캣 실행 시 사용되니 삭제하면 안 됩니다.
메뉴 접근 권한 추가 방법
아래와 같이, 쿼리로 권한 생성 및 매핑하면 스프링에서 자동으로 권한에 맞는 메뉴만 보여줍니다.
Interceptor 등에 권한별 분기처리가 있는 경우, 추가가 필요할 수 있습니다.
유저 권한 생성 쿼리
INSERT INTO comtnauthorinfo (
AUTHOR_CODE,
AUTHOR_NM,
AUTHOR_DC,
AUTHOR_CREAT_DE)
VALUES('ROLE_ADMIN_SALESMAN',
'관리자 영업 담당자',
'',
'2023-07-30 13:11:25'
);
관리자 영업 담당자 권한 ‘ROLE_ADMIN_SALESMAN’ 생성 쿼리 예시입니다.
유저 권한-메뉴 매핑 생성
INSERT INTO comtnmenucreatdtls
SELECT
MENU_NO,
'ROLE_ADMIN_SALESMAN',
null
FROM comtnmenucreatdtls
WHERE MENU_NO IN (
7300,
7304, 7305, 7306, 7307,
8100,
8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108
);
기존 ROLE_ADMIN 권한에 매핑된 14개 메뉴를 ‘ROLE_ADMIN_SALESMAN’ 권한에 매핑합니다.
유저 권한 설정
INSERT INTO comtnemplyrscrtyestbs (
SCRTY_DTRMN_TRGET_ID,
MBER_TY_CODE,
AUTHOR_CODE)
VALUES('USRCNFRM_00000002223',
'USR03',
'ROLE_ADMIN_SALESMAN');
영업 유저 KEY를 기준으로 ‘ROLE_ADMIN_SALESMAN’ 권한을 부여합니다.
유저 권한-롤 매핑 생성
INSERT INTO comtnauthorrolerelate
SELECT
'ROLE_ADMIN_SALESMAN',
ROLE_CODE,
NOW()
FROM comtnauthorrolerelate
WHERE AUTHOR_CODE = 'ROLE_ADMIN'
‘ROLE_ADMIN_SALESMAN’ 권한에 ROLE_ADMIN과 동일한 web-000003 (모든 자원에 대한 접근 제한) 롤을 부여합니다.
eGov 채번 관리 테이블 사용법
채번 서비스 정의 bean xml 생성
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
<bean name="테이블명GnrService" class="org.egovframe.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl" destroy-method="destroy">
<property name="dataSource" ref="egov.dataSource" />
<property name="strategy" ref="테이블명Strategy" />
<property name="blockSize" value="10"/>
<property name="table" value="COMTECOPSEQ"/>
<property name="tableName" value="테이블명"/>
</bean>
<bean name="테이블명Strategy" class="org.egovframe.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl">
<property name="prefix" value="프리픽스명" />
<property name="cipers" value="자릿수" />
<property name="fillChar" value="0" />
</bean>
</beans>
src/main/resources/egovframework/spring/com/idgn/context-idgn-테이블약어.xml 파일 예시입니다.
blockSize가 10이면 10개의 채번을 DB에서 가져오고, 메모리에서 관리하여 DB 접근을 최소화 합니다.
공통 컴포넌트 테이블 COMTECOPSEQ에서 tableName 별 채번 Count를 순차적으로 관리합니다.
채번 사용 Java 코드 예시
// 의존성 주입 코드
@Resource(name = "테이블명GnrService")
private EgovIdGnrService idgenService;
// Insert 코드
String key = idgenService.getNextStringId();
vo.setKey변수명(key);
테이블약어Mapper.insert테이블약어(vo);
이중화 서버에서는 DB Sequence (AutoIncrement) 또는 UUID를 사용하여 더 안정적으로 Key 중복을 방지하는 것이 좋습니다.
Leave a comment