Chapter 1: "데이터"란 도대체 무엇일까?
행(Row)과 열(Column): 데이터의 보편적인 구성 요소
엑셀(Excel)을 다뤄본 경험이 있다면, 이미 데이터의 기본 구성 요소인 행과 열에 익숙할 것입니다. 사실, 여러분은 생각보다 더 데이터 전문가에 가까운 셈이에요!
엑셀, 데이터베이스(Database), 또는 SQL의 맥락에서 "데이터"란, 구조화된 방식으로 정리된 정보를 의미합니다. 일반적인 엑셀 스프레드시트를 떠올려 보세요:
- **열(Columns)**은 각각의 속성이나 특성(예: "고객 이름", "주문 날짜", "총 금액")을 나타냅니다
- **행(Rows)**은 개별 레코드(예: 특정 고객의 주문)를 나타냅니다
- **셀(Cells)**은 행과 열이 교차하는 지점으로, 실제 값이 들어 있는 부분입니다
이런 행-열 구조는 데이터 세계 어디에서나 볼 수 있는 핵심 구성 방식입니다. 간단한 엑셀 시트든, 대기업의 방대한 데이터베이스든, 복잡한 SQL 쿼리를 돌리든, 이 기본 구조는 변하지 않아요.
| Customer Name | Order Date | Total Amount |
|---------------|-------------|--------------|
| John Smith | 2025-01-15 | $125.99 |
| Sarah Johnson | 2025-01-16 | $89.50 |
| Miguel Lopez | 2025-01-16 | $212.75 |
이 기본 구조만 이해해도, 데이터 관리의 핵심 개념 하나는 이미 마스터한 셈입니다. 엑셀과 더 발전된 데이터베이스 시스템의 차이는 구조 자체가 아니라, 규모, 기능, 그리고 데이터를 다루는 방식에 있어요.
구조화 데이터 vs 비구조화 데이터
모든 데이터가 행과 열로 깔끔하게 정리되어 있는 것은 아닙니다. 데이터 세계에서는 데이터를 크게 두 가지 유형으로 나눕니다: **구조화 데이터(Structured Data)**와 비구조화 데이터(Unstructured Data).
구조화 데이터: 엑셀 사용자에게 익숙한 세계
구조화 데이터는 사전에 정의된 모델(스키마, schema)에 따라 정리된 데이터를 말합니다. 엑셀에서 자주 접하는 형식이죠:
- 행과 열의 형태로 깔끔하게 정리되어 있음
- 각 열은 일관된 데이터 타입(문자, 숫자, 날짜 등)을 가짐
- 검색, 필터링이 용이함
- 예시: 고객 정보, 판매 기록, 재고 목록 등
엑셀에서 컬럼 헤더를 정리하고 각 열에 일관된 데이터가 들어가도록 작성했다면, 여러분은 이미 구조화 데이터를 다루고 있는 것입니다. 이런 구조 덕분에 정렬, 필터링, 분석이 쉬워지죠.
비구조화 데이터: 셀의 한계를 넘어
비구조화 데이터는 행과 열 형식으로 깔끔히 들어맞지 않는 데이터를 말합니다. 사전 정의된 구조 없이 다양한 형태로 존재하죠:
- 텍스트 문서, 이메일
- SNS 게시물
- 이미지, 오디오, 비디오 파일
- 기기에서 수집된 센서 데이터 등
예를 들어 생각해보세요:
- 고객 이름과 구매 금액이 정리된 스프레드시트(구조화)
- 고객이 보낸 이메일 문의나 피드백(비구조화)
엑셀은 구조화 데이터를 다루는 데 최적화되어 있지만, 비구조화 데이터는 처리에 한계가 있습니다. 이럴 때는 더 발전된 데이터 시스템이 필요해요.
반구조화 데이터: 그 중간 어디쯤
또한 **반구조화 데이터(Semi-Structured Data)**라는 중간 형태도 있습니다. 이 데이터는 고정된 행-열 구조는 아니지만, 요소를 구분해주는 태그나 마커를 포함합니다.
예시:
- JSON 파일 (많은 웹 애플리케이션에서 사용됨)
- XML 파일
- 이메일 (헤더는 구조화되어 있으나 본문은 자유형식)
반구조화 데이터는 구조화 데이터의 정돈됨과 비구조화 데이터의 자유로움 사이의 간극을 메워주는 역할을 합니다.
왜 "깨끗한 데이터"가 중요한가? (현실적인 사례)
엑셀에서 "지저분한 데이터"로 고생한 적 있으신가요? 예를 들어 이런 경우:
- 이름 형식이 들쑥날쑥 ("John Smith" vs "Smith, John")
- 날짜 형식이 제각각 (12/31/2025, 31-Dec-25, December 31, 2025)
- 숫자가 텍스트로 저장되어 계산 불가
- 한 셀에 쉼표로 여러 값이 입력됨
- 약어가 통일되지 않음 (NY, N.Y., New York 등)
작은 엑셀 파일에서는 그저 불편한 수준일 수 있지만, 대규모 데이터나 데이터베이스로 이관할 경우에는 큰 문제가 됩니다.
지저분한 데이터의 진짜 비용
예를 들어볼게요: 한 리테일 회사가 여러 엑셀 파일에 고객 정보를 저장해두고 있습니다. 하지만 데이터 입력이 일관되지 않아서:
- 동일 고객이 이름 철자 차이로 중복 저장됨
- 일부 주소에는 우편번호가 빠짐
- 전화번호 형식이 제각각
이 회사가 고객 분석이나 마케팅 캠페인을 진행하려고 할 때 이런 문제로 인해:
- 중복 메시지가 같은 고객에게 여러 번 발송되고
- 불완전한 데이터 때문에 일부 고객은 누락되고
- 분석가들이 데이터를 수작업으로 정리하느라 시간 낭비하고
- 잘못된 분석 결과로 인해 비즈니스 의사결정이 틀어질 수도 있습니다
IBM에 따르면, 잘못된 데이터 품질로 인해 미국 경제에 발생하는 손실은 연간 약 3.1조 달러에 달한다고 해요. 작은 규모라도, 지저분한 데이터는 기업에 상당한 문제를 일으킵니다.
GIGO 원칙: Garbage In, Garbage Out
데이터 업계에서는 흔히 "GIGO" 원칙을 이야기합니다. Garbage In, Garbage Out—즉, 입력이 엉망이면 출력도 엉망이라는 뜻이죠.
아무리 분석 기법이 정교하고 데이터베이스가 강력하더라도, 입력된 데이터가 부정확하거나 지저분하면 결과도 신뢰할 수 없습니다.
깨끗한 데이터를 위한 베스트 프랙티스
엑셀에서 SQL, 데이터베이스로 넘어갈수록 데이터 청결은 더 중요해집니다. 다음은 좋은 데이터 품질을 유지하기 위한 몇 가지 실천 방법입니다:
- 일관된 포맷 유지: 데이터 입력 및 형식에 대한 표준을 설정
- 유효성 검사 적용: 엑셀에서는 Data Validation, 데이터베이스에서는 제약 조건 사용
- 정규화(Normalization): 중복을 줄이고 일관성을 높이는 데이터 구조화
- 정기적인 점검 및 정리: 데이터 문제를 주기적으로 확인하고 수정
- 문서화: 데이터 정의와 기준을 명확히 문서로 정리
처음부터 깨끗하고 구조화된 데이터를 유지하면, 데이터 여정에서 수많은 시행착오를 피할 수 있어요.
엑셀 사용자에서 데이터 전문가로
엑셀을 능숙하게 다룰 줄 안다면, 이미 많은 데이터 개념을 이해하고 계신 겁니다. 정보를 행과 열로 정리하고, 필터나 정렬을 사용하고, 계산을 수행하는 방법—all of that is real data work이에요.
이 책에서는 이 기반 위에 데이터베이스와 SQL이라는 새로운 도구들을 쌓아갈 겁니다. 엑셀에서 익힌 개념들이 이름만 다를 뿐, 비슷한 방식으로 확장된다는 걸 보게 될 거예요. 게다가, 더 강력한 기능까지 함께요.
기억하세요: 엑셀에서 쌓은 전문성은 사라지는 게 아닙니다. 데이터 관리와 분석의 더 넓은 세계로 확장되는 것일 뿐이에요.