본 튜터리얼은 사내 직원 교육용으로 만든 것으로 초급 자바 개발자들이 쉽게 iBATIS를 이용하여 개발하도록 하여 좀 더 나은 품질의 코드와 제품을 생산할 수 있도록 하기 위한 바램으로 작성한 자료이다. 즉, 고급 기술 및 상세 기능은 배제를 하였음을 미리 밝힌다.

6. iBATIS 이용을 위한 기본설정
  iBATIS를 이용하기 위해서는 관련 라이브러리를 개발하고 있는 웹 애플리케이션의 lib 디렉토리에 등록해야 한다. Eclipse에서도 lib 디렉토리에 등록된 jar 파일을 Build Path에 등록하여야만 iBATIS의 API를 이용하여 개발할 때 에러가 발생하지 않는다.

  먼저 iBATIS 홈페이지를 접속하여 iBATIS 라이브러리를 다운로드 받도록 하겠다. iBATIS는 Apache의 프로젝트로 편입되어 현재는 http://ibatis.apache.org에서 다운로드 받을 수 있으며 현재 최신 버전은 2.3.3이다. 접속하면 왼쪽에 Get Software..라는 메뉴가 있다. 부 메뉴에 for Java 링크가 있는데 여기를 클릭한다. iBATIS는 여러 개발 플랫폼으로 개발되고 있다. 참고로, iBATOR라는 메뉴가 있는데 이 iBATOR는 iBATIS에서 사용되는 각종 클래스들이며 xml 파일을 자동으로 생성하도록 해주는 툴인데 지금은 그런 툴도 있다는 것을 알아두도록 하자. 이러한 자동화된 툴은 iBATIS의 문법이나 구조에 익숙해진 이후 개발속도 향상을 위해 알아볼 필요가 있으나 지금은 더 혼란스러울 뿐이다.

Get software... for Java를 클릭

for Java를 클릭


  다음 페이지에서 다운로드 받을 수 있는 링크를 아래 그림처럼 볼 수 있다.

iBATIS for Java Downloads

2.3.3 버전을 다운로드 받는다.


  다운로드가 완료되었으면 압축을 해제한다. 여러 파일 중 ibatis-2.3.3.720.jar 파일을 www/WEB-INF/lib 디렉토리에 복사해 넣고 Eclipse의 Project Properties(현재 개발중인 프로젝트를 선택한 후 마우스 우클릭-Properties)의 Java Build Path(왼쪽 메뉴)를 선택한 후 Libraries 탭을 선택하여 jar 파일이 정상적으로 등록되어 있는지 확인하고 없으면 Add JARs...를 클릭하여 등록한다.
jar 파일 복사

jar 파일 복사


Java Build Path 설정

Java Build Path 설정


  이로써 iBATIS 라이브러리는 정상적으로 등록하였다.

  이제, iBATIS의 기본 설정 요소인 SqlMapConfig.xml 파일을 작성하겠다. xml 파일 생성 방법은 앞에서 이미 설명했으므로 생략하겠지만, 생성할 위치는 고민해볼 필요가 있겠다. 그전에 SqlMapConfig.xml의 역할에 대해 설명을 해야할 듯 하다.

  SqlMapConfig.xml 파일은 iBATIS가 웹 애플리케이션으로 부터 호출되는 시점(프레임 워크에 따라 시점은 다를 수 있다)에 초기화가 되는데 그 때 사용되는 설정파일이다. 결국 이 설정 파일은 단위 기능별로 사용되는 것이 아니라 전역적으로 사용된다고 볼 수 있다. 그러므로, 지금 작성할 웹 애플리케이션에서 공통적으로 접근할 수 있는 위치에 두는 것이 좋다. 그러나, 이번 웹 애플리케이션은 아주 작은 크기의 웹 애플리케이션이므로 ibatis.sample01 이라는 패키지명 아래에 sqlmap 패키지명을 사용하여 단위업무에 해당하는 SQL이 담긴 관련 xml 파일과 SqlMapConfig.xml을 함께 두도록 하겠다. 즉, ibatis.sample01.sqlmap 패키지에 SqlMapConfig.xml 파일을 두겠다.

  현재는 ibatis.sample01.sqlmap이라는 패키지(또는 폴더)가 생성되지 않았으므로 src를 선택한 다음 File - New - Package를 이용하여 ibatis.sample01.sqlmap를 등록한다.

