๐Ÿ“ [Wiki] KubeRCAโ†’ AI-Driven Kubernetes RCA and Automated Remediation

KubeRCA โ€” AI-Driven Kubernetes Root Cause Analysis

์•Œ๋žŒ์ด ์šธ๋ฆฌ๋ฉด, AI๊ฐ€ ์›์ธ์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

:bookmark_tabs: [KubeRCA] Official Wiki

KR: ์ด ํŽ˜์ด์ง€๋Š” KubeRCA์˜ ๋น„์ „, ๊ธฐ์ˆ ์  ๋ฐฉํ–ฅ์„ฑ, ๊ทธ๋ฆฌ๊ณ  ํ˜‘์—… ๋ฐฉ์‹์„ ์ •์˜ํ•˜๋Š” ํ†ตํ•ฉ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ํŒ€์›๊ณผ ์™ธ๋ถ€ ๊ธฐ์—ฌ์ž๋“ค์ด ์กฐํ™”๋กญ๊ฒŒ ํ˜‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ณต์‹ ๊ฐ€์ด๋“œ๋ผ์ธ์ž…๋‹ˆ๋‹ค.

EN: This page serves as the comprehensive documentation defining the vision, technical direction, and collaboration methods for ์ž ๋“œ๊ฐ€์ž. It is an official guideline to ensure seamless collaboration between the team and external contributors.

1. ํ”„๋กœ์ ํŠธ ๊ฐœ์š” (Project Overview)

  • Purpose: AI Agent๋ฅผ ํ™œ์šฉํ•˜์—ฌ Kubernetes ํ™˜๊ฒฝ์—์„œ ๋ฐœ์ƒํ•˜๋Š” Incident Alarm์„ ๋ถ„์„ํ•˜๊ณ , ์‹ค์ œ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด Application๊ณผ Node์˜ ์ƒํƒœ๋ฅผ ์ข…ํ•ฉ์ ์œผ๋กœ ํ•ด์„ํ•˜์—ฌ ํ‘œ์ค€ํ™”๋œ RCA ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์˜ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

  • Background / Introduction (KR):

    • ์™„์ „ ์ž๋™ํ™”๋œ ์žฅ์•  ๋Œ€์‘๋ณด๋‹ค๋Š” ์žฅ์•  ๋Œ€์‘ ๊ณผ์ • ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์–‘ํ•œ Alert๋ฅผ AI Agent์„ ํ†ตํ•ด ๋ถ„์„ํ•˜์—ฌ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์žฅ์• ์˜ ๊ทผ๋ณธ ์›์ธ์„ ๋” ๋น ๋ฅด๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ์‚ฌํ›„ ์žฌ๋ฐœ ๋ฐฉ์ง€ ๋Œ€์ฑ…์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ˆ˜๋ฆฝํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
    • ์žฅ์•  ๋ฐœ์ƒ ์‹œ Prometheus Alert, ๋กœ๊ทธ, ๋ฉ”ํŠธ๋ฆญ ๋“ฑ ๊ด€์ธก ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘ํ•˜๊ณ , LLM๊ณผ Vector Database๋ฅผ ํ™œ์šฉํ•ด ๊ณผ๊ฑฐ ์œ ์‚ฌ ์žฅ์•  ์‚ฌ๋ก€ Top 3๋ฅผ ๋น„๊ต ๋ถ„์„ํ•จ์œผ๋กœ์จ ํ˜„์žฌ ์ƒํ™ฉ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์‹ ์†ํ•˜๊ณ  ์ผ๊ด€๋œ ๋Œ€์‘ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ์ธ์˜ ๊ฒฝํ—˜์— ์˜์กดํ•˜๋˜ ์žฅ์•  ๋Œ€์‘ ๋ฐฉ์‹์„ ์ค„์ด๊ณ , ํŠนํžˆ ์ฃผ๋‹ˆ์–ด ์—”์ง€๋‹ˆ์–ด๋„ ์•ˆ์ •์ ์ธ ํŒ๋‹จ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ์šด์˜ ํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์ง€ํ–ฅํ•ฉ๋‹ˆ๋‹ค.
  • Background / Introduction (EN):

    • Rather than pursuing fully automated incident remediation, this project focuses on analyzing the diverse alerts generated during incident response through AI agent-based analysis, enabling engineers to identify root causes more quickly and clearly and to systematically establish post-incident prevention strategies.

    • When an incident occurs, the system automatically aggregates observability data, including Prometheus alerts, logs, and metrics. By leveraging LLMs and Vector Databases, it compares the Top 3 most similar historical incidents to provide a rapid, consistent, and context-aware response guide tailored to the current situation.

    • Through this approach, the project aims to reduce reliance on individual experience and to create an operational environment in which junior engineers can make stable and well-informed decisions.

  • Core Values:

    • Open Source, Human-in-the-Loop by Design, AI-Forward Architecture

2. ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์ œ (Problem Statement)

KR:

  • Kubernetes MSA ํ™˜๊ฒฝ์—์„œ ์žฅ์•  ๋ฐœ์ƒ ์‹œ, ์—”์ง€๋‹ˆ์–ด๋Š” kubectl, Grafana, Slack์„ ๋ฐ˜๋ณต ์ „ํ™˜ํ•˜๋ฉฐ ์ˆ˜๋™์œผ๋กœ ์ปจํ…์ŠคํŠธ๋ฅผ ์ˆ˜์ง‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณผ๊ฑฐ ์œ ์‚ฌ ์žฅ์•  ๊ธฐ๋ก์ด Slack ์Šค๋ ˆ๋“œ, Wiki, Notion ๋“ฑ์— ๋ถ„์‚ฐ๋˜์–ด ์žˆ์–ด ์ฒด๊ณ„์  ๊ฒ€์ƒ‰์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์žฅ์•  ๋Œ€์‘ ํ’ˆ์งˆ์ด ๋‹ด๋‹น์ž์˜ ๊ฐœ์ธ ๊ฒฝํ—˜์— ํฌ๊ฒŒ ์˜์กดํ•˜์—ฌ, ์ฃผ๋‹ˆ์–ด ์—”์ง€๋‹ˆ์–ด๋Š” ๋™์ผ ์žฅ์• ์—๋„ ๋ถ„์„ ์‹œ๊ฐ„์ด ์ˆ˜๋ฐฐ ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
  • MTTR(Mean Time To Resolve)์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๊ธธ์–ด์ง€๊ณ , ๋™์ผ ์œ ํ˜• ์žฅ์• ๊ฐ€ ๋ฐ˜๋ณต๋˜์–ด๋„ ๋งค๋ฒˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ์กฐ์‚ฌํ•˜๋Š” ์•…์ˆœํ™˜์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

EN:

  • When incidents occur in Kubernetes MSA environments, engineers must manually gather context by switching between kubectl, Grafana, and Slack repeatedly.
  • Historical incident records are scattered across Slack threads, Wikis, and Notion, making systematic search impossible.
  • Incident response quality heavily depends on individual experience, causing junior engineers to spend significantly more time on the same issues.
  • MTTR increases unnecessarily, and even recurring incident types require investigation from scratch each time.

3. ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€์ƒ ๊ธฐ์—…/์กฐ์ง (Target Organizations)

KR:

  • Kubernetes ๊ธฐ๋ฐ˜ MSA๋ฅผ ์šด์˜ํ•˜๋Š” ๋ชจ๋“  ๊ทœ๋ชจ์˜ ์กฐ์ง (์Šคํƒ€ํŠธ์—… ~ ๋Œ€๊ธฐ์—…)
  • ์žฅ์•  ๋ถ„์„์— ์–ด๋ ค์›€์„ ๊ฒช๋Š” ํŒ€: SRE/DevOps ํŒ€ ๊ทœ๋ชจ๊ฐ€ ์ž‘๊ฑฐ๋‚˜, ์ฃผ๋‹ˆ์–ด ์—”์ง€๋‹ˆ์–ด ๋น„์œจ์ด ๋†’์•„ ์žฅ์•  ๋Œ€์‘ ํ’ˆ์งˆ ํŽธ์ฐจ๊ฐ€ ํฐ ์กฐ์ง
  • ๊ณ ๊ฐ€์šฉ์„ฑ ํ•„์ˆ˜ ๋„๋ฉ”์ธ: ํ•€ํ…Œํฌ, ์ด์ปค๋จธ์Šค, SaaS, ํ—ฌ์Šค์ผ€์–ด ๋“ฑ ์„œ๋น„์Šค ์ค‘๋‹จ์ด ๋น„์ฆˆ๋‹ˆ์Šค์— ์ง์ ‘์  ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ํ™˜๊ฒฝ
  • MSP/SI ์‚ฌ์—…์ž: ๋‹ค์ˆ˜์˜ ๊ณ ๊ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋™์‹œ์— ์šด์˜ํ•˜๋ฉฐ ํšจ์œจ์ ์ธ ์žฅ์•  ๋Œ€์‘์ด ํ•„์š”ํ•œ ์กฐ์ง
  • Observability ์Šคํƒ(Prometheus, Alertmanager)์„ ์ด๋ฏธ ๊ตฌ์ถ•ํ•œ ์กฐ์ง: ๊ธฐ์กด ์ธํ”„๋ผ์— ์ถ”๊ฐ€ ๋ฐฐํฌ๋งŒ์œผ๋กœ ์ฆ‰์‹œ ํ™œ์šฉ ๊ฐ€๋Šฅ

