배꼽파지 않도록 잘 개발해요

방송대 오픈소스기반데이터분석 - 4강. 데이터의 수집 본문

방송대 컴퓨터과학과/오픈소스기반데이터분석

방송대 오픈소스기반데이터분석 - 4강. 데이터의 수집

꼽파 2025. 9. 19. 16:54

1. 데이터 수집이란

1) 데이터 수집

필요성

  • 현대 사회 경쟁력 확보 핵심 자원
  • 맞춤형 서비스, 마케팅, 연구, 헬스케어 등 다양한 활용
  • 단순 기록이 아니라 가치 창출의 출발점

정의

  • 단순히 데이터를 모으는 행위를 넘어, 수집된 데이터를 
    분석에 적합한 형태로 준비하는 과정

2) 데이터 수집의 어려움

  • 정확성 문제: 형식적 오류, 의미적 오류
  • 데이터 사일로(data silo) 현상: 기업이나 조직 내에서 부서별로 데이터를 각자 관리하면서 서로 데이터를 공유하지 않고 고립된 상태
  • 수집 과정 자체의 복잡성

3) 좋은 데이터의 조건

  • 신뢰할 수 있는 결과를 도출하기 위해서는 충분한 데이터의 양 뿐만 아니라 품질이 중요
  • ISO 8000: 정확성, 완전성, 일관성, 유효성, 적시성, 상호운영성
정확성 데이터가 실제 현실을 얼마나 정확하게 반영하고 있는지를 평가하는 기준
완전성 필요한 정보가 온전히 포함되어 있는지를 의미 
일관성 데이터 표준을 명확히 정의하고, 여러 시스템 간의 데이터 동기화를 자동화하여 정보가 동일하게 유지되도록 관리하는 것이 중요함.
(중복/불일치 방지)
유효성 데이터가 분석 목적에 적합한지 평가하는 기준으로, 수집된 데이터가 적절한 맥락에서 활용될 수 있어야 함.
(분석 목적에 적합)
적시성 데이터가 최신 상태를 유지하고 있는지, 필요한 시점에 활용할 수 있는지 여부
(최신성 유지)
상호운용성 데이터가 다양한 플랫폼, 시스템, 소프트웨어에서 원활하게 공유되고 활용될 수 있는지를 의미
(시스템 간 호환)

 


2. 데이터의 유형

  • 정형 데이터, 비정형 데이터, 반정형 데이터
정형 데이터 · 미리 정의된 스키마(형식 有)
· 정확성, 구조화- 관계형 데이터베이스 호환
나이, 가격, 날짜판매량, 성별, 지역
비정형 데이터 · 구조 없음
· 자유로운 형식
· 맥락과 의미 중복
· 저장 및 관리의 어려움, 분석의 어려움
소셜 미디어 텍스트의료 영상, 음성 파일동영상
반정형 데이터 · 부분적 구조(태그, 키-값, 계층 구조)
· 자기기술적 특징
· 유연한 형식
· 계층적/중첩 구조 가능
JSON, XML웹 로그, 이메일API 응답 데이터

 

 


3. 데이터 수집 방법

1) 파일

  • 데이터 분석의 가장 기본적으로 사용되는 방법 중 하나
  • CSV, Excel, JSON, XML, HTML, TXT, LOG 등
  • 일회성 분석·배치 처리에 적합
  • Pandas로 손쉽게 읽고 처리 가능
분류 형식 장점 단점 주요 용도
정형 CSV 높은 범용성
다양한 프로그램 호환
간단한 구조
SQL 호환
복잡한 구조 표현 어려움
바이너리 데이터 저장 불가
데이터 타입 정보 없음
일회성 분석
배치 처리
정형 Excel 시각적 편집 가능
수식 및 차트 지원
프로그래밍 처리 복잡
용량이 큰 편
비즈니스 리포트
데이터 편집
반정형 JSON 계층적 구조 표현
웹 API 표준
가독성 우수
바이너리 데이터 저장 불가
중첩 구조 시 복잡
CSV 대비 용량 큼
웹 API
설정 파일
NoSQL
반정형 XML 구조화된 데이터 표현
스키마 검증
파싱 오버헤드
JSON 대비 복잡
웹 서비스
설정 파일
반정형 HTML 브라우저 호환
링크 구조
데이터 추출 복잡
노이즈 많음
웹 스크래핑
웹페이지
비정형 TXT 단순한 구조
높은 호환성
용량 효율적
구조화 안됨
메타데이터 없음
분석 어려움
로그 파일
자유 텍스트
비정형 LOG 시간순 기록
디버깅 정보
시스템 추적
정규표현식 필요
구조 불일치
노이즈 많음
시스템 모니터링
에러 분석

 

 

2) API

  • 소프트웨어 간의 상호작용을 가능하게 하는 인터페이스
    • 미리 정의된 규칙과 명령어 집합
    • 개방형 데이터 접근
    • 자동화된 데이터 수집 가능
  • REST API 모델: 클라이언트는 서버에 특정 데이터를 요청하고, 서버는 이에 응하여 JSON, XML과 같은 형식의 데이터를 반환

API 프로토콜의 종류

구분 HTTP / HTTPS WebSocket GraphQL
동작방식 요청(request) → 응답(response) 양방향 통신 (자유로운 데이터 교환) 쿼리 기반 요청, 필요한 데이터만 선택적 응답
연결방식 비연결 지향 (요청마다 새로운 연결) 지속 연결 (handshake 이후 연결 유지) 단일 엔드포인트 연결, 요청마다 명시적 질의 전송
장점 간단하고 호환성 높음 실시간 데이터 전송에 유리 (이벤트 기반) 과도한 데이터 전송 방지, 유연한 질의 구조 제공
단점 실시간성 부족, 과도한 요청 발생 가능 구현 복잡도 높고, HTTP에 비해 지원 환경 제한됨 학습 필요, 캐싱 처리 어려움
활용 예시 REST API, Open API, 웹 페이지 통신 주식 시세, 채팅 앱, 실시간 알림, 게임 서버 등 복잡한 앱의 데이터 요청 최적화 (ex. 페이스북, 쇼핑몰)

 

 

3) 웹 스크래핑

  • 프로그램을 통해 웹 사이트에서 데이터를 자동으로 추출하고 수집하는 기술
  • 자동화된 방식으로 웹 페이지를 방문하고 링크를 따라 이동하면서 웹의 구조를 탐색하는 웹 크롤링과 구별
  • 웹 스크래핑 시 고려사항
    • 웹 페이지 구조 분석
    • 데이터 추출 방법
    • 웹 사이트 정책 준수
    • 정적 페이지와 동적 페이지
  • requests, BeautifulSoup, Selenium, lxml 등 다양한 파이썬 라이브러리를 활용

 

headless 모드

  • 주로 자동화 작업이나 서버 환경에서 필요
  • 눈에 보이지 않더라도 내부적으로는 실제 웹브라우저가 작동하여 페이지에 접속하고 데이터를 가져오거나 버튼을 클릭하는 등의 작업을 수행
728x90