파일 구조 및 파일 배열 형태 자동 업데이트 대시보드 구성 사례
소개
시도하고자 했던 것과 그 이유를 알려주세요.
지원사업 진행 시 파일 관리의 자동화된 대시보드를 만들고자 했습니다. 다양한 사업별로 쌓이는 파일과 폴더를 체계적으로 관리하기 위해 Google 스프레드시트를 활용한 자동화 시스템을 구축했습니다. 이로 인해 복잡한 폴더 구조를 쉽게 파악하고, 실시간으로 업데이트되는 파일 현황을 한눈에 볼 수 있었습니다.
진행 방법
어떤 도구를 사용했고, 어떻게 활용하셨나요?
사용 도구: Google Apps Script 및 Google Drive API
활용 방법:
Google Drive API를 활성화하여 Google Cloud Platform에서 API 연동을 설정했습니다.
OAuth 2.0 인증을 통해 Access Token 및 Refresh Token을 발급받아 보안 연결을 유지했습니다.
Google Drive에서 파일 및 폴더의 변경 사항을 감지하고, Google 스프레드시트에 자동으로 업데이트하도록 했습니다.
개발 프롬프트:
// 1. Drive API를 사용해 변경 사항을 가져오는 함수
var ACCESS_TOKEN = '복사한_ACCESS_TOKEN_입력'; // OAuth2로 받은 Access Token
function getDriveChanges(pageToken) {
var url = 'https://www.googleapis.com/drive/v3/changes?pageToken=' + pageToken;
var options = {
method: 'get',
headers: {
'Authorization': 'Bearer ' + ACCESS_TOKEN
}
};
var response = UrlFetchApp.fetch(url, options);
var data = JSON.parse(response.getContentText());
return data;
}
// 2. 변경 사항을 가져오는 함수
function listDriveChanges() {
var pageToken = '여기에_가져온_startPageToken_입력'; // 최신의 startPageToken을 입력
var url = 'https://www.googleapis.com/drive/v3/changes?pageToken=' + pageToken;
var options = {
method: 'get',
headers: {
'Authorization': 'Bearer ' + ACCESS_TOKEN
}
};
var response = UrlFetchApp.fetch(url, options);
var changes = JSON.parse(response.getContentText());
processChanges(changes.changes); // 변경 사항 처리 함수 호출
}
// 3. 변경 사항을 스프레드시트에 기록하는 함수
function processChanges(changes) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
changes.forEach(function(change) {
if (change.file) {
var file = change.file;
sheet.appendRow([
file.name,
file.mimeType,
file.webViewLink,
new Date(file.modifiedTime)
]);
}
});
}
// 4. Google Drive의 파일 구조 탐색 및 업데이트 함수
function syncDriveWithChanges() {
var folderId = '폴더_ID_여기에_입력'; // 최상위 폴더 ID 입력
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear(); // 기존 데이터 초기화
sheet.appendRow(['상위 폴더', '중위 폴더', '하위 폴더', '파일 이름', '유형', '링크', '수정 날짜']);
// 폴더 구조 탐색 및 업데이트
var rootFolder = DriveApp.getFolderById(folderId);
processFolder(rootFolder, '', '', '', sheet);
// 변경 사항을 실시간으로 가져와서 업데이트
var changes = getDriveChanges();
processChanges(changes);
}
Tip: Google Drive API와 Apps Script를 활용해 파일 구조 자동 업데이트 대시보드를 실행하세요.
결과와 배운 점
배운 점과 나만의 꿀팁을 알려주세요.
배운 점: Google Drive API와 Apps Script를 결합해 간단하고 효율적인 자동 업데이트 대시 보드를 구축할 수 있었습니다.
꿀팁: Google 스프레드시트의 자동화 기능과 API 연동을 통해, 수동으로 관리하던 파일 업데이트 과정을 대폭 단축할 수 있었습니다.
과정 중에 어떤 시행착오를 겪었나요?
OAuth 2.0 인증 과정에서 Access Token 만료 문제가 발생하여, Refresh Token을 활용한 자동 갱신을 추가 설정해야 했습니다.
도움이 필요한 부분이 있나요?
Google Drive API의 사용량 제한에 따른 최적화 방안이 필요할 수 있습니다.
앞으로의 계획이 있다면 들려주세요.
Google Forms와 Google Sheets를 결합하여, 더 다양한 데이터 구조를 자동으로 관리할 계획입니다.