🚛 KBS (blacK-Box logging SDK) v3.0.3 Release
🔧 LoggingContext Scope 누수 및 Span ID 패딩 수정
핵심 컴포넌트 Deep Dive 분석 중, AuditContextAspect와 LoggingContext에서 잠재적 버그를 발견했습니다.
AuditContextAspect에서 makeCurrent() 호출 후 반환되는 Scope를 저장하지 않아, 중첩된 @AuditContext 호출 시 이전 Context가 복원되지 않는 문제가 있었습니다. 또한 LoggingContext의 Span ID 생성 시 W3C Trace Context 표준(16자리 hex 필수)을 준수하지 않는 케이스가 있었습니다.
💡 AuditContextAspect 수정
- Scope 반환 처리: propagateToLoggingContext() 메서드가 Scope를 반환하도록 변경하여 finally 블록에서 close() 호출이 가능하도록 했습니다.
- 이전 AuditInfo 복원: 중첩 호출 시 이전 AuditInfo를 저장하고 복원하는 로직을 추가하여 감사 정보 오염을 방지했습니다.
💡 LoggingContext Span ID 패딩 수정
- 16자리 hex 패딩 추가: Long.toHexString()이 선행 0을 생략하는 문제를 해결하여 W3C Trace Context 표준을 준수하도록 했습니다.
- generateSpanId() 개선: 생성된 hex 문자열이 16자리 미만일 경우 좌측에 0을 패딩하도록 수정했습니다.