요구사항을 먼저 구조화
이번 과제는 요구사항이 명확했다: (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 키를 코드에서 분리한 것도 앞선 학습이 그대로 이어진 부분이다.