안녕하세요! AI 도구들을 적극적으로 활용하여 그 어느때보다 일을 많이하고 있는 황인준입니다.
저는 얼마전 아는 지인에게 얼마 전, 뉴스 모니터링 자동화 요청을 받았습니다. 이 프로젝트를 통해 파이썬을 활용한 뉴스 크롤링 자동화 과정을 공유하고자 합니다.
프로젝트 시작: 요구 사항 파악과 미팅
처음 프로젝트를 시 작할 때, 담당자들과의 미팅을 통해 주요 핵심 과제와 현재 작업 환경에 대해 상세히 논의했습니다. 이를 통해 어떤 종류의 뉴스를 모니터링해야 하는지, 어떤 빈도로 데이터를 수집해야 하는지, 그리고 어떤 환경에서 시스템이 운영될지를 명확히 이해할 수 있었습니다.
데일리로 특정 키워드에 대한 뉴스 기사들을 데일리하게 수집하는 일이였고 단순 수집 뿐만 아니라, 번역 및 기사에 대한 몇가지 판단(긍정, 부정 / 단순 언급 여부 판단)을 해야하는 일이였습니다.
이 과정에서 작성된 회의록은 Claude 를 통해서 개발기획서로 만들었습니다.
기술 스택 선정
본격적으로 들어가기 앞서 가장 핵심이였던 뉴스 정보를 가져오는 방법을 결정해야 했습니다. Naver SearchAPI와 파이썬 셀레니움(Selenium) 두가지였습니다.
기본적으로 제공되는 API를 활용하는 것이 가장 효율적이라 생각했지만, 네이버에서 제공하는 데이터가 한정적이어서 어쩔 수 없이 셀레니움을 선택하게 되었습니다.
언론사 정보를 별도로 제공해주지 않았습니다.....
셀레니움은 브라우저를 자동으로 제어할 수 있어, 동적인 웹 페이지에서도 필요한 데이터를 효과적으로 수집할수 있습니다
하지만 셀레니움을 선택함으로써 사용자에게 제공할 수 있는 인터페이스가 필요해졌습니다.
구현
사용 기술 스택
사용 언어: Python
주요 라이브러리: Selenium, PySide6, pandas
IDE: CursorAI
AI 도구: ChatGPT o1 Preview, Claude, V0
구현단계
구현은 아래와 같이 5단계로 나눠서 작업했습니다
PySide6 를 활용하여 GUI 프로그램 구현
인터페이스에 간단한 검색창과 검색 버튼을 네이버 뉴스 검색 처리
검색 결과 확인 후 검색 조건 추가(제외할 검색어, 검색 기간 , sorting 처리)
검색 결과 CSV 다운로드
테스트
기획 단계에서 별도의 화면 기획서가 없었기 때문에 UI 프로토타입을 를 먼저 그려서 완성된 모습을 먼저 그려봤습니다.
이 과정에서 Vercel에서 만든 v0 라는 AI tool 이 도움이 많이 됐습니다.
이미지 첨부도 되어 너무 쉽고 간단하고 예쁘게 UI를 만들어줬습니다.
이렇게 React로 먼저 UI의 완성된 모습을 구현했습니다. 검색창, 결과 목록, 필터링 옵션 등 필요한 모든 요소를 시각화하고 이렇게 만든 프로토타입을 기반으로 Python GUI로 변환하는 작업을 진행했습니다.
생각보다 PySide6 를 사용해서 원하는대로 구현하기는 어려웠지만 1차적으로 필요했던 기능은 다 추가된 모습입니다.
사실은 이제 크롤링은 너무 흔하기도 하고 이 사례에서 진짜로 몇가지 공유드리고 싶은 내용은 다음과 같습니다!
개빌자, 비개발자 격차 축소
파이썬 개발자보다 GPT가 더 잘함
버그와 에러 메시지 두려워하지 않기
버그나 에러 나면 에러 메시지 GPT한테 던지기
GPT한테 로그 찍어달라고 하기
상황에 맞는 AI 도구 활용하기
ChatGPT o1 preview : 전체적인 플로우 및 어려운 일 시키기
claude : 대충 막 시킬 일
v0 : UI 짜달라하기
목적이 있는 질문하기
물어보는 것도 구체적으로 봐야함
뭘 모르는지 GPT랑 이야기 하고 질문하기
라이브러리 활용하기
앵간한건 누가 만들어놓음
이상한 곳에 시간 쓰지 말기
중간중간 리팩토링하기
너무 길어지면 사람도 힘들고 AI 도 힘들어함
GIT 활용해보기
무조건 AI 가 짜준 코드 붙여넣으면 되던게 안됨
어디가 바뀐지는 알고 붙여넣기
단계별로 나눠서 구현하기
완성된 모습 또는 기대했던 모습을 설정하고
작은 부분부터 하나씩 구현하기
cursor 최고
최고
이상입니다! 사실 이 글을 쓰면서도 AI의 도움을 많이 받았는데 글 쓰는 것처럼 코드 작성도 여러가지 비슷하다고 생각합니다. 제가 했던 플로우대로 단계적으로 나눠서 AI랑 씨름을 하다보면 언젠가 해결될거라고 생각합니다.
그리고 마지막으로, 역시 CursorAI 최고...👍