모던 백엔드 - 범위값(1)

모던 백엔드 - 범위값(1)

[Modern Backend] 강좌의 Part 1 여섯 번째 시간의 첫 번째 강의, "범위값(Scoped Values) (1)" 입니다.
이번 강의에서는 Java 25에서 정식 기능으로 채택된 범위값(Scoped Value)의 등장 배경과 필요성, 그리고 그동안 컨텍스트 공유에 익숙하게 사용해 오던 ThreadLocal이 가진 구조적 한계와 위험성을 깊이 있게 다룹니다.

📌 주요 학습 내용:

  • 계층간 공통 데이터(인증, 트레이스 ID 등) 전달의 3가지 방식 비교 (파라미터 전달 / 정적 홀더 / 범위값)

  • ThreadLocalMap의 내부 구조와 메모리 누수 / 정보 노출 사고의 원인 분석

  • ThreadLocal의 3가지 한계점 (가변성 Mutability, 수명 관리 Lifetime, 상속 비용 Inheritance)

  • 지난 5강 코드 분석을 통한 컨텍스트 수동 전달(set/clear) 코드의 불안정성 검토

  • 가상 스레드(Virtual Thread) 시대에서 ThreadLocal 재사용 전제가 파탄나는 이유

  • InheritableThreadLocal vs ScopedValue (무거운 맵 복사 vs 가벼운 참조 공유 및 불변성 보장)

개발자의 주의에만 의존하던 기존 방식에서 벗어나 언어 차원에서 데이터의 유효 범위를 안전하게 강제하는 Scoped Value의 설계 배경을 차근차근 확인해 보세요.

Site footer