포스트

자바스크립트 클라이언트 사이드 오류를 서버에 기록하는 방법

문제 상황 정의

자바스크립트는 웹 브라우저에서 실행되는 클라이언트 사이드 언어입니다. 이러한 환경에서 발생하는 오류는 일반적으로 사용자의 브라우저 콘솔에서만 확인할 수 있습니다. 그러나 이러한 정보는 웹 개발자에게 중요한 정보를 제공하므로 서버에 기록하려는 필요가 있습니다.

서버에 오류 기록을 위한 방법

AJAX를 사용한 오류 전송

자바스크립트에서 window.onerror 함수를 사용하면 오류가 발생했을 때 해당 정보를 캡처할 수 있습니다. 이 정보를 AJAX를 사용하여 서버에 전송하면 됩니다. AJAX란 비동기적으로 서버와 데이터를 주고받을 수 있는 기술입니다.

1
2
3
4
5
6
7
8
9
10
window.onerror = function(message, source, lineno, colno, error) {
  var data = {
    message: message,
    source: source,
    lineno: lineno,
    colno: colno,
    error: error
  };
  // AJAX를 이용해 서버에 데이터 전송
};

서버에서의 로깅 설정

서버 측에서는 전송받은 오류 정보를 데이터베이스나 로그 파일에 저장하면 됩니다. 예를 들어, Node.js에서는 다음과 같이 처리할 수 있습니다.

1
2
3
4
5
app.post('/log_error', function(req, res) {
  // 여기서 req.body는 클라이언트로부터 전송받은 오류 정보입니다.
  console.log(req.body);
  res.status(200).send("Logged successfully");
});

주의사항

  • window.onerror는 모든 오류를 캡처하지 않습니다. 이벤트 리스너나 프라미스 내부의 오류는 별도로 처리해야 합니다.
  • 보안 문제: 사용자로부터 받은 데이터는 신뢰할 수 없으므로 서버에서 적절히 검증해야 합니다.

마무리

클라이언트 사이드에서 발생하는 자바스크립트 오류를 서버에 로깅하는 것은 웹 애플리케이션의 안정성을 높이고 문제를 빠르게 파악하는 데 도움이 됩니다. window.onerror 및 AJAX를 활용하면 이 과정을 간편하게 설정할 수 있습니다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.