Captain's Log
← Observatory
Observatory·

네이버 API로 뉴스 수집 — 함수화와 모듈화

네이버 검색 API로 핀테크 뉴스 제목을 수집해 MySQL과 CSV에 저장하고, 반복되는 코드를 함수화·모듈화(myfunc)로 정리한 기록. 수집 스크립트를 '재사용 가능한 도구'로 만들기.

TrainingScrapingAPI

요구사항을 먼저 구조화

이번 과제는 요구사항이 명확했다: (1) 네이버 API로 핀테크 뉴스 제목 수집 → (2) MySQL 저장 → (3) CSV 저장 → (4) 함수화 → (5) 모듈화. 제출물도 수집파일·DB 모듈·결과 캡처로 정해져 있었다. 그래서 처음부터 재사용을 염두에 두고 코드를 짰다.

requests의 기본기 복습

import requests
r = requests.get(url, params=payload, headers=headers)
print(r.status_code)   # 200 정상 / 400·500 오류
response = r.json()
  • r.text: utf-8로 인코딩해 한글이 잘 보이는 형태
  • r.content: 서버가 보낸 원본 (HTML 파싱에 사용)
  • r.json(): 내부 json 모듈로 자동 변환

네이버 API는 인증을 위해 X-Naver-Client-Id, X-Naver-Client-Secret헤더에 담아야 한다는 점이 API마다 다른 규약이라는 걸 알게 했다.

함수화 그리고 모듈화

같은 로직을 반복하지 않으려고 수집·저장을 함수로 묶고, 공용 함수를 별도 파일(myfunc)로 분리했다.

import sys
sys.path.append("../../")
from myfunc import ...

.env 를 경로 지정해 불러오고(load_dotenv(경로)), API 키를 코드에서 분리한 것도 앞선 학습이 그대로 이어진 부분이다.

정리

"한 번 쓰고 버리는 스크립트"와 "모듈"의 차이를 체감했다. 함수로 묶고 파일로 분리하는 순간, 다음 과제(서울시 부동산 실거래가 수집 등)에서 같은 도구를 다시 꺼내 쓸 수 있었다. 파이썬 기초에서 배운 함수·클래스가 여기서 실전 도구가 됐다.