본문 바로가기

추천 검색어

실시간 인기 검색어

SQL AntiPatterns

빌 카윈 지음 | 윤성준 옮김
인사이트

2026년 02월 05일 출간

국내도서 : 2011년 06월 27일 출간

(개의 리뷰)
( 0% 의 구매자)
eBook 상품 정보
파일 정보 PDF (2.62MB)   |  431 쪽
ISBN 9788966260508
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를​ 읽을 수 있습니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.

PDF 필기가능 (Android, iOS)
소득공제
소장
정가 : 20,800원

쿠폰적용가 18,720

10% 할인 | 5%P 적립

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

카드&결제 혜택

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
  • 리뷰 작성 시, e교환권 추가 최대 200원

작품소개

이 상품이 속한 분야

『SQL ANITPATTERNS』는 일반적으로 사용하는 SQL문이 개발자를 얼마나 수렁에 빠뜨릴 수 있는지 보여준 뒤, 이를 해결할 정석을 가르쳐 준다. 또한 다음과 같은 의문에 대해서도 근거가 명확한 답안을 제시한다. 25가지 안티패턴과 이에 대한 해법을 읽으면서, 20년간 데이터베이스 분야에서 개발자들의 질문에 답해 온 저자의 내공을 전수받을 수 있을 것이다.
옮긴이의 글
한국어판 지은이의 글

<b>1장 개요</b>
1.1 대상 독자
1.2 이 책에 있는 내용
1.3 이 책에 없는 내용
1.4 일러두기
1.5 예제 데이터베이스
1.6 감사의 글

<b>2장 무단횡단</b>
2.1 목표: 다중 값 속성 저장
2.2 안티패턴: 쉼표로 구분된 목록에 저장
2.3 안티패턴 인식 방법
2.4 안티패턴 사용이 합당한 경우
2.5 해법: 교차 테이블 생성

<b>3장 순진한 트리</b>
3.1 목표: 계층구조 저장 및 조회하기
3.2 안티패턴: 항상 부모에 의존하기
3.3 안티패턴 인식 방법
3.4 안티패턴 사용이 합당한 경우
3.5 해법: 대안 트리 모델 사용

<b>4장 아이디가 필요해</b>
4.1 목표: PK 관례 확립
4.2 안티패턴: 만능키
4.3 안티패턴 인식 방법
4.4 안티패턴 사용이 합당한 경우
4.5 해법: 상황에 맞추기

<b>5장 키가 없는 엔트리</b>
5.1 목표: 데이터베이스 아키텍처 단순화
5.2 안티패턴: 제약조건 무시
5.3 안티패턴 인식 방법
5.4 안티패턴 사용이 합당한 경우
5.5 해법: 제약조건 선언하기

<b>6장 엔터티-속성-값</b>
6.1 목표: 가변 속성 지원
6.2 안티패턴: 범용 속성 테이블 사용
6.3 안티패턴 인식 방법
6.4 안티패턴 사용이 합당한 경우
6.5 해법: 서브타입 모델링

<b>7장 다형성 연관</b>
7.1 목표: 여러 부모 참조
7.2 안티패턴: 이중 목적의 FK 사용
7.3 안티패턴 인식 방법
7.4 안티패턴 사용이 합당한 경우
7.5 해법: 관계 단순화

<b>8장 다중 칼럼 속성</b>
8.1 목표: 다중 값 속성 저장
8.2 안티패턴: 여러 개의 칼럼 생성
8.3 안티패턴 인식 방법
8.4 안티패턴 사용이 합당한 경우
8.5 해법: 종속 테이블 생성

<b>9장 메타데이터 트리블</b>
9.1 목표: 확장 적응성 지원
9.2 안티패턴: 테이블 또는 칼럼 복제
9.3 안티패턴 인식 방법
9.4 안티패턴 사용이 합당한 경우
9.5 해법: 파티션과 정규화

<b>10장 반올림 오류</B>
10.1 목표: 정수 대신 소수 사용
10.2 안티패턴: FLOAT 데이터 타입 사용
10.3 안티패턴 인식 방법
10.4 안티패턴 사용이 합당한 경우
10.5 해법: NUMERIC 데이터 타입 사용

