🐾 뽀짝이의 셋업 가이드 #6 — 줌 운영, 반복업무를 AI에게 넘기기

매주 돌아오는 줌 세팅·출석·녹화 정리를, “말 한마디”로 바꾸는 법


혹시, 이런 적 있으세요?

정기 모임을 줌으로 운영해보신 분이라면 아마 겪어보셨을 거예요.

  • 매주 같은 요일·같은 시간에 회의를 여러 개 만들고, 링크를 하나하나 복사해 캘린더에 붙이고
  • 회의마다 설문을 또 새로 붙이고
  • 끝나면 참석 리포트를 열어 누가 얼마나 들었는지 눈으로 세고
  • 녹화를 돌려보며 “이번엔 뭐가 좋았고 뭐가 아쉬웠지” 정리해서 후기를 남기고

한두 개면 괜찮은데, 모임이 열 개, 스무 개로 늘어나면 이야기가 달라져요. 어느 순간 “내가 커뮤니티를 운영하는 건지, 줌 세팅 기계가 된 건지” 싶어지죠. 정작 중요한 사람들과의 대화에 쓸 시간은 반복 세팅에 다 녹아버리고요.

그런데 위에 적은 일들, 가만 보면 전부 정해진 규칙대로 반복되는 일이에요. 규칙이 있으면 — 넘길 수 있어요. 🐈‍⬛

이 가이드는 그 반복을 AI 에이전트(클로드코드)에게 통째로 넘긴 이야기예요. 우리(AI스터디 운영팀)가 실제로 쓰는 자동화를, 여러분도 그대로 따라 만들 수 있게 풀었어요.


이 가이드가 필요한 분

  • 정기적으로 줌 회의를 여러 개 운영하는 커뮤니티·스터디·모임 운영자
  • 회의 만들기 / 출석 체크 / 녹화 정리를 매번 손으로 하고 있는 분
  • 클로드코드(또는 AI 에이전트)한테 반복업무를 넘기고 싶은데 어디서 시작할지 막막한 분
  • 코딩을 깊게 몰라도, “말로 시키는” 자동화를 만들어보고 싶은 분

반대로, 줌 회의를 어쩌다 한 번 여는 정도라면 이 가이드는 좀 과할 수 있어요. 반복이 쌓이는 규모일 때 진가가 나와요.


핵심 아이디어 하나

기술적으로는 딱 한 문장이에요.

Zoom API를 AI 에이전트가 부를 수 있게 연결해두면, 줌 운영이 “말”로 돌아간다.

줌은 웬만한 기능을 다 API로 열어놨어요 — 회의 만들기, 참석자 조회, 녹화 다운로드까지요. 여기에 클로드코드 같은 AI 에이전트를 붙이면, 여러분은 API 문법을 외울 필요 없이 “이번 주 회의 다 만들어줘” 처럼 말로 시키면 돼요. 나머지는 에이전트가 API를 대신 호출해요.

아래에서 이걸 자동화 3~4개로 나눠서, 하나씩 따라갈게요. 각 자동화마다 이렇게 정리했어요.

  • 🎯 뭘 자동화하나 — 어떤 반복을 없애주는지
  • 💬 이렇게 시켜요 — 에이전트에게 건네는 실제 말
  • 🙌 사람이 준비할 것 — 딱 이것만 해두면 돼요
  • 🔧 각자 커뮤니티에 맞게 바꿀 부분 — 여러분 상황에 맞추는 지점

전체 지도

줌 운영을 시간 순서로 늘어놓으면 이래요.

[모임 시작 전]
  1️⃣ 회의 만들기        → 반복회의를 한 번에 생성 (+ 설문 자동 연결)

[운영 중 · 매주]
  2️⃣ 출석 걷기          → 회의 끝나면 참석·체류시간 자동 집계
  3️⃣ 녹화·설문 정리      → 녹화 자막 + 설문을 묶어 후기/리포트로

[모임이 끝나거나 접힐 때]
  4️⃣ 정리(선택)         → 남은 줌 회의·캘린더 깔끔하게 삭제

준비물 — 딱 한 번만 세팅

시작하기 전에 한 번만 해두면 되는 세팅이에요.

Zoom Server-to-Server OAuth 앱

에이전트가 사람 로그인 없이 줌 API를 부르려면 이게 필요해요. 매번 로그인 버튼을 누르는 방식이 아니라, 앱이 스스로 토큰을 받아 호출하는 방식이에요.

1. 앱 만들기

Zoom App MarketplaceDevelopBuild App → 앱 타입에서 Server to Server OAuth App 을 선택해요.

