一键导入
sentry-noise-filter
Sentry에 잡힌 환경/브라우저/외부 의존성 발 노이즈 에러를 필터링한다. 사용자가 "Sentry 노이즈", "Sentry 에러 필터", "이 에러 무시", "Sentry에 자꾸 뜨는 X 막아줘" 등을 요청할 때 발동한다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Sentry에 잡힌 환경/브라우저/외부 의존성 발 노이즈 에러를 필터링한다. 사용자가 "Sentry 노이즈", "Sentry 에러 필터", "이 에러 무시", "Sentry에 자꾸 뜨는 X 막아줘" 등을 요청할 때 발동한다.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
프로젝트 구조와 네이밍 컨벤션에 맞게 새 React 컴포넌트를 추가하는 가이드
PDF(인쇄 레이아웃) 및 Excel(xlsx 동적 로딩) 파일 내보내기 구현 및 갱신 패턴 가이드
Gemini 3.1 Flash Lite API를 사용한 계기판 OCR 및 증빙 서류 AI 판별 연동 패턴 가이드
React 단위 테스트(Vitest) 및 E2E 테스트(Playwright) 작성 컨벤션과 Mocking 가이드
Cloud Functions, 프론트엔드 빌드 및 배포 시 발생하는 다양한 오류(Node 버전, 의존성 충돌, 소스맵)의 해결 패턴을 모아둔 가이드.
functions/src/ 디렉터리에 새 Cloud Function을 추가하고 index.ts에 등록하는 패턴 가이드
| name | sentry-noise-filter |
| description | Sentry에 잡힌 환경/브라우저/외부 의존성 발 노이즈 에러를 필터링한다. 사용자가 "Sentry 노이즈", "Sentry 에러 필터", "이 에러 무시", "Sentry에 자꾸 뜨는 X 막아줘" 등을 요청할 때 발동한다. |
차량 운행일지 프로젝트에서 가장 빈번한 보수 작업 중 하나. 최근 30개 커밋 중 5건 이상이 "Sentry 노이즈 필터링" 관련이다. 단순해 보이지만 "앱 버그"와 "환경 노이즈"의 판단이 핵심이며, 잘못 필터링하면 진짜 버그가 묻힌다.
필터링 전에 "정말 앱 버그가 아닌지" 한 번 더 검증한다. 잘못 필터링하면 회귀를 못 잡는다. 다음 중 하나에 해당할 때만 필터링:
코드로 고칠 수 있거나 빈도가 낮으면 고치는 게 우선이다. 필터는 최후의 수단.
세 곳 중 한 곳을 고른다:
(A) ignoreErrors 배열 — 에러 메시지 정확/정규식 매칭으로 차단:
ignoreErrors: [
// ... 기존 항목 ...
// [추가 이유 한 줄: 환경 이슈/외부 SDK/등]
/새-에러-정규식/,
],
문자열 그대로 포함 매칭하려면 '에러 메시지 일부' (따옴표 문자열), 패턴이면 정규식.
(B) denyUrls 배열 — 특정 URL/스택트레이스 출처 차단 (브라우저 확장 등):
denyUrls: [
/extensions\//i,
/^chrome-extension:\/\//i,
// ...
],
(C) beforeSend 훅 — 메시지만으로 안 잡히는 복잡한 케이스 (스택프레임 검사, DOMException 코드 등):
beforeSend(event) {
if (import.meta.env.DEV) return null;
// 새 조건: 짧은 이유 주석 (필수)
const errorMsg = event.exception?.values?.[0]?.value || '';
if (/패턴/.test(errorMsg)) return null;
return event;
},
선택 기준:
Functions 측은 Sentry.init 옵션에 ignoreErrors/beforeSend를 추가할 수 있지만, 현재 구현은 모든 에러를 captureError(err, ctx) 헬퍼를 통해 명시적으로 전송하는 구조다. 즉 호출자가 try/catch에서 노이즈를 판단해 captureError를 호출하지 않으면 된다.
Functions에서 노이즈 필터가 필요한 경우 두 가지 패턴:
captureError를 건너뛴다.
try { /* ... */ } catch (err) {
if (isExpectedTransientError(err)) {
console.warn("transient, skip sentry", err);
return;
}
captureError(err, { context });
throw err;
}
sentry.ts의 getSentry().init에 beforeSend 추가 — 광범위한 패턴일 때만.선택 기준: 특정 함수에 국한된 노이즈면 (1), 시스템 전반에 퍼진 패턴이면 (2).
/error/i는 금지). 가능한 한 좁게.npm run type-check로 정규식·문자열 오타 없는지 확인.chore: sentry [필터-주제] 노이즈 필터링 추가 또는 fix: suppress sentry [주제].src/lib/sentry.ts의 기존 항목을 카테고리별로 확인 후 중복 추가 방지:
같은 카테고리의 유사 패턴이면 기존 항목 옆에 묶어서 추가.
/user-[a-z0-9]+ failed/) — 운영에서 깨짐/.*error.*/i 같은 광범위 패턴 — 진짜 버그 같이 묻힘