데이터 분석과 SQL 배워야 하는 이유

인사이트

데이터 분석과 SQL 배워야 하는 이유

2022년 08월 03일

데이터 분석은 IT 산업뿐 아니라 금융, 제조, 보험, 운송, 에너지, 물류, 의료, 바이오, 영상 서비스 등 다양한 산업에서 이루어지고 있습니다.

하버드 비즈니스 스쿨에서 21세기 가장 섹시한 직업으로 뽑은 직업이 ‘데이터 과학자, 데이터 분석가’라고 하는데요. 그만큼 데이터 직군에 대한 관심과 주목도가 높아지고 있습니다. 앞으로 기업에서 다뤄야 하는 데이터의 양은 점점 더 늘어날 것이고, 기업은 이를 효율적으로 운영, 관리하고 분석하며 인사이트를 뽑아낼 수 있는 인재를 선호할 수밖에 없겠죠? 시각적 자료(표, 차트 및 보고서)를 제작하고 경영진(C-level)에게 제시하여 의사결정 과정을 돕는 과정도 중요하고요.

오늘은 데이터 분석의 정의와 데이터 분석에 사용하는 도구, 데이터 분석을 위해 SQL을 배우는 이유와 데이터 분석 프로세스에 대해 알아보도록 할게요.


데이터 분석, 왜 필요할까요?

데이터 분석을 통해 회사 또는 조직들은 ‘올바른 의사결정’을 하기 원합니다. 올바른 결정을 하는데 꼭 데이터가 필요할까요?

요즘 식자재, 어디서 구매하시나요? 🥦

10년 전을 생각해보세요. 식자재를 구매하려면, 동네 슈퍼마켓이나, 시장, 대형마트에 가야 했습니다.

요즘은 쿠팡 로켓프레시, 마켓컬리, 오아시스, 네이버 장보기, 홈플러스 온라인몰, SSG.COM, 너무도 다양한 온라인 구매옵션이 생겨났습니다. 이번 주에는 컬리에서 1만원 쿠폰을 보내줘서, 컬리에서 사고, 네이버 장보기에서 사면 구매 금액의 2.5%를 캐시로 적립해주고, 저렴한 치킨을 같이 먹고 싶으면, 홈플러스에서 같이 주문하고… 취향 따라 너무나도 많은 선택지가 등장했습니다.

식자재만 해도 대기업 중심의 획일적인 루트와 단순한 소비가 이뤄지던 단순한 시장이 점점 더 뷰카(VUCA) 해지고 있습니다. (** VUCA : volatility, uncertainty, complexity and ambiguity)

이런 시장에서 가장 믿을만한 것은 결국 고객들이 어떻게 행동하는지 측정한 데이터가 중요한 시대가 되었습니다.

  • 홍보 업무도 마케팅으로, 그리고 마케팅도 스마트 마케팅 등으로 점점 데이터 기반으로 고도화되고 있습니다.
  • 랜딩페이지에서 유도한 행동(Call To Action, CTA)을 측정할 때도 데이터를 이용합니다.
  • 스타트업에서도 Product-Market Fit (PMF)를 정확히 확인하고자 데이터를 수집합니다.
  • 넷플릭스에서는 어떤 콘텐츠를 만들어야 기업에 이익이 될지 데이터를 기반으로 판단합니다.
  • 심지어 게임(LOL)에서도 데이터를 분석하기 위한 경진대회가 Kaggle에서 열리기도 합니다.

이처럼 회사/조직에서 고객들이 행동하는 데이터를 분류(정형, 비정형, 실시간, 배치 데이터 등)해서 원하는 목적에 맞게 분석해야 합니다. 다양한 데이터들의 “패턴”을 찾아내고, 올바른 의사결정을 할 수 있도록 “인사이트(insight)를 제공”하는 것이 바로 “데이터 분석”의 핵심입니다.

이전에는 부분마다, 부서별로 파편화된 데이터만으로 의사결정을 했다면, 이제는 고객의 전 생애주기를 추적할 수 있는 시스템을 통해서 자동화된 분석 도구 “비즈니스 인텔리전스(Business intelligence, BI)”를 개발하여 사용합니다. 간단한 대시보드 형태부터, 복잡한 시스템까지 다양하게 만들어지고 있습니다.

