본문으로 바로가기

데이터를 다루다 보면 엑셀, 파이썬, 데이터베이스와 같은 다양한 도구를 활용하게 됩니다.

얼핏 보면 기능이 겹쳐 보이기도 하지만,
데이터를 어디에 보관하고(Storage) 어떻게 처리하느냐(Process)에 따라 각 도구의 역할과 강점이 꽤 명확히 나누어집니다.

우리가 상황에 맞춰 어떤 도구를 선택하면 좋을지 어떤 차이점이 있는지 핵심적인 특징들을 정리해보았습니다.

 

1. Excel: 파일 기반 관리

  • 저장 방식: 개인 PC에 파일로 저장되어 관리는 간편하지만, 데이터 양에 따라 시스템 부하가 급증합니다.
  • 업무 안정성: 모든 작업을 수작업으로 진행하므로 휴먼 에러 발생 가능성이 상존하며,
    실수로 데이터가 변경되었을 때 원인을 추적하거나 복구하기 어렵습니다.

2. Python(Pandas): 코드 기반 자동화

  • 공 효율: 작업 과정이 코드로 기록되어 동일한 가공 업무를 다른 데이터에 즉시 재사용할 수 있습니다.
  • 휘발성 및 로딩: 단, 데이터를 메모리에 로드하여 처리하는 방식이므로
    프로그램을 종료하면 메모리에 로드된 데이터는 유지되지 않으며, 일반적으로 실행 시마다 원본 데이터를 읽어오는 과정이 필요합니다.
    ※ 참고: 메모리 사양에 따른 한계는 PySpark, Dask와 같은 라이브러리를 활용해 데이터를 분산 처리함으로써 보완할 수 있습니다.
  • 협업 환경: 개인 PC 환경에서 주로 작업하므로 분석 기준의 버전 관리나 실시간 데이터 공유에는 제한이 있습니다.

3. Database: 시스템 기반 통합 관리

    • 영구적 조회: 데이터를 영구적으로 저장하여 언제든 쿼리만으로 필요한 정보를 즉시 조회할 수 있습니다.
    • 추출 성능: 인덱스(Index)를 활용해 전체를 로드하지 않고 필요한 조건의 데이터만 추출하므로 속도가 매우 빠릅니다.
      • *인덱스: 데이터베이스 테이블의 검색 성능을 최적화하기 위해,
        특정 열(Column)의 값을 기준으로 실제 데이터가 저장된 위치를 매핑해 둔 자료구조
    • 무결성 보호: 트랜잭션(Transaction) 기능을 통해 데이터가 올바른 형태일 때만 저장되도록 보호하며,
      작업 중 오류가 발생해도 원본 상태로 안전하게 복구(Rollback)할 수 있습니다.
      • *트랜잭션: 데이터가 비정상적으로 저장되는 것을 막아 원본의 무결성을 유지하는 기능
    • 일관성 및 보안: 다수의 사용자가 동일한 데이터를 기준으로 조회할 수 있어 정보의 일관성이 확보되며,
      접근 권한 제어와 이력 추적이 용이합니다.

특성 Excel (기존 방식) Python  Database
저장 방식 파일 기반:
개별 .xlsx 파일로 PC 로컬 저장
메모리(RAM) 기반:
코드 실행 시에만 데이터 유지
디스크(Disk) 기반:
서버/로컬 스토리지에 영구 저장
쿼리만으로 즉시 조회 가능
처리 용량 104 제한:
대용량 시 응답 없음 발생 빈번
RAM 사양 종속:
사양에 따라 수백만 행 처리 가능
대용량 확장:
필요 데이터만 선택 로드하여
수억 건 대응 가능
처리 속도 느림:
대용량 파일 로드 및 수식 연산 시 지연
중간~빠름:
로딩 후 연산은 매우 빠르나
초기 로딩 시간 필요
매우 빠름:
인덱스(Index)를 활용하면
필요한 정보만 효율적으로 추출 가능
조회 방식 전체 로딩:
파일 전체를 열어야만
특정 데이터 확인 가능
전체 로딩 필터링:
데이터를 메모리에 다 올린 후 검색
부분 조회:
전체를 로드하지 않고
조건(WHERE)에 맞는 결과만 즉시 응답
반복 작업 수동 반복:
파일마다 수식 복사/붙여넣기 및
수기 검증
코드 재사용:
스크립트 하나로
대량 파일 자동 처리 가능
단, 실행 시마다 데이터 로드 과정 필요
쿼리 즉시 실행:
가공 과정 없이 저장된 데이터를 즉시 조회
동시 접근 제한적:
기본적으로 파일 기반 구조로 인해
동시 수정 시 충돌이 발생할 수 있음
제한적:
개인 PC 중심 작업으로 동기화 어려움
가능:
트랜잭션과 동시성 제어 기능을 통해
다수 사용자의 읽기/쓰기 환경 관리 가능
무결성 낮음:
수식 실수 시 추적 및
원복이 매우 어려움
중간:
로직 일관성은 높으나
코드 오류 시 데이터 손상 위험
매우 높음:
트랜잭션 지원을 통해
데이터 무결성을 높게 유지할 수 있음

 

4. 마무리하며

이 세가지 도구는 각각 독립적으로 사용될 수도 있지만,

다루는 데이터의 규모와 목적에 따라 다음과 같이 역할을 분담하고 연결되기도 합니다.

  • Excel: 데이터의 [입력 및 수집]
    • 누구나 익숙하게 사용할 수 있어 데이터를 기록하거나 소규모 자료를 정리할 때 사용될 수 있습니다.
      다만, 데이터 양이 많아져 파일 실행이나 수식 연산에 지연이 발생하면 파이썬/데이터베이스와 같은 사용 도구의 변경이 필요할 수 있습니다.
  • Python: 데이터의 [가공 및 분석]
    • 수집된 데이터를 병합/정제하고 복잡한 연산을 자동화할 때 활용될 수 있습니다.
      엑셀로 처리하기 무거운 대용량 파일도 코드를 통해 빠르게 전처리할 수 있습니다.
  • Database: 데이터의 [저장 및 관리]
    • 정제된 데이터를 축적하여 다수의 사용자가 언제든 필요한 부분만 꺼내볼 수 있도록 관리합니다.
    • 엑셀처럼 전체 파일을 열 필요 없이, 인덱스를 통해 원하는 조건의 데이터만 즉시 뽑아낼 수 있어 대용량 데이터에서의 속도 저하 없이 조회가 가능합니다.
    • 정제 과정을 거쳐 적재된 데이터는, 매번 원본 파일을 불러와 별도의 전처리를 반복할 필요가 없습니다.
    • 파일을 복사하여 주고받는 대신 중앙 저장소에 접속하는 방식이므로, 다수의 사용자가 항상 동일한 기준의 최신 데이터를 공유할 수 있습니다.
  • BI/Excel: 데이터의 [시각화 및 보고]
    • 저장소에서 추출한 데이터를 바탕으로 대시보드를 구성하거나(BI), 파일 형태로 공유(Excel)합니다.

결국 도구의 선택은 저장(Storage)과 처리(Process)의 필요 수준에 따라 각자의 역할을 목적에 맞게 조합해 활용하는 관점이라고 볼 수 있을 것 같습니다.