book

[BOOK] SQL로 시작하는 데이터 분석

[BOOK] SQL로 시작하는 데이터 분석 – 캐시 타니무라 지음 / 박상근 옮김

[BOOK] SQL for Data Analysis
[BOOK] SQL for Data Analysis

부제: “실무에 꼭 필요한 분석 기법 총정리! 실전 데이터셋으로 배우는 시계열, 코호트, 텍스트 분석”

빅데이터를 활용하는 시대입니다.
많은 데이터를 수집하고 활용하기 위한 다양한 방법이 존재합니다.
저자는 데이터 분석에 SQL을 주 무기로 사용중이라고 합니다.

데이터와 관련된 중요한 기술 변화 (p. 33)
1. 엄청나게 증가한 데이터 양 : 2025년에 전 세계에 저장되는 데이터 양이 175제타바이트
2. 클라우드 등장에 따른 데이터 저장 및 연산 비용 감소
3. 워크로드를 여러 머신에 나눠서 수행하는 분산 컴퓨팅

작은 데이터는 액셀과 같은 오피스웨어 제품을 사용해서 분석하고 활용할 수 있지만 데이터의 양이 많아지면 엑셀로 다루기 어렵습니다.
행-열로 구성된 일정규모 이상의 데이터라면 관계형 데이터베이스에서 다루는 것이 더 수월합니다.
비정형 데이터를 저장하는 NoSQL을 사용하거나 데이터 레이크를 구성하는 경우에도 직접 데이터를 활용하는 경우보다 한 번 가공하여 데이터 웨어하우스를 구축해서 사용하는 경우가 많습니다.
가공된 데이터로 데이터 웨어하우스를 구축할 때 관계형 데이터베이스를 많이 사용합니다.
모바일 기기 등에서 간편하게 사용하는 SQLite도 관계형 데이터베이스입니다.
이런 관계형 데이터베이스에서 데이터를 다루기 위한 언어가 SQL이니 저자가 데이터 분석에 SQL을 주 무기로 사용 할 수 있는 것 같습니다.

책에서는 데이터 분석에 대한 기본 개념, SQL에 대한 기초 개념, 데이터를 준비하는 방법, 준비된 데이터를 활용하여 여러가지 분석을 하는 방법을 설명합니다.
데이터 분석에 대한 내용은 실제 데이터셋을 이용해서 설명하기 때문에 차근차근 따라가면서 배우면 됩니다.
다만, SQL에 대한 기본적인 문법은 따로 공부하고 이 책을 읽어야 합니다. 책의 SQL 예제를 이해해야 다양한 분석 방법을 익힐 수 있습니다.
책을 읽어보면 ‘SQL 숙련자를 위한 책’, ‘고급 SQL 사용자를 위한 자료’가 서문에 언급된 이유를 알 수 있습니다.

앞부분의 데이터를 준비하는 내용과 마지막의 데이터셋을 생성하는 방법에 대한 부분을 보면, 잘 다듬어진 데이터가 있어야 좋은 분석 결과를 얻을 수 있다고 이야기합니다.
SQL은 분석을 위한 도구로 사용할 수도 있지만 데이터를 생성하고 잘 다듬는데 활용 할 수도 있습니다.

쓰레기를 넣으면 쓰레기가 나온다.
Garbage in, garbage out (p. 62)

SQL에 대한 기본 문법을 익혔다면 이 책을 통해 SQL 숙련자로 거듭나 보는 것은 어떨까요?

