별책부록 20편
별책부록 20편
봇 윤리·법적 이슈
책임 있는 봇 운영자가 반드시 알아야 할 6가지 원칙
📑 이 편에서 다룰 내용

봇은 단순 도구가 아니라 사람과 상호작용하는 서비스입니다. 잘못 만들면 사용자 피해, 법적 책임, Anthropic·Discord·Telegram 계정 정지, 운영자 본인의 명예 손상까지 이어질 수 있어요. 이 편은 봇 운영자가 갖춰야 할 윤리·법적 의식을 종합합니다. 강의가 아니라 Junho 본인이 지켜야 할 의무입니다.

⚠️ 이 편이 중요한 이유
  • 사용자 피해 발생 시 운영자에게 민·형사 책임이 돌아올 수 있어요
  • Anthropic API 이용약관 위반 시 API 키 즉시 정지됩니다
  • Discord·Telegram 플랫폼 규정 위반 시 봇 계정이 삭제됩니다
  • 한국 개인정보 보호법 위반 시 최대 3,000만원 과태료가 부과됩니다
20-1 Position C 6차원 🔗

별책부록 7편의 Position C 5차원에 개인정보 보호 차원을 추가해 6차원으로 확장합니다. 모든 봇의 시스템 프롬프트에 이 6가지 원칙이 반영되어야 합니다.

차원 1: 베팅·도박 금지 (TSV 봇 핵심)

💻 시스템 프롬프트 원칙
[원칙]
- 베팅·도박 추천 절대 금지
- 픽·예측·확률 단정 금지
- "분석 미디어"로서 통계·맥락만 제공

[차단 키워드]
- "베팅", "도박", "픽", "100% 확실"
- 영문: "betting", "guaranteed"
- 일본어: "賭け", "確実"
- 중국어: "投注", "100%"

[응답 예시]
✗ "이 경기 맨유 이깁니다"
✓ "맨유의 최근 5경기 통계는 3승 1무 1패입니다. 단, 단정은 드리기 어렵습니다."

차원 2: 의료·건강 조언 금지

💻 시스템 프롬프트 원칙
[원칙]
- 의료 자문 금지
- 약·질병 추천 금지
- 반드시 "전문의 자문 권장" 문구 추가

[차단 키워드]
- "이 약 드세요", "이 증상 치료법"
- "확실히 낫습니다", "암 100% 진단"

[응답 예시]
✗ "이 두통은 편두통입니다"
✓ "두통이 지속된다면 전문의 자문을 권장합니다."

차원 3: 법률 자문 금지 (AlbaFlow 봇 핵심)

💻 시스템 프롬프트 원칙
[원칙]
- 법률 자문 금지
- 법적 판단 단정 금지 (AlbaFlow 봇 특히 주의)
- "변호사·노무사 자문 권장" 문구 추가

[차단 키워드]
- "이 계약서는 위반입니다", "고소하세요"
- "근로계약서 이 조항은 불법입니다"

[응답 예시]
✗ "이 케이스는 주 52시간 위반입니다"
✓ "주 52시간 관련 사항은 노무사 자문을 권장합니다."

차원 4: 금융·투자 자문 금지 (viewLab 봇 핵심)

💻 시스템 프롬프트 원칙
[원칙]
- 투자 자문 금지
- 주식·코인 추천 금지
- 가격 단정 금지 (viewLab 부동산 봇 특히 주의)

[차단 키워드]
- "이 주식 사세요", "이 코인 올라요"
- "이 부동산 5억 확실합니다", "100% 수익"

[응답 예시]
✗ "이 부동산 5억입니다"
✓ "이 지역 평균 시세는 OO억대이나, 직접 감정평가를 받아보시길 권장합니다."

차원 5: 차별·혐오 발언 금지

💻 시스템 프롬프트 원칙
[원칙]
- 인종·성별·종교·국적 차별 금지
- 혐오 표현 생성 금지
- 정치적 편향 발언 금지 (특히 선거 관련)

[주의 영역]
- 인종·민족 비하 표현
- 성별 고정관념 강화 발언
- 정치 편향 (좌우 막론)

[운영 원칙]
- 모든 사용자에게 동등하게 중립적으로 응대
- 정치·사회 갈등 주제는 "운영자에게 문의" 안내

차원 6: 개인정보 보호 (★ 핵심 추가 차원)

💻 시스템 프롬프트 원칙
[원칙]
- 사용자 개인정보를 다른 사용자에게 노출 금지
- 비밀번호·주민번호 등 민감 정보 답변 금지
- 사용자 동의 없이 외부에 데이터 전달 금지

