✨마케터를 위한 SQL : 데이터의 이해

Sean Lee·2022년 8월 18일
2

마케터를 위한 SQL

목록 보기
1/7
post-thumbnail

SQL이라는 언어는 마케터와 데이터분석가에게 있어서 데이터를 추출하거나 분석을 하기 위한 좋은 수단입니다. 하지만 좋은 수단이 있더라도 목적이 명확하지 않거나, 목적을 위해 참조해야할 데이터를 올바르게 이해하지 못하면 기대했던 결과를 얻지 못하기도 합니다. 그래서 어떠한 종류의 데이터가 있으며 이 데이터가 무엇인지 이해하는것은 데이터 분석에 있어서 매우 중요한 요소입니다.

데이터의 종류

데이터는 목적에 따라 크게 3가지로 구분될 수 있습니다.
1. 마스터 데이터 (갱신형)
2. 트랜잭션 데이터 (누적형)
3. 로그 데이터 (누적형)

1. 마스터 데이터

마스터 데이터는 어떤 대상이나 대상의 상태를 정의하기 위한 목적의 데이터입니다. 가령, 온라인 쇼핑몰에서 마스터 데이터라고 할 수 있는 데이터로는 쇼핑몰에 가입한 회원이 누구인지 그 대상을 정의하기 위한 회원 프로필 데이터(이름, 이메일, 휴대전화번호, 가입일, 회원등급 등)나 쇼핑몰에서 판매하고 있는 상품을 정의하기 위한 상품 데이터 (상품명, 상품가격, 옵션정보, 색상정보, 상품 등록일, 상품 카테고리, 판매상태, 재고량 등)가 마스터 데이터입니다. 마스터 데이터는 가장 최신의 데이터만 유지하면 됩니다. 회원 프로필 정보에서 회원의 휴대전화번호가 바뀌었다고 해서 새로운 휴대전화 번호와 함께 이전의 휴대전화 번호까지 계속 저장해 둘 필요가 없습니다. 그래서 마스터 데이터를 "갱신형" 데이터라고 부릅니다.


2. 트랜잭션 데이터

트랜잭션 데이터는 앞서 설명한 마스터 데이터에서 정의된 대상이 행하는 행위(트랜잭션)를 기록하고, 행위의 영향이 있는 대상의 상태를 변화시키기 위한 목적의 데이터입니다. 온라인 쇼핑몰의 대표적인 트랜잭션 데이터는 바로 주문서 및 결제 데이터입니다. 어느 한 회원(회원 프로필 데이터)이 특정 상품(상품 데이터)을 구매하는 행위가 이뤄질 때 기록되는 데이터입니다. 이때 구매 행위에 영향을 받는 데이터의 상태도 함께 변화됩니다. 구매 행위로 인해 회원 프로필 데이터의 회원 등급이 변경될 수 있으며, 구매 행위로 인해 상품 데이터의 재고 수치가 변경될 수 있습니다. 구매 행위와 같은 트랜잭션은 시간의 흐름에 따라 발생되는 사건이기 때문에 과거의 이력을 누적해서 저장해둘 필요가 있습니다. 그래서 트랜잭션 데이터를 "누적형" 데이터라고 부릅니다. 이를 바탕으로 마케터는 특정 고객 집단이 이번달 혹은 올해에 구매한 총 금액이나 구매 횟수 등을 분석해볼 수 있습니다.


3. 로그 데이터

로그 데이터는 서버와 같은 IT 인프라에서 발생되는 사건(이벤트)을 기록한 데이터입니다. 보통 웹사이트에 "로그"인(Log-in) 하는 경우나 웹사이트에서 어떤 페이지를 방문하는 경우, 각각의 사건(이벤트)을 로그 데이터로 기록합니다. 대표적으로 구글에서 제공하는 구글 애널리틱스(GA)가 웹 로그 데이터 기반의 서비스를 제공합니다. 구글 애널리틱스를 통해 웹사이트에 방문한 사용자가 어디서 유입되었는지, 어느 페이지를 방문했는지, 페이지에서 얼마동안 머물렀는지, 방문한 시각이 어떻게 되는지 등의 정보를 알 수 있으며 이를 잘 조합하면 웹사이트 내에서의 고객 이동경로 파악과 같이 다양한 분석도 가능합니다. 로그 데이터도 트랜잭션 데이터와 비슷하게 시간의 흐름에 따라 발생되는 사건이기 때문에 "누적형" 데이터 입니다.


데이터의 타입

데이터가 기록된 형태에 따라 크게 3가지로 구분될 수 있습니다.
1. 숫자형
2. 문자형
3. 날짜 및 시간형

데이터의 타입을 잘 이해해야 하는 이유로는 데이터의 타입에 따라 올바른 SQL 함수를 적용해야 하기 때문입니다. 타입이 맞지 않아서 생기는 문제는 스프레드시트에서도 종종 겪는 문제입니다.

SUM이라는 함수를 사용하기 위해서는 합(Summation)이 가능한 숫자형 데이터를 사용해야만 함수가 적용이 됩니다. 아래 이미지 예시를 보면, 첫번째 테이블에서는 두 숫자 데이터의 합에 대한 결과가 정상적으로 도출되었지만 두번째 테이블에서 합하는 요소 중 하나가 문자열로 데이터 타입이 정의되어 있어서 예상했던 결과가 나오지 않는것이 확인됩니다.

스프레드시트에서 데이터 타입에 대한 변환은 아래 이미지처럼 바꿀 수 있습니다. 하지만 보통의 경우 함수가 문제없이 잘 적용되는 이유로는 데이터 타입을 "자동" 으로 정의해주는 기능이 있기 때문입니다. 하지만 SQL언어에서는 자동의 기능이 없기 때문에 항상 데이터 타입에 대해 유의하고 그에 맞는 함수를 사용해야 합니다. (혹은 함수에 맞는 데이터 타입으로 변환)

지금은 데이터 타입을 크게 3가지 종류로 구분했지만 각 종류의 하위로 자세하게 들어가면 더욱 다양한 타입들이 있습니다. 숫자형 내에서도 정수인지 소수인지 부터 시작해서 매우 다양한 타입들이 정의됩니다.


정리

데이터의 종류와 데이터의 타입이 다르다는것에 대한 이야기를 해봤습니다. 사실 아직 본격적인 SQL이 시작되지 않아서 위의 내용이 잘 와닿지 않는 내용일 수 있습니다. 하지만 잘 읽어두신다면 후에 SQL구문을 작성하면서 "아! 이때 이게 그 의미였구나!" 하는 느낌을 받을 수 있을거라고 생각합니다. 그리고 데이터의 종류와 타입이 다양하게 있다는 그 자체를 이해하는것만으로도 나중에 나올 개념들의 이해가 훨씬 수월해진다고 생각합니다.

다음 블로그에서는 정말 본격적인 SQL구문을 같이 살펴보도록 하겠습니다. 감사합니다 :)

profile
배우기만 하고 생각하지 않으면 얻는 것이 없고, 생각만 하고 배우지 않으면 위태롭다.

0개의 댓글