Sentry-javascript: *λͺ¨λ“ * λΈŒλΌμš°μ €μ— λ‚΄μž₯된 μ›μˆ­μ΄ νŒ¨μΉ˜κ°€ ν•„μš”ν•©λ‹ˆκΉŒ?

에 λ§Œλ“  2017λ…„ 04μ›” 27일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: getsentry/sentry-javascript

https://blog.sentry.io/2016/01/04/client-javascript-reporting-window-onerror.html μ—μ„œ μ†Œκ°œλ₯Ό 읽고 raven의 μ†ŒμŠ€ μ½”λ“œλ₯Ό λ³΄λŠ” 것은 onerror 주어진 λΈŒλΌμš°μ €(예: chrome/FF)κ°€ 였λ₯˜ 개체λ₯Ό μ œκ³΅ν•˜λ”λΌλ„ μŠ€νƒ 좔적을 κ²€μƒ‰ν•˜κΈ° μœ„ν•΄ λͺ¨λ“  λ‚΄μž₯ κΈ°λŠ₯을 try/catch둜 νŒ¨μΉ˜ν•˜λŠ” μ›μˆ­μ΄λ‘œ?

λ‚˜μ—κ²ŒλŠ” λΈŒλΌμš°μ €κ°€ ν•„μš”ν•˜μ§€ μ•Šμ€ 경우 λΆˆν•„μš”ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ„λ‘ ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. μ•„λ‹ˆλ©΄ κΉŒλ§ˆκ·€κ°€ 이것을 λ³΄μ¦ν•˜λŠ” λ‹€λ₯Έ 일을 ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?

νŽΈμ§‘ : μ•„λ§ˆλ„ κΉŒλ§ˆκ·€ λ…Έλ“œμ— λŒ€ν•΄ μˆ˜ν–‰ν•˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

μ΅œμ†Œν•œ "였λ₯˜ κ°œμ²΄κ°€ ν•„μš”ν•©λ‹ˆλ‹€"에 κ΄€ν•œ 것은 μ•„λ‹™λ‹ˆλ‹€. μ–΄λ–€ κ²½μš°μ—λŠ” μ‚¬μš© κ°€λŠ₯ν•œ 였λ₯˜κ°€ λ‹¨μˆœνžˆ μ‚¬μš©ν•  수 μ—†μœΌλ©° μ—¬κΈ°μ—λŠ” Firefox와 같은 μ΅œμ‹  λΈŒλΌμš°μ €κ°€ ν¬ν•¨λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 전체 μŠ€νƒμ„ ν¬ν•¨ν•˜μ§€ μ•Šκ±°λ‚˜ μ„ΈλΆ€ 정보(예: μ—΄ 번호)κ°€ λˆ„λ½λ  수 μžˆμŠ΅λ‹ˆλ‹€.

이것이 μ˜€λŠ˜λ‚ μ—λ„ μ™„μ „νžˆ 사싀인지 ν™•μ‹€ν•˜μ§€ μ•Šλ‹€λŠ” μ μ—μ„œ 큰 λ³„ν‘œκ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κ·Έλ ‡κ²Œ μ˜€λž˜λ˜μ§€λŠ” μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

tl;dr 예츑 κ°€λŠ₯ν•œ λ™μž‘μ„ 보μž₯ν•œ λ‹€μŒ λΈŒλΌμš°μ €κ°€ λ³€κ²½/특이점이 μ—†λŠ” μ²™ν•˜λŠ” 데 ν•΄κ°€ λ˜λŠ” 것은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

μ΄λŠ” λ™μΌν•œ 였λ₯˜κ°€ μ„œλ‘œ λ‹€λ₯Έ λΈŒλΌμš°μ €μ—μ„œ μ •ν™•νžˆ λ™μΌν•œ μŠ€νƒ 좔적을 λ°œμƒν•˜λ„λ‘ ν•˜μ—¬ μ„œλ‘œ λ‹€λ₯Έ λΈŒλΌμš°μ €μ—μ„œ λ™μΌν•œ 문제의 μ—¬λŸ¬ λ°œμƒμ„ ν•¨κ»˜ μ •ν™•ν•˜κ²Œ κ·Έλ£Ήν™”ν•  수 μžˆλ„λ‘ ν•˜λŠ” 데 주둜 ν•„μš”ν•©λ‹ˆλ‹€. 이것은 λ˜ν•œ ꡐ차 좜처 μŠ€ν¬λ¦½νŠΈκ°€ 였λ₯˜λ₯Ό λ°œμƒμ‹œν‚¬ λ•Œ "슀크립트 였λ₯˜" 이상을 μ–»λŠ” 방법과 관련이 있으며( 이에 λŒ€ν•œ Ben의 λΈ”λ‘œκ·Έ κ²Œμ‹œλ¬Ό μ°Έμ‘°) 이 λ„κ΅¬μ—μ„œ μžλ™ 이동 경둜 쀑 일뢀λ₯Ό μˆ˜μ§‘ν•©λ‹ˆλ‹€.

κ·Έ λͺ¨λ“  것은 μ œμ³λ‘κ³ , κ·€ν•˜κ°€ μ„€λͺ…ν•˜λŠ” 잠재적인 "λΆˆν•„μš”ν•œ μž‘μ—…"은 극히 λ―Έλ―Έν•˜λ©°, window.onerror λ™μž‘μ„ κ°μ§€ν•˜λŠ” κΈ°λŠ₯은 κΉ”λ”ν•˜κ²Œ μˆ˜ν–‰ν•˜κΈ° μ–΄λ ΅κ³ , μš°λ¦¬λŠ” μ–΄λ–€ λΈŒλΌμš°μ €μ— λŒ€ν•œ μ΅œμ‹  맀트릭슀λ₯Ό μœ μ§€ν•˜λ €κ³  ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 버전은 λŒ€μ‹  λͺ¨λ“  λΈŒλΌμš°μ €μ—μ„œ μ •κ·œν™”ν•  수 μžˆμ„ λ•Œ window.onerror λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

try/catch μ—†μ΄λŠ” 였λ₯˜κ°€ μ•„λ‹Œ κ°œμ²΄κ°€ throwλ˜λŠ” 경우(예: throw "error" ) "ν•©μ„± 좔적"을 생성할 수 μ—†λ‹€λŠ” 점을 μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€. ν•©μ„± 좔적을 톡해 잘λͺ»λœ κ°œμ²΄κ°€ λ°œμƒν•œ μœ„μΉ˜λ₯Ό 확인할 수 있으며 μ΄λŠ” 버그λ₯Ό μΆ”μ ν•˜λŠ” 데 μ€‘μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