서류발급 발송

서류발급 요청

불러오는 중...

가이드

개요 사용법 슬랙 연동 시스템 구조 문제 해결 알려진 제한 · 보류 사항

개요

서류발급 요청(출석부·수강증명서·수강증명원)을 목록으로 확인하고, 담당자가 첨부파일과 함께 훈련생 이메일로 바로 발송할 수 있게 해주는 시스템입니다. 발송 이력은 자동으로 기록되어 같은 요청을 실수로 두 번 보내는 것을 막아주고, 발송이 끝나면 원본 구글시트의 상태도 함께 갱신됩니다.

사용법

1. 로그인

비밀번호로 로그인합니다. 슬랙 링크로 들어오면 이 단계 없이 바로 목록이 뜹니다.

2. 목록에서 선택

기본적으로 "미완료만 보기"가 켜져 있어 처리할 건만 보입니다. 과정별로 묶여 있고, 훈련생을 클릭하면 상세화면이 열립니다.

3. 첨부 후 발송

출석부 PDF를 선택하고 "메일 발송"을 누르면 실제 이메일이 나갑니다. 처리 중에는 버튼에 작은 스피너가 돕니다 — 파일이 클수록 시간이 걸릴 수 있습니다. 첨부파일은 10MB를 넘으면 거부되니, 큰 파일은 압축하거나 나눠서 올려주세요.

4. 발급 완료

출석부만 요청된 건은 발송 성공 시 자동으로 완료 처리됩니다. 수강증명서 등 다른 서류가 함께 걸린 건은, 그 서류 처리(모두싸인 등)까지 끝난 뒤 "발급 완료" 버튼을 직접 눌러야 합니다. 실수로 눌렀다면 같은 버튼을 한 번 더 누르면 "확인중" 상태로 되돌아갑니다.

서류발급 요청 ☑ 미완료만 보기
AI 심화 캠프 7회차
홍 홍길동 출석부 수강증명서 ✓
김 김민준 출석부
UXUI 디자인 부트캠프 14회차
이 이서연 수강증명원 ✓
홍
홍길동
AI 심화 캠프 7회차
✓ 발급 완료
출석부 수강증명서
📅 2026-05-01 ~ 2026-07-31
✉️ example@example.com
LX 김강사 OP 박운영
OP 메모를 입력하세요
발급 완료 메모 저장

실제 화면 예시 — 이름·과정명·이메일은 전부 가상 데이터입니다.

슬랙 연동

"훈련생 서류발급" 워크플로에 새 요청이 올라오면 "발송하러 가기" 버튼이 함께 붙습니다. 원래는 이 버튼이 해당 훈련생 화면으로 바로 열리는 걸 목표로 했지만, 슬랙 워크플로 빌더의 버튼 URL 입력창이 여러 줄짜리 값을 못 받아들여서(실제 클릭 테스트로 확인), 지금은 목록 화면으로 들어온 뒤 직접 선택하는 방식으로 되어 있습니다. "미완료만 보기" 필터가 기본으로 켜져 있어 찾기는 어렵지 않습니다.

시스템 구조

슬랙 워크플로 "발송하러 가기" 버튼 서류발급 발송 (이 시스템) GAS 웹앱 요청 목록 읽기/쓰기 구글시트 서류발급 요청 원장 NHN Cloud 이메일 실제 발송 처리 훈련생 이메일함 Cloudflare KV 중복발송 방지 마커

슬랙 버튼을 누르면 이 시스템으로 들어와 목록을 확인하고, 발송하면 NHN Cloud를 거쳐 실제 이메일이 나갑니다. 발송 여부는 Cloudflare KV에 별도로 기록해 시트 갱신이 실패해도 중복발송을 막고, 시트 읽기/쓰기는 항상 GAS 웹앱을 경유합니다.

문제 해결

비밀번호가 계속 틀렸다고 나와요
정확히 입력했는데도 안 되면, 여러 번 틀려서 잠깐 잠겨있을 수 있습니다("너무 많이 틀렸습니다" 메시지가 뜨면 안내된 시간만큼 기다렸다가 다시 시도해 주세요). 그래도 안 되면 비밀번호 자체를 담당자에게 다시 확인해 주세요.
첨부파일이 안 올라가요
파일 용량이 10MB를 넘으면 업로드가 거부됩니다. 더 작게 압축하거나 나눠서 첨부해 주세요.
목록이 뜨는 데 가끔 오래 걸려요
구글시트와 연결하는 부분(GAS)이 오래 안 쓰이다 첫 요청을 받으면 "잠깐 깨어나는" 지연이 있을 수 있습니다. 이 경우 시스템이 자동으로 몇 초 안에 다시 시도하니 대부분 저절로 해결됩니다. 그래도 안 뜨면 새로고침 버튼을 눌러주세요.
발송 버튼을 눌렀는데 화면이 멈춘 것 같아요
파일을 업로드하는 중일 수 있습니다. 버튼 옆에 작은 원이 돌고 있는지 확인해 주세요 — 돌고 있다면 정상적으로 처리 중인 것입니다. 큰 PDF일수록 시간이 걸립니다.
"오늘 발송 한도를 초과했습니다"라는 메시지가 떠요

하루에 보낼 수 있는 이메일 수에 상한이 있습니다(기본 30건, 필요시 관리자가 조정 가능).

  • 정상적인 대량 발급이면 관리자에게 한도 상향을 요청해 주세요.
  • 짐작 가는 이유가 없다면 비정상적으로 반복 발송되고 있지 않은지 먼저 확인해 주세요.
  • 한도는 다음날 자동으로 초기화됩니다.
