업무 관련 뉴스레터 자동화 프로젝트 (4주차 과제)

소개

이번 GPTERS 스터디의 일환으로, AI 도구를 활용하여 뉴스레터 자동화 시스템을 구축하였습니다. 업무 중 새로운 분야나 이슈에 빠르게 적응하기 위해서는 관련 업계의 최신 뉴스를 지속적으로 접하는 것이 중요합니다. 하지만 매일 여러 사이트를 방문하고, 영어로 된 기사를 일일이 번역하는 것은 상당한 시간과 노력이 필요합니다. 이러한 번거로움을 해소하고자, 원하는 키워드만 설정하면 자동으로 관련 뉴스가 뉴스레터 형식으로 전달되는 시스템을 만드는 것을 목표로 하였습니다.

목표 설정

1. 목표 설정 : 뉴스레터 자동화 시스템 구축

  • 목표: 특정 키워드를 기반으로 뉴스 기사 제목, 요약, 번역, 이미지 등을 자동으로 수집하여 이메일로 발송하는 시스템 구현.

  • 필요성: 새로운 업무 영역에 대한 빠른 적응과 정보 습득을 위한 효율적인 도구 필요.

2. 사용 도구 및 기술

  • ChatGPT o1 preview : 초기 코드 작성 및 아이디어 생성.

  • Claude 3.5: 문제 해결 및 코드 최적화.

  • Google Apps Script: 자동화 코드 작성 및 메일 발송 기능 구현.

  • NewsAPI 및 네이버 뉴스 API: 뉴스 데이터 수집.

  • Gemini API: 무료 AI 요약 기능 추가.

  • 구글 앱스 스크립트 번역 기능: 기사 번역 기능 구현.

진행 과정

1. 초기 시스템 설계 및 코드 작성

  • ChatGPT o1 previewClaude 3.5 sonnet를 활용하여 Google Apps Script 기반의 초기 코드를 작성했습니다.

  • o1 preview에 입력한 프롬프트는 아래와 같습니다.

한국어 문자 메시지 스크린샷
  • 특정 키워드를 입력하면 해당 키워드에 대한 기사 제목을 자동으로 가져오는 방식을 활용했습니다.

    • 코드 예시 및 결과물: 아래 이미지는 초기 코드 작성 후 실행한 결과로, 입력한 키워드에 대한 기사 제목 리스트를 보여줍니다.

      웹사이트 홈페이지 스크린샷

2. 뉴스레터 제목 자동화

  • 뉴스레터의 제목이 발송 날짜에 따라 자동으로 변경되도록 코드를 수정하였습니다.

  • 날짜 자동화 코드 추가: getFormattedDate() 함수를 작성하여 날짜를 동적으로 반영하였습니다.

  • 코드 수정 부분

    • function getFormattedDate() { var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); return year + "년 " + month + "월 " + day + "일"; }

  • 결과물: 아래 이미지는 날짜가 자동으로 반영된 뉴스레터 제목입니다.

    한국 뉴스 웹사이트 스크린샷

3. 기사 요약 및 번역 기능 추가

  • 기사 요약 기능 개선: 초기에는 기사 제목만 가져오는 것에 그쳐서, 각 기사의 주요 내용을 한 줄로 요약하도록 기능을 추가했습니다.

  • 자동 번역 기능 구현: 대부분의 기사가 영어로 제공되기 때문에, 구글 앱스 스크립트의 번역 기능을 활용하여 기사를 자동으로 한글로 번역하였습니다.

    • 코드 개선 부분:

      function translateText(text) { return LanguageApp.translate(text, 'en', 'ko'); }

    • 코드 예시 및 결과물: 아래 이미지는 번역 기능이 추가된 코드의 실행 결과로, 영어 기사와 그 번역본이 함께 표시됩니다.

      한국 뉴스 웹사이트 스크린샷

4. 기사별 이미지 포함 시도

  • 이미지 포함의 필요성: 뉴스레터의 가독성과 시각적 효과를 높이기 위해 각 기사에 관련 이미지를 포함하고자 하였습니다.

  • 구글 뉴스 RSS 활용 시도: 처음에는 구글 뉴스 RSS를 활용하여 이미지를 가져오려 했으나, 이미지 URL을 추출하는 데 어려움이 있었습니다.

    • 문제점: RSS 피드에서는 이미지 정보가 충분히 제공되지 않음.

Google 로고가 표시된 이메일의 스크린샷
  • NewsAPI로 전환: 이미지 문제를 해결하기 위해 NewsAPI를 활용하기로 결정하고, 코드를 수정하였습니다.

  • 코드 수정 부분:

    • var imageUrl = article.urlToImage;

  • 코드 예시 및 결과물: 아래 이미지는 이미지 포함 기능이 추가된 뉴스레터의 모습입니다.

    배달 트럭을 가진 남자의 사진

