# [[React Error Boundaries]] ## ๐Ÿ“Œ Brief Summary React Error Boundaries๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์˜ ๋ Œ๋”๋ง, ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ ๋˜๋Š” ์ƒ์„ฑ์ž์—์„œ ๋ฐœ์ƒํ•˜๋Š” JavaScript ์—๋Ÿฌ๋ฅผ ํฌ์ฐฉํ•˜๋Š” ํŠน์ˆ˜ํ•œ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค [1, 2]. ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์•ฑ ์ „์ฒด๊ฐ€ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ๋นˆ ํ™”๋ฉด(white screen of death)์ด ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ๋Œ€์‹  ๋Œ€์ฒด UI(fallback UI)๋ฅผ ํ‘œ์‹œํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค [1, 2]. ๋ณธ์งˆ์ ์œผ๋กœ React ์ปดํฌ๋„ŒํŠธ๋ฅผ ์œ„ํ•œ `try-catch` ๋ธ”๋ก์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ˆ์ •์„ฑ๊ณผ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค [2, 3]. ## ๐Ÿ“– Core Content * **์ž‘๋™ ์›๋ฆฌ ๋ฐ ์ œ์•ฝ ์‚ฌํ•ญ:** Error Boundaries๋Š” ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ๋กœ๋งŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์˜ค๋ฅ˜ ๋ฐœ์ƒ ํ›„ ๋Œ€์ฒด UI๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•œ `static getDerivedStateFromError()`๋‚˜ ์˜ค๋ฅ˜ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•œ `componentDidCatch()` ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์„œ๋“œ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ์ •์˜ํ•ด์•ผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค [3-5]. ๋‹จ, ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ, ๋น„๋™๊ธฐ ์ฝ”๋“œ(์˜ˆ: `setTimeout`), ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR), ํ˜น์€ Error Boundary ์ž์ฒด์—์„œ ๋ฐœ์ƒํ•œ ์—๋Ÿฌ๋Š” ํฌ์ฐฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค [4, 5]. ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ์˜ ๊ฒฝ์šฐ ํ‘œ์ค€ JavaScript์˜ `try/catch` ๋ฌธ์„ ์ง์ ‘ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [5-7]. * **์ „๋žต์  ๋ฐฐ์น˜ ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€:** ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๋ฅผ ๋‹จ์ผ Error Boundary๋กœ ๊ฐ์‹ธ๊ธฐ๋ณด๋‹ค๋Š”, ๋ถˆ์•ˆ์ •ํ•˜๊ฑฐ๋‚˜ ์ค‘์š”ํ•œ UI ์„น์…˜(์˜ˆ: ํƒ€์‚ฌ ์œ„์ ฏ, ์ฐจํŠธ, ๋ณต์žกํ•œ ํผ ๋“ฑ)์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐ์‹ธ๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [8-10]. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์ด๋“œ๋ฐ”๋‚˜ ๋ฉ”์‹œ์ง€ ์ž…๋ ฅ์ฐฝ ์ค‘ ํ•œ ๊ณณ์ด ์ถฉ๋Œํ•˜๋”๋ผ๋„ ๊ฐœ๋ณ„์ ์ธ Error Boundary๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด ๋‚˜๋จธ์ง€ UI ๋ถ€๋ถ„์€ ๊ณ„์† ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [8, 11]. * **ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ ์ ์šฉ ๋ฐ ๋ณต๊ตฌ์„ฑ ํ–ฅ์ƒ:** ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” Error Boundaries๋ฅผ Sentry๋‚˜ LogRocket๊ณผ ๊ฐ™์€ ๋กœ๊น… ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ์™€ ํ†ตํ•ฉํ•˜์—ฌ ์—๋Ÿฌ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์บก์ฒ˜ํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋ฒ” ์‚ฌ๋ก€๋กœ ๊ผฝํž™๋‹ˆ๋‹ค [10]. React 16๋ถ€ํ„ฐ๋Š” Error Boundary์— ์˜ํ•ด ํฌ์ฐฉ๋˜์ง€ ์•Š์€ ์—๋Ÿฌ๋Š” ์ „์ฒด React ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์˜ ๋งˆ์šดํŠธ ํ•ด์ œ(unmounting)๋ฅผ ์ดˆ๋ž˜ํ•˜์—ฌ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ ์ ˆํ•œ ์—๋Ÿฌ ๊ฒฝ๊ณ„ ์„ค์ •์€ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ๊ฒฌ๊ณ ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค [9, 12]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Class Components]], [[Fallback UI]], [[Frontend Debugging]], [[Component Lifecycle]] - **Projects/Contexts:** [[Sentry/LogRocket Monitoring]], [[Scalable React Architecture]], [[Error Handling in 2025]] - **Contradictions/Notes:** Error Boundaries๋Š” ๋ Œ๋”๋ง ์˜ค๋ฅ˜๋ฅผ ์žก๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด์ง€๋งŒ, ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋กœ๋Š” ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์—†์œผ๋ฉฐ ์ปดํฌ๋„ŒํŠธ์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋‚ด์˜ ์˜ค๋ฅ˜๋Š” ํฌ์ฐฉํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋Š” ์ผ๋ฐ˜์ ์ธ `try/catch`๋กœ ๋ณ„๋„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [3, 5, 6]. --- *Last updated: 2026-04-26*