eGovFrame 표준프레임워크 포털

메뉴 건너띄기
상단메뉴 바로가기
본문 바로가기

이 누리집은 대한민국 공식 전자정부 누리집입니다.

본문 영역

적용 지원, FAQ, Q&A 게시판을 통해 기술 문제 해결을 지원합니다.

묻고 답하기

호환성 관련 문의
  • 작성자

    이*희

  • 작성일

    2013-06-17 17:49:00

  • 조회수

    1,992

  • 구분

    기타

  • 진행상태

    완료

질문

수고하십니다.

호환성 인증 관련하여 아래와 같이 문의 드립니다.

---------------------------------------------------------------
3. 데이터 액세스 아키텍처 규칙
- DAO 클래스들은 전자정부 표준 아키텍처를 준수하여야 합니다.
- EgovAbstractDAO를 상속받아야 합니다.
- SqlMapClientDaoSupport의 insert, delete, update, select, list 메소드를 호출할 수 없습니다.
---------------------------------------------------------------
상기 호환성 기준은 iBatis 기준으로 알고 있습니다.

몇일전에 MyBatis의 경우에 대한 호환성 인증 기준을 요청드려서
주신 답변에 대해 다시 확인 요청 드립니다.

<이전 답변 >
---------------------------------------------------------------
어제 날짜(6월 13일)로 "정보시스템 구축 발주자를 위한 표준프레임워크 적용가이드 2.3"을 게시하였습니다. (알림마당 -> 자료실)

내용 중에 "표준프레임워크 적용여부를 확인하는 간단한 방법" 부분에 세부 적용 기준을 설명하였습니다.

추가적으로 MyBatis 적용에 필요한 가이드는 다음 URL을 참조하시면 되실 것 같습니다.

http://www.egovframe.org/wiki/doku.php?id=egovframework:rtea2.6

특히 MyBatis -> 표준프레임워크 기반 적용 가이드 부분은 표준프레임워크 기반으로 MyBatis를 적용하는 가이드를 포함하고 있습니다.
---------------------------------------------------------------

<2차 문의 내역>
---------------------------------------------------------------
1. 알림마당 -> 자료실 -> "정보시스템 구축 발주자를 위한 표준프레임워크 적용가이드 2.3"
해당 첨부 문서([가이드]표준프레임워크_적용가이드_v2.3_20130612.hwp) 내용중
"EgovMapperDAO(MyBatis)를 상속하여야 함" 이라는 문구에서 EgovMapperDAO Class를
전자정부 F/W Lib 에서 아무리 찾아도 찾을 수 없습니다.
확인 요청 드립니다.

2. iBatis 호환성 기준중 "SqlMapClientDaoSupport의 insert, delete, update, select, list 메소드를 호출할 수 없습니다" 라는
문구가 있는데요 MyBatis적용시에는 SqlSessionDaoSupport의 insert, delete, update, select, list 메소드를 호출하지 말고
EgovAbstractMapper의 insert, delete, update, select, list를 반드시 호출해서 개발하라는 내용인지 확인 요청 드립니다.
즉 EgovAbstractMapper Class를 상속 받아서 Override하여 getSqlSession().insert(...), getSqlSession().update(...) 식으로 직접 호출하면
호환성 인증 기준에 문제가 발생하는 것인지 확인 요청 드립니다.
---------------------------------------------------------------

답변

안녕하세요. 이병희님.

우선 다음 가이드를 보시면 버전이 변경(기존에 없었다면 추가)되는 dependency가 있습니다.

http://www.egovframe.org/wiki/doku.php?id=egovframework:rte2:psl:dataaccess:mybatisguide

dependency는
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
<version>2.6.0</version>
</dependency>
입니다.

이 library안에 기존 iBatis 연결을 위한 EgovAbstracDAO뿐만 아니라 MyBatis 연결을 위한 EgovAbstractMapper도 있습니다.

두번째는 형식적으로 EgovAbstractDAO를 상속하고 실제 활용하지 않는 경우를 판단하기 위해 EgovAbstractDAO의 메소드를 호출하도록 규정한 것입니다.

실제적인 의미는 DAO(@Repository) 또는 Mapper layer가 구분되고, iBatis 또는 MyBatis를 사용하였는지입니다.

이 기준에 의하면 되도록 EgovAbstractMapper의 메소드를 사용하시면 되지만, 말씀하신 것 처럼 getSqlSession() 메소드를 통해 호출하셔도 의미적으로 문제가 되지 않을 것 같습니다.
다만, 소스를 보시면 아시겠지만 EgovAbstractMapper의 메소드들도 getSqlSession() 메소드를 통해 구현되어 있기 때문에 안쓰실 이유가 없다가 판단됩니다.

그럼, 즐거운 하루되십시오.
감사합니다.

이 페이지의 구성

묻고 답하기