🚨 여기서 타입을 잘 골라야 해요. 맨 위 General App(OAuth 2.0) 은 “사용자가 로그인해서 Allow 를 누르는” 방식이라 매번 사람 승인이 필요해요 — 자동화엔 안 맞아요. 우리가 쓰는 건 그 아래 Server to Server OAuth App 이에요. 사람 개입 없이 앱이 알아서 토큰을 받아요.

2. 자격증명 복사

앱을 만들면 App Credentials 탭에 값 3개가 있어요. 이걸 에이전트가 쓰는 환경변수로 넣어둬요.

  • Account ID
  • Client ID
  • Client Secret

3. 권한(Scopes) 켜기

Scopes 탭에서 쓸 기능의 권한을 켜요. 왼쪽 Product 목록에서 Recording·Meeting 같은 걸 고르고, 필요한 스코프를 체크하면 돼요.

Zoom Scopes — Recording(녹화) 권한 선택 화면

Zoom Scopes — Meeting(회의) 권한 선택 화면

우리가 켜둔 권한은 이런 것들이에요.

  • meeting:write, meeting:read — 회의 생성·조회·삭제
  • report:read:admin — 참석자·설문 리포트
  • recording:read — 녹화 자막 다운로드
  • user:read, group:read:admin — 계정·그룹 조회

위는 Zoom 앱의 Scopes(권한 선택) 화면이에요. 이 화면 구성은 앱 타입과 상관없이 같고, 뜨는 항목은 계정 권한에 따라 조금 다를 수 있어요. 쓸 기능(회의·녹화·리포트) 권한이 켜졌는지만 확인하면 돼요.

🚨 Scope를 빼먹으면 그 기능만 콕 집어서 권한 에러(403)가 나요. 쓸 기능의 권한은 처음부터 다 켜두는 걸 추천해요.

받은 토큰은 1시간짜리라, 호출할 때마다 새로 발급받게 해두면 만료를 신경 쓸 일이 없어요.

💡 이것 말고 필요한 준비물(회의 일정을 담아둘 표, 복제할 설문 원본, 녹화를 읽을 클라우드 접근 등)은 각 자동화 설명에서 그때그때 짚을게요.


자동화 1 — 회의를 한 번에 만든다

🎯 뭘 자동화하나

반복회의 수십 개를, 회의 생성 → 캘린더 등록 → 설문 연결까지 한 번에 찍어내요. 우리 경우엔 한 기수에 스터디가 스무 개 안팎이라(예를 들어 어떤 기수는 18개, 다음 기수는 20개였어요), 이걸 손으로 만들던 시절이 제일 고통스러웠어요.

우리 안에서는 이게 이런 순서로 돌아가요.

  1. 계정 배분 — 회의를 요일별로 묶고, 그 안에서 순서대로 줌 호스트 계정을 나눠줘요. 요일이 다르면 같은 계정을 재사용해도 시간이 안 겹치니까 괜찮아요. (그래서 회의가 20개여도 계정이 20개 필요하진 않아요.)
  2. 회의 생성 — 주 1회 × 정해진 주차 수만큼 도는 반복회의로 만들어요. 자동 클라우드 녹화도 같이 켜고요.
  3. 캘린더 등록 — 생성된 줌 링크를 캘린더 일정으로 꽂아요.
  4. 설문 연결 — 지난 회차에 쓰던 설문을 그대로 복제해서 새 회의마다 붙여요. 매번 새로 만들 필요 없이 원본만 지정하면 돼요.

💬 이렇게 시켜요

"이번 회차 줌 회의 다 만들어줘"

이 한마디면 위 흐름이 쭉 돌아요. 우리는 실행 전에 꼭 미리보기(dry-run) 로 “몇 개가, 어느 계정에, 언제 만들어질지”를 먼저 확인해요. 한 번 만든 회의는 다시 시켜도 건너뛰니까(중복 방지) 안심이고요.

🙌 사람이 준비할 것

  • 회의 일정 표 하나 — 모임명·요일·시작일·시간이 들어간 표. “무엇을, 언제 만들지”를 여기서 읽어요.
  • 새 호스트가 늘면 → 그 줌 계정을 먼저 만들어 앱에 등록 (반복회의를 만들려면 보통 Pro 이상 계정이 필요해요)
  • 복제할 설문 원본 하나

🔧 각자 커뮤니티에 맞게 바꿀 부분

  • 주차 수(4주? 8주?), 요일·시간 규칙, 녹화 On/Off
  • 설문 문항 — 우리는 평점·NPS·좋았던 점·아쉬운 점 같은 걸 물어요. 여러분 모임에 맞게 바꾸면 돼요.

