표준화 기구
Standardization Body
AI 기술 표준을 개발하는 기관. CEN, CENELEC, ETSI, ISO, IEC 등.
Standardization Body
AI 기술 표준을 개발하는 기관. CEN, CENELEC, ETSI, ISO, IEC 등.
표준화 기구(Standardization Body)는 기술 표준을 개발, 승인, 유지하는 공인된 기관입니다. EU AI Act 제3조 제23항에서는 표준화 기구를 Regulation (EU) 1025/2012 제2조 제1항에 정의된 '표준화 기구'로 규정합니다. AI 분야에서는 유럽 표준화 기구(CEN, CENELEC, ETSI)와 국제 표준화 기구(ISO, IEC)가 핵심적인 역할을 합니다. 이들이 개발한 표준은 EU AI Act의 필수 요건 충족을 입증하는 데 중요한 기준이 됩니다.
유럽 표준화 기구 중 CEN(European Committee for Standardization)은 전기 분야를 제외한 일반 표준을, CENELEC(European Committee for Electrotechnical Standardization)은 전기/전자 분야 표준을, ETSI(European Telecommunications Standards Institute)는 통신 및 ICT 표준을 담당합니다. EU AI Act 시행을 지원하기 위해 CEN-CENELEC JTC 21 (Joint Technical Committee on Artificial Intelligence)이 AI 관련 조화된 표준 개발을 주도하고 있으며, EU 집행위원회의 표준화 요청에 따라 위험 관리, 데이터 품질, 투명성, 인간 감독 등 고위험 AI 요건을 다루는 표준들을 개발 중입니다.
국제 표준화 기구 중 ISO(International Organization for Standardization)와 IEC(International Electrotechnical Commission)는 전세계적으로 통용되는 기술 표준을 개발합니다. AI 분야에서는 ISO/IEC JTC 1/SC 42(Artificial Intelligence)가 핵심 위원회로, AI 관련 주요 국제 표준을 담당합니다. ISO/IEC 22989(AI 개념 및 용어), ISO/IEC 23053(ML 프레임워크), ISO/IEC 23894(AI 위험 관리), ISO/IEC 42001(AI 관리 시스템) 등이 대표적입니다. 이러한 국제 표준은 Vienna Agreement(CEN-ISO)와 Frankfurt Agreement(CENELEC-IEC)를 통해 유럽 표준으로 채택될 수 있습니다.
한국에서는 국가기술표준원(KATS)이 국가 표준화 정책을 총괄하며, TTA(한국정보통신기술협회)가 ICT 분야 표준화를 담당합니다. 한국은 ISO, IEC의 정회원국으로서 국제 표준 개발에 참여하고 있으며, AI 분야에서도 SC 42 등 관련 위원회에서 활동 중입니다. EU AI Act 대응을 위해 한국 기업들은 ISO/IEC 국제 표준 인증을 취득함으로써 EU 조화된 표준 적합성의 좋은 출발점을 확보할 수 있습니다.
Python으로 표준화 기구별 AI 관련 표준을 추적하고 적용 현황을 관리하는 시스템입니다.
from dataclasses import dataclass, field
from datetime import date
from enum import Enum
from typing import Optional
class StandardizationBodyType(Enum):
"""표준화 기구 유형"""
EUROPEAN = "european" # 유럽 표준화 기구
INTERNATIONAL = "international" # 국제 표준화 기구
NATIONAL = "national" # 국가 표준화 기구
class StandardScope(Enum):
"""표준 적용 범위"""
GENERAL = "general" # 일반 (CEN, ISO)
ELECTROTECHNICAL = "electrotechnical" # 전기/전자 (CENELEC, IEC)
TELECOMMUNICATIONS = "telecommunications" # 통신/ICT (ETSI, ITU)
AI_SPECIFIC = "ai_specific" # AI 특화
class StandardStatus(Enum):
"""표준 상태"""
UNDER_DEVELOPMENT = "under_development"
PUBLISHED = "published"
HARMONISED = "harmonised" # EU 관보 게재
WITHDRAWN = "withdrawn"
@dataclass
class StandardizationBody:
"""표준화 기구"""
code: str
name: str
full_name: str
body_type: StandardizationBodyType
scope: StandardScope
website: str
ai_committee: Optional[str] = None # AI 담당 위원회
region: str = "Global"
@dataclass
class AIStandard:
"""AI 관련 표준"""
reference: str # 예: "ISO/IEC 42001:2023"
title: str
body: StandardizationBody
status: StandardStatus
publication_date: Optional[date] = None
ai_act_requirements: list[str] = field(default_factory=list)
description: str = ""
european_adoption: Optional[str] = None # EN 채택 번호
class StandardizationRegistry:
"""표준화 기구 및 표준 레지스트리"""
# 주요 표준화 기구
BODIES = {
"CEN": StandardizationBody(
code="CEN",
name="CEN",
full_name="European Committee for Standardization",
body_type=StandardizationBodyType.EUROPEAN,
scope=StandardScope.GENERAL,
website="https://www.cencenelec.eu/",
ai_committee="CEN-CENELEC JTC 21",
region="EU/EEA"
),
"CENELEC": StandardizationBody(
code="CENELEC",
name="CENELEC",
full_name="European Committee for Electrotechnical Standardization",
body_type=StandardizationBodyType.EUROPEAN,
scope=StandardScope.ELECTROTECHNICAL,
website="https://www.cencenelec.eu/",
ai_committee="CEN-CENELEC JTC 21",
region="EU/EEA"
),
"ETSI": StandardizationBody(
code="ETSI",
name="ETSI",
full_name="European Telecommunications Standards Institute",
body_type=StandardizationBodyType.EUROPEAN,
scope=StandardScope.TELECOMMUNICATIONS,
website="https://www.etsi.org/",
ai_committee="ETSI SAI (Securing AI)",
region="EU/EEA"
),
"ISO": StandardizationBody(
code="ISO",
name="ISO",
full_name="International Organization for Standardization",
body_type=StandardizationBodyType.INTERNATIONAL,
scope=StandardScope.GENERAL,
website="https://www.iso.org/",
ai_committee="ISO/IEC JTC 1/SC 42",
region="Global"
),
"IEC": StandardizationBody(
code="IEC",
name="IEC",
full_name="International Electrotechnical Commission",
body_type=StandardizationBodyType.INTERNATIONAL,
scope=StandardScope.ELECTROTECHNICAL,
website="https://www.iec.ch/",
ai_committee="ISO/IEC JTC 1/SC 42",
region="Global"
),
"KATS": StandardizationBody(
code="KATS",
name="KATS",
full_name="Korean Agency for Technology and Standards",
body_type=StandardizationBodyType.NATIONAL,
scope=StandardScope.GENERAL,
website="https://www.kats.go.kr/",
ai_committee="TC/SC mirror committees",
region="Korea"
),
"TTA": StandardizationBody(
code="TTA",
name="TTA",
full_name="Telecommunications Technology Association of Korea",
body_type=StandardizationBodyType.NATIONAL,
scope=StandardScope.TELECOMMUNICATIONS,
website="https://www.tta.or.kr/",
ai_committee="AI Project Group",
region="Korea"
)
}
# 주요 AI 표준
AI_STANDARDS = {
"ISO/IEC 22989": AIStandard(
reference="ISO/IEC 22989:2022",
title="Information technology - AI - Concepts and terminology",
body=BODIES["ISO"],
status=StandardStatus.PUBLISHED,
publication_date=date(2022, 7, 1),
ai_act_requirements=["Transparency (Art.13)"],
description="AI 용어 및 개념 정의의 기초 표준"
),
"ISO/IEC 23053": AIStandard(
reference="ISO/IEC 23053:2022",
title="Framework for ML using AI",
body=BODIES["ISO"],
status=StandardStatus.PUBLISHED,
publication_date=date(2022, 6, 1),
ai_act_requirements=["Technical documentation (Art.11)"],
description="ML 시스템 프레임워크"
),
"ISO/IEC 23894": AIStandard(
reference="ISO/IEC 23894:2023",
title="Information technology - AI - Risk management",
body=BODIES["ISO"],
status=StandardStatus.PUBLISHED,
publication_date=date(2023, 2, 1),
ai_act_requirements=["Risk management (Art.9)"],
description="AI 위험 관리 프레임워크",
european_adoption="EN ISO/IEC 23894"
),
"ISO/IEC 42001": AIStandard(
reference="ISO/IEC 42001:2023",
title="Information technology - AI - Management system",
body=BODIES["ISO"],
status=StandardStatus.PUBLISHED,
publication_date=date(2023, 12, 1),
ai_act_requirements=[
"Risk management (Art.9)",
"Data governance (Art.10)",
"Record-keeping (Art.12)"
],
description="AI 관리 시스템 인증 표준 (AIMS)",
european_adoption="EN ISO/IEC 42001"
),
"ISO/IEC 25059": AIStandard(
reference="ISO/IEC 25059:2023",
title="Systems and software Quality Requirements - AI quality model",
body=BODIES["ISO"],
status=StandardStatus.PUBLISHED,
publication_date=date(2023, 10, 1),
ai_act_requirements=["Accuracy, robustness (Art.15)"],
description="AI 시스템 품질 모델"
)
}
def __init__(self):
self.bodies = self.BODIES.copy()
self.standards = self.AI_STANDARDS.copy()
def get_body_info(self, code: str) -> dict:
"""표준화 기구 정보 조회"""
body = self.bodies.get(code)
if not body:
return {"error": f"Unknown body: {code}"}
return {
"code": body.code,
"name": body.full_name,
"type": body.body_type.value,
"scope": body.scope.value,
"region": body.region,
"ai_committee": body.ai_committee,
"website": body.website
}
def find_standards_by_requirement(self, ai_act_article: str) -> list[dict]:
"""AI Act 요건별 관련 표준 검색"""
results = []
for ref, std in self.standards.items():
for req in std.ai_act_requirements:
if ai_act_article.lower() in req.lower():
results.append({
"reference": std.reference,
"title": std.title,
"body": std.body.code,
"status": std.status.value,
"eu_adoption": std.european_adoption,
"requirement_coverage": req
})
return results
def get_european_equivalents(self, iso_standard: str) -> dict:
"""ISO 표준의 유럽 채택 표준 확인"""
std = self.standards.get(iso_standard.split(":")[0])
if not std:
return {"error": "Standard not found"}
if std.european_adoption:
return {
"iso_reference": std.reference,
"european_adoption": std.european_adoption,
"presumption_of_conformity": True,
"note": "Vienna/Frankfurt Agreement에 따른 채택"
}
return {
"iso_reference": std.reference,
"european_adoption": None,
"presumption_of_conformity": False,
"note": "유럽 표준으로 채택되지 않음 - SCC 적합성 추정 효력 없음"
}
def get_standards_roadmap(self) -> list[dict]:
"""AI 표준 개발 로드맵"""
roadmap = []
for ref, std in self.standards.items():
roadmap.append({
"reference": std.reference,
"title": std.title,
"status": std.status.value,
"publication_date": std.publication_date.isoformat() if std.publication_date else None,
"ai_act_coverage": std.ai_act_requirements,
"body": std.body.code
})
return sorted(roadmap, key=lambda x: x.get("publication_date") or "9999")
def check_compliance_pathway(self, ai_system_category: str) -> dict:
"""AI 시스템 카테고리별 표준 준수 경로"""
# 고위험 AI Act 요건
high_risk_requirements = [
"Risk management (Art.9)",
"Data governance (Art.10)",
"Technical documentation (Art.11)",
"Record-keeping (Art.12)",
"Transparency (Art.13)",
"Human oversight (Art.14)",
"Accuracy, robustness (Art.15)"
]
coverage = {}
for req in high_risk_requirements:
matching_standards = self.find_standards_by_requirement(req.split("(")[0])
coverage[req] = {
"standards": [s["reference"] for s in matching_standards],
"has_harmonised": any(s.get("eu_adoption") for s in matching_standards)
}
covered = sum(1 for c in coverage.values() if c["standards"])
total = len(high_risk_requirements)
return {
"ai_system_category": ai_system_category,
"total_requirements": total,
"standards_coverage": covered,
"coverage_percentage": f"{covered/total*100:.1f}%",
"requirement_details": coverage,
"recommendation": "ISO/IEC 42001 인증이 여러 요건을 커버하는 핵심 출발점"
}
# 사용 예시
if __name__ == "__main__":
registry = StandardizationRegistry()
# 표준화 기구 정보
print("=== CEN 정보 ===")
print(registry.get_body_info("CEN"))
# 위험 관리 관련 표준
print("\n=== 위험 관리 관련 표준 ===")
for std in registry.find_standards_by_requirement("Risk"):
print(f" {std['reference']}: {std['title']}")
# 유럽 채택 확인
print("\n=== ISO/IEC 42001 유럽 채택 ===")
print(registry.get_european_equivalents("ISO/IEC 42001"))
# 준수 경로 분석
print("\n=== 고위험 AI 준수 경로 ===")
pathway = registry.check_compliance_pathway("High-Risk AI System")
print(f"표준 커버리지: {pathway['coverage_percentage']}")