[질문] 웹 프로젝트 구성 시 클라이언트 에러 디버깅과 추적 방안

in kr •  8 years ago 

안녕하세요.
@nhj12311입니다.
오늘은 벼르고 별러왔던 질문 글을 하나 투척하려고 합니다.
저는 지금 업무 상 웹 프로젝트를 진행하고 있습니다.
다름 아닌 다양한 클라이언트 에러에 어떻게 대응하느냐입니다.
저와 프로젝트 수행사 AA와의 업무 대화내용입니다.

@nhj12311 : 클라이언트에서의 에러 발생 시 대응 및 추적이 필요합니다.
AA : ?? 클라에서 발생하는 걸 어떻게 말이죠?
@nhj12311 : 브라우저나 앱 클라에서 발생하는 에러를 캐치해서 서버에 전송하면 되지 않겠습니까?
AA : ??? 클라에서 오류가 나면 전송자체가 안될텐데요.
@nhj12311 : 전송이 안되는 상황은 어쩔수 없습니다. 전송이 되는 상황에서의 에러 추적, 대응을 하자는 이야기입니다.
AA : ???
@nhj12311 : 다음에 다시 말씀드리겠습니다.

이 AA 분은 벡엔드 전문 AA 분이신거 같아서 다음 기회에 다시 이야기 하기로 하고 대화를 접었습니다. 그리고 이곳에 한번 물어보자라고 생각을 하고 있었습니다. 저도 이전 포스팅에서 말한바가 있지만 웹 프로젝트 경험이 적습니다. 여곳에 계신 분들중엔 경험이 많으신 분들이 계실 것입니다. 제가 프로젝트 공통 스크립트로 생각하는 코드는 아래의 간단한 코드입니다.

<script>
  window.onerror = function(e){
    // 서버에 에러 저장하는 코드 구현
  } 
</script>  


클라이언트는 다양한 os와 브라우저를 가지고 우리 사이트를 이용할 것입니다.
이에 따른 예기치 못한 동작으로서 오류가 발생할 여지가 있습니다.
혹은 다이나믹한 페이지에서 데이터의 문제 등으로도 발생할 여지가 있습니다.

클라이언트에서 발생하는 에러 추적과 디버깅을 위해서 어떤 방안이 있습니까?
위와 같이 모든 스크립트 에러를 캐치하여 서버에 로그를 남기게 되면 어떤 문제가 있을수 있을까요?

많은 분들의 의견 부탁드립니다.
읽어주셔서 감사합니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

프론트엔드 개발경험이 적어 도움이될진 모르겠으나, 저라면 저 이벤트 헨들러에서 에러를 바로 보내지 않고 local storage 에 저장하고, 모인 에러로그를 주기적으로 체크하여 일괄전송 하는 로직을 구동하는 식으로 디자인 할듯 합니다. 서버 부하를 줄이는것도 그렇고, 오류시 네트워크 장애라던지 연속된 익셉션에 의해 로그를 잃지 않을수 있습니다. 딱히 프레임워크를 사용할 필요 없이 Json형태로 바로 서버의 REST 인터페이스로 포스팅 하면 될듯 하네요.

  ·  8 years ago (edited)

좋은 생각이신것 같습니다. 안그래도 에러시 마다 전송하는건 부담스럽다고 생각중이었습니다~

  ·  8 years ago (edited)

Sentry.io 라는 도구가 있습니다. WEB(FE, BE) & Application 등에 가능합니다.
자바스크립트 : https://docs.sentry.io/clients/javascript/
FE, BE 모두 같은 Interface 로 로깅, 이슈트래킹이 가능할것 같네요...

감사합니다. 검색해보니 나오긴 하더군요 ~ 혹시 도입해보신적이 있으신가요?

Django 프로젝트에서 써 본적은 있습니다.
로깅 + 뷰어 + 이슈 트래킹 등등이 가능합니다.
무료로 쓸 수 있는 기간도 있으니 참고해 보세요...

넵 감사합니다~