[Logging] 로그 출력을 효율적으로 생성 및 추적하기 4편 ThreadLocal사용기
·
Spring/Logging
V3에서 진행했던 방식의 문제점이였던 동시성을 ThreadLocal을 사용해서 해결해보려 한다.ThreadLocal은 다른 쓰레드와 자원을 공유하지 않는 독립적인 영역이다.그러므로 동시에 수행해도 각자 같은 이름의 변수이지만 다른 객체를 사용하고 있는 것이다.큰 변동사항없이 기존에 사용했던 TraceIdHolder의 타입을 ThreadLocal로 바꿔주고 문법에 맞게 변경해준다.FieldLogTracetraceIdHolder, syncTraceId, begin, releaseTraceId에서 ThreadLocal의 get(),set()메서드를 사용하도록 수정해주면 된다.package com.example.loggingtest.global.trace;import lombok.extern.slf4j.Slf4..