에러 경계의 위치
핵심 아이디어
비동기 파이프라인에서 에러 경계(Error Boundary)를 어디에 둘 것인가는 단순한 기술적 결정이 아니라 시스템의 장애 허용성(Fault Tolerance) 철학을 드러내는 설계 결정이다.
통찰
에피소드에서 다룬 세 가지 위치(진입점, 종료점, 단계 사이)는 각각 다음과 같은 근본적인 가정을 내포한다:
- 진입점: “에러는 조기에 발견되어야 한다” → 방어적 설계 철학
- 종료점: “에러는 모아서 한 번에 처리하자” → 낙관적 설계 철학
- 단계 사이: “에러는 발생한 맥락에서 처리하자” → 맥락적 설계 철학
내가 배운 것
- 실무에서는 단계 사이 + 종료점의 하이브리드가 가장 효과적이다. 각 단계에서는 **치명적 에러(Fatal Error)**만 즉시 처리하고, **복구 가능한 에러(Recoverable Error)**는 종료점으로 모은다.
- 에러 경계의 위치는 팀의 성숙도와도 관련이 있다. 초기에는 진입점(방어적)이 안전하고, 성숙할수록 단계 사이(맥락적)로 이동한다.
질문과 의문
- 에러 경계를 동적으로 조정할 수 있다면? (예: 시스템 부하에 따라 경계 위치 변경)
- “에러가 없는 파이프라인”보다 “에러가 예측 가능한 파이프라인”이 더 좋은가?
실행할 것
- 현재 프로젝트의 파이프라인에서 **에러 경계 맵(Error Boundary Map)**을 그려보자.
- 각 단계에서 발생 가능한 에러를 Fatal / Recoverable / Ignorable로 분류하는 태스크를 생성하자.