Sentry-javascript: ํŒจํ‚ค์ง€ ํฌ๊ธฐ๊ฐ€ ์—„์ฒญ๋‚˜๋‹ค

์— ๋งŒ๋“  2020๋…„ 06์›” 30์ผ  ยท  12์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: getsentry/sentry-javascript

ํŒจํ‚ค์ง€ + ๋ฒ„์ „

  • [x] @sentry/browser
  • [ ] @sentry/node
  • [ ] raven-js
  • [ ] raven-node _(๋…ธ๋“œ์šฉ ๋ ˆ์ด๋ธ)_
  • [ ] ๋‹ค๋ฅธ:

๋ฒ„์ „:

5.18.1

์„ค๋ช…

์•ˆ๋…•. ์ตœ๊ทผ์— ๋‚˜๋Š” ๋‚ด ์• ์™„ ๋™๋ฌผ ํ”„๋กœ์ ํŠธ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์กฐ์‚ฌํ–ˆ๊ณ  @sentry/browser์˜ ํฌ๊ธฐ์™€ ๊ทธ ์ข…์†์„ฑ์— ์ถฉ๊ฒฉ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

image

ํŒจํ‚ค์ง€ ํฌ๊ธฐ(https://github.com/getsentry/sentry-javascript/issues/1552)์— ๋Œ€ํ•œ ๋…ผ์˜๊ฐ€ ์ด๋ฏธ ์žˆ์—ˆ๋˜ ๊ฒƒ์œผ๋กœ ๋ณด์ด๋ฉฐ ๋ฌธ์ œ๋Š” ์ˆ˜์ •๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€๋งŒ ์ด๊ฒƒ์€ ๋ฏธ์นœ ๊ฒƒ์ž…๋‹ˆ๋‹ค. @sentry/browser ๋Š” React๋ณด๋‹ค ๋” ๋งŽ์€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค! ๊ทธ ์•ˆ์— ๋งŽ์€ ํ†ตํ•ฉ, ๊ทธ๋ฃนํ™” ๋…ผ๋ฆฌ ๋“ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•˜์ง€๋งŒ ๋น„์šฉ์ด ๋“ค์ง€ ์•Š๋Š” ์ž‘์€ Sentry ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Discussion

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๊ฒƒ์€ v6 ๋กœ๋“œ๋งต์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ•ญ๋ชฉ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. https://github.com/getsentry/sentry-javascript/issues/2817 ์ฐธ์กฐ

v6 ์ด์ „์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ์ž‘๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‚ด๋ถ€ ๋ฆฌํŒฉํ† ๋ง์„ ๋งŽ์ด ํ•ด์•ผ ํ•˜๋ฉฐ, ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ด€์ ์—์„œ ์ค‘๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์–ด์•ผ ํ•˜์ง€๋งŒ(๊ตฌ๋ฌธ, SDK API๋Š” ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋จ), ์˜ˆ๋ฅผ ๋“ค์–ด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ž์ฒด ํ†ตํ•ฉ์„ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ SDK๋ฅผ ๋” ๊ณ ๊ธ‰ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” SDK๋ฅผ ํŠธ๋ฆฌ ํ”๋“ค๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•˜์ง€ ์•Š๋Š” ๋งŽ์€ ๋‚ด๋ถ€ ๊ธ€๋ฃจ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ์ตœ์šฐ์„  ๊ณผ์ œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  12 ๋Œ“๊ธ€

์ด๊ฒƒ์€ Vue.js์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Vue์˜ ํŒŒ์‹ฑ๋œ ํฌ๊ธฐ๋Š” 64.4kB์ธ ๋ฐ˜๋ฉด Sentry๋Š” ๊ฒฐํ•ฉ๋œ 68.0kB(6.1kB Vue ํ†ตํ•ฉ ํฌํ•จ)์ž…๋‹ˆ๋‹ค.

๋™์˜. ํšŒ์‚ฌ๋ฅผ Sentry๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ์žˆ์ง€๋งŒ ์‚ผํ‚ค๊ธฐ ํž˜๋“  ์•ฝ์ด ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค... ๋‚˜๋ฌด๋ฅผ ํ”๋“ค๊ณ ( import { init } from "@sentry/react" ๋ฅผ ํ†ตํ•ด Sentry ๊ฐ€์ ธ์˜ค๊ธฐ) ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด๋„ +66kb๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ฒˆ๋“ค์—์„œ ์••์ถ•ํ•˜๊ธฐ ์ „์— - ๋†€๋ผ์šธ ์ •๋„๋กœ ๋†’์Šต๋‹ˆ๋‹ค!

Bundlephobia๋Š” ๋˜ํ•œ ๊ฝค ํฐ ๊ทœ๋ชจ๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. https://bundlephobia.com/result?p=@sentry/react @5.20.0

์‚ผํ‚ค๊ธฐ ํž˜๋“  ์•Œ์•ฝ...

๋™์˜, 20K gzipped๋Š” ๊ธฐ๋ณธ JS ์˜ค๋ฅ˜ ๋ณด๊ณ  ์ง€์›์„ ๋ฐ›๊ธฐ ์œ„ํ•œ TON์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋˜ํ•œ sentry๊ฐ€ ๋ฒˆ๋“ค์— typescript ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/getsentry/sentry-javascript/issues/2789

์˜ˆ, @sentry ๋Š” ์ด๋ฏธ 94kb๊ฐ€ ์ถ•์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!

์˜คํ•ดํ•˜์ง€ ๋งˆ์„ธ์š”. ์ €๋Š” Sentry๋ฅผ ์‚ฌ๋ž‘ ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๋ช‡ Kb๋ฅผ ๋„˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฑฐ์˜ react-dom๋งŒํผ ํฌ๊ณ  Victory(์šฐ๋ฆฌ์˜ d3 ์ฐจํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ Okta๋ณด๋‹ค ํฌ์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค(๋‚ด ๋‹ค์Œ github ๋ฌธ์ œ๋Š” ์ค‘์ง€ ๐Ÿ˜„ ).

์†Œ์‹์ด ์žˆ๋‚˜์š”? ์˜คํ”ˆํ•œ์ง€ ๊ฑฐ์˜ 3๊ฐœ์›”์ด ๋‹ค ๋˜์–ด๊ฐ€๋Š” ์„ผํŠธ๋ฆฌ ๊ณต์‹ ๋‹ต๋ณ€์ด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๐Ÿ™‚ @kamilogorek @HazAT @lobsterkatie

Screen Shot 2020-10-17 at 12 40 15 PM

5.25 -> 5.26 ์—…๊ทธ๋ ˆ์ด๋“œ์— ๋ช‡ kb๊ฐ€ ๋” ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋Š” ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ํฌ๋ง์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๊ฒƒ์€ v6 ๋กœ๋“œ๋งต์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ•ญ๋ชฉ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. https://github.com/getsentry/sentry-javascript/issues/2817 ์ฐธ์กฐ

v6 ์ด์ „์—๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋” ์ž‘๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‚ด๋ถ€ ๋ฆฌํŒฉํ† ๋ง์„ ๋งŽ์ด ํ•ด์•ผ ํ•˜๋ฉฐ, ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๋ธŒ๋ ˆ์ดํ‚น ์ฒด์ธ์ง€์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ด€์ ์—์„œ ์ค‘๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์–ด์•ผ ํ•˜์ง€๋งŒ(๊ตฌ๋ฌธ, SDK API๋Š” ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋จ), ์˜ˆ๋ฅผ ๋“ค์–ด ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ž์ฒด ํ†ตํ•ฉ์„ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ SDK๋ฅผ ๋” ๊ณ ๊ธ‰ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” SDK๋ฅผ ํŠธ๋ฆฌ ํ”๋“ค๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•˜์ง€ ์•Š๋Š” ๋งŽ์€ ๋‚ด๋ถ€ ๊ธ€๋ฃจ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์ด ์šฐ๋ฆฌ์˜ ์ตœ์šฐ์„  ๊ณผ์ œ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

@HazAT ๊ต‰์žฅํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

1MB ํฌ๊ธฐ ์ œํ•œ์ด ์žˆ๋Š” AWS Lambda @ Edge์—์„œ Sentry๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ข…์†์„ฑ์ด ๋„ˆ๋ฌด ์ปค์ ธ์„œ ํ˜„์žฌ ์œ ์ผํ•œ ์˜ต์…˜์€ sentry/node ์˜ ์ด์ „ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ๋“  ํ•ด๊ฒฐ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@aleehedl ์šฐ๋ฆฌ๋Š” Sentry ํŒจํ‚ค์ง€๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ๊ณ„์ธต๊ณผ ํ•จ๊ป˜ Sentry๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” AWS Lambda์šฉ ์ƒˆ๋กœ์šด ์†”๋ฃจ์…˜์„ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค. ๋ ˆ์ด์–ด์˜ ํฌ๊ธฐ๋Š” 1MB๋ณด๋‹ค ํ›จ์”ฌ ์ž‘์Šต๋‹ˆ๋‹ค.

v6.0.0 ์ด ์˜ค๋Š˜ ์ถœ์‹œ๋˜์—ˆ์ง€๋งŒ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฒˆ๋“ค ํฌ๊ธฐ ๊ฐ์†Œ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด webpack ๋ฒˆ๋“ค์€ v6์—์„œ 615๋ฐ”์ดํŠธ ๋” ์ปค์กŒ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด v7(?)๋กœ ํ‘ธ์‹œ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด v7(?)๋กœ ํ‘ธ์‹œ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ˆ. ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ธ์…˜์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ์ฃผ์š” ๋ฒ”ํ”„๊ฐ€ ํ•„์š”ํ–ˆ์œผ๋ฉฐ(ํ•ด๋‹น ๋ณ€๊ฒฝ ๋กœ๊ทธ ํ•ญ๋ชฉ ์ฐธ์กฐ) ์ด์ œ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด v7์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