권효중 fog_rain@naver.com iBATIS.NET & Spring.NET 권효중 fog_rain@naver.com
Session Objective iBATIS.NET Spring.NET Q & A Why iBATIS.NET? 주요 기능 리뷰 DEMO Spring.NET 활용 전략 Q & A
iBATIS.NET
iBATIS.NET은 또다른 ORM ? iBATIS.NET은 ORM이 아니다 쿼리 결과를 객체에 맵핑해주는 Data Mapper일 뿐이다
ORM vs iBATIS ORM iBATIS 데이타베이스와 객체의 맵핑 No More Hand Coded Query !! 쿼리 결과와 객체의 맵핑 Still Need Hand Coded Query, But No More Object Mapping Code !!
개발 환경 구성 Database 별 드라이버 정보를 기재 단 하나의 Providers.config 파일만이 존재함 커넥션스트링 기재 분산 트랜잭션이 필요한 경우 여러개의 SqlMap.config 파일이 존재할 수 있음 SqlMap.config 쿼리문이 기재됨 아키텍쳐에 따라서 테이블별로 기재할 수도 있고 메뉴별로 기재할 수도 있음 SqlStatement.XML
DEMO
Advantage Easy To Learn !! 쿼리 ↔ 객체간 맵핑 작업 필요 없음 데이타베이스 쿼리의 장점을 그대로 사용할 수 있음 쿼리문만 따로 관리하므로 유지 보수 용이 WHERE 조건의 다이나믹한 추가 제거 iBATIS가 제공하는 강력한 쿼리 캐쉬 메커니즘 사용 쿼리문의 재사용
iBATIS가 ORM보다 적합한 환경? ORM을 학습할만한 충분한 시간이 없는 경우 데이타베이스 쿼리의 장점을 활용하고자 할 경우 데이타베이스의 정규화 작업이 미진한 경우 개발팀이 데이타베이스에 대한 전권을 가지고 있지 못한 경우 복잡한 통계성 프로그램이 많은 경우
SPRING.NET
What is Spring.NET? 닷넷 환경에서 사용 가능한 Inversion Of Control 기반의 어플리케이션 프레임워크 IoC란… 객체의 생성과 소멸 작업이 개발자의 코드에 의해 관리되는 것이 아니라, IoC 컨테이너에 의해 관리됨을 의미한다. 어플리케이션 프레임워크란… 어플리케이션을 개발함에 있어 전 레이어에 걸쳐 개발 기반을 제공함. 코딩 룰(규칙)을 제공 또는 강제한다는 점에 있어서 라이브러리와는 다 르다
Messaging, Schedulling,,, Spring.NET support ... Messaging, Schedulling,,, ActiveMQ, TIBCO EMS, MSMQ 등 Message 랩퍼 제공 Quartz 스케쥴링 랩퍼 제공 AJAX 자바스크립트에서 웹서비스 호출 WEB ASP.NET WebForm에서 DI 기능 제공 SERVICE PONO를 웹서비스, COM+, 리모팅으로 포팅 ADO.NET의 랩퍼 클래스, 선언적 트랜잭션 제공 DAO AOP AOP 기능 지원 IoC Container Spring.Net의 Core 모듈
DEMO
Supporting WebService Service Logic (*.dll) Client Application App.config 직접 접근 DI 웹서비스 포팅 DI
... but it has challenges Spring.NET Forces Interfaced Programming 디버깅의 어려움, 모든 메소드에 대해 인터페이스 작성 등 기업내 업무용 소프트웨어에서 Interface 기반 프로그래밍의 실익을 살릴 수 있는지 고민하자 소프트웨어의 성격에 따라 다를것 !!
Q & A
For More Information Official Sites Blogs http://ibatis.apache.org http://www.springframework.net Blogs http://funnygangstar.tistory.com