brunch

You can make anything
by writing

C.S.Lewis

by Nak Jan 25. 2022

구글 스프레드시트/지메일 연동 벌크 메일 보내기 - 1

구글스프레드시트(Google Spreadsheet) 업무 자동화

필자는 엑셀보다 구글스프레드시트를 좋아한다.


좋아하는 이유는 2가지이다. 첫번째, 구글 스프레드시트는 SQL 함수를 지원한다. 시트 내 DB 스키마를 잘 다면, 데이터 파이프 라인을 잘 연결하여 강력한 데이터 가공이 가능해질 것이다. 물론 관계형 데이터베이스처럼 여러 테이블을 조인한다거나 뷰 등을 사용하여 복잡한 쿼리문을 작성할 수는 없다. 한 개의 데이터 테이블에서 가져오는 수준이기 때문에 한계가 명확하다는 단점이 있다. 하지만 이 역시 여러 개의 시트에 로우 데이터를 잘 쌓아놓은 후, 한개의 테이블로 Merge 함으로써 극복 가능하다.(추후 이러한 Merge 방법에 대해서도 설명하도록 하겠다.)


두번째는 바로 Apps script 및 API 지원이다. Apps script는 자바스크립트 기반의 언어이기 때문에, 자바스크립트를 할 줄 안다면 누구나 손쉽게 접근할 수 있다. 엑셀의 경우 VBA를 사용하여 매크로를 짜는데, 개인적으로 문법 가독성이 굉장히 떨어진다. 한마디로 굉장히 코드가 지저분해진다는 이야기다. 하지만 자바스크립트 기반의 언어로 코드를 짜는 경우 코드 가독성이 좋은 편이다.


게다가 API를 연동하여 파이썬, Node JS을 사용할 수 있기 때문에, 다른 텍스트 에디터를 활용한 코드들과 합쳐서 사용할 수 있는 장점이 있다. 구글 내의 계정 Auth 세팅만하면 쉽게 다른 프로그래밍 언어들과 API를 연결하여 사용 가능하기 때문에, 확장성이 무궁무진하다고 할 수 있다. 물론 아직까지는 라이브러리 제한 등이 없는 것은 아니지만, 엑셀보다는 확장성이 좋다는 장점이 있다.


오늘은 Apps script를 활용하여 벌크 메일 보내기 매크로를 만들어보고자 한다. 필자가 개인적으로 아웃바운드 영업이 필요하여, 거래처 리스트업을 해놨는데 일일이 메일을 보내자니 너무 힘들어서 코드를 작성하게 되었다. 코드 작성시간은 약 3시간 정도가 걸린 것 같다.


만약 기본적인 프로그래밍 학습이 되어있지 않다면, 조금은 어려울 수 있으니 기본적인 프로그래밍 학습 후 참고하기를 권한다.(변수 종류, 반복문, if 절, 메쏘드 사용법 등)


내용이 조금 길어질 것으로 예상되기 때문에, 1편과 2편으로 나눠서 진행하도록 하겠다.


1편에서 담을 내용은 아래와 같다.

기능 설명

코드 및 주석 설명


2편에서는 코드를 좀 더 자세히 들여다보며, 어떤 로직으로 코드를 작성했는지 설명하도록 하겠다.


그럼 기능 설명을 시작하도록 하겠다.


우선 아래와 같은 데이터 베이스가 있다고 가정해보자.


필자가 하고 싶은 것은 아래의 거래처 리스트 이메일에 똑같은 내용의 이메일을 보내는 것이다.

시트 내 주소록
시트이름은 "testInfo"

(실제로 필자가 써야하는 시트는 실거래처 및 영업 내용이 들어있어 테스트 시트를 따로 만들었다.)


위의 내용을 이메일로 동일하게 보낼것이다


간단하게 요약하면 다음과 같다.


1. "testInfo" 시트 C열에 적힌 이메일에 벌크로 영업 홍보 메일을 보낸다.

2. "testText" 시트 A열 1행에 적힌 컨텐츠 내용의 {title]에는 회사 이름이 들어간다.

3.  구글 드라이브 내 pdf 파일을 첨부한다.


메일을 보내야 할 거래처 리스트가 얼마 안된다면 수작업으로 가능하지만, 100개, 1,000개가 넘어갈 경우에는 벌크로 보낼 수 밖에 없을 것이다. 또한 첨부파일이 있다면 이 역시 자동으로 보낼 수 있어야 한다. 우선 App scripts 실행 방법으로 넘어가도록 하자.


앱스크립트 실행
위와 같이 들어가도록 하자

코드 설명의 경우 동영상을 설명을 하는 것이 더 낫다는 생각이 든다. 하나씩 설명할 수가 없기 때문에 밑의 풀 코드로 설명을 대신하고자 한다.


https://gist.github.com/chunja07/31ecd6f36789b30cf82fa2631acae020


결과값

이렇게 메일이 보내진 걸 확인할 수 있다.


사실 글로 설명한다면 자바스크립트를 잘 모르는 초보분들에게는 힘들 것 같다는 생각이 든다.


혹시 모르는 부분이 있다면, 댓글로 남겨주시기 바란다.


그리고 조회수가 좀 더 나온다면 유튜브 동영상으로 올려보도록 하겠다.


결론.


개인적으로 데이터 가공의 마무리는 구글 스프레드 시트를 통해서 하는 것이 가장 탁월한 선택이라고 생각한다. API를 통해 다른 프로그래밍 언어와 연동할 수 있으며, 간결하게 대량의 데이터를 시각화 할 수 있을 뿐만 아니라, 프로그래밍을 할 줄 안다면 지메일 및 구글 드라이브와 연결하여 수많은 자동화 프로세스를 이루어낼 수 있다.


필자의 경우 지메일과 연동하여 휴가 근태 관리 대시보드를 만들어 본 경험이 있으며, 수십개의 매출 채널별 데이터를 하나로 통합하는 대시보드를 만들어 본 경험이 있다. 회사 내에 있을 때에는 데이터 유출 문제로 브런치에 정리하지 못했지만, 앞으로는 시간이 날 때마다 업무 자동화에 대해 글을 쓸 예정이다.


그리고 추가로 위의 설명이 부족한 것 같아, 추가 설명을 아래 글에서 해놓았다. 설명이 부족한 부분은 아래에서 좀 더 확인해보도록 하자.


https://brunch.co.kr/@chunja07/101


매거진의 이전글 NFT 만들기, NBA Top Shot를 곁들인
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari