← λ©”μΈμœΌλ‘œ λŒμ•„κ°€κΈ°

πŸ“Š AI둜 λͺ¨λ‹ˆν„°λ§ μ•ŒλžŒ 70% 쀄이기

8μ‹œκ°„ λΆ„μ„μœΌλ‘œ 70% μ•ŒλžŒ κ°μ†Œ λ°©μ•ˆ λ„μΆœ - QuickSight ν•œκ³„ 극볡과 AWS 기술 μŠ€νƒ ν™œμš©

πŸ“š λͺ©μ°¨

πŸ“‹ ν”„λ‘œμ νŠΈ κ°œμš”

핡심 κ°€μΉ˜: 8μ‹œκ°„ λΆ„μ„μœΌλ‘œ 70% μ•ŒλžŒ κ°μ†Œ λ°©μ•ˆ λ„μΆœ - AI와 ν•¨κ»˜ν•œ 체계적 데이터 뢄석 κ³Όμ •

κΈ°λ³Έ 정보

🎯 AI ν™œμš© 포인트

1. 문제 μ •μ˜ 및 μ ‘κ·Ό μ „λž΅

AI μ—­ν• : λ³΅μž‘ν•œ μ‹œμŠ€ν…œ 문제λ₯Ό 8λ‹¨κ³„λ‘œ 체계화

2. 데이터 μ•„ν‚€ν…μ²˜ 섀계

AI κΈ°μ—¬: QuickSight FILE β†’ S3+Athena λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ „λž΅ 수립

3. νŒ¨ν„΄ 뢄석 및 μΈμ‚¬μ΄νŠΈ λ„μΆœ

AI 뢄석λ ₯: 1,200μ—¬ 건 λ°μ΄ν„°μ—μ„œ 핡심 νŒ¨ν„΄ 발견

🚧 데이터 μ€€λΉ„ κ³Όμ •: κ°€μž₯ μ‹œκ°„μ΄ 였래 κ±Έλ¦° μž‘μ—…

⏰ μ‹€μ œ μ‹œκ°„ λΆ„λ°°: 데이터 μ€€λΉ„ 6μ‹œκ°„ (75%) vs μ‹€μ œ 뢄석 2μ‹œκ°„ (25%)

QuickSight FILE νƒ€μž…μ˜ ν˜„μ‹€μ  ν•œκ³„

πŸ” 초기 상황 뢄석:
  • κΈ°μ‘΄ QuickSight λŒ€μ‹œλ³΄λ“œ: "[monthly] alarm/failure" 운영 쀑
  • 3개 데이터셋: [Monthly]Alarm, [Monthly]failure_mgmt, [Emart]Monthly_jira
  • 문제: FILE νƒ€μž… β†’ API μ ‘κ·Ό λΆˆκ°€, μžλ™ν™” λΆˆκ°€, ν™•μž₯μ„± μ œν•œ

AWS κΈ°μˆ μ„ ν™œμš©ν•œ 데이터 μΆ”μΆœ κ³Όμ •

# 1. QuickSight λŒ€μ‹œλ³΄λ“œ μ ‘κ·Ό (shared-service ν”„λ‘œν•„)
aws quicksight describe-dashboard --aws-account-id 463941703341 \
  --dashboard-id 851e80f0-5fd7-417c-88b7-03457fc4af67

# 2. 데이터셋 뢄석 및 원본 파일 μœ„μΉ˜ 좔적
- [Monthly]Alarm (d877a45a-45bc-40f1-bed5-7c004a49fab7)
- [Monthly]failure_mgmt (f42429f0-b031-446c-a518-b9302777f443)

# 3. μˆ˜λ™ CSV λ‹€μš΄λ‘œλ“œ (FILE νƒ€μž…μ˜ ν•œκ³„)
- Alarm_list_1758007950846.csv (262KB, 1,129건)
- Failure_list_1758007909241.csv (10KB, 75건)

데이터 ꡬ쑰 뢄석 및 ν‘œμ€€ν™”

πŸ“Š μ‹€μ œ 데이터 μŠ€ν‚€λ§ˆ 발견

🎯 ν‘œμ€€ν™” ν•„μš”μ‚¬ν•­:
  • λ‚ μ§œ ν˜•μ‹ 톡일 (2023-09-01 00:00:00)
  • 컬럼λͺ… 영문 λ³€ν™˜ (일자 β†’ date_column)
  • 데이터 νƒ€μž… μ΅œμ ν™” (λ¬Έμžμ—΄ β†’ μ μ ˆν•œ νƒ€μž…)

πŸ“Š 8단계 뢄석 κ³Όμ •

Step 0: 데이터 μ•„ν‚€ν…μ²˜ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ (κ°€μž₯ μ‹œκ°„ μ†Œμš”)

핡심 AWS 기술: S3, Athena, QuickSight, boto3, pandas, pyarrow
# 1. 데이터 λ³€ν™˜ νŒŒμ΄ν”„λΌμΈ ꡬ좕
- Python pandas: CSV β†’ DataFrame λ³€ν™˜
- PyArrow: Parquet ν˜•μ‹ μ΅œμ ν™” (70% μš©λŸ‰ μ ˆμ•½)
- νŒŒν‹°μ…˜ ꡬ쑰: year=2024/month=08/ 섀계

# 2. S3 데이터 레이크 ꡬ좕
- 버킷: sac-prd-finops-billing-s3
- ꡬ쑰: alarm_data/, failure_data/, jira_data/
- νŒŒν‹°μ…˜: year/month 기반 μ΅œμ ν™”

# 3. Athena ν…Œμ΄λΈ” 생성
- EXTERNAL TABLE μ •μ˜
- PARTITIONED BY (year, month)
- STORED AS PARQUET μ„±λŠ₯ μ΅œμ ν™”

Step 1-4: 데이터 μ ‘κ·Όμ„± 확보

Step 5-8: 핡심 뢄석 및 ν•΄κ²°λ°©μ•ˆ

πŸ› οΈ AIκ°€ μƒμ„±ν•œ AWS 핡심 μ‚°μΆœλ¬Ό

1. AWS 인프라 μžλ™ν™” 슀크립트 (8개)

import boto3
import pandas as pd
from datetime import datetime

# AWS μ„Έμ…˜ μ„€μ • (shared-service ν”„λ‘œν•„)
session = boto3.Session(profile_name='shared-service', region_name='ap-northeast-2')
s3_client = session.client('s3')

# 데이터 λ³€ν™˜: CSV β†’ Parquet (70% μš©λŸ‰ μ ˆμ•½)
df = pd.read_csv('Alarm_list_1758007950846.csv')
df.to_parquet('alarm_data_202508.parquet', index=False)

# S3 νŒŒν‹°μ…˜ μ—…λ‘œλ“œ
s3_key = f"alarm_data/year=2024/month=08/alarm_data_202408.parquet"
s3_client.upload_file(local_file, 'sac-prd-finops-billing-s3', s3_key)

μ£Όμš” 슀크립트

2. Athena ν…Œμ΄λΈ” 생성 SQL (μžλ™ 생성)

-- AIκ°€ μ‹€μ œ 데이터 ꡬ쑰 뢄석 ν›„ μƒμ„±ν•œ μŠ€ν‚€λ§ˆ
CREATE EXTERNAL TABLE alarm_data (
  date_column date,
  time_column int,
  account_group string,
  category string,
  monitoring_message string,
  cause string,
  valid_alarm string,
  count int
)
PARTITIONED BY (
  year int,
  month int
)
STORED AS PARQUET
LOCATION 's3://sac-prd-finops-billing-s3/alarm_data/'
TBLPROPERTIES ('has_encrypted_data'='false');

3. 뢄석 λ³΄κ³ μ„œ (8개)

πŸ” 핡심 μΈμ‚¬μ΄νŠΈ

1. 데이터 μ€€λΉ„κ°€ 80%의 μ‹œκ°„μ„ μ°¨μ§€

⏰ μ‹€μ œ μ‹œκ°„ λΆ„λ°°:
- 데이터 μ€€λΉ„ (Step 0): 6μ‹œκ°„ (75%)
  └── QuickSight FILE νƒ€μž… ν•œκ³„ νŒŒμ•…: 1μ‹œκ°„
  └── CSV μˆ˜λ™ λ‹€μš΄λ‘œλ“œ 및 ꡬ쑰 뢄석: 2μ‹œκ°„  
  └── AWS μ•„ν‚€ν…μ²˜ 섀계: 1μ‹œκ°„
  └── λ³€ν™˜ 슀크립트 개발 및 ν…ŒμŠ€νŠΈ: 2μ‹œκ°„

