프론트엔드에서의 오류
서비스의 에러 로그를 수집하는 방법으로는 백엔드의 로그 트래킹을 하는 방법이 있다. 하지만 이는 백엔드에서 주관하고 있기 때문에 서버 에러에 대한 로그가 중점으로 기록되게 한다.
SSR으로만 이루어진 서비스라면 위와 같은 방법으로도 서버의 로그만으로도 충분한 정보를 얻을 수도 있으나, CSR으로 이루어진 서비스 혹은 SSR + CSR의 조합으로 이루어진 서비스라면 클라이언트 단에서 발생하는 이슈를 파악하기가 어렵다.
클라이언트에서 발생하는 오류는 브라우저의 개발자 도구 콘솔에서 확인하거나, 오류가 발생하는 사용자의 디바이스와 동일한 조건의 디바이스에서 재현하며 원인을 파악할 수 있다. 하지만 사용자가 가지고 있는 디바이스나 버전은 매우 다양하고, 오류가 발생할 때마다 디바이스를 확보하는 것은 현실적인 어려움이 많다. 또한 개발자 도구만으로 파악하기 어려운 오류도 충분히 발생할 수 있고 이러한 모든 과정들은 장애 파악과 해소를 더디게 하여 장애 발생시간이 길어지게 만들 수도 있다.
프론트엔드에서의 오류 추적 도구: Sentry
Sentry는 실시간 로그 취합 및 분석 도구이자 모니터링 플랫폼으로 다양한 기업에서 오류를 추적하기 위해 채택한 솔루션이다.
Sentry의 특징
- 이벤트 로그에 대한 다양한 정보 제공
- Exception & Message: 이벤트 로그 메시지 및 코드 라인 정보
- Device: 이벤트 발생 장비 정보 (name, family, model, memory 등)
- Browser: 이벤트 발생 브라우저 정보 (name, version 등)
- OS: 이벤트 발생 OS 정보 (name, version, build, kernelVersion 등)
- Breadcrumbs: 이벤트 발생 과정
- 비슷한 오류 통합
- Sentry는 Issue Grouping 기능으로 비슷한 이벤트 로그를 하나의 이슈로 통합합니다. 이는 비슷한 오류를 파악하고 추적하는 데 큰 도움이 된다.
- 다양한 플랫폼 지원
- 프론트엔드 뿐만 아니라 .NET, Android, Apple(Cocoa), Go, Java, Kotlin, Python 등의 다양한 플랫폼을 지원한다.
- 다양한 알림 채널 지원
- 발생한 이슈에 대해 실시간으로 알림을 받을 수 있도록 Slack, Teams, Jira, GitHub 등 다양한 채널을 지원한다.