데이터베이스 - 해당되는 글 12건

데이터베이스 철저공략

 

시리즈명 철저공략 시리즈

저자 마츠노부 요시노리 외

역자 김대희

 

출간예정 20141226()

정가 27,000

페이지 396

판형 188 x 240

 

ISBN 978-89-94774-85-5 (93000)

원서정보タベス徹底攻略

 

샘플 다운로드

데이터베이스 철저공략_샘플.pdf

 

 

 

책 소개

 

빠르고 안정된 서비스를 지탱하는 필수 인프라에 대한 철저공략,

현재의 데이터베이스 기술, 특징을 이해하고 바르게 사용하자

 

 

 

이 책에서 다루는 내용

 

*데이터베이스 설계의 기초지식

 기본적인 데이터베이스의 엔티티 도출 방법, 키 설정 방법, 정규화

 

*SQL 사고력 양성

 프로그래밍 언어와는 다른 데이터베이스에서 사용되는 분기, 반복문, 집합 조작

 

*MySQL 실천 입문

 MySQL의 운용 노하우 및 가용성 튜닝

 

*MongoDB 상세풀이

 환경 구축에서의 기본적인 조작 및 실제 운용사례에 대한 소개

 

*Redshift 활용

 분산 병렬 RDB Redshift의 구조와 가용성 튜닝

 

*Redis 활용

 KVS(Key-Value Store) 제품인 Redis와 실시간 랭킹 구축

 

샘플 파일 다운로드

http://www.bjpublic.co.kr  [도서자료] [소스코드 다운로드]

 

 

저자 소개

 

마츠노부 요시노리 외

 

마츠노부 요시노리, 마츠시타 마사카즈, , 아오키 미네로, 오쿠노 미키야, 코바야시 아츠시, 쿠와노 아키히로, 하부 아키히로, 히로세 마사아키

 

 

역자 소개

 

김대희

 

1977년 서울에서 출생. 강남대학교 컴퓨터 공학을 졸업하고 ㈜오비맥주 정보팀에서 서비스 데스크 업무를 하면서 시스템 운영 및 관리를 담당했다. 그 후 일본계 회사인 株ラック에 입사, 일본 內 관공서/대기업 관련 프로젝트에 참여하여 다양한 정보 보호 시스템에 대한 개발 및 메인터넌스 작업을 수행하였으며, 국내에서는 ITIL 관련 프로젝트 및 보안 컨설팅 프로젝트를 수행했다. 현재는 ㈜인포섹 관제사업부문에서 고객사 보안 시스템 구축/운영 업무 관리 및 기획 업무를 담당하고 있으며, 역서로서 『반응형 웹 디자인』, IT 시스템 개발 철저공략』, 『알기 쉬운 알고리즘 책』이 있다.

 

 

목차

 

시작기획. 현재의 데이터베이스 기술

 

- 데이터베이스의 세계

- 관계형 데이터베이스 기술

- NoSQL 데이터베이스

- 빅데이터 관련 기술

- 요약

 

특집 1. 데이터베이스 설계의 기초지식

 

1. DB 설계자가 안고 있는 고민의 세 가지 원인

 

- 시작하며

- DB 설계자가 안고 있는 고민과 DB 설계의 중요성

 

 

2. 엔티티의 도출 방법

 

- 엔티티란?

 

 

3. 키 설정 방법

 

- 시작하며

- 키란 무엇인가?

- 키의 종류

- 키와 코드의 차이

 

 

4. 업무 시스템의 정규화

 

- 시작하며

- 중복 제거

 

 

5. DB 설계 순서

 

- 시작하며

- 순서 1: 블록 분류

- 순서 2: 이벤트 계열 엔티티의 도출

- 순서 3: 이벤트 계열 엔티티의 정규화

- 순서 4: 리소스 계열 엔티티 분류를 정리

- 순서 5: 블록 사이의 리소스 통합

- 순서 6: 도출 계열의 정리

- 실적 계열, 계획 계열, 분석 계열의 차이

- 마치며

 

 

특집 2. SQL 사고력 양성 강좌

 

1. SQL식 조건 분기

 

- 시작하며

  (1) 워밍업 - 조건에 따라 사용 열을 전환한다

  (2) 열의 전환 - 순열과 조합

  (3) 표구의 복잡한 집계

  (4) 집약 함수 밖에서 CASE식을 사용

- 요약

 

2. SQL식 행간 비교

 

- 시작하며

  (1) 우선 기본부터 - 가장 최근의 것을 구한다

  (2) 가장 최근, 가장 최근의 바로 이전, 그 바로 이전...

  (3) 작게 나눈 그룹 내의 행간 비교

- 요약

 

3. SQL식 집합 조작

 

-- 시작하며

  (1) 복수의 행을 한 행으로 정리한다

  (2) 합쳐서 하나로

  (3) 여러분은 비만인가? 저체중인가? - Cut Partition

  (4) 집합의 성질을 조사한다

- 요약

- 마치며

- 해답

 

특집 3. MySQL 실천 입문

 

1. RDBM의 기본에서 MySQL의 도입까지

 

- 시작하며

- RDBMS의 세계

- Excel의 한계

- MySQL 개요

- MySQL 인스톨

- MySQL 설정

- 작동, 정지, 접속

 

2. DB 애플리케이션 개발 입문

 

- 데이터베이스의 필요성

- DB 애플리케이션 개발의 준비

- DB 애플리케이션 개발

- 트랜잭션

 

3. MySQL 서버 운용 노하우

 

- 안정적인 서비스 운영

- 백업

- 감시

- 레플리케이션

- 페일 오버

 

4. 가용성 튜닝의 중요 요소

 

- 성능의 한계

- 쿼리의 튜닝

- 스케일 업

 

5. MySQL NoSQL

 

- mechached 플러그인 추가

- memcached?

- Inno-DB memcached

- 마치며

 

특집 4. MongoDB 상세풀이

 

1. MongoDB 입문

 

- MongoDB?

- MongoDB의 특징

 

2. MongoDB를 사용해보자

 

- 처음 시작하는 MongoDB

- 환경 구축

- 기본적인 조작

- 관리 화면

 

3. 대규모 운용 설정의 요점

 

- 복잡한 MongoDB 구성

- 레플리카 세트

- 샤딩

- Mongod 설정의 상세 사항

- 그 밖의 기능

 

4. Web 애플리케이션의 개발, 운용 노하우

 

- Node.js + MongoDB

- 실행 환경의 준비

- MongoDB 구동

- MongoDB 설정

- 운용을 고려하였을 때의 주의점

 

5. 아메바 피그에서의 운용사례

 

- 피그게임의 사례

- MongoDB의 서버 자원

- 운용

- 트러블 슈트

 

6. 2.4의 신기능과 앞으로의 전망

 

- 버전 2.4의 신기능

- 이후의 로드맵

- 마치며

 

특집 5. Redshift 활용

 

1. Redshift 입문

 

- 시작하며

- RedShift란 무엇인가?

- RedShift 비용

- RedShift 클러스터 작성

- Redshift를 사용해보자

- 이번 특집의 구성

 

2. Redshift 아키텍처

 

- Redshift의 처리 분산 구조

- 칼럼형과 압축

- 소트 키

- 추가 기록형 저장 방식

- 장애 대책

- Hive와의 비교

- 요약

 

3. Redshift로 분석 시스템을 구축

 

- 분석 시스템의 전체 이미지

- DWH란 무엇인가?

- Load Best Practice

- Redshift의 데이터 처리

- Redshift 데이터베이스의 논리 구조

- 워크로드 관리

- 요약

 

4. 가용성 관련 튜닝 실천

 

- 튜닝의 방침과 방법

- 분산 키를 이용한 튜닝

- 소트 키를 이용한 튜닝

- 통계의 취득

- 요약

 

특집 6. Redis 활용

 

1. Redis의 기초 지식과 2.6/2.8의 신기능

 

- Redis?

- 2.6의 변경점

- 2.8의 변경점

- 앞으로의 Redis

 

2. Redis의 인스톨과 설정

 

- Redis 기초 지식

- Redis 인스톨

- Redis 구동과 종료

- Redis 설정 방법

 

3. Redis 구성의 중요 사항  

 

- Redis 운영

- Redis의 구성 예

- Redis 레플리케이션

- Redis의 이중화 구성

- Redis 감시

 

4. Redis의 대표적인 명령어

 

- 데이터형과 조작 방법

- String형을 조작하는 명령어

- Lists형을 조작하는 명령어

- Sets형을 조작하는 명령어

- Hashes형을 조작하는 명령어

- Sorted Sets형을 조작하는 명령어

- Pub/Sub를 조작하는 명령어

- 트랜잭션 관리 명령어

- 접속 계열 명령어

- 그 밖의 관리 계통 명령어

- Redis의 특징적인 사용 방법

- 요약

 

5. 실시간 랭킹 구축

 

- 랭킹 데이터 저장 장치로서의 Redis

- Redis에 의한 실시간 랭킹의 실현

- 기타 Sorted Sets형의 별난 명령어들

- Redis를 사용한 랭킹 데이터 취급의 단점

- 마치며

 

 

이 책의 구성

 

이 책은 가장 기본적인 데이터베이스인 RDBMS와 그것을 사용하는 SQL, 그리고 최근 대두되고 있는 KVS(Key-Value Store) 및 문서 지향 데이터베이스 등에 대한 실전적인 가이드와 도입 사례 등에 대해 설명하고 있다.

 

시작 기획. 현재의 데이터베이스 기술

 

RDMBS의 기초적인 내용 및 NoSQL과 데이터를 분석하는 기술이 필요하게 된 배경, 그리고 그러한 상황에서 이용 가능한 주요 제품 및 서비스를 소개한다.

 

특집 1. 데이터베이스 설계 기초지식

 

데이터베이스를 설계함에 있어 기본적인 데이터 베이스의 엔티티 도출 방법과 키 설정 방법 그리고 정규화에 대해서 설명한다.

 

특집 2. SQL 사고력 양성 강좌

 

프로그래밍 언어와는 다른 데이터베이스에서 사용되는 분기, 반복문과 집합 조작에 대해서 설명한다.

 

특집 3. MySQL 실천 입문

 

가장 대중적으로 사용되고 있는 무료 데이터베이스인 MySQL에 대하여 운용 노하우 및 가용성 튜닝 등에 대해서 설명한다.

 

특집 4. MongoDB 상세풀이

 

비즈니스 환경에 따라서 빠른 개발을 필요로 할 경우 사용될 수 있는 문서 지향형 데이터베이스인 MongoDB에 대하여 환경 구축에서 기본적인 조작, 그리고 실제 운용사례에 대해서 소개한다.

 

특집 5. Redshift 활용

 

기업에서 데이터 분석 용도로 사용되는 데이터 웨어하우스 용도로 활용할 수 있는 분산 병렬 RDB Redshift의 구조와 가용성 튜닝에 대해서 설명한다.

 

특집 6. Redis 활용

 

실시간으로 대량의 데이터를 처리가 가능한 NoSQL의 종류로서 키와 값을 한쌍으로 저장하는 키 기반의 데이터 저장 방식인 KVS(Key-Value Store) 제품인 Redis와 그것을 이용한 실시간 랭킹 구축에 대해서 설명한다.

 

 

출판사 리뷰

 

업무 시스템을 구축함에 있어서 데이터베이스 설계는 매우 중요도가 높은 작업이다.

 

데이터베이스는 (특히 RDBMS: 관계형 데이터베이스) SQL이라는 또 다른 체계의 언어를 통해 질의를 하도록 되어 있다. 하지만 JAVA, C++을 비롯한 객체 지향 프로그래밍 언어와는 상당히 다른 언어체계로 구성되어 있어 익히기가 어려운 것도 사실이다. 또한 이러한 RDBMS에 숙달한 개발자라 하여도 요즘같이 데이터의 거대화 혹은 비즈니스 요건에 따른 신속하고도 유연성이 있는 개발이 요구되는 시점에서는 RDBMS로 모든 요건을 만족시키기 어려울 것이다.

 

이 책에서는 데이터베이스에 대해서 어느 정도의 지식은 보유하고 있으나 실제로 데이터베이스 설계를 해보지 못한 독자, 혹은 RDBMS에 대한 지식과 경험은 보유하고 있으나 거대한 데이터를 처리하거나 신속하고도 유연한 개발 요건에 어려움을 겪은 독자들을 위하여 기본적인 데이터베이스의 설계에서부터 최신 컬럼형 데이터베이스, 용도에 따라서 특수한 데이터형이 필요한 경우에 사용할 수 있는 NoSQL 데이터베이스 그리고 빅 데이터 혹은 비즈니스 의사결정에 필요한 데이터 웨어하우스 등을 구축할 때 유용한 데이터 베이스 등을 소개하고 있다.

 

여러분은 『데이터베이스 철저공략』을 통해 Web 애플리케이션에서 Legacy 시스템에 이르기까지 필수적으로 구현되어야 할 데이터베이스 시스템에 대한 기본적인 개념을 이해하고, 비즈니스 요건에 따라서 활용할 수 있는 다양한 데이터베이스에 대한 지식을 갖출 수 있을 것이다.

 

신고
Trackback 0 | Comment 0

가장 쉬운 데이터베이스 설계 책

: 적절한 데이터베이스 디자인을 위한 지침서

 

시리즈 가장 쉬운 책 시리즈 002

저자 마이클 J. 헤르난데즈

역자 송현호, 황규용

 

출간예정일 2014227()

정가 30,000

 

페이지 492

판형 188 x 245

ISBN 978-89-94774-59-6 (93000)

원서정보 DATABASEDESIGN FOR MERE MORTALS: A HANDSON GUIDE TO

            RELATIONAL DATABASE DESIGN, 3rd Edition

 

 

책 소개

 

가장 쉽고 상식적인 데이터베이스 설계 가이드


마이클 J. 헤르난데즈의 베스트셀러인 《가장 쉬운 데이터베이스 설계 책》은 관계형 데이터베이스 설계를 간단하고 명확하게 배우는 방법으로 전세계에서 주목을 받고 있다. 소프트웨어의 독립적인 사용 지침을 전보다 더 쉽게 만들었으며, 그의 디자인 방법론은 최신의 데이터베이스, 응용프로그램, 모범 사례와 관련이 있다.

 

이 책은 데이터베이스를 견고하게 구축하고, 유연하고도 현대적인 웹 응용프로그램을 설계하는 방법을 단계별로 보여주고, 또한 데이터베이스에 존재하는 테이블, 필드, , 테이블 관계, 업무 규칙, 뷰를 정의하는 모든 과정을 안내해줄 것이다. 이 책을 통해 여러분은 데이터 무결성을 향상시키는 방법, 일반적인 실수를 피하는 방법, 규칙을 완화하는 방법에 대해 배울 수 있다.

 

 

이 책에서 다루는 내용

 

- 데이터베이스 유형, 모델, 설계 용어에 대한 이해

- 좋은 데이터베이스 설계가 가져다 주는 이점 및 잘못된 설계가 주는 단점

- 데이터베이스에 대한 목표를 설정하고, 실제 설계로 그 목표를 변환하는 방법

- 기존의 데이터베이스를 개선할 수 있는 방안을 식별하기 위해 현재 상태 분석

- 테이블 구조와 관계 정립, 기본 키 할당, 필드 명세 설정, 뷰 설정

- 각 응용프로그램에 대해 데이터 무결성의 적절한 수준 보장

- 업무 규칙의 식별 및 설정

 


《가장 쉬운 데이터베이스 설계 책》은 여러분이 어떤 관계형 데이터베이스 시스템을 운영하고 있든지 데이터베이스를 설계하는 데 아주 강력하고 든든한 도움을 줄 것이다. 데이터베이스를 설계해본 적이 없는가? 불충분한 일반적인 설계에 안주하는가? 개선이 필요한 기존의 데이터베이스가 있는가? 그럼 이 책으로 시작하자!

 


독자 대상

초급에서 중급자용

 


 

저자 소개

 

마이클 J. 헤르난데즈 (Michael J. Hernandez)

마이크로소프트의 비주얼 스튜디오 그룹의 프로그램 관리자 및 제품 관리자였으며, 20년 이상의 경험을 가진 관계형 데이터베이스의 베테랑 개발자다. AppDev Training Co, Focal Point Inc, Deep Training과 같은 교육기관의 주요 강사이며, 미국, 유럽, 남미에 걸쳐 기술 컨퍼런스의 최고 순위의 연사이기도 하다. 저서로는 《SQL Queries for Mere Mortals, 2nd Edition(Addison-Wesley, 2008)가 있다.

 

 

역자 소개

 

송현호

SK C&C의 인프라 조직에서 회사 생활을 시작해 지금까지 6년째 DBA업무를 수행하고 있다. SK 그룹 사내 및 외적으로 다양한 업무의 데이터베이스를 운영 및 구축, 튜닝했으며, 현재는 SKT 주 과금시스템 및 관련 시스템의 운영 관리를 맡고 있다. 월간 마이크로소프트웨어에 기고한 이력이 있으며, 최근에는 IT시스템의 Open source로 재구축하는 것에 관심을 갖고 공부를 하고 있는 중이다.

 

황규용

고려대학교 컴퓨터 교육과 졸업 후 SK C&C의 인프라 조직에서 근무하며 다수의 프로젝트를 수행하고 있다. 주요 업무는 부하 테스트 및 성능 관리이며, 다양한 관점에서 서비스의 성능과 안정성을 살펴보고자 계속해서 공부를 하는 중이다. 월간 마이크로소프트웨어에 수 차례 기고한 경험이 있으며, IT 서비스를 엔지니어의 관점과 서비스 관리자의 관점, 그리고 고객의 관점에서 바라보며 그 합의점을 찾고자 꾸준히 연구 중이다.

 

 

목차

 

1. 관계형 데이터베이스 설계

1. 관계형 데이터 베이스

2. 설계 목적

3. 전문 용어

 

2. 설계 프로세스

4. 개념적인 개요

5. 프로세스 시작

6. 기존 데이터베이스 분석

7. 테이블 구조 설정

8.

9. 필드 명세

10. 테이블 관계

11. 업무 규칙

12.

13. 데이터 무결성 검토

 

3. 기타 데이터베이스 설계 문제

14. 잘못된 설계 – 하지 말아야 할 것들

15. 규칙 변형

 

4. 부록

부록 A. 연습문제 해답

부록 B. 데이터베이스 설계 프로세스의 다이어그램

부록 C. 설계 지침

부록 D. 문서 양식

부록 E. 데이터베이스 설계 도해 기호

부록 F. 설계 견본

부록 G. 정규화

부록 H. 추천 도서

용어 해설

 

*상세목차를 보려면 아래 [상세목차 보기]를 클릭하세요.


상세목차 보기


 

이 책의 구성

 

1: 관계형 데이터베이스 설계

 

이 부분은 데이터베이스, 데이터베이스 설계에 대한 생각, 그리고 이 책에서 소개하는 설계 프로세스를 이해하고 배우기 위해 익숙해져야 하는 몇 가지 용어에 대한 소개를 한다.

 

1. “관계형 데이터베이스에서는 여러분이 접하게 될 데이터베이스의 유형에 대한 대략적인 생각, 일반적인 데이터베이스 모델, 그리고 관계형 데이터베이스의 대략적인 역사에 대해 소개한다.

 

2. “설계 목적에서는 설계에 대하여 관심을 가져야 하는 이유와 좋은 설계를 하는 목적과 장점에 대해 이야기할 것이다. 그리고 정규화와 공식을 간략하게 소개한다.

 

3. “전문 용어에서는 이 책에서 소개하는 설계 방법론을 배우고 이해할 때 필요한 용어들을 정리해놓았다.

 

 

2: 설계 프로세스

 

데이터베이스 설계 프로세스의 각 단계는 2부에 정리했다. 테이블 구조, 기본 키 설정, 필드 명세 작성, 테이블 관계 설정, 뷰 생성, 그리고 다양한 수준의 데이터 무결성을 설정하는 내용이 여기에 포함된다.

 

4. “개념적 개요에서는 프로세스의 각기 다른 구성 요소들이 어우러지는 법을 보여줌으로써 설계 프로세스의 개요를 설명한다.

 

5. “프로세스 시작에서는 데이터베이스를 생성할 때, 기준을 정하기 위한 임무 명세(mission statement)와 임무 목표(mission objectives)를 정의하는 방법을 설명한다.

 

6. “기존 데이터베이스 분석에서는 기존의 운영 중인 데이터베이스가 가지고 있는 문제점들을 얘기한다. 현재 데이터베이스를 분석하는 이유와 데이터를 수집하고 표현하는 방법을 보는 법에 대해 소개한다. 여기에 더해서 사용자와 관리자를 인터뷰하는 이유와 방법, 그리고 초기 필드 목록을 읽는 법 등에 대하여 설명한다.

 

7. “테이블 구조 구축에서는 데이터베이스를 만드는 목적을 정의하고 결정하기, 테이블에 필드 생성하기, 그리고 테이블 구조 개선하기 등의 주제를 설명한다.

 

8. “는 키의 개념과 설계 프로세스에서 키의 중요성, 그리고 각 테이블에 후보 키와 기본 키를 정의하는 방법 등에 대하여 설명한다.

 

9. “필드 명세에서는 수많은 데이터베이스 개발자들이 귀찮아 하는 명세 작성과 관련된 내용을 다룬다. 필드 명세에는 각 필드가 생성된 방법뿐만 아니라 필드가 가질 수 있는 값들에 대한 특징을 결정한다. 이 장의 주제는 필드 명세의 중요성과 각 명세들이 갖는 특징들, 그리고 데이터베이스의 각 필드 명세를 정의하는 방법에 대해 설명한다.

 

10. “테이블 관계에서는 테이블 관계의 중요성, 관계의 종류, 관계 설정 및 관계 특징을 설정하는 것에 대해 설명한다.

 

11. “업무 규칙에서는 업무 규칙의 종류, 업무 규칙을 설정하고 결정하는 법, 그리고 검증 테이블(validation tables)을 사용하는 법에 대해 설명한다. 업무 규칙은 각 수준별 데이터 무결성을 결정하는 요소이기 때문에 어떤 데이터베이스에서도 굉장히 중요한 부분이 된다.

 

12. “에서는 뷰의 개념과 중요성에 대해서 살펴본다. 또한 뷰의 종류와 뷰를 설정하고 결정하는 방법에 대해 설명한다.

 

13. “데이터 무결성 검토에서는 앞 장에서 이야기하고 정의한 각 수준의 무결성을 검토한다. 여기에서 가능한 한 완벽하게 데이터 무결성을 보장하기 위해서 데이터베이스 구조의 최종 설계를 검토해야 할 필요가 있다는 것을 설명한다.

 

 

3: 기타 데이터베이스 설계 문제

 

여기에서는 데이터베이스를 설계할 때 규칙을 완화하는 법과 잘못된 설계를 피하는 것과 같은 주

제를 다룬다.

 

14. “잘못된 설계 - 하지 말아야 할 것에서는 평면 파일 설계나 스프레스시트 설계와 같은 피해야 하는 설계의 종류에 대해 소개한다.

 

15. “규칙 변형에서는 설계 프로세스의 개념과 기술에서 벗어날 필요가 있는 드문 예에 대해 이야기한다. 이 장에서는 언제 규칙을 완화해야 하는지, 또 그것은 어떻게 하는지에 대해 설명한다.

 

 

4: 부록

 

부록에서는 데이터베이스 설계 프로세스를 공부하거나 데이터베이스 개발 작업을 할 때 유용할 것이라 생각되는 정보들을 정리했다.

 

부록 A. “연습문제 해답 1장부터 12장까지의 연습문제 해답을 정리했다.

 

부록 B. “데이터베이스 설계 프로세스의 도표는 데이터베이스 설계 프로세스 전체에 대한 흐름을 표현한 도표를 제공한다.

 

부록 C. “설계 지침에서는 이 책 곳곳에서 나타나는 설계 지침들의 다양하고 쉬운 적용 사례를 소개한다.

 

부록 D. “문서 양식은 데이터베이스 설계 프로젝트에 사용할 수 있는 필드 명세서, 사업 규칙 명세서, 뷰 명세서의 견본을 제공한다.

 

부록 E. “데이터베이스 디자인 도표 기호에서는 책에서 사용되는 도표 기호들을 빠르고 쉽게 찾을 수 있도록 구성하였다.

 

부록 F. “설계 견본은 만들기 원하거나 필요한 데이터베이스에 대한 생각을 기반으로 제공할 수 있는 데이터베이스 설계 견본이 들어있다.

 

부록 G. “정규화에서는 나만의 설계 방법론에 정규화를 포합시키는 방법에 대하여 설명한다.

 

부록 H. “추천 도서에서는 데이터베이스 기술의 보다 깊이 있는 공부를 계속해서 하고자 한다면 읽어볼 만한 도서 목록을 정리해놓았다.

 

용어 사전은 책의 전반에 걸쳐서 사용된 다양한 단어와 구문에 대한 간결한 정의로 구성되었다.

 

 

 

출판사 리뷰

 

이 책은 전반적인 개발 프로세스의 논리적 설계 부분만을 다룬다. 그리고 이 책의 주요 목적은 대다수의 데이터베이스 설계 도서에서 찾을 수 있는 전통적인 고급 방법론을 사용하지 않고 관계형 데이터베이스 설계 방법을 설명하는 데 있다. 이 책에서 설계 프로세스에 접근하는 방법을 비교적 직관적이고 일반적으로 표현하여 이런 방법론들의 복잡함을 피하고자 하였다. 또한 이런 접근 방법을 보완하기 위해 간단하고 직관적인 데이터 모델링 방법론을 사용하였다. 아울러 전체 프로세스를 가급적이면 명확하게 표현하였으며, 기술 용어는 최대한 자제하였다.

 

 

누가 이 책을 읽어야 하는가

 

이 책을 읽기 위해 데이터베이스 설계에 대한 사전 배경지식이 필요한 것은 아니다. 여러분이 이 책을 손에 쥐고 읽는 이유는 데이터베이스를 제대로 설계하는 법을 배우기 위해서다. 여러분이 데이터베이스 관리를 시작하거나 자신의 데이터베이스를 개발하는 것을 고려한다면, 이 책이 매우 많은 도움을 줄 것이다. 처음부터 제대로 데이터베이스를 만드는 법을 배우는 편이 시행 착오를 통해 배우는 것보다 더 낫다. 장담컨대 시행착오를 통해 배우는 것이 훨씬 오랜 시간이 걸린다.

 

만일 여러분이 데이터베이스 프로그램에 대한 경력이 짧거나 회사나 사업장에서 새로운 데이터베이스를 개발하고자 하는 사람이라면, 이 책을 읽는 게 좋을 것이다. 아마도 여러분은 좋은 데이터베이스 구조는 어떤 것인지에 대한 느낌이 있을지도 모른다. 하지만 데이터베이스 개발자들이 효율적인 설계를 하기 위해 사용하는 방법들에 대해서는 거의 아는 바가 없다. 어쩌면 여러분은 몇 가지 기본 지침에 따른 데이터베이스를 수차례 만든 경험이 있는 프로그래머 일지도 모른다. 하지만 데이터베이스를 제대로 사용하기 위해서 대량의 코딩을 해야 했을 것이다. 여러분이 이런 상황에 처해있다면, 이 책을 활용하기 바란다.

 

 

 

신고
Trackback 0 | Comment 0

 

 

 

T-SQL 프로그래밍 입문

 

저자 이직 벤간

역자 한대성

감수자 성지용

 

출간일 2013926()

정가 33,000

페이지 584

판형 190 x 245

ISBN 978-89-94774-47-3 (93000)

 

원서정보 Microsoft® SQL Server® 2012 T-SQL Fundamentals

 

예약판매 [인터파크도서] [YES24] [알라딘]

 

 

책 소개

 

T-SQL에 대한 명확한 이해와 쿼리 작성 능력의 향상을 위한 지침서

 

이 책을 통해 Transact-SQL에 대한 기본적인 내용을 마스터할 수 있으며, SQL Server 2012에서 데이터를 조회하거나 변경하기 위한 쿼리를 작성하는 방법을 익힐 수 있다.  SQL Server 전문가의 상세한 설명을 바탕으로, T-SQL 쿼리와 프로그래밍의 기본이 되는 개념을 익힐 수 있으며, 배운 지식을 각 장의 연습문제에서 복습할 수 있다. 일단 T-SQL의 기반이 되는 논리를 이해하고 나면, 프로그래머든지 데이터베이스 관리자든지 상관없이 누구라도 효과적으로 쿼리를 작성할 수 있는 방법을 쉽고 빠르게 익힐 수 있다.

 

 

이 책에서 다루는 내용

 

- T-SQL 고유의 프로그래밍 처리 방법

- 데이터베이스 테이블을 생성하고 데이터 무결성을 정의하는 방법

- 조인과 서브 쿼리를 이용해서 다수 테이블을 대상으로 쿼리하는 방법

- 테이블 표현식을 이용해서 코드를 단순화시키고 유지 관리 능력을 향상시키는 방법

- 데이터를 삽입·삭제·변경·병합하는 다양한 방법

- 윈도우 함수, 피벗팅, 그룹핑 집합과 같은 고급 쿼리를 구현하는 방법

- 격리 수준을 통한 데이터 일관성 관리 방법과 데드락 및 블로킹을 완화시키는 방법

- 프로그래밍 개체를 이용한 고급 T-SQL 기법

 

예제 코드 다운로드

http://tsql.solidq.com/books/tsqlfund2012/

 

독자 대상

초급

 

이직은 세상에서 T-SQL에 대해서 가장 잘 아는 사람들 중에 한 명이다. 수년 동안 프로그래밍의 기본 과정뿐만 아니라 고급 과정에 대해 강의하고 있다는 강점을 가지고 있다. 이직의 예제 중 많은 부분에서 동일한 작업에 대해 T-SQL로 구현하는 방법과 ANSI SQL 솔루션으로 구현하는 방법을 같이 설명하고 있다. 이러한 점은 ANSI 버전의 SQL에는 익숙하지만 T-SQL에는 아직 생소한 독자뿐만 아니라, 다른 여러 데이터베이스 플랫폼에서 SQL코드를 작성해야 하는 프로그래머에게 아주 유용하리라 생각된다.

- 추천사 중에서(Lubor Kollar, SQL Server개발팀, Microsoft)

 

 

저자소개

 

이직 벤간 (Itzik Ben-Gan)

 

1999년부터 현재까지 Microsoft SQL Server MVP로 선정되었으며, SolidQ라는 회사의 공동 창업자이기도 하다. 전세계를 돌아다니며 T-SQL 쿼리, 프로그래밍, 쿼리 튜닝 등을 중심으로 많은 교육과 컨설팅을 하고 있다. 또한, SQL Server Pro MSDN Magazine에 많은 글을 기고하고 있으며, Microsoft TechEd, DevTeach, PASS, SQL Server Connections 와 같은 여러 행사에서 발표자로도 서고 있다.

 

 

역자소개

 

한대성

 

Microsoft Premier Field Engineer로 근무했으며 SQL 서버 MVP(2006~2008)였다. 역서로는 『실전 SQL Server MVP 53, 『실전 SQL Server MVP 61, volume 2』가 있다.

 

 

감수자소개

 

성지용

 

Microsoft Premier Field Engineer로 근무하고 있다. 역서로는 『실전 SQL Server MVP 53『실전 SQL Server MVP 61, volume 2』가 있으며, 그 외에도 다수의 서적을 집필 및 번역하였다. Taeyo.net의 공동 운영자이면서, mssql.org의 운영자로 활동하고 있다.

 

목차

 

Chapter 1. T-SQL쿼리 및 프로그래밍 배경

 

이론적 배경

---SQL

---집합 이론

---술어 논리

---관계형 모델

---데이터 생명 주기

SQL Server 아키텍처

---SQL Server 형태-ABC

---SQL Server 인스턴스

---데이터베이스

---스키마와 개체

테이블 생성 및 데이터 무결성 정의

---테이블 생성하기

---테이블 무결성 정의

---참조키 제약 조건

결론

 

 

Chapter 2. 단일 테이블 쿼리

 

SELECT 구문 요소

---FROM

---WHERE

---GROUP BY

---HAVING

---SELECT

---ORDER BY

---TOP OFFSET-FETCH 필터

---OFFSET-FETCH 필터

---윈도우 함수

술어와 연산자

CASE 표현식

NULL

All-at-Once 연산자

문자형 데이터 처리

---데이터 유형

---정렬방식

---연산자와 함수

---LIKE 술어

날짜 및 시간 데이터 처리

---날짜 및 시간 데이터 유형

---문자형 표기

---Date Time을 분리해서 처리하기

---날짜 범위 필터링

---날짜 및 시간 함수

메타데이터 쿼리

---카탈로그 뷰

---정보 스키마 뷰

---시스템 저장 프로시저 및 함수

결론

연습문제

해답

 

 

Chapter 3. 조인

 

크로스 조인

---ANSI SQL-92 문법

---ANSI SQL-89 문법

---셀프 크로스 조인

---숫자를 출력하는 테이블

내부 조인

---ANSI SQL-92 문법

---ANSI SQL-89 문법

---내부 조인의 안전성

조인에 대한 다른 예제

---복합 조인

---Non-Equi 조인

---멀티 조인 쿼리

외부 조인

---외부 조인의 기본

---외부 조인에 대한 고급 기법

---외부 조인과 함께 COUNT 집계 사용하기

결론

연습문제

해답

 

 

Chapter 4. 하위 쿼리

 

독립형 하위 쿼리

---독립형 스칼라 하위 쿼리 예제

---멀티 값을 출력하는 독립형 하위 쿼리

상관 관계 하위 쿼리

하위 쿼리에 대한 고급 기법

---이전 또는 이후 값 반환하기

---누적 집계 사용하기

---하위 쿼리에서 다르게 동작하는 경우

결론

연습문제

해답

 

 

Chapter 5. 테이블 표현식

 

파생 테이블

---컬럼 별칭 지정하기

---매개 변수 사용하기

---중첩하기

---다중 참조

공통 테이블 식

---CTE에서 컬럼 별칭 지정하기

---CTE에서 매개 변수 사용하기

---여러 개의 CTE 정의하기

---CTE에서 다중 참조하기

---재귀 CTE

---뷰와 ORDER BY

---뷰 옵션

인라인 테이블 반환 함수

APPLY 연산자

결론

연습문제

해답

 

 

Chapter 6. 집합 연산자

 

UNION 연산자

---UNION ALL 멀티셋 연산자

---UNION distinct 집합 연산자

INTERSECT 연산자

---INTERSECT distinct 집합 연산자

---INTERSECT ALL 멀티셋 연산자

EXCEPT 연산자

---EXCEPT distinct 집합 연산자

---EXCEPT ALL 멀티셋 연산자

우선순위

지원하지 않는 논리적 단계 피하기

결론

연습문제

해답

 

 

Chapter 7. 고급 쿼리 기술

 

윈도우 함수

---순위 윈도우 함수

---오프셋 윈도우 함수

---윈도우 집계 함수

데이터 피벗

---표준 SQL을 이용한 피벗팅

---T-SQL PIVOT 연산자를 이용한 피벗팅

데이터 언피벗팅

---표준 SQL을 이용한 언피벗팅

---T-SQL UNPIVOT 연산자를 이용한 언피벗팅

그룹핑 집합

---GROUPING SETS 서브절

---CUBE 서브절

---ROLLUP 서브절

---GROUPING GROUPING_ID 함수

결론

연습문제

해답

 

 

Chapter 8. 데이터 조작

 

데이터 입력하기

---INSERT VALUES 구문

---INSERT SELECT 구문

---INSERT EXEC 구문

---SELECT INTO 구문

---BULK INSERT 구문

---Identity 속성 및 시퀀스 개체

데이터 삭제하기

---DELETE 구문

---TRUNCATE 구문

---조인을 사용하는 DELETE

데이터 수정하기

---UPDATE 구문

---조인을 사용하는 UPDATE

---UPDATE 값 할당

데이터 병합하기

테이블 표현식을 사용해서 데이터를 변경하기

TOP OFFSET-FETCH를 이용한 데이터 변경

OUTPUT

---INSERT에서 OUTPUT 사용하기

---DELETE에서 OUTPUT 사용하기

---UPDATE에서 OUTPUT 사용하기

---MERGE에서 OUTPUT 사용하기

---구성 가능한 DML

결론

연습문제

해답

 

 

Chapter 9. 트랜잭션과 동시성

 

트랜잭션

잠금과 블로킹

---잠금

---블로킹 문제 해결

격리수준

---READ UNCOMMITTED 격리 수준

---READ COMMITTED 격리 수준

---REPEATABLE READ 격리 수준

---SERIALIZABLE 격리 수준

---행 버전 관리를 이용하는 격리 수준

교착 상태

결론

연습문제

 

 

Chapter 10. 프로그래밍 개체

 

변수

배치

---파싱 단위로서의 배치

---배치와 변수

---배치 내에서 결합할 수 없는 구문

---검사 단위로서의 배치

--- GO n 옵션

흐름 제어 요소

---IF . . . ELSE 흐름 제어 요소

---WHILE 흐름 제어 요소

---IF WHILE의 사용 예

커서

임시 테이블

---로컬 임시 테이블

---글로벌 임시 테이블

---테이블 변수

---테이블 형식

동적 SQL

---EXEC 명령

---sp_executesql 저장 프로시저

---동적 SQL PIVOT 구현하기

루틴

---사용자 정의 함수

---저장 프로시저

---트리거

오류 처리

결론

 

부록. 준비하기

 

 

이 책의 구성

 

