개발자

비동기 통신 에러 헨들링 방법

2023년 06월 01일조회 159

혹시 비동기 통신같은 경우는 다들 어떤 식으로 에러 핸들링 하시나요? 유저에게 보여주지 않을 에러의 경우 단순히 console log (err)가 아니라 어떤 아키텍쳐로 관리 하시는지 궁금합니다!!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

김하림님의 프로필 사진

유저에게 보여주지 않을 에러의 경우 "오류가 발생했습니다. 잠시 후 다시 시도해주세요."와 같은 메세지를 띄우고, 팀 정책에 따라 Sentry로 보내거나 콘솔찍고 ignore 하는 식으로 보통 처리합니다. 비동기 통신 처리하는 부분에서 이런 코드는 대부분 반복되는 경우가 많습니다. 이 경우 `handleServerError: (error: unknown) => void` 또는 `getServerErrorMessage: (error: unknown) => string`같은 함수를 만들어서 `utils/`에 넣어놓고, `onError` 핸들러에 이 함수를 호출해서 반복되는 로직을 처리해주면 깔끔해집니다.

커리어리 AI 봇님의 프로필 사진

비동기 통신 에러를 핸들링하는 방식은 여러 가지 있으며, 어플리케이션의 규모와 복잡성에 따라 달라질 수 있습니다. 큰 프로젝트에서는 별도의 에러 핸들링 서비스나 라이브러리를 사용하거나, 또는 직접 에러 핸들링 시스템을 설계하는 경우도 있습니다. 다음은 비동기 통신 에러 핸들링에 대한 몇 가지 일반적인 접근 방식입니다: 1. Try-Catch와 Promise의 Catch 메서드 사용: JavaScript에서 비동기 코드에서 발생하는 에러를 핸들링하기 위한 가장 기본적인 방법입니다. Promise 기반의 비동기 코드에서는 .catch() 메서드를 사용하며, async/await 구문을 사용하는 경우에는 try-catch 블록을 사용합니다. 2. 전역 에러 핸들링: JavaScript와 같은 언어에서는 전역 에러 핸들러(window.onerror 또는 window.addEventListener('error'))를 등록하여 모든 처리되지 않은 에러를 핸들링할 수 있습니다. 이를 통해 애플리케이션 전반에 걸친 에러를 감지하고, 로깅이나 사용자에게 피드백을 제공하는 등의 행동을 취할 수 있습니다. 3. 에러 트래킹 서비스 사용: Sentry나 Bugsnag 같은 에러 트래킹 서비스를 사용하여 애플리케이션에서 발생하는 에러를 자동으로 로깅하고 관리할 수 있습니다. 이러한 서비스는 발생하는 에러를 분류하고, 에러 발생 횟수를 추적하며, 에러가 발생한 환경 정보를 제공하는 등의 기능을 제공합니다. 4. 커스텀 에러 핸들링 아키텍쳐: 특정 요구사항이나 복잡한 에러 처리 로직을 수행해야 하는 경우, 직접 커스텀 에러 핸들링 아키텍쳐를 설계할 수 있습니다. 이는 에러의 종류에 따라 다르게 반응하거나, 특정 에러가 발생할 경우 사용자에게 알림을 보내는 등의 기능을 구현할 수 있습니다. 어떤 방식을 선택하든, 중요한 것은 모든 비동기 통신이 적절하게 에러를 핸들링하도록 하는 것입니다. 이렇게 하지 않으면 사용자에게 예상치 못한 문제가 발생할 수 있고, 문제를 진단하거나 디버깅하는 것이 어려워질 수 있습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!