EN:

  • Organizations of all sizes running Kubernetes-based MSA (startups to enterprises)
  • Teams struggling with incident analysis: Organizations with small SRE/DevOps teams or high junior engineer ratios
  • High-availability domains: Fintech, e-commerce, SaaS, healthcare โ€” where service disruption directly impacts business
  • MSP/SI providers: Organizations managing multiple customer clusters simultaneously
  • Organizations with existing observability stacks (Prometheus, Alertmanager): Can be deployed as an add-on with minimal setup

2. ํŒ€ ๊ตฌ์„ฑ (The Team)

Roles and responsibilities for the member team.

์ด๋ฆ„ (Name) ID ์—ญํ•  (Role) SNS ์ฃผ์š” ์ฑ…์ž„ (Responsibilities - KR/EN)
๊น€ํƒœ์ง€ @Taeji_Kim Team Leader Link ๋กœ๋“œ๋งต ๋ฐ ์ตœ์ข… ์˜์‚ฌ๊ฒฐ์ • / Roadmap & Final decision-making
๊น€ํšŒ์ • @user116 DevOps Link ์ธํ”„๋ผ ๋ฐ CI/CD ๊ด€๋ฆฌ / Infrastructure & CI/CD management
ํ™ฉ์šฐ๋นˆ @Binoo BE/FE Link ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„ / Core logic & API implementation
์ตœ๋ณดํ˜„ @brilly BE/FE Link ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„ / Core logic & API implementation

5. ๊ธฐ์ˆ  ์Šคํƒ (Tech Stack)

  • Backend: Go 1.24 + Gin
  • Agent: Python 3.10+ (FastAPI, Strands Agents)
  • Frontend: React 18 + TypeScript, Vite, Tailwind CSS
  • Database: PostgreSQL + pgvector
  • AI/LLM: Gemini, OpenAI, Anthropic (Multi-Provider)
  • Infra: Kubernetes, Terraform (AWS), Helm 3, GitHub Actions
  • Chaos Engineering: Chaos Mesh (+ Istio Fault Injection)
  • Observability: Prometheus + Alertmanager, Loki, Tempo, Grafana, Alloy
  • Communication: Discord, Slack

6. ๋กœ๋“œ๋งต (Roadmap)

  • Phase 1 (2025.11 ~ 2025.12): ํ”„๋กœ์ ํŠธ ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ๋ฐ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๊ตฌ์ถ• (Project Bootstrap & Cloud Infrastructure)
  • Phase 2 (2025.12 ~ 2026.01): ํ•ต์‹ฌ ์•Œ๋žŒ ๋ถ„์„ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌํ˜„ (Core Alert Analysis Pipeline)
  • Phase 3 (2026.01): Incident ๊ด€๋ฆฌ ์ฒด๊ณ„ ๊ตฌ์ถ• ๋ฐ Chaos Engineering ๋„์ž… (Incident Management & Chaos Engineering)
  • Phase 4 (2026.02): Multi-LLM ํ™•์žฅ ๋ฐ ๋ณด์•ˆ ๊ฐ•ํ™” (Multi-LLM & Security Hardening)
  • Phase 5 (2026.03 ~): ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™” ๋ฐ ๋Œ€์‹œ๋ณด๋“œ UX ๊ณ ๋„ํ™” (Real-time Sync & UX Enhancement)
  • Phase 6 (2026.04.04): ๊ธ€๋กœ๋ฒŒ ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ณต๊ฐœ (Global Community Launch)