1 “T-SQL쿼리 및 프로그래밍 배경에서는 SQL Server에 대한 이론적 배경, 집합 이론, 술어 논리를 다룬다. 관계형 모델 및 SQL Server아키텍처에 대한 설명과 테이블을 어떻게 만들고 데이터 무결성을 정의하는지에 대해서도 설명한다.

 

2  단일 테이블 쿼리에서는 SELECT구문을 이용해서 단일 테이블을 대상으로 쿼리하는 다양한 방법들에 대해 다룬다.

 

3  조인에서는 크로스 조인, 내부 조인, 외부 조인과 같은 조인을 이용해서 여러 테이블을 대상으로 쿼리하는 방법을 다룬다.

 

4  하위 쿼리에서는 쿼리 내에서 쿼리를 하는 방법(하위 쿼리)에 대해 다룬다.

 

5  테이블 표현식에서는 파생 테이블, 공통 테이블 식(CTE), , 인라인 테이블 값 함수, APPLY연산자에 대해 다룬다.

 

6  집합 연산자에서는 UNION, INTERSECT, EXCEPT와 같은 집합 연산자에 대해 다룬다.

 

7  고급 쿼리 기술에서는 윈도우 함수, 피벗팅, 언피벗팅, 그룹핑 집합에 대해 다룬다.

 

8  데이터 조작에서는 데이터 입력, 수정, 삭제, 병합에 대해 다룬다.

 

9  트랜잭션과 동시성에서는 동시에 같은 데이터에 대해 작업을 하는 사용자 연결의 동시성에 대해 다룬다. 여기서는 트랜잭션과 잠금, 블로킹, 격리 수준, 교착 상태에 대한 것도 다룬다.

 

10프로그래밍 개체에서는 SQL Server에서 제공하는 T-SQL 프로그래밍 기능에 대한 전반적인 내용을 다룬다.

 

이 책에서는 부록으로준비하기라는 부분을 제공하고 있다. 여기서는 어떻게 환경을 준비하고 예제 소스를 다운로드 받으며, 어떻게 TSQL2012예제 데이터베이스를 설치하는지에 대한 것들을 다루고 있다. 또한, SQL Server를 대상으로 코드를 작성하는 방법과 SQL Server온라인 도움말을 이용하는 방법에 대해서도 설명하고 있다.

 

 

출판사 리뷰

 

이 책은 T-SQL(또는 Transact-SQL)의 기초부터 다루고 있다. T-SQL이란 ISO ANSI SQL 표준을 기반으로 하는 Microsoft SQL Server에 특화된 언어다. T-SQL쿼리와 프로그래밍의 바탕이 되는 이론뿐만 아니라, T-SQL 코드를 이용해서 데이터를 조회하고 변경하는 방법과 프로그래밍 개체에 대한 전반적인 내용에 대해서도 배울 것이다.

 

이 책은 초보자를 대상으로 쓰이긴 했지만, 단지 독자들이 따라 할 수 있는 절차들만 나열해놓지는 않았다. T-SQL의 문법 요소 외에도 언어의 바탕이 되는 논리와 각 요소에 대한 설명도 같이 다루고 있다.

 

누가 이 책을 읽어야 하는가

 

이 책은 T-SQL개발자, DBA, BI실무자, 보고서 작성자, 분석가, 아키텍트뿐만 아니라, SQL Server를 이제 막 시작해서 트랜잭션 SQL을 이용하는 쿼리를 작성하고 코드를 개발해야 하는 SQL Server 파워 유저를 대상으로 하고 있다.

 

이 책에서 다루는 내용을 제대로 이해하기 위해서는 윈도우 및 윈도우를 기반으로 하는 응용 프로그램에 대해 어느 정도 경험이 있어야 한다. 또한 관계형 데이터베이스 관리 시스템에 대한 기본적인 개념에 대해서도 어느 정도 알고 있어야 한다.

 

누가 이 책을 읽어서는 안 되는가

 

어떤 책이든 모든 수준의 독자를 대상으로 할 수는 없다. 이 책은 기본적인 내용을 다루고 있다. 즉 실질적으로는 경험이 적거나 전무한 T-SQL 실무자를 대상으로 하고 있다. 하지만 이 책의 이전 버전을 읽어본 많은 독자들이 말하는 것과 같이, 이미 수년간의 경험을 가진 독자라도 가지고 있는 지식들 중에서 알지 못했던 부분을 이 책을 통해 얻을 수도 있을 것이다.

 

 

신고
Trackback 0 | Comment 0

 

19인의 데이터 과학자가 알려주는

 

나쁜 데이터 핸드북

 

저자 이든 맥컬럼

역자 문현선

 

출간일 2013617()

정가 24,000

 

페이지 324

판형 175 x 230

ISBN 978-89-94774-42-8 (93000)

 

키워드 데이터, 데이터 과학, 데이터 과학자, 빅데이터, 데이터 분석, 웹데이터

원서정보 Bad Data Handbook

 

 

책 소개

 

19인의 데이터 과학자가 알려주는

나쁜 데이터 핸드북

 

나쁜 데이터란 무엇일까? 어떤 사람들은 나쁜 데이터가 누락된 값이나 어그러진 기록과 같은 기술적인 현상만을 포함한다고 생각하지만, 나쁜 데이터는 그보다 훨씬 더 많다. 데이터 전문가 이든 맥컬럼(Q. Ethan McCallum)은 지저분한 데이터 문제들을 극복하는 방법을 보이기 위해 다양한 영역의 데이터 과학자 19명을 한 자리에 모았다.

 

고장난 저장소에서부터 형편없는 표현, 그릇된 정책까지 나쁜 데이터가 되는 방법은 다양하다. 기본적으로, 나쁜 데이터란 여러분이 일하는 데 방해가 되는 모든 데이터이다. 이 책은 나쁜 데이터 문제를 해결하는 효과적인 방법을 설명한다.

 

이 책에서 다루는 내용:

 

- 데이터가 분석될 준비가 되었는지 테스트하는 방법

- 스프레드시트 데이터를 유용한 포맷으로 바꾸는 방법

- 텍스트 데이터에 숨어있는 인코딩 문제 다루는 방법

- 성공적인 웹 데이터 수집 방법

- NLP 툴을 사용해 온라인 리뷰의 진짜 의도를 밝히는 방법

- 분석 작업에 영향을 줄 수 있는 클라우드 컴퓨팅 이슈 다루는 방법

- 데이터 분석에 방해가 되는 방침을 피하는 방법

- 체계적인 데이터 퀄리티 분석 방법

 

독자대상

초중급

 

 

저자소개

 

이든 맥컬럼

전문 서비스 컨설턴트로서 데이터 분석에서부터 소프트웨어, 인프라 전반에 걸쳐 관심이 많다. 현실적인 기술을 활용해 기업이 위험을 줄이고, 이익을 높이고, 좀더 현명한 결정을 하게 함으로써 입지를 높일 수 있도록 돕는 일을 하고 있다. Parallel R: Data Analysis in the Distributed World(오라일리 2011)를 포함하여 그의 책은 온라인이나 서점에서 찾아볼 수 있다.

 

 

역자소개

 

문현선

고려대학교 컴퓨터학과를 졸업해 전자 회사에서 휴대폰, TV를 개발하다 2011년부터 KT 클라우드 추진본부에서 차세대 클라우드 서비스를 개발하고 있다. 오픈소스에 관심이 많으며 프레젠테이션 자료나 기술 문서를 만드는 데 남다른 애착을 가지고 있다. 앞으로도 기회가 되는대로 훌륭한 기술 서적들을 번역할 계획이다.

 

 

목차

 

Chapter 1 새로운 정의: 나쁜 데이터란 무엇인가?

 

Chapter 2 이 데이터 이상하지 않아요?

데이터 구조 이해하기

필드 검증

값 검증

간단한 통계적 해석

시각화

키워드 PPC 사례

검색 순위 사례

추천 분석

시계열 데이터

결론

 

Chapter 3 기계가 아닌 사람이 보도록 만든 데이터

데이터

문제: 사람을 위한 포맷의 데이터

- 데이터 배열

- 여러 파일에 흩어져 있는 데이터

해결책: 코드 작성

- 다루기 어려운 포맷의 데이터 읽기

- 여러 파일에 흩어져 있는 데이터 읽기

후기

다른 포맷

요약

 

Chapter 4 플레인 텍스트 속에 숨어있는 나쁜 데이터

어떤 플레인 텍스트 인코딩인가?

텍스트 인코딩 알아내기

텍스트 표준화

문제: 애플리케이션 특유의 문자가 들어간 플레인 텍스트

Python 텍스트 처리

예제

 

Chapter 5 웹 데이터 ()구성하기

그 정보 구할 수 있겠니?

일반적인 작업 흐름 예시

- robots.txt

- 데이터 구성패턴 찾기

- 분석을 위한 오프라인 버전 저장하기

- 페이지에서 정보 스크랩하기

현실적인 어려움

- 가능한 콘텐츠를 다운로드하라

- , 다이얼로그 박스, 새 창

- Flash

어두운 면

결론

 

Chapter 6 거짓 리뷰와 헷갈리는 리뷰 찾아내기

Weotta

리뷰 얻기

감정 분류

극성 표현

코퍼스 생성

분류기 학습

분류기 검증

데이터 설계

교훈

요약

리소스

 

Chapter 7 나쁜 데이터는 일어나 주실래요?

예시 1: 제조 결함 축소 시스템

예시 2: 여보세요?

예시 3: “대표적”이 “평균”을 뜻하지 않을 때

배운 점

이것도 테스트해야 할까요?

Chapter 8 , , 소변

매우 따분한 몸이 바뀌는 코미디

화학자가 값을 얻는 방법

모든 데이터베이스는 우리 소유입니다

확인해주세요

빨리 살고, 일찍 죽고, 보기 좋은 시체를 남겨라: 코드 저장소

화학자와 스프레드시트를 남용하는 사람들을 위한 중독 치료

tl;dr

 

Chapter 9 데이터와 현실이 다를 때

어느 종목의 기호인가?

분할, 배당, 재조정

나쁜 현실

결론

 

Chapter 10 탐지하기 어려운 편향과 오차

무응답 대체 편향: 일반적인 문제

보고 오차: 일반적인 문제

다른 편향 요인

- 상한코딩/하한코딩

- 경계 편향

- 대리 응답

- 표본 선정

결론

참고 자료

 

Chapter 11 너무 잘 하려다가 오히려 일을 그르친다: 나쁜 데이터가 정말 나쁠까?

먼저, 대학원 시절로 돌아가보자...

프로의 세계로 진출하다

공무원이 되다

행정 데이터는 대단히 현실적이다

신고 전화 데이터 예시

앞으로 나아가다

교훈과 전망

 

Chapter 12 데이터베이스의 공격: 파일을 고수해야 할 때를 위한 지침

지난 이야기

- 툴셋 만들기

- 장애물: 데이터 저장소

파일을 데이터 저장소로

- 파일은 단순하다!

- 파일은 모든 소프트웨어에서 동작한다

- 파일은 모든 형식의 데이터를 수용한다

- 데이터 손상이 국한적이다

- 훌륭한 툴을 가지고 있다

- 설치 비용이 없다

파일의 개념

- 인코딩

- 텍스트 파일

- 바이너리 데이터

- 메모리 맵(Memory-Mapped) 파일

- 파일 포맷

- 구분기호

파일 기반의 웹 프레임워크

- 동기

- 구현

반성

 

Chapter 13 웅크린 테이블, 숨겨진 네트워크

관계형 비용 할당 모델

조합이 폭발하는 섬세한 소리...

숨어있던 네트워크가 드러나다

그래프 저장하기

그렘린으로 그래프 탐색하기

네트워크의 가치 찾기

여러 데이터 모델과 알맞은 툴 사용에 관해서

감사의 말

 

Chapter 14 클라우드 컴퓨팅 신화

클라우드 입문

“클라우드”란 무엇인가?

클라우드와 빅 데이터

프레드(Fred) 소개

순조롭게 시작하다

인프라를 100% 클라우드에 올리다

처음에는 쉽게 확장되다

문제가 생기기 시작하다

성능을 높여야 한다

IO 성능이 중요해지다

대규모 지역 정전으로 심각한 서비스 중단이 발생하다

높은 IO에는 비용이 따른다

데이터 크기 증가

지역적 이중화(Geo Redundancy)가 중요하다

수평 확장은 생각만큼 쉽지 않다

비용이 급격히 증가하다

프레드의 어리석음

신화 1: 클라우드는 모든 인프라 요소에 적합한 솔루션이다

- 이 신화가 프레드의 이야기와 어떤 연관이 있을까

신화 2: 클라우드가 돈을 절약해줄 것이다

- 이 신화가 프레드의 이야기와 어떤 연관이 있을까

신화 3: 클라우드 IO 성능은 소프트웨어 RAID를 통해 쓸만한 수준까지 개선할 수 있다

- 이 신화가 프레드의 이야기와 어떤 연관이 있을까

신화 4: 클라우드 컴퓨팅은 수평 확장이 쉽다

- 이 신화가 프레드의 이야기와 어떤 연관이 있을까

결론과 조언

 

Chapter 15 데이터 과학의 어두운 면

위험 요소를 피하라

데이터에 대해 알지 말라

- 데이터 클리닝과 구성을 일관성 없이 하라

- 데이터가 정확하고 완전하다고 가정하라

- 시간 관련 데이터의 스필오버(spillover)

데이터 과학자에게 한 가지 툴만 주어라

- 애드-혹 분석에 상용 환경 사용하기

- 이상적인 데이터 연구 환경

분석만을 위해 분석을 하라

배운 것을 독차지하라

데이터 과학자에게 전능함을 기대하라

- 데이터 과학자는 어디에 사는가?

결론

 

Chapter 16 기계 학습 전문가를 먹이고 돌보는 방법

문제를 정의하라

완성하기 전에 가짜를 만들어라

학습 셋(training set)을 만들어라

특징을 찾아라

데이터를 인코딩하라

학습, 테스트, 정답 셋으로 나누어라

문제를 설명하라

질문에 대답하라

솔루션을 통합하라

결론

 

Chapter 17 데이터 추적 기술

?

개인적인 경험

- 스냅샷

- 출처 저장하기

- 출처에 가중치 부여하기

- 데이터 철회하기

- 단계 분리하기

- 근본 원인 식별하기

- 개선할 부분 찾기

불변성: 함수형 프로그래밍에서 생각을 빌리다

예제

- 크롤러

- 변천

- 클러스터링

- 인기도

결론

 

Chapter 18 소셜 미디어: 지워지는 잉크?

소셜 미디어: 어쨌든 누구의 데이터인가?

제어권

상업적 리신디케이션

커뮤니케이션과 표현을 둘러싼 기대

- 언어적 커뮤니케이션

새로운 사용자 기대의 기술적 영향

산업계는 무슨 일을 하는가?

- 검증 API

- 업데이트 알림 API

최종 사용자는 무엇을 해야 하는가?

어떻게 함께 일을 하는가?

 

Chapter 19 데이터 퀄리티 분석의 이해: 여러분의 데이터가 언제 충분히 좋은지 알기

프레임워크 소개: 데이터 퀄리티 분석의 네 가지 C

- Complete

- Coherent

- Correct

- aCcountable

결론

 

 

이 책의 구성

 

지저분한 작업, 수작업을 위한 지침

 

여러분은 새로 얻은 데이터셋(dataset)이 당장 분석할 수 있을 만큼 잘 정돈되어 있다고 생각하지 않을 것이다. 케빈 핑크(Kevin Fink)는 ‘2장 이 데이터 이상하지 않아요?’에서 데이터를 시험해볼 수 있는 몇 가지 방법을 제공한다.

 

수많은 데이터가 분석하기 어려운 형태의 스프레드시트에 갇혀 있다. 3장 기계가 아닌 사람이 보도록 만든 데이터’에서 폴 뮤를(Paul Murrell)은 이런 데이터를 추출해 사용하기 좋게 만드는 방법을 보여준다.

 

여러분이 만약 텍스트 데이터로 작업을 하고 있다면 조만간 인코딩 문제에 부딪히게 될 것이다. 4장 플레인 텍스트 속에 숨어있는 나쁜 데이터’에서 조쉬 레비(Josh Levy)는 텍스트 데이터에는 어떤 문제들이 기다리고 있고 그 문제들을 어떻게 다루면 되는지 설명한다.

 

마지막으로 아담(Adam Liacanos)의 ‘5장 웹 데이터 ()구성하기’에서는 웹 데이터 수집 시 겪을 수 있는 모든 문제를 보여준다.

 

기대와 다른 데이터

 

사람들은 온라인 리뷰에 거짓말을 남기기도 한다. 제이콥 퍼킨스(Jacob Perkins)는 사람들이 매우 특이한 방법으로 거짓말을 하는 것을 발견했다. 6장 거짓 리뷰와 헷갈리는 리뷰 찾아내기’를 보면 제이콥(Jacob Perkins)이 자연어 프로그래밍(natural-language programming, NLP)을 이용해 어떻게 이 같은 신종 거짓말을 탐지하는지 배울 수 있다.

 

데이터가 아무리 잘못 되더라도 의지할 수 있는 고유한 식별자가 있지 않을까? 9장 데이터와 현실이 다를 때’에서 스펜서 번즈(Spencer Burns)는 금융 시장에서의 경험을 토대로 앞선 질문이 항상 사실이 아님을 설명한다.

 

다른 접근

 

산업계는 계속 “데이터 과학자(data scientist)”라는 단어의 정확한 의미를 찾기 위해 애쓰고 있다. 적어도 소프트웨어 개발이 데이터 과학의 한 부분에 속한다는 의견에는 많은 사람들이 동의한다. 8장 피, , 소변’에서 리처드 코튼(Richard Cotton)은 소프트웨어 개발자의 관점에서 이와 관련된 현명한 조언을 한다.

 

필립 제너트(Philipp K. Janert)는 ‘7장 나쁜 데이터는 일어나 주실래요?’에서 정말 나쁜 데이터라는 것이 있는지 묻고 있다.

 

여러분의 데이터에 문제가 있을 수도 있으며 여러분은 심지어 그 사실을 모를 수도 있다. 조나단 슈배비쉬(Jonathan A. Schwabish)는 ‘10장 탐지하기 어려운 편향과 오차’에서 문제를 일으킬 수 있는 데이터를 골라 내는 방법을 설명한다.

 

11장 너무 잘 하려다가 오히려 일을 그르친다: 나쁜 데이터가 정말 나쁠까?’에서는 브렛 골드스테인(Brett J. Goldstein)의 경험을 통해 지저분한 데이터를 통해 전통적인 통계 교육이 혹독한 현실을 직시할 필요가 있음을 보인다.

 

데이터 저장소와 기반 시설

 

데이터 저장 방법은 데이터 분석 방법과 많은 연관이 있다. 바비 노튼(Bobby Norton)은 ‘13장 웅크린 테이블, 숨겨진 네트워크’에서 관계형 데이터베이스에 갇힌 그래프 데이터 구조를 찾아내는 방법을 설명한다.

 

