리팩토링 데이터베이스
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
데이터베이스 리팩토링의 기초를 이루는 모든 기본적인 개념을 포함해, 실 세계의 데이터베이스를 리팩토링하기 위한 실무적인 장애물을 극복할 수 있도록 도와준다. 기존의 완벽한 설계후 개발 이라는 고정관념을 거부하며, 점진적 데이타베이스의 개발이라는 새로운 방법을 통해, 사용자의 요구사항을 최대한 반영하고, 프로젝트의 위험을 최소화 할수 있는 방법들을 자세히 설명하고 있다.
작가정보
저자(글) 스캇 W. 엠블러
스캇 W. 엠블러(Scott W. Ambler)는 세계적 선도 업체중의 하나인 소프트웨어 프로세스 임프루브먼트 (software process improvement)사의 컨설턴트로, 애자일 모델링(Agile Modeling), 애자일 데이터(Agile Data), 엔터프라이즈 통합 프로세스(Enterprise Unified Process), 애자일 통합 프로세스(Agile Unified Process)의 설립자이다. 스캇 엠블러는 Software Development, JavaOne, OOPSLA, DAMA와 같은 컨퍼런스에서 기조 연설과 프리젠테이션을 했다. 그는 애자일 모델링, 애자일 데이터베이스 테크닉(Agile Database Techniques), 오브젝트 프리머(The Object Primer) 3판, The Elements of UML 2.0 Style, 엔터프라이즈 통합 프로세스의 저자 혹은 공동저자이다.
저자(글) 프라모드 J. 세달라지
프라모드 J. 세달라지(Pramod J. Sadalage)는 ThoughtWorks에서 컨설턴트로 일하고 있으며 1999년부터 익스트림 프로그래밍(Extreme Programming)을 이용하여 대규모의 J2EE 응용 프로그램을 개발하고 있는 진화적 데이터베이스 디자인과 데이터베이스 리팩토링의 선구자이다. 프라모드는 현재 진화적 프로젝트에서의 데이터베이스 관리, 데이터베이스 디자인과 관리에서 진화적 프로세스에 관한 책을 쓰고 강연을 하고 있다.
저자(글) 정원혁 외
번역 정원혁
정원혁 (주)필라넷 상무이사, SQL Server Academy 본부장,
http://blog.naver.com/wonhyukc
약 2년전 꿈의 조직, 필라넷(www.feelanet.com) DB사업부를 만들었으며, SQL Server Academy(www.sqlacademy.com)를 맡고 있다. 한국 내 SQL Server 전문가 그룹인 SQL Specialist 의 창립자이며 리더이다. 컨설팅 고객사로는 Yes24, 홍진크라운, 부동산114, 삼성반도체, AIG, 동양증권, KT 등이 있다.
쉬고플 때 쉬면서 일할 수 있는, 행복할 수 있는 직장을 만들 꿈을 꾸며 살고 있고, 어디든 도움이 될 곳이 있다면 달려갈 준비를 한발씩 해나가고 있다. 아직도 여전히 하고 싶은 것이 너무나 많고, 하나님 이끄시는 대로 살아가려고 노력은 하고 있다. 최근에는 주신 IT 재능을 사용하여 필요한 사람들에게 도움을 주기 위해 다른 나라에 교육 센터를 세워 후원하고 있다.
이재범 (주)필라넷 책임 컨설턴트
(주)필라넷에서 Microsoft SQL Server와 관련 개발 부분의 컨설팅을 하고 있으며,
컨설팅 고객사로는 삼성생명,동양증권,부산은행,ING생명,삼성전기,조선일보, NHN, 호남석유등이 있다.
다 년간 금융권/제조업 관련 시스템 설계 및 개발을 해왔으며, 현재 데이터베이스 성능 튜닝뿐만 아니라 애플리케이션 성능 관리와 오픈소스에 분야에 관심이 많다.
첫 돌을 맞은 한 아이를 둔 가장으로 그 아이의 이름처럼 하나님의 평안을 바라며 살고자 노력하고 있다.
권태돈 (주)필라넷 주임 컨설턴트
(주)필라넷에서 Microsoft SQL Server 관련 컨설팅(BI 및 Analysis Service 분야를 담당)을 하고 있으며 컨설팅 업무와 병행하여 트라이콤 교육센터, 삼성멀티캠퍼스 등에서 SQL Server 과정 전문강사와 SQLMania.net 운영자로 활동하고 있다. 과거 학사 관련 시스템 개발과 주요 메이저 음반사 시스템 개발을 주로 담당했다.
지금은 데이터베이스에 많은 비전을 가지고 필라넷에 입사하게 하였고, 최근 컨설팅 고객사로는 한국투자증권, 부동산114, YES24 등이 있다. 관심분야로는 데이터베이스 마케팅, 경영정보 시스템, BI이다.
성대중 (주)필라넷 책임 컨설턴트
(주)필라넷에서 Microsoft SQL Server 관련 컨설팅을 하고 있으며
최근 컨설팅 고객사로는 YES24, AIG, 미래에셋생명, 부동산 114, CyberMBA, 삼성반도체 등이 있다.
한국 내 SQL Server 전문가 그룹인 SQL Specialist와 .NET Advisor SQL 그룹의 멤버로 활동하고 있으며, MSDN, TechNET 아티클에 대한 번역과 SQL Server 관련 도서의 번역 프로젝트에 참여하고 있다.
관심분야는 Tuning과 ERP 컨설팅 부분이며, 주경야경을 불사하는 바쁜 일정 중에서도 주일과 수요일에는 교회에 나가야 하는 평범한 크리스챤이다.
현중균 (주)필라넷 차장
(주)필라넷 DB사업부에서 Presale를 주로 하고 있으며
최근 컨설팅 고객사로는 YES24, AIG, 부동산 114, CyberMBA, CDI홀딩스 등이 있다.
현재는 SQL Server Reporting Service와 SQL Server관련 솔루션에 대해 관심이 많으며 이들을 통한 원가 절감에 초점을 맞추고 있다.
2005년 SQL Server 매거진 전문 번역을 했으며 네이버에 SQL관련 사이트를 운영 중에 있다.
관심분야는 Reporting Service와 부서 마케팅, 코칭이다.
목차
- 1장 진화적 데이터베이스 개발
1.1 데이터베이스 리팩토링
1.2 진화적 데이터 모델링
1.3 데이터베이스 회귀 테스트
1.4 데이터베이스 아티팩트 형상관리
1.5 개발자 샌드박스
1.6 진화적 데이터베이스 개발 기술의 장애물
1.7 무엇을 배웠나
2장 데이터베이스 리팩토링
2.1 코드 리팩토링
2.2 데이터베이스 리팩토링
2.2.1 단일 애플리케이션 데이터베이스 환경
2.2.2 다중 애플리케이션 데이터베이스 환경
2.2.3 의미 유지
2.3 데이터베이스 리팩토링의 분류
2.4 데이터베이스 냄새
2.5 어떻게 데이터베이스 리팩토링을 적합하게 할 것인가
2.6 데이터베이스 스키마를 보다 쉽게 리팩토링하기
2.7 무엇을 배웠나
3장 데이터베이스 리팩토링 프로세스
3.1 데이터베이스 리팩토링이 적절한지 검증한다
3.2 가장 적절한 데이터베이스 리팩토링을 선택한다.
3.3 원본 데이터베이스 스키마는 더 이상 지원되지 않음을 표시한다.
3.4 리팩토링 전, 후는 물론 리팩토링 도중에도 테스트를 한다
3.4.1 데이터베이스 스키마 테스트하기.
3.4.2 데이터 마이그레이션 검증하기.
3.4.3 외부 액세스 프로그램 테스트하기
3.5 데이터베이스 스키마를 변경한다
3.6 소스 데이터 마이그레이션(Migration)
3.7 외부 액세스 프로그램을 리팩토링한다
3.8 회귀 테스트를 실행한다
3.9 작업한 내용에 대해 버전 관리를 한다.
3.10 리팩토링이 끝났음을 알린다.
3.11 무엇을 배웠나
4장 프로덕션으로 배포하기
4.1 샌드박스 사이의 효과적인 배포
4.2 데이터베이스 리팩토링의 번들화
4.3 배포 윈도우 스케줄링
4.4 시스템 배포
4.5 더 이상 지원되지 않는 스키마 제거
4.6 무엇을 배웠나
5장 데이터베이스 리팩토링 전략
5.1 작은 변경사항이 적용하기 더 쉽다
5.2 개개의 리팩토링은 유일하게 식별되어야 한다
5.3 여러 개의 작은 변경으로 큰 변화를 구현한다
5.4 데이터베이스 설정 테이블을 유지한다
5.5 뷰나 배치 작업보다 트리거를 통한 동기화를 사용한다
5.6 충분한 과도기를 가진다
5.7 데이터베이스 ‘변경 관리 위원회’ 전략을 단순화한다
5.8 다른 팀과의 협의 과정을 단순화한다
5.9 데이터베이스 접근을 캡슐화한다
5.10 데이터베이스 환경설정을 쉽게 할 수 있도록 한다
5.11 SQL 문장의 중복을 피한다
5.12 데이터베이스 자산을 형상관리 시스템하에 둔다
5.13 정치를 숙지한다
5.14 무엇을 배웠나
온라인 리소스
6장 구조적 리팩토링
구조적 리팩토링 구현의 일반적인 고려사항
컬럼 제거(Drop Column)
테이블 제거(Drop Table)
뷰 제거(Drop View)
계산된 컬럼 도입(Introduce Calculated Column)
대리 키 도입(Introduce Surrogate Key)
컬럼 병합 (Merge Columns)
테이블 병합(Merge Tables)
컬럼 옮기기(Move Column)
컬럼명 바꾸기(Rename Column)
테이블명 바꾸기(Rename Table)
뷰 이름 바꾸기(Rename View)
LOB 형식을 테이블로 대체(Replace Large Object (LOB) With Table)
컬럼 바꾸기(Replace Column)
일대다 관계를 연관 테이블로 바꾸기(Replace One-to-Many With Associative Table)
대리키를 자연키로 바꾸기(Replace Surrogate Key With Natural Key)
컬럼 분할(Split Column)
테이블 분할(Split Table)
7장 데이터 품질 리팩토링
데이터 품질 리팩토링 구현시 일반적인 문제
룩업 테이블 추가(Add Lookup Table)
표준 코드 적용(Apply Standard Codes)
표준 타입 적용(Apply Standard Type)
키 통합 전략(Consolidate Key Strategy)
컬럼 제약조건 제거(Drop Column Constraint)
기본값 제거(Drop Default Value)
NULL 값을 허용하지 않는 제약조건 제거(Drop Non-Nullable Constraint)
컬럼 제약 조건 도입(Introduce Column Constraint)
일반 형식 도입(Introduce Common Format)
기본 값 도입(Introduce Default Value)
NULL 값을 허용하지 않는 컬럼 만들기(Make Column Non-Nullable)
데이터 옮기기(Move Data)
형식 코드의 속성 플래그화(Replace Type Code With Property Flags)
8장 참조무결성 리팩토링 214
외래키 제약조건 추가(Add Foreign Key Constraint)
계산된 컬럼을 위한 트리거 추가(Add Trigger For Calculated Column)
외래키 제약조건 삭제(Drop Foreign Key Constraint)
캐스캐이딩 삭제(Cascading Delete)
물리적 삭제(Hard Delete)
논리적 삭제(Soft Delete)
이력 데이터를 위한 트리거(Trigger For History)
9장 아키텍처적 리팩토링 245
CRUD 메서드 추가(Add Crud Method)
미러 테이블 추가(Add Mirror Table)
읽기 메서드 추가(Add Read Method)
뷰를 이용한 테이블 캡슐화(Encapsulate Table With View)
계산된 메서드 도입(Introduce Calculation Method)
인덱스 도입(Introduce Index)
읽기 전용 테이블 도입(Introduce Read-Only Table)
데이터베이스에서 마이그레이션 하는 메서드(Migrate Method From Database)
데이터베이스로 마이그레이션하는 메서드 (Migrate Method To Database)
뷰로 메서드 대체(Replace Method(s) With View)
메서드로 뷰 대체(Replace View With Method(s))
공식 데이터 소스 사용하기(Use Official Data Source)
10장 메서드 리팩토링 293
10.1 인터페이스 변경 리팩토링
10.1.1 매개변수 도입(Add Parameter)
10.1.2 메서드 매개변수화(Parameterize Method)
10.1.3 매개변수 제거(Remove Parameter)
10.1.4 메서드 이름변경(Rename Method)
10.1.5 매개변수 순서 변경(Reorder Parameters)
10.1.6 매개변수를 명시적 메서드로 바꾸기(Replace Parameter with Explicit Methods)
10.2 내부적인 리팩토링(Internal Refactorings)
10.2.1 조건식 통합(Consolidate Conditional Expression)
10.2.2 조건절의 분해(Decompose Conditional)
10.2.3 메서드 추출(Extract Method)
10.2.4 변수 도입(Introduce Variable)
10.2.5 제어 플래그 제거(Remove Control Flag)
10.2.6 중개자 제거(Remove Middle Man)
10.2.7 매개변수 이름 변경(Rename Parameter)
10.2.8 리터럴을 참조 테이블로 대체(Replace Literal with Table Lookup)
10.2.9 중첩된 조건절을 단위별 조건절로 대체(Replace Nested Conditional with Guard Clauses)
10.2.10 임시 변수 분리(Split Temporary Variable)
10.2.11 알고리즘 대체(Substitute Algorithm)
11장 변환
데이터 추가(Insert Data)
새로운 칼럼 도입(Introduce New Column)
새로운 테이블 도입(Introduce New Table)
뷰 추가(Add View)
데이터 변경(Update Data)
부록 데이터 모델링을 위한 UML 표시법
용어 정리
참고 & 추천 도서
찾아 보기
책 속으로
리팩토링(마틴 파울러 1999)은 소스코드를 조금씩 변경하는 것으로 그 디자인을 개선하고 그렇게 함으로써 기존보다 쉽게 작업할 수 있도록 하는 훈련된 방법이다. 리팩토링의 핵심적인 관점은 소스코드의 행위적 의미를 유지하는 것이다 -리팩토링 시 소스코드의 어떠한 추가나 삭제도 없다. 다만 그 질을 향상시킨다. 리팩토링 예는 getPersons() 오퍼레이션을 getPeople()로 이름을 변경하는 것이다. 이런 리팩토링을 구현하려면 오퍼레이션의 정의를 수정하고 나서, 애플리케이션 코드 전체에 걸쳐 이 오퍼레이션의 모든 호출을 변경하여
야 한다. 리팩토링은 코드가 수정 전처럼 아무 문제 없이 다시 실행될 때까지는 끝난 것이 아니다.
이와 비슷하게, 데이터베이스 리팩토링은 데이터베이스 스키마를 간단히 변경하여 그 디
자인을 개선하되, 그것의 행위와 정보의 의미는 모두 원래대로 유지하는 것이다. 테이블과
뷰 정의 같은 데이터베이스 스키마의 구조적 관점이나, 저장 프로시저와 트리거 같은 함
수적 관점 중 하나를 리팩토링할 수 있다. 데이터베이스 스키마를 리팩토링할 때는 스키마
자체를 뜯어 고쳐야 할 뿐만 아니라, 해당 스키마에 종속성을 가진(커플링된) 비지니스 애플리케이션이나 데이터 추출 같은 애플리케이션 또한 재작성되어야 한다. 데이터베이스 리팩토링은 코드 리팩토링보다 그 구현이 훨씬 더 어렵기에 매우 신중해야 한다. 데이터베이스 리팩토링은 2장에서 자세하게 설명하며, 3장에서는 데이터베이스 리팩토링을 수행하는 프로세스에 대해 설명한다.
출판사 서평
2007년 졸트 Productivity 상 수상
『리팩토링 데이터베이스(Refactoring Database)』는 데이터베이스 개발에 대한 새로운 장을 여는 책이다. 마틴 파울러(Martin Folwer)가 자신의 책 『리팩토링』에서 소개한 “작은 단계를 통해 코드를 점진적으로 발전시켜 그 디자인을 개선시키는” 리팩토링은 오늘날 대 부분의 개발자들에 의해서 코드의 품질을 높이기 위해 사용되고 있다. 스캇 엠블러(Scott W.Ambler)와 프라모드 세달라지(Pramod J.Sadalage)는 코드 리팩토링이 보여준 기민한 수행방법론을 데이터베이스 세계로 들여왔다. 데이터베이스 리팩토링은 코드 리팩토링이 가져다 준 것과 동일하게, 변화에 대한 거부감과 실패할지 모른다는 두려움에 대해 용기와 성공의 가능성을 독자의 지성에 강하게 호소하고 있다.
이 책은 데이터베이스를 개발하고, 개선할 때 어떻게 애자일한 수행방법을 적용할지에 대한 실용적이고 상세한 예제를 제공한다. 이러한 포괄적인 가이드와 레퍼런스는 데이터베이스 리팩토링의 기초를 이루는 모든 기본적인 개념을 포함함으로써, 실세계의 데이터베이스를 리팩토링하기 위한 실무적인 장애물을 극복할 수 있도록 도와준다. 철두철미한 예제를 이용하여 저자는 독자들을 간단한 독립형(standalone) 데이터베이스 애플리케이션뿐만 아니라 정교한 다중 애플리케이션 상황에서도 리팩토링을 할 수 있도록 이끌어 준다. 이 책을 통해 데이터베이스 스키마 리팩토링에 관련된 모든 작업에 숙달할 수 있으며, 아무리 복잡한 프로덕션 환경일지라도 리팩토링을 배포하는 최고의 방법을 발견할 수 있다.
이 책의 후반부에는 데이터베이스 리팩토링의 주요 네 가지 카테고리를 시스템적으로 다룬다. 리팩토링을 이용하여 데이터베이스 구조, 데이터 품질, 참조 무결성을 어떻게 향상시키고 아키텍쳐와 메서드를 어떻게 리팩토링할 수 있는지 배우게 된다. 이 책은 C#, C++, VB.NET와 같은 다른 프로그래밍 언어와 DB2, SQL Server, MySQL, Sybase와 같은 다른 데이터베이스에서도 쉽게 수용할 수 있는 Oracle과 Java로 짜여진 광범위한 예제를 제공한다. 이 책의 기술과 예제를 이용하여 시간적 낭비, 재 작업, 위험성, 비용을 줄일 수 있으며 차츰 발전할 수 있는 데이터베이스 시스템을 만들 수 있다.
이 책은 누구를 위한 책인가?
이 책은 데이터 모델러와 관리자뿐만 아니라 개발자와 그리고, 애자일 데이터베이스 개발에 관심이 있는 모든 사람이 꼭 읽어야 할 책이다. 우리는 너무나 오랫동안 서로 다른 세계에 살았고 이 책은 그 분리된 틈새를 매꾸는 데 많은 도움을 준다.
이 책이 다루는 내용
이 책은 기술적으로 데이터베이스 개발에 진화적 수행방법론이라 할 수 있는 리팩토링이 어떻게 적용될 수 있는지에 대한 실제적이고, 실용적인 프로세스와 수행기법을 다룬다. 주로 다루는 내용은 다음과 같다.
- 진화적 데이터베이스 개발
- 데이터베이스 리팩토링
- 데이터베이스 회귀 테스트
- 데이터베이스 변화관리와 배포
- 데이터베이스 리팩토링 프로세스
- 구조적 데이터베이스 리팩토링
- 데이터 품질 리팩토링
- 참조 무결성 리팩토링
- 아키텍처적 리팩토링
- 메서드 리팩토링
- 데이터베이스 변환
기본정보
ISBN | 9788995856444 | ||
---|---|---|---|
발행(출시)일자 | 2007년 06월 29일 | ||
쪽수 | 360쪽 | ||
크기 |
175 * 235
mm
|
||
총권수 | 1권 | ||
시리즈명 |
위키북스 데이터 & 데이터베이스 시리즈
|
||
원서명/저자명 | Refactoring Databases : Evolutionary Database Design/Scott W. Ambler, Pramodkumar J |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립