추천 게시물

[일상다반사] (유데미 큐레이션 x 책만) 개발자 북클럽 - 클린 코드 이제는 파이썬이다

클린 코드 이제는 파이썬이다 를 출간하고 나서 유데미 개발자영어 강의 를 어떻게 연결시킬 방법이 없는지 고민하던 차에 유데미 큐레이션 담당자가 독서 클럽을 제안해주셨고 책만 출판사 대표님께서도 지원해주셨기에, 독자 여러분과 함께 "클린...

토요일, 8월 10, 2013

[독서광] 데이터 접근 패턴

요즘 워낙 많은 책(한국어판, 원서)을 동시에 읽고 있다보니 서평이 뜸했었다. 오늘은 간만에 설계 관련 책을 하나 소개해드리려고 하는데, "데이터베이스와 효율적으로 상호작용하는 25가지 소프트웨어 디자인 패턴"이라는 긴 부제가 붙은 '데이터 접근 패턴'이 주인공이다. 주의 사항을 몇 가지 짚고 넘어가자. 이 책은 2003년도에 원서가 출간되었고 번역서가 2013년에 출간되었기에 10년이라는 공백이 존재한다. 따라서 아주 새롭고 신기한 신기술은 다루지 않는다는 사실을 반드시 인지해야 한다. 또한 요즘 나오는 마이바티스 등 각종 데이터베이스 프레임워크와 ORM과 같은 기술을 소개하지도 않으며, 순수하게 JDBC만으로 모든 예제를 설명하기에 착오없으시기 바란다. 마지막으로 철저하게 관계형 데이터베이스를 중심으로 설명이 진행되므로(일례로 5부는 트랜잭션과 잠금에 대한 내용을 중심으로 구성되어 있다) 요즘 유행하는 NoSQL 관련 내용을 기대하면 안 된다. 이 책을 읽기 위해서는 자바와 JDBC 프로그래밍 기술, 관계형 데이터베이스에 대한 기초 지식, 그리고 (필수는 아니지만) 패턴에 대한 기본적인 이해가 필요하다.

이 책 목차를 보면 1부 '분리 패턴'에서는 데이터 접근 코드와 비즈니스 논리를 구분하는 방법을 소개한다. 2부 '리소스 패턴'에서는 데이터베이스 프로그램에서 사용하는 여러 가지 리소스를 격리하는 방법을 소개한다. 3부 '입출력 패턴'에서는 관계형 데이터의 물리 형태와 도메인 객체 표현을 분리하는 방법으로 데이터 입출력 연산을 단순화하는 방법을 소개한다. 4부 '캐시 패턴'에서는 물리적인 데이터베이스 접근을 최소화하는 다양한 캐시 전략과 구성 요소를 설명한다. 마지막으로 5부 '동시 실행 패턴'에서는 동시에 데이터에 접근이 일어날 경우 발생하는 문제점을 해결하기 위해 트랜잭션과 잠금을 설명한다. 목차를 보면 알겠지만 요즘 나오는 데이터베이스 프레임워크가 여러분을 위해 뒤에서 열심히 서비스하는 내용을 어떤 이론에 기반해 어떻게 설계하고 구현할지를 다룬다고 보면 틀림없겠다. 물론 어디까지나 설명을 위한 설계와 예제이므로 실전에서는 한계가 분명히 존재하며, 이 책에 나온 코드를 그대로 사용할 수 있으리라는 기대는 접기 바란다.

그렇다면 이 책은 어떤 독자를 대상으로 할까? 우선 기본 데이터베이스 프레임워크를 분석하거나 아예 필요에 딱 맞춰 새로 만들려는 개발자들이 참고할만하다. (어차피 이런 부류의 경쟁서가 아예 없으므로) 완벽하지는 않지만 출발점으로는 좋아보인다. 다음으로 데이터베이스를 많이 다루는 엔터프라이즈 애플리케이션 설계에 관심이 있는 설계자들이 참고할만하다. 특히 캐시 패턴과 동시 실행 패턴은 기초 이론에 대한 설명과 실제 예제가 함께 등장하므로 구체적인 기반 위에서 설계를 진행할 수 있게 도와준다. 마지막으로 (어떤 사정상) 어쩔 수 없이... JDBC 만으로 프로그램을 만드는 프로그래머에게 도움을 준다. "요즘 누가 JDBC로 날 코딩을 하지?"라고 의문이 생기는 분들도 계시겠지만... 뭐 사정상 필요한 경우가 있기 마련이다(예: B급 프로그래머. T_T).

번역 상태를 보자. 이런 부류의 서적에서 필연적으로 다가오는 '용어' 문제는 누가 번역하더라도 풀지 못할 난제이므로 책의 가장 뒷편에 나오는 용어 정리 항목을 먼저 읽어 머리 속에 한글단어-영어단어-개념이라는 해시맵을 만들고 나서 시작해야 할 것이다. 만일 이런 indirection 과정을 참지 못하거나 용어에 민감해 신경질이 나는 독자라면 번역서 대신 원서를 강력하게 추천한다. 비문이 조금씩 눈에 띄고 직역이 많긴 하지만 다행스럽게도 이해하는 과정에서 큰 어려움은 없었다. 코드에 잘못된 문자가 들어가거나 띄어쓰기가 이상하거나 하는 경우가 있긴 했지만, 실시간으로 고쳐서 읽을 수 있는 수준이었다. 시간 절약을 위해 원서 대신 번역서를 읽어도 무방하다는 생각이다.

결론: 아주 새로운 내용은 없지만 기초를 잘 설명하고 있으므로 데이터베이스 애플리케이션과 관련해 설계와 구현에 관심이 있는 독자분께 추천드린다.

EOB

댓글 없음:

댓글 쓰기