클라우드 컴퓨팅은 확장성과 유연성이 뛰어나 대규모 데이터 분석에 매력적이지만 결점이 없는 것은 아니다. 14장 클라우드 컴퓨팅 신화’에서 스티브 프란치아(Steve Francia)는 여러분이 잘못된 해결책을 찾지 않도록 클라우드와 관련된 가설을 해부한다.

 

우리는 NoSQL보다는 관계형 데이터베이스가 낫고, Couch보다는 Mongo가 혹은 하둡(Hadoop) 기반의 저장소가 다른 저장소보다 낫다는 식의 논쟁을 한다. 12장 데이터베이스의 공격: 파일을 고수해야 할 때를 위한 지침’에서 팀 맥나마라(Tim McNamara)는 좀 더 간단한 방법을 제안한다.

 

데이터의 사업적인 측면

 

때때로 데이터 과학자를 정규 직원으로 고용할 만큼 관련 일이 많지 않거나 혹은 회사 내에 없는 특별한 기술이 필요한 경우가 있다. 16장 기계 학습 전문가를 먹이고 돌보는 방법’에서 피트 워든(Pete Warden)은 기계 학습 작업을 아웃소싱하는 특별한 방법을 소개한다.

 

관료주의는 데이터 분석을 방해하는 장벽이 될 수도 있다. 마크 바이스만(Mark Vaisman)은 ‘15장 데이터 과학의 어두운 면’에서 여러분이 피해야 할 최악의 관행을 몇 가지 소개한다.

 

데이터 정책

여러분은 데이터를 처리할 때 자신이 어떤 방법을 사용하였는지는 확실히 알 것이다. 하지만 어떻게 최종 결과물이 나왔는지도 제대로 이해하고 있을까? 레이드 드레이퍼(Reid Draper)의 ‘17장 데이터 추적 기술’은 데이터 처리 과정에 대해 생각해볼 수 있는 기회를 제공한다.

 

내부에 있어야 할 데이터가 외부로 나왔다거나 삭제되었어야 할 데이터가 여전히 존재하는 경우처럼 데이터는 잘못된 장소에 있을 때 특히 더 문제가 된다. 18장 소셜 미디어: 지워지는 잉크?’에서 주드 바레스키(Jud Valeski)는 소셜 미디어의 미래를 살펴보고 데이터 리콜 기능의 필요성에 대해 고찰한다.

 

마지막으로 필자는 오랜 지지자인 켄 글리슨(Ken Gleason)과 함께 ‘19장 데이터 퀄리티 분석의 이해: 여러분의 데이터가 언제 충분히 좋은지 알기’를 집필하였다. 여기서는 케빈 핑크의 글을 보완하여 데이터의 퀄리티를 평가하고 퀄리티를 높이기 위한 시스템적인 방법을 설명한다.

 

 

신고
Trackback 0 | Comment 0

 

 

HBase 인액션

 

 

빅데이터를 위한 NoSQL 데이터베이스

 

저자 닉 디미덕, 아만딥 쿠라나

역자 김지훈, 이지훈

출간일 2013429()

정가 30,000

페이지 439

판형 190 x 245

ISBN 978-89-94774-38-1 (93560)

원서정보 HBase in Action

 

 

 

책 소개

 

 

빅데이터를 위한 NoSQL 데이터베이스

 

"쉬운 설명으로 시기 적절하게 HBase를 실제로 적용하는 법에 대해 설명한다."

- 아파치 HBase 프로젝트 관리 위원회 의장, Michael Stack

 

"어려운 주제를 아주 쉽게 설명한다."

- Hibernate Search in Action》의 공저자, John Griffin

 

"주제를 벗어나지 않으면서 재미있게 잘 풀어 썼다."

- APS 헬스케어, Charles Pyle

 

"HBase 방식으로 사고하는 법을 배울 수 있다."

- Menttis, Gianluca Righetto

 

책은 HBase 기반으로 애플리케이션을 구축하고 실제 환경에서 애플리케이션을 실행하는 충분한 지식을 제공하는 것을 목표로 한다. HBase는 대량 데이터를 위한 고속의 랜덤 액세스용으로 설계된 NoSQL 저장 시스템이다. 일반적인 하드웨어에서 기동되며 수십억 개의 로우와 수백만 개의 컬럼으로 쉽게 확장 가능하다. HBase 인액션》은 HBase를 사용하는 애플리케이션을 설계, 구축 및 실행하는 방법을 알려주는 저자의 경험을 바탕으로 한 가이드북다. 먼저 빅 데이터 기초에 대해 소개하고, 그리고 나서 실제 애플리케이션과 코드 샘플 그리고 실용적인 기법을 뒷받침해주는 충분한 이론을 가지고 HBase를 설명한다. 실용적인 HBase 예제들을 살펴봄으로써 여러분이 맵리듀스 프로세싱 프레임워크와 HBase의 장점을 사용할 수 있게 해줄 것이다.

 

 

이 책의 내용

 

언제 그리고 어떻게 HBase를 사용하는가?

실용적인 예제들

확장성 있는 데이터 시스템을 위한 설계 패턴

전개와 통합 그리고 설계

 

이 책은 실제적인 데이터베이스 사용자 가이드다. 이 책이 필요한 주된 독자층은 HBase를 빠르게 살펴보고 싶은 애플리케이션 개발자와 테크니컬 아키텍트다. 이론적인 내용보다는 실용적인 내용을 담고 있고 HBase 내부를 살펴보기보다는 HBase를 사용하는 방법을 대해 더 많이 다루고 있다. 아마도 학생들의 교과서로보다는 개발자 안내서로 더 유용할 것이다. 또한 이 책에서는 HBase 배치와 운영의 기본적인 내용을 다루고 있기 때문에 운영 엔지니어의 입장에서도 좋은 시작점이 될 것이다. (HBase와 관련된 대중 서적은 아직 나오지 않았다.)

 

 

소스코드 다운로드

 

manning.com/HBaseinAction

 

 

독자 대상

 

초중급

 

 

 

저자소개

 

디미덕

2008 그가 참여했던 야간 ETL 작업을 완료하는 20시간 넘게 쓰면서, 우연히 HBase 접하게 되었다. 그때부터 닉은 소셜 미디어, 소셜 게임, 클릭스트림 분석, 기후학, 지리학 데이터의 프로젝트에 하둡과 HBase 사용해오고 있다. 닉은 또한 시애틀의 확장성 모임을 조직하는 것을 돕고 기업활동을 시도했다. 그의 최근 관심 분야는 과학적 데이터에 있어 분산적, 확장적 온라인 액세스이다.

 

아만딥 쿠라나

클라우데라(Cloudera) 솔루션 아키텍트이다. 아만딥은 클라우데라에서 고객들과 하둡과 HBase 채택 라이프사이클 작업을 하고 있는데, 크기에 맞춰 구축된 애플리케이션을 계획하는 데에서부터 구축하고 이용하는 것에 이르는 모든 작업을 하고 있다. 아만딥은 클라우데라에서 일하기 전에는 아마존 서비스에서 엘라스틱 맵리듀스팀의 일원으로 일했다. 아만딥은 대규모 분산 시스템과 정보 관리 경력이 있다.

 

 

 

역자소개

 

김지훈

동국대학교 컴퓨터공학과에서 학사 학위를 받고, 홍익대학교 대학원 컴퓨터 공학과에서 석사 학위(시스템 프로그래밍 전공)를 받았다. LG CNS SW 아키텍트 8년 경력과 KTDS 연구원 2년 경력이 있다. 현재는 KCA에서 감리사로 근무 중이며, GoDev의 서버 사이드 아키텍트로 활동 중이다. 저서로는 《나 홀로 개발자를 위한 안드로이드 프로그래밍의 모든 것》이 있다.

 

 

 

이지훈

컴퓨터시스템응용기술사이자 정보시스템 수석감리원이다. 12년차 자바 개발자로 SDS SK C&C에서 근무했으며, 현재 LG 전자에서 스마트TV 관련 시스템을 운영 중이다. 안드로이드와 아이폰앱 개발자로 활동하고 있고 새로운 기술을 접하길 좋아한다. 저서로는 《나 홀로 개발자를 위한 안드로이드 프로그래밍의 모든 것》이 있다

 

 

 

목차

 

 

PART 1. HBase 기초

 

CHAPTER 1. HBase 소개

데이터 관리 시스템: 충돌 과정

HBase 유즈 케이스와 성공 스토리

헬로우 HBase

요약

 

CHAPTER 2. 시작하기

처음부터 시작하기

데이터 처리

데이터 코디네이트

종합

데이터 모델

테이블 스캔

원자 조작

ACID 문법

요약

 

CHAPTER 3. 분산 HBase, 하둡의 분산 파일시스템(HDFS)과 맵리듀스

맵리듀스에 대한 사례

하둡 맵리듀스 개요

분산 모드의 HBase

HBase와 맵리듀스

종합

확장에 대한 가용성과 신뢰성

요약

 

 

PART 2. 고급 개념

 

CHAPTER 4. HBase 테이블 설계

스키마 설계 방법

HBase 세계에서 비정규화는 진리이다

동일 테이블의 다른 유형 데이터

로우키 설계 전략

입출력 고려사항

관계형에서 비관계형으로

고급 칼럼 패밀리 설정

필터링 데이터

요약

 

CHAPTER 5. 코프로세서를 이용한 HBase 확장

코프로세서의 두 가지 종류

옵저버 구현

엔드포인트 구현

요약

 

CHAPTER 6. 다른 HBase 클라이언트

유닉스에서 HBase 쉘 스크립팅

JRuby를 사용한 HBase 쉘 프로그래밍

REST를 통한 HBase

파이썬에서 HBase Thrift 게이트웨이 사용

Asynchbase: 자바 HBase 클라이언트의 대체

요약

 

 

PART 3. 예제 애플리케이션

 

CHAPTER 7. HBase 적용 사례: OpenTSDB

OpenTSDB 개요

HBase 애플리케이션 설계

HBase 애플리케이션 구현

요약

 

CHAPTER 8. HBase 기반 GIS 확장

공간 데이터 작업

공간 인덱스 설계

최근접 질의 구현

서버 측 작업 수행

요약

 

 

PART 4. HBase 운영

 

CHAPTER 9. HBase 전개

클러스터 계획

소프트웨어 전개

배포판

설정

데몬 관리

요약

 

CHAPTER 10. 운영

클러스터 모니터링

HBase 클러스터 성능

클러스터 관리

백업과 복제

요약

부록 A HBase 시스템 확인

부록 B HDFS 좀 더 알아보기

 

 

 

이 책의 구성

 

 

HBase 인액션’은 크게 네 부분으로 구성되어 있다. 1부와 2부에서는 HBase를 사용하는 방법을 다룰 것이다. 여섯 개의 장을 통해서 HBase를 이용하여 애플리케이션을 만드는 데 필요한 지식을 초보 수준에서 전문가 수준에 걸쳐 모두 다룰 것이다. 이 장들을 학습하면서 스키마 설계, 기본 기능, 그리고 대부분의 고급 기능에 대해 배울 것이다. 가장 중요한 점은 HBase에 대해 생각하는 방법을 배운다는 점이다. 3부의 두 개 장에서는 예제 수준을 넘어선 애플리케이션을 이용하여 학습할 것이고 이를 통해 HBase를 사용하는 실제 애플리케이션을 맛보게 될 것이다. 4부는 우리의 애플리케이션을 완벽한 기능을 가진 시스템의 프로토타입으로 만드는 것을 목표로 한다.

 

1장에서는 하둡과 HBase, NoSQL의 일반적인 사항들을 소개한다. 여기서는 HBase가 다른 NoSQL 데이터베이스와 다른 점 또는 같은 점을 설명한다. 이는 HBase가 프로젝트 또는 회사에 적용할 만한 적절한 기술인지를 판단하는 데 도움을 줄 것이다. 1장에서는 간단하게 HBase를 설치해보고 데이터를 저장해볼 것이다.

 

2장에서는 샘플 애플리케이션의 제작에 착수할 것이다. 이 예제를 통해서 HBase를 사용하는 기본 방법을 살펴볼 것이다. 테이블을 만들고, 데이터를 저장하고, 탐색하는 방법을 배우고, HBase 데이터 모델을 모두 다룰 것이다. 또한 HBase에 데이터가 저장되는 방법을 이해하기 위해 HBase 내부를 살펴볼 것이고, 이러한 지식을 이용해 애플리케이션에서 만드는 방법을 배울 것이다.

 

3장에서는 분산 시스템으로서의 HBase를 다시 살펴볼 것이다. 이 장에서는 HBase와 하둡, 주키퍼의 관계를 알아보고, HBase의 분산 아키텍처와 HBase가 강력한 분산 데이터 시스템으로 전환되는 방법을 배울 것이다. 여기서 하둡 맵리듀스를 가지고 HBase를 사용하는 예제를 직접 수행할 수 있을 것이다.

 

4장에서는 HBase 스키마 설계에 집중할 것이다. 우리는 이 복잡한 주제를 예제 애플리케이션을 통해서 설명할 것이다. 테이블 설계가 애플리케이션에 미치는 영향과 일반적으로 저지를 수 있는 실수들을 피하는 방법을 배울 것이다. 서버 측에 필터를 사용하여 불완전한 스키마 설계를 피해서 작업하는 방법을 배울 것이다. 또한 여기서 우리가 가지고 있는 관계형 데이터베이스 지식을 HBase 세계와 연관시켜 보여줄 것이다. 그리고 HBase의 물리적 설정에 대한 고급 내용을 다룰 것이다.

 

5장에서는 HBase 클러스터에 연산을 넣을 수 있는 코프로세스를 소개할 것이다. 예제 애플리케이션을 두 가지 다른 방법으로 확장해서 새로운 애플리케이션 기능을 클러스터에 넣어볼 것이다.

 

6장에서는 다른 HBase 클라이언트를 빠르게 살펴볼 것이다. HBase는 자바로 쓰여져 있지만 애플리케이션이 반드시 자바로 작성되어 있어야 하는 것은 아니다. 여기서는 다양한 언어와 서로 다른 네트워크 프로토콜을 가진 예제 애플리케이션과 HBase와 상호작용하는 방법을 살펴볼 것이다.

 

3부는 7장부터 시작한다. 7장에서는 실제 운영 가능한 애플리케이션을 살펴볼 것이다. 문제 영역을 살펴보고 애플리케이션에서 이를 해결할 구체적인 방법을 배울 것이다. 그리고 구현 내용을 깊게 살펴보고 기술 설명을 장시간에 걸쳐 상세하게 할 것이다. 여기서는 HBase를 이용하여 개발한 애플리케이션을 처음부터 끝까지 살펴볼 것이다.

 

8장에서는 HBase를 새로운 영역에 연관시키는 방법을 배울 것이다. 우선 GIS 영역을 빠르게 살펴보고, HBase를 확장할 때 직면할 수 있는 도메인 특정 문제를 다루는 방법을 보여줄 것이다. 도메인에 특화된 스키마 설계와 스캔과 필터를 최대한 활용하는 방법을 집중적으로 살펴볼 것이다. 이전에 GIS 경험이 없다고 해도, 이전 장에서 배운 지식을 대부분 이용할 수 있을 것이다.

 

4부는 9장부터 시작한다. 9장에서는 HBase 클러스터를 설치할 것이다. 백지 상태에서 시작해서 HBase의 배치를 다루는 방법을 보여줄 것이다. 하드웨어의 종류와 필요한 하드웨어의 개수와 클러스터 상에서 하드웨어를 할당하는 방법을 이 장에서 배울 것이다. 또한 클라우드도 고려하여 학습할 것이다. 결정된 하드웨어에서 기본적인 전개를 위한 설정방법과 구동방법을 보여줄 것이다.

 

10장에서는 운영환경에서 HBase를 관리하는 방법을 배울 것이다. 통계와 모니터링 툴을 이용해서 클러스터를 살펴보는 방법을 보여줄 것이다. 애플리케이션의 작업부하에 입각하여 클러스터의 성능을 향상하기 위한 방법도 같이 보여줄 것이다. 클러스터를 관리하는 방법과 클러스터를 안정되게 유지하는 방법, 고장을 진단하고 발생 시 이를 고치는 방법, 업그레이드하는 방법을 배울 것이다. 데이터 백업과 복구를 위해서 기본적으로 제공되는 툴에 대해 배울 것이며 멀티-클러스터 복제를 설정하는 방법도 배울 것이다.

 

 

신고
Trackback 0 | Comment 0

 

 

엔티티 프레임워크

 

: Code First & DbContext

 

저자 줄리아 러먼, 로완 밀러

역자 김상우, 최다은

감수자 박경훈

 

출간일 2013321()

정가 33,000

페이지 524

판형 190 x 245

ISBN 978-89-94774-33-6 (93560)

원서정보: Programming Entity Framework: Code First, Programming Entity Framework: DbContext

 

 

 

책 소개

 

 

엔티티 프레임워크 프로그래밍

 

 

PART I. Code First

 

ADO.NET 엔티티 프레임워크의 코드 퍼스트 데이터 모델링 접근 방식을 활용하여, 비즈니스 도메인의 기존 클래스를 기반으로 모델을 구축하고 구성하는 방법에 대해 알아보자.

 

PART I통해 여러분은 코드 퍼스트가 메모리에 모델과 데이터베이스를 생성하는 기본적인 방법 및 다양한 구성 작업으로 보다 모델을 효율적으로 관리하는 방법을 직접 예제로 실습해보면서 배울 수 있다.

 

코드 퍼스트는 엔티티 데이터 모델에 접근하는 데이터베이스 퍼스트 및 모델 퍼스트의 대안을 제공한다. 기존 데이터베이스로 작업하거나 새로운 데이터베이스를 구축할 경우 코드로 모델을 정의하는 작업의 장점을 배울 수 있다. 이 책은 Visual Studio와 함께 작업할 수 있으며, 데이터베이스 관리의 기본을 이해하고 있는 독자에게 유용한 정보를 제공한다.

 

- 코드 퍼스트로 작업할 수 있는 것과 없는 것에 대해 정확하게 배울 수 있다.

- 코드 퍼스트가 해당 클래스로부터 프로퍼티 어트리뷰트, 관계, 데이터베이스 매핑을 유추하는 방법을 이해할 수 있다.

- 코드 퍼스트 데이터 모델을 구성하기 위해 데이터 주석과 플루언트 API를 사용할 수 있다.

- 데이터베이스 스키마를 제어하고 기본 모델 캐싱을 재정의하는 고급 기술들을 수행할 수 있다.

 

 

 

PART II. DbContext

 

DbContext API는 엔티티 프레임워크를 이용한 개발을 단순화해주기 위해 가장 일반적으로 사용되는 기능과 작업들을 포함한다.

 

PART II DbContext API로 어떻게 DbSet 클래스를 동작하고 변경 추적을 처리하며, 변경 추적 API로 동시성 충돌을 해결하고 유효성 검사 API로 데이터에 대한 변경사항을 검사하는지 알려준다.

 

