티스토리 뷰

자바 어플들은 DAO패턴을 많이 이용한다. 웹이건 어플이건 MVC패턴을 사용하기도 하거니와 뷰와 비지니스 등의 역할분담은 더이상 강조하지 않아도 되는 부분이 되버렸다.

쿼리를 DAO에 작성하고, 비지니스 레이어에선 맞는 DAO의 메소드를 호출해 결과값을 가져가고 그것을 뷰를 통해 사용자에게 보여지게 된다. 여기서 한가지 살펴볼 것이 있다. 만약 현재 사용자에게 서비스(웹을 기준으로..)가 되고 있고, 쿼리를 수정해야 한다면 어떻게 해야하나 ? 일반적인 DAO패턴을 사용했다면 해야할 것은 다음과 같다.

1. 소스코드의 쿼리 수정
2. 변경된 소스코드 빌드
3. 운영환경에 적용파일 배치
4. WAS 재시작

단 하나의 쿼리를 수정하는데만 해도 이런 복잡한 작업이 진행 된다. 여기서 문제는 '크건 작건 쿼리만 수정되는 부분으로 다시 빌드해야 한다'는 점이다. 그래서 나온것인 iBATIS같은 ORM이다. ORM은 .. 구글링해서 이해하는게 좋을듯 하다. 여기선 iBATIS를 살펴보는 페이지니까 ..(사실 iBATIS가 ORM이라 하기엔 무리가 있다고 개인적으로 생각한다. ORM이라 하면.. 음.. 하이버네이트도 가치 검색해서 두개의 차이점을 확인해 보면 된다.)

개발자는 iBATIS에서 제공하는 dtd를 참조해 xml을 작성하고, 여기에 결과값, 조건에 넘길 파라미터 값 등을 기술한다. 그리고 작성하는 코드에 iBATIS에서 제공하는 api를 통해 기술한 쿼리를 요청하고, 결과값도 돌려받는다. 이렇게 되면 db 쿼리에 관련된 부분은 프로그램에 종속되지 않고 코드도 훨씬 간결해질 것이다. 

먼저 iBATIS를 다운받아 보자.


친절하게도 iBATIS는 java뿐 아니라 .net나 ruby도 지원해준다. 필자는 java개발자므로 java를 기준으로 설명할 것이다. get Software를 통해 다운받자.
(1.4와 1.5버젼이 따로 되어있다. 아마도 1.5에 추가된 for each나 generic의 부분이 아닐지 ..)

먼저 우리가 처음 시도할 테이블 스키마를 생성해 보자(이것은 오라클 기준임..)

TB_PUPUSTORY_USER 테이블 생성

회원 정보를 저장하는 간단한 1개의 테이블이다. 프로젝트에 추가하고 다음을 기준으로 설정파일(xml, properties)을 기술한다.

iBATIS db properties 파일 (db.properties)

iBATIS 설정파일 (SqlMapConfig.xml)

iBATIS sql 설정파일 (UserManager.xml)

이제 코드를 작성하기전에 가장 중요하면서 해맬수 있는 부분을 설명하고자 한다. 보통 웹 어플은 WEB-INF에 넣어두면 상관없다. 하지만 일반 자바 프로젝트라면 과연 이 설정파일들은 어디에 있어야 하는가? 

이클립스에서 자바 프로젝트로 생성하면 소스는 프로젝트 디렉토리의 src, 빌드된 파일은 bin에 저장된다. 여기서 위의 설정파일은 'bin'에 있어야 한다. 하지만 친절한 이클립스는 src에 파일을 넣어두면 빌드할때 src의 파일을 bin에 친절히 복사해 주신다. 따라서 소스관리측면에서도 src에 오는것이 옳다. 이제 코드를 보자


사용할 bean (UserBean.java)


사용할 iBATIS를 이용한 클레스(DBManager.java)


실행 프로그램 (StartApp.java)


실행 프로그램 (MyService.java)


주석을 보면 어렵지 않게 이해할 수 있다. DBManager를 이용해 sql mapper를 싱글턴으로 생성한다. 그것을 MyService에서 mapper를 받아 활용하게 된다. 기본적으로 bean던져 insert를 했고, 1개의 row를 반환하는(로우 수 반환하는 부분)방법도 살펴봤고, 다건(모든 사용자 정보)를 반환하는 방법, 정보를 수정하는 방법도 살펴 봤다.

이제 다음장에서 좀 더 흥미롭고 세밀한 부분에 대해 살펴볼 것이다.
댓글
댓글쓰기 폼
Total
499,135
Today
2
Yesterday
346
«   2018/10   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
글 보관함