Package 생성

Package 생성

  패키지를 정상적으로 생성하였다면 생성된 패키지(또는 폴더)에 SqlMapConfig.xml 파일을 등록하고 아래의 소스 내용을 입력한다.

소스보기..


  SqlMapConfig.xml의 가장 기본적인 설정만 지정이 되어 있다. 옵션에 대해서는 중급 과정에서 자세히 설명하겠지만, 몇가지 기본적인 내용만은 설명을 하고 넘어가겠다.
  <properties />에 정의된 db.properties는 Java에서 사용하는 프로퍼티 파일의 위치를 나타낸다. 이 프로퍼티 파일에는 SqlMapConfig.xml 파일에서 ${xxx}로 정의된 변수를 치환하는 용도로 사용이 된다. 즉, 프로퍼티 파일에 정의된 이름=값 쌍으로부터 가져온 변수 정보를 SqlMapConfig.xml의 ${이름}에 대한 값으로 치환한다는 것이다. 이렇게 하는 이유는 다중환경에서 개발할 경우 각자 개발 환경에 맞게 properties 파일만 수정하고 xml파일은 수정하지 않으면서 얻게되는 일관성의 장점이 있다.
  <dataSource />로는 DBMS와의 접속을 위한 접속 경로 설정 옵션이 추가된다. JDBC 개발을 해온 개발자라면 이해가 가능할 것이다.
  <sqlMap />은 실제적으로 SQL이 정의된 xml 파일의 위치를 정의한다. 단위업무별로 또는 모듈별로 xml파일을 분리하여 개발을 하면 개발 시점 뿐만 아니라 유지보수 시점에도 도움이 되므로 체계있게 구성할 필요가 있다. resource 속성에 정의된 xml 파일을 만들어 보도록 하겠다. SqlMapConfig.xml은 최소한 1개 이상의 <sqlMap />이 정의되어 있어야 한다. src/ibatis/sample01/sqlmap 경로에 emp.xml 파일 이름으로 아래 소스를 입력한다.

emp.xml 소스열기..


  위에서 db.properties파일에 대해 설명을 했었는데, 이제 이 파일을 만들어 보겠다. 일반적으로 properties를 초기화 설정파일을 한 곳에 두어 관리하기도 하지만, 이번에는 소스 루트에 두도록 하겠다. 즉, src 폴더에 두면 된다. src 폴더에서 File - New - File을 선택하여 db.properties를 입력한다.

db.properties 소스열기..


  위 접속 정보는 환경에 따라 적절히 설정해야하지만 이번에는 위와 같이 설정하도록 한다. 아직 DBMS에 위와 같은 환경이 설정되지 않았다. 이제 기존에 설치한 MySQL 서버를 시동하고 개발에 사용될 DB와 유저를 생성하도록 하겠다.

  Command Prompt로 접속하여 C:\dev\mysql\bin\mysqld-nt.exe를 실행한다. 정상적으로 시동되면, Command Prompt창을 하나 더 열어서 C:\dev\mysql\bin\mysql.exe -u root 를 실행한다. 그러면, MySQL 콘솔이 열리는데, 아래 내용을 차례로 실행한다.

DB 생성과정 열기..


  위 과정에서 ibatis라는 데이터베이스, 유저를 생성하고 emp라는 테이블을 생성하였다.

  이제 iBATIS를 이용한 개발 환경이 셋업 되었다. 다음에는 생성한 샘플 테이블에 대응되는 Model Class를 만들고 CRUD(Create, Read, Update, Delete)를 구현해보겠다.