Error Boundary 에러 처리
Error Boundary 에러 처리
💡 왜 배워야 할까요?
개념
Error Boundary는 React 컴포넌트 트리에서 에러가 발생했을 때 전체 앱이 크래시되는 것을 방지하고, 대신 fallback UI를 보여주는 에러 격리 메커니즘입니다. 실무에서는 사용자 경험을 보호하고 안정적인 서비스 운영을 위해 필수적입니다.
왜 중요한가?
실제 운영 환경에서 서드파티 라이브러리 에러나 예상치 못한 데이터로 인한 런타임 에러가 발생하면 전체 화면이 하얀 페이지로 변하는데, Error Boundary가 있으면 특정 섹션만 에러 UI로 대체되어 사용자가 계속 서비스를 이용할 수 있습니다. 또한 에러 리포팅과 연동하여 장애 감지와 디버깅에도 활용됩니다.
핵심 개념
Error Boundary는 마치 건물의 방화벽과 같습니다. 한 방에서 불이 나더라도 방화벽이 있으면 다른 방으로 번지지 않죠. React에서 Error Boundary는 컴포넌트 트리의 특정 부분에서 에러가 발생해도 전체 앱이 멈추지 않도록 에러를 '격리'하고, 사용자에게는 적절한 fallback UI를 보여줍니다.
핵심 포인트
- ▸클래스 컴포넌트에서만 구현 가능 (React 19 기준)
- ▸하위 컴포넌트의 렌더링 에러와 라이프사이클 메서드 에러만 잡음
- ▸이벤트 핸들러, 비동기 코드, 서버사이드 렌더링 에러는 잡지 못함
- ▸에러 로깅과 연동하여 운영 모니터링에 활용
💡 ⚠️ 흔한 실수
- ▸Error Boundary를 너무 상위에만 두어서 에러 발생 시 전체 페이지가 fallback UI로 변하는 경우
- ▸이벤트 핸들러나 비동기 코드의 에러도 Error Boundary가 잡을 것이라고 착각하는 경우 (try-catch 별도 필요)
- ▸에러 로깅 없이 단순히 fallback UI만 보여주어 운영 중 문제 파악이 어려워지는 경우
💡 🎯 면접 준비
Q: Error Boundary가 잡을 수 있는 에러와 잡을 수 없는 에러의 차이점을 설명해주세요
Q: Error Boundary를 어떻게 전략적으로 배치하시겠습니까?
Q: Error Boundary와 try-catch의 차이점은 무엇인가요?
힌트: Error Boundary는 렌더링 중 에러만 잡고, 이벤트/비동기는 try-catch 필요. 전략적 배치로 에러 격리하여 UX 보호. getDerivedStateFromError와 componentDidCatch의 역할 구분. 에러 리포팅과 모니터링 연동의 중요성 강조.