소개
정부의 정책 발표를 지속적으로 체크하고 있음. 구글 알리미 또는 정부기관 메일링리스트를 이용하고, 필요하면 해당 부처 홈페이지에서 내용을 확인함.
많은 이메일을 확인하는 시간을 단축 시키고자, 매일 아침 이메일로 전날 발표된 목록만 받고 필요시 상세내용을 확인하는 자동화를 만들고자 함
진행방법
처음 시도는 chatgpt를 이용하여 직접 목록을 작성하려고 시도함
그러나 웹페이지를 알려줌에도 불구하고 전일자 자료를 누락하거나 엉뚱한 자료를 정리함
너는 경력 10년차 정책연구소 데이터 분석관이야
특정일에 발표된 보도자료 목록을 정리하여 보고하는 임무를 수행중이야
1. 아래 웹페이지에서 현재일 기준 -1일에 등록된 게시물을 먼저 확인해줘.
2. 기준일에 해당하는 게시물에서 [제목], [담당부서], [등록일] 을 추출한 뒤 표로 정리해줘
중소기업벤처부 : https://www.mss.go.kr/site/smba/ex/bbs/List.do?cbIdx=86#
## 주의사항
지정한 날짜 이외 데이터는 포함시키지 말아줘
## 출력형식
-표로 작성, 열에는 [부처명] [등록일] [제목] [담당부서]
-제목에는 해당 게시판 링크를 포함할 것
시행착오 끝에 웹페이지 소스를 붙여주면 제대로 뽑게 됨. 부처마다 반복하는 건 시간낭비로 판단됨
공공데이터포털에서 자료를 직접 끌어오고 스프레드시트에 정리하는 방향으로 변경함
그에 따른 계획을 작성함
[자동화 진행 계획]
공공데이터포털 api 스터디 및 발급
앱스 스크립트 스터디 및 공공api 연결
스프레드 시트 작성
앱스 스크립트 이메일 발송
이메일 주소를 스프레드 시트에 추가하여 대량발송
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
메뉴 선택fetchGovernmentData
와sendEmailReport
함수를 매일 오전 6시에 실행되도록 각각 트리거 설정
3. 진행 일정
1주차: API 키 발급 및 스프레드시트 준비
2주차: 데이터 수집 스크립트 작성 및 테스트
3주차: 이메일 발송 스크립트 작성 및 테스트
4주차: 전체 프로세스 통합 및 트 리거 설정, 프로세스 검증 및 최종 조정
4. 예상 효과
수작업 절감과 데이터 수집의 자동화
빠르고 정확한 보고서 생성 및 전송
효율적인 상사 보고로 업무 효율성 증가
이와 같이 전체 프로세스와 진행 계획이 설정되며, 추가 요구사항이나 수정이 필요한 경우 유연하게 반영할 수 있습니다.
정리하면 “시키는 대로만 하면 해결돼” 임. 처음 보는 용어와 툴들에 헤메겠지만 뭔가 해결점이 보이는 기분임
결과와 배운 점
결과값에 엉뚱한 데이터를 보여주고, 틀렸다고 반복 질문하니 아예 데이터가 없다고 답변하는 gpt를 보면서 놀라웠음.
gpt는 내가 시키는 것들을 알아서 해줄거라 생각했는데 오해였음.
오히려 내가 할 수 있는 방법을 알려 달라고 하는 것이 바람직한 것을 배우게 됨.
향후계획
앱스 스크립트/스프레드시트 학습
이메일 자동전송 학습 단계를 진행할 계획임
도움 받은 글
make로 구글 폼에 들어온 문의에 대한 자동 답 문자 및 이메일 회신하기 자동화