DbContext를 이용하면 개별적인 오브젝트나 오브젝트 그래프, 그리고 그들과 관계된 데이터에 상관없이 데이터를 쿼리하고 업데이트할 수 있다. 이 책은 여러분이 이를 수월하게 시작할 수 있도록 수많은 C# 예제 코드들을 포함하고 있다. 필요한 것은 단지 Visual Studio와 데이터베이스 기본 관리에 대한 기초적인 경험뿐이다.

 

- 데이터를 조회하기 위해 엔티티 프레임워크의 쿼리 기능을 사용한다. 그리고 데이터를 정렬하고 필터링하기 위해 LINQ를 사용한다.

- 새로운 데이터를 추가하고, 기존 데이터를 변경하고 삭제하는 방법을 배운다.

- 엔티티 프레임워크가 유지하고 있는 엔티티 인스턴스들에 대한 상태정보에 접근하기 위해 변경 추적 API를 사용한다.

- N-Tier 애플리케이션을 포함하는 비 연결 시나리오에서 엔티티들의 변경 추적정보를 제어한다.

- 변경된 데이터를 데이터베이스에 보내기 전에 유효성 검사를 하고 규칙을 설정한다.

엔티티 프레임워크의 쿼리 파이프라인을 우회하고 데이터베이스와 직접 상호작용한다.

 

 

 

예제코드 다운로드

 

 

PART I: http://shop.oreilly.com/product/0636920022220.do

PART II: http://shop.oreilly.com/product/0636920022237.do

 

 

 

독자 대상

 

 

이 책은 비주얼 스튜디오와 데이터베이스 기본 관리 경력이 있는 개발자들을 대상으로 한다. 엔티티 프레임워크를 사용해본 경험이 있다면 큰 도움이 되겠지만, 필수는 아니다. 이 예제 코드는 C#으로 작성되었으나, 경우에 따라 비주얼 베이직으로 보여주기도 했다. C#에서 비주얼 베이직으로 코드 조각을 변환하는 데 사용할 수 있는 여러 온라인 도구가 있다.

 

 

 

 

저자소개

 

 

줄리아 러먼(Julia Lerman)

 

엔티티 프레임워크의 최고 권위자이며, 2006년에 처음 도입된 이래 기술을 사용하고 가르치는 작업을 지속하고 있다. 줄리아는 마이크로소프트 MVP, ASPInsider, INETA 강연자로 닷넷 커뮤니티에서 알려져 있다. 줄리아는 세계 기술 컨퍼런스의 발표자로 자주 서고 있으며, MSDN 매거진의Data Points칼럼을 포함해 알려진 많은 기술 서적에 대한 기사를 쓰고 있다. 줄리아는 버몬트(Vermont)에서 남편 리치(Rich), 거대한 샘슨(Sampson) 함께 살고 있으며 Vermont.NET User Group 운영하고 있다. www.thedatafarm.com/blog에서 그녀의 블로그를 읽을 있고 트위터 주소는 @julielerman이다.

 

로완 밀러(Rowan Miller)

 

워싱턴 시애틀에 본사를 마이크로소프트에서 ADO.NET 엔티티 프레임워크 프로그램 관리자로 일하고 있다. 미국으로 가기 전에는 호주에 있는 태즈메이니아(Tasmania) 작은 주에서 살았었다. 로완은 기술 컨퍼런스 http://romiller.com 블로그에서 만날 있다. 또한 기술적인 활동 외에 스노우보드, 산악 자전거, 승마, 암벽 등반 다양한 활동에도 열정적이다. 그러나 그의 삶에서 가장 중요한 것은 예수님을 따르는 것이다.

 

 

 

역자소개

 

 

최다은

 

어릴 때 게임을 좋아하여 직접 만들어보고 싶다는 꿈이 개발자로 이어지게 되었으며, 2010년부터 HOONS 닷넷 실버라이트 시삽을 맡고 있다. 현재는 IT와 비즈니스를 접목한 컨설팅 분야에 관심을 가지고 관련분야의 길을 모색하고 있다. 공부하며 탐구하는 삶에 재미를 느끼며, 다양한 번역 작업에도 관심이 있다. 여행을 다니며 별을 보는 것을 좋아하여 밤하늘을 사진으로 담아내는 아마추어 천문 사진작가로써의 소박한 꿈도 가지고 있다.

 

김상우

 

현재 건설업전문 ERP 솔루션업체인 굿센테크날러지의 ERP사업팀에서 R&D와 유지보수조직을 총괄하고 있으며, 2011년에 HOONS 닷넷 커뮤니티에서 WPF 시샵으로 활동하였고 MS(Microsoft) Window Azure Solution build Program 최우수 파트너에 선정되었던 Cloud ERP 노무관리 시스템 구축의 PM을 담당했다.

 

 

 

감수자 소개

 

 

박경훈

 

국내 최대의 닷넷 개발자 커뮤니티인 HOONS 닷넷을 10여년 동안 운영해오면서, 또한2005년부터 지금까지 Microsoft Visual C# MVP로 활동해오면서 프로그래밍 서적 10여권을 번역 및 집필했고 수많은 세미나와 컨퍼런스들을 기획/진행하면서 닷넷 개발자들에게 닷넷 기술들과 함께 새로운 열정을 전하는 데 노력해왔다. 극동방송의 테마 CCM 진행자로 1년 동안 활동했으며, 지난 2년 동안은 영국에서 캠든소프트를 설립하여 모바일 앱 제작 도구 개발에 매진하기도 했다. 현재 런던대학교 킹스칼리지 대학원에서 소프트웨어에 대한 새로운 학문들의 이론을 공부하고 있다.

 

 

 

목차

 

 

PART 1 Code First

 

CHAPTER 1 코드 퍼스트에 온 것을 환영합니다

 

- 코드 퍼스트를 시작하기 전에 엔티티 프레임워크로 모델링하기

- 코드 퍼스트의 시작

- 닷넷의 배포 시기와 코드 퍼스트

- v코드 퍼스트 작성하기

- DbContext로 개체 관리하기

- 데이터 레이어와 도메인 클래스 이용하기

- 클래스에서 데이터베이스 얻기

- 설정 작업

- 데이터 베이스 생성 또는 지정하기

- 코드 퍼스트가 지원하지 않는 기술

- 이 책에서 배우는 것

 

 

CHAPTER 2 코드 퍼스트 처음으로 살펴보기

 

- 도메인 클래스로 가기 위해 EF 소개하기

- 예제에서 조각을 전체로 통합하기

- 설정에 따른 규칙 재정의하기

- 데이터베이스 초기화에 영향을 주는 모델 변경방법 이해하기

- 플루언트 API로 코드 퍼스트 설정하기

- 요약

 

 

CHAPTER 3 프로퍼티 어트리뷰트 규칙과 구성 사용하기

 

- 코드 퍼스트로 프로퍼티 어트리뷰트 작업하기

- 매핑 키

- 생성된 데이터베이스 프로퍼티 설정하기

- 낙관적 동시성에 대해 TimeStamp RowVersion 필드 구성하기

- 동시성에 대해 타임스탬프가 아닌 필드 구성하기

- 유니코드가 아닌 데이터베이스 타입에 매핑하기

- 십진법의 정밀과 스케일에 영향 주기

- 코드 퍼스트에서 복합 타입으로 작업하기

- 복합 타입 프로퍼티 설정하기

- 요약

 

 

CHAPTER 4 관계 규칙과 구성 사용하기

 

- 다중성 작업하기

- 외래 키로 작업하기

- 내비게이션 프로퍼티 역작업

- 캐스케이드 삭제 작업하기

- 다대다 관계 탐색하기

- 단방향 내비게이션을 가지는 관계로 작업하기

- 일대일 관계 작업하기

- 요약

 

 

CHAPTER 5 데이터베이스 매핑 규칙과 구성 사용하기

 

- 데이터베이스 테이블 및 스키마 이름에 클래스 이름 매핑하기

- 데이터베이스 칼럼으로 프로퍼티 이름 매핑하기

- 여러 엔티티를 하나의 테이블로 매핑하는 작업: 테이블 분할

- 여러 테이블에 하나의 엔티티 매핑하기

- 데이터베이스에 매핑된 타입 제어하기

- 프로퍼티의 매핑과 접근성 이해하기

- 프로퍼티가 모델에 포함되지 않도록 작업하기

- 상속 계층 매핑하기

- 추상 기본 클래스로 작업하기

- 관계 매핑하기

- 요약

 

 

CHAPTER 6 데이터베이스 위치, 생성 과정 및 시드 데이터 제어하기

 

- 데이터베이스 위치 제어하기

- 데이터베이스 초기화 작업하기

- 시드 데이터로 데이터베이스 이니셜라이저 사용하기

- 데이터베이스 스키마에 더 많은 영향을 주는 데이터베이스 초기화 사용하기

- 요약

 

 

CHAPTER 7 고급 개념

 

- 테이블이 아닌 데이터베이스 개체에 매핑하기

- 규칙 제거하기

- 모델 캐싱 제어하기

- EdmMetadata 테이블로 작업하기

- ObjectContext로 코드 퍼스트 사용하기

- 요약

 

 

CHAPTER 8 코드 퍼스트의 차기 버전

 

- 코드 퍼스트 마이그레이션

- 엔티티 프레임워크 파워 툴

 

 

PART II DbContext

 

CHAPTER 9 DbContext API 소개하기

 

- 프로젝트에 DbContext API 추가하기

- DbContext API의 주요 기능

- BreakAway 모델로 작업하기

- DbContext 인스턴스 리소스 해제 확인하기

 

 

CHAPTER 10 DbContext로 쿼리하기

 

- LINQ로 엔티티에 쿼리 작성하기

- 모든 데이터 쿼리하기

- 정렬, 필터, 그 외 더 많은 작업에 LINQ 사용하기

- 싱글 개체 찾기

- 로컬 데이터 쿼리하기

- 관련 데이터 로딩하기

- 탐색 속성 컬렉션에 대한 쿼리하기

 

 

CHAPTER 11 엔티티의 추가, 변경, 삭제하기

 

- 싱글 엔티티들로 작업하기

- 관계 정의하기

- 변경 추적

- 스냅샷 변경 추적 사용하기

- 변경 추적 프락시 활성화와 사용법

- 변경 추적 없이 엔티티들 조회하기

 

 

CHAPTER 12 N-Tier 응용프로그램을 포함하는 비연결 엔티티들로 작업하기

 

- 비연결 그래프의 간단한 작업

- N-Tier 과제 탐구하기

- DbContext가 싱글 엔티티의 상태를 설정하기 위해 응답하는 방법

- 엔티티 그래프에서 다중 엔티티에 대한 상태 설정

- 상태를 추적하기 위한 일반적인 접근방법

- 개별적으로 수정된 속성 추적하기

 

 

CHAPTER 13 변경 추적 API

 

- 싱글 엔티티의 추적 정보와 기능 변경하기

- 상태 속성 활용하기

- 현재, 원래, 데이터베이스 값으로 작업하기

- 개별 속성들로 작업하기

- 데이터베이스로부터 엔티티 새로 고치기

- 다중 엔티티의 변경 추적 정보와 동작

- 응용프로그램 시나리오에서 변경 추적 API 사용하기

 

 

CHAPTER 14 밸리데이션 API로 유효성 검사

 

- 유효성 검사 정의와 사용: 개요

- GetValidationResult를 사용한 싱글 개체 검증

- ValidationAttribute 데이터 애노테이션으로 속성 규칙 지정하기

- 유효성 검사 결과 세부사항 확인하기

- ValidationAttributes 탐구하기

- 개별 속성 유효성 검사

- 타입 수준의 유효성 검사 규칙 지정하기

- EF가 유효성 검사를 결합하는 방법

- 다중 개체 유효성 검사

- 변경사항 저장 시 유효성 검사

 

 

CHAPTER 15 사용자 정의 유효성 검사

 

- ValidateEntity 재정의하기

- ValidateEntity를 활용하는 그 외 방법 고려하기

- SaveChanges 사용 시 데이터 업데이트하기

- 유효성 검사가 일어날 때 SaveChanges 재정의하기

- ValidateEntity IDictionary 매개 변수 사용하기

- ValidateEntity에서 유효성 검사되는 엔티티 관리하기

 

 

CHAPTER 16 고급 시나리오에서 DbContext 사용하기

 

- ObjectContext DbContext 간 이동하기

- SqlFunctions에 노출된 SQL 서버 연산자 활용하기

- DbSet으로 파생된 타입 쿼리하기

- 인터페이스 속성 제한 이해하기

- DbContext와 자동화 테스트 고려하기

- IDbSet과 테스트에서 데이터베이스 영향 감소하기

- DbContext에서 데이터베이스 직접 접근하기

- 응용프로그램에서 여러 대상 컨텍스트 제공하기

 

 

CHAPTER 17 엔티티 프레임워크의 차기 버전

 

- 엔티티 프레임워크의 버전 번호 이해하기

- 엔티티 프레임워크 5.0

 

 

 

이 책의 구성

 

 

Chapter 1 코드 퍼스트에 온 것을 환영합니다

 

1장은 코드 퍼스트에 대해 처음부터 끝까지 수준 높은 미리 보기를 제공한다. 이 샘플 코드는 연습용이 아니다. 또한 독자가 기대하는 기술에 올바르게 접근할 수 있도록 코드 퍼스트에서 지원하지 않는 기술을 논의하는 것으로 마무리한다.

 

 

Chapter 2 코드 퍼스트 처음으로 살펴보기

 

2장에서는 바로 코드로 연습해볼 수 있다. 또한 기본 동작 일부를 보기 위해 간단한 클래스로 작업하면서 두 가지 메커니즘, 즉 데이터 애노테이션과 플루언트 API로 간단한 구성을 수행하는 작업을 코드 퍼스트로 해볼 수 있는 (또는 그냥 따라 읽어볼 수 있도록) 기회를 제공한다.

 

여러분은 코드 퍼스트가 기본 동작을 사용하기 위해 자동으로 데이터베이스를 생성하는 방법을 볼 것이다. 또한 이어지는 네 장에 걸쳐 코드 퍼스트가 생성하는 기본 데이터베이스를 다룰 것이며, 6장에서는 기존 데이터베이스로 작업하는 방법과 데이터베이스를 좀 더 효율적으로 관리하는 방법을 배울 것이다.

 

 

Chapter 3 프로퍼티 어트리뷰트 규칙과 구성 사용하기

 

3장은 코드 퍼스트 규칙과 구성에 대해 좀 더 깊게 들어가는 세 장 중 도입에 해당한다. 여러분은 어트리뷰트(예를 들어, 문자열 길이)를 추정해 만드는 코드 퍼스트 규칙과 이 규칙이 개념 모델과 데이터베이스에 해석되는 방법을 배울 것이다.

 

또한 모델과 데이터베이스의 결과를 제어하기 위해 데이터 애노테이션 및 플루언트 API를 사용해 구성을 수행하는 방법도 배울 것이다.

 

 

Chapter 4 관계 규칙과 구성 사용하기

 

4장에서는 클래스 간의 관계 및 모델과 데이터베이스에 있는 관계를 어떻게 코드 퍼스트가 추정하는지 배울 것이다. 코드 퍼스트 규칙은 클래스가 이들 간에 관계를 맺는 시기에 대한 가장 일반적인 시나리오를 유추할 수 있다.

 

우리는 코드 퍼스트가 클래스 간의 미묘한 차이를 추정하는 작업과 데이터 애노테이션이나 플루언트 API를 다시 구성함으로써 사용자가 원하는 작업을 코드 퍼스트에게 정확히 알리는 방법을 자세히 살펴볼 것이다.

 

 

Chapter 5 데이터베이스 매핑 규칙과 구성 사용하기

 

5장에서는 클래스를 데이터베이스에 매핑하는 방법에 초점을 두었다. 이 정보는 특히 사용자가 기존 데이터베이스에 클래스를 매핑할 때 유용할 것이다. 테이블 이름이나 칼럼 이름, 타입과 같은 간단한 매핑 작업이라도 큰 차이를 만들 수 있다.

 

여러분은 클래스 간에 정의된 상속 계층을 가질 경우 데이터베이스에 작업하는 기본 매핑 및 Table Per Hierarchy, Table Per Type, Table Per Concrete Type이 데이터베이스에 매핑을 유도하는 방법을 배울 것이다. 또한 여러 테이블에 하나의 엔티티를 매핑하는 방법, 반대로 하나의 테이블에 여러 엔티티를 매핑하는 방법을 배울 것이다.

 

 

Chapter 6 데이터베이스 위치, 생성 과정 및 시드 데이터 제어하기

 

6장에서는 기본 데이터베이스 생성 동작에서 한 단계 나아간 개념을 만나보게 될 것이다. 커넥션 스트링 또는 코드 퍼스트 API의 일부 낮은 레벨의 코드로 작업을 수행하면서 코드 퍼스트가 데이터베이스 이름과 위치를 제어하는 방법을 배울 것이다. 또한 커넥션 같은 다른 작업을 제어하기 위한 몇 가지 유용한 정보를 찾을 수 있을 것이다.

 

 

Chapter 7 고급 개념

 

7장에서 여러분은 몇 가지 고급 기술을 수행하는 방법을 알아보기 위해 코드 퍼스트를 더 깊게 파고들 것이다. 여러분은 이 작업을 제어하면서 모델 동기화 작업에서 데이터베이스를 유지하기 위해 코드 퍼스트가 수행하는 방법을 보게 될 것이다.

 

또한 기본 모델 캐싱 방법 및 동일한 응용프로그램 인스턴스에서 여러 데이터베이스 공급자를 대상으로 지정하는 등의 문제를 해결하기 위해 재정의하는 방법을 배울 것이다. 그 외 고급 주제들도 다룬다.

 

Chapter 8 코드 퍼스트의 차기 버전

 

이 책은 엔티티 프레임워크 4.2 버전을 기반으로 하는 코드 퍼스트의 기능을 다루기 위해 집필되었다. 이 글을 쓸 당시, 많은 Community Technical Previews는 향후 코드 퍼스트 배포에서 얻을 수 있는 일부 기능을 설명했다. 8장은 이러한 향후 배포에서 사용 가능한 정보를 공유하고 있다.

 

 

Chapter 9 DbContext API 소개하기

 

9장에서는 높은 수준의 DbContext API를 전반적으로 개관한다. 우리는 왜 엔티티 프레임워크 팀이 DbContext API 만들기를 결정하고 사용하기 쉽게 만들었는지 배울 것이다. 예제 코드를 보겠지만, 이 장에서는 다루지 않을 것이다.

 

 

Chapter 10 DbContext로 쿼리하기

 

10장에서는 엔티티 프레임워크의 기능을 이용해서 데이터베이스로부터 데이터를 가져오는 법을 배울 것이다. 우리는 어떻게 키로 엔티티를 찾고 주어진 타입의 모든 엔티티들을 로딩할 수 있는지 배울 것이다. LINQ를 사용해서 어떻게 데이터를 정렬하고 필터링하는지도 배울 것이다. 또한 관계된 데이터를 로딩하는 여러 가지 전략도 살펴볼 것이다.

 

 

Chapter 11 엔티티의 추가, 변경, 삭제하기

 

데이터를 쿼리하는 방법을 배웠으니, 이 장에서는 변경하고 데이터베이스에 저장하는 법을 다룰 것이다. 새로운 데이터를 추가하는 방법뿐만 아니라 기존 데이터를 변경하고 삭제하는 방법을 배우고 SaveChanges 메서드를 이용해 저장하는 방법도 배울 것이다.

 

 

Chapter 12 N-Tier 응용프로그램을 포함하는 비연결 엔티티들로 작업하기

 

12장에서는 엔티티 프레임워크를 이용해 엔티티들이 컨텍스트에 의해 관리되지 않는 동안 엔티티들에 만들어진 변경사항을 지속할 수 있는지 알아볼 것이다. 이 상황은 서버 컴포넌트가 데이터를 가져오고 이것을 클라이언트 응용프로그램으로 반환하는 N-Tier 응용프로그램에서 가장 일반적이다. 이 클라이언트 응용프로그램은 데이터를 수정하고 저장하기 위해 서버로 돌려보낸다. 이런 상황을 해결하는 다양한 접근방법을 배우고, 이런 것들을 구현하기 위해 어떻게 변경 추적 API를 사용하는지 배울 것이다.

 

 

Chapter 13 변경 추적 API

 

변경 추적 API 12장에서 처음 소개되었는데, 13장에서는 변경 추적기의 나머지 기능을 살펴보는 데 집중할 것이다. 우리는 어떻게 엔티티 프레임워크가 엔티티 인스턴스들의 상태를 유지시키는 정보에 액세스할 수 있는지 배울 것이다. 또한 데이터베이스로부터의 엔티티 새로 고침을 포함하는 변경 추적 API로 수행되는 기능도 알아볼 것이다. 예제를 살펴보면서 어떻게 변경 추적 API가 일반적인 응용프로그램의 요구사항을 해결하는지 알아볼 것이다.

 

 

Chapter 14 밸리데이션 API로 유효성 검사

 

14장에서는 DbContext를 통합하고, 데이터베이스로 보내지기 전에 데이터에 대한 변경사항을 검사하는 새로운 밸리데이션 API를 소개한다. 밸리데이션 API가 기존 닷넷에 포함된 유효성 검사 기능을 활용하는 방법을 다룰 것이다. 또한 SaveChanges 파이프라인으로 통합되는 방법과 수동으로 유효성 검사를 발생시키는 방법을 배울 것이다. 유효성 검사 규칙 설정 방법과 데이터가 이런 규칙들을 위반했을 때 유효성 검사가 어떻게 에러를 알아내는지도 배울 것이다.

 

 

Chapter 15 사용자 정의 유효성 검사

 

15장에서는 14장에 선보인 밸리데이션 API의 고급 기능들을 살펴볼 것이다. 로직을 사용자 정의하는 방법과 검사될 엔티티들을 결정하는 로직을 포함한 엔티티들을 유효성 검사하는 방법을 배울 것이다. 우리는 이러한 고급 기능들로 칼럼의 유일성을 검증하는 것과 같은 컨텍스트와 상호 작용하는 유효성 검사를 작성하게 된다. 또한 검증 이외의 작업에 밸리데이션 API를 사용할 때의 위험성을 알려준다.

 

 

Chapter 16 고급 시나리오에서 DbContext 사용하기

 

16장에서는 DbContext API에서 사용 가능한 고급 기능들을 살펴볼 것이다. 우리는 단위 테스트를 위한 기술과 어떻게 데이터베이스를 접속하지 않고 작성할 수 있는지 배울 것이다. 또한 엔티티 프레임워크의 파이프라인을 우회하는 방법과 필요할 때 데이터베이스와 직접 상호 작용하는 방법도 살펴볼 것이다. DbContext API에서 가능한 기능을 벗어날 경우, 어떻게 기본 ObjectContext API를 사용하는지도 알아볼 것이다. 또한 우리의 완전한 전체 모델의 서브셋과 상호 작용할 수 있게 해주는 더 작은 범위의 컨텍스트를 생성하는 것에 대해 알아볼 것이다.

 

 

Chapter 17 엔티티 프레임워크의 차기 버전

 

2부는 엔티티 프레임워크 4.3에서 사용 가능한 DbContext API의 기능을 중심으로 쓰였다. 2부를 쓸 당시, 다음에 출시될 DbContext API의 특정 기능들을 시연하는 몇몇 프리뷰가 가능했다. 17장에서는 이와 같은 향후 출시에 대한 가능한 정보를 공유할 것이다.

 

 

 

출판사 리뷰

 

 

마이크로소프트의 주요 데이터 액세스 기술인 ADO.NET 엔티티 프레임워크는 《Entity Framework Programming(OReilly) 1판》에서 다룬 엔티티 프레임워크의 첫 번째 버전과 닷넷 프레임워크 3.5의 일부분으로 두 가지 주요한 출시를 했다. 2010년에 닷넷 4가 출시되었는데, 이것은 엔티티 프레임워크의 차기 버전인 엔티티 프레임워크 4를 포함한다. 완전히 개정된 《Entity Framework Programming 2판》은 비주얼 스튜디오 2010에서 엔티티 프레임워크를 어떻게 사용하는지 독자들에게 알려주는 데 주력했다.

 

닷넷 4가 배포되었을 때, 엔티티 프레임워크 팀은 엔티티 프레임워크의 핵심 기술인 엔티티 데이터 모델 구축의 대안을 제공하기 위해 “코드 퍼스트”라는 새로운 에디션을 이미 한창 작업하고 있었다. 코드 퍼스트는 비주얼 디자이너를 사용하지 않고도 기존 클래스에 모델을 생성할 수 있다. 동시에 팀은 엔티티 프레임워크를 사용하기 쉽게 만들기 위해 모든 역량을 동원했다. 그들은 엔티티 프레임워크에서 가장 일반적으로 사용되는 기능과 작업에 초점을 맞춘 DbContext API라는 새로운 API를 만들었다.

 

1부의 주 목적은 비즈니스 도메인의 클래스를 기반으로 모델을 만들고 구성하기 위해 코드 퍼스트를 사용하는 방법을 독자에게 알리는 것이다. 코드 퍼스트는 클래스에서 모델을 유추하는 작업의 대부분을 수행하지만, 사용자는 코드 퍼스트로 생성하는 모델에 꽤 많은 영향을 미칠 수 있다.

 

1부에서 여러분은 기본에 따라(일명 규칙) 그리고 프로퍼티, 클래스, 관계 및 (코드 퍼스트로 데이터베이스를 생성하거나 기존 데이터베이스를 사용하는 여부에 따라) 매핑하는 데이터베이스를 이해하여 구성을 수행하는 방법을 배울 것이다. 이런 일련의 지식을 통해, 여러분은 새로운 소프트웨어 프로젝트를 구축하는 작업에서 기존 클래스나 새로 생성한 클래스를 활용하면서 엔티티 프레임워크의 이점을 누릴 수 있을 것이다.

 

2부는 DbContext API의 기능 사용법을 독자에게 알려주기 위해 최선을 다하고 있다. DbContext 클래스 외에도, 변경 추적하고 동시성 충돌을 처리하는 API를 발전시킨 기능을 수행하는 DbSet과 이미 닷넷에 있는 유효성 검사 기능을 통합한 유효성 검사 API도 설명하고 있다. 여러분은 개별 개체든 개체의 그래프와 관련된 데이터든 상관없이 새로운 API를 사용해 쿼리하고 데이터를 업데이 트하는 방법을 배울 것이다. 또한 변경 추적 기능과 유효성 검사의 이점을 활용하는 법과 API에서 제공하는 고급 기능을 활용한 수많은 샘플과 장점들을 확인할 것이다.

 

신고
Trackback 0 | Comment 0

 

 

실전 SQL Server MVP 53: 53인의 MVP가 알려주는 SQL 서버의 모든 것

실전 SQL Server MVP 61: 그 두 번째 이야기

 

 

이 책들은 그냥 평범한 SQL 서버 책이 아닙니다. 세계 최고의 SQL Server 전문가들이 다년간의 경험을 기반으로 전문성과 열정을 바탕으로 집필된 도서들입니다. 이 책에 참여한 MVP들의 경력을 모두 합친다면 1,000년이 넘을 것입니다.

 

최근 출간된 실전 SQL Server MVP 61: 그 두 번째 이야기》는 1판이나 다름없는 Volume I인 실전 SQL Server MVP 53: 53인의 MVP가 알려주는 SQL 서버의 모든 것》에서 다루지 못한 주제들로 구성되어 있습니다.

 

각 도서의 세부사항은 다음 링크에서 확인이 가능합니다.

 

실전 SQL Server MVP 53: 53인의 MVP가 알려주는 SQL 서버의 모든 것

http://bjpublic.tistory.com/108, http://www.yes24.com/24/goods/4337530

 

실전 SQL Server MVP 61: 그 두 번째 이야기

http://bjpublic.tistory.com/146, http://www.yes24.com/24/goods/8254757

 

 

책의 내용은 각 분야의 최고 전문가들에게 의해 작성되었지만, 그렇다고 해서 아주 전문적이나 아주 초보적이지 않아서 모든 수준의 독자들에게 도움이 되는 알찬 내용들로 구성되어 있습니다.

 

 

신고
Trackback 0 | Comment 0

 

 

 

 

실전 SQL Server MVP 61 (Volume 2)

 

 

: 그 두 번째 이야기

 

 

저자: MVP 커뮤니티

역자: 김종하, 성지용, 이준규, 한대성, 김정선

 

출간예정일: 2013122()

정가: 42,000

 

페이지: 885

판형: 190 x 245

ISBN: 978-89-94774-28-2

원서정보: SQL Server MVP Deep Dives, Volume 2

 

 

 

책 소개

 

 

61인의 MVP가 알려주는 또 다른 모든 것

 

MVP가 되기 위해서는 깊이 있는 지식과 기술이 있어야 한다. 이 책의 집필에 참여한 61 MVP들의 SQL Server경력을 모두 합치면 1,000년이 넘는다. 이들은 SQL Server 관리나 개발, 교육, 설계 등 다양한 분야에서 활동하고 있다. 이 책은 이들의 전문성과 열정을 바탕으로 직접 집필한 60여 개의 장으로 구성되어 있다.

 

《실전 SQL Server MVP 61: 그 두 번째 이야기》는 이 책의 1판이나 다름 없는 《실전 SQL Server MVP 63: SQL 서버의 모든 것》에서 다루지 못한 주제들로 구성되어 있다. 테스팅 방법에서부터 정책 관리, 통합 서비스, 보고서, 성능 최적화 등, 다루고 있는 분야도 다양하다. 이 책은 크게 다섯 개의 주제, 즉 아키텍처 및 설계, 데이터베이스 관리, 데이터베이스 개발, 성능 튜닝과 최적화, 비즈니스 인텔리전스로 나누어져 있다.

 

 

책에서 다루는 내용

 

 

l  PowerShell을 이용한 서버 조회 및 관리

l  SSMS에서 정규식을 이용하기

l  OLTP 환경에서 트랜잭션 로그 튜닝하기

l  SSIS를 차원 데이터에 맞게 최적화하기

l  실시간 BI

l  기타

 

책의 내용은 각 분야의 최고 전문가들에 의해 작성되었다. 하지만 그렇다고 해서 아주 전문적이거나 또는 아주 초보적이지도 않으며, 모든 수준의 독자들을 대상으로 하고 있다. 61명의 SQL Server MVP들이 각 장을 맡아 집필했으며, Kalen Dalaney 외에 Louis Davidson(아키텍처 및 설계), Paul Randal Kimberly Tripp(데이터베이스 개발), Paul Nielsen(데이터베이스 관리), Brad McGehee(성능 튜닝과 최적화), Greg Low(비즈니스 인텔리전스)와 같은 여러 편집자들을 통해 편집되었다.

 

원서의 저자들은 인세 전액을 Operation Smile 기부하고 있으며, 원서의 취지에 동참하기 위해서 역자 일부의 번역 인세와 도서 판매에 대한 출판사의 수익 일부는 아름다운 재단에 기부된다.

 

독자대상

 

초중급

 

도서자료 다운로드

 

http://www.manning-source.com/sqlmvp2

 

 

 

 

저자소개

 

 

마이크로소프트 MVP 커뮤니티

 

세계의 많은 SQL Server MVP들이 참여해서 그들의 다년간의 경험을 기반으로 작성된 SQL Server 운영과 개발 관련 글들이 모여 이 책이 만들어졌다. 이 책의 집필에 참여한 61명의 MVP들은 관심 있는 주제를 각자 선정해서 자신들의 실제적이고 통찰력 있는 노하우를 공유했다. 이 책에서 소개하는 모든 주제들은 SQL Server와 관련한 다양한 경험을 가진 모든 분들에게 도움이 될 것이라고 믿는다.

 

 

 

 

역자소개

 

 

김종하

 

마이크로소프트 MACH(Microsoft Academy Collage Hire)라는 신입 공채 프로그램으로 입사하여 3년간 SQL Server Support Engineer(2004~2007)로 근무했으며 2008년부터 Technical Account Manager로 근무하면서 삼성그룹사 지원을 담당하고 있다.

 

 

성지용

 

마이크로소프트 Premier Field Engineer로 근무하고 있다. 《실전 SQL Server MVP 53(2011, 비제이퍼블릭) 외에 다수의 서적을 집필 및 번역했다. Taeyo.net의 공동 운영자이면서 mssql.org의 운영자로 활동하고 있다.

 

 

이준규

 

현재 마이크로소프트에서 Senior Premier Field Engineer로 근무하고 있으며, Microsoft Consulting Services에서 근무한 경험이 있다. MSF/CD 기반의 컴포넌트 설계 방법론》(2004, 정보문화사), 《엔터프라이즈 솔루션 아키텍처 디자인 패턴》(2003, 정보문화사) 등의 서적을 집필 또는 번역했다. Business Intelligence, Data Warehouse, Appliance에 관심이 많다.

 

 

한대성

 

마이크로소프트에서 SQL Server Field Engineer로 근무하고 있으며 SQL Server MVP(2006~2008)였다. Business Intelligence 쪽에 관심이 많으며 《SQL Server 2005 Integration Services 포켓북》을 집 필했고 본 책의 1판격인 《실전 SQL Server MVP 53(2011, 비제이퍼블릭)을 번역했다.

 

 

김정선 (39장 저자)

 

SQL Server 전문 컨설팅 회사인 ㈜씨퀄로드(www.sqlroad.com)의 대표 컨설턴트로 DB 성능 진단 및 튜닝 영역을 전문으로 하고 있으며, 최근엔 직접 개발한 SQLBigEyes(왕눈이)라는 SQL Server 성능관리 솔루션을 시장에 선보여 좋은 평가를 받고 있다. 뉴호라이즌 교육센터(it.newhorizons.co.kr)에서 직접 개발한 <쿼리 튜닝> 과정과 <초중급 관리자를 위한 DB 튜닝> 과정을 진행하고 있으며, 2002년 아시아 최초 Microsoft MVP 중의 한 명으로 선정된 이후 2012년 다시 아시아 최초 10년 연속 MVP 중의 한 명이 되었다. TechNet 뉴스그룹, Twitter, Facebook 및 블로그(blog.naver.com/visualdb)를 통해 SQL Server 컨설팅 이야기와 기술 정보를 공유하고 있다.

 

 

 

목차

 

 

PART I. 아키텍처

 

 

01 나의 키들은 어디에 있는가?

관계형 모델에서의 키

논란

논쟁

그 밖의 고려 사항

권고 사항

단순화와 미학

 

02 SQL에서의 유일성

유일성이란

유일성 설정

Unique 제약 조건 또는 Unique 인덱스?

유일성의 결과

 

03 구조적 성장의 고통

데이터 타입 관리

명명 규칙

일관성 없는 설계

정규화

기본 키와 외래 키

인덱스

 

04 좋은 관계형 데이터베이스의 특징

일관성 있는

정규화된

근본적으로 올바른

문서화된

안전한

캡슐화된

잘 수행되는

 

05 스토리지 디자인 고려 사항

올바른 RAID 종류 선택하기

파일 배치

디스크 정렬

스냅샷

복제본

 

06 잘 디자인된 스키마를 위한 일반화

정규화를 해야 하는 경우

UIX 원칙에서 배운 점

일반화의 정의

일반화의 장점

 

 

 

PART II. 데이터베이스 관리

 

 

07 테스트를 통한 가용성 높이기

테스트 ― 단지 응용프로그램 기능을 위한 것만이 아니다

연결고리 차단

아는 것이 힘이다

빨리, 그리고 자주 테스트하라

자동 테스트 vs 수동 테스트

무엇을 테스트해야 하는가?

변경 작업에도 절차가 필요하다

전체 그림 또한 기억하라

 

08 페이지 복원

다양한 복원 방법

요구 사항과 제약 사항

페이지 복원 실행

SQL Server 다음 버전의 페이지 복원 관련 새로운 기능

 

09 용량 계획

용량 계획이란 무엇인가?

현재 데이터베이스 디스크 공간 사용량 정보 수집

성능 수치

 

10 파워쉘(PowerShell) SMO를 통한 서버 점검

파워쉘과 엑셀 사용

파워쉘에서 SMO 이용

SQL Server 인스턴스와 서버 정보 수집

SQL 에이전트 작업 정보 수집

데이터베이스 정보 수집

 

11 진짜 스미스씨는 일어서 주시겠습니까?

개인 정보 데이터

오늘날의 슈퍼히어로: DBA

 

12 나만의 SQL Server 2008 성능 대시보드 만들기

DMV를 이용한 성능 관련 정보 수집

SQLCLR을 이용한 성능 카운터 값 수집

성능 모니터링을 위한 예제 솔루션

성능 모니터링을 위한 Reporting Service 이용

개선을 위한 몇 가지 아이디어

 

13 SQL Server 비용 회수

SQL Server as a Service의 관점

SQL Server as a Service란 무엇인가?

과금 모델의 개요

과금 모델의 구축

 

14 정책 기반 관리를 통한 규정 준수 모범 사례

현 시점에서 데이터베이스 운영의 본질

모범 사례에 따른 규정 준수의 중요성

중앙 관리 서버

정책 기반 관리

중앙 관리 서버와 정책 기반 관리의 통합

 

15 SQL Server Management Studio 활용

여러 대의 서버에 대해 동시에 쿼리 실행

스크립트 템플릿 생성 및 사용

다수의 개체 및 데이터 스크립팅

 

16 DBA를 위한 최고의 도구들: 다중 서버 관리 및 유틸리티 탐색기

DBA를 위한 SQL Server 2008 R2 도구

다양한 도구들

유틸리티 제어 지점을 이용한 다중 서버 관리

다중 서버 관리와 운영

권고 사항

 

