이전

리뷰 (4)

한줄평
평점 분포
  • 리뷰 총점10 25%
  • 리뷰 총점8 25%
  • 리뷰 총점6 50%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 0.0
  • 40대 8.0
  • 50대 7.0
리뷰 총점 종이책
아직도 JDBC로 날코딩을 하십니까?
"아직도 JDBC로 날코딩을 하십니까?" 내용보기
아직도 JDBC를 사용하여 코딩하고 계시지는 않으신가요? 반복적인 코드로 노가다를 하고 계시면서 좌절하고 계신가요? 커넥션을 닫지 않아 db세션이 풀이 되어 서버가 다운되고 있는지요?   바로 iBatis를 도입하십시요.   잦은 변경으로 인해 정규화가 깨는 SI환경에 매우 적합한 프레임워크가 iBitis라고 생각합니다. 학습곡선이 매우 낮기 때문에 적용이 빠르고, JBDC 보다 배
"아직도 JDBC로 날코딩을 하십니까?" 내용보기

아직도 JDBC를 사용하여 코딩하고 계시지는 않으신가요?

반복적인 코드로 노가다를 하고 계시면서 좌절하고 계신가요?

커넥션을 닫지 않아 db세션이 풀이 되어 서버가 다운되고 있는지요?

 

바로 iBatis를 도입하십시요.

 

잦은 변경으로 인해 정규화가 깨는 SI환경에 매우 적합한 프레임워크가 iBitis라고 생각합니다.

학습곡선이 매우 낮기 때문에 적용이 빠르고, JBDC 보다 배우는 속도가 더 빠를지도 모른다는 생각이 듭니다.

ORM 프레임워크의 경우 학습곡선도 높고  잘못도입하였을 경우 상당한 문제가 생길수 있지만 ibatis는 그렇지 않습니다.

이미 많은 현업분들이 도입해서 사용하고 계시니 의심할 여지습니다.

 

해당 책을 사지 않아도 저자분이 운영하시는 (http://openframework.or.kr/JSPWiki/Wiki.jsp)에 가도 ibatis를 사용하는데는 문제가 없지만,

아무래도 책이 보기가 좋으니 한권사시는걸 추천합니다.

그동안 해당 싸이트에서 도움을 받으신분도 한권 사시는게 나름대로의 의리 아닐까요? ^^a...

이렇게 쓰니 무슨 책장사 같은데. 저는 저자하고 아무런 관계가 없는 사람입니다.

다만 openframework 에서 ibatis 에서 너무 큰 도움을 받아서 서평을 씁니다.

 

JDBC를 사용하시는 분들은 빨리 ibatis 를 도입해서 프로젝트를 빨리 끝내고 정시 퇴근하세요.

 

 

 

 

 

w*******e 2007.06.03. 신고 공감 0 댓글 0
리뷰 총점 종이책
[2012-027] iBatis에 대하여 자세히 설명한 책
"[2012-027] iBatis에 대하여 자세히 설명한 책" 내용보기
iBatis 프레임워크를 이용하여 응용프로그램을 개발하는 경우에는, 적절한 참고자료가 많지 않다. 이 책의 원저자중 한명인 클린턴 비긴이 "iBATIS에 대한 책을 쓸 필요가 있다면, 내가 뭔가를 잘못하고 있는 것이다"라고 말한 적이 있다고 할 만큼 단순하기 때문에 책을 낼 필요가 없을 정도라고 이야기하고 있다.   하지만, iBATIS를 이용하여 규모가 큰 프로젝트를 수행하다 보면 성
"[2012-027] iBatis에 대하여 자세히 설명한 책" 내용보기

iBatis 프레임워크를 이용하여 응용프로그램을 개발하는 경우에는, 적절한 참고자료가 많지 않다. 이 책의 원저자중 한명인 클린턴 비긴이 "iBATIS에 대한 책을 쓸 필요가 있다면, 내가 뭔가를 잘못하고 있는 것이다"라고 말한 적이 있다고 할 만큼 단순하기 때문에 책을 낼 필요가 없을 정도라고 이야기하고 있다.

 

하지만, iBATIS를 이용하여 규모가 큰 프로젝트를 수행하다 보면 성능이나 로깅과 같은 다양한 이슈들을 만난다. 이들을 처리하기 위해서 iBATIS에 대해서 좀 더 자세하게 아는 것이 필요하다. 이 책은 iBATIS의 이론적 배경과 실제 사례를 제시한다는 측면에서 iBATIS 개발자들이 자신을 다음 레벨로 업그레이드하기 위하여 읽어야 할 책이라고 하겠다.

 

다만, 2010년 6월에 아파치 소프트웨어 재단의 iBATIS 프로젝트가 종료되었다. http://ibatis.apache.org/ 이에 관련된 내용은 http://tobewiseys.tistory.com/155 에서 참조할 수 있다. 따라서 새로운 시스템을 구축할 경우에는 MyBatis 프레임워크를 사용하는 것이 바람직할 것이다. 하지만, 아직까지 많은 사이트들에서 iBATIS 프레임워크를 이용해서 시스템을 구축한 사례들이 많기 때문에 iBATIS의 기본 지식을 익히는 것이 중요하다(현재(2012년 5월 30일) 는 아마존에도 MyBatis에 관한 책이 없다.)

 

참고로 iBATIS에서 MyBatis로 마이그레이션하는 것이 문서에 나와 있는 것처럼 간단한 작업이 아니다. 프로젝트 수행도중에 iBATIS를 MyBatis로 변경하려고 했었는데, 담당자의 반대가 심해서 포기한 적이 있다. 관련된 이슈는 http://rinn.kr/49 를 참조하기 바란다.

 

다음은 책의 내용이다.

--------------

1장 iBATIS의 탄생 배경

 

RDBMS를 대상으로 데이터를 조작하기 위한 방법들에 대한 설명을 하고 있다. 저장 프로시저(Stored Procedure), 인라인 SQL, 동적 SQL, ORM에 대한 기본 개념들을 설명하고, iBATIS는 애플리케이션 코드나 DBMS에서 SQL을 분리하여 XML 파일에 보관(여기서는 캡슐화라고 표현)하고 있다는 것을 설명하고 있다. XML에 SQL문장을 보관하면 여러 종류의 데이터베이스에서도 잘 작동한다고 설명하고 있다. (실제로 SQL문장을 아무리 ANSI 표준에 따르라고 해도 특정 RDBMS에 고유한 SQL문장과 함수들을 자주 사용하기 때문에 데이터베이스의 종류가 바뀌면 추가적으로 해 줘야할 작업이 적지 않다)

 

2장 iBATIS란 무엇인가?

여기서는 일반 ORM과 다르게 iBATIS는 SQL과 객체의 매핑이라는 것을 설명하고 있다. 즉, "객체지향세계의 객체(Object)"와 "관계형데이터베이스(RDBMS)의 특정 테이블의 행"을 어떻게 매핑시킬까라는 관점의 ORM(Object-Relational Mapping)이 아니라는 이야기다. 따라서 iBATIS 프레임워크가 ORM 기법의 일종이라고 한다면, 그것은 엄격한 의미에서 잘못된 말이다.

 

이 장에서는 SQL의 입력과 출력에 객체를 매핑시키는 방법, JDBC API를 이용하여 코딩하는 것과 어떤 차이가 있는지 설명하고 있다. 그리고 후반부에서는 Java 프로그램과, SqlMapConfig.xml, SqlMap.xml 파일을 이용하여 어떻게 RDBMS와 연동하는지 예제를 보여주고 있다. 이 부분에서 개발자가 작성해야할 코드가 얼마나 감소하는지 확인해 보기 바란다.

 

3장에서는 iBATIS를 설치하는 방법, JDBC와 어떤 관계가 있는지, SQL Injection에 어떻게 대응할 수 있는지, SqlMapConfig.xml 파일의 상세 구조에 대해서 설명하고 있다.

 

4장에서는 자바빈즈와 어떻게 사용할 수 있는지, 파라미터 매핑을 어떻게 할 것인지, 5장에서는 insert, update, delete 등을 어떻게 할 것인지, 저장 프로시저를 어덯게 호출할 것인지에 대해서 설명하고 있다. 이중에서 저장 프로시저를 호출하는 방법을 잘 알아두면 레거시 시스템과 통합할 때 유용할 때가 있다.

 

6장에서는 XML기반 데이터를 다루는 방법, 복잡한 객체를 매핑시키는 방법, 성능을 향상 시키기 위하여 적재지연(Lazy loading)을 설정하는 방법, N+1 Select 문제를 피하는 방법, 대용량 데이터 셋 처리를 위하여 RowHandler를 사용하는 방법에 대해서 설명하고 있다.

 

실제로 프로젝트에서 위와 같은 기법이나 설정 등은 전체 성능에 영향을 주지만 효과가 매우 적은 편이다. 악성 쿼리를 사용빈도수, 데이터 양 및 분포를 기반 튜닝하는 것이 가장 중요하다. iBATIS에서는 XML 내의 개별 SQL문장에 대해서도 힌트를 줄 수 있기 때문에 이를 활용하는 것이 필요하다.

 

7장은 트랜잭션에 대한 부분인데.. 엔터프라이즈급 애플리케이션이라면 대부분 별도의 트랜잭션 처리를 위한 인프라 소프트웨어 (전용 TP-monitor 툴, WAS 등)가 존재하기 때문에 직접 트랜잭션을 처리하지 않는 것이 일반적이다. 다만, 필요에 의해서 트랜잭션 관련 설정을 하기도 하는데 일반적이지 않은 것 같다.

 

8장에서는 업무에서 생각보다 많이 사용하게 되는 동적 SQL문장에 대해서 설명하고 있다. 조건에 따라 경우의 수가 많은 경우에는 생각보다 SQL 문장이 길어지는 것 같다.

 

9장은 캐시를 통해서 성능향상하는 부분에 대해서 설명하고 있는데... 실제로 효과가 있는지 의문이다. 설정을 아무리 잘 해도 악성 쿼리를 개별 튜닝하는 것만 못한 것 같다.

 

10장에서는 iBATIS 프레임워크 기반으로 DAO(Data Access Object) 패턴을 구현하는 예를 보여주고 있고, 11장에서는 다양한 DAO개를 구현하는 방법을, 12장에서는 iBATIS를 어떻게 확장하는지에 대해서 설명해준다.

 

13장에서는 iBATIS를 사용한 경우 단위테스트하는 방법, 설정파일을 관리하는 방법, 여러 매핑구문, 결과 맵, 파라미터 맵, SQL Map, XML 파일을 명명하는 방법에 대해서 설명하고 있다. 여기서 한가지 팁이라면... 보통 SqlMap.xml 파일의 SQL 구문을 위한 태그 id가 명명규칙에 따랐는가에만 중점을 두는데.... 악성쿼리를 추출해 내기 위해서는 SQL 문장내에 주석을 추가하여 태그 id 등의 정보를 추가하는 것이 필요하다. 이렇게 SQL문장을 작성하면 DBA나 튜너들이 추출한 악성쿼리에 대하여 보다 쉽게 대처할 수 있다... 이런 정보가 없으면.. 서로 자기 SQL문장이 아니라고 주장하는 경우가 빈번하다.

 

14장에서는 iBATIS를 사용한 애플리케이션을 전체를 살펴볼 수 있다. 부록에서는 iBATIS.NET을 사용하는 방법에 대해서 설명이 되어 있으니, .NET 기반으로 애플리케이션을 작성할 때 참조할 수 있겠다.

 

---------------------

 

계속된 나의 주장이지만, ORM의 대표적인 기법은 하이버네이트, Entity Bean 등은 데이터가 소규모이고 데이터모델이 정규화가 잘 된 경우에만 유효하고, 대용량이고 비정규화가 많이 진행된 엔터프라이즈급 데이터모델에는 적합하지 않다. 이런 현실에서 자바기반 응용프로그램에서 데이터를 처리로직을 위하여 국내에서 가장 많이 선택되고 있는 프레임워크가 iBatis일 것이라고 추측해 본다.

 

즉, SQL문장을 자바객체내부에 포함시키게되면 유지보수할 때마다 해당 자바객체를 재컴파일해야 하는 유지보수 및 생산성 저하문제가 있고, SP(Stored Procedure)로 개발하게 되면 성능은 확보되나 DBMS간의 호환성에 문제가 발생하므로, 이러한 문제를 최소화시키기 위하여 SQL문장을 XML로 별도로 보관하고, SQL의 패러미터나 수행결과를 객체로 매핑하는 프레임워크가 널리 사용된 것이라고 생각한다.

 

개인적으로 생각하는 iBATIS의 장단점은 아래와 같다.

장점

  • 개발자가 작성해야할 코드의 양을 줄여준다
  • 오픈소스이므로 iBATIS의 모든 소스를 추적해 볼 수 있다.
  • 튜닝이 용이하다.
  • 정형화된 테이블구조에 의지하지 않고 SQL구문의 실행결과를 객체에 매핑하는 방식(기존 SQL문장의 재활용이 가능)

단점

  • XML에 포함된 SQL문장을 디버깅하기가 쉽지 않다.
  • SQL문장이 많은 경우 최초의 sqlmap 파일을 로드하는데 시간이 오래 걸린다.
  • SQL문장이 DB서버가 아닌 AP 서버에 존재하기 때문에, 필요시 AP서버에서 DB서버로 SQL을 지속적으로 주고 받아야 한다. 이는 SQL문장이 DBMS에 내장되고, 컴파일된 형태로 존재하는 SP(Stored Procedure)보다는 더 많은 내트워크 대역폭을 소모하게 된다.
  • 아마존에도 아직 MyBatis에 관한 책은 나오지 않고 있다.

http://en.wikipedia.org/wiki/IBATIS

t********s 2012.05.30. 신고 공감 0 댓글 0
리뷰 총점 종이책
iBATIS in Action
"iBATIS in Action" 내용보기
iBatis SQL 매핑 프레임웤에 대한 거의 모든 주제가 들어있는 책이다. 이 책을 이해하기 위해선 퍼시스턴스 계층에 대한 이해뿐만 아니라 자바 프로젝트 전반에 관한 사전 이해가 필요할 듯 하다. 기본적인 sql 매핑에 관한 내용은 그다지 어렵지 않으나, 이 책에서 설명하는 트랜젝션 관리, 캐시를 통한 성능향상, iBatis 확장하기 등을 제대로 이해하려면 객체지향 코딩기법과 프레임
"iBATIS in Action" 내용보기

iBatis SQL 매핑 프레임웤에 대한 거의 모든 주제가 들어있는 책이다.

이 책을 이해하기 위해선 퍼시스턴스 계층에 대한 이해뿐만 아니라 자바 프로젝트 전반에 관한 사전 이해가 필요할 듯 하다.

기본적인 sql 매핑에 관한 내용은 그다지 어렵지 않으나, 이 책에서 설명하는 트랜젝션 관리, 캐시를 통한 성능향상, iBatis 확장하기 등을 제대로 이해하려면 객체지향 코딩기법과 프레임웤에 대한 이해 없이는 무척 힘들것 같다.

또한 스프링 프레임웤의 DAO를 사용한다던지, 최종 예제에 나오는 스트럿과 통합하여 어플리케이션을 설계한다던지 하는 주제들은 너무 간략하게 요점만 설명하고 있어서 과연 이 책만 가지고 이걸 다 이해할 수 있을지 하는 의문이..

어쨌거나 전체적인 구성이나 내용 자체는 훌륭했다는 느낌이다.

한 두번 볼 책은 아닌거 같고..  여러번 정독하면서 음미해 본다면 실력 향상에 많은 도움이 될 것 같다.

 



s****d 2012.02.20. 신고 공감 0 댓글 0
리뷰 총점 종이책
꼭 배워야 하는 툴.
"꼭 배워야 하는 툴." 내용보기
iBatis는 정말 좋다. 가장 강조 하는 JDBC로 인한 코드 중복을 아주 많이 줄일 수 있다. 설정도 간단하기 때문에 아주 쉽게 적용해서 사용할 수 있다.   하지만 이 책은 그다지 추천 하고 싶지 않다. 책의 예제가 너무 이상하다. 내가 수준이 낮아서 그런 것도 있겠지만. 전체적으로 예제가 실행하면서 해볼 것이 없다.   ORM이라고 하기보다는 SQL 매핑 툴 이라고 생각하
"꼭 배워야 하는 툴." 내용보기

iBatis는 정말 좋다.

가장 강조 하는 JDBC로 인한 코드 중복을 아주 많이 줄일 수 있다.

설정도 간단하기 때문에 아주 쉽게 적용해서 사용할 수 있다.

 

하지만 이 책은 그다지 추천 하고 싶지 않다.

책의 예제가 너무 이상하다.

내가 수준이 낮아서 그런 것도 있겠지만.

전체적으로 예제가 실행하면서 해볼 것이 없다.

 

ORM이라고 하기보다는 SQL 매핑 툴 이라고 생각하면 되는데.

예제가 이상해서 공부 하기에는 조금 어려웠다.

실행해볼 예제가 없을때 밀려드는 그 짜증이랄까.

 

하지만 꼭 배워야 할만큼 강력하다.

YES마니아 : 플래티넘 d*****n 2008.07.14. 신고 공감 0 댓글 0