프로덕션 환경을 위한 확장 가능한 인증 시스템 구축
대규모 조직에서 AI 콘텐츠 인증 시스템을 배포하려면 확장성, 가용성, 보안을 고려한 아키텍처가 필요합니다.
각 기능을 독립적인 서비스로 분리하여 확장성과 유지보수성을 향상시킵니다.
// 마이크로서비스 구조
/*
┌─────────────────────────────────────────┐
│ API Gateway (Kong/NGINX) │
└─────────────────────────────────────────┘
│
┌───────────┼───────────┐
│ │ │
┌───▼───┐ ┌───▼───┐ ┌───▼────┐
│ Auth │ │ Asset │ │ Process│
│Service│ │Service│ │Service │
└───────┘ └───────┘ └────────┘
│ │ │
┌───▼───────────▼───────────▼───┐
│ Message Queue (RabbitMQ) │
└───────────────────────────────┘
│
┌───────────┼───────────┐
│ │ │
┌───▼────┐ ┌───▼────┐ ┌───▼────┐
│Finger │ │Water │ │Deepfake│
│print │ │mark │ │Detector│
│Service │ │Service │ │Service │
└────────┘ └────────┘ └────────┘
*/
// Docker Compose 구성
version: '3.8'
services:
# API Gateway
gateway:
image: kong:latest
ports:
- "8000:8000"
- "8443:8443"
- "8001:8001"
environment:
KONG_DATABASE: postgres
KONG_PG_HOST: postgres
KONG_PG_DATABASE: kong
depends_on:
- postgres
# 자산 관리 서비스
asset-service:
build: ./services/asset
environment:
- DATABASE_URL=postgresql://user:pass@postgres/assets
- REDIS_URL=redis://redis:6379
- S3_BUCKET=content-auth-assets
depends_on:
- postgres
- redis
# 지문 생성 서비스
fingerprint-service:
build: ./services/fingerprint
deploy:
replicas: 3 // 자동 스케일링
environment:
- QUEUE_URL=amqp://rabbitmq
depends_on:
- rabbitmq
# 워터마크 서비스
watermark-service:
build: ./services/watermark
deploy:
replicas: 2
environment:
- QUEUE_URL=amqp://rabbitmq
depends_on:
- rabbitmq
# 딥페이크 탐지 서비스
deepfake-service:
build: ./services/deepfake
deploy:
replicas: 2
environment:
- MODEL_PATH=/models
- QUEUE_URL=amqp://rabbitmq
volumes:
- ./models:/models
depends_on:
- rabbitmq
# PostgreSQL
postgres:
image: postgres:15
environment:
POSTGRES_DB: content_auth
POSTGRES_USER: admin
POSTGRES_PASSWORD: secure_password
volumes:
- postgres_data:/var/lib/postgresql/data
# Redis (캐싱)
redis:
image: redis:7-alpine
ports:
- "6379:6379"
# RabbitMQ (메시지 큐)
rabbitmq:
image: rabbitmq:3-management
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: admin
# Prometheus (모니터링)
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
# Grafana (대시보드)
grafana:
image: grafana/grafana
ports:
- "3000:3000"
environment:
GF_SECURITY_ADMIN_PASSWORD: admin
volumes:
postgres_data:
Kubernetes를 사용하여 자동 스케일링, 로드 밸런싱, 자가 치유 기능을 구현합니다.
# Kubernetes 배포 매니페스트
# fingerprint-service-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: fingerprint-service
labels:
app: fingerprint
spec:
replicas: 3
selector:
matchLabels:
app: fingerprint
template:
metadata:
labels:
app: fingerprint
spec:
containers:
- name: fingerprint
image: wia/fingerprint-service:1.0
ports:
- containerPort: 3000
env:
- name: NODE_ENV
value: "production"
- name: REDIS_URL
valueFrom:
secretKeyRef:
name: redis-secret
key: url
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
---
# Service
apiVersion: v1
kind: Service
metadata:
name: fingerprint-service
spec:
selector:
app: fingerprint
ports:
- protocol: TCP
port: 80
targetPort: 3000
type: ClusterIP
---
# Horizontal Pod Autoscaler
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: fingerprint-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: fingerprint-service
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80
대규모 트래픽을 처리하기 위한 성능 최적화 전략입니다.
| 영역 | 기법 | 기대 효과 |
|---|---|---|
| 캐싱 | Redis, CDN | 응답 시간 90% 감소 |
| 데이터베이스 | 읽기 복제본, 샤딩 | 처리량 5배 증가 |
| 비동기 처리 | 메시지 큐 | 응답성 향상 |
| 압축 | Gzip, Brotli | 대역폭 70% 절약 |
| 병렬 처리 | Worker 풀 | 처리 시간 50% 단축 |
// Redis 캐싱 전략
import { createClient } from 'redis';
class ContentAuthCache {
private redis: any;
async connect(): Promise {
this.redis = createClient({
url: process.env.REDIS_URL
});
await this.redis.connect();
console.log('✅ Redis 연결 완료');
}
// 지문 캐싱
async cacheFingerprint(
assetId: string,
fingerprint: any,
ttl: number = 3600 // 1시간
): Promise {
const key = `fingerprint:${assetId}`;
await this.redis.setEx(
key,
ttl,
JSON.stringify(fingerprint)
);
}
// 캐시 조회
async getFingerprint(assetId: string): Promise {
const key = `fingerprint:${assetId}`;
const cached = await this.redis.get(key);
if (cached) {
console.log('✅ 캐시 히트');
return JSON.parse(cached);
}
console.log('⚠️ 캐시 미스');
return null;
}
// 캐시 무효화
async invalidate(pattern: string): Promise {
const keys = await this.redis.keys(pattern);
if (keys.length > 0) {
await this.redis.del(keys);
}
}
}
// 사용 예제
const cache = new ContentAuthCache();
await cache.connect();
// 조회 시 캐시 먼저 확인
let fingerprint = await cache.getFingerprint('asset-123');
if (!fingerprint) {
// 캐시 미스 - 계산 수행
fingerprint = await computeFingerprint('asset-123');
await cache.cacheFingerprint('asset-123', fingerprint);
}
엔터프라이즈급 보안을 구현합니다.
// OAuth 2.0 + JWT 인증
import { sign, verify } from 'jsonwebtoken';
import { hash, compare } from 'bcrypt';
class AuthenticationService {
private jwtSecret: string;
constructor(jwtSecret: string) {
this.jwtSecret = jwtSecret;
}
// 사용자 인증
async authenticate(
username: string,
password: string
): Promise {
// 데이터베이스에서 사용자 조회
const user = await this.getUserByUsername(username);
if (!user) {
return null;
}
// 비밀번호 검증
const valid = await compare(password, user.passwordHash);
if (!valid) {
return null;
}
// JWT 토큰 생성
const token = sign(
{
userId: user.id,
username: user.username,
roles: user.roles
},
this.jwtSecret,
{
expiresIn: '1h',
issuer: 'WIA-AI-017'
}
);
return token;
}
// 토큰 검증
async verifyToken(token: string): Promise {
try {
const decoded = verify(token, this.jwtSecret);
return decoded;
} catch (error) {
return null;
}
}
// 역할 기반 접근 제어 (RBAC)
hasPermission(
userRoles: string[],
requiredPermission: string
): boolean {
const permissions: Record = {
'admin': ['read', 'write', 'delete', 'admin'],
'editor': ['read', 'write'],
'viewer': ['read']
};
for (const role of userRoles) {
if (permissions[role]?.includes(requiredPermission)) {
return true;
}
}
return false;
}
private async getUserByUsername(username: string): Promise {
// 데이터베이스 조회 (구현 생략)
return {
id: '123',
username,
passwordHash: 'hashed_password',
roles: ['editor']
};
}
}
// Express 미들웨어
import { Request, Response, NextFunction } from 'express';
function authMiddleware(requiredPermission: string) {
return async (req: Request, res: Response, next: NextFunction) => {
// Authorization 헤더에서 토큰 추출
const authHeader = req.headers.authorization;
if (!authHeader?.startsWith('Bearer ')) {
return res.status(401).json({ error: '인증 필요' });
}
const token = authHeader.substring(7);
const auth = new AuthenticationService(process.env.JWT_SECRET!);
// 토큰 검증
const decoded = await auth.verifyToken(token);
if (!decoded) {
return res.status(401).json({ error: '유효하지 않은 토큰' });
}
// 권한 확인
if (!auth.hasPermission(decoded.roles, requiredPermission)) {
return res.status(403).json({ error: '권한 없음' });
}
// 요청 객체에 사용자 정보 추가
(req as any).user = decoded;
next();
};
}
// 사용 예제
import express from 'express';
const app = express();
app.post('/api/assets',
authMiddleware('write'),
async (req, res) => {
// 자산 생성 로직
res.json({ success: true });
}
);
시스템 상태를 실시간으로 모니터링하고 문제를 조기에 발견합니다.
// Prometheus 메트릭 수집
import { Counter, Histogram, Registry } from 'prom-client';
class MetricsCollector {
private registry: Registry;
private httpRequestCounter: Counter;
private httpRequestDuration: Histogram;
private fingerprintCounter: Counter;
constructor() {
this.registry = new Registry();
// HTTP 요청 카운터
this.httpRequestCounter = new Counter({
name: 'http_requests_total',
help: '총 HTTP 요청 수',
labelNames: ['method', 'route', 'status'],
registers: [this.registry]
});
// HTTP 요청 지속 시간
this.httpRequestDuration = new Histogram({
name: 'http_request_duration_seconds',
help: 'HTTP 요청 지속 시간',
labelNames: ['method', 'route'],
buckets: [0.01, 0.05, 0.1, 0.5, 1, 2, 5],
registers: [this.registry]
});
// 지문 생성 카운터
this.fingerprintCounter = new Counter({
name: 'fingerprints_generated_total',
help: '생성된 지문 수',
labelNames: ['algorithm', 'status'],
registers: [this.registry]
});
}
// HTTP 요청 기록
recordRequest(
method: string,
route: string,
status: number,
duration: number
): void {
this.httpRequestCounter.inc({
method,
route,
status: status.toString()
});
this.httpRequestDuration.observe(
{ method, route },
duration
);
}
// 지문 생성 기록
recordFingerprint(
algorithm: string,
success: boolean
): void {
this.fingerprintCounter.inc({
algorithm,
status: success ? 'success' : 'failure'
});
}
// 메트릭 노출
async getMetrics(): Promise {
return await this.registry.metrics();
}
}
// 구조화된 로깅 (Winston)
import winston from 'winston';
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.errors({ stack: true }),
winston.format.json()
),
defaultMeta: { service: 'content-auth' },
transports: [
// 파일에 에러 로그
new winston.transports.File({
filename: 'logs/error.log',
level: 'error'
}),
// 파일에 모든 로그
new winston.transports.File({
filename: 'logs/combined.log'
})
]
});
// 개발 환경에서는 콘솔에도 출력
if (process.env.NODE_ENV !== 'production') {
logger.add(new winston.transports.Console({
format: winston.format.simple()
}));
}
// 사용 예제
logger.info('지문 생성 시작', {
assetId: 'asset-123',
algorithm: 'pHash'
});
logger.error('지문 생성 실패', {
assetId: 'asset-123',
error: error.message,
stack: error.stack
});
지속적 통합 및 배포로 빠르고 안전한 릴리스를 보장합니다.
# GitHub Actions 워크플로우
# .github/workflows/deploy.yml
name: CI/CD Pipeline
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Node.js 설정
uses: actions/setup-node@v3
with:
node-version: '18'
cache: 'npm'
- name: 의존성 설치
run: npm ci
- name: 린트 실행
run: npm run lint
- name: 단위 테스트
run: npm run test:unit
- name: 통합 테스트
run: npm run test:integration
- name: 코드 커버리지
run: npm run test:coverage
- name: 커버리지 업로드
uses: codecov/codecov-action@v3
build:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Docker 로그인
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Docker 이미지 빌드 및 푸시
run: |
docker build -t wia/content-auth:${{ github.sha }} .
docker tag wia/content-auth:${{ github.sha }} wia/content-auth:latest
docker push wia/content-auth:${{ github.sha }}
docker push wia/content-auth:latest
deploy:
needs: build
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- name: Kubernetes 구성
uses: azure/k8s-set-context@v3
with:
kubeconfig: ${{ secrets.KUBE_CONFIG }}
- name: Kubernetes 배포
run: |
kubectl set image deployment/content-auth \
content-auth=wia/content-auth:${{ github.sha }}
kubectl rollout status deployment/content-auth
- name: 헬스 체크
run: |
kubectl wait --for=condition=available --timeout=300s \
deployment/content-auth
데이터 손실을 방지하고 서비스 연속성을 보장합니다.
// 자동 백업 시스템
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';
import { createGzip } from 'zlib';
import { createReadStream, createWriteStream } from 'fs';
import { pipeline } from 'stream/promises';
class BackupService {
private s3: S3Client;
constructor() {
this.s3 = new S3Client({
region: process.env.AWS_REGION
});
}
// 데이터베이스 백업
async backupDatabase(): Promise {
const timestamp = new Date().toISOString();
const filename = `backup-${timestamp}.sql.gz`;
// PostgreSQL 덤프
const { spawn } = await import('child_process');
const pg_dump = spawn('pg_dump', [
'-h', process.env.DB_HOST!,
'-U', process.env.DB_USER!,
'-d', process.env.DB_NAME!,
'-F', 'c' // 커스텀 형식
]);
// Gzip 압축
const gzip = createGzip();
const output = createWriteStream(`/tmp/${filename}`);
await pipeline(
pg_dump.stdout,
gzip,
output
);
// S3에 업로드
const fileStream = createReadStream(`/tmp/${filename}`);
await this.s3.send(new PutObjectCommand({
Bucket: 'content-auth-backups',
Key: `database/${filename}`,
Body: fileStream
}));
console.log(`✅ 백업 완료: ${filename}`);
}
// 자동 백업 스케줄
scheduleBackups(): void {
// 매일 오전 2시에 백업
const cron = require('node-cron');
cron.schedule('0 2 * * *', async () => {
console.log('⏰ 자동 백업 시작');
try {
await this.backupDatabase();
} catch (error) {
console.error('❌ 백업 실패:', error);
// 알림 전송 (이메일, Slack 등)
}
});
}
}
// 포인트-인-타임 복구 (PITR)
class PointInTimeRecovery {
async restore(
targetTimestamp: string
): Promise {
// 1. 가장 가까운 전체 백업 찾기
// 2. WAL (Write-Ahead Log) 파일 적용
// 3. 목표 시점까지 리플레이
console.log(`🔄 ${targetTimestamp}로 복구 중...`);
}
}
법적 요구사항을 충족하고 감사 추적을 유지합니다.
| 규정 | 요구사항 | 구현 |
|---|---|---|
| GDPR | 개인정보 보호 | 데이터 암호화, 동의 관리 |
| SOC 2 | 보안 제어 | 접근 로그, 정기 감사 |
| ISO 27001 | 정보 보안 | 위험 평가, 정책 문서화 |
| HIPAA | 의료 데이터 보호 | 암호화, 감사 추적 |
// 감사 로깅 시스템
class AuditLogger {
async logAction(
action: {
userId: string;
action: string;
resourceType: string;
resourceId: string;
changes?: any;
ipAddress: string;
userAgent: string;
}
): Promise {
// 데이터베이스에 감사 로그 저장
const auditEntry = {
...action,
timestamp: new Date().toISOString(),
success: true
};
await this.saveToDatabase(auditEntry);
// 중요 작업은 별도 알림
if (this.isCriticalAction(action.action)) {
await this.notifyAdmins(auditEntry);
}
}
private isCriticalAction(action: string): boolean {
const criticalActions = [
'delete_asset',
'modify_permissions',
'export_data'
];
return criticalActions.includes(action);
}
private async saveToDatabase(entry: any): Promise {
// PostgreSQL에 저장
// (구현 생략)
}
private async notifyAdmins(entry: any): Promise {
// Slack, 이메일 등으로 알림
// (구현 생략)
}
}
弘益人間 (홍익인간) · 널리 인간을 이롭게 하라
한국 AI 인프라 — 과기정통부(MSIT)·정보통신산업진흥원(NIPA)·정보통신기획평가원(IITP)·KISA(한국인터넷진흥원)·KCMVP(국가용 암호모듈 검증)·NIS(국가정보원)·NIA(한국지능정보사회진흥원)·TTA(한국정보통신기술협회)·KATS(국가기술표준원)·KOLAS(한국인정기구)·ETRI(한국전자통신연구원)·KAIST·KIST·POSTECH·서울대·연세대·고려대·KISTI·삼성리서치·LG AI연구원·SK텔레콤·KT·NAVER·카카오 협력 「국가 AI 종합전략 2024-2030」 운영. 「인공지능 기본법」(법률 제20212호, 2026년 7월 시행)·「개인정보 보호법」(법률 제19234호, 2024년 9월 시행)·「정보통신망법」 적용. KS X ISO/IEC 22989 (AI 개념·용어)·KS X ISO/IEC 23053 (AI 시스템 프레임워크)·KS X ISO/IEC 5338 (AI 시스템 수명주기)·KS X ISO/IEC 24029 (AI 신뢰성)·KS X ISO/IEC 24028 (AI 신뢰성)·KS X ISO/IEC 38507 (AI 거버넌스) 한국 프로파일 적용. 삼성·LG·SK·NAVER·카카오 등 한국 빅테크 5사 AI 파운데이션 모델 (HyperCLOVA X·EXAONE·SOLAR·Gauss·KOSMOS) 운영 중.
한국의 디지털 전환과 표준화는 다음 협력 체계로 운영된다. 디지털 정부: 디지털플랫폼정부위원회(2022년 9월 신설, 대통령 직속)·행정안전부 디지털정부국·전자정부지원센터·정부24·국민비서·KDIS(한국정보화진흥원)·NIA(한국지능정보사회진흥원)·MOIS(행정안전부). K-DNS 인프라: 한국인터넷진흥원(KISA) Korea Internet Center·KISA DNS Root Server·KRNIC(한국인터넷정보센터)·BGP Korea·국가사이버안보센터(NCSC)·KCC(방송통신위원회)·과기정통부(MSIT)·NIA·NIPA. 한국 클라우드 인프라: KT 클라우드·NAVER 클라우드 (NCloud)·삼성 SDS 클라우드·LG U+ 클라우드·NHN 클라우드·카카오엔터프라이즈 클라우드·SK텔레콤 클라우드·KISA 「클라우드 보안 인증제(CSAP)」·KCMVP 검증 클라우드·ISMS-P (정보보호 및 개인정보보호 관리체계). 한국 보안 인증: KISA ISMS-P 인증·KCMVP (국가용 암호모듈 검증제도)·국가정보원 NIS 「국가용 암호기술 운영기준」·NCSC 「국가사이버안보전략 2024-2028」·CC (Common Criteria) 한국 평가기관·EAL4·EAL5·KS X ISO/IEC 15408·19790·24759 한국 프로파일. 한국 데이터 표준: 한국지능정보사회진흥원(NIA) AI Hub·국가 데이터 표준화 위원회·통계청(KOSTAT)·MyData 4개 결합전문기관 (삼성SDS·한국신용정보원·통계청·금융결제원)·국립국어원 한국어 정보처리 표준·국가법령정보센터·국가공간정보플랫폼·국가공간데이터센터·한국공간정보표준. 금융·핀테크 표준: 금융위원회(FSC)·금융감독원(FSS)·금융정보분석원(FIU)·한국은행(BOK)·금융보안원(FSEC)·금융결제원(KFTC)·한국예탁결제원(KSD)·한국거래소(KRX) 8개 기관 협력. 5G/6G 통신 인프라: 5G 가입자 3,500만 명 (2024)·5G 기지국 350,000개·6G 상용화 목표 2028년·5G 특화망 16개 사업자·6G 가속화 추진단(MSIT, 2024) 운영. K-콘텐츠: 한국콘텐츠진흥원(KOCCA)·문화체육관광부(MCST)·한국방송통신전파진흥원(KCA)·한국문화정보원·한국영상자료원·한국출판문화산업진흥원. 「데이터3법」 (개인정보 보호법·신용정보법·정보통신망법, 2020년 시행)·「데이터 산업법」(2021)·「공공데이터법」(2013)·「인공지능 기본법」(2026)·「디지털플랫폼정부 기본법」(2024 발의) 등 한국 디지털 전환 핵심 법령이 운영 중이다.
한국의 산업 생태계와 표준화 체계는 다음 핵심 인프라로 구성된다. 한국 5대 그룹: 삼성·현대자동차·LG·SK·롯데. 각 그룹별 표준화 위원회와 ISO/IEC TC 한국 간사 활동. 삼성전자(반도체·디스플레이·가전·통신)·현대차(자동차·모빌리티)·LG전자(가전·디스플레이·OLED)·SK하이닉스(메모리)·LG에너지솔루션·삼성SDI(이차전지)·POSCO퓨처엠(소재)·현대모비스(부품). 한국 IT 빅테크: NAVER (검색·클라우드·AI 하이퍼클로바)·카카오(메신저·결제·모빌리티·뱅킹)·쿠팡(이커머스·물류)·당근마켓·토스·우아한형제들. 한국 통신3사: SK텔레콤·KT·LG U+. 5G·5G 특화망·B2B 클라우드·AI 사업 운영. 한국 7대 거점 대학: 서울대·KAIST·POSTECH·연세대·고려대·UNIST·DGIST·GIST. 모두 표준화 R&D 거점이며 ISO/IEC/IEEE 한국 의장 활동 중. 한국 정부 산하 출연연구기관(국립연구원·정출연 26개): KIST·KAERI·KIMM·KIER·KFRI·KRICT·KRIBB·KARI·KASI·KIGAM·KICT·KISTI·KETI·ETRI·NIMS·KIMS·KISDI·KOTRA·STEPI·KOEN·KICCE·KIET·KIPF·KIHASA·KICJ·KLRI. 한국 산업단지·테크밸리: 판교 테크노밸리·동탄·광교·송도 IBD·여의도·강남·시화·반월·구미·울산·창원·거제·여수·울산미포·온산·청주·익산·광양·여수·포스코 광양제철소·아산만·서산·송도·인천공항·세종·청라·검단. 한국 무역·금융 인프라: 한국무역협회(KITA)·대한무역투자진흥공사(KOTRA)·한국수출입은행(KEXIM)·한국은행·국민은행·신한·하나·우리·NH농협·기업은행·SC제일·시티·HSBC 한국·DBS 한국 등 14대 한국 은행과 외국계 은행. 한국 K-POP·K-콘텐츠: HYBE·SM·YG·JYP 4대 엔터테인먼트 회사·CJ ENM·tvN·MBC·KBS·SBS·EBS·YTN·연합뉴스TV·JTBC 한국 방송사·NETFLIX 코리아·디즈니플러스·티빙·웨이브·왓챠·쿠팡플레이. 한국 게임 산업: 넥슨·엔씨소프트·크래프톤·넷마블·카카오게임즈·펄어비스·컴투스·게임빌·NHN·스마일게이트·웹젠. 한국 자동차·이차전지: 현대자동차·기아·제네시스·LG에너지솔루션·삼성SDI·SK On·POSCO퓨처엠·에코프로·엘앤에프 이차전지 양극재 공급사. 한국 반도체: 삼성전자(HBM3E·HBM4)·SK하이닉스(HBM3E 12-Hi)·DB하이텍·SK실트론·SK엔펄스·동진세미켐·서울반도체·심텍·삼성디스플레이·LG디스플레이.
한국의 산업·기술 표준화는 다음 협력 체계를 통해 운영된다. 국가표준 거버넌스: 국가표준심의회(국무총리실 소속, 「국가표준기본법」 제5조)·국가기술표준원(KATS)·식품의약품안전처(MFDS)·산업통상자원부(MOTIE)·과학기술정보통신부(MSIT)·행정안전부(MOIS)·환경부(MOE)·보건복지부(MOHW)·국방부(MND)·문화체육관광부(MCST)·외교부(MOFA)·법무부(MOJ)·금융위원회(FSC). 한국 인정기구·시험기관: 한국인정기구(KOLAS, Korea Laboratory Accreditation Scheme)·한국제품인정기관(KAS)·한국시험인증연구원(KTC)·한국화학융합시험연구원(KTR)·한국산업기술시험원(KTL)·한국건설생활환경시험연구원(KCL)·KOLAS 인정 시험기관 800+개·KAS 인정 인증기관 50+개. 전기·전자·통신 인증: 방송통신위원회(KCC)·한국방송통신전파진흥원(KCA)·정보통신기술협회(TTA)·정보통신기획평가원(IITP)·정보통신산업진흥원(NIPA)·한국인터넷진흥원(KISA, Korea Internet & Security Agency)·KCMVP (국가용 암호모듈 검증제도)·NIS(국가정보원)·NSR(국가보안기술연구소)·NCSC(국가사이버안보센터). 국가 R&D 거점: 한국과학기술연구원(KIST)·한국전자통신연구원(ETRI)·한국과학기술원(KAIST)·서울대학교·연세대학교·고려대학교·POSTECH·UNIST·GIST·DGIST·한국과학기술정보연구원(KISTI)·한국에너지기술연구원(KIER)·한국기계연구원(KIMM)·한국화학연구원(KRICT)·한국식품연구원(KFRI)·한국생명공학연구원(KRIBB). 국제 표준 협력: ISO TC/SC 한국 간사·IEC TC/SC 한국 간사·ITU-T SG 한국 의장·3GPP RAN/SA 한국 의장·IEEE 802 한국 의장·W3C 한국지부·OASIS 한국지부·IETF 한국 협력단·OECD CSTP·UN ESCAP·APEC SCSC 한국 협력. 한국 표준 카탈로그: KS X (정보) 25,000+종·KS A (기본) 15,000+종·KS B (기계) 25,000+종·KS C (전기) 18,000+종·KS D (금속) 12,000+종·KS E (광산) 5,000+종·KS F (건설) 18,000+종·KS H (식품) 8,000+종·KS I (환경) 5,000+종·KS J (생물) 3,000+종·KS K (섬유) 15,000+종·KS L (요업) 7,000+종·KS M (화학) 12,000+종·KS P (의료) 5,000+종·KS Q (품질) 4,000+종·KS R (수송기계) 12,000+종·KS S (서비스) 3,000+종·KS T (포장) 4,000+종·KS V (조선) 5,000+종·KS W (항공) 3,000+종 — 총 220,000+ 한국산업표준(KS). 「개인정보 보호법」(법률 제19234호, 2024년 9월 15일 시행)·「전자정부법」·「전자서명법」·「정보통신망법」·「정보통신기반 보호법」·「데이터 산업법」·「공공데이터법」·「인공지능 기본법」(법률 제20212호, 2026년 7월 시행)·「산업기술혁신 촉진법」·「과학기술기본법」 등 70+개 한국 표준화 관련 법령이 운영된다.