데이터는 어디에 저장되어 있을까요? 🗄

대부분의 기업은 산발된 데이터를 효과적으로 관리하기 위해서 데이터베이스라는 것을 만듭니다. 웹 페이지에서 우리가 링크를 클릭하면 다양한 정보들이 화면으로 불러와지게 되는데, 이것들도 회사의 데이터베이스와 잘 연동이 되어있기 때문에 가능한 것입니다.

데이터베이스는 어떻게 활용할 수 있는지, 데이터의 분석에서 가장 기본이 되는 스킬은 무엇이 있는지, 데이터 분석 프로세스는 어떻게 진행되는지 오늘 글을 통해서 배워봅시다.

참고로, 데이터베이스에서 데이터를 불러오는데 쓰는 가장 기본적인 언어가 Structured Query Language (SQL)입니다. 물론 SQL 하나만 쓰이는 것은 아니지만, BI 설계가 어느 정도 되어있는 회사라면, 데이터분석가 혼자서도 SQL만을 가지고 많은 일을 할 수 있기 때문에, SQL에 대해서도 알려드릴게요.

데이터 베이스 관리 시스템 구조

데이터 팀은 어떤 일을 하나요?

최근 IT 회사에는 대부분 데이터 팀이 만들어지고 있습니다.

“데이터 파이프라인”을 설계하는 팀이라고 들어보셨을 텐데, 데이터 파이프라인이 무엇일까요?

도시의 수도관이 여러분의 집까지 물을 보내주는 것처럼, 조직에서도 데이터 흘러야 각각의 조직에서 데이터를 활용하여 중요한 결정들을 해나갈 수 있기 때문에, 데이터가 흐르는 구조를 “데이터 파이프라인”이라고 합니다. 이런 전체적인 시스템을 설계하는 일은 분석가가 혼자서 일하진 않습니다.

다양한 데이터 관련 직군

데이터 팀에는 파이프라인을 구축하는 데이터 엔지니어, 파이프라인에서 데이터 찾고, 적절하게 불러와서 인사이트를 찾아내는 데이터 분석가, 이런 데이터를 수집할 수 있도록 도와주는 개발자, 프로젝트를 리딩하는 PM, PO 등으로 구성되어 있습니다.

경영 목적, 전략, 사업 가설은 의사결정권자들이 세우겠지만, 그 것들을 검증하기 위해서 데이터를 찾고, 정리하여 의사결정을 지원하는 팀이 데이터 팀입니다. 특히 데이터 분석가의 일입니다. CEO 등 의사결정권자들과 함께 일하면서 다양한 선택을 가까이에서 보고 듣는 것이 좋아서, 데이터분석가가 되었다는 인터뷰 영상도 본적이 있는데요, 이런 데이터 분석가들은 어떤 도구를 사용하고, 어떻게 일하고 있는 지 한번 알아볼까요?

데이터 분석에 사용하는 도구 (Tools) 🛠

데이터 분석을 위한 도구(Tools)는 정말 많습니다. 통계적 검증을 위해서 주로 사용하는 SPSS, SAS부터, 수학적 모델링과 분석에서 주로 사용하는 R, Matlab도 있으며, 최근 인공지능, 머신러닝으로 이슈가 되면서 급 부상하고 있는 Python까지 다양한 도구들의 기본적인 분석 도구들과 더불어 각 도구의 Toolbox 형태로 제공되는 다양한 데이터 분석 도구들이 담겨 있습니다.

대표적인 예시가 Python의 pandas, matplotlib 등의 라이브러리입니다. Python을 데이터 분석 언어라고 보기 어렵지만, 덧붙여 사용되는 라이브러리, 프레임워크 등이 결합되면서 데이터 분석을 위한 다양한 기능이 제공되고, 웹 프로그램과 연동도 잘되어서 점점 더 많이 사용하는 추세입니다.

한편 특별한 언어나, 도구를 사용하지 않더라도, 우리가 익숙한 Excel, spreadsheet 만을 잘 사용해도 웬만한 기능들은 대부분 활용할 수 있습니다. 앞서 소개한 것처럼, 자동화된 비즈니스 도구(BI)를 구현하기 위해서 다양한 기능들이 필요하기 때문에, 그 목적 달성을 위해서 다양한 도구들이 활용되는 것이라고 이해하시면 되겠습니다.

