"아이바티스"의 두 판 사이의 차이
1번째 줄: | 1번째 줄: | ||
− | '''아이바티스'''(iBatis)는 [[자바]](Java) 등 응용 프로그램을 [[에스큐엘]](SQL)에 기반한 [[데이터베이스]]와 연결시켜 주는 역할을 하는 [[오픈소스]] 기반의 [[표준 프레임워크]]이다. [[아파치재단]]이 개발했고, [[아파치 라이선스]](Apache License)를 따른다. [[하이버네이트]]의 경우 사용자가 객체모델을 생성하면 DB와 연결시켜주는 방식인데 반해, 아이바티스는 사용자가 DB에서 SQL 문장을 생성하면 그에 적합한 객체모델을 생성해주는 방식으로 작동한다. 2010년 아이바티스(iBatis)를 [[포크]]하여 [[마이바티스]](MyBatis)가 만들어진 후 개발이 중단되었다. 한국 정부가 만든 [[전자정부 표준 프레임워크]](eGovFrame)에 아이바티스의 기본 기능이 포함되어 있다. | + | '''아이바티스'''(iBatis)는 [[자바]](Java) 등 응용 프로그램을 [[에스큐엘]](SQL)에 기반한 [[데이터베이스]]와 연결시켜 주는 역할을 하는 [[오픈소스]] 기반의 [[표준 프레임워크]]이다. [[아파치재단]]이 개발했고, [[아파치 라이선스]](Apache License)를 따른다. [[하이버네이트]]의 경우 사용자가 객체모델을 생성하면 DB와 연결시켜주는 방식인데 반해, 아이바티스는 사용자가 DB에서 SQL 문장을 생성하면 그에 적합한 객체모델을 생성해주는 방식으로 작동한다. 2010년 아이바티스(iBatis)를 [[포크]]하여 [[마이바티스]](MyBatis)가 만들어진 후 개발이 중단되었다. 한국 정부가 만든 [[전자정부 표준 프레임워크]](eGovFrame)에 아이바티스의 기본 기능이 포함되어 있다. |
== 개요 == | == 개요 == | ||
6번째 줄: | 6번째 줄: | ||
== 역사 == | == 역사 == | ||
+ | |||
+ | 2016 | ||
== 특징 == | == 특징 == | ||
+ | * 간결함과 쉬움 접근성 | ||
+ | 다른 프레임워크와 객체관계맵핑툴에 비해 가장 간단한 퍼시스턴스 프레임워크이다. | ||
+ | SQL문을 XML에 그대로 서술하기 때문에 기존 SQL문 처리에 익숙한 개발자들이 다가가기 쉽다. | ||
+ | 그에 따라 데이터베이스 관리자와 SQL 프로그래머 양 쪽 모두 이해하기 용이하다. | ||
+ | * 생산성의 향상 | ||
+ | JDBC와 SQL을 유지하면서도 훨씬 더 적은 코드로도 JDBC처럼 작동한다. 자바코드의 20%를 사용하여 JDBC기능의 80%를 제공하는 간단한 프레임워크이며, 작성할 필요가 없는 JDBC 코드로 인한 분량 문제는 현저하게 줄어든다. (JDBC에 비해 62%정도이다.) | ||
+ | * 성능 | ||
+ | 성능최적화 기법을 지원한다. 페이징 처리된 데이터 리스트를 읽어와서 사용할 때 불필요한 수천개의 행을 한꺼번에 데이터베이스로부터 가져오는것이 아니기 때문에 애플리케이션의 성능을 향상시킬수있다. | ||
+ | * SQL 문장과 프로그래밍 코드의 분리 | ||
+ | 작업의 분배 : 팀을 세분화하는 것을 도움 | ||
+ | SQL문과 Java코드와의 분리만으로도 Java개발자는 Query문을 신경쓰지 않아도 된다. | ||
+ | SQL문이 변경되더라도 파라미터 값만 변경되지 않는다면 Java소스에서 수정할 부분이 없기 때문이다. | ||
+ | * 이식성 | ||
+ | 어떠한 프로그래밍 언어로도 구현가능하다.<br> | ||
+ | 자바, C#(iBatis.NET), Ruby(RBATIS) | ||
+ | * 데이터베이스 접근 클래스와 비지니스 로직을 담은 클래스의 분리, 이른바 DAO(Data Access Object) 패턴이 이러한 일을 담당한다. | ||
+ | iBatis는 DAO 계층 구현을 위한 유틸리티 성격이면서 동시에 best practice 역할도 수행한다. | ||
+ | * 자주 쓰이는 데이터를 변경되지 않는 동안에 임시 보관 | ||
+ | iBatis에서는 XML 설정만으로 캐시를 할 수 있다. | ||
+ | * 트랜젝션과 쓰레드 관리 | ||
+ | 트랜젝션 처리 역시 용이하다. | ||
== 종류 == | == 종류 == | ||
20번째 줄: | 43번째 줄: | ||
== 참고 자료 == | == 참고 자료 == | ||
+ | * 꿀벌, 〈[https://blog.naver.com/poloecko/70094791801 iBatis란?]〉, 《네이버 블로그》, 2010-10-01 | ||
+ | |||
== 같이 보기 == | == 같이 보기 == | ||
* [[아파치재단]] | * [[아파치재단]] |
2019년 7월 24일 (수) 10:56 판
아이바티스(iBatis)는 자바(Java) 등 응용 프로그램을 에스큐엘(SQL)에 기반한 데이터베이스와 연결시켜 주는 역할을 하는 오픈소스 기반의 표준 프레임워크이다. 아파치재단이 개발했고, 아파치 라이선스(Apache License)를 따른다. 하이버네이트의 경우 사용자가 객체모델을 생성하면 DB와 연결시켜주는 방식인데 반해, 아이바티스는 사용자가 DB에서 SQL 문장을 생성하면 그에 적합한 객체모델을 생성해주는 방식으로 작동한다. 2010년 아이바티스(iBatis)를 포크하여 마이바티스(MyBatis)가 만들어진 후 개발이 중단되었다. 한국 정부가 만든 전자정부 표준 프레임워크(eGovFrame)에 아이바티스의 기본 기능이 포함되어 있다.
개요
등장 배경
역사
2016
특징
- 간결함과 쉬움 접근성
다른 프레임워크와 객체관계맵핑툴에 비해 가장 간단한 퍼시스턴스 프레임워크이다. SQL문을 XML에 그대로 서술하기 때문에 기존 SQL문 처리에 익숙한 개발자들이 다가가기 쉽다. 그에 따라 데이터베이스 관리자와 SQL 프로그래머 양 쪽 모두 이해하기 용이하다.
- 생산성의 향상
JDBC와 SQL을 유지하면서도 훨씬 더 적은 코드로도 JDBC처럼 작동한다. 자바코드의 20%를 사용하여 JDBC기능의 80%를 제공하는 간단한 프레임워크이며, 작성할 필요가 없는 JDBC 코드로 인한 분량 문제는 현저하게 줄어든다. (JDBC에 비해 62%정도이다.)
- 성능
성능최적화 기법을 지원한다. 페이징 처리된 데이터 리스트를 읽어와서 사용할 때 불필요한 수천개의 행을 한꺼번에 데이터베이스로부터 가져오는것이 아니기 때문에 애플리케이션의 성능을 향상시킬수있다.
- SQL 문장과 프로그래밍 코드의 분리
작업의 분배 : 팀을 세분화하는 것을 도움 SQL문과 Java코드와의 분리만으로도 Java개발자는 Query문을 신경쓰지 않아도 된다. SQL문이 변경되더라도 파라미터 값만 변경되지 않는다면 Java소스에서 수정할 부분이 없기 때문이다.
- 이식성
어떠한 프로그래밍 언어로도 구현가능하다.
자바, C#(iBatis.NET), Ruby(RBATIS)
- 데이터베이스 접근 클래스와 비지니스 로직을 담은 클래스의 분리, 이른바 DAO(Data Access Object) 패턴이 이러한 일을 담당한다.
iBatis는 DAO 계층 구현을 위한 유틸리티 성격이면서 동시에 best practice 역할도 수행한다.
- 자주 쓰이는 데이터를 변경되지 않는 동안에 임시 보관
iBatis에서는 XML 설정만으로 캐시를 할 수 있다.
- 트랜젝션과 쓰레드 관리
트랜젝션 처리 역시 용이하다.
종류
활용
문제점
전망
각주
참고 자료
- 꿀벌, 〈iBatis란?〉, 《네이버 블로그》, 2010-10-01
같이 보기