νλ‘ νΈμλμμ κ°λ° λ° μ΄μμ νλ κ³Όμ μμ λ°μνλ μλ¬λ₯Ό λͺ¨λν°λ§νλ λ°©λ²μ λ€μνλ€. νμ¬ μ°λ¦¬ νμ¬λ νλ‘ νΈμλμ λλ²κΉ ν΄λ‘ μΌνΈλ¦¬λ₯Ό μ¬μ©νκ³ μμ΄μ κ°λ¨ν μκ°νλ €κ³ νλ€.
μΌνΈλ¦¬λ μΉ, λͺ¨λ°μΌ μ±, κ²μλ±μ λ€μν μ ν리μΌμ΄μ μμ λ°μνλ μ€λ₯λ₯Ό μ€μκ°μΌλ‘ μΆμ νκ³ λΆμνμ¬ μμΈ‘ κ°λ₯ν μ€λ₯μ μμΈ‘ λΆκ°λ₯ν μ€λ₯λ€μ λν΄ νμ§λ₯Ό μν ν΄μ΄λ€. μ²μμλ μ€ν μμ€ νλ‘μ νΈλ‘ μμνμμΌλ νμ¬λ ν΄λΌμ°λ κΈ°λ° μλΉμ€μ μ¨νλ λ―Έμ€ μ€μΉ λ²μ μ λͺ¨λ μ 곡νλ€. μΌνΈλ¦¬λ₯Ό μ νμ©νμ¬ κ³ κ°λ€μκ² λ λμ νμ§μ μλΉμ€λ₯Ό μ 곡ν μ μλ€.
μΌνΈλ¦¬μ κ°λ ₯ν κΈ°λ₯λ€
1. μλ¬ λͺ¨λν°λ§
μ ν리μΌμ΄μ μμ λ°μνλ λͺ¨λ μλ¬λ₯Ό μλμΌλ‘ κ°μ§νκ³ κΈ°λ‘νμ¬ κ°λ°μκ° μ΄λ€ μλ¬κ° λ°μνλμ§ λ°λ‘ μ μ μλλ‘ λμμ€λ€.
2. μ€μκ° μλ¦Ό & μλ¦Ό μ±λ μ§μ
μλ¬κ° λ°μνλ©΄ κ°λ°μμκ² μ΄λ©μΌ, μ¬λ, ν λ κ·Έλ¨ λ±μ λ€μν μ±λμ ν΅ν΄ λ°λ‘ μλ¦Όμ 보λΈλ€.
3. μλ¬ λλ²κΉ
μλ¬κ° λ°μν μ½λμ ꡬ체μ μΈ μμΉμ μ€ν νΈλ μ΄μ€(stack trace)λ₯Ό μ 곡νμ¬ λ¬Έμ λ₯Ό λΉ λ₯΄κ² μ°Ύκ³ μμ ν μ μλλ‘ λμμ€λ€. μλ¬ λ°μ μμ μ 컨ν μ€νΈ(ex: μ¬μ©μ μ 보, νκ²½ λ³μ λ±λ±)λ₯Ό μ 곡νμ¬ λ κΉμ λΆμμ΄ κ°λ₯νλ€.
4. μ΄μ νΈλνΉ
λμΌν μλ¬κ° λ°λ³΅λ κ²½μ° νλμ μ΄μλ‘ λ¬Άμ΄ κ΄λ¦¬ν μ μλ€. μ΄λ₯Ό ν΅νμ¬ μ€λ³΅λ μλ¬ λ¦¬ν¬νΈλ₯Ό μ€μ΄κ³ μ€μν λ¬Έμ μ μ§μ€ν μ μλ€.
5. μ±λ₯ λͺ¨λν°λ§
μλ¬ λͺ¨λν°λ§ μΈμλ μ ν리μΌμ΄μ μ μ±λ₯μ λͺ¨λν°λ§νμ¬ μ±λ₯ μ νλ₯Ό κ°μ§νκ³ ν΄κ²°ν μ μκ² λμμ€λ€.
6. λ€μν νλ«νΌ λ° μ±λ μ§μ
λ€μν νλ‘κ·Έλλ° μΈμ΄μ νλ μμν¬λ₯Ό μ§μνλ©°, Github, Jira, GitLab λ± μ¬λ¬ κ°λ° λꡬμμ ν΅ν©μ΄ κ°λ₯νλ€.
κ°λ¨ν μ¬μ© λ°©λ²
1. Install (Sentry/react)
npm install --save @sentry/react
2. Import sentrt/react & Sentry.init()
import { createRoot } from "react-dom/client";
import { createBrowserRouter } from "react-router-dom";
import React from "react";
import * as Sentry from "@sentry/react";
import App from "./App";
Sentry.init({
dsn: "https://e3aa9eb8f92a5b7579282df0f9390ff5@o4505825278820352.ingest.us.sentry.io/4505825300905984",
integrations: [
// See docs for support of different versions of variation of react router
// https://docs.sentry.io/platforms/javascript/guides/react/configuration/integrations/react-router/
Sentry.reactRouterV6BrowserTracingIntegration({
useEffect: React.useEffect,
useLocation,
useNavigationType,
createRoutesFromChildren,
matchRoutes
}),
Sentry.replayIntegration()
],
// Set tracesSampleRate to 1.0 to capture 100%
// of transactions for performance monitoring.
tracesSampleRate: 1.0,
// Set `tracePropagationTargets` to control for which URLs distributed tracing should be enabled
tracePropagationTargets: ["localhost", /^https:\/\/yourserver\.io\/api/],
// Capture Replay for 10% of all sessions,
// plus for 100% of sessions with an error
replaysSessionSampleRate: 0.1,
replaysOnErrorSampleRate: 1.0,
});
const container = document.getElementById(“app”);
const root = createRoot(container);
root.render(<App />);
3. Sentry Adminμ ν΅ν μ΄λ²€νΈ λ‘κ·Έ νμΈ
πΈ μΆμ² πΈ
'React' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ React ] Chart UI ꡬνμ μν React λΌμ΄λΈλ¬λ¦¬ μ 리 (0) | 2024.06.23 |
---|---|
Reactμ μνκ΄λ¦¬ λΌμ΄λΈλ¬λ¦¬, Zustandμ λν κ°λ΅ μ 리κΈ. (0) | 2024.06.02 |
[ React ] Suspenseλ 무μμΌκΉ? (0) | 2023.07.16 |
[ Next.js ] Next13μμ 컀μ€ν Font μΈν νκΈ°. (App Router κΈ°μ€) (0) | 2023.06.20 |
[ Next.js ] Next13μ μ£Όμ κΈ°λ₯μ λν΄ μμ보μ. (0) | 2023.06.05 |