분석 도구의 절대자, 왕도는 없습니다. 또 한 가지 도구로 모든 것을 할 수 있지도 않아요. 원하는 목적, 가설에 맞고, 자신에게 가장 익숙한 도구를 잘 활용하는 것이 왕도라면 왕도가 아닐까요?

데이터 분석 도구
다양한 데이터 분석 도구 종류

데이터 분석 도구를 기업에서 활용하는 방식

그래도 몇가지 활용 예시와 사용기업들을 미리 찾아보고 참고하실 수 있도록 설명을 달아보았어요. 각 기업들에서 공개한 채용 JD나 기술블로그를 참조하여 활용한 내역을 확인하였지만, 현재 같은 기술을 사용하지 않을 수 있다는 점은 기억해주시고, 이런 방법도 있다는 참조용도로 활용해주시면 감사하겠습니다.

Python/Django + Jupyter Notebook (메스프레소, 콴다)

  • 전통적인 Python은 Terminal(프롬프트) 등으로 구성된 CLI(Command Line Interface)로 구성되어 있음.
  • python, library 등 개발환경 구축에 익숙하지 않다면 사용하기가 쉽지 않아서 대화형 개발방식인 Jupyter notebook을 활용한다.
  • Python이 유행하면서 google Colab, Jupyter notebook 등의 웹 브라우저에서 동작하는 형태로 개발 환경 구축이 쉬워졌음.
  • Python에 익숙하지 않은 분들도, 잘 만들어진 튜토리얼(Markdown 등으로 구성)을 따라서 코드를 수행하면서 활용할 수 있고, 쉽게 사용할 수 있어 공유하기에 적합함.

MySQL + Excel(spreadsheet) (메스프레소 콴다)

  • 전통적인 데이터베이스 구조를, 친숙한 UI를 활용할 수 있는 방식
  • 스케줄러 같은 기능이 불편하여 수동으로 여러 번 반복해야 할 수도 있지만 가장 간편함
  • 클라우드 DB 등을 활용하고, spreadsheet만 잘 활용해도 기본적인 분석 기능들을 제작이 가능함.

Big Query(Google) or RedShift(AWS) + [Redash, Dash or chart.io] (마이리얼트립, 트레바리)

  • 데이터의 규모가 커지고, 여러 사용자가 같이 사용하다 보면 다양한 요구사항이 생기기 마련
  • 클라우드에서 제공하는 기능들을 활용하고, SQL도 직접 보고, 수정할 수 있는 도구들을 활용할 수 있음

tableau(태블로, 유로 BI 도구), Superset (토스뱅크)

  • 메타데이터 관리가 편하고, 크기 및 범위에 상관없이 데이터를 가져올 수 있음.
  • 쿼리를 시각화하기 좋고, 코딩하지 않고 활용할 수 있음.

데이터 분석 위해 SQL을 배우는 이유

앞의 설명에서도 SQL(Structured Query Language)이 자주 등장했는데요. 역사적으로 데이터는 대부분 SQL 기반의 데이터베이스(DB)에 저장되어왔습니다.

DB의 단점도 역시 있기 마련이지만, 이미 많은 유저가 활용하고 있기 때문에, 앞으로도 오랜 기간 SQL이 사용되리라는 것은 개발과 데이터 직종에 계신 분이라면 누구나 동의할 것입니다.

최근, 데이터 엔지니어링이 주목받으면서, 데이터를 파일 단위로 저장하는 시스템인 ‘데이터 레이크’도 다양한 활용 사례가 나타나고 있습니다. 데이터를 Excel, csv, JSON, parquet 등 다양한 파일 형태로 직접 저장하는 시스템들이 생겨났지만, 데이터를 분석하기 위해서는 결국 SQL 기반의 DB를 활용하게 되어 있습니다.

데이터 웨어하우스(Data warehouse) 형태가 생겨난 이유도 저장된 데이터들을 SQL 언어를 사용하여 효과적으로 추출하고 사용할 수 있도록 만들어주기 때문입니다. 최신 트렌드인 데이터 레이크하우스(Date lakehouse) 역시 SQL을 활용하고 있습니다. 이렇다 보니 “데이터 분석, SQL만 잘 다뤄도 먹고 들어갑니다”라는 말이 공공연하게 나오기도 하고요.

