ASP.NET2009.04.13 09:54
ASP.NET MVC 와 SPRING.NET 의 우수성과 편리함을 알리기 위해 주로 spring.net의 DI 부분 위주로 글을 작성하다가 지루하게 www.springframework.net의 원문을 하나하나 번역하는것 보다는 소스 위주로 포스팅을 하려고 한다.
주말에 어떻게 포스팅을 할까? 어떤 주제로 할까 고민하다가 ASP.NET MVC + SPRING.NET 으로 간단한 게시판을 만들어 보자 라는 생각을 하게 되었는데, 퍼시스턴스 계층의 프레임웍을 iBatis.NET 으로 선택 하게 되었고 이의 편리함도 알리고자 이 글을 작성하게 되었다.

iBatis.NET이란?
iBatis는 데이터 매퍼 이다. 데이터 매퍼란 계층은 객체와 데이터베이스 그리고 매퍼 자체를 독립적으로 유지하면서 객체와 데이터베이스 간에 데이터를 이동시킨다. - Patterns of Enterprise Application Architecture -



이 말은 어플리케이션을 설계할때 비즈니스 로직에서 실제 Value Object 부분에 해당 하는 부분이 데이터 베이스와 매핑이 된다고 했을때, 그 VO Class 를 데이터베이스와 관계 매핑을 시키는 행위를 말한다.

그렇다면 왜 매핑을 하며, 매핑하면 뭐가 좋은가?
매핑을 하는 이유는 필요한 데이터를 얻기 위한 쿼리를 인라인 코드로 처리 하지 않고, XML 파일로 관리하는데에 이점이 있다. 이렇게 외부로 쿼리를 빼게 되면, 요구변경이 발생 될때 신속하게 수정을 할 수가 있고, 퍼시스턴스 계층을 완벽하게 바깥으로 뺄 수가 있다. 그러면, 개발자는 XML 에서 정의한 statement id를 이용해 쿼리를 호출 할수 있고, DBA는 쿼리플랜을 하면서 쿼리의 최적화를 할 수 있게 된다.

그러면 퍼시스턴스 계층의 매핑 프레임웍 중에 iBatis 가 제일 좋을까? 그렇지는 않다. Hibernate 라는 강력한 프레임웍이 있다. 그러면 하이버네이트를 사용하면 되지 왜 iBatis를 사용하는것일까?
Hibernate는 VO 와 테이블이 1:1 매핑이 되어야 한다. 혹시나 중간에 디비가 수정되거나 고객의 무리한 요구 사항에 대한 대처가 어렵다고 한다. 이 이유 때문에 iBatis.NET framework 을 선택했다.
Posted by dotnetpower

티스토리 툴바