GN⁺: 1,600일간 진행된 데이터 사이언스 프로젝트의 실패
(lellep.xyz)- 1,600일 동안 진행한 데이터 사이언스 프로젝트가 관심을 잃으면서 실패로 끝남
- 텍스트 데이터를 다루는 새로운 도전을 시도하기 위해 "뉴스티커 데이터 수집 및 분석"을 진행
- 2020년 3월 COVID-19 관련 뉴스를 제공하는 독일 공영 뉴스 사이트 Tagesschau의 뉴스티커를 데이터 소스로 선정
- 2022년 3분기에 COVID-19가 덜 중요해지면서 우크라이나-러시아 전쟁 관련 뉴스티커로 확장
- 데이터 메타패턴(게시 빈도 등) 및 주제별 의미 분석 수행
- 단기 데이터 탐색만 수행, 실질적 분석은 미완성
- 2024년 3분기에 관심 감소 및 시간 부족으로 프로젝트 중단
데이터 수집 및 시스템 설계
- 2020년부터 2024년까지 1,600일간 매일 뉴스 데이터의 URL을 수집하고 원시 데이터를 다운로드
- Tagesschau 는 매일 짧은 뉴스 스토리 목록이 있으며, 각 스토리는 타임스탬프, 헤드라인, 본문 텍스트 및 멀티미디어 요소를 포함
- 수작업과 Python 기반으로 반자동화된 데이터 파이프라인을 구축하여 비정형 데이터를 구조화된 뉴스 스니펫으로 변환함
- URL 수집 자동화가 어려워 매일 웹사이트를 방문하여 수동으로 링크를 수집하는 방식을 택함. 이는 Tagesschau의 비구조적 URL 스키마 때문
- 4-8주마다 Python으로 HTML 페이지를 일괄 처리하여 원시 데이터로 저장함
- BeautifulSoup4를 활용해 HTML을 파싱하고 SQLite 데이터베이스에 저장
- 프로젝트의 많은 부분이 자동화되었으나, 수동 ETL 파이프라인과 실제 분석은 자동화되지 않음
- DOM 구조 변경에 대비하여 원시 HTML 데이터 보존 강조
프로젝트 실패의 교훈
-
스토리텔링 고려:
- 프로젝트 초기부터 스토리텔링을 구상해 결과를 쉽게 공유할 수 있도록 설계
-
빠른 결과 도출:
- 데이터를 모으기만 하지 말고, 작은 데이터셋으로 빠르게 초기 분석을 수행
- 결과를 공개하며 작업 동기를 유지 (“Show Your Work” 접근법 활용)
-
자동화:
- 데이터 수집 및 ETL 파이프라인을 최대한 자동화하여 반복 작업 최소화
- 현재라면 LLM 기반 AI 에이전트를 활용했을 것
-
데이터 수집 빈도 평가:
- 수집 주기를 미리 설정 (예: 매일 vs 30초 간격)
- 자동화 가능한 데이터 수집 빈도를 설정
-
원시 데이터 저장:
- 원시 데이터를 저장해 향후 변경된 파싱 로직에 대응 가능
-
클라우드 활용:
- 간단하고 신뢰성 높은 인프라를 구축하고 실무 기술 습득 기회 마련
결론: 실패를 통한 성장
- 실패한 프로젝트도 학습 경험이 되어 "더 나은 데이터 실무자"가 되는데 도움이 됨
- 데이터 과학 프로젝트의 실패는 귀중한 학습 경험이자 “전투 흉터”를 쌓는 기회
- 자연어 처리를 통한 자동화 기회를 활용하지 못한 것이 아쉬움
- 약 10만 건의 뉴스 스니펫 분석 기회를 놓친 것도 큰 아쉬움
- 2024년 미국 선거 등 새로운 뉴스티커가 계속 나오고 있어 다른 이들이 이어받을 수 있음
- 관심 있는 사람이 프로젝트를 이어가기를 희망하며, 모든 데이터를 공유할 준비가 되어 있음
“Go out and build something!”
Hacker News 의견
-
이 프로젝트를 실패라고 부르기보다는 호기심으로 시도했다가 중단한 것이라고 봄. 블로그에 글을 올리고 HN에 소개된 것만으로도 성공이라고 생각함
- 프로젝트를 완료했다면 Python을 사용하여 여러 분석에 활용될 데이터셋을 공개했을 것임
- 원시 데이터셋을 공개하고 이를 성공으로 간주할 수 있음
- LLMs의 발전으로 인해 이제는 AI 에이전트로 포장된 기초 모델을 고려할 것임
-
웹 스크래핑은 여전히 어려운 부분이며, 사이트가 스크래핑을 방지하려는 노력이 많음
-
Tagesschau 웹사이트를 매일 방문하여 링크를 수집하는 수작업 과정이 있었음. 이는 게임 계획으로 적절하지 않았음
-
COVID 관련 데이터 과학 취미 프로젝트를 진행했으나, 6개월 후 흥미를 잃음. 클라우드에서 스크래퍼가 계속 작동 중임
-
수작업 대신 RSS 피드를 활용하여 자동화했어야 했음
-
프로젝트 초기부터 피드백을 받는 것이 중요함. 이는 프로젝트의 방향성을 조정하고 흥미를 되살릴 수 있는 기회를 제공함
-
다양한 관심사를 아우르는 프로젝트의 역동성을 좋아함. 여러 프로젝트를 통해 배운 것을 활용하여 새로운 아이디어를 얻음
-
제목이 오해를 불러일으킬 수 있음. 단순히 뉴스 피드를 스크래핑하는 작업은 며칠이면 설정할 수 있음
-
개인 프로젝트를 완성하는 데 어려움을 겪는 사람들이 많음. 데이터 과학은 데이터셋에 대한 통찰을 발견하는 탐구적 작업임
-
데이터 수집 과정에서 Tagesschau 웹사이트의 비구조적 URL 스키마 때문에 수작업이 필요했음. 안정적인 데이터 소스가 필요함
-
웹사이트 개발자는 스크래퍼를 고려하지 않음. 고유한 데이터셋을 수집하려면 웹 개발자에게 공개 API 제공을 요청하는 것이 좋음