SQL은 다양한 컴퓨터 언어(Python, java, JS, … 등)와 같이 사용될 수밖에 없는데요, SQL을 단일 컴퓨터 언어로 보더라도 활용도가 랭킹 10위(출처: tiobe, 2021)가 될 만큼 활용도가 높습니다. IT 기업으로 취직/이직을 희망하신다면, 그중에서도 데이터 관련 직군을 염두에 둔다면, SQL을 배워두는 것이 좋겠죠?

데이터 분석 프로세스

이번에는 데이터 분석의 일반적인 프로세스에 대해 알아볼까요?

1. Data Wrangling (수집 > 탐색 > 정제 > 재탐색 > 저장)

데이터를 분석용 데이터로 만드는 작업입니다. 데이터를 다운로드하거나, 업로드해서 작업공간으로 올려둔 뒤, 데이터를 확인하는 작업을 해봅니다. 왜 이런 작업을 해야 할까요?

데이터의 입력은 대부분 사람이 합니다. 따라서 입력 과정에서 오류는 없는지 잘 확인해야 하는 것이죠. 수집된 데이터에는 중복기록, 공백 또는 오류가 포함될 수 있습니다. 아래 EDA 예시에서 와인 데이터터를 가져와 봤는데요. 예를 들면 “free_sulfur_dioxide”자리에 “chlorides” 수치를 잘못 기록했을 수도 있는 것입니다.

한편 결측치(공백)도 있기 마련인데요, 공백인 데이터가 발견된다면, ‘0’로 채워야 할지, Null로 두어야 할 지 등 어떻게 대체해야 할지를 정하는 것도 중요합니다. 이 과정에서 주로 Code를 짜서 자동화 과정을 이용합니다. 결측치가 생긴 데이터를 사용할 것인지, 이런 데이터를 제거하고, 결측치가 없는 데이터만 쓸 것인지도 결정해야 합니다.

제대로 수집된 데이터도 분석 목적과 관련이 없거나 쓸모가 없을 수 있으므로 데이터 정제도 필요합니다. 정제된 데이터를 기반으로 분석해야 가설을 좀 더 명확히 증명할 수 있습니다. 따라서 정제작업은 데이터 분석 전에 꼭 수행해야 합니다. 이렇게 정제된 데이터를 다시 한번 확인해보고, 이상이 없다면 저장하게 됩니다.

2. 탐험적 데이터 분석 (EDA)

맛있는 요리를 만들기 위해서 가장 먼저 해야 할 일은, 식재료를 준비하는 일입니다. 재료의 신선도를 확인하고, 다듬는 등의 여러 준비 과정이 필요하죠. 마찬가지로 데이터 분석이라는 요리를 하기 위해서는, 데이터를 이리저리 둘러보며 준비할 필요가 있습니다. 이처럼 데이터를 다양한 각도로 관찰하고 이해하는 과정을 탐험적 데이터 분석, EDA (Exploratory Data Analysis) 라고 합니다. 이번 노트를 통해 EDA를 시행해보고, 그 결과를 Business Insight로 까지 연결시키기 위한 기본 작업이죠.

EDA (Exploratory Data Analysis)

와인에 대한 데이터가 있고, 이를 EDA 한다고 생각해 봅시다.

  • Red Wine과 White Wine, 2개의 DataSet을 이용하도록 합시다.
  • 각 DataSet에는, 와인을 구성하는 11개의 화학 성분과 quality 정보가 담겨 있습니다.
  • 우리는 이 데이터를 통해 다양한 와인의 성분과 등급 사이의 관계를 알아보려고 합니다.

각각의 데이터는 어떤 데이터인지 확인해봅니다.

