본문으로 건너뛰기
50% 할인 모든 플랜, 기간 한정. 시작 가격 $2.48/mo
남은 시간: 30분
웹 및 비즈니스 앱

마케팅팀이 구독자 데이터를 노출하지 않고 AI로 만든 앱을 배포하는 방법

V 작성자 Varys 30 분 분량
구독자 데이터와 이메일 캠페인 제어 기능을 갖춘 보호된 마케팅 대시보드

보안 연구원 Joel Margolis는 Wired에 이렇게 말했습니다. “마케팅팀의 누군가가 웹사이트를 만들고 싶어 합니다. 엔지니어도 아니고 보안 관련 경험이나 지식도 거의 없을 겁니다.” 같은 Wired 보도에 따르면 보안 업체 RedAccess는 사실상 보안이나 인증이 없는 바이브 코딩 앱을 5,000개 넘게 발견했으며, 그중 약 40%가 민감한 데이터를 노출했습니다. Wired는 검토한 개인 또는 기업 데이터가 진짜인지 확인하지 못했습니다.

마케팅팀을 위한 AI 제작 앱에서는 이 문제가 특정한 형태로 나타납니다. 만들 가치가 있는 도구, 즉 세그먼트 생성기, 캠페인 대시보드, A/B 분석기, 잠재고객 동기화 도구는 구독자 목록에 연결되며 광고 계정에도 연결되는 경우가 많습니다.

요약

  • 각 이메일 플랫폼 API 키와 광고 계정 토큰에는 도구가 사용하는 최소 권한만 부여하고 서버 측 코드에 보관하세요. Mailchimp의 Marketing API에는 권한을 더 좁힌 키 유형이 없으므로, 읽기 전용 Mailchimp 작업에는 키 대신 필요한 데이터만 담은 제한적 내보내기 파일을 제공합니다.
  • 이메일 플랫폼을 구독 상태의 기준 원본으로 유지하세요. 도구는 수신을 거부한 사람을 재구독시키지 않고, 구독 해지 요청을 플랫폼으로 전달하며, 직접 보내는 모든 마케팅 이메일에 작동하는 구독 해지 링크를 포함해야 합니다.
  • 해시 처리한 맞춤 잠재고객 업로드도 여전히 개인정보입니다. 광고 플랫폼과 AI 서비스로 무엇을 보낼지 미리 결정하고 모든 구독 해지가 광고 잠재고객에도 반영되게 하세요.
  • GDPR은 목록의 보관과 이용을 규율합니다(침해 통지, 마케팅에 대한 무조건적인 반대권). ePrivacy/PECR, CAN-SPAM 또는 CASL은 내부 도구가 보내는 경우를 포함해 이메일 발송을 규율합니다.

AI 제작 마케팅 도구가 목록에 문제를 일으키는 방식은 보통 두 가지입니다. 키, 공개 링크 또는 업로드를 통해 목록이 외부로 나가거나, 거부한 사람에게 목록이 사용됩니다. 관리 권한 광고 토큰에는 별도의 위험도 있습니다. 회사 광고 계정에서 비용이 발생할 수 있습니다.

실수노출되거나 훼손되는 것관련 규칙과 영향
코드, 브라우저 또는 AI 도구 채팅에 있는 전체 접근 권한 이메일 플랫폼 키전체 목록 열람·내보내기, 구독자 변경, 회사 이름으로 캠페인 발송 가능GDPR이 적용되면 개인정보 침해(제33조 통지). 메일을 발송하면 발송 관련 법률도 적용
관리 권한 광고 계정 토큰 또는 제작자 개인의 토큰회사 광고비로 캠페인 생성·변경, 지출 데이터, 해시를 통한 잠재고객 소속 정보, leads_retrieval이 있으면 리드 양식 데이터. 업로드한 목록 자체는 아님광고 플랫폼 약관과 회사 광고비. 리드 양식 데이터를 읽으면 침해도 발생 가능
공개 링크에 배치되어 누구나 모든 내용을 보는 도구주소를 아는 누구나 구독자 행, 동의 세부 정보, 참여 이력을 열람. 외부인과 업무상 필요가 없는 직원도 캠페인 및 A/B 테스트 결과 열람구독자 행은 개인정보 침해, 캠페인 수치는 기밀성 상실
목록에 다시 쓰는 동기화 또는 재가져오기구독 해지한 연락처가 재구독되고, 어디서 언제 어떻게 가입했는지 기록이 소실다음 발송 시 GDPR 반대권 및 CAN-SPAM·CASL 수신 거부 규칙과 충돌. 동의가 근거라면 동의를 입증할 수 없음
도구가 마케팅 이메일을 직접 발송구독 해지 링크, 발신자 우편 주소, 발송 제외 확인이 없음CAN-SPAM·CASL 메시지 규칙, ePrivacy/PECR 발송 동의
잠재고객 업로드와 AI 호출이 기본적으로 목록을 외부로 전송Meta 또는 Google에 있는 해시 목록, 승인받지 않은 AI 및 분석 서비스에 있는 구독자 필드GDPR(해시 데이터도 개인정보이며 반대 요청은 잠재고객에도 반영), Meta·Google 고객 목록 약관

앱을 만든 AI 코딩 도구는 요청하면 대부분의 수정을 할 수 있습니다. 아래 프롬프트를 상황에 맞춰 조정할 출발점으로 삼고, 사용하는 것은 AI 도구가 매 세션 읽는 규칙 파일에 보관하세요. AI 도구의 변경 완료 보고는 증거가 아닙니다. 각 프롬프트 아래 검증: 단계가 증거입니다. 추측 대신 불확실한 점을 표시하게 하고, 유효한 키나 구독자 내보내기 파일을 채팅에 붙여 넣지 마세요.

