Chapter 2: 파일 형식 완전 정복
엑셀 파일 (.xlsx) vs. CSV 파일
엑셀에서 데이터를 다뤄본 적이 있다면, 스프레드시트를 저장하거나 열 때 다양한 파일 형식을 접해봤을 것입니다. 가장 일반적으로 사용되는 두 가지 형식은 엑셀 파일(.xlsx)과 CSV 파일(.csv)입니다. 엑셀에서 데이터베이스와 SQL로 넘어가는 과정에서 이 둘의 차이를 이해하는 것은 매우 중요합니다.
엑셀 파일 (.xlsx): 기능이 풍부한 워크북
엑셀의 기본 파일 형식인 .xlsx는 다음과 같은 강력한 기능들을 지원하도록 설계되어 있습니다:
- 여러 개의 워크시트를 하나의 파일에 포함 가능
- 서식 기능 (색상, 글꼴, 조건부 서식 등)
- 자동으로 계산되는 수식
- 차트, 그래프, 시각화 요소
- 매크로와 VBA 코드를 통한 자동화
- 데이터 유효성 검사 규칙으로 입력 제어
- 공동 작업용 댓글 및 메모
파일을 .xlsx 형식으로 저장하면 위 기능들이 모두 보존됩니다. 따라서 엑셀 파일은 분석, 보고서 작성, 마이크로소프트 오피스 생태계 내의 협업에 최적화된 형식입니다.
내부적으로 .xlsx 파일은 여러 개의 XML 파일이 압축된 ZIP 패키지로 구성되어 있으며, 이 XML 파일들은 데이터, 서식, 수식 등 워크북의 다양한 요소를 저장합니다. 이 구조는 엑셀 2007부터 도입된 현대적인 형식으로, 이전 .xls 형식보다 더 효율적이고 손상에 강합니다.
CSV 파일: 단순하고 범용적인 데이터 컨테이너
CSV(Comma-Separated Values) 파일은 훨씬 단순합니다:
- 일반 텍스트 파일로 텍스트 에디터에서도 열 수 있음
- 값들은 쉼표 (또는 다른 구분자)로 분리
- 한 파일에 하나의 테이블만 존재 (여러 시트 불가)
- 서식, 수식, 시각화 없음
- 매크로나 삽입된 객체 없음
텍스트 에디터에서 CSV 파일을 열면 다음과 같이 보입니다:
Name,Department,Salary
John Smith,Marketing,65000
Sarah Johnson,Engineering,78000
Miguel Rodriguez,Sales,71500
엑셀에서 열면 익숙한 표 형태로 나타나지만, 모든 값은 정적인 순수 데이터입니다. 수식은 없으며 단지 계산된 값만 저장됩니다.
실무에서 중요한 주요 차이점
이러한 차이를 이해하면 상황에 맞는 올바른 파일 형식을 선택할 수 있습니다:
1. 호환성
- 엑셀 파일은 Excel 또는 호환 프로그램(예: Google Sheets, LibreOffice)이 필요함
- CSV 파일은 다음을 포함해 거의 모든 데이터 처리 도구에서 열 수 있음:
- 모든 스프레드시트 프로그램
- 텍스트 에디터
- 데이터베이스 시스템
- Python, R, SQL 같은 프로그래밍 언어
이러한 범용성 때문에 CSV 파일은 서로 다른 시스템 간 데이터 전달에 가장 많이 사용됩니다.
2. 파일 크기 및 성능
- 엑셀 파일은 서식, 수식, 여러 시트를 포함하므로 파일 크기가 큼
- CSV 파일은 순수 데이터만 포함하므로 훨씬 작음
- 대용량 데이터셋에서는 CSV가 더 빠르게 로드되고 메모리도 적게 사용
3. 데이터 보존
- 엑셀 파일은 수식, 서식, 여러 시트 등 모든 요소를 보존
- CSV 파일은 값만 보존 – 수식은 계산된 값으로 저장되고, 서식은 사라지며, 하나의 시트만 저장됨
4. 데이터 타입
- 엑셀 파일은 날짜, 숫자, 텍스트 등 적절한 데이터 타입을 유지
- CSV 파일은 모든 데이터를 텍스트로 저장 – 날짜 포맷이 변경되거나 숫자 앞의 0이 사라지는 등의 문제가 발생할 수 있음
파일 내부는 어떻게 생겼을까? 데이터 저장 방식 엿보기
각 파일 형식 내부에서 실제로 어떤 일이 벌어지는지 좀 더 자세히 들여다봅시다.
엑셀 (.xlsx) 파일의 내부
엑셀 파일은 사실 ZIP 아카이브로, 내부에 여러 XML 파일이 포함되어 있습니다. .xlsx 확장자를 .zip으로 바꾸고 압축을 풀어보면 다음과 같은 파일들이 나타납니다:
- workbook.xml – 워크북의 전체 구조 저장
- worksheets/sheet1.xml, sheet2.xml 등 – 각 워크시트의 데이터 저장
- styles.xml – 모든 서식 정보 저장
- sharedStrings.xml – 여러 곳에서 사용되는 텍스트 값 저장
- 기타 파일들 – 차트, 이미지, 기타 기능 관련 정보 저장
이처럼 복잡한 구조 덕분에 엑셀은 다양한 기능을 지원하면서도 압축을 통해 파일 크기를 적당히 유지할 수 있습니다.
CSV 파일의 내부
CSV 파일은 훨씬 간단합니다 – 그냥 텍스트 파일일 뿐입니다:
- 데이터의 각 행이 한 줄씩 존재
- 값들은 쉼표(또는 탭, 세미콜론 등의 구분자)로 구분됨
- 컬럼명이 포함된 헤더 행이 있을 수도 있음
- 서식, 데이터 타입, 구조에 대한 메타데이터 없음
이러한 단순함은 장점이자 단점입니다. CSV는 생성, 읽기, 시스템 간 전송이 매우 쉽지만, 데이터에 대한 복잡한 정보는 저장할 수 없습니다.
언제 엑셀 vs CSV vs 구글 시트?
각 파일 형식은 목적에 따라 알맞은 사용 사례가 있습니다:
다음의 경우 엑셀(.xlsx)을 사용하세요:
- 수식, 서식, 여러 워크시트를 보존해야 할 때
- 복잡한 계산이나 데이터 모델링이 필요한 경우
- 차트나 시각화가 포함된 리포트를 만들 때
- 데이터 유효성 검사, 조건부 서식, 매크로 등이 필요한 경우
- Microsoft Office 환경 내에서 주로 사용되는 경우
- 특정 셀이나 시트를 편집 불가능하게 보호할 필요가 있을 때
다음의 경우 CSV(.csv)를 사용하세요:
- 데이터를 데이터베이스나 외부 시스템에 임포트해야 할 때
- 엑셀이 없는 사용자와 데이터를 공유할 때
- Python, R 등의 프로그래밍 언어와 함께 사용할 때
- 엑셀이 느려지는 대용량 데이터를 다룰 때
- 순수한 데이터 값만 필요하고 수식/서식은 불필요할 때
- 어디서나 작동하는 단순하고 범용적인 형식이 필요할 때
다음의 경우 구글 시트를 사용하세요:
- 실시간 협업이 중요한 경우
- 여러 기기에서 클라우드 기반 접근이 필요한 경우
- 비교적 간단한 데이터 작업을 하는 경우
- 자동 버전 관리 기능이 필요한 경우
- 데이터를 웹에 게시하거나 다른 페이지에 임베드해야 할 때
- Microsoft Office가 없는 사용자와 협업할 때
데이터베이스로 가는 다리
파일 형식을 이해하는 것은 엑셀에서 데이터베이스와 SQL로 넘어가는 과정에서 중요한 단계입니다. 그 이유는 다음과 같습니다:
- CSV 파일은 종종 데이터베이스에 데이터를 임포트할 때 사용됩니다
- 데이터베이스에서 데이터를 추출(export)할 때도 자주 CSV 형식이 사용됩니다
- 엑셀과 CSV의 한계는 대규모 데이터 관리에는 데이터베이스가 필수라는 사실을 부각시킵니다
데이터가 크고 복잡해질수록, 엑셀이나 CSV만으로는 충분하지 않다는 것을 알게 됩니다. 하지만 각 파일 형식을 언제, 어떻게 사용할지 아는 것은 여전히 데이터 전문가로서 중요한 스킬입니다.
다음 챕터에서는 엑셀의 워크북과 워크시트 개념이 데이터베이스의 데이터베이스와 테이블에 어떻게 매핑되는지 알아보며, 보다 강력한 데이터 관리 도구로의 전환을 준비해봅니다.