17 SQL Server 운영자 과정 수강자들의 10가지 오해

단순 복구 모델

기본 데이터 정렬

테이블 단위 백업

가용성을 위한 복제 사용

쿼리 성능

데이터베이스 축소

로그인 접근 감사

비상 로그 백업

데이터베이스 기본 속성

어려움

 

18 서비스 수준 계약을 기반으로 한 SQL Server 고가용성

고가용성의 정의

비가용성의 종류

비가용성의 지표

SQL Server 고가용성 옵션

서비스 수준 계약

측정 기준

서비스 수준 계약 내부 구조

서비스 수준 계약: 고가용성에 대한 항목

 

 

 

PART III. 데이터베이스 개발

 

 

19 T-SQL: 버려야 할 잘못된 습관

SELECT *

길이를 명시하지 않고 VARCHAR를 선언한 경우

적절한 데이터 형식을 선정하지 못한 경우

날짜 영역 쿼리를 잘못 처리한 경우

ORDER BY에 대한 가정

 

20 사용자 정의 함수(UDF)의 부작용 사례

부정확한 예측

행 단위 처리

어떻게 처리해야 하나?

코드 재사용성 측면

스칼라 UDF의 마지막 사례

 

21 SSMS에서 정규식 사용

공백 줄 제거

줄 바꿈 문자 제거

여러 개의 줄을 한 줄로 축약

줄 시작 메타문자 사용

줄 끝 메타문자 사용

 

22 SQL Server 2012: T-SQL의 새로운 기능

OFFSETFETCH

SEQUENCE

EXECUTE...WITH RESULT SETS

THROW

 

23 나만의 데이터 형식 만들기

CLR 사용자 정의 데이터 형식의 구조

데이터 형식 작성: 기본

 

24 정규식을 이용한 데이터 추출

코딩 작업 전에 이해해야 할 것

솔루션

숙제

 

25 관계형 분할

관계형 분할을 왜 사용하는가?

관계형 분할의 정의

배경

단순한 두 사례의 예제 데이터

비교 차트

실제 구현 방법

일반 관계형 분할에 대한 집합 솔루션

하나의 쿼리로 모든 관계형 분할을 처리할 수 있을까?

 

26 BLOB 데이터를 SQL FILESTREAM으로 저장할 것인가?

FILESTREAM을 사용할 것인가 말 것인가?

SQL Server FILESTREAM 구성

데이터베이스 구성

FILESTREAM을 사용하는 테이블 생성

추가 고려 사항

FILESTREAM을 어떻게 사용할 것인가?

 

27 Transact-SQL 단위 테스트 작성

단위 테스트의 기본 사항

단위 테스트 실행 자동화

 

28 서비스 브로커로 비동기 작업 구현

서비스 브로커 사용 템플릿

서비스 브로커 개체 생성

 

29 HierarchyId의 효율적인 사용

데이터베이스에서의 계층 구조

HierarchyId 데이터 형식의 개요

효율적인 인덱스 구성

HierarchyId에 대한 추가 정보

 

30 서비스 브로커를 이용한 응용프로그램 확장

확장 가능한 솔루션

서비스 브로커 개체

ETL 트리거 데모

 

 

 

PART IV. 성능 튜닝과 최적화

 

 

31 하드웨어 201: 데이터베이스 서버 하드웨어 선정 및 사이징

데이터베이스 서버 하드웨어가 왜 중요할까?

스케일 업과 스케일 아웃

SQL Server와 하드웨어 선정

데이터베이스 서버 전용 하드웨어의 구성요소

Intel 프로세서와 AMD 프로세서

메모리 권장 사항

전통적인 스토리지 하위시스템

스토리지 하위시스템의 새로운 진화

벤치마킹 및 사이징 도구

 

32 파라미터 스니핑의 진실

파라미터 스니핑의 이해

파라미터 스니핑이 문제가 되는 경우

파라미터 스니핑으로 인한 문제 해결 방법

 

33 실행 계획 캐시를 파헤쳐보자

실행 계획 캐시와 관련된 동적 관리 개체

누락된 인덱스 분석

인덱스 사용량 분석

연산자 분석

인덱스 스캔 분석

매개 변수 분석

실행 계획 캐시 분석 시 고려 사항

 

34 쿼리는 뭘 기다리고 있는가? 대기와 큐 개요

전체 응답 시간에 대한 개요

wait stats란 무엇인가?

실행 모델

wait statistics(대기 통계)의 확인 및 보고서 작성

대기 시간 계산: 신호 대기 vs 리소스 대기

성능 데이터 연계

 

35 집합과 루프

루프란 무엇인가?

루프 관점

쿼리 실행 계획에 있는 루프

복잡한 쿼리에서의 루프

사용자 정의 스칼라 함수에서 묵시적으로 수행되는 루프

여러 개의 루프를 하나로 통합

루프의 병렬화

루프에서 연결된 서버 호출

작은 테이블을 이용한 루프 전개

 

36 OLTP성 작업에 대한 트랜잭션 로그 성능 튜닝

트랜잭션 로그에 병목 현상이 왜 발생할까?

트랜잭션 로그의 병목 현상을 야기하는 요소

트랜잭션 로그가 병목 현상을 겪고 있는지 확인

트랜잭션 로그 I/O 경합 현상을 처리하기 위한 전략

 

37 복잡한 코드 분할 전략

읽을 수 있는 형태로 구성

세분화: 어떻게 할 것인가?

명확한 이슈 사항 해결

조인 최적화

유사 쿼리 및 유사 서브쿼리 처리

동적 SQL

 

38 PAL을 이용한 SQL Server 성능 분석

Performance Analysis of Logs(PAL)

PAL을 이용한 SQL Server 성능 분석

성능 카운터 데이터 수집

PAL을 이용한 분석

PAL 보고서

 

39 JDBC for SQL Server 튜닝

JDBC 성능 튜닝 사례

jTDS 구성 관련 튜닝 권장 사항

Unicode Character 이슈

API Cursor 이슈

ResultSet Type 이슈

Prepared Statement Mechanism 이슈

Global Configuration 조정 방법

 

 

 

PART V. 비즈니스 인텔리전스

 

 

40 정형화된 보고서 파트 라이브러리 만들기

보고서 파트 정의

보고서 파트 라이브러리 생성 결정

보고서 파트 선택

보고서 파트 라이브러리 사용

 

41 보고서 레이아웃의 시각적인 기능 향상

대상 기반 렌더링

페이지 번호 매기기에 대한 관리

데이터 집합 간 조인

집계에 대한 집계

쓰기 모드

도메인 범위

데이터 막대

스파크라인

 

42 SSRS에서 공유 가능한 관리 코드 식 개발

보고서 식 작성

공유 가능한 관리 코드 식 만들기

보고서에서 DLL 참조

 

43 보고서에서 MDX 쿼리 사용

MDX 쿼리 작성기

보고서 만들기

매개 변수 처리

 

44 확장 가능한 보고서 서비스 팜 만들기

네트워크 부하 분산이란 무엇인가?

네트워크 준비

네트워크 부하 분산 기능 추가

NLB 클러스터 생성

NLB 클러스터에 호스트 추가

NLB 클러스터에 Reporting Services 설치

첫 번째 보고서 서비스 인스턴스 설정

두 번째 보고서 서비스 인스턴스 설정

두 번째 보고서 서비스 인스턴스 조인

조회 상태 유효성 구성

hostnameUrlRoot 설정

HTTP 401 에러 메시지 처리 방법

 

45 SSAS를 이용해서 SSRS 보고서 만들기

보고서 프로젝트 만들기

공유 데이터 원본 추가하기

공유 데이터 집합 만들기

보고서

 

46 차원 데이터 로딩 작업을 위한 SSIS 최적화 방법

주요 최적화 방법

타입 0차원

타입 1 SCD

타입 2 SCD

 

47 SSIS 구성 관리

데모용 데이터베이스 만들기

패키지 구성

연결 변경

연결 정보를 외부에서 변경할 수 있도록 설정

개선된 형태

SQL Server에 저장하도록 설정

 

48 SSIS Foreach 루프 컨테이너의 다양한 열거자

동적 구성

 

49 SSIS에서 차원 지연 처리

차원 지연 처리 시나리오

자연 키와 대리 키

데이터 구조 예제

지연 차원 처리 구현 방법

팩트 테이블 처리 시 지연 처리 차원의 멤버 처리

차원 업데이트 처리

 

50 SSIS 패키지를 이용한 업무 자동화

자동화 예제

SSIS 키 태스크와 컴포넌트

재사용 가능하며 이동 가능한 SSIS 패키지 만들기

선행 제약 조건 조절

결과 모니터링

 

51 SSIS에서 스크립트 컴포넌트 이용

SSIS 패키지의 다재 다능함

 

52 ETL 디자인 체크리스트

데이터 품질 검사

데이터 추출

변환 단계

로딩 단계

ETL 시스템 구현 및 관리

 

53 자동으로 SSAS 큐브 생성

배경

단순한 큐브 생성기인 InstantCube 프로그램 만들기

 

54 AMO, PowerShell을 이용한 SSAS 데이터베이스 스크립팅

PowerShell의 장점

컴파일 코드의 장점

처리 자동화

반복적으로 디자인 변경

 

55 MDX에서 컨텍스트 관리

명명된 집합

계산된 멤버

범위 할당

 

56 PowerPivot의 시간 관련 함수 사용

Data Analysis Expressions 소개

날짜 관련 함수

예제

 

57 실버라이트 PivotViewer를 이용한 손쉬운 BI 구축

실버라이트 PivotViewer 소개

피벗을 이용해서 무엇을 만들 수 있을까?

구현 방법

 

58 BI 프론트엔드 도구 엑셀

BI 프론트엔드 도구 선택 시 고려 사항

왜 엑셀인가?

OLAP을 원본으로 사용해야 하는가?

대시보드 구현

 

59 StreamInsight를 이용한 실시간 BI 구현

StreamInsight란 무엇인가?

이벤트와 이벤트 스트림이란 무엇인가?

배포

아키텍처

스트림에 쿼리하는 것과 RDBMS에 쿼리하는 것의 차이

StreamInsignt가 유용한 곳은 어디일까?

스트림 쿼리

 

60 BI 솔루션 개발 시 설계 고려 사항

아키텍처 설계

아키텍처 설계에 영향을 미치는 그 밖의 요인

솔루션 개발

 

 

 

이 책의 구성

 

이 책은 SQL Server와 관련된 5가지의 직업 유형에 따라 5개의 파트와 60개의 세부 장으로 구성되어 있다.

 

파트 1 데이터베이스 아키텍처와 디자인

파트 2 데이터베이스 개발

파트 3 데이터베이스 관리

파트 4 성능 튜닝 및 최적화

파트 5 비즈니스 인텔리전스

 

이 책에는 엄격한 구성 규칙이 없을 뿐만 아니라, SQL Server의 기능이나 버전에 대한 특별한 제한도 없다. 각 분야의 전문가들로부터 여러 가지 SQL Server와 관련된 주제의 글들을 받아 각 파트의 편집자들이 적절하게 분류했다.

 

 

신고
Trackback 0 | Comment 0



 

Oracle Exadata

부제: 엑사데이터 데이터베이스 구축을 위한 실용적 접근

저자: 릭 그린워드 외3

역자: 권순용, 구경서, 김지한, 이가혜, 최경환

출간예정일: 2012315()

정가: 28,000

페이지: 394p

판형: 190 x 245

ISBN: 978-89-94774-11-4 (93560)

원서정보: Achieving Extreme Performance with Oracle Exadata

 

1장 다운로드

Oracle Exadata 1장.pdf



책 소개

 오라클 엑사데이터 성능 극대화하기

 

이 책에 실린 증명된 기술들을 사용하여 오라클 엑사데이터 데이터베이스 머신에서 사용 가능한 모든 강력한 기능들을 한층 더 효율적으로 사용할 수 있다. 오라클 전문가들이 집필한 《실전 Oracle Exadata: 엑사데이터 데이터베이스 구축을 위한 실용적 접근》은 소프트웨어, 서버 및 스토리지의 완벽하고 최적화된 패키지를 어떻게 최대한 효과적으로 이용할 수 있는지를 보여준다. 이 책에는 기업형 배치, 고가용성, 관리, 백업 및 복구, 데이터 웨어하우징, 온라인 트랜잭션 프로세싱, 통합 그리고 이행의 모범적 사례들이 포함되어 있다.

 

특징

 

l  오라클 엑사데이터 데이터베이스 머신 내에서 긴밀하게 통합된 하드웨어 및 소프트웨어를 이용한다.

l  스마트 스캔, 오라클 엑사데이터 하이브리드 컬럼 단위 압축, 스토리지 인덱스, 오라클 엑사데이터 스마트 플래시 캐시 및 I/O 자원 관리자를 포함하는 오라클 엑사데이터 소프트웨어로 작업한다

l  오라클 엑사데이터 스토리지 서버를 설계, 관리 및 모니터링한다.

l  고가용성, 백업 및 복구 전략을 구현한다.

l  오라클 엑사데이터 데이터베이스 머신에 데이터 웨어하우스를 구성해본다.

l  오라클 엑사데이터 데이터베이스 머신에 온라인 트랜잭션 프로세싱(OLTP) 업무를 운영한다.

l  오라클 엑사데이터 데이터베이스 머신으로 데이터베이스를 통합하고 데이터베이스를 이행한다.

l  균형 잡힌 하드웨어 구조를 가진 오라클 엑사데이터 데이터베이스 머신을 이해한다.

 

 


저자소개

 Rick Greenwald

25년 이상 컴퓨터 산업에 적극적으로 참여했다. 오라클의 Partner Enablement의 이사로 10년 이상 근무하고 있다. 또한 O’Reilly & Associates의 베스트셀러 《Oracle Essentials, Wrox의 《Professional Oracle Programming, Wiley의 《Data Warehousing and Business Intelligence Solutions》을 포함한 15권 이상의 저자이거나 공동 저자다.

 

Robert (Bob) Stackowiak

오라클 Enterprise Solutions Group Business Intelligence Data Warehousing의 부회장으로 IT 업계에서 20년 넘게 근무했다. 그의 역할은 소프트웨어 개발, 소프트웨어 개발 관리, 시스템 엔지니어링, 판매와 판매 컨설팅, 새로운 비즈니스 혁신과 개발이다. Bob은 수많은 컴퓨터 관련 컨퍼런스에서 발표하며 전 세계의 기업에서 브리핑을 수행한다. Oracle Essentials》를 포함하여 O’Reilly의 《Oracle Database 11g, Wiley의 《Oracle Data Warehousing and Business Intelligence Solution》의 공동 저자다. 또한 데이터 웨어하우징과 컴퓨터 및 소프트웨어 기술과 관련된 논문은 The Data Warehousing 학회의 Journal of data Warehousing같은 출판물에 등재되었다.

 

Maqsood Alam

오라클의 제품 개발 수석 매니저이며 오라클 기술, 데이터베이스 전문, 최대 가용성 설계자, 데이터 웨어하우징, 데이터 마이그레이션 및 비즈니스 인텔리전스로 현장에서 15년 넘는 경험이 있는 소프트웨어 전문가다. 그의 새로운 계획은 오라클 엑사데이터를 전파하고 고객 Proof-Of-Concepts 및 벤치마크를 수행하며, 또한 대형 엑사데이터 구축을 진행 중인 고객에게 기술 지원 제공이다. 오라클 인증 전문가이며 컴퓨터 공학 학사와 석사 학위가 있다.

 

Mans Bhuller

데이터베이스, 운영체제 및 관리, 엔터프라이즈 솔루션 그룹, 오라클의 수석 관리자로서 지난 14년 동안 오라클 주식회사에서 새로운 기술의 선두에 서서 근무하고 있다. 그는 Real Application Clusters(RAC), Grid 및 개인 클라우드 같은 오라클 엑사데이터 데이터베이스 머신과 다른 기초 기술을 위해 길을 닦고 있다. Mans는 오라클 엔터프라이즈 설계자 커뮤니티에서 활동하며 수백 명의 고객을 방문했다. 최근 엑사데이터와 개인 클라우드 및 다른 교육 과정을 가르치는 내부 수업을 계획하고 있다.

 

 

역자소개

 권순용

현재 ㈜엑시엄정보시스템의 대표이사이며 엑시엄 부설 IT 교육센터 원장을 역임하고 있다. 통신, 금융, 제조, 공공등 많은 사이트에서 튜닝, 모델링, 아키텍처 등의 컨설팅 업무를 현재도 수행하고 있다. 저서로는 《고성능 데이터베이스 튜닝》, 《퍼팩트 오라클 실전 튜닝 초보자를 위한 오라클 10g, inside SQL 및 알티베이스 HDB 완벽 가이드》가 있으며 마이크로소프트웨어. DBGuide 등 많은 곳에 칼럼을 기고하고 있다. 엑시엄 부설 IT 교육센터의 강사도 겸하고 있다.

 

구경서

현재 ㈜엑시엄정보시스템에서 컨설턴트로 근무하고 있으며 마이크로 소프트웨어 칼럼리스트이기도 하다. SKT U.KEY 2.0, SKT Rater, 삼성 카드 등 통신/금융에서 튜닝, DBA 프로젝트를 수행하고 있다. 소프트웨어 공모전에 데이터베이스 부분을 담당하여 산업자원부장관, 경남도지사 상을 수여한바 있다. 저서로는 《알티베이스 HDB 완벽 가이드》가있으며 마이크로소프트웨어 칼럼도 기고하고 있다.

 

김지한

현재 SKC&C에서 데이터베이스 성능 관련 업무를 수행하고 있다. 많은 사이트에서 성능을 분석하고 최적화하는 일을 주로하며 팀에서 관련 솔루션을 만들기도 했다. 저서로는 《초보자를 위한 오라클 10g, 《고성능 데이터베이스 튜닝》이 있으며 마이크로소프트웨어 칼럼리스트이기도 하다.

 

이가혜

현재 데이터베이스 전문 컨설팅 업체인 ()엑시엄정보시스템의 책임 컨설턴트로 재직중이다. 한국특허정보원, 다음커뮤니케이션, 우체국, SKT등 여러 고객사에서 데이터베이스 성능 개선 및 DB 설계와 같은 컨설팅 업무를 수행하였다. 저서로는 《고성능 데이터베이스 튜닝과 알티베이스 HDB 완벽 가이드》가 있으며 엑시엄 부설 IT 교육센터에서 교육 강사로도 활동하고 있다.

 

최경환

데이터베이스 전문 컨설팅 회사인 ()엑시엄정보시스템에서 책임 컨설턴트로 재직중이며 SKT, 한국산업단지공단, 에버랜드 FC 등의 사이트를 대상으로 대용량 데이터베이스의 관리와 성능 고도화 업무를 담당하였다. 하드웨어와 어플리케이션의 종합적인 솔루션인 엑사데이터를 통해 대용량 데이터에 대한 해결책을 제시하고자 한다. 엑시엄 IT 부설 교육센터의 강사이기도 하며 마이크로소프트웨어 칼럼 리스트로 활동 중이다.

 

 
목차

 

 PART I 특징과 기초

 