"요청 보안 확인 실패"라는 메시지가 떠요
브라우저 탭을 오래 열어두면 발생할 수 있습니다. 새로고침 버튼을 한 번 눌러주세요.
발송은 됐는데 시트 상태가 안 바뀌어요

메일은 이미 나갔으니 다시 보내지 마세요.

  • 발송 기록은 별도로 안전하게 남아있어 중복발송 걱정 없습니다.
  • 시트 갱신은 잠깐의 지연이면 자동으로 재시도됩니다.
  • 그래도 이 안내가 계속 뜨면 자동 재시도로도 안 풀린 것이니, 새로고침 후 상세화면에서 "발급 완료" 버튼을 직접 눌러주세요.
시트 쪽에서 "권한이 없습니다" 같은 오류가 나요
이 시스템이 쓰는 구글시트에 담당자 계정의 편집자 권한이 있는지 먼저 확인해 주세요.

알려진 제한 · 보류 사항

제한사항 — 구조적으로 지금 방식이 최선

아래는 결정을 바꾼다고 당장 해결되지 않는, 시스템·문서 구조 자체의 제약입니다.

상태는 두 단계뿐

"확인중/발급 완료" 두 단계만 지원합니다.

  • 연결된 구글시트가 체크박스 하나로만 상태를 저장하는 구조라, 애초에 세 단계 이상을 구분해서 저장할 방법이 없습니다.
  • 실제로 운영해보니 두 단계만으로도 업무에 지장이 없어, 시트 구조를 바꾸면서까지 세분화하지는 않기로 했습니다.

출석부 자동 발급 미도입

담당자가 HRD-Net에서 출석부를 직접 다운로드해 첨부하는 지금 방식을 그대로 유지합니다.

  • 고용24/HRD-Net에 훈련생 출결 데이터를 가져오는 API는 있지만, 그걸로 우리가 새로 만든 문서는 HRD-Net이 실제로 발급한 원본이 아닙니다.
  • 이 출석부는 훈련생이 외부기관(보조금·취업증명 등)에 공식 제출하는 용도로 쓰이는데, 우리가 만든 문서는 "언제 어디서 발급됐는지" 증명이 안 돼 원본으로 인정받지 못하거나 위조 문서처럼 보일 위험이 있습니다.
  • HRD-Net이 발급하는 진짜 파일을 자동으로 가져오려면 담당자 로그인 계정 자체를 시스템이 다뤄야 하고 별도 인프라도 필요해서, 그 위험과 비용이 지금 얻는 이득보다 크다고 판단했습니다.

보류사항 — 특정 결정이 있으면 재검토 가능

아래는 기술적으로는 가능하지만, 비용·리스크 대비 이득이 낮다고 판단해 지금은 미룬 것입니다. 상사(의사결정권자)가 아래 "필요한 조치"를 진행해주시면 다시 검토할 수 있습니다.

감사로그에 담당자명 미표시

처리 기록에 담당자명이 자동으로 남지 않습니다.

  • 공용 비밀번호 하나를 여러 담당자가 함께 쓰는 구조라, 로그인 시점에 "누가" 들어왔는지 구분할 정보 자체가 없습니다.
  • 개인별 로그인 체계를 새로 만들지 않기로 한 원래 방침과 맞물려 있어, 필요해지면 별도로 다시 설계해야 합니다.

필요한 조치: 개인별 로그인 체계(계정별 아이디) 도입 여부 결정

외부 접근 제한 미도입

Cloudflare Access 같은 별도 접근 제어는 도입하지 않았습니다.

  • 이미 비밀번호+세션+여러 번 틀리면 잠기는 로그인 제한으로 막고 있습니다.
  • 다루는 정보(서류발급 요청)가 결제·의료 정보급으로 민감하지는 않습니다.
  • 별도 출입증을 더 붙이는 비용(사내 인증 시스템 연동 등 실제 개발 필요) 대비, 지금 방어 수준으로 충분하다고 판단했습니다.
  • 사고가 나거나 더 민감한 정보를 다루게 되면 다시 검토합니다.

필요한 조치: Cloudflare Access(Zero Trust) 결제수단 등록, 또는 Slack 로그인(OAuth) 개발 승인

수강증명서·수강증명원(모두싸인) 자동 발급은 검토 중

수강증명서·수강증명원은 아직 담당자가 모두싸인에서 직접 처리하는 방식 그대로입니다 — 아래 이유로 도입 여부가 아직 결정되지 않았습니다.

  • (좋은 소식) 모두싸인은 HRD-Net과는 사정이 다릅니다 — 지금도 이미 이 문서의 공식 발급 경로가 모두싸인이라, API로 서명 절차를 시작해도 웹에서 직접 한 것과 같은 진짜 문서가 나옵니다. 출석부 때 걸렸던 "가짜 문서" 문제는 없습니다.
  • API 연동은 무료 플랜이 아니라 일정 등급 이상 유료 플랜부터 지원되는데, 실제 계정 설정(개인설정 → 외부 서비스 연동)에서 확인해보니 API 신청 메뉴 자체가 안 보여서, 지금 플랜에서 바로 쓸 수 있는지 확인이 안 됩니다.
  • 완료된 서명 문서 자체는 지금도 훈련생 서명 후 문제없이 받고 있으니 그건 의문의 여지가 없습니다. 아직 확인이 안 된 건 "우리 시스템이 그 완료 문서를 API로 자동 수령해서 발송 메일에 바로 첨부할 수 있는지"라는 더 좁은 부분입니다.

필요한 조치: 모두싸인 "도입 문의" 제출 승인(정확한 요금·플랜을 확인하는 절차 자체가 비용이 발생할 수 있어 승인 필요)

참고 자료: API 소개, 템플릿으로 서명요청하기, API 연동 기능 소개(고객지원), 공공기관 전용 API