전자정부 표준프레임워크 호환성 가이드 전자정부 표준프레임워크 운영유지보수 사업단
1 실행환경 변경 금지 전자정부 실행환경 라이브러리는 변경할 수 없습니다. 프로젝트 폴더 내에 존재하는 자바 바이너리 파일 중 egovframework.rte로 시작하는 파일을 대상으로 합니다. 대상 1 프로젝트 내 전자정부 실행환경의 SHA1 해시코드는 원본과 동일해야 합니다. 2 프로젝트 내 전자정부 실행환경의 용량은 원본과 동일해야 합니다. 예외 존재하지 않는 실행환경 라이브러리에 대해서는 검사를 하지 않습니다. 실행환경 변경금지 규칙은 개별적으로 혹은 maven을 통해서 다운로드 받은 전자정부 실행환경 라이브러리에 인위적인 변경을 가할 수 없다는 규칙입니다. 실행환경을 변경 또는 확장하고 싶은 경우 상속을 통하여 확장하여 사용하는 것이 좋으며, 이 때는 6. 실행환경 확장규칙을 참고하여 주시기 바랍니다. 전자정부 표준프레임워크 운영유지보수 사업단
1 실행환경 변경 금지 호환성 확인 기반 S/W 최소 Maven Dependency 1 <!-- egovframework.rte --> <dependency> <groupId>egovframework.rte</groupId> <artifactId>egovframework.rte.ptl.mvc</artifactId> <version>${egovframework.rte.version}</version> </dependency> <artifactId>egovframework.rte.psl.dataaccess</artifactId> egovframework.rte.ptl.mvc.jar egovframework.rte.fdl.cmmn.jar egovframework.rte.psl.dataaccess.jar egovframework.rte.fdl.logging.jar 전자정부 표준프레임워크 운영유지보수 사업단
2 설정파일 위치 규칙 설정파일들은 특정 위치에 존재해야 합니다. 프로젝트 폴더 내에 존재하는 xml 파일 중 beans 혹은 sqlMap 엘레먼트를 가지고 있는 파일로 대상으로 합니다. 대상 1 설정파일은 프로젝트 루트에 위치할 수 없습니다. 2 설정파일들은 공통적인 상위 디렉토리를 가져야 합니다. 예외 WEB-INF 및 target 폴더 내에 있는 xml 파일들은 대상에서 제외됩니다. 설정파일 위치 규칙은 프로젝트 내에 존재하는 각종 설정파일 및 SQL 매핑 파일들이 프로젝트 폴더 내에 지나치게 산재하거나 규칙 없이 배치되지 않도록 하기 위한 규칙입니다. 설정파일들은 프로젝트 루트에 있지 않으며 프로젝트 루트의 특정 하위 디렉토리를 공통 상위 디렉토리로 가지고 있어야 합니다. 전자정부 표준프레임워크 운영유지보수 사업단
3 데이터 액세스 아키텍처 규칙 DAO 클래스들은 전자정부 표준 아키텍처를 준수하여야 합니다. 대상 프로젝트 내의 자바 클래스 중 다음 조건을 하나라도 만족하면 점검 대상이 됩니다. SQL매핑 파일에 정의된 쿼리 아이디를 매개 변수로 함수를 호출한다. @Repository 어노테이션을 가지고 있다. EgovAbstractDAO를 상속받았다. SqlMapClientDaoSupport를 상속받았다. ibatis 적용 시 – EgovAbstractDAO를 상속받아야합니다. mybatis 적용 시 – EgovAbstractMapper를 상속받아야합니다. 또는, Mapper Interface 방식으로 MapperConfigurer 설정 시 표준프레임워크에서 제공하는 MapperConfigurer와 @Mapper 사용해야합니다. (참고) http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:psl:dataaccess:spring_ibatis_integration http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:psl:dataaccess:mybatisguide 1 2 Ibatis SqlMapClientDaoSupport, Mybatis SqlSessionDaoSupport에서 제공하는 insert, delete, update, select, list, …등 메소드를 호출할 수 없습니다. 예외 이 규칙은 예외가 없습니다. 데이터 액세스 규칙은 모든 DAO 클래스들이 EgovAbstractDAO 또는 EgovAbstractMapper를 상속받아서 사용하여야 하며, EgovAbstractDAO 또는 EgovAbstractMapper를 무시하고 사용하지 않는 경우를 방지하기 위한 규칙입니다. EgovAbstractDAO 또는 EgovAbstractMapper의 활용이 프로젝트에 부적합한 경우 해당 클래스를 확장한 클래스를 상속받아서 활용하여도 무방합니다. Mybatis Mapper Interface 방식 사용 시 표준프레임워크에서 제공하는 MapperConfigurer을 사용해야 합니다. 전자정부 표준프레임워크 운영유지보수 사업단
4 MVC 아키텍처 규칙 Controller 클래스들은 전자정부 표준 아키텍처를 준수하여야 합니다. 대상 프로젝트 내의 자바 클래스 중 다음 조건을 하나라도 만족하면 점검 대상이 됩니다. @Controller 어노테이션을 가지고 있다. @RequestMapping 어노테이션을 사용하였다. @RequestParam 어노테이션을 사용하였다. @ModelAttribute 어노테이션을 사용하였다. @SessionAttribute 어노테이션을 사용하였다. Ibatis SqlMapClientDaoSupport, Mybatis SqlSessionDaoSupport 클래스의 메소드를 호출할 수 없습니다. 1 2 HibernateDaoSupport 클래스의 메소드를 호출할 수 없습니다. 3 DAO 클래스의 메소드를 호출할 수 없습니다. 예외 이 규칙은 예외가 없습니다. MVC 아키텍처 규칙은 Controller 클래스가 DAO 클래스를 직접 호출하는 것을 막기 위한 규칙입니다. 특히 코드 서비스등을 활용할 때 주의하시기 바라겠습니다. 여기서 DAO 클래스의 정의는 데이터 아키텍처 점검 대상 클래스들에 HibernateDaoSupport를 상속받은 클래스들을 포함합니다. 전자정부 표준프레임워크 운영유지보수 사업단
5 서비스 아키텍처 규칙 Service 클래스들은 전자정부 표준 아키텍처를 준수하여야 합니다. 대상 프로젝트 내의 자바 클래스 중 다음 조건을 하나라도 만족하면 점검 대상이 됩니다. @Service 어노테이션을 가지고 있다. EgovAbstractServiceImpl을 상속받았다. 1 EgovAbstractServiceImpl을 확장해야 합니다. (실행환경 2.7 이하 버전에서는 AbstractServiceImpl) 2 특정 인터페이스를 구현하여야 합니다. 예외 src/test 폴더 내에 있는 클래스들은 점검 대상에서 제외됩니다. 서비스 아키텍처 규칙은 서비스 클래스로 사용되는 클래스들이 전자정부 표준프레임워크 실행환경의 EgovAbstractServiceImpl을 확장하여야 한다는 규칙과, 클래스간 결합도를 낮추기 위하여 서비스 클래스들은 특정한 인터페이스를 선언하고 해당 인터페이스를 확장하여야 한다는 규칙으로 이루어져 있습니다. EgovAbstractServiceImpl의 활용이 프로젝트에 부적합한 경우 해당 클래스를 상속받은 공통 추상 서비스 클래스를 작성하여 해당 클래스를 상속받는 형태로 활용하여 주시기 바라겠습니다. 전자정부 표준프레임워크 운영유지보수 사업단
6 실행환경 확장 규칙 전자정부 표준프레임워크 실행환경은 규정에 맞게 확장되어야 합니다. 대상 프로젝트 내의 자바 클래스 중 egovframework.rte 패키지에 속한 클래스를 상속받은 클래스는 모두 대상이 됩니다. 1 해당 클래스는 egovframework.rte 패키지 내에 정의될 수 없습니다. 2 해당 클래스는 Egov라는 이름으로 시작할 수 없습니다. 예외 이 규칙은 예외가 없습니다. 실행환경 확장규칙은 실행환경 라이브러리의 클래스들을 확장하여 독자적으로 만들어낸 클래스들이 전자정부 표준프레임워크와 구분되도록 하기 위하여 만들어진 규칙입니다. 특정한 이유로 실행환경 클래스를 확장하였을 경우, 해당 클래스의 패키지와 이름의 작성에 주의하여 주시기 바라겠습니다. 전자정부 표준프레임워크 운영유지보수 사업단
7 표준프레임워크 활용 규칙 전자정부 표준프레임워크 실행환경은 적극적으로 활용되어야 합니다. 대상 점검대상이 되는 전체 프로젝트가 대상이 됩니다. 1 해당 프로젝트 내에는 적어도 한 개 이상의 실행환경 라이브러리가 존재해야 합니다. 2 해당 프로젝트 내에는 적어도 한 개 이상의 DAO 클래스가 있어야 합니다. 3 해당 프로젝트 내에는 적어도 한 개 이상의 Service 클래스가 있어야 합니다. 예외 이 규칙은 예외가 없습니다. 표준 프레임워크 활용 규칙은 표준 프레임워크를 실제로 활용하는지를 검사하기 위한 규칙으로, 실행환경 라이브러리의 존재여부 및 아키텍처 정의를 따르는지 여부를 확인합니다. 데이터 엑세스 아키텍처 규칙 및 서비스 아키텍처 규칙을 준수하지 않는 경우 DAO 클래스 및 Service 클래스가 검출되지 않아서, 이 규칙이 더불어서 위반으로 표시될 수 있습니다. 먼저 해당 규칙들을 준수하는 것이 좋습니다. 전자정부 표준프레임워크 운영유지보수 사업단