전체 접근 이메일 플랫폼 키를 최소 권한 키로 교체하기

인원수만 표시하는 세그먼트 생성기에는 목록을 내보내거나 캠페인을 발송할 수 있는 키가 필요하지 않습니다. 하지만 아래 각 플랫폼의 가장 광범위한 키는 둘 다 가능합니다. 보관 위치도 중요합니다. 브라우저 코드는 호출하려면 키 값 자체가 필요하므로 페이지를 로드하는 누구나 읽을 수 있습니다(Mailchimp는 API의 클라이언트 측 사용을 전혀 지원하지 않습니다).

플랫폼표준 키가 할 수 있는 일문서에 명시된 최소 권한 선택지
Mailchimp(Marketing API)“API 키는 Mailchimp 계정에 대한 전체 접근 권한을 부여합니다”도움말 페이지에는 없음
SendGridFull Access: 청구 및 Email Address Validation을 제외한 대부분의 계정 API 엔드포인트Custom Access: 선택한 엔드포인트에 선택한 수준 부여. 생성자 자신의 권한을 초과하지 않음
KlaviyoFull Access 비공개 키: 해당 엔드포인트의 모든 항목 생성·삭제·변경Read-Only 키 또는 필요한 범위를 선택한 Custom 키
MailgunAccount API keys: 계정 전체 접근Domain Sending Key(도메인 하나, 발송 전용). 일부 요금제에는 읽기 전용 Analyst 역할
Listmonk(v4.0.0 이상)사용자 역할과 목록 역할이 부여하는 범위목록별 보기 또는 관리 역할. 발송 권한은 별도 부여

각 행은 해당 플랫폼의 공식 문서를 따릅니다. Mailchimp API 키 도움말, SendGrid API 키 권한, Klaviyo 인증 가이드, Mailgun API 키 문서입니다. Listmonk 권한은 아래 Listmonk 절에 있습니다.

도구에는 작업에 필요한 최소 권한 키만 주거나 키를 주지 않습니다. Mailchimp의 읽기 전용 작업(보고서, 세그먼트 인원수)에는 플랫폼 자체 보고 도구나 계정 소유자가 작업에 필요한 필드만 제한적으로 내보내는 방식이 더 적합합니다. 다만 사람의 시간이 들고 데이터의 최신성은 그 내보내기 시점에 한정됩니다. 변경·발송 작업은 IT에 맡기거나 Mailchimp 안에서 처리합니다. ActiveCampaign이나 Brevo 같은 다른 플랫폼에서는 먼저 제한된 키 옵션을 찾아보세요.

그다음 키는 서버 측 코드(브라우저가 다운로드하지 않는 도구 자체 백엔드)에만 두고 환경 변수로 저장합니다. 환경 변수는 서버가 시작 시 앱에 전달하는 값으로, 코드와 저장소에는 넣지 않습니다.

이 프로젝트에서 이메일 플랫폼(Mailchimp, Klaviyo, SendGrid, Mailgun, Listmonk 등)과 광고 플랫폼(Meta, Google Ads, LinkedIn 등)에 사용하는 모든 API 키, 접근 토큰, 비밀번호 및 비밀 정보를 찾으세요. 로컬 비밀 정보 스캐너나 IT가 승인한 방법으로 코드, 환경 파일, 저장소 이력을 확인하세요. 원본 비밀 값, 환경 파일 내용, 자격 증명이 담긴 이력을 외부 AI 서비스로 보내지 마세요. AI에는 파일 위치와 발견한 자격 증명 유형을 포함한 가림 처리된 결과만 제공하세요. 각각 다음을 알려주세요.

- 파일과 줄 번호

- 값이 코드에 직접 작성되었는지, 환경 변수에서 읽는지

- 사용하는 코드가 서버에서 실행되는지, 브라우저에서 실행되는지

모든 값은 처음 네 글자만 표시하세요. 전체 키나 토큰을 출력하지 마세요.

이메일 발송, 구독자 변경, 광고 계정 관리가 가능한 자격 증명은 최우선으로 표시하세요.

그다음 비공개 API 키나 접근 토큰이 필요한 모든 호출을 서버 측 코드로 옮기고 서버 전용 환경 변수에서 자격 증명을 읽게 하세요. 브라우저에는 문서상 허용된 공개 클라이언트 측 API 호출만 남기고, 노출된 비공개 키를 코드에서 제거하며 실제 비밀 정보가 담긴 파일을 저장소에서 제외하세요. 정확한 변경 사항을 보고하고 추측 대신 불확실했던 부분을 알려주세요.

참고:채팅이나 코드에서 붙여 넣은 키를 삭제해도 공유 사실이 취소되지는 않습니다. 키를 폐기하고(플랫폼 설정에서 비활성화하여 작동을 중단), 새로 만드세요.

검증: 도구를 열고 F12를 누른 뒤 Network 탭을 선택하세요. 팀이 실제로 사용할 방식으로 조작하면서 각 요청의 도메인을 읽으세요. 이메일 플랫폼의 비공개 API를 직접 호출하는 브라우저 요청은 경고 신호이지만, 목적지만으로 비밀 정보가 노출되었다고 증명할 수는 없습니다. 값을 AI 채팅에 복사하지 말고 요청 헤더와 코드에서 비공개 자격 증명을 확인하세요. 공개 클라이언트 측 SDK 요청은 다릅니다. 비밀 API 키가 아닌 공개 식별자를 적법하게 사용할 수 있습니다. Klaviyo의 a.klaviyo.com/client/ 요청은 공개 키를 사용하므로 브라우저에 있어도 됩니다. 반면 브라우저의 a.klaviyo.com/api/ 요청은 조사해야 합니다. 해당 엔드포인트는 보통 비공개 키 인증이 필요하기 때문입니다. 비공개 자격 증명이 실제로 전송되었는지 확인하세요.