🚨 우리가 실제로 밟은 함정 하나 — 회의에 “등록 필수(registration)” 설정이 켜져 있으면 참가자가 입장에서 막혀요. 한 행사 때 사람들이 못 들어온 적이 있어요. 그 뒤로 우리는 회의를 만들 때 “등록 없이 바로 입장”을 회의 단위로 강제해둬요. 이런 건 자동화에 규칙으로 정의해두면 사람이 실수할 일이 없어져요.


자동화 2 — 출석을 자동으로 걷는다

🎯 뭘 자동화하나

전날 열린 모든 회의의 참석자를 긁어와서, 한 사람이 몇 분 들었는지 계산하고, 기준 시간(예: 30분) 이상 들었는지까지 표시해 표에 기록해요.

여기서 은근히 까다로운 게 하나 있어요 — 같은 사람이 여러 번 잡히는 것. 폰이랑 노트북 두 기기로 들어오거나, 중간에 튕겼다 재입장하거나, 이름을 살짝 바꿔 들어오면 줌 기록엔 별개로 남아요. 그래서 우리는 동일인 통합 처리로 이런 걸 한 사람으로 묶은 뒤 체류시간을 합산해요. 안 그러면 “3분 + 28분 = 두 명”으로 잘못 세거든요.

💬 이렇게 시켜요

"어제 줌 참석자 수집해줘"

사실 이건 직접 시킬 일도 거의 없어요. 우리는 매일 정해진 시각에 자동으로 돌게 예약(크론)을 걸어놨거든요. 아침이면 어제 참석 데이터가 이미 표에 쌓여 있고, 알림 채널에 요약이 와 있어요.

🙌 사람이 준비할 것

  • (처음 한 번) 줌 호스트 계정들을 한 그룹으로 묶어두기 — 그래야 “우리 계정 전체”를 한 바퀴 훑어요
  • 그다음부턴 손 뗌 ✨

🔧 각자 커뮤니티에 맞게 바꿀 부분

  • “몇 분 이상”을 출석으로 볼지 — 우리는 한 값을 정해뒀는데, 여러분 모임의 출석·수료 기준이 있다면 그 기준에 이 값을 연결하면 돼요.
  • 집계 결과를 어디에 쌓을지(스프레드시트/노션/에어테이블 등)와 자동 실행 시각

자동화 3 — 녹화·설문을 후기/리포트로 묶는다

이게 손이 제일 많이 가던 일이에요. 녹화를 돌려보고, 설문 응답을 읽고, “이번 주 이랬어요”를 정리해서 남기던 것. 모임이 스무 개면 매주 스무 번이에요.

🎯 뭘 자동화하나

회의 녹화 자막(VTT) 을 내려받고, 설문 응답을 걷어서, 둘을 교차해 정리해줘요. 우리는 이걸 진행자(스터디장)에게 보내는 리포트로 만들어 이메일 발송까지 이어요.

우리가 이걸 만들 때 세운 원칙이 하나 있어요.

스크립트 = 데이터 준비 / AI = 판단과 글쓰기

무슨 뜻이냐면 — 자막 다운로드, 설문 취합, 평점 평균 같은 기계적인 건 코드가 하고, “이번 주 무슨 얘기가 오갔고, 뭐가 좋았고, 뭘 정중하게 제안할지” 같은 읽어내고 쓰는 일은 AI가 해요. 사람에게 바로 가는 글이라, 숫자만 붙여 자동으로 뱉으면 온기가 없거든요.

실제 흐름은 이래요.

  1. 그 회차 설문 응답을 전수로 읽어 테마별로 분류 (칭찬 / 아쉬운 점 / 요청 주제…)
  2. 같은 회의 녹화 자막을 읽어 흐름을 잡고, 설문에서 나온 얘기와 교차 (“설문에 ‘실습이 좋았다’가 많은데, 녹화 보니 중반이 실습 파트였네” 하는 식)
  3. 정리한 내용을 읽기 좋은 후기/리포트로 옮김

💬 이렇게 시켜요

"3회차 설문이랑 녹화 분석해서 리포트 만들어줘"

🙌 사람이 준비할 것

  • 녹화를 읽을 접근 권한 한 번 세팅 (클라우드 녹화 켜두기 + 저장소 인증)
  • 분석할 회차만 지정

🔧 각자 커뮤니티에 맞게 바꿀 부분

  • 결과물 형태 — 내부 메모, 진행자용 리포트 메일, 공개 후기 글 등 원하는 대로
  • 받는 사람과 어조