Independent Variables:

  • fixed_acidity (결합산) : 와인의 산도를 제어한다.
  • volatile_acidity (휘발산) : 와인의 향과 연관된다.
  • citric_acid (구연산) : 와인의 산도를 높이기 위해 사용되며, 신선함을 올려주는 역할을 한다.
  • residual_sugar (잔여 설탕) : 와인의 단맛을 올려준다.
  • chlorides (염화나트륨) : 농도에 따라 와인에 짠맛을 주며, 신맛을 좌우한다.
  • free_sulfur_dioxide (유리 아황산) : 이스트 발효의 부산물이다. 항산화제로 산화 방지, 살균 작용, 갈변 방지 등을 한다.
  • total_sulfur_dioxide (총 아황산) : 와인을 오래 보관하는 역할이며, 향과 연관된다.
  • density (밀도) : 바디의 높고 낮음을 표현하는 와인의 무게감을 의미한다.
  • pH (산성도) : 와인의 신맛의 정도를 나타낸다.
  • sulphates (황산염) : 와인의 향을 보존시킨다.
  • alcohol (알코올) : 와인의 바디감에 영향을 미친다. 단맛과 산성의 균형을 유지하도록 돕는다.

Dependent Variable:

  • quality : 와인 등급으로 0~10 사이의 값(정수)을 갖는다.

어떻게 데이터가 어떻게 구성되어있는 지 알았다면, 이제 세부 데이터들을 파악해야 합니다.

먼저 데이터가 어떤 모양(shape)으로 되어있는지, 데이터 타입(type)이 어떤지 확인해야 합니다. float(실수) 데이터 자리에 Int(정수)나 str(문자열)이 들어있을 수도 있으니 확인해야 합니다. 또 int/float 등의 수치 중에서 통계치(statistics)를 파악해보고, 이상한 데이터는 없는지, 혹은 중복된 데이터는 없는지, 결측치는 없는지 탐색해야 합니다.

그런 다음 한줄 한줄 눈으로 모든 데이터를 확인하기는 어렵기 때문에 데이터 시각화를 해봅니다. 예를 들어 pH (산성도)를 시각화하면 다음과 같이 보여줄 수 있게 됩니다.

다양한 와인의 성분과 등급 사이의 관계 데이터 시각화 (출처 : 코드스테이츠 AI 부트캠프 학습 자료)

이렇게 다양한 방법을 통해서 데이터를 시각화하고, 데이터들의 관계성까지 밝혀내면 1차적인 목표를 달성할 수 있습니다. 위 이미지는 아주 보기 좋게 편집이 되었는데요. 실제 데이터를 기본적으로 표현해보면 다른 사람들이 보고 이해하기 어려울 수 있기 때문에 데이터 시각화는 정말 중요한 작업입니다.

3. 데이터 시각화

데이터 시각화는 일반적으로 차트와 그래프의 형태로 제공됩니다. 즉, 데이터가 그래픽으로 표시되어 인간의 두뇌가 조금 더 쉽게 이해할 수 있는 형태로 변형해주는 역할이라고 생각할 수 있습니다.

데이터를 보면 보이지 않던 것들이, 데이터 시각화를 통해서 종종 미발견된 사실과 추세를 발견할 수 있게 됩니다. 데이터들의 관계를 살펴보고 데이터 세트를 비교함으로써 의미 있는 정보를 찾는 방법을 찾을 수 있습니다. 위에서 데이터 정제하는 과정에서도 시각화를 통해서 진행할 수도 있습니다. 워낙 다양한 용도로 쓰이고 있으니, 여러 가지 시각화 기법들을 배우는 것도 중요하겠습니다.

기업의 실제 데이터를 기반으로
다양한 프로젝트를 진행할 기회

코드스테이츠 AI 부트캠프

데이터 분석 정의와 데이터 분석 프로세스, 데이터 분석 도구와 그중 하나인 SQL을 배워야 하는 이유까지 살펴보았습니다.

데이터 분석은 비즈니스의 모든 영역에서 활발하게 진행되는 만큼 그 중요도가 높지만, 데이터 직군이 아니라면 실제 비즈니스 데이터에 접근하고 분석해보긴 어려운데요. 기업의 실제 데이터를 기반으로 생생한 비즈니스 문제를 함께 풀어가길 원한다면 코드스테이츠 AI 부트캠프가 좋은 기회입니다.

데이터 분석에 필요한 기초 학습뿐 아니라 6개 이상의 개인, 팀, 기업 프로젝트를 진행하며 보다 비즈니스적인 관점의 데이터 분석 경험을 쌓을 수 있습니다. 데이터 관련 취업, 이직을 희망한다면 지금 코드스테이츠 AI 부트캠프에 지원하세요!


👨‍🚀 데이터 사이언스 커리어의 시작,
AI 부트캠프가 더 궁금하다면?

목록 보기

추천글