<b>11장 31가지 맛</b>
11.1 목표: 칼럼을 특정 값으로 제한하기
11.2 안티패턴: 칼럼 정의에 값 지정.
11.3 안티패턴 인식 방법
11.4 안티패턴 사용이 합당한 경우
11.5 해법: 데이터로 값을 지정하기

<b>12장 유령 파일</b>
12.1 목표: 이미지 또는 벌크 미디어 저장
12.2 안티패턴: 파일을 사용해야 한다고 가정한다
12.3 안티패턴 인식 방법
12.4 안티패턴 사용이 합당한 경우
12.5 해법: 필요한 경우에는 BLOB 데이터 타입을 사용하라

<b>13장 인덱스 샷건</B>
13.1 목표: 성능 최적화
13.2 안티패턴: 무계획하게 인덱스 사용하기
13.3 안티패턴을 인식하는 방법
13.4 안티패턴 사용이 합당한 경우
13.5 해법: 인덱스를 MENTOR하라

<b>14장 모르는 것에 대한 두려움</b>
14.1 목표: 누락된 값을 구분하기
14.2 안티패턴: NULL을 일반 값처럼 사용
14.3 안티패턴 인식 방법
14.4 안티패턴 사용이 합당한 경우
14.5 해법: 유일한 값으로 NULL을 사용하라

<b>15장 애매한 그룹</b>
15.1 목표: 그룹당 최댓값을 가진 행 얻기
15.2 안티패턴: 그룹되지 않은 칼럼 참조
15.3 안티패턴 인식 방법
15.4 안티패턴 사용이 합당한 경우
15.5 해법: 칼럼을 모호하게 사용하지 않기

<b>16장 임의의 선택</b>
16.1 목표: 샘플 행 가져오기
16.2 안티패턴: 데이터를 임의로 정렬하기
16.3 안티패턴 인식 방법
16.4 안티패턴 사용이 합당한 경우
16.5 해법: In No Particular Order

<b>17장 가난한 자의 검색 엔진</b>
17.1 목표: 전체 텍스트 검색
17.2 안티패턴: 패턴 매칭 사용
17.3 안티패턴 인식 방법
17.4 안티패턴 사용이 합당한 경우
17.5 해법: 작업에 맞는 올바른 도구 사용하기

<b>18장 스파게티 쿼리</b>
18.1 목표: SQL 쿼리 줄이기
18.2 안티패턴: 복잡한 문제를 한 번에 풀기
18.3 안티패턴 인식 방법
18.4 안티패턴 사용이 합당한 경우
18.5 해법: 분할해서 정복하기

<b>19장 암묵적 칼럼</b>
19.1 목표: 타이핑 줄이기
19.2 안티패턴: 지름길만 좋아하면 길을 잃는다
19.3 안티패턴 인식 방법
19.4 안티패턴 사용이 합당한 경우
19.5 해법: 명시적으로 칼럼 이름 지정하기

<b>20장 읽을 수 있는 패스워드</b>
20.1 목표: 패스워드를 복구하거나 재설정하기
20.2 안티패턴: 패스워드를 평문으로 저장하기
20.3 안티패턴 인식 방법
20.4 안티패턴 사용이 합당한 경우
20.5 해법: 패스워드의 소금 친 해시

<b>21장 SQL 인젝션</b>
21.1 목표: 동적 SQL 쿼리 작성하기
21.2 안티패턴: 검증되지 않은 입력을 코드로 실행하기
21.3 안티패턴 인식 방법
21.4 안티패턴 사용이 합당한 경우
21.5 해법: 아무도 믿지 마라

<b>22장 가상키 편집증</b>
22.1 목표: 데이터 정돈하기
22.2 안티패턴: 모든 틈 메우기
22.3 안티패턴 인식 방법
22.4 안티패턴 사용이 합당한 경우
22.5 해법: 극복하라

<B>23장 나쁜 것 안 보기</B>
23.1 목표: 코드를 적게 작성하기
23.2 안티패턴: 짚 없이 벽돌 만들기
23.3 안티패턴 인식 방법
23.4 안티패턴 사용이 합당한 경우
23.5 해법: 에러에서 우아하게 복구하기

