[Sentry] 1. Sentry란?

조용원숭이·2023년 7월 16일
3

Sentry

목록 보기
1/2
post-thumbnail

문화복지카드 사용처 검색 서비스를 거의 마무리 짓던 도중, 여러 IT 기업 테크니션 블로그랑 몇몇 깃헙 프로젝트를 둘러보니 Sentry라는 툴을 사용하는 것을 보았다.
처음엔 무슨 툴인지 보고 있었는데, 찾아보니 에러 및 퍼포먼스 Monitoring을 도와주는 툴인것을 확인할 수 있었다. (!)

사실 그렇게 규모가 큰 프로젝트가 아니라 이걸 굳이 도입해야하나 망설였지만, 추후에 진행할 프로젝트의 규모가 이전 프로젝트보다 규모가 큰 것을 고려했다. 또한 이번에 도입을 망설이면 배울 기회가 없을 것 같아서 이 기회에 Sentry를 도입을 하고 프로젝트를 마무리 짓기로 결심했다.

아직 Sentry 공식 문서가 한국어를 지원하지 않고, 국내에 관련 기술 문서들이 없어서 공부하는 데 애를 먹겠지만, 그래도 우리에겐 구글과 파파고가 있기 때문에 영어 공부도 하는 겸 직접 번역해보면서 개념에 대해 공부했다.

1. Sentry란? 🧐

Start Monitoring Today.
Sentry helps over 4M developers and 90K organizations see what actually matters, solve errors and performance issues quicker, and learn continuously about their application health - from the frontend to the backend.

오늘부터 모니터링하세요.
Sentry는 Frontend부터 Backend까지 400만 이상의 개발자와 9만 개가 넘는 조직들이 무엇이 그들의 문제인지 확인하고, 에러와 성능 이슈들을 빠르게 해결하며, 그들의 어플리케이션 건강에 대해 지속적으로 학습할 수 있도록 도와줍니다.

ref: Sentry 공식 홈페이지 (Sentry.io)

정리하자면, Sentry를 사용하는 주요 이유는 에러 및 서비스 퍼포먼스 모니터링이다.

2. Sentry 작동 방식 ⚙️


ref: Sentry.io - The Sentry Workflows

Sentry 공식 문서에 따르면, Sentry Workflow는 총 3개의 프로세스로 분류된다.

1. Alert (Install, Alert)

처음 서비스에 Sentry SDK를 설치하고 Configuration을 마치면, 개발자는 다음과 같은 기능을 제공받는다.

  1. 각 에러들의 발생 및 사용자의 에러 직면 횟수
  2. 스택 추적을 통한 연관된 에러 그룹화 및 Error Notification 프로세스 능률화

2번의 Error Notification 프로세스 능률화 를 통해 Slack, Jira와 같은 협업 툴과 연동하여 에러를 실시간으로 확인할 수 있다.

2. Triage (Triage, Snooze, Discard, Assign)

발생한 이슈에 대해 중요도를 설정하고 담당자를 할당하는 단계이다.

이슈 상태에 대해 선행하여 정의하고, 에러를 resolved, unresolved, muted 로 분류함으로써 Triage 프로세스를 촉진시킨다.
또한 이슈가 발생한 환경(ex: Browser, Devices, Environments, etc...) 정보를 제공한다.

Sentry는 Source Code Management Platforms(ex: GitHub, GitLab, Bitbucket, etc...) 과 심층적으로 통합한다. 그리고 해당 에러와 밀접한 Commit들을 보여주고, 해당 에러나 이슈를 즉시 해결할 수 있는 담당자를 제안한다.
위 과정에서 Sentry는 Source Map과 연동하여 릴리즈 환경에서도 소스 코드의 어느 라인에서 에러가 발생했는지 보여준다.

3. Resolve (Resolve, Deploy)

Triage 단계에서 이슈를 할당받은 담당자는 Sentry를 통해 이슈를 해결하기 위한 Context등을 제공받았고, 해당 이슈를 해결하여 Deploy Pipeline을 통해 배포를 수행한다.


도입하기 전 Sentry에 대한 간단한 개념을 정리했다. 이렇게 적어놓고 보니 너무 매력있는 툴인 것 같다. 사실 이번 프로젝트에서 코드 내에서 에러를 잡는 것은 정말 쉬운 일이지만, 개발자가 실서비스 내에서 발생할 수 있는 모든 오류에 대해 고려하는 것은 진짜 어려운 일이라는 것을 느꼈다.
궁극적으로 개발은 개발자 관점이 아닌 사용자 관점에서 바라봐야 한다는 것을 다시 한 번 상기시켜주고, 역시 열심히 공부하는 것만이 답이라는 것을 느꼈다.

다음 글은 Sentry 초기 설정에 대해 설명하는 글이 될 것 같다!
(잘못된 정보 지적 환영합니다.)

2개의 댓글

comment-user-thumbnail
2023년 7월 23일

현업에서는 실서비스 올렸을때 버그가 발생하면 정확한 원인을 알기 힘들기 때문에(유저가 저희가 원하는 정보를 제공할 확률이,, 🫠) Sentry를 사용한다고 합니다. 글 잘 읽었습니다!

1개의 답글