- μ‹€μ œ 뢄석 (Step 1-8): 2μ‹œκ°„ (25%)
  └── νŒ¨ν„΄ 뢄석 및 μΈμ‚¬μ΄νŠΈ λ„μΆœ
  └── ν•΄κ²°λ°©μ•ˆ 수립

2. 80/20 λ²•μΉ™μ˜ ν˜„μ‹€

3. μ‹œκ°„ νŒ¨ν„΄μ˜ μ€‘μš”μ„±

⏰ μ‹œκ°„λŒ€λ³„ μ•ŒλžŒ νŒ¨ν„΄:
- μ˜€μ „ 8-11μ‹œ: calyx-review 집쀑 (47건)
- μ˜€μ „ 10-11μ‹œ, μ˜€ν›„ 2μ‹œ: 배치 ν”„λ‘œμ„ΈμŠ€ 집쀑 (93건)
- μ˜€ν›„ 1-2μ‹œ: 8μ›” 8일 μž₯μ•  μ‹œμ  (31건)

πŸ’‘ κ΅ν›ˆ: 배치 μŠ€μΌ€μ€„μ΄ μ‹œμŠ€ν…œ μ•ˆμ •μ„± κ²°μ •

4. 연쇄 효과의 νŒŒκΈ‰λ ₯

πŸ”— 단일 μž₯μ• μ˜ 전체 영ν–₯:
  • 단일 μž₯μ• : 8μ›” 8일 ERP 배치 ν”„λ‘œμ„ΈμŠ€
  • 전체 영ν–₯: ALB β†’ 전체 μ‹œμŠ€ν…œ μ•ŒλžŒ 급증
  • κ·Όλ³Έ ν•΄κ²°: 배치 μ‹œκ°„ λ³€κ²½μœΌλ‘œ 70% κ°μ†Œ κ°€λŠ₯

πŸ“ˆ ꡬ체적 μ„±κ³Ό

πŸ“Š μ •λŸ‰μ  κ²°κ³Ό

🎯 정성적 효과

πŸ’‘ AI ν™œμš© 방법둠

COSTAR ν”„λ ˆμž„μ›Œν¬ 적용

πŸ’‘ 핡심 λ©”μ‹œμ§€

"8μ‹œκ°„ λΆ„μ„μœΌλ‘œ 70% μ•ŒλžŒ κ°μ†Œ 달성"

이 μ‚¬λ‘€λŠ” AI와 ν•¨κ»˜ν•œ 체계적 데이터 뢄석 과정을 λ³΄μ—¬μ€λ‹ˆλ‹€. λ³΅μž‘ν•΄ λ³΄μ΄λŠ” μ‹œμŠ€ν…œ λ¬Έμ œλ„ μ˜¬λ°”λ₯Έ 방법둠과 AI의 λ„μ›€μœΌλ‘œ λ‹¨μ‹œκ°„μ— ꡬ체적 ν•΄κ²°λ°©μ•ˆμ„ λ„μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

핡심은 단계적 μ ‘κ·Όμž…λ‹ˆλ‹€. ν•œ λ²ˆμ— λͺ¨λ“  것을 ν•΄κ²°ν•˜λ € ν•˜μ§€ 말고, 8λ‹¨κ³„λ‘œ λ‚˜λˆ„μ–΄ μ²΄κ³„μ μœΌλ‘œ μ ‘κ·Όν•˜λ©΄ 닡을 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

"Every problem is an opportunity in disguise"
- 2025.09.16, 이마트 μ•ŒλžŒ 뢄석 κ³Όμ •μ—μ„œ

πŸ“š μ°Έκ³  자료

ν”„λ‘œμ νŠΈ κ°œμš”
데이터 μ€€λΉ„
8단계 뢄석
AWS μ‚°μΆœλ¬Ό
핡심 μΈμ‚¬μ΄νŠΈ
ꡬ체적 μ„±κ³Ό