# [[Production Monitoring]] ## πŸ“Œ Brief Summary Production Monitoring(ν”„λ‘œλ•μ…˜ λͺ¨λ‹ˆν„°λ§)은 μ‹€μ œ μ„œλΉ„μŠ€κ°€ 배포된 ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ λ°œμƒν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ™μž‘κ³Ό 였λ₯˜, 그리고 μ‚¬μš©μž κ²½ν—˜μ„ μΆ”μ ν•˜κ³  μ‹œμŠ€ν…œμ˜ κ°€μ‹œμ„±(Observability)을 ν™•λ³΄ν•˜λŠ” κ³Όμ •μž…λ‹ˆλ‹€. λͺ¨λ˜ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œλŠ” λ³΅μž‘ν•œ λΆ„μ‚° ν™˜κ²½κ³Ό λ‹€μ–‘ν•œ μ‚¬μš©μž κΈ°κΈ°μ—μ„œ λ°œμƒν•˜λŠ” 이슈λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄, λ‹¨μˆœν•œ 둜그λ₯Ό λ„˜μ–΄ 였λ₯˜ κ·Έλ£Ήν™”, μ„Έμ…˜ λ¦¬ν”Œλ ˆμ΄, ν’€μŠ€νƒ λΆ„μ‚° 좔적(Distributed Tracing) κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” ν΄λΌμš°λ“œ λͺ¨λ‹ˆν„°λ§ 도ꡬλ₯Ό ν™œμš©ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 κ°œλ°œμžλŠ” μ‚¬μš©μžμ—κ²Œ 영ν–₯을 λ―ΈμΉ˜λŠ” 문제λ₯Ό μ‹ μ†νžˆ νŒŒμ•…ν•˜κ³ , μ„±λŠ₯ μ €ν•˜λ‚˜ 였λ₯˜μ˜ κ·Όλ³Έ 원인을 효과적으둜 디버깅할 수 μžˆμŠ΅λ‹ˆλ‹€ [1-3]. ## πŸ“– Core Content * **κ΄€μΈ‘μ„±κ³Ό 였λ₯˜ μΆ”μ μ˜ ν•„μš”μ„±:** ν˜„λŒ€μ˜ μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ λ‹€μ–‘ν•œ λΈŒλΌμš°μ €μ™€ λͺ¨λ°”일 ν™˜κ²½μ—μ„œ μ‹€ν–‰λ˜λ©° 500KBκ°€ λ„˜λŠ” λ²ˆλ“€λ‘œ κ΅¬μ„±λ˜κΈ°λ„ ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ ν™˜κ²½μ—μ„œ νŠΉμ • 쑰건(예: Safari λΈŒλΌμš°μ €μ—μ„œ 닀크 λͺ¨λ“œ μ‚¬μš© μ‹œ λ“±)μ—μ„œλ§Œ λ°œμƒν•˜λŠ” 였λ₯˜λ₯Ό λ‹¨μˆœν•œ μ‚¬μš©μž μŠ€ν¬λ¦°μƒ·μ΄λ‚˜ λ°±μ—”λ“œ 둜그만으둜 νŒŒμ•…ν•˜λŠ” 것은 λΆˆκ°€λŠ₯에 가깝기 λ•Œλ¬Έμ— μ „μš© ν”„λ‘ νŠΈμ—”λ“œ λ‘œκΉ… ν”Œλž«νΌμ˜ λ„μž…μ΄ ν•„μˆ˜μ μž…λ‹ˆλ‹€ [1, 2]. * **μ£Όμš” λͺ¨λ‹ˆν„°λ§ 도ꡬ 및 νŠΉμ§•:** * **Sentry:** 개발자 μΉœν™”μ μΈ μ—λŸ¬ 트래컀둜, μœ μ‚¬ν•œ 였λ₯˜λ₯Ό λ¬Άμ–΄μ£ΌλŠ” μ§€λŠ₯ν˜• 였λ₯˜ κ·Έλ£Ήν™”(Intelligent Error Grouping)와 였λ₯˜ λ°œμƒκΉŒμ§€μ˜ μ½˜μ†” 둜그, λ„€νŠΈμ›Œν¬ μš”μ²­ 등을 λ³΄μ—¬μ£ΌλŠ” λΉ΅λΆ€μŠ€λŸ¬κΈ°(Breadcrumb trail) κΈ°λŠ₯이 λ›°μ–΄λ‚©λ‹ˆλ‹€ [3-5]. * **LogRocket:** 였λ₯˜ λ‘œκΉ…μ„ λ„˜μ–΄ 화면을 λ…Ήν™”ν•˜λ“― DOM λ³€ν™”, Redux/Vuex μƒνƒœ λ³€κ²½, λ„€νŠΈμ›Œν¬ 응닡 등을 κΈ°λ‘ν•˜μ—¬ μ‚¬μš©μž 행동을 μ™„λ²½νžˆ μž¬ν˜„ν•˜λŠ” μ„Έμ…˜ λ¦¬ν”Œλ ˆμ΄(Session Replay) κΈ°μˆ μ— 강점이 μžˆμŠ΅λ‹ˆλ‹€ [3, 6, 7]. * **Datadog RUM:** ν”„λ‘ νŠΈμ—”λ“œμ˜ 였λ₯˜λ₯Ό λ°±μ—”λ“œ μ„œλΉ„μŠ€, λ°μ΄ν„°λ² μ΄μŠ€, μ„œλ“œνŒŒν‹° APIκΉŒμ§€ μ—°κ²°ν•˜μ—¬ λ³΄μ—¬μ£ΌλŠ” μ—”λ“œνˆ¬μ—”λ“œ λΆ„μ‚° 좔적(Distributed tracing)을 톡해 λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ˜ μ—°κ΄€ 관계λ₯Ό λΆ„μ„ν•˜λŠ” 데 μœ μš©ν•©λ‹ˆλ‹€ [3, 8]. * **SigNoz & Grafana:** νŠΉμ • 벀더에 μ’…μ†λ˜μ§€ μ•ŠλŠ” κ°œλ°©ν˜• ν‘œμ€€μΈ OpenTelemetryλ₯Ό 기반으둜 ν•˜λ©°, 둜그, λ©”νŠΈλ¦­, 트레이슀λ₯Ό 단일 ν”Œλž«νΌμ—μ„œ μΌκ΄€λ˜κ²Œ μ œκ³΅ν•˜μ—¬ μœ μ—°μ„±κ³Ό 데이터 μ†Œμœ κΆŒμ„ 보μž₯ν•©λ‹ˆλ‹€ [9-12]. * **μ„±λŠ₯ λͺ¨λ‹ˆν„°λ§(Performance Monitoring):** 이듀 λ„κ΅¬λŠ” λ‹¨μˆœνžˆ 였λ₯˜λ§Œ μž‘λŠ” 것이 μ•„λ‹ˆλΌ Core Web Vitals(LCP, FID, CLS) λͺ¨λ‹ˆν„°λ§μ„ μ§€μ›ν•˜μ—¬ λ©”λͺ¨λ¦¬ λˆ„μˆ˜, 느린 λ Œλ”λ§ λ“± μ•±μ˜ μ „λ°˜μ μΈ μ„±λŠ₯ μƒνƒœλ₯Ό μ§€μ†μ μœΌλ‘œ κ΄€μΈ‘ν•  수 있게 λ•μŠ΅λ‹ˆλ‹€ [13-15]. ## βš–οΈ Trade-offs & Caveats * **λΉ„μš©(Pricing) 및 κ°€μ‹œμ„±μ˜ λ”œλ ˆλ§ˆ:** 데이터 μˆ˜μ§‘λŸ‰μ΄ μ¦κ°€ν•˜λ©΄ λͺ¨λ‹ˆν„°λ§ λ„κ΅¬μ˜ λΉ„μš©μ΄ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ μ¦κ°€ν•©λ‹ˆλ‹€. 특히 Datadogκ³Ό 같이 데이터 μˆ˜μ§‘(Ingest)κ³Ό 검색을 μœ„ν•œ 인덱싱(Index)에 각각 μš”κΈˆμ„ λΆ€κ³Όν•˜λŠ” λͺ¨λΈμ˜ 경우, λΉ„μš© μ ˆκ°μ„ μœ„ν•΄ 전체 둜그의 μΌλΆ€λ§Œ μΈλ±μ‹±ν•˜κ²Œ 되고, 이둜 인해 μ •μž‘ μž₯μ•  λ°œμƒ μ‹œ ν•„μš”ν•œ μ€‘μš” 데이터λ₯Ό 검색할 수 μ—†λŠ” 상황이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€ [3, 16, 17]. * **μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„±λŠ₯ μ €ν•˜(Performance Impact):** μ™„λ²½ν•œ λͺ¨λ‹ˆν„°λ§κ³Ό μ„Έμ…˜ λ¦¬ν”Œλ ˆμ΄λ₯Ό μœ„ν•΄ μ‚½μž…λœ SDKλŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λ²ˆλ“€ 크기λ₯Ό μ¦κ°€μ‹œν‚€λ©°, 이둜 인해 초기 λ‘œλ“œ μ‹œκ°„μ΄ μ΅œλŒ€ 120msκΉŒμ§€ 지연될 수 μžˆμŠ΅λ‹ˆλ‹€. λ‘œλ”© 속도가 μ€‘μš”ν•œ μ„œλΉ„μŠ€(예: 이컀머슀)μ—μ„œλŠ” κ°€λ²Όμš΄ λ‘œκΉ… 도ꡬλ₯Ό 선택해야 ν•©λ‹ˆλ‹€ [13, 18-20]. * **κ°œμΈμ •λ³΄ 보호 및 λ³΄μ•ˆ(Privacy Concerns):** LogRocket처럼 μ‚¬μš©μž μ„Έμ…˜μ˜ λͺ¨λ“  DOMκ³Ό μƒνƒœλ₯Ό κΈ°λ‘ν•˜λŠ” λ„κ΅¬λŠ”, 섀정이 μ˜¬λ°”λ₯΄μ§€ μ•Šμ„ 경우 μ‚¬μš©μžμ˜ λΉ„λ°€λ²ˆν˜Έλ‚˜ 금육 정보 같은 민감 데이터λ₯Ό κ·ΈλŒ€λ‘œ μΊ‘μ²˜ν•  μœ„ν—˜μ΄ μžˆμŠ΅λ‹ˆλ‹€. 데이터 μˆ˜μ§‘ μ‹œ 민감 정보λ₯Ό μ² μ €νžˆ λ§ˆμŠ€ν‚Ήν•˜λ„λ‘ κ°œμΈμ •λ³΄ 보호 μ œμ–΄μ— μƒλ‹Ήν•œ λ…Έλ ₯을 κΈ°μšΈμ—¬μ•Ό ν•©λ‹ˆλ‹€ [5, 7, 18, 19]. ## πŸ”— Knowledge Connections ### Related Concepts #### [μ•„ν‚€ν…μ²˜/기반 기술] - [[OpenTelemetry]] - μ—°κ²° 이유: SigNozλ‚˜ Grafana 같은 λͺ¨λ‹ˆν„°λ§ 도ꡬ듀이 νŠΉμ • 벀더(Vendor lock-in)에 μ’…μ†λ˜μ§€ μ•ŠκΈ° μœ„ν•΄ μ±„νƒν•˜κ³  μžˆλŠ” κ΄€μΈ‘μ„± κ΄€λ ¨ κ°œλ°©ν˜• ν‘œμ€€ κΈ°μˆ μž…λ‹ˆλ‹€ [10, 11, 19]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œ ꡬ좕 μ‹œ μœ μ—°μ„±μ„ 높이고 데이터 μ†Œμœ κΆŒμ„ μœ μ§€ν•  수 μžˆλŠ” μ•„ν‚€ν…μ²˜ 섀계 방법을 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. - [[Distributed Tracing]] - μ—°κ²° 이유: ν”„λ‘ νŠΈμ—”λ“œμ˜ 였λ₯˜λ‚˜ μ§€μ—° ν˜„μƒμ„ λ°±μ—”λ“œ 인프라와 λ°μ΄ν„°λ² μ΄μŠ€μ˜ νŠΈλžœμž­μ…˜κΉŒμ§€ μΆ”μ ν•˜μ—¬ κ·Όλ³Έ 원인을 νŒŒμ•…ν•˜κ²Œ ν•΄μ£ΌλŠ” κΈ°μˆ μž…λ‹ˆλ‹€ [8, 11, 12]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€λ‚˜ ν’€μŠ€νƒ ν™˜κ²½μ—μ„œ λ‘œκ·Έκ°€ μ–΄λ–»κ²Œ μ—°κ²°λ˜κ³  상관관계(Correlation)λ₯Ό κ°€μ§€λŠ”μ§€ 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. #### [κ΅¬ν˜„/ν™œμš© 도ꡬ] - [[Session Replay]] - μ—°κ²° 이유: ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ 였λ₯˜ λ°œμƒ μ „ν›„μ˜ μ‚¬μš©μž ν™”λ©΄ μ‘°μž‘, λ„€νŠΈμ›Œν¬ μš”μ²­, μƒνƒœ(State) λ³€ν™”λ₯Ό λΉ„λ””μ˜€μ²˜λŸΌ μž¬ν˜„ν•˜μ—¬ μž¬ν˜„ν•˜κΈ° νž˜λ“  버그λ₯Ό νŒŒμ•…ν•˜κ²Œ ν•΄μ€λ‹ˆλ‹€ [3, 5-7]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: λ‹¨μˆœνžˆ μŠ€νƒ 트레이슀만으둜 ν•΄κ²°ν•  수 μ—†λŠ” μ‚¬μš©μž μΈν„°λž™μ…˜ 기반의 문제λ₯Ό λ””λ²„κΉ…ν•˜λŠ” μ›Œν¬ν”Œλ‘œμš°λ₯Ό 이해할 수 μžˆμŠ΅λ‹ˆλ‹€. - [[Intelligent Error Grouping]] - μ—°κ²° 이유: 수천 개의 였λ₯˜ λ‘œκ·Έκ°€ λ°œμƒν–ˆμ„ λ•Œ μœ μ‚¬ν•œ 였λ₯˜λ₯Ό μžλ™μœΌλ‘œ ν•˜λ‚˜μ˜ 그룹으둜 λ¬Άμ–΄ 개발자의 ν”Όλ‘œλ„λ₯Ό μ€„μ—¬μ£ΌλŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€ [3, 4]. - 이 κ°œλ…μ„ 톡해 더 깊게 이해할 수 μžˆλŠ” λΆ€λΆ„: λŒ€κ·œλͺ¨ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ˜ λ…Έμ΄μ¦ˆ μ†μ—μ„œ κ°€μž₯ μ‹œκΈ‰ν•œ 문제λ₯Ό μ„ λ³„ν•˜κ³  μš°μ„ μˆœμœ„λ₯Ό μ •ν•˜λŠ” 방법을 배울 수 μžˆμŠ΅λ‹ˆλ‹€. ### Deeper Research Questions - OpenTelemetry ν‘œμ€€μ„ μ μš©ν•œ λͺ¨λ‹ˆν„°λ§ μ•„ν‚€ν…μ²˜(SigNoz, Grafana)λŠ” κΈ°μ‘΄ μƒμš© 도ꡬ(Datadog, Sentry)와 비ꡐ해 μž₯기적인 데이터 보관 및 쿼리 λΉ„μš©μ„ μ–΄λ–»κ²Œ μ ˆκ°ν•  수 μžˆλŠ”κ°€? - μ„Έμ…˜ λ¦¬ν”Œλ ˆμ΄ κΈ°μˆ μ„ ν”„λ‘œλ•μ…˜μ— μ μš©ν•  λ•Œ λΈŒλΌμš°μ €μ˜ 메인 μŠ€λ ˆλ“œ 점유율과 λ„€νŠΈμ›Œν¬ λŒ€μ—­ν­ μ†ŒλΉ„λ₯Ό μ΅œμ†Œν™”ν•˜κΈ° μœ„ν•œ ꡬ체적인 μ΅œμ ν™” 기법은 무엇인가? - Datadog의 'μˆ˜μ§‘(Ingest)'κ³Ό '인덱싱(Index)'의 이쀑 과금 ꡬ쑰 ν•˜μ—μ„œ ν΄λΌμš°λ“œ μ˜ˆμ‚°μ„ ν†΅μ œν•˜λ©΄μ„œλ„ ν¬λ¦¬ν‹°μ»¬ν•œ 둜그의 κ°€μ‹œμ„±μ„ ν™•λ³΄ν•˜λŠ” μƒ˜ν”Œλ§ μ „λž΅μ€ μ–΄λ–»κ²Œ ꡬ성해야 ν•˜λŠ”κ°€? - ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ λ°œμƒν•œ ν”„λ‘ νŠΈμ—”λ“œ μƒνƒœ(예: Redux, Zustand) μ—λŸ¬λ₯Ό Sentry의 Breadcrumb trail(이동 경둜)κ³Ό μ–΄λ–»κ²Œ 톡합해야 μ»΄ν¬λ„ŒνŠΈ μž¬λ Œλ”λ§μ˜ 원인을 κ°€μž₯ μ •ν™•ν•˜κ²Œ 역좔적할 수 μžˆλŠ”κ°€? - Session Replay μ†”λ£¨μ…˜ λ„μž… μ‹œ GDPR λ“± κΈ€λ‘œλ²Œ κ°œμΈμ •λ³΄ 보호 규제λ₯Ό μ€€μˆ˜ν•˜κΈ° μœ„ν•΄ 민감 데이터λ₯Ό ν΄λΌμ΄μ–ΈνŠΈ λ‹¨μ—μ„œ λˆ„λ½ 없이 λ§ˆμŠ€ν‚Ήν•  수 μžˆλŠ” μžλ™ν™”λœ μ•„ν‚€ν…μ²˜λŠ” μ–΄λ–»κ²Œ κ΅¬ν˜„ν•˜λŠ”κ°€? ### Practical Application Contexts - **Implementation:** React μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ΅œμƒλ‹¨ 였λ₯˜ λ°”μš΄λ”λ¦¬μ— Sentryλ‚˜ LogRocket λ“±μ˜ SDKλ₯Ό ν†΅ν•©ν•˜μ—¬, 비동기 λ‘œμ§μ΄λ‚˜ λ Œλ”λ§ 쀑 λ°œμƒν•˜λŠ” 예기치 λͺ»ν•œ μ—λŸ¬λ₯Ό μΊ‘μ²˜ν•˜κ³  μ„œλ²„λ‘œ μ „μ†‘ν•˜λ„λ‘ κ΅¬ν˜„ν•©λ‹ˆλ‹€. [3, 5, 7] - **System Design:** ν”„λ‘ νŠΈμ—”λ“œμ˜ λ‘œκΉ… νŠΈλž˜ν”½(RUM)에 고유 Trace IDλ₯Ό λΆ€μ—¬ν•˜κ³ , 이λ₯Ό λ°±μ—”λ“œμ˜ APM(Application Performance Monitoring)κ³Ό μ—°κ²°ν•˜μ—¬ μ—”λ“œνˆ¬μ—”λ“œ λΆ„μ‚° 좔적이 κ°€λŠ₯ν•˜λ„λ‘ 전체 κ΄€μΈ‘μ„± νŒŒμ΄ν”„λΌμΈμ„ μ„€κ³„ν•©λ‹ˆλ‹€. [8, 11, 12] - **Operation / Maintenance:** 앱이 ν”„λ‘œλ•μ…˜μ— 배포된 ν›„ λ°œμƒν•˜λŠ” λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ‚˜ Core Web Vitals 점수 ν•˜λ½μ„ λͺ¨λ‹ˆν„°λ§ λŒ€μ‹œλ³΄λ“œμ—μ„œ μ‹€μ‹œκ°„μœΌλ‘œ κ°μ§€ν•˜κ³ , μ—λŸ¬ κ·Έλ£Ήν™” 도ꡬλ₯Ό 톡해 λΉˆλ„κ°€ 높은 μ΄μŠˆλΆ€ν„° μ μ§„μ μœΌλ‘œ ν•΄κ²°ν•˜μ—¬ μ‹œμŠ€ν…œ μ•ˆμ •μ„±μ„ λ†’μž…λ‹ˆλ‹€. [1-3, 14] - **Learning Path:** μ²˜μŒμ—λŠ” λΈŒλΌμš°μ €μ˜ Chrome DevTools 및 둜컬 λ‘œκΉ…μœΌλ‘œ μ‹œμž‘ν•˜μ—¬, 점차 React Error Boundariesλ₯Ό ν†΅ν•œ μ—λŸ¬ 격리λ₯Ό 읡힌 λ’€, Sentryλ‚˜ SigNoz 같은 ν΄λΌμš°λ“œ 기반 ν”„λ‘œλ•μ…˜ λͺ¨λ‹ˆν„°λ§ ν”Œλž«νΌ μ—°λ™μœΌλ‘œ ν•™μŠ΅ λ²”μœ„λ₯Ό ν™•μž₯ν•΄ λ‚˜κ°‘λ‹ˆλ‹€. [1, 2, 21-42] - **My Project Relevance:** ν˜„μž¬ μ§„ν–‰ 쀑인 ν”„λ‘œμ νŠΈ 규λͺ¨μ™€ νŒ€μ˜ μ˜ˆμ‚°μ„ κ³ λ €ν•˜μ—¬ μ ν•©ν•œ 도ꡬλ₯Ό μ„ μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. 초기 단계라면 λ„‰λ„‰ν•œ 무료 ν‹°μ–΄λ₯Ό μ œκ³΅ν•˜λŠ” Sentryλ‚˜ μ˜€ν”ˆμ†ŒμŠ€μΈ SigNoz Cloudκ°€ μ ν•©ν•˜λ©°, λ―Όκ°ν•œ μ‚¬μš©μž 정보λ₯Ό λ‹€λ£¨λŠ” μ„œλΉ„μŠ€λΌλ©΄ 데이터 λ§ˆμŠ€ν‚Ή 섀정을 ν•„μˆ˜λ‘œ μ μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. [13, 19, 43, 44] ### Adjacent Topics - [[Error Boundaries in React]] - ν™•μž₯ λ°©ν–₯: λͺ¨λ‹ˆν„°λ§ 도ꡬ가 μΊ‘μ²˜ν•œ μ—λŸ¬κ°€ λ°œμƒν–ˆμ„ λ•Œ, μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 전체가 'λ°±μ§€ ν™”λ©΄(White screen of death)'으둜 ν¬λž˜μ‹œ λ˜λŠ” 것을 λ°©μ§€ν•˜κ³  Fallback UIλ₯Ό 보여주어 μ‚¬μš©μž κ²½ν—˜μ„ λ³΄ν˜Έν•˜λŠ” React 자체의 였λ₯˜ 처리 λ§€μ»€λ‹ˆμ¦˜μ„ μ•Œμ•„λ΄…λ‹ˆλ‹€ [45-47]. - [[Core Web Vitals]] - ν™•μž₯ λ°©ν–₯: ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ λ‹¨μˆœν•œ 였λ₯˜λΏλ§Œ μ•„λ‹ˆλΌ, μ‚¬μš©μžμ˜ 체감 μ„±λŠ₯을 μ’Œμš°ν•˜λŠ” λ Œλ”λ§ 속도와 μ‹œκ°μ  μ•ˆμ •μ„±(LCP, FID, CLS λ“±)을 μΈ‘μ •ν•˜κ³  λͺ¨λ‹ˆν„°λ§ν•˜λŠ” 방법을 μ΄ν•΄ν•©λ‹ˆλ‹€ [14, 15, 48]. --- *Last updated: 2026-04-30*