나머지는 사람이 처리합니다. 개인에게 귀속되지 않는 계정에서 최소 권한 키를 만들고(Mailchimp는 사용자의 접근이 취소되면 그 사용자의 API 키를 삭제합니다), 도구 이름을 붙이며(Mailchimp는 연동마다 키 하나를 권장), IT의 도움으로 도구의 키 보관 위치에 저장합니다. 계획된 교체에서는 이전 키를 폐기하기 전에 새 키로 전환하세요. 폐기한 Mailchimp 키는 재활성화할 수 없습니다. 이미 침해된 키는 즉시 폐기하고 교체합니다. 만료도 계획하세요. 2026년 6월 22일 당일 또는 그 이후 생성한 Mailchimp API 키는 생성 후 1년이면 만료됩니다.

광고 계정 토큰에는 도구가 사용하는 권한만 부여하기

광고 계정 토큰은 비용과 연결되므로 마케팅 도구가 가질 수 있는 가장 영향력 큰 자격 증명이라고 생각합니다. 관리 권한 Meta 토큰은 회사 광고 계정에 청구되는 캠페인을 생성·변경·일시 중지하고 지출과 성과를 읽을 수 있습니다.

그 토큰이 반환하지 않는 것은 맞춤 잠재고객에 업로드한 구독자 목록입니다. Meta 맞춤 잠재고객 가이드는 사람을 추가·제거할 때 SHA-256 해시 값(각 주소를 단방향으로 변환하여 플랫폼이 자체 기록과 비교하는 값)을 사용합니다. 기존 잠재고객에서 읽을 수 있는 목록을 반환하는 문서화된 엔드포인트는 없습니다.

도구의 작업필요한 Meta 권한유출 토큰으로 접근 가능한 범위
캠페인 보고ads_read접근 가능한 광고 계정의 Ads Insights 보고 데이터
캠페인 생성·변경ads_management해당 계정에 청구되는 캠페인과 광고, 지출 및 지표
세그먼트를 맞춤 잠재고객에 동기화광고 계정의 관리 수준 접근해시로 사람 추가·제거. 읽을 수 있는 목록은 아님
리드 광고 제출 내용을 목록으로 가져오기leads_retrieval(Meta는 의존 권한 중 하나로 ads_management를 명시)관리 수준 접근에 더해 회사 리드 양식에 사람들이 입력한 모든 필드를 읽을 수 있음

Meta 권한 참조는 각 권한을 설명하고 개발자에게 앱이 필요한 권한만 선택하도록 안내합니다. 각 도구는 시스템 사용자에서 전용 토큰을 받고, 그 도구가 사용하는 광고 계정만 할당받습니다. 시스템 사용자는 소프트웨어가 사용하는 Business Manager 내부 계정의 Meta 명칭입니다. 제작자의 개인 로그인 토큰은 도구에 넣지 않고, 시스템 사용자 토큰은 이메일 키처럼 서버에 둡니다. Google Ads나 LinkedIn 접근도 동일하게 목록화하세요.

이 도구가 Meta Marketing API, Google Ads 또는 다른 광고 플랫폼에 하는 모든 호출을 보조 라이브러리나 SDK 경유 호출까지 나열하세요. 각 호출에 대해 다음을 제시하세요.

- 파일과 줄 번호

- 엔드포인트 또는 SDK 메서드

- 레이블: REPORT(지표 또는 지출 읽기), MANAGE(캠페인·광고·예산·잠재고객 생성 또는 변경), LEADS(리드 양식 제출 내용 읽기)

- 해당 레이블에 필요한 플랫폼 권한

둘 이상의 도구에서 사용하는 토큰과 토큰을 브라우저로 보내는 코드를 표시하세요. 토큰 값은 출력하지 마세요. 호출에 어떤 레이블이 필요한지 모르겠다면 그렇게 말하세요.

검증: 토큰의 권한을 보고하는 Meta 토큰 디버깅 도구에서 대시보드 토큰을 확인하고 프롬프트의 레이블과 비교하세요. 보고 대시보드 토큰에는 ads_read가 있고 계정을 관리하는 권한은 없어야 합니다. 보고 도구에 MANAGE나 LEADS 레이블이 있으면 확인된 문제입니다. 이후 비즈니스 설정에서 제작자 개인 토큰이 아닌 시스템 사용자 토큰을 사용하는지 확인하세요.

공개 주소를 닫고 구독자 행은 목록 관리자에게만 보여주기

AI 도구 자체 호스팅의 앱은 주소를 찾은 누구나 열 수 있습니다. Wired에 따르면 RedAccess가 조사한 일부 앱에는 방문자가 아무 이메일 주소로나 로그인하게 하는 정도의 사소한 장벽만 있었습니다. 그런 호스팅은 가상 주소를 쓰는 데모에 적합하며, 그것이 무료 호스팅과 터널의 용도입니다.

나머지 절반은 입장 후 각자 무엇을 보는가입니다. 캠페인 대시보드는 열람률, 클릭률, A/B 결과, 세그먼트 규모 같은 캠페인 수준 수치를 제공합니다. 그 뒤의 구독자 행, 즉 각 주소와 동의 세부 사항 및 참여 이력은 개인정보입니다.

적절히 익명화된 집계 수치는 일반적으로 개인정보가 아니지만, 작은 세그먼트나 상세 분류로 개인이 식별될 수 있습니다. 익명 수치도 회사의 경쟁 정보를 드러낼 수 있고, 개인별 열람과 클릭을 저장하는 A/B 분석기도 개인정보를 보유합니다. 팀에는 집계를 보여주고 목록 관리 담당자만 행을 보게 하며 서버가 매 요청에서 이를 강제합니다.