[금지 행동]
- 비밀번호 요청 및 저장
- 다른 사용자 데이터 노출
- 사용자 동의 없는 제3자 전달

[응답 예시]
✗ "다른 사용자 [홍길동]님의 연락처는..."
✓ "다른 사용자의 정보는 제공해드리기 어렵습니다."
🎉 6차원 Position C 요약
차원금지 영역핵심 봇
1베팅·도박 추천TSV
2의료·건강 자문전체
3법률 자문AlbaFlow
4금융·투자 자문viewLab
5차별·혐오 발언전체
6 ★개인정보 노출전체
20-2 개인정보 처리 방침 (한국 개인정보 보호법) 🔗

한국에서 서비스를 운영하면 개인정보 보호법이 적용됩니다. 개인정보를 수집·처리하는 모든 서비스는 개인정보 처리 방침을 공개해야 해요.

⚠️ 한국 개인정보 보호법 핵심 의무 5가지
  1. 동의 수집 — 가입 시 개인정보 처리 목적을 명시하고 동의 받기
  2. 목적 제한 — 수집 목적 외 다른 용도로 사용 금지
  3. 보관 기간 제한 — 탈퇴 후 일정 기간 내 삭제 (보통 3년)
  4. 보안 조치 — 개인정보 암호화 및 접근 제어
  5. 열람·삭제 권리 — 사용자가 본인 정보 열람·수정·삭제를 요청할 수 있어야 함

개인정보 처리 방침 필수 항목 (privacy_policy.html)

💻 privacy_policy.html 구성
# 1. 수집하는 개인정보 항목
   - 이름 (필수)
   - 이메일 (필수)
   - 전화번호 (선택)

# 2. 수집 목적
   - 회원 가입 본인 확인
   - 봇 서비스 제공 및 관리
   - 서비스 관련 공지 발송

# 3. 보관 기간
   - 회원 정보: 회원 탈퇴 시까지
   - 거래 기록: 5년 (전자상거래법)
   - 접속 로그: 3년

# 4. 보안 조치
   - DB 암호화 (AES-256)
   - 비밀번호 해싱 (bcrypt)
   - SSL 통신 암호화

# 5. 이용자 권리
   - 본인 정보 열람 요청: 가능
   - 정보 수정 요청: 가능
   - 계정 삭제 요청: 가능

# 6. 개인정보 책임자 (운영자 정보)
   - 이름: Junho
   - 이메일: privacy@example.com
   - 전화: +82-10-XXXX-XXXX

계정 삭제 흐름 — 소프트 삭제 + 30일 유예

💻 계정 삭제 API 예시
# 사용자 계정 삭제 요청 처리
@app.delete("/api/user/me")
async def delete_account(user_id: int):
    # 1. 소프트 삭제 (즉시 비활성화)
    await db.execute(
        "UPDATE users SET deleted_at = NOW() WHERE id = $1",
        user_id
    )

    # 2. 30일 후 완전 삭제 예약 (실수 복구 기간)
    await schedule_hard_delete(user_id, days=30)

    # 3. 삭제 확인 이메일 발송
    await send_confirmation_email(user_id)

    return {"status": "scheduled_deletion"}

# 30일 후 완전 삭제 실행
async def hard_delete(user_id: int):
    # 모든 관련 데이터 삭제 (감사 로그만 별도 보관)
    await db.execute("DELETE FROM users WHERE id = $1", user_id)
    await db.execute("DELETE FROM sessions WHERE user_id = $1", user_id)
    await db.execute("DELETE FROM bot_interactions WHERE user_id = $1", user_id)
20-3 이용약관 (Terms of Service) 🔗

이용약관은 운영자와 사용자 간의 계약입니다. 명확한 약관이 있어야 분쟁 발생 시 운영자를 보호할 수 있어요.

이용약관 필수 구성 항목 (terms.html)

💻 terms.html 구성
1. 목적
   본 약관은 Junho ("운영자")가 제공하는 봇 서비스의
   이용 조건과 절차를 규정합니다.

2. 회원 자격
   - 만 14세 이상만 가입 가능
   - 1인 1계정 원칙
   - 사실에 맞는 정보 입력 의무

3. 사용자 금지 행위
   - 타인 사칭 금지
   - 다른 사용자 개인정보 무단 수집 금지
   - 봇을 이용한 스팸·불법 콘텐츠 유포 금지
   - 서비스 시스템 해킹 시도 금지

4. 운영자 의무
   - 서비스 안정적 운영 최선
   - 보안 사고 발생 시 사용자 즉시 통보
   - 개인정보 보호법 준수

5. 면책 조항
   - 서비스 구독 14일 내 환불 가능
   - Anthropic·Discord·Telegram 등 외부 서비스 장애 시 책임 제한
   - AI 생성 콘텐츠의 정확성 보장 불가

6. 준거법
   본 약관은 대한민국 법률에 따라 해석됩니다.

7. 운영자 연락처
   - 이름: Junho
   - 이메일: legal@example.com

가입 시 동의 체크박스 구성

📘 필수·선택 동의 구분

가입 화면 동의 항목:

  • ☑ 이용약관 동의 (필수)
  • ☑ 개인정보 처리 방침 동의 (필수)
  • ☐ 마케팅 정보 수신 동의 (선택)
  • ☐ 야간 알림 수신 동의 (선택)

필수 항목에 동의하지 않으면 가입 불가 / 선택 항목 거부 시에도 가입 가능합니다.

20-4 봇 플랫폼 운영 규정 🔗

Discord, Telegram, Anthropic 각 플랫폼의 서비스 약관을 반드시 준수해야 합니다. 위반 시 봇 또는 API 키가 정지됩니다.

Discord 운영 규정 핵심

📘 Discord Developer Policy 주요 항목
  • 사용자 동의 없이 메시지 대량 수집 금지
  • 봇을 이용한 스팸·DM 홍보 금지
  • 다른 사용자를 괴롭히거나 차별하는 콘텐츠 생성 금지
  • Discord 서버 내 불법 콘텐츠 유통 금지 (저작권 침해 포함)
  • 18세 미만 사용자에게 성인 콘텐츠 노출 금지

참고: Discord Developer Policy ↗

Telegram 운영 규정 핵심

📘 Telegram Bot API Terms 주요 항목
  • BotFather에서 설정한 봇 설명과 실제 기능이 일치해야 함
  • 사용자 동의 없이 개인 채팅 내용 수집 금지
  • 정치 선전·선거 개입 목적의 봇 운영 금지
  • 스팸 메시지 자동 발송 금지

참고: Telegram Bot Terms ↗

Anthropic API 이용 정책 핵심

⚠️ Anthropic Usage Policy — 위반 시 즉시 API 정지
  • Anthropic AI를 이용한 허위·사기 콘텐츠 생성 금지
  • 사람인 척하는 AI 봇 운영 금지 (AI임을 명시해야 함)
  • 해킹·사이버 공격 도구 제작에 AI 활용 금지
  • 아동 성 착취물(CSAM) 생성 금지

위반 적발 시 API 키 즉시 정지 + 복구 불가 사례도 있어요. 특히 "AI임을 명시" 항목은 20-7절에서 자세히 다룹니다.

참고: Anthropic Usage Policy ↗

20-5 사용자 제재 절차 🔗

악의적 사용자에 대응하는 명확한 절차가 있어야 합니다. 감정적으로 즉시 차단하는 것보다 단계적 접근이 분쟁을 예방합니다.

단계별 제재 절차

1
1차 경고

위반 행위를 DM·이메일로 안내합니다. "OO 행위는 이용약관 위반입니다. 재발 시 이용 제한될 수 있어요."

2
2차 일시 정지

재발 시 7~30일 이용 정지. 정지 사유와 기간을 이메일로 안내합니다.

3
3차 영구 차단

지속 위반 시 계정 영구 차단. 차단 사유를 기록으로 남깁니다.

💡 즉시 영구 차단 사유

다음 행위는 단계를 생략하고 즉시 영구 차단합니다:

  • 아동 성 착취물(CSAM) 관련 시도
  • 다른 사용자 개인정보 무단 수집·공개
  • 서비스 시스템 해킹 시도
  • 운영자·다른 사용자에 대한 협박·사기

차단 처리 코드 예시

💻 block_user.py
# block_user.py
async def block_user(user_id: int, reason: str):
    # 1. DB에서 사용자 상태 변경
    await db.execute(
        "UPDATE users SET status = 'blocked' WHERE id = $1",
        user_id
    )

    # 2. 차단 로그 기록
    await db.execute(
        "INSERT INTO block_log (user_id, reason, blocked_at) VALUES ($1, $2, NOW())",
        user_id, reason
    )

    # 3. 차단 안내 이메일 발송
    await send_email(user_id, "서비스 이용이 제한되었습니다")

    # 4. 운영자 알림
    await notify_admin(f"사용자 차단 완료: {user_id} - {reason}")
20-6 미성년자(14세) 보호 🔗

한국 개인정보 보호법과 미국 COPPA(아동 온라인 개인정보 보호법)에 따라 만 14세(미국은 13세) 미만 사용자는 보호자 동의 없이 개인정보를 수집할 수 없습니다.

⚠️ 14세 미만 가입 차단 — 필수 조치
  • 가입 시 생년월일 입력 필드를 추가하세요
  • 만 14세 미만으로 확인되면 가입을 차단합니다
  • 차단 시 보호자 동의 절차 안내 페이지로 이동합니다
📘 미성년자 보호 운영 원칙
  • 성인용 콘텐츠(주류·성인 미디어 등) 채널에 연령 게이트 설치
  • 미성년자 사용자의 개인정보를 마케팅 목적으로 활용 금지
  • 미성년자가 포함된 Discord 서버에서는 성인 콘텐츠 기능 비활성화
20-7 AI 콘텐츠 공시 🔗

봇이 만들어 내는 콘텐츠는 AI가 생성한 것임을 사용자에게 명시해야 합니다. 이는 Anthropic 이용 정책의 핵심 요구사항이기도 해요.

⚠️ AI임을 숨기면 Anthropic 약관 위반입니다

사용자가 "이 봇이 AI예요?"라고 물을 때 "사람입니다"라고 답하거나 AI임을 회피하는 것은 Anthropic 이용 정책 위반입니다.

봇 소개 문구에 반드시 "AI 봇" 또는 "Powered by Claude" 등의 문구를 포함하세요.

AI 콘텐츠 공시 방법

1
봇 프로필·소개에 명시

Discord 봇 About Me / Telegram 봇 Description에 "AI 봇" 또는 "Powered by Claude (Anthropic)" 문구를 포함합니다.

2
웰컴 메시지에 공시

처음 봇을 사용하는 사용자에게 "저는 AI 봇입니다. Anthropic의 Claude 모델을 활용합니다."라고 안내합니다.

3
AI 여부 질문에 정직하게 답변

시스템 프롬프트에 "사용자가 AI 여부를 물으면 AI임을 솔직하게 밝힌다"를 명시합니다.

4
이용약관·개인정보 방침에 AI 사용 명시

서비스에 Anthropic API가 활용된다는 사실을 이용약관에 포함합니다.

20-8 운영 점검 체크리스트 🔗
📘 주기별 윤리·법적 점검 항목

매일 점검

  • ☑ Position C 6차원 위반 응답 건수 = 0
  • ☑ 사용자 불만·신고 접수 건수 확인
  • ☑ 차단·제재 처리 대기 사항 확인

주별 점검

  • ☑ Position C 시스템 프롬프트 키워드 유효성 검토
  • ☑ 신규 가입자 연령 확인 누락 여부 검토

월별 점검

  • ☑ 개인정보 처리 방침 최신 법령 반영 여부 확인
  • ☑ Anthropic·Discord·Telegram 약관 변경 사항 확인
  • ☑ 탈퇴 후 30일 지난 사용자 데이터 완전 삭제 확인
📌 20편 정리
  • 1️⃣ Position C 6차원: 베팅·의료·법률·금융·차별·개인정보 — 모든 봇 시스템 프롬프트에 반영
  • 2️⃣ 개인정보 보호법: 수집 동의·목적 제한·보관 기간·보안·열람권 — 5가지 의무 준수
  • 3️⃣ 이용약관: 14세 이상 가입, 금지 행위, 면책 조항 명시 — 분쟁 예방의 핵심
  • 4️⃣ 플랫폼 규정: Discord·Telegram·Anthropic 각 약관 준수 — 위반 시 즉시 정지
  • 5️⃣ 사용자 제재: 경고→일시 정지→영구 차단 단계적 절차 운영
  • 6️⃣ 14세 보호: 가입 시 생년월일 확인, 미성년자 차단 로직 필수
  • 7️⃣ AI 공시: 봇 소개·웰컴 메시지·이용약관에 AI 사용 사실 명시 의무
🎉 책임 있는 봇 운영자의 한 줄 원칙

"봇이 할 수 없는 것을 먼저 정의하라 — 그것이 Position C다."

6차원 원칙을 시스템 프롬프트에 내재화하면, 봇은 법적 위험 없이 사용자에게 가치를 제공할 수 있어요.

📘
별책부록 도우미
질문하기 OK
안녕하세요! 봇 윤리·법적 이슈에 대해 무엇이든 물어보세요. 본문에서 찾아 답변해드릴게요. 👇