# [[Real User Monitoring (RUM)|Real User Monitoring (RUM)]] ## ๐Ÿ“Œ Brief ์‹œ Summary Real User Monitoring (RUM)์€ ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์™€ ๋„คํŠธ์›Œํฌ ์กฐ๊ฑด์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒฝํ—˜ํ•˜๋Š” ์‹ค์ œ ์„ฑ๋Šฅ๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ์ถ”์ ํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค [1]. ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ(Synthetic testing)๊ฐ€ ๋†“์น  ์ˆ˜ ์žˆ๋Š” ์‹ค์ œ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด๋ฉฐ [1], ํ”„๋ก ํŠธ์—”๋“œ์˜ ์‚ฌ์šฉ์ž ์•ก์…˜๊ณผ ๋ฐฑ์—”๋“œ์˜ ์ธํ”„๋ผ ํŠธ๋ ˆ์ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ „์ฒด ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ฐ€์‹œ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [2]. ## ๐Ÿ“– Core Content * **์‹ค์ œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ถ”์ :** RUM์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด๋‚˜ ์ธ์œ„์ ์ธ ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—์„œ๋Š” ํฌ์ฐฉํ•˜๊ธฐ ์–ด๋ ค์šด ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ, ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ ๋ฐ ๋„คํŠธ์›Œํฌ ์กฐ๊ฑด์—์„œ์˜ ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค [1]. ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ๊ธฐ๊ธฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3]. * **์—”๋“œํˆฌ์—”๋“œ(End-to-End) ํŠธ๋ ˆ์ด์‹ฑ:** Datadog RUM ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ๊ฐ„์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฒฉ์ฐจ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด, ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ ์„œ๋“œํŒŒํ‹ฐ API์— ์ด๋ฅด๋Š” ์ „์ฒด ์š”์ฒญ ๊ณผ์ •์„ ๋ถ„์‚ฐ ํŠธ๋ ˆ์ด์‹ฑ(Distributed tracing)์„ ํ†ตํ•ด ์ถ”์ ํ•  ์ˆ˜ ์žˆ์–ด ๋ณต์žกํ•œ ์‹œ์Šคํ…œ์˜ ๋””๋ฒ„๊น…์„ ๋•์Šต๋‹ˆ๋‹ค [2]. * **ํ†ตํ•ฉ ๊ด€์ธก์„ฑ(Unified Observability):** ์ตœ์‹  ๋ชจ๋‹ˆํ„ฐ๋ง ํ”Œ๋žซํผ์—์„œ RUM์€ ํ”„๋ก ํŠธ์—”๋“œ์˜ ์˜ค๋ฅ˜ ๋กœ๊ทธ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธํ”„๋ผ ๋ชจ๋‹ˆํ„ฐ๋ง, ๋ฐฑ์—”๋“œ APM(Application Performance Monitoring) ๋“ฑ๊ณผ ํ•œ๊ณณ์—์„œ ๊ฒฐํ•ฉ๋˜์–ด ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค [4]. * **๋น„์šฉ ๋ฐ ๋ผ์ด์„ ์Šค ๋ชจ๋ธ:** 1,000๋ช…์˜ ์œ ์ €๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์ธ RUM ๊ธฐ๋Šฅ์€ ์›” $15~$30 ์ˆ˜์ค€์œผ๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘๋Ÿ‰์— ๋”ฐ๋ผ ๋น„์šฉ์ด ์ฒญ๊ตฌ๋˜๋Š” ์‚ฌ์šฉ๋Ÿ‰ ๊ธฐ๋ฐ˜ ๊ฐ€๊ฒฉ ์ •์ฑ…์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค [5]. ## โš–๏ธ Trade-offs & Caveats * **๋ฐ์ดํ„ฐ ๊ทœ๋ชจ์— ๋”ฐ๋ฅธ ๊ณผ๋„ํ•œ ๋น„์šฉ ์ฒญ๊ตฌ:** RUM ํ”Œ๋žซํผ(์˜ˆ: Datadog)์€ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘(Ingest)๊ณผ ๊ฒ€์ƒ‰์„ ์œ„ํ•œ ์ธ๋ฑ์‹ฑ(Index)์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์š”๊ธˆ์„ ๋ถ€๊ณผํ•˜๋Š” '์ด์ค‘ ์š”๊ธˆ์ œ'๋ฅผ ์ฑ„ํƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ์ด ๋†’์€ ์„œ๋น„์Šค์—์„œ๋Š” ๋น„์šฉ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ๋น„์šฉ ์ ˆ๊ฐ์„ ์œ„ํ•ด ๋กœ๊ทธ์˜ 20%๋งŒ ์ธ๋ฑ์‹ฑํ•˜๊ฒŒ ๋˜๋ฉด ์žฅ์•  ๋ฐœ์ƒ ์‹œ 80%์˜ ์ฃผ์š” ๋””๋ฒ„๊น… ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์— ๋†“์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 6]. * **ํ”„๋ผ์ด๋ฒ„์‹œ ๋ฐ ๋ณด์•ˆ ๋ฌธ์ œ:** ์„ธ์…˜ ๋ฆฌํ”Œ๋ ˆ์ด(Session replay) ๋“ฑ ์‚ฌ์šฉ์ž์˜ ๋ชจ๋“  ํ–‰๋™์„ ๊ธฐ๋กํ•˜๋Š” RUM ๋„๊ตฌ๋Š” ๋ฏผ๊ฐํ•œ ๊ฐœ์ธ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—„๊ฒฉํ•ด์ง€๋Š” ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ๊ทœ์ œ๋ฅผ ์ค€์ˆ˜ํ•˜๊ธฐ ์œ„ํ•ด ๋ฏผ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™ ๋งˆ์Šคํ‚นํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7-9]. * **์ดˆ๊ธฐ ๋กœ๋“œ ์„ฑ๋Šฅ ์ €ํ•˜ (์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ):** ํ”„๋ก ํŠธ์—”๋“œ์— ์‚ฝ์ž…๋˜๋Š” RUM ์ถ”์  ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋„๊ตฌ์˜ ๊ฒฝ์šฐ ๋กœ๋“œ ์‹œ๊ฐ„์„ ์ตœ๋Œ€ 120ms๊นŒ์ง€ ์ง€์—ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, 1์ดˆ๊ฐ€ ์ค‘์š”ํ•œ ์ด์ปค๋จธ์Šค ๋“ฑ์˜ ์‚ฌ์ดํŠธ์—์„œ๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ์˜ต์…˜์„ ์‹ ์ค‘ํžˆ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [10]. * **๋„์ž… ๋ฐ ํ•™์Šต ๊ณก์„ :** ํ’€์Šคํƒ ๊ด€์ธก ํ”Œ๋žซํผ๊ณผ ๊ฒฐํ•ฉ๋œ RUM ๋„๊ตฌ๋Š” ๋‹จ์ˆœ ํ”„๋ก ํŠธ์—”๋“œ ๋กœ๊น…๋งŒ ํ•„์š”ํ•œ ์ž‘์€ ํŒ€์—๊ฒŒ๋Š” ์ง€๋‚˜์นœ ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง(Overkill)์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ „์ฒด ํ”Œ๋žซํผ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๊ฐ€ํŒŒ๋ฅธ ํ•™์Šต ๊ณก์„ ์ด ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค [6, 11]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A (์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ )] - [[Synthetic Testing|Synthetic Testing]] - ์—ฐ๊ฒฐ ์ด์œ : RUM๊ณผ ๋Œ€๋น„๋˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐœ๋…์œผ๋กœ, ๊ฐ€์ƒ ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ์ธก์ •ํ•ฉ๋‹ˆ๋‹ค [1]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ์ดํ„ฐ์™€ ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(RUM) ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒํ˜ธ๋ณด์™„์ ์œผ๋กœ ์ž‘์šฉํ•˜์—ฌ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ฐพ์•„๋‚ด๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - Distributed Tracing - ์—ฐ๊ฒฐ ์ด์œ : RUM ๋„๊ตฌ๊ฐ€ ํ”„๋ก ํŠธ์—”๋“œ์˜ ์‚ฌ์šฉ์ž ๋™์ž‘์„ ๋ฐฑ์—”๋“œ์˜ ์„œ๋น„์Šค ์š”์ฒญ๊ณผ ์—ฐ๊ด€ ์ง“๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค [2, 4, 12]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ ํ™˜๊ฒฝ์—์„œ ํด๋ผ์ด์–ธํŠธ ์—๋Ÿฌ์˜ ๊ทผ๋ณธ ์›์ธ์„ ๋ฐฑ์—”๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์™ธ๋ถ€ API๊นŒ์ง€ ์–ด๋–ป๊ฒŒ ์ถ”์ ํ•˜๋Š”์ง€ ์›๋ฆฌ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - [[Core Web Vitals|Core Web Vitals]] - ์—ฐ๊ฒฐ ์ด์œ : RUM์„ ํ†ตํ•ด ์ฃผ๋กœ ์ธก์ •ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋ ค๋Š” ๋Œ€์ƒ์ธ ์‹ค์ œ ์‚ฌ์šฉ์ž ์ค‘์‹ฌ์˜ ๋กœ๋”ฉ ์†๋„, ์ƒํ˜ธ์ž‘์šฉ, ์‹œ๊ฐ์  ์•ˆ์ •์„ฑ ์ง€ํ‘œ์ž…๋‹ˆ๋‹ค [13, 14]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: RUM ๋ฐ์ดํ„ฐ๊ฐ€ ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ๊ธฐ์ค€(LCP, FID, CLS, INP)๊ณผ ์–ด๋–ป๊ฒŒ ๋งคํ•‘๋˜์–ด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์„ ์ˆ˜์น˜ํ™”ํ•˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [๊ด€๊ณ„ ์œ ํ˜• B (๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ)] - Datadog RUM - ์—ฐ๊ฒฐ ์ด์œ : ์†Œ์Šค์—์„œ ์—”๋“œํˆฌ์—”๋“œ ํ”„๋ก ํŠธ์—”๋“œ-๋ฐฑ์—”๋“œ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ๋Œ€ํ‘œ์ ์ธ RUM ํ”Œ๋žซํผ์œผ๋กœ ์†Œ๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋Œ€๊ทœ๋ชจ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ RUM์„ ํ™œ์šฉํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ์‚ฌ๋ก€์™€, ์ธ๋ฑ์‹ฑ ๋น„์šฉ ์ตœ์ ํ™”(Trade-off) ์ „๋žต์˜ ์ค‘์š”์„ฑ์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - Session Replay - ์—ฐ๊ฒฐ ์ด์œ : ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ ๋ณ€๊ฒฝ, ์ฝ˜์†” ๋กœ๊ทธ, ๋„คํŠธ์›Œํฌ ์š”์ฒญ ๋“ฑ์„ ๋งˆ์น˜ ํ™”๋ฉด ๋…นํ™”์ฒ˜๋Ÿผ ์žฌํ˜„ํ•˜๋Š” RUM์˜ ๊ณ ๊ธ‰ ๋””๋ฒ„๊น… ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค [7, 12, 15]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์Šคํƒ ํŠธ๋ ˆ์ด์Šค๋งŒ์œผ๋กœ ์ฐพ๊ธฐ ํž˜๋“  ๋ณต์žกํ•œ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ ์˜ค๋ฅ˜์˜ ๋””๋ฒ„๊น… ๋ฐฉ๋ฒ•๋ก ๊ณผ ์ด์— ๋”ฐ๋ฅธ ํ”„๋ผ์ด๋ฒ„์‹œ ์„ค์ •์˜ ์ค‘์š”์„ฑ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Deeper Research Questions - ๊ฐ€์ƒ ํ™˜๊ฒฝ์˜ ์„ฑ๋Šฅ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ(Synthetic Testing)์™€ ๋น„๊ตํ•  ๋•Œ, RUM๋งŒ์ด ๋…์ ์ ์œผ๋กœ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ œ ๊ธฐ๊ธฐ/๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜์˜ ์„ฑ๋Šฅ ์ด์Šˆ ํŒจํ„ด์€ ๋ฌด์—‡์ธ๊ฐ€? - Datadog๊ณผ ๊ฐ™์€ RUM ์†”๋ฃจ์…˜์„ ํ™œ์šฉํ•  ๋•Œ, ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ ํ•˜์—์„œ ๊ฐ€์‹œ์„ฑ ์†์‹ค ์—†์ด ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘(Ingest)๊ณผ ์ธ๋ฑ์‹ฑ(Indexing) ๋น„์šฉ์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ๊ทธ ํ•„ํ„ฐ๋ง ์ „๋žต์€ ๋ฌด์—‡์ธ๊ฐ€? - RUM ์—์ด์ „ํŠธ์˜ ์‚ฝ์ž…์ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค ํฌ๊ธฐ ๋ฐ ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ๋กœ๋“œ ์†๋„(์ตœ๋Œ€ 120ms ์ถ”๊ฐ€)์— ๋ฏธ์น˜๋Š” ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? - ๊ธ€๋กœ๋ฒŒ ํ”„๋ผ์ด๋ฒ„์‹œ ๊ทœ์ œ๋ฅผ ์ค€์ˆ˜ํ•˜๋ฉด์„œ Session Replay๋ฅผ ํฌํ•จํ•œ RUM ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ธฐ ์œ„ํ•ด, ๋ฏผ๊ฐํ•œ DOM ์š”์†Œ๋‚˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์–ด๋–ป๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ๋งˆ์Šคํ‚น(Masking)ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€? - ํ”„๋ก ํŠธ์—”๋“œ React ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋ฅผ RUM ๋ฐ์ดํ„ฐ์™€ ๊ฒฐํ•ฉํ•˜๊ณ , ๋ฐฑ์—”๋“œ์˜ OpenTelemetry ๋ถ„์‚ฐ ํŠธ๋ ˆ์ด์Šค์™€ ์—ฐ๊ฒฐ(Trace ID ๊ณต์œ  ๋“ฑ)ํ•˜์—ฌ ์ „์ฒด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ๋ฆ„์—์„œ ๊ทผ๋ณธ ์›์ธ์„ ํŒŒ์•…ํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ• ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts - **Implementation:** React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—”ํŠธ๋ฆฌ ํฌ์ธํŠธ์— Datadog์ด๋‚˜ Sentry์™€ ๊ฐ™์€ RUM ๋ชจ๋‹ˆํ„ฐ๋ง SDK๋ฅผ ํ†ตํ•ฉํ•˜๊ณ , Core Web Vitals ๋ฐ ์„ธ์…˜๋ณ„ ์„ฑ๋Šฅ ์ง€ํ‘œ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘ํ•˜๋„๋ก ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. - **System Design:** ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐœ์ƒํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๋กœ๊ทธ์™€ API ์š”์ฒญ ํ—ค๋”์— ํŠธ๋ ˆ์ด์Šค ID๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ, ๋ฐฑ์—”๋“œ ๋กœ๊น… ์‹œ์Šคํ…œ๊ณผ ๋งค์นญ์‹œํ‚ค๋Š” '์—”๋“œํˆฌ์—”๋“œ(End-to-End) ๋ชจ๋‹ˆํ„ฐ๋ง ์•„ํ‚คํ…์ฒ˜'๋ฅผ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค. - **Operation / Maintenance:** ์›”๋ณ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋น„์šฉ(ํŠนํžˆ ๋ฐ์ดํ„ฐ ์ธ๋ฑ์‹ฑ ๋น„์šฉ)์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์ด๋ฒคํŠธ๋Š” ์ƒ˜ํ”Œ๋งํ•˜๊ณ , ๋ฐ์ดํ„ฐ ๋งˆ์Šคํ‚น ๊ทœ์น™์„ ์ง€์†์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด GDPR ๋“ฑ์˜ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ์ •์ฑ…์„ ์œ„๋ฐ˜ํ•˜์ง€ ์•Š๋„๋ก ์œ ์ง€๋ณด์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. - **Learning Path:** ๋จผ์ € React์˜ ๊ธฐ๋ณธ ์—๋Ÿฌ ์ฒ˜๋ฆฌ(Error Boundaries)์™€ ๋ธŒ๋ผ์šฐ์ € DevTools๋ฅผ ์‚ฌ์šฉํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์ธก์ •์„ ์ตํžŒ ํ›„, ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์˜ ์‹ค์‹œ๊ฐ„ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” RUM๊ณผ ๋ฐฑ์—”๋“œ ๋ถ„์‚ฐ ํŠธ๋ ˆ์ด์‹ฑ์„ ํ•™์Šตํ•˜์—ฌ ํ’€์Šคํƒ ๊ด€์ธก์„ฑ(Observability) ์—ญ๋Ÿ‰์„ ๊ธฐ๋ฆ…๋‹ˆ๋‹ค. - **My Project Relevance:** ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ์ž ์ดํƒˆ๋ฅ ์ด ๋†’์€ ํŠน์ • ํ™”๋ฉด์˜ ๋ณ‘๋ชฉ ์ง€์ ์„ ์ฐพ๊ธฐ ์œ„ํ•ด, RUM์„ ์ ์šฉํ•˜์—ฌ ์‹ค์ œ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ์™€ 3G/LTE ํ™˜๊ฒฝ์—์„œ์˜ INP(Interaction to Next Paint)์™€ ๋ Œ๋”๋ง ์ง€์—ฐ์„ ์ธก์ • ๋ฐ ๊ฐœ์„ ํ•  ๋•Œ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ### Adjacent Topics - OpenTelemetry - ํ™•์žฅ ๋ฐฉํ–ฅ: ํŠน์ • ๋ฒค๋”์— ์ข…์†๋˜์ง€ ์•Š๊ณ (No vendor lock-in) ์˜คํ”ˆ ์Šคํƒ ๋‹ค๋“œ ํ”„๋กœํ† ์ฝœ์„ ์ด์šฉํ•ด RUM, ๋ฉ”ํŠธ๋ฆญ, ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ฐฑ์—”๋“œ์™€ ์—ฐ๊ฒฐํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜๋กœ ์ง€์‹์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [16, 17]. - [[Error Boundaries|Error Boundaries]] - ํ™•์žฅ ๋ฐฉํ–ฅ: React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ UI ๋ Œ๋”๋ง ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๋ฅผ ์บก์ฒ˜ํ•˜์—ฌ ์ „์ฒด ์•ฑ์˜ ํฌ๋ž˜์‹œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๊ฐœ๋…์œผ๋กœ, ์—ฌ๊ธฐ์„œ ํฌ์ฐฉ๋œ ์—๋Ÿฌ๋ฅผ RUM ์‹œ์Šคํ…œ์— ๋ณด๊ณ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [18-20]. --- *Last updated: 2026-04-30*