앱의 데이터베이스, 화면, 내보내기 및 API 응답에서 구독자 개인정보를 담은 모든 필드를 나열하세요. 이메일 주소, 이름, 전화번호, 우편 주소, IP 주소, 위치, 구독 상태, 동의 출처와 일시, 구독일, 구독 해지 상태, 개인별 열람과 클릭입니다. 각 필드가 어떤 화면과 내보내기에 나오는지 알려주세요. 추측하지 말고 불확실한 점을 표시하세요.

그다음 로그인한 계정에서 가져오는 두 역할을 추가하고 모든 페이지, 내보내기, API 경로에서 서버 측으로 확인하세요.

- 목록 관리자: 구독자 행을 보고 내보내기 실행 가능

- 마케터: 캠페인 수준 수치, 세그먼트 인원수, A/B 결과만 보며 개인별 행과 내보내기는 불가

그 외 요청은 “접근 거부”(403) 응답으로 거절하세요. 각 페이지와 경로를 보호하는 검사를 보고하세요.

저장 데이터가 디스크에서 암호화되는지는 IT에 물어야 합니다. AI 도구는 코드만 읽어서 확인할 수 없습니다.

검증: 마케터 역할의 테스트 계정을 만드세요. 해당 계정으로 로그인해 캠페인 대시보드(로드됨)를 연 뒤 구독자 목록 페이지와 내보내기(둘 다 “접근 거부”에서 중단)를 여세요. 다음으로 로그아웃한 상태에서 모바일 데이터를 쓰는 휴대폰으로 도구 주소를 여세요. 아무것도 로드되지 않거나 회사 로그인 페이지에서 멈춰야 합니다.

구독 해지 상태와 동의 기록을 보존하는 이메일 플랫폼 작업 흐름

자체 목록 사본을 보관하고 양방향 동기화나 지난달 내보내기 재가져오기로 되쓰는 도구는 구독 해지자를 다시 구독자로 표시하고 각 사람이 어디서 언제 어떻게 가입했는지 기록을 잃을 수 있습니다. 보통 그 사람이 다음 캠페인을 받을 때까지 징후가 없으며, 그때 아래 발송 규칙이 적용됩니다. 네 가지 규칙으로 예방할 수 있습니다.

  1. 이메일 플랫폼이 구독 상태의 기준 원본입니다. 도구는 그 상태를 읽고 기존 구독자를 재구독시키거나 덮어쓰지 않습니다. 명시적인 구독 해지 요청은 플랫폼의 지정된 해지 절차로 전달할 수 있습니다.
  2. 대량 가져오기나 동기화로 기존 구독자 기록을 대체하거나 구독·동의 정보를 덮어쓰지 않습니다. 검토된 도구는 구독 상태를 바꾸지 않으면서 태그처럼 명시적으로 승인된 필드를 갱신할 수 있습니다. 신규 가입은 플랫폼 자체 가입 양식이나 가져오기 경로로 들어가 플랫폼의 수신 동의 처리를 적용받습니다. 도구 자체 가입 양식도 검토 후에는 출처·일시·양식 정보와 함께 신규 구독자를 추가할 수 있지만, 기존 연락처를 재구독시키거나 구독·동의 정보를 덮어쓰면 안 됩니다.
  3. 도구가 보내거나 내보내는 모든 것은 자체 사본이 아닌 그 시점의 플랫폼에서 상태를 읽습니다. 내보내기에는 구독 해지·발송 제외 연락처를 빼거나, 절대 발송에 쓰지 않는 발송 금지 목록으로 표시합니다.
  4. 도구가 복사하는 기록에는 동의 필드(출처, 일시, 양식 또는 방법)를 온전히 유지합니다. 그러지 않을 경우 그 필드는 복사하지 않으며 보유한다고 주장하지도 않습니다.

이 도구가 이메일 플랫폼이나 구독자 목록의 어떤 사본에든 쓰는 모든 지점을 나열하세요. 구독자 생성·갱신 API 호출, 가져오기, 동기화, 파일 내보내기입니다. 각각 다음이 가능한지 말하세요.

- 기존 구독자의 구독 상태 변경

- 기존 구독자 기록 덮어쓰기

- 구독 해지·발송 제외 연락처 포함

이메일을 발송하거나 발송용 목록을 내보내는 모든 경로에 대해, 구독 상태를 그 시점의 이메일 플랫폼에서 읽는지 도구 자체 사본에서 읽는지 말하세요.

그다음 도구를 변경하여 기존 연락처를 재구독시키거나 구독 상태를 덮어쓰지 않도록 하세요. 단, 명시적 해지 요청을 이메일 플랫폼의 지정 절차로 전달하는 경우는 예외입니다. 기존 구독자 기록 전체를 대체하지 말고, 발송 또는 내보내기 직전에 이메일 플랫폼에서 상태를 읽으며, 복사하는 모든 기록에 동의 출처·일시·양식을 유지하세요. 변경 내용과 불확실한 점을 보고하세요.

참고: 이전 내보내기를 목록에 재가져오면 과거 상태도 따라옵니다. 따라서 플랫폼과 도구의 가져오기 처리 방식에 따라 그 내보내기 이후 구독 해지한 사람이 구독자로 돌아올 수 있습니다.

검증: 이메일 플랫폼에 테스트 구독자를 추가한 뒤 거기서 구독 해지하세요. 도구의 동기화, 세그먼트 생성기, 내보내기를 실행하세요. 플랫폼에서는 여전히 해지 상태여야 하고, 도구 내보내기에는 없거나 발송 금지로 표시되어야 하며, 도구가 만드는 어떤 발송 목록에도 나타나지 않아야 합니다.

이메일 플랫폼으로 발송하거나 구독 해지 경로부터 만들기

