프롬프트 하나로 스프레드시트 데이터 기반 메일 자동 발송 스크립트를 만들고 배포까지 완료할 수 있다. 개발 환경 구축이 되어 있다면 바로 시작 가능하다.

프롬프트 하나로 메일 발송 스크립트를 만들 수 있을까?

이제 프롬프트로 프로젝트를 시작해 보자

우선 만들어진 스프레드시트에는 다음과 같이 테이블을 만들어보았다.

이름 / 메일 주소 / 메일 내용 / 메일 발송 여부


우선 다음과 같이 프롬프트를 작성하고 실행시켜 보자.

현재 시트의 컬럼은 다음과 같이 테이블로 구성되어 있다.
- 이름
- 메일주소
- 메일 내용
- 메일발송여부

메일 주소로 메일 내용을 발송하는 스크립트를 작성해줘. 스크립트 작성이 완료되면 커밋하고 푸시를 해줘.

1. 메일 내용에 이름을 포함시켜줘
2. 발송이 되면 메일발송여부를 Y 로 업데이트 해줘.

이렇게 되면 아래와 같이 Github에 생성된 레포지토리에서 Action 탭으로 가면 배포 상태를 확인할 수 있다.

초기에는 갈색으로 진행 중이다가, 완료가 되면 초록색, 실패가 되면 빨간색으로 표시가 된다.

이제 테스트를 해보자. 스프레드시트를 새로고침하면 메일 관리라는 메뉴가 생겼다.

스프레드시트 메뉴 생성

처음 실행을 하면 실행 권한을 부여해야 한다. 하나씩 하면 된다.

승인 프로세스 시작

확인을 누르면 계정 선택 화면으로 이동한다.

계정 선택

계정을 선택하면 무시무시한 화면이 노출이 되는데, 고급을 선택한 후 프로젝트로 이동하기를 클릭한다.

민감정보(메일, 스프레드시트) 접근에 대한 경고

이제 실행 권한을 부여해야 하는데 내용을 보면, 다음과 같다.

데이터를 읽고, 메일 발송 여부를 업데이트하기 위해서 Google Sheets 스프레드시트 확인, 수정, 생성, 삭제 기능들에 대한 권한을 요청하고 있다. 그리고 메일 발송하기 위해서 내 이메일 주소로 이메일 보내기 권한을 요청하고 있는 것이다.

권한 부여

그런 후 다시 스프레드시트를 새로고침을 한 후 메뉴를 선택하면 메일 발송 완료!!

발송 완료

이메일 수신

가장 심플한 예시라서 한 번에 성공했지만, 향후 복잡한 본인의 업무에 적용하다 보면 많은 어려움이 있겠지만, 버전 관리와 배포는 쉽게 되었으니 고민은 덜었다고 생각한다. 다음 단계로 임시 보관함을 활용한 대량 메일 발송도 진행해봤다.

스프레드시트 테이블을 사용하면 어떤 장점이 있을까?

1. 동적 범위(Dynamic Range) 관리의 용이성

가장 큰 장점은 데이터가 늘어나거나 줄어들 때 범위가 자동으로 조정된다는 점이다.

2. '헤더 이름'을 통한 직관적인 데이터 접근

일반 범위는 열의 순서가 바뀌면 스크립트 오류가 발생하는데, 테이블은 구조화되어 있기 때문에, 스크립트 로직을 짤 때 열 이름(Header) 을 기준으로 매핑하는 로직을 구현하기 훨씬 수월하다. 열의 순서가 바뀌어도 헤더 이름을 찾아가도록 코드를 짜면 스크립트 수정 없이 작동한다.

3. 수식 및 서식 자동 적용

테이블의 끝에 데이터를 추가하면, 테이블이 확장되면서 기존에 설정된 수식, 드롭 다운, 색상 서식 등이 자동으로 새 행에 적용됩니다. 스크립트 코드가 훨씬 간결해진다.

4. 데이터 타입 강제 (Data Integrity)

구글 시트의 테이블 기능을 사용하면 특정 열에 '날짜', '숫자', '드롭 다운' 등의 타입을 지정할 수 있습니다.

사용자가 실수로 잘못된 형식의 데이터를 입력하는 것을 UI 차원에서 막아주므로, GAS에서 데이터 유효성 검사(Validation)를 수행하는 코드를 줄일 수 있다.

불러오는 중...