매일 아침 6시, 정책자료 브리핑 받기! -기획단계

소개

  • 정부의 정책 발표를 지속적으로 체크하고 있음. 구글 알리미 또는 정부기관 메일링리스트를 이용하고, 필요하면 해당 부처 홈페이지에서 내용을 확인함. 

  • 많은 이메일을 확인하는 시간을 단축 시키고자, 매일 아침 이메일로 전날 발표된 목록만 받고 필요시 상세내용을 확인하는 자동화를 만들고자 함 

진행방법

  • 처음 시도는 chatgpt를 이용하여 직접 목록을 작성하려고 시도함

  • 그러나 웹페이지를 알려줌에도 불구하고 전일자 자료를 누락하거나 엉뚱한 자료를 정리함 

너는 경력 10년차 정책연구소 데이터 분석관이야 
특정일에 발표된 보도자료 목록을 정리하여 보고하는 임무를 수행중이야

1. 아래 웹페이지에서 현재일 기준 -1일에 등록된 게시물을 먼저 확인해줘. 
2. 기준일에 해당하는 게시물에서 [제목], [담당부서], [등록일] 을 추출한 뒤 표로 정리해줘  

중소기업벤처부 : https://www.mss.go.kr/site/smba/ex/bbs/List.do?cbIdx=86#

## 주의사항
지정한 날짜 이외 데이터는 포함시키지 말아줘 

## 출력형식 
 -표로 작성, 열에는 [부처명] [등록일] [제목] [담당부서] 
 -제목에는 해당 게시판 링크를 포함할 것
한국어 텍스트가 있는 검은 화면

  • 시행착오 끝에 웹페이지 소스를 붙여주면 제대로 뽑게 됨. 부처마다 반복하는 건 시간낭비로 판단됨

  • 공공데이터포털에서 자료를 직접 끌어오고 스프레드시트에 정리하는 방향으로  변경함 

  • 그에 따른 계획을 작성함

[자동화 진행 계획] 

  1.  공공데이터포털 api 스터디 및 발급 

  2.  앱스 스크립트 스터디 및 공공api 연결 

  3.  스프레드 시트 작성 

  4.  앱스 스크립트 이메일 발송 

  5.  이메일 주소를 스프레드 시트에 추가하여 대량발송 

BUT!!!  

  • 목요일밤 스터디방에서 발표자 분이 gpt에게 방법과 프로세스를 묻는 화면을 보고 꺠달음

  • gpt가 저보다 똑똑한 존재라는 것을 ㅠㅠ 

  • 깊이 반성하고 다시 gpt에게 물어봄 

너는 10년차 정책연구소 분석직원이야 

정부부처 홈페이지에 게시되는 보도자료를 매일 아침 6시에 체크하여 전날 업로드된 목록을 받고 부처별로 정리해서 상사에게 이메일로 보고를 할거야. 

보고형식은 표로 만들고 
열에는 [부처, 등록일, 제목, 담당부서] 를 작성
제목에는 해당 게시글 링크를 포함하여야 해 

방법은 공공데이터 포털에서 api키를 발급받아 시트로 정리한 후 표로 만들어 이메일을 발송할거야 

조사할 부처는 국세청, 고용노동부, 중소기업벱처부, 산업통상자원부, 과학기술정보통신부를 대상으로 할거야 

위와 같은 내용의 과정을 자동화하는 프로세스를 검토하고, 진행계획을 작성해줘 
  • 그 결과 아래와 같은 답변이 나오게 됨 

자동화 프로세스 및 진행 계획 (Google Apps Script와 스프레드시트를 활용)


1. 프로세스 개요

  • 목표: 매일 아침 6시에 국세청, 고용노동부, 중소벤처기업부, 산업통상자원부, 과학기술정보통신부의 보도자료 목록을 확인하고, 이를 부처별로 정리하여 상사에게 이메일로 보고하는 시스템을 자동화.

  • 방법: 공공데이터 포털 API를 통해 데이터를 수집하여 Google Apps Script로 Google 스프레드시트에 정리 후, 표 형태로 이메일 발송.


2. 진행 계획

1단계: API 키 발급 및 설정

  • 공공데이터 포털에서 API 키 발급

    • 공공데이터 포털에 로그인하여 API 키를 신청하고 발급받습니다.

    • 각 조사 대상 부처별 API 엔드포인트 URL을 확인합니다.

2단계: Google 스프레드시트 준비

  • 스프레드시트 생성 및 설정

    • Google 스프레드시트를 생성하고, 데이터가 정리될 시트를 준비합니다.

    • 열은 [부처, 등록일, 제목(링크 포함), 담당부서]로 구성합니다.

3단계: Google Apps Script 스크립트 작성 및 설정

  • Google Apps Script 프로젝트 생성 및 코드 작성

    • Google 스프레드시트에서 "확장 프로그램 > Apps Script"로 이동하여 새 프로젝트를 생성합니다.

    • 아래와 같은 스크립트를 작성합니다:

      function fetchGovernmentData() {
        const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
        const sheet = spreadsheet.getSheetByName('Sheet1'); // 시트 이름에 맞게 설정
        sheet.clear(); // 기존 데이터 초기화
      
        const apiKey = 'YOUR_API_KEY'; // 발급받은 API 키 입력
        const urls = [
          'https://api.endpoint.gov.kr/national-tax-service?apiKey=' + apiKey,
          'https://api.endpoint.gov.kr/ministry-employment-labor?apiKey=' + apiKey,
          'https://api.endpoint.gov.kr/smes-startups?apiKey=' + apiKey,
          'https://api.endpoint.gov.kr/trade-industry-energy?apiKey=' + apiKey,
          'https://api.endpoint.gov.kr/science-technology?apiKey=' + apiKey
        ];
      
        const headers = ['부처', '등록일', '제목', '담당부서'];
        sheet.appendRow(headers);
      
        urls.forEach(url => {
          const response = UrlFetchApp.fetch(url);
          const data = JSON.parse(response.getContentText());
          
          data.results.forEach(item => {
            const row = [
              item.department, // 부처
              item.registerDate, // 등록일
              '=HYPERLINK("' + item.link + '", "' + item.title + '")', // 제목 (링크 포함)
              item.responsibleDept // 담당부서
            ];
            sheet.appendRow(row);
          });
        });
      }
      름에 맞게 설정 sheet.clear(); // 기존 데이터 초기화 const apiKey = 'YOUR_API_KEY'; // 발급받은 API 키 입력 const urls = [ 'htt
  • 스크립트 테스트 및 디버깅

    • 스크립트를 실행하여 데이터가 제대로 수집되고 스프레드시트에 정리되는지 확인합니다.

4단계: 이메일 자동 발송 스크립트 작성

  • 이메일 발송 기능 추가

    function sendEmailReport() {
      const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
      const sheet = spreadsheet.getSheetByName('Sheet1');
      const range = sheet.getDataRange();
      const values = range.getValues();
    
      let htmlContent = '<table border="1" style="border-collapse: collapse;">';
      values.forEach((row, index) => {
        htmlContent += '<tr>';
        row.forEach(cell => {
          htmlContent += index === 0 ? `<th>${cell}</th>` : `<td>${cell}</td>`;
        });
        htmlContent += '</tr>';
      });
      htmlContent += '</table>';
    
      MailApp.sendEmail({
        to: '[email protected]', // 상사 이메일 주소로 설정
        subject: 'Daily Government Data Report',
        htmlBody: htmlContent
      });
    }
    
  • 스크립트 테스트 및 이메일 발송 확인

5단계: 스케줄러 설정

  • Google Apps Script 트리거 설정

    • Apps Script 편집기에서 Triggers 메뉴 선택

    • fetchGovernmentDatasendEmailReport 함수를 매일 오전 6시에 실행되도록 각각 트리거 설정


3. 진행 일정

  • 1주차: API 키 발급 및 스프레드시트 준비

  • 2주차: 데이터 수집 스크립트 작성 및 테스트

  • 3주차: 이메일 발송 스크립트 작성 및 테스트

  • 4주차: 전체 프로세스 통합 및 트리거 설정, 프로세스 검증 및 최종 조정


4. 예상 효과

  • 수작업 절감과 데이터 수집의 자동화

  • 빠르고 정확한 보고서 생성 및 전송

  • 효율적인 상사 보고로 업무 효율성 증가


이와 같이 전체 프로세스와 진행 계획이 설정되며, 추가 요구사항이나 수정이 필요한 경우 유연하게 반영할 수 있습니다.


  • 정리하면 “시키는 대로만 하면 해결돼” 임. 처음 보는 용어와 툴들에 헤메겠지만 뭔가 해결점이 보이는 기분임 

결과와 배운 점

  • ‎​ 결과값에 엉뚱한 데이터를 보여주고, 틀렸다고 반복 질문하니 아예 데이터가 없다고 답변하는 gpt를 보면서 놀라웠음.  

  •  gpt는 내가 시키는 것들을 알아서 해줄거라 생각했는데 오해였음. 

  • 오히려 내가 할 수 있는 방법을 알려 달라고 하는 것이 바람직한 것을 배우게 됨. 


향후계획

  1. 앱스 스크립트/스프레드시트 학습

  2. 이메일 자동전송 학습 단계를 진행할 계획임 


도움 받은 글

make로 구글 폼에 들어온 문의에 대한 자동 답 문자 및 이메일 회신하기 자동화

공공데이타포털을 활용한 데이터 검색하기

공공데이터 활용방법

공공데이터 포털 GPTs랑 연동하기


10
8개의 답글

👉 이 게시글도 읽어보세요