NewstoHR.py
는 Dream of E&C 자동화 시스템의 핵심 중 하나로, 매일 아침 HR지원실 직원들에게 맞춤형 정보를 담은 이메일 뉴스레터를 자동으로 생성하고 발송하는 역할을 합니다.
이 스크립트는 다양한 외부 소스에서 데이터를 수집하고 가공하여 하나의 HTML 이메일로 종합하는 복잡한 파이프라인을 가지고 있습니다.
main()
함수를 중심으로 다음과 같은 순서로 동작합니다.
pytimekr
라이브러리를 사용하여 스크립트 실행일이 공휴일인지 확인합니다. 공휴일이면 뉴스레터를 발송하지 않고 종료합니다.get_gpt_content()
gpt-4o-mini
모델을 호출하여 4가지 주제의 짧은 콘텐츠를 생성합니다.quote
)english
)idiom
)term
)gpt_history.json
파일에 기록하고, 새로운 콘텐츠를 요청할 때 이 목록을 참고하여 중복되지 않는 결과를 받도록 프롬프트를 구성합니다.scrape_naver_news()
requests
와 BeautifulSoup4
라이브러리를 사용하여 네이버 뉴스의 속보 섹션에서 기사 제목, 요약, 링크, 이미지 등을 수집(스크랩)합니다.get_economic_stats()
build_html_content()
Jinja2
템플릿 엔진을 사용합니다.newsletter_template.html
파일에 끼워 넣어 최종 이메일 본문을 완성합니다.get_email_list_from_yaml()
email_list.yaml
파일에서 뉴스레터를 받을 사람들의 이메일 주소 목록을 읽어옵니다.send_newsletter()
smtplib
라이브러리를 사용하여 네이버 SMTP 서버에 접속합니다.openai
: GPT 모델 호출requests
, beautifulsoup4
: 웹 스크래핑jinja2
: HTML 템플릿 처리pytimekr
: 대한민국 공휴일 확인pyyaml
: YAML 파일(수신자 목록) 처리pandas
: 한국은행 API 데이터 처리smtplib
: 이메일 발송
이 스크립트는 Automail.sh
셸 스크립트에 의해 주기적으로(예: 매일 아침) 실행되도록 설정되어 있습니다.