데이터 접근 패턴 Data Access Patterns [데이터베이스와 효율적으로 상호작용하는 25가지 소프트웨어 디자인 패턴]
- 원서명Data Access Patterns (ISBN 9780321555625)
- 지은이클리프턴 녹
- 옮긴이임혜연
- ISBN : 9788960774292
- 40,000원
- 2013년 05월 20일 펴냄 (절판)
- 페이퍼백 | 528쪽 | 188*250mm
- 시리즈 : 데이터 과학
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
효율적인 고품질의 데이터 접근 코드는 기업용 애플리케이션의 성능과 사용성에 결정적이다. 그리고 기존 시스템의 성능을 향상시키는 데 데이터 접근 코드를 최적화하는 것보다 더 좋은 방법은 없다. 개발자는 데이터베이스 엔진, 플랫폼, 언어, 애플리케이션과 상관없이 반복적으로 같은 관계형 데이터베이스에 접근하는 도전에 부딪힌다. 『데이터 접근 패턴 Data Access Patterns』에서 저자 클리프턴 녹은 25가지의 검증된 솔루션을 알아보고, 각각을 명쾌하고 사용하기 쉬운 패턴 형태로 제시한다.
이러한 데이터 접근 패턴은 효율적인 데이터베이스 독립 애플리케이션을 만들고, 이해하기 어려운 데이터베이스 의미 체계를 사용자에게서 숨기고, 개발과 유지 보수를 단순화하고, 동시성과 트랜잭션 지원을 향상시키고, 데이터 접근 병목을 제거하는 등의 광범위한 문제를 해결한다. 모든 패턴은 충분히 주석을 붙인 자바/JDBC 코드 예제와 인터페이스, 클래스, 관계를 나타내는 UML 다이어그램과 함께 설명했다.
[ 이 책에서 다루는 내용 ]
■ 분리 패턴: 다른 애플리케이션 로직으로부터 데이터 접근 코드를 분리해서 더 깔끔하고 신뢰성 있는 시스템을 만든다.
■ 리소스 패턴: 관계형 데이터베이스 리소스를 더 효율적으로 관리한다.
■ 입출력 패턴: ‘물리적’ 관계형 데이터와 그 데이터의 도메인 객체 표현 사이를 일관적으로 해석해서 I/O 연산을 단순화한다.
■ 캐시 패턴: 데이터 접근 최적화와 캐시 부담 사이의 트레이드오프를 최적화하기 위해 전략적으로 캐싱을 사용한다.
■ 동시 실행 패턴: 동시성과 트랜잭션을 더 효율적이고 신뢰성 있게 구현한다.
『데이터 접근 패턴 Data Access Patterns』은 전통적으로 가장 견고한 데이터 접근 솔루션에서만 쓰였던 기법을 알기 쉽게 설명한다. 그 기법을 모든 소프트웨어 개발자, 아키텍트, 디자이너에게 실용적으로 만들어 준다.
[ 이 책의 대상 독자 ]
이 책은 데이터 접근 소프트웨어의 구성 요소를 만드는 일을 맡은 소프트웨어 아키텍트, 디자이너, 엔지니어들을 위한 책이다. 또한 이 책의 자료는 공통적인 데이터 접근 문제와 해결책을 이해하려는 학생들에게도 적합하다.
독자가 이미 데이터베이스와 객체지향 개념에 익숙하다고 가정하고, 일반적인 데이터베이스와 객체지향 개념과 용어를 사용해 데이터 접근 패턴을 설명한다. 친숙하지 않은 용어를 만났을 때는 책의 마지막 부분에 있는 ‘용어 정리’를 참고하라.
이 책의 패턴은 다양한 플랫폼, 프로그래밍 언어, 데이터베이스에 적용된다. 각 패턴의 예제 코드는 Java 2 Standard Edition(J2SE), Java 2 Enterprise Edition(J2EE), Java Database Connectivity(JDBC) API를 사용해 작성됐다. 예제 코드는 데이터베이스 연산을 SQL로 표현했다. 자바와 JDBC를 이미 알고 있다면 예제 코드를 공부할 때 도움이 되지만, 잘 몰라도 무방하다. 복잡한 코드에는 주석과 설명을 붙였다.
[ 이 책의 구성 ]
이 책은 일종의 패턴 편람으로, 데이터 접근 패턴들을 자세히 설명한다. 이 책을 구성하는 절들은 여러 가지 패턴을 적용성에 기반을 두고 그룹으로 묶었다. 패턴 편람이므로, 패턴 설명을 반드시 순서대로 읽어야 할 필요는 없다. 특정 패턴이 다른 패턴이 정의하는 개념에 의존한다면 본문에 그 사실을 분명히 명시했다.
패턴들은 간결하고, 서술적이고, 친숙한 이름으로 식별된다. 패턴 이름은 대화와 문서에서 사용되기 때문에 중요하다. 상호작용하는 클래스들을 리소스 장식자(Resource Decorator)의 인스턴스라고 기술하는 것이 패턴의 각 요소들을 반복해 자세히 기술하는 것보다 훨씬 효율적이다.
이 책의 ‘서론’에서는 데이터 접근 패턴을 학습하고 적용하는 동기를 보여주고, 각 패턴을 간단히 소개한다. 서론에서는 또한 이후 장에서 패턴 세부 사항을 기술할 양식을 미리 정의한다.
이 책의 나머지는 각 패턴 범주에 해당하는 부분으로 나뉜 패턴 목록이다.
•1부, '분리 패턴'에서는 데이터 접근 코드를 다른 애플리케이션 로직으로부터 분리함으로써 데이터 접근 세부 사항에만 연관된 변경 사항으로부터 야기된 결함에 덜 민감하고 더 깔끔한 애플리케이션 코드를 낳는 분리 패턴들을 다룬다.
•2부, '리소스 패턴'에서는 효율적인 데이터베이스 자원 관리를 위한 패턴들을 다룬다.
•3부, '입/출력 패턴'에서는 관계형 데이터의 물리적 형태와 도메인 객체 표현 사이의 일관된 해석을 사용해 데이터 입력과 출력 연산을 단순화하는 패턴들을 다룬다.
•4부, '캐시 패턴'에서는 전략적 데이터 캐싱을 가능하게 하는 패턴을 기술하고, 데이터 접근 최적화와 캐시 부담 사이의 트레이드오프를 다룬다.
•5부, '동시 실행 패턴'에서는 동시성 전략을 구현하는 패턴을 다룬다.
이러한 데이터 접근 패턴은 효율적인 데이터베이스 독립 애플리케이션을 만들고, 이해하기 어려운 데이터베이스 의미 체계를 사용자에게서 숨기고, 개발과 유지 보수를 단순화하고, 동시성과 트랜잭션 지원을 향상시키고, 데이터 접근 병목을 제거하는 등의 광범위한 문제를 해결한다. 모든 패턴은 충분히 주석을 붙인 자바/JDBC 코드 예제와 인터페이스, 클래스, 관계를 나타내는 UML 다이어그램과 함께 설명했다.
[ 이 책에서 다루는 내용 ]
■ 분리 패턴: 다른 애플리케이션 로직으로부터 데이터 접근 코드를 분리해서 더 깔끔하고 신뢰성 있는 시스템을 만든다.
■ 리소스 패턴: 관계형 데이터베이스 리소스를 더 효율적으로 관리한다.
■ 입출력 패턴: ‘물리적’ 관계형 데이터와 그 데이터의 도메인 객체 표현 사이를 일관적으로 해석해서 I/O 연산을 단순화한다.
■ 캐시 패턴: 데이터 접근 최적화와 캐시 부담 사이의 트레이드오프를 최적화하기 위해 전략적으로 캐싱을 사용한다.
■ 동시 실행 패턴: 동시성과 트랜잭션을 더 효율적이고 신뢰성 있게 구현한다.
『데이터 접근 패턴 Data Access Patterns』은 전통적으로 가장 견고한 데이터 접근 솔루션에서만 쓰였던 기법을 알기 쉽게 설명한다. 그 기법을 모든 소프트웨어 개발자, 아키텍트, 디자이너에게 실용적으로 만들어 준다.
[ 이 책의 대상 독자 ]
이 책은 데이터 접근 소프트웨어의 구성 요소를 만드는 일을 맡은 소프트웨어 아키텍트, 디자이너, 엔지니어들을 위한 책이다. 또한 이 책의 자료는 공통적인 데이터 접근 문제와 해결책을 이해하려는 학생들에게도 적합하다.
독자가 이미 데이터베이스와 객체지향 개념에 익숙하다고 가정하고, 일반적인 데이터베이스와 객체지향 개념과 용어를 사용해 데이터 접근 패턴을 설명한다. 친숙하지 않은 용어를 만났을 때는 책의 마지막 부분에 있는 ‘용어 정리’를 참고하라.
이 책의 패턴은 다양한 플랫폼, 프로그래밍 언어, 데이터베이스에 적용된다. 각 패턴의 예제 코드는 Java 2 Standard Edition(J2SE), Java 2 Enterprise Edition(J2EE), Java Database Connectivity(JDBC) API를 사용해 작성됐다. 예제 코드는 데이터베이스 연산을 SQL로 표현했다. 자바와 JDBC를 이미 알고 있다면 예제 코드를 공부할 때 도움이 되지만, 잘 몰라도 무방하다. 복잡한 코드에는 주석과 설명을 붙였다.
[ 이 책의 구성 ]
이 책은 일종의 패턴 편람으로, 데이터 접근 패턴들을 자세히 설명한다. 이 책을 구성하는 절들은 여러 가지 패턴을 적용성에 기반을 두고 그룹으로 묶었다. 패턴 편람이므로, 패턴 설명을 반드시 순서대로 읽어야 할 필요는 없다. 특정 패턴이 다른 패턴이 정의하는 개념에 의존한다면 본문에 그 사실을 분명히 명시했다.
패턴들은 간결하고, 서술적이고, 친숙한 이름으로 식별된다. 패턴 이름은 대화와 문서에서 사용되기 때문에 중요하다. 상호작용하는 클래스들을 리소스 장식자(Resource Decorator)의 인스턴스라고 기술하는 것이 패턴의 각 요소들을 반복해 자세히 기술하는 것보다 훨씬 효율적이다.
이 책의 ‘서론’에서는 데이터 접근 패턴을 학습하고 적용하는 동기를 보여주고, 각 패턴을 간단히 소개한다. 서론에서는 또한 이후 장에서 패턴 세부 사항을 기술할 양식을 미리 정의한다.
이 책의 나머지는 각 패턴 범주에 해당하는 부분으로 나뉜 패턴 목록이다.
•1부, '분리 패턴'에서는 데이터 접근 코드를 다른 애플리케이션 로직으로부터 분리함으로써 데이터 접근 세부 사항에만 연관된 변경 사항으로부터 야기된 결함에 덜 민감하고 더 깔끔한 애플리케이션 코드를 낳는 분리 패턴들을 다룬다.
•2부, '리소스 패턴'에서는 효율적인 데이터베이스 자원 관리를 위한 패턴들을 다룬다.
•3부, '입/출력 패턴'에서는 관계형 데이터의 물리적 형태와 도메인 객체 표현 사이의 일관된 해석을 사용해 데이터 입력과 출력 연산을 단순화하는 패턴들을 다룬다.
•4부, '캐시 패턴'에서는 전략적 데이터 캐싱을 가능하게 하는 패턴을 기술하고, 데이터 접근 최적화와 캐시 부담 사이의 트레이드오프를 다룬다.
•5부, '동시 실행 패턴'에서는 동시성 전략을 구현하는 패턴을 다룬다.
목차
목차
- 1부 분리 패턴
- 데이터 모델과 데이터 접근
- 도메인 객체와 관계형 데이터
- 분리 패턴
- 1장 데이터 접근자
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 2장 능동적 도메인 객체
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 3장 객체/관계형 맵
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 4장 계층 중첩
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 2부 리소스 패턴
- 리소스와 맥락
- 리소스와 동시성
- 데이터 접근 리소스
- 리소스 관리
- 리소스 패턴
- 5장 리소스 장식자
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 6장 리소스 풀
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 7장 리소스 타이머
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 8장 리소스 기술자
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 9장 리트라이어
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 3부 입출력 패턴
- 입출력 연산
- 아이덴티티 객체
- 입출력 패턴
- 10장 선택 팩토리
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 11장 도메인 객체 팩토리
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 12장 갱신 팩토리
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 13장 도메인 객체 조립자
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 14장 페이징 반복자
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 4부 캐시 패턴
- 캐시 연산과 투명성
- 캐시된 데이터
- 캐시 패턴
- 15장 캐시 접근자
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 16장 요구 캐시
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 17장 준비된 캐시
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 18장 캐시 검색 시퀀스
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 19장 캐시 컬렉터
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 20장 캐시 복제자
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 21장 캐시 통계
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 5부 동시 실행 패턴
- 작업 단위
- 작업 사본
- 동시 실행 문제
- 동시 실행 솔루션
- 동시 실행 패턴
- 22장 트랜잭션
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 23장 낙관적 잠김
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 24장 비관적 잠김
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드
- 연관 패턴과 기술
- 25장 원상회복 트랜잭션
- 설명
- 배경
- 적용 가능성
- 구조
- 상호작용
- 결과
- 전략
- 예제 코드