7. ์ž‘๋™ ๋ฐฉ์‹ (How It Works)

KR:

KubeRCA๋Š” ์•Œ๋žŒ ์ˆ˜์‹ ๋ถ€ํ„ฐ ๋ถ„์„ ๊ฒฐ๊ณผ ์ „๋‹ฌ๊นŒ์ง€ End-to-End ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  1. Alert ์ˆ˜์‹ : Alertmanager โ†’ Backend(Go/Gin)๋กœ Webhook ์ „๋‹ฌ
  2. ์ปจํ…์ŠคํŠธ ์ž๋™ ์ˆ˜์ง‘: Backend๊ฐ€ Agent(Python/FastAPI)์— ๋ถ„์„ ์š”์ฒญ โ†’ Agent๊ฐ€ Kubernetes API, Prometheus์—์„œ Pod ์ƒํƒœ, ์ด๋ฒคํŠธ, ๋ฉ”ํŠธ๋ฆญ ์ž๋™ ์ˆ˜์ง‘
  3. AI ๋ถ„์„: Strands Agents ํ”„๋ ˆ์ž„์›Œํฌ๋กœ Gemini/OpenAI/Anthropic ๋“ฑ Multi-LLM ๊ธฐ๋ฐ˜ Root Cause Analysis ์ˆ˜ํ–‰
  4. ๊ฒฐ๊ณผ ์ „๋‹ฌ: ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ PostgreSQL์— ์ €์žฅ, Slack ์Šค๋ ˆ๋“œ ์•Œ๋ฆผ, ์›น ๋Œ€์‹œ๋ณด๋“œ(React) SSE ์‹ค์‹œ๊ฐ„ ๋ฐ˜์˜
  5. ์ง€์‹ ์ถ•์ : Incident ์ข…๋ฃŒ ์‹œ ์ข…ํ•ฉ ๋ถ„์„ + pgvector ์ž„๋ฒ ๋”ฉ โ†’ ์œ ์‚ฌ ์ธ์‹œ๋˜ํŠธ ๊ฒ€์ƒ‰์— ํ™œ์šฉ

EN:

KubeRCA provides an end-to-end automated pipeline from alert reception to analysis delivery:

  1. Alert Reception: Alertmanager โ†’ Backend (Go/Gin) via Webhook
  2. Automatic Context Collection: Backend requests analysis from Agent (Python/FastAPI) โ†’ Agent collects Pod status, events, and metrics from Kubernetes API and Prometheus
  3. AI Analysis: Root Cause Analysis via Strands Agents framework with Multi-LLM support (Gemini/OpenAI/Anthropic)
  4. Result Delivery: Analysis stored in PostgreSQL, Slack thread notifications, real-time SSE updates to React web dashboard
  5. Knowledge Accumulation: On incident closure, comprehensive analysis + pgvector embeddings โ†’ enables similar incident search

8. ์™„์„ฑ๋„ ๋ฐ PoC ๊ฐ€๋Šฅ ๋ฒ”์œ„ (Completion Status & PoC Scope)

์™„์„ฑ๋„: 90%

ํ˜„์žฌ ์™„์„ฑ๋„ (Current Status)

์˜์—ญ (Area) ์ƒํƒœ (Status) ๋น„๊ณ  (Notes)
Backend (Go + Gin) Production Ready 40+ API, JWT + OIDC ์ธ์ฆ, SSE, Slack ์—ฐ๋™
Agent (Python + FastAPI) Production Ready Multi-LLM (Gemini / OpenAI / Anthropic), K8s ยท Prometheus ยท Tempo ์ปจํ…์ŠคํŠธ ์ˆ˜์ง‘
Frontend (React + TypeScript) Feature Complete Incident/Alert ๋Œ€์‹œ๋ณด๋“œ, AI Chat, ๋‹คํฌ ๋ชจ๋“œ, SSE ์‹ค์‹œ๊ฐ„ ๊ฐฑ์‹ 
Helm Charts Deployable ํ•œ ์ค„ ๋ฐฐํฌ, PostgreSQL + pgvector ์ž๋™ ์ดˆ๊ธฐํ™”, RBAC
Chaos Testing Fully Operational 8 ์‹œ๋‚˜๋ฆฌ์˜ค (Chaos Mesh 4 + Istio Fault Injection 4)
Observability Selectively Deployable Prometheus, Loki, Tempo, Grafana Alloy

PoC ๊ฐ€๋Šฅ ๋ฒ”์œ„ (PoC Scope)

KR: Helm ํ•œ ์ค„ ๋ฐฐํฌ๋กœ ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์ค€๋น„ ์ƒํƒœ ๊ธฐ์ค€ 2 ~ 3์‹œ๊ฐ„ ๋‚ด End-to-End ์‹œ์—ฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

EN: A single Helm install deploys the full pipeline. End-to-end demonstration is possible within 2โ€“3 hours given a ready Kubernetes cluster.

helm install kube-rca ./charts/kube-rca -n kube-rca --create-namespace

๊ฒ€์ฆ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ (Demonstrable Features):

  • Alert Webhook ์ˆ˜์‹  โ†’ AI Root Cause Analysis ์ž๋™ ์‹คํ–‰ โ†’ Slack ์Šค๋ ˆ๋“œ ๊ฒฐ๊ณผ ์ „์†ก
  • ์›น ๋Œ€์‹œ๋ณด๋“œ (Incident/Alert ์กฐํšŒ, RCA ๊ฒฐ๊ณผ, SSE ์‹ค์‹œ๊ฐ„ ๊ฐฑ์‹ )
  • AI Chat (Incident ์ปจํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์งˆ์˜์‘๋‹ต)
  • ์œ ์‚ฌ Incident ๋ฒกํ„ฐ ๊ฒ€์ƒ‰ (pgvector)
  • OIDC ์ธ์ฆ (Google SSO)
  • Chaos Engineering ์‹œ์—ฐ (OOMKilled, CrashLoopBackOff ๋“ฑ ์žฅ์•  ์ฃผ์ž… โ†’ ์ž๋™ ๋ถ„์„)

ํ•„์š” ํ™˜๊ฒฝ (Required Environment):

  • Kubernetes 1.28+ (์ตœ์†Œ 2 CPU / 2 GB RAM, ๊ถŒ์žฅ 4 CPU / 4 GB RAM)
  • PostgreSQL 14+ (pgvector ํ™•์žฅ)
  • LLM API Key (Gemini ๋ฌด๋ฃŒ ํ‹ฐ์–ด ๊ฐ€๋Šฅ)
  • Slack Bot Token (chat:write, channels:manage)
  • ์„ ํƒ: Chaos Mesh, Istio, Ingress + ์™ธ๋ถ€ ๋„๋ฉ”์ธ

9. ์ฐธ์—ฌ ๋ฐฉ๋ฒ• (How to Contribute)

  • Issues: ๋ฒ„๊ทธ๋‚˜ ๊ธฐ๋Šฅ ์ œ์•ˆ์€ GitHub Issues๋ฅผ ํ™œ์šฉํ•˜์„ธ์š”. (Please use GitHub Issues for bug reports or feature requests.)
  • PRs: ๋ชจ๋“  Pull Request๋Š” Tech Lead์˜ ๊ฒ€ํ†  ํ›„ ๋ณ‘ํ•ฉ๋ฉ๋‹ˆ๋‹ค. (All PRs will be merged after review by the Tech Lead.)
  • Guide: [CONTRIBUTING.md] ํŒŒ์ผ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. (Please refer to the [CONTRIBUTING.md] file.)
  • Discord (Official): [์ž ๋“œ๊ฐ€์ž Invite Link]
    • KR: ์‹ค์‹œ๊ฐ„ ์†Œํ†ต ๋ฐ ๊ธฐ์ˆ  ์ง€์›์„ ์œ„ํ•œ ์ฑ„๋„์ž…๋‹ˆ๋‹ค.
    • EN: Official channel for real-time communication and technical support.

10. ๋ฆฌ์†Œ์Šค ๋ฐ ๋งํฌ (Resources & Links)

| This is a space where knowledge is not merely consumed, but respected, sovereign, and connectedโ€”shared together with cloud industry professionals (Bros).|
| ์ง€์‹์ด ์†Œ๋น„๋˜์ง€ ์•Š๊ณ  ์กด์ค‘ยท์ฃผ๊ถŒ๋ณด์žฅยท์—ฐ๊ฒฐ๋˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ํด๋ผ์šฐ๋“œ ํ˜„์—… ์ „๋ฌธ๊ฐ€(Bro)์™€ ํ•จ๊ป˜ ๊ณต์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. |

3 Likes