🚨 여기서도 우리가 밟은 함정 두 개 — ① 회의 ID만으로 응답을 조회하면 안 돼요. 반복회의는 여러 회차가 같은 ID를 공유해서, ID만으로 걸면 1회차·2회차·3회차 응답이 다 묶여 나와요. 우리도 초반에 여러 회차가 섞인 리포트가 나간 적 있어요. 그 뒤론 회의 ID + 그 회차 날짜를 둘 다 걸어서 딱 그 회차만 뽑아요. ② 실패한 발송을 자동으로 재시도하게 했더니, 사람이 손으로 다시 보낸 것과 겹쳐 중복 발송 사고가 났어요. 지금은 자동 재시도를 끄고 필요할 때만 수동으로 보내요. “자동으로 두 번”보다 “한 번 확실히” 가 안전하더라고요.


(선택) 정리 — 모임이 접힐 때 줌까지 깔끔히

모집이 안 돼 모임이 접히면, 미리 만들어둔 줌 반복회의도 지워야 해요. 안 그러면 빈 회의가 계속 돌아요.

"OOO 모임 정리해줘"

관련 안내 → 줌 회의·캘린더 삭제까지 이어져요.

🚨 삭제는 되돌릴 수 없어서, 우리는 사람 확인을 받은 뒤에만 실행해요. 자동으로 지워버리는 일은 없어요.


자주 막히는 곳

증상원인해결
특정 회의만 생성에서 조용히 빠짐새 호스트 계정이 앱에 미등록그 줌 계정을 먼저 만들고(Pro 이상) 앱에 등록
권한 에러(403)Zoom 앱 Scope 누락Marketplace → 앱 → Scopes에서 해당 권한 켜기
참가자가 입장에서 막힘회의에 “등록 필수”가 켜짐회의 단위로 “등록 없이 입장” 강제
참석자가 두 배로 세어짐한 사람이 여러 기기·재입장동일인 통합 후 체류시간 합산
리포트에 여러 회차가 섞임회의 ID만으로 조회회의 ID + 그 회차 날짜 둘 다 필터
녹화 자막이 안 내려옴클라우드 녹화 미설정 / 저장소 인증 만료줌 클라우드 녹화 켜기 + 인증 다시
토큰 만료S2S 토큰은 1시간짜리호출마다 새로 발급하게 해두기

부록 — Zoom API 기능 지도

“어떤 기능이 어떤 API를 쓰는지” 궁금한 분들을 위한 참고표예요. 이걸 보고 여러분만의 자동화를 직접 짜도 돼요.

🔑 인증 (모든 기능 공통)

API하는 일
POST zoom.us/oauth/tokenServer-to-Server OAuth 토큰 발급 (호출 전 매번)

🗓 회의 생성·관리

API하는 일
POST /v2/users/{host}/meetings회의 생성 (반복·단건)
GET /v2/meetings/{id}회의 조회 (캘린더 연동용)
DELETE /v2/meetings/{id}회의 삭제 (정리)

📋 설문 연결

API하는 일
GET /v2/meetings/{id}/survey원본 설문 읽기 (복제 소스)
PATCH /v2/meetings/{id}/survey회의에 설문 연결

👥 출석 집계

API하는 일
GET /v2/past_meetings/{uuid}/participants참석자 명단·체류시간
GET /v2/report/users/{id}/meetings?type=past계정별 지난 회의 리포트
GET /v2/groups/{id}/members그룹 멤버 (계정 배분 확인)

🎥 녹화(VTT)·설문 응답

API하는 일
GET /v2/users/{email}/recordings계정별 녹화 목록
GET /v2/meetings/{id}/recordings회의 녹화·자막(VTT)
GET /v2/report/meetings/{uuid}/survey설문 응답 결과

마무리

🔑 딱 한 번: Zoom Server-to-Server OAuth 앱 연결

그다음부턴 말로만 ↓

  "이번 회차 줌 다 만들어줘"          → 회의 + 설문 한 번에
  "어제 참석자 수집해줘"              → 체류시간 자동 집계 (실은 매일 자동)
  "3회차 설문·녹화 분석해서 정리해줘"   → 후기/리포트로
  "OOO 모임 정리해줘"                → 줌·캘린더까지 삭제

반복되는 일에는 규칙이 있고, 규칙이 있으면 넘길 수 있어요. 줌 API 하나를 AI에 연결해둔 것만으로, 매주 세팅에 녹던 시간이 “한마디”로 줄었어요.

여러분의 커뮤니티에도, 손이 제일 많이 가는 반복부터 하나씩 넘겨보세요. 그 시간은 다시, 사람에게 쓰면 되니까요 🐈‍⬛