5. AI 활용 기능 추가

  • AI 요약 기능 도입: 기사의 핵심 내용을 보다 효과적으로 전달하기 위해 AI 기반 요약 기능을 추가하기로 하였습니다.

  • Gemini API 활용: 무료로 사용할 수 있는 Gemini API를 활용하여 각 기사를 AI가 요약한 내용을 포함하였습니다.

  • 코드 추가 부분:

    • function getSummary(text) { // Gemini API 호출 코드 return summary; }

  • UI 디자인 개선: 뉴스레터의 디자인을 개선하기 위해 아이콘과 스타일을 추가하였습니다.

  • 코드 예시 및 결과물: 아래 이미지는 AI 요약 기능과 개선된 디자인이 적용된 뉴스레터입니다.

    배달 트럭을 가진 남자의 사진

6. 한글 기사 추가 및 다중 소스 활용

  • 한글 기사 수집의 필요성: 영어 기사뿐만 아니라 한글 기사도 함께 제공하여 정보의 다양성을 높이고자 하였습니다.

  • 네이버 뉴스 API 통합: 뉴스 API가 한글 기사 소스가 부족하므로, 네이버 뉴스 API를 추가로 통합하였습니다.

  • 키워드별 소스 분기 처리:

    • if (isKoreanKeyword(keyword)) { // 네이버 뉴스 API 호출 } else { // NewsAPI 호출 }

  • 코드 예시 및 결과물: 아래 이미지는 한글 키워드로 검색하여 한글 기사와 요약을 제공하는 뉴스레터입니다.

    쿠팡뉴스 홈페이지 화면 캡처

7. 자동 트리거 설정 및 최종 테스트

  • 자동 발송 설정: 원하는 시점에 뉴스레터가 자동으로 발송되도록 Google Apps Script의 트리거 기능을 설정하였습니다.

    • 설정 방법:

      1. Google Apps Script의 트리거 메뉴로 이동.

      2. 새 트리거 추가.

      3. 함수 선택 및 시간 기반 트리거 설정.

  • 최종 테스트: 전체 시스템을 테스트하여 정상적으로 뉴스레터가 발송되는 것을 확인하였습니다.

    • 테스트 결과물: 아래 이미지는 최종적으로 발송된 뉴스레터의 이메일 화면입니다.


결과와 배운 점

성공한 부분

  • 자동화 시스템 구축: 뉴스 수집부터 요약, 번역, 이미지 포함, 이메일 발송까지 전체 프로세스를 자동화하였습니다.

  • 다국어 지원: 영어와 한글 기사를 모두 수집하여 다양한 정보를 제공할 수 있게 되었습니다.

  • AI 활용 극대화: 무료로 제공되는 API와 AI 도구를 활용하여 비용 효율적으로 시스템을 구축하였습니다.

어려웠던 부분 및 해결 방법

  • 이미지 추출의 어려움: 구글 뉴스 RSS를 통한 이미지 추출에 한계가 있었으나, NewsAPI로 전환하여 해결하였습니다.

  • 번역 호출 제한: 구글 앱스 스크립트의 번역 기능 호출 제한으로 인해 번역 품질과 속도에 문제가 있었으나, 번역 횟수 최적화캐싱 기법을 통해 개선하였습니다.

  • 한글 기사 부족 문제: 네이버 뉴스 API를 통합하여 한글 기사 수집을 원활하게 하였습니다.

향후 개선 사항

  • 뉴스 소스 다양화: 현재의 뉴스 소스 외에 Bing News API 등 다양한 API를 추가로 통합하여 더 풍부한 기사를 제공할 예정입니다.

  • 번역 품질 개선: DeepL API 등 다른 번역 서비스를 활용하여 번역 품질을 향상시킬 계획입니다.

  • AI 요약 기능 강화: ChatGPT API 등을 활용하여 더욱 정교한 요약과 인사이트 제공 기능을 추가할 예정입니다.

  • 사용자 인터페이스 개선: 뉴스레터의 디자인을 더욱 개선하고, 사용자 정의 설정 기능을 추가하여 개인화된 뉴스를 제공할 계획입니다.


결론

이번 프로젝트를 통해 코딩에 대한 지식이 1도 없는 사람이라도 AI와 자동화 기술을 활용하여 업무 효율성을 크게 향상시킬 수 있음을 경험하였습니다. 특히, 무료로 제공되는 다양한 API와 도구들을 활용하여 비용을 최소화하면서도 원하는 기능을 구현할 수 있었습니다. 앞으로도 지속적인 개선을 통해 더 완성도 높은 뉴스레터 자동화 시스템을 고도화 할 예정입니다.

7
4개의 답글

👉 이 게시글도 읽어보세요