본문 바로가기

WEB/ETC

iBatis Framework 이란?

iBatis이란?

iBatis를 한 문장으로 정의하자면

iBatis는 DB와 객체와의 관계를 맵핑시켜 퍼시스턴스 로직처리를 도와주는 프레임워크이다.


퍼시스턴스란?
사전적 의미 : persistence 1.고집 2.(없어지지 않고 오래동안) 지속됨, 영속됨.

컴퓨터를 종료하면 그 전에 있던 정보들은 끊어져서 지속되지 않는다. 그래서 파일을 저장하거나 DB에 저장을 하여그것을 유지한다. 자바에서는 JDBC를 이용하여 DB에 저장한다. 이걸 좀더 간편하게 하기 위한 프레임워크가 있는데 그것을 퍼시스턴스 프레임워크라고 한다.

iBatis는 데이터베이스에 있는 자원들을 보다 편리하게 가져오기 위한 프레임워크이다.
iBatis는 간단한 XML서술자를 사용해서 간단하게 자바빈즈를 SQL statement에 맵핑시킨다. 간단함(Simplicity)이란 다른 프레임워크와 객체관계맵핑툴에 비해 iBatis의 가장 큰 장점이다.
또한 관계형 데이터베이스에 접근할 때 가독성, 유지보수성, 생산성 등을 향상시켜준다.

iBatis의 특징

1. 간결함과 쉬운 접근성
- 다른 프레임워크와 객체관계맵핑툴에 비해 가장 간단한 퍼시스턴스 프레임워크.

iBatis 데이터 매퍼를 사용하기 위해서 자바빈즈와 XML 그리고 SQL만 알면 추가적으로 배워야 할 것이 거의 없고,
테이블을 조인하거나 복잡한 쿼리문을 수행하기 위해 필요한 복잡한 스키마도 없다.
데이터 매퍼를 사용하면 실제 SQL문의 모든 기능을 그대로 사용할수 있으며,
XML형태로 서술된 JDBC 코드라고 생각해도 될 만큼 JDBC에 적용되는 모든 기능은 iBatis에서도 잘 적용된다.
데이터베이스 관리자와 SQL 프로그래머 양 쪽 모두 이해하기 용이하다.

2. 생산성의 향상
- JDBC와 SQL을 유지하면서도 훨씬 더 적은 코드로도 JDBC처럼 작동.

자바코드의 20%를 사용하여 JDBC기능의 80%를 제공하는 간단한 프레임워크.
작성할 필요가 없는 JDBC 코드로 인한 분향 문제는 현저하게 줄어든다.
일반적으로 프레임워크는 장황한 코드를 제거하고 복잡한 구조적인 문제를 해결하면서 공통적인 작업을 수행하기 위해 존재한다.

3. SQL 문장과 프로그래밍 코드의 분리
- 작업의 분배 : 팀을 세분화하는 것을 도움

SQL문과 Java코드와의 분리만으로도 Java개발자는 Query문을 신경쓰지 않아도 된다.
SQL문이 변경되더라도 파라미터 값만 변경되지 않는다면 Java소스에서 수정할 부분이 없기 때문이다.

4. 이식성
- 어떠한 프로그래밍 언어로도 구현가능하다.

자바, C#(iBatis.NET), Ruby(RBATIS)

5. 데이터베이스 접근 클래스와 비지니스 로직을 담은 클래스의 분리 
- 이른바 DAO(Data Access Object) 패턴이 이러한 일을 담당한다.

iBaris는 DAO 계층 구현을 위한 유틸리티 성격이면서 동시에 best practice 역할도 수행한다.

6. 자주 쓰이는 데이터를 변경되지 않는 동안에 임시 보관
- iBatis에서는 XML 설정만으로 캐시를 할 수 있다.

7. 트랜젝션과 쓰레드 관리 
- 트랜젝션 처리 역시 용이하다.