SMTP 계정이나 트랜잭션 이메일 API를 통해 목록에 직접 재참여 메일을 보내는 도구에는 이메일 플랫폼이 마케팅 메일에 추가하는 기능(구독 해지 링크, 우편 주소, 발송 제외 확인)이 자동으로 제공되지 않습니다. 도구 코드가 각각 구현해야 합니다. 해결책은 도구가 세그먼트를 만들거나 플랫폼 캠페인을 실행시키고, 플랫폼(또는 Listmonk)이 발송하게 하는 것입니다. 반드시 자체 발송해야 하는 도구는 발송 도구로 분류하며 다음 절에서 IT로 보냅니다.

그런 도구에는 아래 발송 법률 표의 기한에 맞춰 발송 후에도 작동하는 구독 해지 링크를 모든 마케팅 메시지에 넣고, 바닥글에 발신자 신원과 우편 주소를 표시해야 합니다. 매 발송 전 확인하는 자체 발송 제외 목록도 필요하며, 지속적인 제외 기록으로 유지해야 합니다. 백업·복원 절차는 오래된 구독자 데이터베이스가 최신 수신 거부를 덮어쓰지 않도록 해야 합니다. CAN-SPAM은 트랜잭션 메시지를 다르게 취급합니다.

대량 발송자는 이메일 바닥글 링크만으로 부족할 수 있습니다. Gmail은 개인 Gmail 계정으로 하루 5,000개 이상 메시지를 보내는 발신자에게 마케팅·구독 메시지의 RFC 8058 원클릭 구독 해지 지원을 요구합니다. 보이는 구독 해지 링크와 함께 List-Unsubscribe 및 List-Unsubscribe-Post 이메일 헤더를 추가한다는 뜻입니다. 원클릭 엔드포인트는 POST 요청을 처리해야 하며 GET으로 URL을 열기만 했다고 구독을 해지해서는 안 됩니다. 그 규모로 보내기 전에 IT에 요건 검증을 요청하세요.

도구가 보내는 모든 마케팅 메시지에 구독 해지 링크와 그 뒤에서 처리하는 구독 해지 엔드포인트를 추가하세요.
Gmail 대량 발송자 요건이 적용된다면 유효한 DKIM 서명으로 보호되는 RFC 8058 원클릭 구독 해지 헤더와 POST 기반 엔드포인트도 구현하세요. URL을 열었다는 이유만으로 구독 해지를 실행하지 마세요. 불확실한 점은 IT 검토 대상으로 표시하세요.
구독 해지 엔드포인트가 유효한 요청(링크 클릭, 양식 제출 또는 API 호출)을 받으면:

- 구독자 테이블과 별도로 저장한 발송 제외 목록에 즉시 주소 추가

- 요청 일시와 유입 채널 기록

- 이메일 플랫폼이 목록을 보유하면 플랫폼에도 해당 주소 구독 해지 요청

매 발송 전 발송 제외 목록을 확인하고 일치하는 주소는 건너뛰세요. 가져오기, 동기화, 데이터베이스 복원 중에 발송 제외 목록에서 주소를 자동 제거하지 마세요. 회사가 승인한 보존 정책에 따라 수신 거부를 준수하는 데 필요한 최소한의 제외 정보만 유지하고, 가져오기나 동기화로 제외 주소를 재추가하지 못하게 하세요. 백업에 발송 제외 목록을 포함하고 구독자 테이블을 복원해도 그대로 유지되게 하세요. 제가 채울 자리표시자를 사용해 모든 마케팅 메시지 바닥글에 발신자 이름과 우편 주소를 추가하세요. 무엇을 변경했고 어떤 발송에 적용되는지 보고하세요.

검증: 직접 관리하는 시드 주소를 테스트 목록에 넣고 도구로 테스트 캠페인을 발송한 뒤 받은 메시지의 구독 해지 링크를 클릭하세요. 주소가 발송 제외 목록에 나타나야 합니다(플랫폼이 목록을 보유한다면 플랫폼에서도 해지 상태). 같은 테스트 목록에 다시 발송하세요. 시드 주소에는 아무것도 도착하지 않아야 합니다.

회사 이메일 규정 준수 담당자가 자리표시자에 넣을 발신자 이름과 우편 주소를 제공합니다.

광고 플랫폼과 AI 도구로 보낼 데이터를 전송 전에 결정하기

두 가지 코드 경로가 기본적으로 구독자 데이터를 외부로 보냅니다. Meta나 Google 맞춤 잠재고객에 세그먼트를 업로드하는 동기화, 그리고 제목 작성이나 리드 점수 산정을 위해 AI API에 또는 분석 스크립트·웹훅에 구독자 필드를 전달하는 호출입니다.

Meta와 Google은 SHA-256 해시 처리한 연락처 식별자로 고객 잠재고객을 매칭할 수 있습니다. Google Data Manager API는 제출 전에 이메일 주소와 전화번호를 정규화·해시 처리하도록 요구하지만, 일부 Google Ads 인터페이스 기반 업로드는 업로드 중에 해시 처리가 가능합니다. 해시는 플랫폼이 주소와 프로필을 매칭하는 방식이며 개인을 익명화하지는 않습니다(FAQ 참조).

새 Google Customer Match 연동은 동기화를 만들기 전에 지원되는 업로드 API를 확인하세요. 2026년 4월 1일부터 Google은 신규 도입자의 구형 Customer Match 업로드 방식을 제한하고 Data Manager API를 사용하도록 안내합니다.

Meta 고객 목록 잠재고객 약관은 광고주가 데이터 공유에 필요한 권리, 허가, 법적 근거를 보유한다고 보증하도록 합니다. Google Customer Match 정책은 개인정보 처리방침에 공유 사실을 공개하고 법이 요구하면 동의를 받도록 합니다.