1. 오라클, 그리고 긴밀하게 통합된 하드웨어와 소프트웨어 플랫폼

어플라이언스 같은 컴퓨팅 솔루션의 역사

통합 하드웨어 및 소프트웨어로의 오라클의 진화

오라클 엑사데이터 데이터베이스 머신의 기본 개념

소프트웨어 통합과 오라클 엑사데이터 데이터베이스 머신

관리자 역할에 대한 플랫폼의 영향

발전 방향

요약

 

2. 오라클 11g 엔터프라이즈 에디션 아키텍처

데이터 무결성과 성능

락과 락 관리방법

MVRC

플래시백(Flashback)

Real Application Clusters

RAC?

RAC와 가용성

RAC의 확장성

PART I 특징과 기초

캐시퓨전

RAC의 자원할당

RAC One

RAC와 엑사데이터 데이터베이스 머신

자동 스토리지 관리(Automatic Storage Management)

ASM이란?

ASM의 성능

ASM의 이용성

ASM 관리

파티셔닝

파티셔닝이란?

파티션 유형

다른 혜택

병렬 실행

병렬화해야 하는 작업은 어떤 것인가?

병렬 작업 방법

Partition-Wise 병렬 조인

병렬 실행의 어떤 방식으로 수행되는가?

병렬도

DOP 수정

DOP 보장

데이터 가드

압축(Compression)

데이터베이스 리소스 매니저

분석 기능

엔터프라이즈 매니저

데이터 이동

운영 체제

오라클 데이터베이스 11g의 다른 기능

요약

 

3. 엑사데이터 소프트웨어의 특징

스마트 스캔(Smart Scan)

기타 데이터 처리 효율화 기능

엑사데이터 하이브리드 칼럼 단위 압축 기법

스토리지 인덱스

엑사데이터 스마트 플래시 캐시

I/O 자원 관리자(I/O Resource Manager)

엑사데이터 스토리지 서버 소프트웨어 관리

요약

 

4. 오라클 엑사데이터 데이터베이스 머신 하드웨어 구성요소

대기 시간 및 균형

오라클 엑사데이터 데이터베이스 머신 패키지 기초

설치와 초기 구축 때 고려사항

기존 시스템을 위한 업그레이드 선택

데이터베이스 머신의 연결

가용성 높은 하드웨어의 고려사항

요약

 

 

PART II Best Practice

 

5. 엑사데이터 데이터베이스 머신 관리

엑사데이터 스토리지 서버 아키텍처

엑사데이터 스토리지 서버 관리

엑사데이터 스토리지 서버 모니터링

요약

 

6. 고가용성과 백업 전략

엑사데이터 최대 가용성 아키텍처(Exadata Maximum Availability Architecture - MAA)

엑사데이터 데이터베이스 백업과 복구의 모범 사례

요약

 

7. 오라클 엑사데이터의 데이터 웨어하우스 배치

데이터 웨어하우징의 기초

포괄적인 오라클 질의 옵티마이저

오라클 내장 분석기능

최적의 질의 반응을 위한 엑사데이터의 특수한 기능

데이터 웨어하우징 압축 기술

질의의 일반적인 일생

데이터 적재의 모범 사례

데이터 웨어하우스에서의 파티셔닝, 백업, 고가용성

데이터 모델, 비즈니스 지능 툴, 보안

데이터 웨어하우스를 위한 플랫폼 규모 산정 및 구매 타당성 제공

요약

 

8. 엑사데이터와 OLTP

OLTP 부하와 엑사데이터의 특징

엑사데이터 하드웨어와 OLTP

Oracle 11g OLTP

엑사데이터 소프트웨어와 OLTP

엑사데이터 노드와 OLTP

자기 완결형 시스템으로서의 엑사데이터

요약

 

9. 오라클 엑사데이터 데이터 머신을 이용한 데이터베이스 통합

왜 통합해야 하는가?

오라클 엑사데이터 데이터베이스 머신은 어떻게 통합화를 지원하는가?

데이터베이스 서버 통합

부하 통합 및 분리

SLA 충족과 초과

통합 디자인

요약

 

10. 엑사데이터 데이터베이스 머신으로 마이그레이션

사전 마이그레이션 단계

비 오라클 데이터베이스의 마이그레이션 절차

오라클 데이터베이스의 마이그레이션 절차

요약

 

 

Appendix 부록

 

엑사데이터 용량과 성능 명세서

엑사데이터 데이터베이스 머신 스토리지 용량

엑사데이터 스토리지 서버 성능

 

 

출판사 리뷰

 

이 책은 오라클 엑사데이터 데이터베이스 머신을 종합적으로 다루는 첫 번째 도서다. 여러분은 이 기술이 정확하게 무엇인지 더 자세하게 알고 싶은 욕구 때문에 이 책을 보지만 이 책을 읽는 여러분과 다른 독자들은 서로 다른 시작 지점에서 여기까지 도달했다. 이 플랫폼에서 얻을 수 있는 새로운 기능에 대해 궁금한 오랜 오라클 사용자이기 때문에 엑사데이터 데이터베이스 머신에 대해 조사했을 수도 있다. 또는 관계형 데이터베이스 시장 같은 성숙한 시장에서는 성능 향상 규모의 주문을 제공할 새로운 플랫폼이 드물기 때문에 의구심을 가지고 엑사데이터에 접근했을 수도 있다.

 

이 책은 여러분의 지식을 확충하고 광고에 대해 입증해가며(적어도 그 일부에 대해서) 엑사데이터 기술을 이해하는 데 도움을 줄 것이고 이러한 자랑스런 성능 향상이 실제로 어떻게 수행되는지 보여줄 것이다.

 

엑사데이터란?

 

가장 기본적인 이 질문을 완벽하게 설명하려면 지면을 많이 할애해야 하지만, 엑사데이터 데이터베이스 머신은 장님 코끼리 만지기 식과 같다. 엑사데이터는 스토리지 하드웨어의 새로운 유형인가? 엑사데이터는 최신이고 가장 훌륭한 하드웨어 구성 요소로 구축된 어플라이언스(Appliance)와 유사한가? 엑사데이터의 주요 소프트웨어는 어떤 새로운 방식으로 하드웨어 구성 요소를 사용하는가? 엑사데이터는 한마디로 최적화로 구성된 오라클로만 된 하드웨어와 소프트웨어 스택인가?

 

이들 질문 가운데 어떤 것이 엑사데이터를 나타내는가?”라는 질문의 답은 간단하다 - 모두 그렇다”. 엑사데이터 데이터베이스는 이렇게 설명되어왔고 더 많을 수도 있다.

 

확실히 인지하고 넘어가야 할 엑사데이터 데이터베이스 머신의 한 가지는 단순성이다. 엑사데이터 데이터베이스 머신은 사전 구성 및 최적화되어 있고, 수십 년 동안 제작되어온 오라클 소프트웨어와 하드웨어 대해 최상의 사례를 구현하려고 설계되었다. 대부분의 경우 엑사데이터 데이터베이스 머신은 잘 작동한다.

 

이 단순성은 엑사데이터 기술- 단순히 잘 작동하는 것 -의 내부 작업의 방법이 다소 신비의 베일에 가려 있어 사용자 커뮤니티에서 호기심의 원인이었다. 이 책은 엑사데이터 데이터베이스 머신이 얼마나 혁신이고, 강력하고, 멋진지 여러분에게 주지하면서 이러한 베일을 벗기는 데 도움을 줄 것이라고 기대한다.





신고
Trackback 0 | Comment 0


 

 



비제이퍼블릭의 보안 도서 시리즈인 "철통보안 시리즈"의 첫 번째 도서인 《철통보안, SQL Injection: SQLi 공격과 방어의 원리》가 5월 말에 출간될 예정입니다.

저자: 저스틴 클락

역자: 김삼영, 김상훈, 김승관, 박동국, 손대홍, 송대근

출간일: 2011526

정가: 30,000

페이지: 471p

판형: 190 x 245

ISBN: 978-89-94774-02-2(13560)
예약구매하기 [인터파크] [알라딘] [교보문고]  [YES24]

IT 종사자, 특히 보안, DB 관련 분야에 계신다면 누구나 한 번 쯤 들어봤을 SQL Injection, 대응만 잘 한다면 방어하기도 쉽지만 여전히 해커들이 제일 많이 노리고 있는 취약점입니다. SQL 인젝션의 A ~Z, 기초부터 심오한 고급 기법까지 집중적으로 다루는 《철통보안, SQL Injection: SQLi 공격과 방어의 원리》가 여러분들의 데이터를 보호하는 데 큰 도움이 되었으면 합니다.



샘플 챕터

철통보안, SQL Injection 1장.pdf

 

*본 파일은 최종 출간 이전의 파일로써 오타 및 수정되야 할 사항이 있을 수 있음을 알려드립니다.



책 소개

충분히 위험한 책, SQLi 공격과 방어의 원리

 

SQL Injection 공격의 피해와 위협에 대응하기 위한 취약점을 이해하고 찾아내어, 그들을 활용하여 공격을 방어할 수 있는 완벽 지침서.

 

《철통보안, SQL Injection: SQLi 공격과 방어의 원리》 덕분에 모의해킹 수행자들이 인터넷에 산재한 개별 자료의 한계를 넘을 수 있게 되었다.
                                                              - DEVON KEARNS, 보안분석가


SQL Injection
은 인터넷 상에 존재하는 가장 위험한 취약점 중의 대표적인 유형으로 잘 알려져 있긴 하지만, 정확한 공격원리를 이해하고 있는 사람은 매우 드물다. 이 책은 실제 공격원리에 대한 이해를 돕기 위한 모든 관련자료와 정보를 포함하고 있다. 오래 전부터 그 취약점의 가능성이 존재해 왔지만 최근 그 위협이 급증하고 있다. 이 책은 최근 알려진 공격들에 대한 많은 정보와 공격 기법, 그리고 취약점에 대한 SQL Injection 전문가들의 놀랄만한 통찰력을 포함하고 있다.

 


특징

SQL Injection이란 무엇인지 덧셈과 뺄셈을 하듯 공격원리와 작동원리를 이해한다.

SQL Injection의 취약점을 검색하고 검증하여 자동으로 찾아낸다.

팁과 트릭을 통해 코드 내에 숨은 SQL Injection의 취약점을 발견한다.

SQL Injection을 이용한 공격을 활용한다.

SQL Injection 공격을 방어하기 위한 설계를 한다.


독자대상

초중급



저자소개

저스틴 클락(Justin Clarke)

고담 디지털 사이언스(Gotham Digital Science)의 공동 투자자이자 이사다. 고담 디지털 사이언스는 정보보안컨설팅 회사로 클라이언트의 보안 취약점 점검과 보안위협관리를 수행한다. 저자는 미국과 영국, 뉴질랜드에서 20년 이상 대규모 금융권에서부터 일반 소규모 사이트까지 네트워크와 웹 어플리케이션, 무선네트워크의 보안 점검을 수행해왔다.

또한 다른 몇 개의 컴퓨터 보안 서적의 공동 저자이며 블랙햇, EuSecWest, OSCON, ISACA, RSA, SANS, OWASP, the British Computer Society 등 다수의 보안 컨퍼런스와 세미나에서 발표자로 활동했다. 공개소스 기반의 SQLBrute blind SQL Injection 공격 툴의 제작자이기도 하며 OWASP의 챕터 리더로 활동하고 있다.




역자소개

김삼영 (안철수 연구소 CERT팀 연구원)

선문대학교 전자공학과를 졸업하였고, 현재 안철수연구소 CERT팀에서 근무하고 있다. 관심 분야는 인터넷 보안, 악성코드 분석, Digital Forensic이다.

 

김상훈 (안철수연구소 CERT팀 연구원)

창원대학교 컴퓨터공학과를 졸업하고 현재 안철수연구소 CERT팀에서 근무 중이다. 정보보호동아리 Casper 및 창원대학교 학내 망 침해사고대응 팀에서의 활동을 통해 보안에 대한 관심을 갖게 되었다. 웹 보안 및 악성코드 분석에 관심이 많다.

 

김승관 (안철수연구소 CERT팀 연구원)

대진대학교 컴퓨터공학과를 졸업하였다. 웹 개발 및 서버관리를 하였고, 사이트 관리 중 빈번히 발생되는 침해사고로 보안에 관심을 가지게 되었다. 현재 안철수 연구소 CERT팀에 근무 중이며, 안전한 사이트 개발을 위한 기술에 관심을 가지고 연구중이다.

 

박동국 (안철수연구소 CERT팀 연구원)

대전대학교 전상정보보호학과를 졸업하였으며, 네트워크로 IT를 시작하여 보안에 입문하게 되었다. 현재 안철수 연구소 CERT팀에서 근무하고 있으며, 좌우명은 열심히 살자이다.

 

손대홍 (안철수연구소 CERT팀 연구원)

창원대학교 컴퓨터공학과 및 학내 망 CERT로 활동하였으며 현재 안철수연구소 CERT팀에 근무 중이다. 정보보호동아리 CASPER 활동을 통해 보안 공부를 시작하였고, 보안 솔루션 기획 및 개발에 관심이 많다. 지금은 CERT팀에서 고객 접점에서 주로 보안 이벤트 대응 업무를 맡고 있다.

 

송대근 (안철수연구소 CERT팀 주임연구원)

서경대학교 인터넷정보학과를 졸업하고 현재 안철수연구소 CERT팀에 근무중이다. 네트워크와 웹 프로그램을 통해 보안 업무에 입문하게 되었고, IDS&IPS 이벤트분석과 시스템 분석 업무를 하고 있다.저서로 지앤선 출판사의 『해킹, 침해사고분석』이 있고 ㈜써트아카데미(www.certacademy.co.kr)에서 전임강사로 침입탐지시스템 이해와 이벤트 대응에 대해 강의한다.



목차

Chapter 1. SQL Injection이란?

Chapter 2. SQL Injection 테스트

Chapter 3. SQL Injection에 취약한 소스코드 검토

Chapter 4. SQL Injection 공격 

Chapter 5. Blind SQL Injection 공격

Chapter 6. 운영체제 공격
Chapter 7. 고급 기법
Chapter 8. 코드레벨 방어
Chapter 9. SQL Injection 테스트
Chapter 10. 참고 항목

더보기


 

SQL Injection 취약점은 아주 오래 전부터 존재해 왔다. 하지만 최근에 이슈가 되는 것은 자동화 공격툴과 웜 또는 바이러스 형태의 대량 공격으로 그 피해를 입은 기업 또는 사이트가 최근 몇 년간 급증하였기 때문이다. 이로 인해 SQL Injection 공격은 웹 해킹 유형의 가장 큰 화두가 되었고, 무수히 많은 보안 세미나, 컨퍼런스, 보안문서에 단골 손님으로 등장하기 시작했다. 하지만 단편적인 부분의 SQL Injection에 대해 다뤄지고 근본적인 원인에 대한 설명은 찾기가 힘들다.

SQL Injection이 무엇인가요?

이 물음에 대한 답을 찾기 위해 여러분이 이 책을 선택했을 수도 있다. 이 물음에 그 누구도 혹은 그 어느 인터넷 검색결과도 명확하게 알려주지 못한다. 일반적으로 “MS-SQL 데이터베이스의 취약점으로 발생하고 시스템 명령이나 DB 정보를 획득한다”라고 어디에나 쓰여있지만 실제로 어떻게 시스템 명령을 실행하고, 어떻게 DB 정보를 획득하는지 자세한 방법이나 실행원리에 대해 설명한 문서는 드물다.

SQL InjectionMS의 데이터베이스에만 존재하는 취약점이 아니다. 웹 사이트에만 존재하는 취약점도 아니다. 웹 어플리케이션, ERP, 일반 응용프로그램 등 다수의 데이터베이스 기반 환경에 존재하고 아주 오래 전부터 존재해 왔다. 이러한 보편적인 공격에 대해 자세히 모르고 코딩을 하거나 시스템의 보안 설정을 한다면 우회할 여지를 남기게 될 수 있다.

이 책에서는 다수의 코드 샘플과 가상 시나리오를 통해 여러분에게 SQL Injection이 발생하는 원리에 대해 설명을 할 것이다. 하지만 그렇다고 모든 종류의 SQL Injection 공격 유형과 취약점을 알려줄 수는 없다. 여러분이 어릴 적 숫자를 더하고 빼는 방법을 배웠듯이 SQL Injection을 설명할 것이다. 또한 이 책에서 제공하는 풍부한 자료나 퀵 가이드는 코딩을 하거나 보안설정을 변경할 때 옆에 두고 참고할 수 있는 자료가 될 것이다.

-송대근

 


SQL Injection은 최근 꾸준한 공격 추세를 보이고 있다. SQL Injection은 별다른 도움 없이 툴을 사용하는 것으로 간단히 공격할 수 있지만, 이에 대한 대비는 쉽지 않다. 또한 쉽게 공격할 수 있는데 비해 초래되는 위협은 너무나도 크다. 각종 매체를 통해 이 위험성에 대해 알려진 상태이지만 아직도 취약한 웹 어플리케이션이 많이 존재한다. CERT팀 업무를 하면서 가장 많이 느끼는 것은 관리자들 혹은 개발자들 스스로가 이러한 것에 대한 인식이 부족하다는 것이다. 저자는 이 책을 통하여 SQL Injection에 대한 기본 원리부터 자동화 툴 이용까지 상세하게 정리하였다.

이 책을 통하여 새로운 SQL Injection 기법이 탄생할 수도 있겠지만, 누구보다도 관리자 혹은 개발자들에게 반드시 필요하다고 생각한다. 지피지기면 백전백승이라 하였다. 이 책을 좋은 용도로 잘 활용하여 누구든 SQL Injection에 대하여 쉽게 이해하고 그를 막을 수 있기를 바란다.


-
박동국




아마존 리뷰


충분히 위험한 책
By Hugh K. Boyd

 방어하기가 그리 어렵지 않은 SQL Injection이 여전히 공격에 많이 사용되고 있다는 것은 놀랄만한 일이다. 그러한 이유는 많은 소프트웨어 개발자들이 SQL Injection에 대해 잘 이해하지 못하고 있기 때문이다.

 

이 책이 빛을 발하는 이유는 blind SQL injection, 2SQL injection, 그리고 혼합된 공격과 같은 주제에 대해 매우 심오한 내용을 다루기 때문이다. 또한, 그만큼 공격자들에게 알려지면 안 되는 내용들을 포함하기도 한다.

내가 이 책에 별 5개의 평점을 주는 이유는 매우 심오하고 정확한 내용들과 자동화 SQL Injection 툴들에 대해 다루고, 가장 일반적으로 사용되는 Oracle, MS SQL, MySQL에 대하여 다루기 때문이다
.

 

Best Book Bejtlich Read 2009 선정을 위한 후보 도서 By Richard Bejtlich
《철통보안