ScopedValue

  • Java 21์—์„œ ๋„์ž…๋œ ScopedValue๋Š” ThreadLocal์˜ ๋Œ€์•ˆ์œผ๋กœ, ํŠน์ • ์Šค๋ ˆ๋“œ ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ’์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„
  • ์ด๋Š” ํŠนํžˆ ๊ฐ€๋ณ€์„ฑ(mutation) ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋ฉด์„œ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์„ ๊ฐ€๋Šฅ

ํŠน์ง•

  • Immutability: ํ•œ ๋ฒˆ ์„ค์ •๋˜๋ฉด ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ
  • Context Bound: ํŠน์ • ๋ฒ”์œ„(์Šค์ฝ”ํ”„) ๋‚ด์—์„œ๋งŒ ์œ ํšจ
  • Thread Safety: ThreadLocal๊ณผ ๋‹ฌ๋ฆฌ ๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ•˜์—ฌ ๋™์‹œ์„ฑ ์ด์Šˆ ๊ฐ์†Œ
  • GC ์นœํ™”์ : ๋ถˆํ•„์š”ํ•œ ์ฐธ์กฐ๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š์Œ

ThreadLocal ์ฐจ์ด

ํŠน์ง•ScopedValueThreadLocal
๋ณ€๊ฒฝ ์—ฌ๋ถ€ImmutabilityMutable
GCScope ์ข…๋ฃŒ์‹œ๋ช…์‹œ์  ์ œ๊ฑฐ
Thread Safe์—†์Œ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ

Reference