단순화를 위해 이 도구는 모든 구독 해지를 광고 매칭 중단 요청으로도 취급합니다. 이는 보수적인 회사 정책이며, 특정 채널의 이메일 구독 해지가 법적으로 항상 모든 광고 잠재고객에서 제거를 요구한다는 뜻은 아닙니다.

따라서 업로드 경로는 회사가 광고 매칭용으로 승인한 세그먼트만 받아야 합니다. 회사는 개인정보 담당자 또는 지정된 개인정보 보호책임자(DPO)가 있다면 그 지침에 따라 적절한 법적 근거를 마련해야 합니다. 구독 해지·발송 제외 연락처는 모든 업로드에서 배제하고, 구독 해지 시 각 잠재고객에서 해시 값으로 제거해야 합니다(이유는 아래 GDPR 절에서 설명합니다).

구독자 데이터를 받는 모든 AI·분석 서비스는 회사 승인이 필요합니다. 개인정보를 공유하기 전에 제공자가 처리자인지 독립된 관리자인지 확인하고, 필요한 경우 데이터 처리 계약을 포함해 적절한 계약상 보호 장치를 마련하세요.

도구의 모든 외부 호출을 감사하세요. 이메일 플랫폼, 광고 플랫폼(잠재고객 업로드 포함), AI API(OpenAI, Anthropic 등), 분석 도구, 웹훅입니다. 각 호출의 요청 본문 또는 URL에 어떤 구독자 필드가 나오는지 정확히 나열하세요. 더 적은 필드나 구독자 데이터 없이도 작업을 할 수 있는 호출을 말하세요. 마지막으로 모든 외부 서비스를 이름별로 나열하여 승인 업체와 대조할 수 있게 하세요.

검증: 보고서가 AI·분석 서비스용으로 열거한 모든 구독자 필드는 작업에 필요한 것이어야 하며, 모든 서비스는 회사 승인 목록에 있어야 합니다. 없는 서비스는 공급업체 계약 담당자에게 보냅니다.

이 도구에서 Meta, Google Ads 또는 다른 광고 플랫폼으로 연락처를 업로드하는 모든 경로에 대해:

- 각 플랫폼 정규화 규칙을 따라 업로드 전에 서버에서 이메일 주소와 전화번호를 SHA-256으로 해시 처리

- [회사가 광고 매칭용으로 승인한 세그먼트]의 연락처만 업로드

- 업로드 시점에 구독 해지·발송 제외 연락처 배제

- 연락처가 구독 해지하면 업로드했던 모든 잠재고객에 그 해시 값의 제거 요청 전송

- 모든 업로드·제거의 일시, 잠재고객, 연락처 수, 실행한 사용자 또는 작업 기록

변경 내용과 불확실한 점을 보고하세요.

검증: 업로드된 세그먼트의 테스트 연락처를 구독 해지하세요. 다음 동기화 후 모든 관련 잠재고객에 제거 요청이 전송되었는지 확인하세요. 도구가 기록하거나 제출한 것뿐 아니라 각 광고 플랫폼이 제거를 성공적으로 처리했는지도 확인하세요. 실패 또는 일부 완료된 제거는 재시도와 IT 검토를 위해 표시하세요.

목록에 하는 작업으로 도구의 실행 위치 결정하기

구독자 접근 범위와 발송 권한에 따른 마케팅 도구 배포 방식

캠페인 수치만 보여주는 도구는 팀이 관리하는 서버에서 사설 네트워크로만 접근하게 합니다. 구독자 행을 보여주는 도구는 역할이 회사 로그인에 의존하므로 이를 추가합니다. 마케팅 이메일을 보내거나 광고 잠재고객을 동기화하는 도구는 플랫폼 자체 기능 안에서 처리하거나 누구든 사용하기 전에 IT에 맡깁니다.

도구가 목록에 하는 작업부여할 키 또는 접근 권한실행 환경
테스트 구독자만 처리운영 키 없음. 테스트 목록 또는 샌드박스 계정AI 도구 자체 호스팅. 제작·데모 전용
캠페인 수준 수치만 표시읽기 전용 또는 보고 키: Meta의 ads_read, Klaviyo Read-Only 키, 범위를 좁힌 SendGrid Custom Access. Mailchimp는 내보내기 파일Tailscale·WireGuard 등 사설망에서만 접근하는 팀 서버
구독자 행 읽기 또는 세그먼트화필요한 데이터와 엔드포인트로 제한한 읽기 범위 키. 플랫폼이 지원하면 목록별 제한 적용동일 서버에 회사 로그인, 목록 관리자와 마케터 역할 추가
목록 변경(태그, 사용자 지정 필드, 구독자를 추가하는 가입 양식)필요한 작업과, 지원되는 경우 해당 목록으로 제한한 쓰기 범위 키동일 서버에서 두 번째 사람이 자격 증명·상태·구독 해지 감사를 읽은 뒤 실행. 공개 가입 양식은 인터넷에 노출되므로 이 검토와 서버에 보관한 키가 보호 수단
마케팅 이메일 발송 또는 광고 잠재고객 동기화발송 키 또는 관리 수준 토큰이메일 플랫폼 자체 캠페인·자동화, Listmonk, 또는 출시 전 IT 검토. 잠재고객 동기화는 승인 세그먼트의 개인정보 검토도 필요

승인은 각 행에 따릅니다. 두 읽기 전용 행은 이메일 플랫폼 관리자의 키 발급이 필요하고, 목록 변경 행은 두 번째 검토자, 발송 행은 IT가 필요하며 잠재고객 업로드에는 개인정보 검토도 필요합니다.