<b>24장 외교적 면책특권</b>
24.1 목표: 관례 따르기
24.2 안티패턴: SQL을 2등 시민으로 만들기
24.3 안티패턴 인식 방법
24.4 안티패턴 사용이 합당한 경우
24.5 해법: 초당적 품질 문화 확립

<b>25장 마법의 콩</b>
25.1 목표: MVC에서 모델 단순화하기
25.2 안티패턴: 액티브 레코드인 모델
25.3 안티패턴을 인식하는 방법
25.4 안티패턴 사용이 합당한 경우
25.5 해법: 액티브 레코드를 가지는 모델

<B>부록 A 정규화 규칙</b>
A.1 관계형의 뜻
A.2 정규화에 대한 미신
A.3 정규화란?
A.4 상식

<b>부록 B 참고문헌</b>

<b>“다들 이렇게 쓰는데 뭐가 잘못이라는 거야?”</b>

모두가 한다고 해서 반드시 옳은 방법은 아니다. 특히 SQL에서는 더욱 그렇다. 이 책은 일반적으로 사용하는 SQL문이 개발자를 얼마나 수렁에 빠뜨릴 수 있는지 보여준 뒤, 이를 해결할 정석을 가르쳐 준다. 또한 다음과 같은 의문에 대해서도 근거가 명확한 답안을 제시한다.

- 이 상품에 대한 태그를 쉼표로 구분해서 저장하면 될까? (2장 「무단횡단」)
- PK가 필요 없다고들 하던데 정말일까? (4장 「아이디가 필요해」)
- 소수 값을 저장하려면 SQL에서도 FLOAT을 사용하면 될까? (10장 「반올림 오류」)
- NULL = NULL이라고 비교했는데 왜 TRUE가 아닐까? (14장 「모르는 것에 대한 두려움」)
- 쿼리에 칼럼 이름을 다 쓰기 귀찮은데, 그냥 *로 해도 되겠지? (19장 「암묵적 칼럼」)

25가지 안티패턴과 이에 대한 해법을 읽으면서, 20년간 데이터베이스 분야에서 개발자들의 질문에 답해 온 저자의 내공을 전수받을 수 있을 것이다.

* <b>안티패턴</B> : 널리 사용되지만 실제로는 좋지 않은 패턴

이 책에 수록된 모든 예제 코드는 출판사 스프링노트인 http://insightbook.springnote.com/pages/7943686에서 다운받을 수 있습니다.

인물정보

저자(글) 빌 카윈

저자 빌 카윈(Bill Karwin)은 MySQL, Interbase와 같은 관계형 데이터베이스 전문가다. 20년 이상 소프트웨어 엔지니어, 컨설턴트로 일하며 Zend 프레임워크, Interbase 데이터베이스, Enhydra 자바 애플리케이션 서버 등을 개발하고 기술 지원을 수행했으며, 자신의 지식을 공유해 다른 프로그래머들이 생산적으로 일할 수 있도록 도왔다. 또한 SQL에 대한 수천 개의 질문에 답하면서 개발자들이 흔히 실수하는 문제에 대한 독보적인 시각을 갖게 되었고, 이런 실수를 정리해 『SQL AntiPatterns』를 썼다.

역자 윤성준은 ThinkFree에서 오피스에 사용되는 공통 모듈 및 GUI 컴포넌트, WebDAV 클라이언트/서버 등을 개발했다. LG CNS에서 DBA로 활동하며 다양한 금융 프로젝트에 참여했고, 이니시스에서 결제 시스템 DB를 관리하며 DB 동기화 프로그램을 개발하기도 했다. 현재 사이냅소프트에 근무한다. 『Java 세상을 덮친 Eclipse』를 지었으며, 『리팩토링』 『생각하는 프로그래밍』 『소프트웨어 공학의 사실과 오해』 등을 번역했다.

이 상품의 총서

Klover리뷰 (0)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 5,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (2024년 9월 30일부터 적용)
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 5,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (2024년 9월 30일부터 적용)
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    SQL AntiPatterns 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    SQL AntiPatterns 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    SQL AntiPatterns
    저자 모두보기
    저자(글)
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글바이액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)