EU AI Act
EU AI Act
유럽연합의 인공지능 규제법. 세계 최초의 포괄적 AI 법률로 2024년 발효, 위험 기반 접근 방식 채택.
EU AI Act
유럽연합의 인공지능 규제법. 세계 최초의 포괄적 AI 법률로 2024년 발효, 위험 기반 접근 방식 채택.
EU AI Act(Regulation 2024/1689)는 2024년 8월 1일 발효된 세계 최초의 포괄적 AI 규제 법률입니다. AI 시스템을 위험 수준에 따라 분류하고, 각 수준에 맞는 의무를 부과하는 '위험 기반 접근법(Risk-Based Approach)'을 채택했습니다.
위험 등급은 4단계로 구분됩니다: 1) 금지된 AI(Prohibited) - 사회적 신용점수, 취약계층 착취 등, 2) 고위험 AI(High-Risk) - 채용, 신용평가, 의료기기 등 부속서 III 분야, 3) 제한적 위험(Limited Risk) - 챗봇, 딥페이크 등 투명성 의무, 4) 최소 위험(Minimal Risk) - 대부분의 AI, 자율 규제.
고위험 AI 제공자(Provider)는 위험관리시스템(Article 9), 데이터 거버넌스(Article 10), 기술문서(Article 11), 로깅(Article 12), 투명성(Article 13), 인간감독(Article 14), 정확성/견고성/사이버보안(Article 15), 품질관리시스템(Article 17) 요구사항을 준수해야 합니다.
적용 일정은 단계적으로 시행됩니다: 2025년 2월 - 금지 AI 조항 적용, 2025년 8월 - GPAI 및 거버넌스 조항, 2026년 8월 - 고위험 AI 전면 적용, 2027년 8월 - 특정 제품 관련 AI 시스템.
# EU AI Act 위험 분류 및 컴플라이언스 체커
from dataclasses import dataclass, field
from typing import List, Dict, Optional
from enum import Enum
from datetime import datetime
class RiskLevel(Enum):
"""EU AI Act 위험 등급"""
PROHIBITED = "prohibited" # 금지 - Article 5
HIGH_RISK = "high_risk" # 고위험 - Article 6, Annex III
LIMITED_RISK = "limited_risk" # 제한적 위험 - Article 50
MINIMAL_RISK = "minimal_risk" # 최소 위험
class ActorRole(Enum):
"""EU AI Act 역할 구분"""
PROVIDER = "provider" # 제공자 - Article 3(3)
DEPLOYER = "deployer" # 배포자 - Article 3(4)
IMPORTER = "importer" # 수입자 - Article 3(6)
DISTRIBUTOR = "distributor" # 유통자 - Article 3(7)
AUTHORIZED_REP = "authorized_representative" # 위임대리인
@dataclass
class EUAIActClassifier:
"""EU AI Act 위험 분류기"""
# 금지 AI 유형 (Article 5)
PROHIBITED_PRACTICES = [
"subliminal_manipulation", # 잠재의식 조작
"exploitation_of_vulnerabilities", # 취약성 악용
"social_scoring_by_public", # 공공기관 사회점수
"predictive_policing_individual", # 개인 대상 예측 치안
"emotion_recognition_workplace", # 직장/학교 감정인식
"untargeted_facial_scraping", # 무차별 얼굴 수집
"biometric_categorization_sensitive", # 민감정보 생체분류
"real_time_rbi_public_spaces", # 실시간 원격 생체인식(예외 제외)
]
# 고위험 분야 (Annex III)
HIGH_RISK_AREAS = {
"biometrics": "생체인식 및 분류",
"critical_infrastructure": "핵심 인프라 관리",
"education": "교육 및 직업훈련",
"employment": "고용, 근로자 관리, 자영업 접근",
"essential_services": "필수 서비스(신용, 보험 등) 접근",
"law_enforcement": "법 집행",
"migration": "이민, 망명, 국경 통제",
"justice": "사법 및 민주적 절차",
}
def classify_risk(self, ai_system: Dict) -> Dict:
"""AI 시스템 위험 분류"""
# 금지 여부 확인
if self._check_prohibited(ai_system):
return {
"risk_level": RiskLevel.PROHIBITED,
"legal_basis": "Article 5",
"consequence": "시스템 출시/사용 금지",
"penalty": "최대 3,500만 유로 또는 전 세계 매출 7%"
}
# 고위험 여부 확인
if self._check_high_risk(ai_system):
return {
"risk_level": RiskLevel.HIGH_RISK,
"legal_basis": "Article 6, Annex III",
"obligations": self._get_high_risk_obligations(),
"penalty": "최대 1,500만 유로 또는 전 세계 매출 3%"
}
# 제한적 위험 확인 (투명성 의무)
if self._check_limited_risk(ai_system):
return {
"risk_level": RiskLevel.LIMITED_RISK,
"legal_basis": "Article 50",
"obligations": ["AI 사용 고지", "딥페이크 라벨링", "감정인식 고지"],
"penalty": "최대 750만 유로 또는 전 세계 매출 1.5%"
}
return {
"risk_level": RiskLevel.MINIMAL_RISK,
"obligations": ["자발적 행동강령 권장"],
"penalty": "없음 (자율 규제)"
}
def _check_prohibited(self, system: Dict) -> bool:
"""금지 AI 해당 여부"""
return system.get("practice_type") in self.PROHIBITED_PRACTICES
def _check_high_risk(self, system: Dict) -> bool:
"""고위험 AI 해당 여부"""
# Annex III 분야 확인
if system.get("application_area") in self.HIGH_RISK_AREAS:
return True
# Annex I 제품 안전 규정 해당 여부
if system.get("safety_component") and system.get("product_regulation"):
return True
return False
def _check_limited_risk(self, system: Dict) -> bool:
"""제한적 위험 해당 여부"""
limited_types = ["chatbot", "deepfake", "emotion_recognition", "biometric_categorization"]
return system.get("system_type") in limited_types
def _get_high_risk_obligations(self) -> List[Dict]:
"""고위험 AI 의무사항"""
return [
{"article": 9, "title": "위험관리시스템", "description": "전체 수명주기 위험 식별/완화"},
{"article": 10, "title": "데이터 거버넌스", "description": "학습/검증/테스트 데이터 품질"},
{"article": 11, "title": "기술 문서", "description": "부속서 IV 준수 문서화"},
{"article": 12, "title": "기록 보관", "description": "자동 로깅, 추적성 확보"},
{"article": 13, "title": "투명성", "description": "사용자 대상 정보 제공"},
{"article": 14, "title": "인간 감독", "description": "인간 개입/중지 메커니즘"},
{"article": 15, "title": "정확성/견고성/보안", "description": "성능 수준 유지"},
{"article": 17, "title": "품질관리시스템", "description": "QMS 구축 및 운영"},
]
@dataclass
class ComplianceTimeline:
"""EU AI Act 시행 일정"""
MILESTONES = {
"2024-08-01": "EU AI Act 발효",
"2025-02-02": "금지 AI 조항 적용 (Article 5)",
"2025-08-02": "GPAI 모델 조항 적용, AI 사무국/위원회 설립",
"2026-08-02": "고위험 AI 전면 적용 (Chapter III Section 2)",
"2027-08-02": "Annex I 제품 관련 고위험 AI 적용",
}
def get_applicable_date(self, risk_level: RiskLevel) -> str:
if risk_level == RiskLevel.PROHIBITED:
return "2025-02-02"
elif risk_level == RiskLevel.HIGH_RISK:
return "2026-08-02"
return "2024-08-01"
# 사용 예시
classifier = EUAIActClassifier()
# AI 채용 시스템 분류
hr_ai = {
"name": "AI 채용 스크리닝 시스템",
"application_area": "employment",
"system_type": "decision_support"
}
result = classifier.classify_risk(hr_ai)
print(f"위험 등급: {result['risk_level'].value}")
print(f"법적 근거: {result.get('legal_basis')}")
print(f"의무사항 수: {len(result.get('obligations', []))}")
법무팀: "우리 AI 채용 시스템은 EU AI Act 부속서 III의 고용 분야에 해당해서 고위험으로 분류됩니다. 2026년 8월 전까지 Article 9-17 요구사항 전부 충족해야 해요."
개발팀: "기술 문서는 부속서 IV 양식대로 준비 중입니다. 위험관리시스템하고 QMS가 관건인데, 외부 컨설팅 받는 게 좋을 것 같아요."
면접관: "EU AI Act의 위험 기반 접근법에 대해 설명해 주세요."
지원자: "AI 시스템을 위험도에 따라 금지, 고위험, 제한적 위험, 최소 위험 4단계로 분류합니다. 고위험 AI는 채용, 신용평가, 의료기기 등 부속서 III에 나열된 분야에 해당하며, 적합성 평가와 CE 마킹이 필요합니다. 위반 시 최대 3,500만 유로 또는 매출 7%의 과징금이 부과됩니다."
컴플라이언스: "이 AI 모델 로깅이 Article 12 요구사항 충족하나요? 추적성 확보가 핵심이에요."
개발자: "입력-출력 쌍, 타임스탬프, 모델 버전 전부 기록하고 있습니다. 보관 기간은 10년으로 설정했고, 위험관리시스템이랑 연동해서 이상 탐지도 합니다."