거래처를 여럿 상대하는 업무에서 가장 흔한 사고는 기능 오류가 아니라 권한 실수입니다. 거래처 A의 담당자가 거래처 B의 자료를 보거나, 거래처에 절대 보이면 안 되는 본사 내부 정산이 공유 링크 하나로 새어 나가는 일입니다. 광고대행 사업을 새로 시작하는 고객사의 업무 자동화를 만들 때, 우리는 이 문제를 기능보다 먼저 풀어야 할 전제로 두었습니다. 거래처가 늘 때마다 권한을 사람이 손으로 짜맞추는 방식은 언젠가 반드시 사고가 나기 때문입니다. 그래서 공유의 경계를 사람의 주의력이 아니라 드라이브 구조 자체로 고정하는 방향을 택했습니다.
드라이브를 세 갈래로 나눈다
기본 골격은 드라이브를 성격에 따라 나누는 것입니다. 본사 내부 운영만을 위한 비공개 드라이브가 하나 있고, 거래처마다 별도의 드라이브가 있으며, 새 거래처를 찍어내기 위한 템플릿 드라이브가 따로 있습니다. 본사 비공개 드라이브에는 대표만 접근하고, 거래처별 드라이브에는 본사와 그 거래처를 맡은 담당 직원만 멤버로 들어갑니다.
핵심은 거래처 드라이브 안에서 한 번 더 나눈다는 점입니다. 같은 거래처 드라이브라도 그 안에 거래처에 공유할 영역과 본사 내부용 영역을 폴더로 분리합니다. 외부(거래처) 공유는 오직 거래처 공유 영역 폴더 단위로만 엽니다. 이렇게 하면 "이 파일을 거래처에 보여줘도 되나"를 매번 판단할 필요가 없습니다. 거래처 공유 폴더 안에 있으면 보이고 본사 내부용 폴더에 있으면 보이지 않습니다. 경계가 파일 하나하나의 공유 설정이 아니라 폴더 위치로 결정됩니다.
폴더 트리를 코드로 찍어낸다
이 구조가 실제로 힘을 발휘하려면 새 거래처를 만들 때 똑같은 트리가 자동으로 서야 합니다. 그래서 폴더 트리 생성을 앱스스크립트로 한 번에 처리했습니다. 거래처 루트 아래에 공유 자료, 보고 자료(그 아래 구글·네이버·유튜브·기타), 월별 자료(그 아래 광고비 보고서·세금계산서·플랫폼 보고서)가 정해진 형태로 생성됩니다.
여기서 한 가지 설계를 더 얹었습니다. 폴더를 만드는 함수가 생성된 폴더들의 ID를 경로별 맵으로 반환하도록 했습니다. 이 맵은 그대로 알림 자동화의 배선에 쓰입니다. 즉 "폴더를 만드는 일"과 "그 폴더를 감시해 업로드 알림을 보내는 일"이 서로 다른 곳에 흩어진 설정이 아니라, 하나의 생성 결과에서 이어집니다. 새 거래처를 세팅할 때 폴더를 만들고 그 반환값을 알림 설정에 넣으면 감시까지 연결되므로, 사람이 폴더 ID를 눈으로 복사해 옮기다 틀리는 일이 사라집니다.
개인정보와 자격증명은 구조 밖에 둔다
권한 설계는 폴더에서 끝나지 않습니다. 거래처 담당자의 전화번호 같은 개인정보, 문자 발송에 쓰는 API 자격증명 같은 민감한 값은 공유되는 시트나 코드 안에 두면 안 됩니다. 이 값들은 본사 비공개 드라이브 안의 설정 시트, 그리고 스크립트 속성처럼 외부에 노출되지 않는 자리에만 보관했습니다.
이렇게 나눠 두면 자료의 공유 범위를 넓히더라도 개인정보가 함께 따라가지 않습니다. 거래처 공유 폴더를 아무리 열어도 그 안에는 거래처가 봐도 되는 자료만 있고 수신번호와 자격증명은 애초에 다른 드라이브에 있습니다. 민감 정보와 공유 자료를 물리적으로 다른 위치에 두는 것이 링크 공유 실수에 대한 가장 확실한 방어였습니다.
확장은 복제와 권한 부여로 끝난다
이 설계의 목적은 결국 확장성입니다. 새 거래처가 생기면 템플릿 드라이브의 트리를 복제하고, 그 거래처를 맡을 담당 직원을 멤버로 넣고, 거래처 공유 폴더만 외부 공유로 여는 것으로 세팅이 끝납니다. 매번 새로운 판단을 하는 대신 정해진 절차를 따르는 일이 되므로, 거래처가 다섯이든 스물이든 운영자가 감당하는 인지 부담이 크게 늘지 않습니다.
이 권한 구조는 전체 업무 자동화의 토대에 해당합니다. 이 위에서 광고비 자동집계와 업로드·일정 알림, 월별 보고서 생성이 돌아갑니다. 시스템 전체 그림은 구글 시트·앱스스크립트 거래처별 업무 자동화에서, 이 폴더 트리를 감시해 알림을 보내는 방식은 드라이브 업로드 폴링 알림에서 이어집니다.
자주 묻는 질문
거래처마다 드라이브를 따로 두면 관리가 번거롭지 않나요?
오히려 반대입니다. 드라이브가 거래처 단위로 나뉘어 있으면 멤버 관리와 공유 범위가 거래처별로 딱 떨어집니다. 한 드라이브에 모든 거래처를 몰아넣고 폴더별로 권한을 다르게 주는 방식이 훨씬 복잡하고 실수가 잦습니다. 드라이브 분리는 번거로움이 아니라 경계를 단순하게 만드는 선택입니다.
외부 공유를 폴더 단위로만 여는 이유가 무엇인가요?
파일 단위로 공유를 관리하면 파일이 늘어날 때마다 판단이 필요하고 한 번의 실수가 곧 유출입니다. 공유를 거래처 공유 영역 폴더 하나에만 걸어 두면, 그 폴더 안에 파일을 넣는 순간 공유되고 빼는 순간 회수됩니다. 공유 여부가 파일의 위치로 결정되므로 판단할 일 자체가 줄어듭니다.
담당 직원이 바뀌면 권한을 어떻게 정리하나요?
거래처 드라이브의 멤버에서 이전 담당자를 빼고 새 담당자를 넣으면 됩니다. 권한이 개별 파일이 아니라 드라이브 멤버십에 묶여 있기 때문에, 멤버만 교체하면 그 거래처의 모든 자료에 대한 접근이 한 번에 정리됩니다. 파일마다 공유 대상을 찾아 지우는 작업이 필요 없습니다.