“한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다.”


  1. 데이터 분석은 의미상으로는 이미 발생한 일에 관한 히스토리 데이터를 분석하는 일이지만 과거 데이터로 미래를 꼭 예측할 수 있는 것은 아닙니다. (p. 21)
  2. 데이터 기반의 사고방식을 갖추는 일이 짧은 과정이라면 그 결과를 수확하는 일은 긴 여정입니다. (p. 22)
  3. 데이터 분석을 위해 관계형 데이터베이스에 데이터를 저장하는 것은 합리적인 선택입니다. (p. 27)
  4. 데이터 웨어하우스, 데이터 스토어, 데이터 레이크의 정의 (p. 30)
  5. 데이터베이스에 데이터가 저장됐으면 다음 단계는 쿼리와 분석입니다. SQL로 탐색, 프로파일링, 정제, 셰이핑, 분석을 수행합니다. (p. 31)
  6. 행 기반 데이터베이스는 오랫동안 데이터 웨어하우스를 구축하는 유일한 방법이었습니다. (p. 33)
  7. 데이터 분석을 빠르게 하려면 열 기반 데이터베이스가 더 나은 선택입니다. (p. 36)
  8. 데이터 레이크 같은 파일 저장 시스템은 데이터 웨어하우스 대신 데이터를 저장하는 대표적인 대안입니다. (p. 37)
  9. 데이터 사전, 즉 각 필드에 대한 설명, 데이터 수집 방법, 데이터 간의 관계 등이 깔끔하게 정리된 문서나 저장소 등이 있으면 데이터 준비가 훨씬 수월합니다. (p. 41)
  10. 필자가 데이터셋을 다룰 때 제일 먼저 하는 일은 프로파일링입니다. (p. 52)
  11. 데이터 품질 확보는 가장 어려우면서도 까다로운 분석 과정입니다. (p. 62)
  12. null은 데이터베이스에서의 결측값을 표현하기 위해 도입한 개념입니다. (p. 74)
  13. null의 콘셉트와 비슷하면서도 미묘하게 다른 값으로 ‘빈 문자열’이 있습니다. (p. 75)
  14. 결측데이터는 존재 자체로도 의미를 지닐 수 있으므로, 무조건 결측 데이터가 없도록 만들거나 다른 값으로 채워서는 안 됩니다. (p. 79)
  15. 모든 경우에 적합한 한 가지 정답은 없습니다. 다만 데이터가 어떻게 사용될지 미리 알고 그에 맞게 데이터를 적절히 셰이핑하면 됩니다. (p. 85)
  16. 예측은 시계열 분석의 주요 목표 중 하나입니다. (p. 95)
  17. 시계열 데이터에서 데이터의 트렌드를 분석해보고 싶은 경우가 있습니다. 여기서 트렌드란 데이터가 움직이는 방향을 의미합니다. (p. 113)
  18. 활성 사용자 크기를 측정하는 지표인 DAU, WAU, MAU는 윈도우 롤링 기법을 사용합니다. (p. 138)
  19. 고객을 여러 집단으로 나누고 집단별 행동 변화를 추적하는 일은 다양한 편향을 제거하고 데이터를 분석하는 데 강력한 방법입니다. (p. 167)
  20. 코호트 분석은 시간에 따른 개체 그룹 간 차이를 비교하는 방법입니다. (p. 168)
  21. 코호트 분석과 대조적으로, 크로스 섹션 분석은 특정 시점을 기준으로 개인 또는 그룹 간 차이를 비교합니다. (p. 223)
  22. 텍스트 분석이란 텍스트 데이터에서 의미와 인사이트를 도출하는 과정입니다. (p. 236)
  23. 이상이란 동일 그룹 내 다른 멤버와 다른 특징을 말합니다. (p. 299)
  24. 이상 거래 탐지나 침입 탐지와 같이 이상 유무를 즉시 파악해야 하는 경우에는 SQL이 좋은 선택이 아닐 수 있습니다. (p. 301)
  25. 실험 분석을 통해서 인과관계를 밝히는 방법을 알아봅니다. (p. 349)
  26. 실험은 인과관계를 이해하는 데 좋은 방법이지만 제대로 진행되지 않는 경우도 많습니다. (p. 362)
  27. 무작위 실험은 상관관계를 넘어 인과관계까지 알아보기 위해 널리 사용하지만 수행하기 어려운 경우가 많습니다. (p. 368)
  28. 다양한 추가 분석을 위한 범용 데이터셋을 생성하는 데도 SQL을 활용합니다. (p. 375)
  29. 쿼리는 필요할 때 실행해 원하는 결과를 얻으며, 데이터 엔지니어나 쿼리 프로세스가 달라지더라도 동일한 결과를 반환합니다. (p. 376)
  30. 적절하고 일관적인 포매팅은 SQL 코드를 읽기 쉽게 유지하는 데 좋은 방법입니다. (p. 383)
  31. 복잡한 데이터셋을 생성할 때는 정확한 로직을 구성하고 쿼리 성능을 최적화하는 일이 중요합니다. (p. 386)
  32. 결과 데이터셋 크기를 줄이기 위해 원본 데이터를 샘플링하는 방법을 알아봅시다. (p. 403)
  33. 데이터셋에 개인 정보 관련 속성이 포함돼 있다면 데이터 수집 및 사용과 관련한 윤리적, 규제적 문제가 없는지 살펴야 합니다. (p. 411)

BOOKSTORE : YES24, 알라딘

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: