GDPR (General Data Protection Regulation)
TL;DR
- GDPR (General Data Protection Regulation)의 핵심 개념과 사용 범위를 한눈에 정리
- 등장 배경과 필요한 이유를 짚고 실무 적용 포인트를 연결
- 주요 특징과 체크리스트를 빠르게 확인
1. 개념
┌─────────────────────────────────────────────────────────────┐ │ │ │ GDPR = General Data Protection Regulation │ │ = EU 개인정보보호 일반 규정 │ │ │ │ - 2018년 5월 25일 시행 │ │ - EU/EEA 시민의 개인정보를 다루는 모든 기업에 적용 │ │ - 전 세계에서 가장 강력한 개인정보보호법 │ │ │ │ 핵심 철학: │ │ ┌─────────────────────────────────────────────────────┐ │ │ │ │ │ │ │ "개인정보는 기업의 것이 아니라 당사자의 것이다" │ │ │ │ │ │ │ │ → 사용자가 자신의 데이터에 대한 통제권을 가짐 │ │ │ │ │ │ │ └─────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘
2. 배경
GDPR (General Data Protection Regulation)이(가) 등장한 배경과 기존 한계를 정리한다.
3. 이유
이 주제를 이해하고 적용해야 하는 이유를 정리한다.
4. 특징
- 1 동의 관리 (Consent)
- 2 쿠키 배너 (Cookie Consent)
- 3 데이터 삭제 (Right to Erasure) 구현
- 4 데이터 이동권 (Portability) 구현
- 5 개인정보 처리방침 필수 항목
5. 상세 내용
작성일: 2026-01-29 카테고리: Security / Privacy / Compliance 포함 내용: GDPR, 개인정보보호, 동의 관리, 데이터 주체 권리, 잊힐 권리, 개인정보보호법
1. GDPR이란?
┌─────────────────────────────────────────────────────────────┐
│ │
│ GDPR = General Data Protection Regulation │
│ = EU 개인정보보호 일반 규정 │
│ │
│ - 2018년 5월 25일 시행 │
│ - EU/EEA 시민의 개인정보를 다루는 모든 기업에 적용 │
│ - 전 세계에서 가장 강력한 개인정보보호법 │
│ │
│ 핵심 철학: │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ "개인정보는 기업의 것이 아니라 당사자의 것이다" │ │
│ │ │ │
│ │ → 사용자가 자신의 데이터에 대한 통제권을 가짐 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
2. 왜 GDPR이 탄생했는가? (배경)
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1995년: EU 데이터보호 지침 (Directive 95/46/EC) │
│ ├── 인터넷 초창기에 만들어진 규정 │
│ ├── 각 회원국이 개별 법률로 구현 → 일관성 부족 │
│ └── SNS, 클라우드, 빅데이터 시대에 부적합 │
│ │
│ 2010년대 초: 대형 개인정보 유출 사건들 │
│ ├── Facebook-Cambridge Analytica (8,700만 명) │
│ ├── Yahoo (30억 계정) │
│ ├── Equifax (1.4억 명) │
│ └── 기업들의 무분별한 데이터 수집/활용 │
│ │
│ 2016년: GDPR 채택 │
│ 2018년: GDPR 시행 │
│ │
│ 변화: │
│ ├── Directive (지침) → Regulation (규정) │
│ │ └── 모든 EU 회원국에 직접 적용 (별도 입법 불필요) │
│ ├── 적용 범위 확대 (EU 밖 기업도 포함) │
│ └── 강력한 과징금 도입 │
│ │
└─────────────────────────────────────────────────────────────┘
3. 적용 대상 - 누가 지켜야 하나?
┌─────────────────────────────────────────────────────────────┐
│ │
│ GDPR 적용 대상 (Article 3): │
│ │
│ 1. EU 내 사업장이 있는 기업 │
│ └── 위치에 관계없이 EU에서 활동하면 적용 │
│ │
│ 2. EU 밖이지만 EU 시민 데이터를 처리하는 기업 ← 핵심! │
│ ├── EU 시민에게 상품/서비스 제공 │
│ └── EU 시민의 행동 모니터링 │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 예시: │ │
│ │ │ │
│ │ ✓ 한국 쇼핑몰이 EU 고객 받음 → GDPR 적용 │ │
│ │ ✓ 한국 앱이 EU 사용자 분석 → GDPR 적용 │ │
│ │ ✗ 한국 내수 전용, EU 사용자 없음 → 적용 안 됨 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 판단 기준: │
│ ├── 웹사이트가 EU 언어/통화 지원? │
│ ├── EU 대상 마케팅? │
│ └── EU IP에서 접속 허용? │
│ │
└─────────────────────────────────────────────────────────────┘
4. 위반 시 과징금
┌─────────────────────────────────────────────────────────────┐
│ │
│ 2단계 과징금 체계: │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Level 1 (덜 심각한 위반): │ │
│ │ │ │
│ │ 최대 €1,000만 또는 전세계 연매출의 2% │ │
│ │ (둘 중 높은 금액) │ │
│ │ │ │
│ │ 예: 기록 의무 위반, DPO 미지정 등 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Level 2 (심각한 위반): │ │
│ │ │ │
│ │ 최대 €2,000만 또는 전세계 연매출의 4% │ │
│ │ (둘 중 높은 금액) │ │
│ │ │ │
│ │ 예: 동의 없이 데이터 처리, 권리 침해 등 │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 실제 부과 사례: │
│ ├── Meta (2023): €12억 - 역대 최고! │
│ │ └── EU→미국 데이터 전송 위반 │
│ ├── Amazon (2021): €7.5억 │
│ │ └── 타겟 광고 동의 문제 │
│ ├── Google (2019): €5,000만 │
│ │ └── 투명성/동의 부족 │
│ ├── H&M (2020): €3,500만 │
│ │ └── 직원 감시 │
│ └── British Airways (2020): €2,200만 │
│ └── 데이터 침해 │
│ │
└─────────────────────────────────────────────────────────────┘
5. 7가지 핵심 원칙 (Article 5)
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. 적법성, 공정성, 투명성 (Lawfulness, Fairness, Transparency)│
│ ├── 합법적 근거 있어야 함 (동의, 계약 등) │
│ ├── 기만적 방법 금지 │
│ └── 처리 내용을 명확히 알려야 함 │
│ │
│ 2. 목적 제한 (Purpose Limitation) │
│ ├── 수집 시 명시한 목적으로만 사용 │
│ └── 나중에 다른 용도로 사용 금지 │
│ │
│ 3. 데이터 최소화 (Data Minimisation) │
│ ├── 꼭 필요한 정보만 수집 │
│ └── "있으면 좋겠다" → ❌ │
│ │
│ 4. 정확성 (Accuracy) │
│ ├── 정확하게 유지 │
│ └── 부정확하면 즉시 수정/삭제 │
│ │
│ 5. 보관 제한 (Storage Limitation) │
│ ├── 필요한 기간만 보관 │
│ └── 목적 달성 후 삭제 │
│ │
│ 6. 무결성과 기밀성 (Integrity and Confidentiality) │
│ ├── 적절한 보안 조치 │
│ └── 무단 접근, 유출, 파괴 방지 │
│ │
│ 7. 책임성 (Accountability) │
│ ├── 위 원칙 준수를 증명할 수 있어야 함 │
│ └── "지키고 있다"가 아니라 "증명할 수 있다" │
│ │
└─────────────────────────────────────────────────────────────┘
6. 데이터 주체의 8가지 권리
┌─────────────────────────────────────────────────────────────┐
│ │
│ 데이터 주체 = 개인정보의 당사자 (사용자) │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ 1. 알 권리 (Right to be Informed) - Article 13, 14 │
│ ├── 어떤 데이터를 수집하는지 │
│ ├── 왜 수집하는지 │
│ ├── 얼마나 보관하는지 │
│ └── 누구와 공유하는지 │
│ │
│ 2. 접근권 (Right of Access) - Article 15 │
│ ├── 내 데이터를 열람할 권리 │
│ ├── 사본 요청 가능 │
│ └── 30일 내 응답 의무 │
│ │
│ 3. 정정권 (Right to Rectification) - Article 16 │
│ └── 잘못된 정보를 수정 요청할 권리 │
│ │
│ 4. 삭제권 / 잊힐 권리 (Right to Erasure) - Article 17 │
│ ├── 내 데이터 삭제 요청 가능 │
│ ├── 특정 조건 충족 시 (동의 철회, 목적 달성 등) │
│ └── 30일 내 처리 │
│ │
│ 5. 처리 제한권 (Right to Restrict Processing) - Article 18 │
│ └── 삭제 대신 "처리만 중단" 요청 가능 │
│ │
│ 6. 이동권 (Right to Data Portability) - Article 20 │
│ ├── 내 데이터를 다른 서비스로 이전할 권리 │
│ ├── 기계 판독 가능한 형식 (JSON, CSV 등) │
│ └── 직접 전송도 요청 가능 │
│ │
│ 7. 반대권 (Right to Object) - Article 21 │
│ ├── 특정 처리에 반대할 권리 │
│ └── 다이렉트 마케팅은 무조건 반대 가능 │
│ │
│ 8. 자동화된 의사결정 관련 권리 - Article 22 │
│ ├── AI 자동 결정에만 의존하지 않을 권리 │
│ ├── 인간 개입 요청 가능 │
│ └── 결정에 이의 제기 가능 │
│ │
└─────────────────────────────────────────────────────────────┘
7. 개발자가 알아야 할 실무 구현
7.1 동의 관리 (Consent)
┌─────────────────────────────────────────────────────────────┐
│ │
│ GDPR 동의 요건: │
│ │
│ ✓ 자유롭게 (Freely given) - 거부해도 불이익 없어야 함 │
│ ✓ 구체적으로 (Specific) - 목적별로 별도 동의 │
│ ✓ 명확하게 (Informed) - 이해할 수 있는 언어로 │
│ ✓ 적극적으로 (Unambiguous) - 명시적 행동 필요 │
│ │
│ ───────────────────────────────────────────────────────── │
│ │
│ ❌ 잘못된 예: │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ □ 모든 약관에 동의합니다 (사전 체크됨) │ │
│ │ [계속] │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ✓ 올바른 예: │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ □ (필수) 서비스 이용약관 동의 │ │
│ │ □ (선택) 마케팅 이메일 수신 동의 │ │
│ │ □ (선택) 제3자 정보 공유 동의 │ │
│ │ [동의하고 계속] │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
7.2 쿠키 배너 (Cookie Consent)
┌─────────────────────────────────────────────────────────────┐
│ │
│ EU에서는 쿠키도 개인정보! │
│ │
│ ❌ 잘못된 예 (한국식): │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 이 사이트는 쿠키를 사용합니다. [확인] │ │
│ │ (확인 안 눌러도 이미 쿠키 설정됨) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ✓ 올바른 예 (GDPR 준수): │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ 쿠키 설정 │ │
│ │ │ │
│ │ □ 필수 쿠키 (항상 활성화) │ │
│ │ □ 분석 쿠키 │ │
│ │ □ 마케팅 쿠키 │ │
│ │ │ │
│ │ [필수만 허용] [모두 허용] [설정 저장] │ │
│ │ │ │
│ │ (동의 전까지 비필수 쿠키 차단!) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 구현 포인트: │
│ ├── 동의 전까지 Google Analytics 등 로드 금지 │
│ ├── 동의 기록 저장 (언제, 무엇에, 어떤 버전) │
│ └── 언제든 설정 변경 가능하게 │
│ │
└─────────────────────────────────────────────────────────────┘
7.3 데이터 삭제 (Right to Erasure) 구현
# 계정 삭제 API 예시
@router.delete("/users/me")
async def delete_my_account(
current_user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db)
):
"""
GDPR Article 17 - 잊힐 권리 구현
"""
user_id = current_user.id
# 1. 사용자 데이터 삭제 또는 익명화
await db.execute(
delete(UserProfile).where(UserProfile.user_id == user_id)
)
# 2. 활동 로그 익명화 (완전 삭제가 어려운 경우)
await db.execute(
update(ActivityLog)
.where(ActivityLog.user_id == user_id)
.values(user_id=None, ip_address=None) # 익명화
)
# 3. 사용자 계정 삭제
await db.execute(
delete(User).where(User.id == user_id)
)
# 4. 삭제 요청 기록 (법적 요구사항)
await db.execute(
insert(DeletionLog).values(
original_user_id=user_id,
requested_at=datetime.now(),
completed_at=datetime.now(),
deletion_type="full"
)
)
await db.commit()
return {"message": "계정이 삭제되었습니다"}
7.4 데이터 이동권 (Portability) 구현
@router.get("/users/me/export")
async def export_my_data(
format: str = "json", # json 또는 csv
current_user: User = Depends(get_current_user),
db: AsyncSession = Depends(get_db)
):
"""
GDPR Article 20 - 데이터 이동권 구현
기계 판독 가능한 형식으로 내 데이터 다운로드
"""
# 사용자의 모든 데이터 수집
user_data = {
"profile": {
"email": current_user.email,
"name": current_user.name,
"created_at": current_user.created_at.isoformat(),
},
"posts": [
{"title": p.title, "content": p.content, "created_at": p.created_at.isoformat()}
for p in await get_user_posts(db, current_user.id)
],
"comments": [
{"content": c.content, "created_at": c.created_at.isoformat()}
for c in await get_user_comments(db, current_user.id)
],
"export_metadata": {
"exported_at": datetime.now().isoformat(),
"format": format,
"gdpr_article": "Article 20 - Right to Data Portability"
}
}
if format == "json":
return JSONResponse(
content=user_data,
headers={"Content-Disposition": "attachment; filename=my_data.json"}
)
elif format == "csv":
# CSV 변환 로직...
pass
7.5 개인정보 처리방침 필수 항목
┌─────────────────────────────────────────────────────────────┐
│ │
│ 개인정보 처리방침 (Privacy Policy) 필수 내용: │
│ │
│ 1. 수집하는 개인정보 항목 │
│ └── 이름, 이메일, IP 주소, 쿠키 등 │
│ │
│ 2. 수집 목적 │
│ └── 서비스 제공, 마케팅, 분석 등 │
│ │
│ 3. 처리의 법적 근거 │
│ └── 동의, 계약 이행, 법적 의무, 정당한 이익 등 │
│ │
│ 4. 보관 기간 │
│ └── 목적별로 명시 (예: 탈퇴 후 30일) │
│ │
│ 5. 제3자 공유 여부 │
│ └── 누구와, 왜, 어떤 데이터를 │
│ │
│ 6. 국외 이전 여부 │
│ └── EU 밖으로 데이터 전송 시 근거 │
│ │
│ 7. 데이터 주체의 권리 │
│ └── 접근, 정정, 삭제, 이동 등 권리 안내 │
│ │
│ 8. 연락처 │
│ └── DPO(Data Protection Officer) 또는 담당자 연락처 │
│ │
│ 9. 감독기관에 민원 제기 권리 │
│ └── 해당 국가의 데이터보호 기관 안내 │
│ │
└─────────────────────────────────────────────────────────────┘
8. 데이터 침해 대응 (Data Breach)
┌─────────────────────────────────────────────────────────────┐
│ │
│ 데이터 침해 발생 시 의무 (Article 33, 34): │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 72시간 이내 │ │
│ │ ↓ │ │
│ │ 감독기관에 신고 │ │
│ │ (단, 권리 침해 위험이 낮으면 예외) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 고위험 침해 시 │ │
│ │ ↓ │ │
│ │ 영향받는 개인에게도 통지 │ │
│ │ (어떤 데이터가, 어떤 영향이, 대응 조치) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ 신고 내용: │
│ ├── 침해 성격 (어떤 데이터, 몇 명) │
│ ├── DPO 연락처 │
│ ├── 예상되는 결과 │
│ └── 취한/예정 조치 │
│ │
└─────────────────────────────────────────────────────────────┘
9. GDPR vs 한국 개인정보보호법
┌──────────────────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────┬─────────────────────┬─────────────────────┐ │
│ │ │ GDPR │ 한국 개보법 │ │
│ ├──────────────┼─────────────────────┼─────────────────────┤ │
│ │ 적용 범위 │ EU 시민 데이터 처리 │ 국내 정보 처리자 │ │
│ │ │ 전세계 기업 │ │ │
│ ├──────────────┼─────────────────────┼─────────────────────┤ │
│ │ 과징금 │ 최대 전세계 매출 4% │ 최대 위반금액의 4% │ │
│ │ │ (수천억 가능) │ (상대적으로 낮음) │ │
│ ├──────────────┼─────────────────────┼─────────────────────┤ │
│ │ 동의 방식 │ Opt-in 필수 │ 일부 Opt-out 허용 │ │
│ │ │ (명시적 동의) │ │ │
│ ├──────────────┼─────────────────────┼─────────────────────┤ │
│ │ 잊힐 권리 │ 강력 (Article 17) │ 있으나 상대적 약함 │ │
│ ├──────────────┼─────────────────────┼─────────────────────┤ │
│ │ 데이터 이동권│ 명시적 권리 │ 2023년 도입 │ │
│ ├──────────────┼─────────────────────┼─────────────────────┤ │
│ │ DPO 의무 │ 일정 규모 이상 필수 │ 선택적 │ │
│ ├──────────────┼─────────────────────┼─────────────────────┤ │
│ │ 침해 신고 │ 72시간 이내 │ 24시간 이내 │ │
│ └──────────────┴─────────────────────┴─────────────────────┘ │
│ │
│ 실무 팁: │
│ └── GDPR 준수하면 한국법도 대부분 충족 (더 엄격하므로) │
│ │
└──────────────────────────────────────────────────────────────────────────┘
10. SSO와 GDPR
┌─────────────────────────────────────────────────────────────┐
│ │
│ SSO 사용 시 GDPR 관점 장점: │
│ │
│ ✓ 데이터 최소화 원칙 부합 │
│ └── 비밀번호 저장 안 함 = 수집 데이터 감소 │
│ │
│ ✓ 보안 강화 │
│ └── 대형 IdP의 강력한 보안 = 침해 위험 감소 │
│ │
│ ✓ 책임 분산 │
│ └── 인증 데이터는 IdP가 책임 │
│ │
│ ⚠️ 주의사항: │
│ ├── IdP와의 데이터 공유도 사용자에게 고지 필요 │
│ ├── IdP로부터 받는 정보도 최소화 원칙 적용 │
│ └── 제3자 공유로 간주될 수 있음 │
│ │
└─────────────────────────────────────────────────────────────┘
11. 체크리스트
┌─────────────────────────────────────────────────────────────┐
│ │
│ GDPR 준수 개발 체크리스트: │
│ │
│ □ 동의 관리 │
│ ├── 목적별 개별 동의 │
│ ├── 동의 기록 저장 (언제, 무엇에, 어떤 버전) │
│ └── 동의 철회 기능 │
│ │
│ □ 쿠키 배너 │
│ ├── Opt-in 방식 (EU 사용자) │
│ ├── 동의 전 비필수 쿠키 차단 │
│ └── 세부 설정 가능 │
│ │
│ □ 데이터 주체 권리 │
│ ├── 데이터 접근/다운로드 기능 │
│ ├── 데이터 수정 기능 │
│ ├── 계정/데이터 삭제 기능 │
│ └── 마케팅 수신 거부 기능 │
│ │
│ □ 개인정보 처리방침 │
│ ├── 필수 항목 모두 포함 │
│ ├── 쉬운 언어로 작성 │
│ └── 쉽게 찾을 수 있는 위치 │
│ │
│ □ 보안 │
│ ├── HTTPS 적용 │
│ ├── 민감 데이터 암호화 │
│ ├── 접근 로그 기록 │
│ └── 침해 대응 계획 수립 │
│ │
│ □ 데이터 최소화 │
│ ├── 필요한 데이터만 수집 │
│ ├── 보관 기간 정책 수립 │
│ └── 기간 경과 데이터 자동 삭제 │
│ │
└─────────────────────────────────────────────────────────────┘
12. 정리
┌─────────────────────────────────────────────────────────────┐
│ │
│ GDPR 핵심 요약: │
│ │
│ 1. 누가? EU 시민 데이터 다루는 모든 기업 (전세계) │
│ │
│ 2. 핵심 철학: "개인정보는 당사자의 것" │
│ │
│ 3. 7원칙: 적법성, 목적제한, 최소화, 정확성, │
│ 보관제한, 보안, 책임성 │
│ │
│ 4. 8권리: 알권리, 접근, 정정, 삭제(잊힐권리), │
│ 제한, 이동, 반대, 자동화 관련 │
│ │
│ 5. 위반 시: 최대 전세계 매출 4% 또는 €2,000만 │
│ │
│ 6. 개발자 필수: │
│ ├── 동의 관리 (Opt-in) │
│ ├── 쿠키 배너 (비필수 차단) │
│ ├── 삭제/이동 기능 │
│ ├── 개인정보 처리방침 │
│ └── 보안 조치 │
│ │
│ 💡 팁: GDPR 준수하면 한국법도 대부분 OK! │
│ │
└─────────────────────────────────────────────────────────────┘
관련 키워드
GDPR, 개인정보보호, Privacy, 동의, Consent, 쿠키 배너, 잊힐 권리, Right to Erasure, 데이터 이동권, Data Portability, DPO, Data Protection Officer, 개인정보보호법, 개인정보 처리방침, Privacy Policy