토요일, 8월 24, 2013

[독서광] 마이바티스 프로그래밍

지난번에 소개드린 [독서광] 데이터 접근 패턴과 같은 부류의 책 말고 실제 현장에 바로 적용 가능한 책을 원하는 독자분들이 분명히 존재한다. 오늘은 바로 이런 목적에 부합하는 마이바티스 관련 국내서(번역서가 아니다)인 '마이바티스 프로그래밍'을 소개해드리겠다.

먼저 마이바티스가 뭔지부터 잠깐 설명하고 넘어갈 필요가 있다. 마이바티스는 객체지향 애플리케이션을 작성할 때 관계형 데이터베이스를 손쉽게 사용하게 만드는 자료 매퍼 프레임워크라고 보면 된다. 하지만 프로그래밍에 앞서 관계형 테이블을 설계하고 SQL 구문을 작성한다는 측면에서 마이바티스는 단순히 하단 데이터베이스를 영속적인 객체 저장소로 보는 전통적인 ORM과 차이를 보인다. 실수를 유발하기 딱 좋은 엄청난 중복/반복 코딩으로 악명 높은 JDBC를 쉽게 사용하게 만들어주는 도구라 볼 수도 있겠다. 마이바티스는 SQL을 기반으로 출발하다보니 개발자들이 쉽고 빨리 기술을 배우고 적용할 수 있는 장점이 존재한다. 또한 관계형 자료를 객체로 인출하고 객체를 관계형 자료 형태로 저장할 수 있으므로, 도메인에 밀접한 프로그래밍 논리를 구현하기가 수월하다는 장점도 있다. 비즈니스 논리와 질의를 분리해서 얻는 장점은 여기서 다시 한번 설명하지는 않겠다.

자 이제 본격적으로 책 내용을 살펴보자. 이 책은 초중급자를 대상으로 필요한 개발 환경 구축부터 마이바티스의 기본 동작 방식과 활용법을 차근차근 단계적으로 설명한다. 실습이 가능하게 이클립스에서 바로 사용 가능한 예제 코드까지 홈 페이지에서 제공하고 있기에 테스트용 MySQL만 설정하면 바로 동작 과정을 확인할 수 있다. JDBC에 익숙한 개발자들이 마이바티스로 쉽게 넘어가게 CRUD 관련 코드를 JDBC 버전과 마이바티스 버전 양쪽으로 구현해놓았으므로 비교하면서 읽어보면 빠르게 부트스트래핑이 가능하다. 이렇게 감을 잡게 만든 다음, 웹 애플리케이션과 스프링 웹 애플리케이션 작성 방법을 설명해 마이바티스를 웹 애플리케이션 기반 프레임워크로 활용하도록 도와준다. 마지막으로 중급자를 위해 마이바티스 설정 파일, 매퍼 XML/인터페이스, 동적 SQL, 제네레이터를 참조 가능한 형태로 정리한다. 또한 (여러 가지 이유로) 기존 아이바티스에서 아직 벗어나지 못하는 개발자를 위해 아이바티스와 마이바티스의 차이점과 이주 방식에 대해 본문과 부록에서 설명하고 있으므로, 아직도 아이바티스를 사용하는 분들이 계시다면, 이 책을 읽고 마이바티스로 넘어가면 좋겠다는 생각을 해봤다. 마이바티스의 완성도가 상당히 높으므로 정말 불가피한 상황이 아닌 이상 굳이 레거시의 저주에 발목 잡힐 이유는 없다는 생각이다.

책을 읽다보니 아쉬운 점이 하나 있는데, 스프링 연동 설명이 생각보다 약했다. 물론 스프링이 워낙 복잡하니 정말 제대로 하려면 토비의 스프링과 같은 책을 읽어야 하는 상황이 정상이긴 하지만, 국내 개발자들이 스프링과 마이바티스를 하나로 묶어 개발을 진행하는 경우가 많으므로 혹시 후속 작품을 기획한다면 아예 제목부터 '마이바티스와 스프링 프로그래밍'으로 근사하게 하나 뽑은 다음에 핵심만 파고들면 더할 나위가 없겠다.

결론: 이미 눈치챘겠지만 책 목차와 전개 방식이 (늘 바쁘고, 핵심을 원하고, 바로 감을 잡게 만들어주는 뭔가를 요구하는...) 전형적인 한국 개발자를 위해 최적화되어 있으므로 국내서의 장점을 아주 잘 살렸다고 칭찬해주고 싶다. 마이바티스 책 한 권만 골라라고 하면 주저없이 이 책을 선택하겠다.

EOB

댓글 2개:

  1. 후속버전의 "마이바티스와 스프링 프로그래밍" 책이 가능하다면 준비하겠습니다. 그게 안되면 별도의 문서를 만들어서 배포하는 방법을 고려해보도록 하겠습니다. 책에 대한 피드백이 없어 내내 마음이 아쉬웠는데 감사합니다.

    답글삭제