사설 네트워크란 도구가 외부 접근에 전혀 응답하지 않는다는 뜻입니다. AI 도구가 작성한 로그인 페이지에는 누구나 접근할 수 있고 보안 수준은 뒤의 코드에 달렸습니다. RedAccess가 아무 이메일 주소로든 로그인되는 앱을 찾은 이유도 이것입니다.

여기서 제 원칙은 사설 네트워크부터 시작하고 역할에 필요한 곳에 회사 로그인을 추가하는 것입니다. 이미 비용을 지불하며 공급업체를 검토하는 팀이라면 로그인과 비밀 저장을 내장한 관리형 배포 플랫폼도 가능합니다.

서버 측은 IT의 도움을 받을 부분이며 서버와 키의 담당자를 한 명 지정합니다. 도구는 VPS(팀이 완전히 제어하는 임대 서버)에서 Coolify 또는 Dokploy 같은 배포 도구로 실행합니다. 배포 도구는 코드에서 앱을 실행하고 플랫폼 키를 포함한 환경 변수를 보관합니다.

사설 네트워크에는 설치가 빠르지만 자체 조정 서비스에 의존하는 Tailscale(Headscale로 대체 가능) 또는 완전히 자체 호스팅하는 WireGuard를 씁니다. 회사 로그인(회사 계정의 싱글 사인온)은 Authentik 또는 Keycloak으로 제공하고, 도구가 웹에 노출되는 곳에는 리버스 프록시(Caddy 또는 Nginx Proxy Manager)로 HTTPS를 추가합니다.

이메일 엔진을 Listmonk로 옮기기

현재 플랫폼의 키를 제한하는 대신 목록과 발송을 자체 호스팅 목록 관리자로 옮겨 상용 플랫폼 키를 없앨 수도 있습니다. Listmonk(v4.0.0 이상)는 각 도구에 독립 API 사용자를 만들고 도구가 다루는 목록으로 목록 역할을 제한할 수 있습니다.

읽기 전용 도구에는 해당 목록 보기만 허용하고 발송은 주지 않습니다. campaigns:send와 tx:send(트랜잭션 메시지)는 발송 도구에만 줍니다. 제한된 도구 역할에는 특히 위험한 세 권한을 넣지 마세요. 목록별 역할을 무시하는 lists:get_all과 lists:manage_all, 그리고 subscribers:sql_query입니다. Listmonk 역할 및 권한 문서는 마지막 권한이 “개별 목록·구독자 권한을 무시하고 데이터베이스에서 직접 모든 목록과 구독자를 조회”할 수 있게 한다고 경고합니다. 목록 제한 도구라고 부르기 전에 subscribers:get_all, campaigns:get_all, campaigns:manage_all 같은 광범위한 권한도 검토하세요. 각 API 사용자에게 작업에 필요한 권한만 주세요. Listmonk는 다단계 자동화보다는 캠페인을 위해 만들어졌습니다(Listmonk가 맞지 않는 경우). Mautic은 같은 종류의 서버에서 그러한 자동화를 제공합니다.

대신 지속적인 작업이 생깁니다. 팀은 발신 도메인 인증(SPF, DKIM, DMARC), 이메일 전달용 SMTP 릴레이, 패치, 백업, 전달률을 책임집니다. 목록이 작거나 서버 담당자를 둘 수 없거나 기존 플랫폼의 발송 평판과 자동화가 팀이 의존하는 일을 맡는다면, 플랫폼에 머물며 키를 제한하는 편이 낫습니다.

어느 경로든 담당자가 있는 서버가 필요하고 배포 도구와 사설 네트워크를 실행해야 합니다. 자체 호스팅 경로에는 Listmonk와 SMTP 릴레이도 필요합니다. 당사의 Linux VPS는 root 접근을 제공하며 Listmonk, Mautic, Tailscale, WireGuard, Authentik은 원클릭 앱으로 배포됩니다. IT는 설치보다 구성과 검토에 시간을 쓸 수 있지만 지속적인 패치는 팀 책임입니다.

위치는 EU의 프랑크푸르트와 암스테르담, 영국 런던, 여러 미국 도시를 포함합니다. 선택한 위치가 도구와 목록 사본(Listmonk에서는 목록 자체)의 저장 장소를 결정합니다. 위치는 DPO와 논의할 자료이며 논의를 대체하지 않고, 위치만으로 도구가 규정을 준수하게 되지도 않습니다.

구독자 목록과 GDPR

GDPR이 직접 마케팅 처리를 반드시 동의에 근거하도록 요구하지는 않습니다. 전문 제47항은 그러한 처리가 “정당한 이익을 위해 수행되는 것으로 간주될 수 있다”고 합니다. 대신 동의를 근거로 삼는 마케팅에는 제7조에 따라 회사가 각자의 동의를 “입증할 수 있어야” 하며 동의 철회도 동의만큼 쉬워야 합니다. 이것이 이메일 플랫폼의 동의 출처와 일시가 하는 역할입니다.

더 엄격한 규칙은 GDPR 제21조에 있습니다. 근거와 무관하게 개인은 관련 프로파일링을 포함한 직접 마케팅에 언제든 반대할 수 있으며, 그러면 “그 목적으로 개인정보를 더 이상 처리해서는 안 됩니다”. 같은 조항의 다른 반대와 달리 마케팅에는 이익 형량이 없습니다. 이 도구의 가장 안전한 기본값은 일반적 직접 마케팅 반대를 그 사람 데이터의 모든 마케팅 용도, 즉 발송 목록, 도구 세그먼트, 광고 잠재고객에 적용하는 것입니다. 채널별 구독 해지는 범위가 좁을 수 있으므로 회사는 개인정보 담당자와 선호 설정 규칙을 정하고 각 요청을 적절히 이행해야 합니다.

유출되거나 잘못 변경된 목록은 개인정보 침해일 수 있습니다. 제33조는 침해가 개인에게 위험을 초래할 가능성이 낮은 경우를 제외하고 부당한 지체 없이, 가능하면 인지 후 72시간 안에 감독기관(국가 개인정보 규제기관)에 통지하도록 요구합니다. 영국의 동등한 법률은 UK GDPR이며 ICO가 집행합니다.

발송 법률: ePrivacy·PECR, CAN-SPAM·CASL

EU ePrivacy 규칙과 영국 PECR은 개인 대상 마케팅 이메일에 사전 동의를 요구하며 기존 고객에 한해 제한적인 “소프트 옵트인”을 둡니다. 영국에는 특정 조건을 따르는 별도의 자선 목적 소프트 옵트인도 있지만, 이 글은 상업 마케팅에 집중합니다. 캐나다 CASL은 명시적 또는 묵시적 동의를 요구합니다. 미국 CAN-SPAM은 발송 동의를 요구하지 않지만 10영업일 내 이행되는 유효한 수신 거부와 각 메시지의 정확한 발신자 정보·우편 주소를 요구합니다.

법률발송 동의각 마케팅 메시지 필수 사항구독 해지 처리 기한최대 제재
ePrivacy(EU) 및 PECR(영국)개인 이메일 사전 동의, 고객 소프트 옵트인. 영국의 별도 자선 목적 예외에는 특정 조건 적용발신자를 위장하지 않고 수신 거부 요청용 유효 주소 제공. 소프트 옵트인은 모든 메시지에 무료·간편 거부 방법 제공조문에 고정 기한 없음여기서는 금액을 제시하지 않음
CAN-SPAM(미국)불필요. B2B를 포함한 모든 상업 이메일에 적용정확한 헤더와 From 정보, 기만적이지 않은 제목, 광고 표시(수신자가 사전에 적극 동의한 경우 제외), 유효한 실제 우편 주소, 작동하는 수신 거부10영업일. 수신 거부는 발송 후 최소 30일간 작동해야 함이메일당 최대 미화 53,088달러. 형사 처벌은 특정 가중 위반 행위에 한정
CASL(캐나다)명시적 또는 묵시적 동의발신자 및 대리 발송 대상자 표시. 연락 정보와 구독 해지 수단 모두 최소 60일 유효지체 없이, 늦어도 10영업일가장 심각한 위반의 경우 개인 최대 100만 캐나다달러, 기업 최대 1,000만 캐나다달러

ePrivacy 지침 제13조의 소프트 옵트인은 판매 중 얻은 연락처를 자사의 유사 제품에 사용하고, 수집 시점과 모든 메시지에서 무료 거부 기회를 제공하는 경우를 말합니다. 영국 규정은 PECR 규정 제22조이며 ICO 이메일 마케팅 지침에 설명되어 있습니다. 제13조는 발신자를 위장하거나 유효한 수신 거부 요청 주소가 없는 마케팅 이메일도 금지하며, 영국의 PECR 규정 제23조도 같습니다.

CAN-SPAM 수치는 FTC CAN-SPAM 가이드에서 가져왔습니다. 이 가이드는 수신 거부 주소를 판매·이전할 수 없지만 CAN-SPAM 준수 지원을 위해 고용한 회사는 예외라고 덧붙입니다. CASL 규칙은 CASL 제6조와 제11조, 제재는 ISED CASL 개요에 있습니다.

자주 묻는 질문

직접 만든 뉴스레터 도구에도 GDPR이 적용되나요?

답은 회사가 어디서 운영하고 도구가 누구의 데이터를 보유하는지에 달려 있으며 제작 방식은 관계없습니다. 제3조에 따라 GDPR은 EU에 설립된 회사와, EU 밖에 있어도 EU 내 개인에게 상품·서비스를 제공하거나 그곳 행동을 관찰하는 회사에 적용됩니다. 특정 회사가 대상인지는 DPO에 물어야 합니다.

Klaviyo API 키가 유출되면 어떻게 되나요?

Full Access 키 보유자는 목록을 변경할 수 있고 Read-Only 키는 열람만 가능합니다. 도구가 쓰는 범위만 가진 대체 키를 만들고(Klaviyo는 나중에 기존 키에 범위를 추가할 수 없으므로 지금 선택하세요), 유출 키를 즉시 폐기한 뒤 도구를 새 키로 전환하고 담당자가 하지 않은 내보내기나 목록 변경이 있는지 확인하세요. 목록이 읽혔을 가능성이 있으면 잠재적 GDPR 침해로 취급하세요.

해시 처리한 이메일 목록도 개인정보인가요?

GDPR에서는 개인과 다시 연결할 수 있다면 그렇습니다. 전문 제26항은 “추가 정보를 사용하여 자연인에게 귀속시킬 수 있는” 가명처리 데이터를 식별 가능한 사람에 관한 정보로 봅니다. 제 해석으로는 바로 그 이유로 광고 매칭이 작동합니다. 플랫폼은 이미 가진 주소에서 같은 해시를 계산할 수 있습니다.

B2B 마케팅 이메일도 같은 규칙을 따르나요?

모든 곳이 같지는 않습니다. FTC에 따르면 CAN-SPAM은 기업 간 이메일에 예외를 두지 않습니다. PECR 이메일 규칙은 개인을 대상으로 하며 ICO는 회사에 마케팅 이메일을 보낼 수 있다고 확인합니다. EU 각국과 캐나다는 법률 자문을 구하세요.

공유

토론

댓글

토론에 참여하려면 로그인하세요.

블로그 더 보기

계속 읽기.

배포할 준비가 되셨나요? 월 $2.48부터.

2008년부터 독립 클라우드. AMD EPYC, NVMe, 40 Gbps. 14일 환불 보장.